Skip to content

Conversation

@tallpsmith
Copy link
Contributor

Adds documentation for building PCP on macOS using Tart VMs via Cirrus CLI.

Rationale

  • macOS cannot be containerized (no Podman support like Linux)
  • Tart VMs provide lightweight, isolated builds using native macOS virtualization
  • Eliminates environment differences between developers
  • Matches CI environment as closely as possible

…art VM.

It appeared that doing the `pkgbuild` inside whatever filesystem it was originally caused a .PKG corruption, so we simply write it initially to a cleaner temp area before copying it back in one hit.
@tallpsmith tallpsmith added the macOS For issues specific or related to macOS label Jan 12, 2026
Copy link
Member

@natoscott natoscott left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One minor suggestion otherwise all looks a-ok.

# WORKAROUND: Write package to /tmp first to avoid virtiofs XAR corruption
# then copy to final location in build directory
# without this, the pkgbuild produces a corrupted archive inside a Tart VM
pkgout="/tmp/pcp-pkg.$$"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we use $tmp here, which is securely setup, rather than hard-coded /tmp?

@tallpsmith
Copy link
Contributor Author

@natoscott NOTE: I remember now that this one is actually superseded by the #2442 (it includes this Tart stuff), so I think the right thing to do is close this as duplicate/superseded by #2442 .

I'll look to add your suggested change over on the main one.

@tallpsmith
Copy link
Contributor Author

Closed as included in #2442

@tallpsmith tallpsmith closed this Jan 21, 2026
@tallpsmith tallpsmith deleted the macos_tart_vm_build branch January 21, 2026 23:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

macOS For issues specific or related to macOS

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants