Remove Intel MacOS support

This PR removes support for Intel Apple Macs. The removal includes
impacts to code, tests, Makefile, builds, release builds, and so forth.

Fixes Jira: RUN-3621

Signed-off-by: Brent Baude <bbaude@redhat.com>
This commit is contained in:
Brent Baude
2025-12-06 15:41:52 -06:00
parent 8ce77d6e6b
commit f87cefc262
12 changed files with 13 additions and 107 deletions

View File

@@ -271,7 +271,7 @@ alt_build_task:
# Confirm building the remote client, natively on a Mac OS-X VM. # Confirm building the remote client, natively on a Mac OS-X VM.
osx_alt_build_task: osx_alt_build_task:
name: "Build for MacOS amd64+arm64" # N/B: Referenced by URLencoded strings elsewhere name: "Build for MacOS arm64" # N/B: Referenced by URLencoded strings elsewhere
alias: osx_alt_build alias: osx_alt_build
# Docs: ./contrib/cirrus/CIModes.md # Docs: ./contrib/cirrus/CIModes.md
only_if: *no_rhel_release # RHEL never releases podman mac installer binary only_if: *no_rhel_release # RHEL never releases podman mac installer binary
@@ -300,12 +300,8 @@ osx_alt_build_task:
- make podman-mac-helper - make podman-mac-helper
build_pkginstaller_script: build_pkginstaller_script:
- pushd contrib/pkginstaller - pushd contrib/pkginstaller
- make ARCH=amd64 NO_CODESIGN=1 pkginstaller
- make ARCH=aarch64 NO_CODESIGN=1 pkginstaller - make ARCH=aarch64 NO_CODESIGN=1 pkginstaller
- make ARCH=universal NO_CODESIGN=1 pkginstaller
- popd - popd
build_amd64_script:
- make podman-remote-release-darwin_amd64.zip
# Building arm podman needs to be the last thing built in this task # Building arm podman needs to be the last thing built in this task
# The Mac tests rely this Podman binary to run, and the CI Mac is ARM-based # The Mac tests rely this Podman binary to run, and the CI Mac is ARM-based
build_arm64_script: build_arm64_script:
@@ -899,7 +895,7 @@ podman_machine_mac_task:
clone_script: # artifacts from osx_alt_build_task clone_script: # artifacts from osx_alt_build_task
- mkdir -p $CIRRUS_WORKING_DIR - mkdir -p $CIRRUS_WORKING_DIR
- cd $CIRRUS_WORKING_DIR - cd $CIRRUS_WORKING_DIR
- $ARTCURL/Build%20for%20MacOS%20amd64%2Barm64/repo/repo.tar.zst - $ARTCURL/Build%20for%20MacOS%20arm64/repo/repo.tar.zst
- tar -xf repo.tar.zst - tar -xf repo.tar.zst
# This host is/was shared with potentially many other CI tasks. # This host is/was shared with potentially many other CI tasks.
# The previous task may have been canceled or aborted. # The previous task may have been canceled or aborted.
@@ -1214,7 +1210,7 @@ artifacts_task:
osx_binaries_script: osx_binaries_script:
- mkdir -p /tmp/osx - mkdir -p /tmp/osx
- cd /tmp/osx - cd /tmp/osx
- $ARTCURL/Build%20for%20MacOS%20amd64%2Barm64/repo/repo.tar.zst - $ARTCURL/Build%20for%20MacOS%20arm64/repo/repo.tar.zst
- tar -xf repo.tar.zst - tar -xf repo.tar.zst
- mv ./podman-remote-release-darwin_*.zip $CIRRUS_WORKING_DIR/ - mv ./podman-remote-release-darwin_*.zip $CIRRUS_WORKING_DIR/
- mv ./contrib/pkginstaller/out/podman-installer-macos-*.pkg $CIRRUS_WORKING_DIR/ - mv ./contrib/pkginstaller/out/podman-installer-macos-*.pkg $CIRRUS_WORKING_DIR/

View File

@@ -74,8 +74,6 @@ jobs:
run: | run: |
URI="https://github.com/containers/podman/releases/download/${VERSION}" URI="https://github.com/containers/podman/releases/download/${VERSION}"
ARM_FILE="podman-installer-macos-arm64.pkg" ARM_FILE="podman-installer-macos-arm64.pkg"
AMD_FILE="podman-installer-macos-amd64.pkg"
UNIVERSAL_FILE="podman-installer-macos-universal.pkg"
status=$(curl -s -o /dev/null -w "%{http_code}" "${URI}/${ARM_FILE}") status=$(curl -s -o /dev/null -w "%{http_code}" "${URI}/${ARM_FILE}")
if [[ "$status" == "404" ]] ; then if [[ "$status" == "404" ]] ; then
@@ -84,27 +82,9 @@ jobs:
echo "::warning::ARM installer already exists, skipping" echo "::warning::ARM installer already exists, skipping"
echo "buildarm=false" >> $GITHUB_OUTPUT echo "buildarm=false" >> $GITHUB_OUTPUT
fi fi
status=$(curl -s -o /dev/null -w "%{http_code}" "${URI}/${AMD_FILE}")
if [[ "$status" == "404" ]] ; then
echo "buildamd=true" >> $GITHUB_OUTPUT
else
echo "::warning::AMD installer already exists, skipping"
echo "buildamd=false" >> $GITHUB_OUTPUT
fi
status=$(curl -s -o /dev/null -w "%{http_code}" "${URI}/${UNIVERSAL_FILE}")
if [[ "$status" == "404" ]] ; then
echo "builduniversal=true" >> $GITHUB_OUTPUT
else
echo "::warning::Universal installer already exists, skipping"
echo "builduniversal=false" >> $GITHUB_OUTPUT
fi
- name: Checkout Version - name: Checkout Version
if: >- if: >-
steps.check.outputs.buildamd == 'true' ||
steps.check.outputs.buildarm == 'true' || steps.check.outputs.buildarm == 'true' ||
steps.check.outputs.builduniversal == 'true' ||
steps.actual_dryrun.outputs.dryrun == 'true' steps.actual_dryrun.outputs.dryrun == 'true'
uses: actions/checkout@v6 uses: actions/checkout@v6
with: with:
@@ -113,9 +93,7 @@ jobs:
- name: Set up Go - name: Set up Go
# Conditional duplication sucks - GHA doesn't grok YAML anchors/aliases # Conditional duplication sucks - GHA doesn't grok YAML anchors/aliases
if: >- if: >-
steps.check.outputs.buildamd == 'true' ||
steps.check.outputs.buildarm == 'true' || steps.check.outputs.buildarm == 'true' ||
steps.check.outputs.builduniversal == 'true' ||
steps.actual_dryrun.outputs.dryrun == 'true' steps.actual_dryrun.outputs.dryrun == 'true'
uses: actions/setup-go@v6 uses: actions/setup-go@v6
with: with:
@@ -123,9 +101,7 @@ jobs:
cache: false cache: false
- name: Create Keychain - name: Create Keychain
if: >- if: >-
steps.check.outputs.buildamd == 'true' ||
steps.check.outputs.buildarm == 'true' || steps.check.outputs.buildarm == 'true' ||
steps.check.outputs.builduniversal == 'true' ||
steps.actual_dryrun.outputs.dryrun == 'true' steps.actual_dryrun.outputs.dryrun == 'true'
run: | run: |
echo $APPLICATION_CERTIFICATE | base64 --decode -o appcert.p12 echo $APPLICATION_CERTIFICATE | base64 --decode -o appcert.p12
@@ -145,23 +121,9 @@ jobs:
run: | run: |
make ARCH=aarch64 notarize &> /dev/null make ARCH=aarch64 notarize &> /dev/null
cd out && shasum -a 256 podman-installer-macos-arm64.pkg >> shasums cd out && shasum -a 256 podman-installer-macos-arm64.pkg >> shasums
- name: Build and Sign AMD
if: steps.check.outputs.buildamd == 'true' || steps.actual_dryrun.outputs.dryrun == 'true'
working-directory: contrib/pkginstaller
run: |
make ARCH=amd64 notarize &> /dev/null
cd out && shasum -a 256 podman-installer-macos-amd64.pkg >> shasums
- name: Build and Sign Universal
if: steps.check.outputs.builduniversal == 'true' || steps.actual_dryrun.outputs.dryrun == 'true'
working-directory: contrib/pkginstaller
run: |
make ARCH=universal notarize &> /dev/null
cd out && shasum -a 256 podman-installer-macos-universal.pkg >> shasums
- name: Artifact - name: Artifact
if: >- if: >-
steps.check.outputs.buildamd == 'true' ||
steps.check.outputs.buildarm == 'true' || steps.check.outputs.buildarm == 'true' ||
steps.check.outputs.builduniversal == 'true' ||
steps.actual_dryrun.outputs.dryrun == 'true' steps.actual_dryrun.outputs.dryrun == 'true'
uses: actions/upload-artifact@v5 uses: actions/upload-artifact@v5
with: with:
@@ -172,9 +134,7 @@ jobs:
- name: Upload to Release - name: Upload to Release
if: >- if: >-
steps.actual_dryrun.outputs.dryrun == 'false' && steps.actual_dryrun.outputs.dryrun == 'false' &&
(steps.check.outputs.buildamd == 'true' || steps.check.outputs.buildarm == 'true'
steps.check.outputs.buildarm == 'true'||
steps.check.outputs.builduniversal == 'true' )
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
VERSION: ${{ steps.getversion.outputs.version }} VERSION: ${{ steps.getversion.outputs.version }}

View File

@@ -85,8 +85,7 @@ jobs:
VERSION: ${{ steps.getversion.outputs.version }} VERSION: ${{ steps.getversion.outputs.version }}
run: | run: |
URI="https://github.com/containers/podman/releases/download/${VERSION}" URI="https://github.com/containers/podman/releases/download/${VERSION}"
for artifact in "podman-remote-release-darwin_amd64.zip darwin_amd" \ for artifact in 'podman-remote-release-darwin_arm64.zip darwin_arm' \
'podman-remote-release-darwin_arm64.zip darwin_arm' \
'podman-remote-release-windows_amd64.zip windows_amd' \ 'podman-remote-release-windows_amd64.zip windows_amd' \
'podman-remote-static-linux_amd64.tar.gz linux_amd' \ 'podman-remote-static-linux_amd64.tar.gz linux_amd' \
'podman-remote-static-linux_arm64.tar.gz linux_arm' 'podman-remote-static-linux_arm64.tar.gz linux_arm'
@@ -129,14 +128,6 @@ jobs:
steps.actual_dryrun.outputs.dryrun == 'true' steps.actual_dryrun.outputs.dryrun == 'true'
run: mkdir -p release/ run: mkdir -p release/
- name: Build Darwin AMD
if: >-
steps.check.outputs.darwin_amd == 'true' ||
steps.actual_dryrun.outputs.dryrun == 'true'
run: |
make podman-remote-release-darwin_amd64.zip
mv podman-remote-release-darwin_amd64.zip release/
- name: Build Darwin ARM - name: Build Darwin ARM
if: >- if: >-
steps.check.outputs.darwin_arm == 'true' || steps.check.outputs.darwin_arm == 'true' ||

View File

@@ -138,14 +138,6 @@ jobs:
working-directory: contrib/pkginstaller working-directory: contrib/pkginstaller
run: | run: |
make ARCH=aarch64 notarize &> /dev/null make ARCH=aarch64 notarize &> /dev/null
- name: Build and Sign AMD
working-directory: contrib/pkginstaller
run: |
make ARCH=amd64 notarize &> /dev/null
- name: Build and Sign Universal
working-directory: contrib/pkginstaller
run: |
make ARCH=universal notarize &> /dev/null
- name: Artifact - name: Artifact
uses: actions/upload-artifact@v5 uses: actions/upload-artifact@v5
with: with:

View File

@@ -41,14 +41,8 @@ matches corresponding changes in the artifacts task.
[rootlessport](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/rootlessport) - [rootlessport](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/rootlessport) -
Built on the latest supported Fedora release. Built on the latest supported Fedora release.
* MacOS * MacOS
[universal](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-installer-macos-universal.pkg)
,
[x86_64](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-installer-macos-amd64.pkg)
, and
[arm64](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-installer-macos-arm64.pkg) [arm64](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-installer-macos-arm64.pkg)
installation packages. Again, these are **not** signed, so expect warnings if you try to install them. installation package. Again, this is **not** signed, so expect warnings if you try to install it.
There's also binary release *ZIP-files* for There's also a binary release *ZIP-file* for
[darwin_amd64](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-remote-release-darwin_amd64.zip)
and
[darwin_arm64](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-remote-release-darwin_arm64.zip). [darwin_arm64](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-remote-release-darwin_arm64.zip).
* Windows [podman-remote](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-remote-release-windows_amd64.zip) for x86_64 only. * Windows [podman-remote](https://api.cirrus-ci.com/v1/artifact/github/containers/podman/Artifacts/binary/podman-remote-release-windows_amd64.zip) for x86_64 only.

View File

@@ -1028,8 +1028,6 @@ install.tools: .install.golangci-lint ## Install needed tools
.PHONY: release-artifacts .PHONY: release-artifacts
release-artifacts: clean-binaries release-artifacts: clean-binaries
mkdir -p release/ mkdir -p release/
$(MAKE) podman-remote-release-darwin_amd64.zip
mv podman-remote-release-darwin_amd64.zip release/
$(MAKE) podman-remote-release-darwin_arm64.zip $(MAKE) podman-remote-release-darwin_arm64.zip
mv podman-remote-release-darwin_arm64.zip release/ mv podman-remote-release-darwin_arm64.zip release/
$(MAKE) podman-remote-release-windows_amd64.zip $(MAKE) podman-remote-release-windows_amd64.zip

View File

@@ -198,12 +198,9 @@ spelled with complete minutiae.
This action creates the GitHub release from the pushed tag, This action creates the GitHub release from the pushed tag,
and automatically builds and uploads the binaries and installers to the release. and automatically builds and uploads the binaries and installers to the release.
1. The following artifacts should be attached to the release: 1. The following artifacts should be attached to the release:
* podman-installer-macos-amd64.pkg
* podman-installer-macos-arm64.pkg * podman-installer-macos-arm64.pkg
* podman-installer-macos-universal.pkg
* podman-installer-windows-amd64.exe * podman-installer-windows-amd64.exe
* podman-installer-windows-arm64.exe * podman-installer-windows-arm64.exe
* podman-remote-release-darwin_amd64.zip
* podman-remote-release-darwin_arm64.zip * podman-remote-release-darwin_arm64.zip
* podman-remote-release-windows_amd64.zip * podman-remote-release-windows_amd64.zip
* podman-remote-release-windows_arm64.zip * podman-remote-release-windows_arm64.zip

View File

@@ -1,4 +1,4 @@
//go:build amd64 || arm64 //go:build (amd64 && !darwin) || arm64
package machine package machine

View File

@@ -1,13 +1,13 @@
## How to build ## How to build
```sh ```sh
$ make ARCH=<amd64 | aarch64 | universal> NO_CODESIGN=1 pkginstaller $ make ARCH=aarch64 NO_CODESIGN=1 pkginstaller
# or to create signed pkg # or to create signed pkg
$ make ARCH=<amd64 | aarch64 | universal> CODESIGN_IDENTITY=<ID> PRODUCTSIGN_IDENTITY=<ID> pkginstaller $ make ARCH=aarch64 CODESIGN_IDENTITY=<ID> PRODUCTSIGN_IDENTITY=<ID> pkginstaller
# or to prepare a signed and notarized pkg for release # or to prepare a signed and notarized pkg for release
$ make ARCH=<amd64 | aarch64 | universal> CODESIGN_IDENTITY=<ID> PRODUCTSIGN_IDENTITY=<ID> NOTARIZE_USERNAME=<appleID> NOTARIZE_PASSWORD=<appleID-password> NOTARIZE_TEAM=<team-id> notarize $ make ARCH=aarch64 CODESIGN_IDENTITY=<ID> PRODUCTSIGN_IDENTITY=<ID> NOTARIZE_USERNAME=<appleID> NOTARIZE_PASSWORD=<appleID-password> NOTARIZE_TEAM=<team-id> notarize
``` ```
The generated pkg will be written to `out/podman-macos-installer-*.pkg`. The generated pkg will be written to `out/podman-macos-installer-*.pkg`.

View File

@@ -28,13 +28,7 @@ function build_podman() {
cp -v docs/build/remote/darwin/*.1 "contrib/pkginstaller/out/packaging/${docDir}" cp -v docs/build/remote/darwin/*.1 "contrib/pkginstaller/out/packaging/${docDir}"
case ${goArch} in case ${goArch} in
universal) arm64)
build_fat
cp "${tmpBin}/podman-universal" "contrib/pkginstaller/out/packaging/${binDir}/podman"
cp "${tmpBin}/podman-mac-helper-universal" "contrib/pkginstaller/out/packaging/${binDir}/podman-mac-helper"
;;
amd64 | arm64)
build_podman_arch ${goArch} build_podman_arch ${goArch}
cp "${tmpBin}/podman-${goArch}" "contrib/pkginstaller/out/packaging/${binDir}/podman" cp "${tmpBin}/podman-${goArch}" "contrib/pkginstaller/out/packaging/${binDir}/podman"
cp "${tmpBin}/podman-mac-helper-${goArch}" "contrib/pkginstaller/out/packaging/${binDir}/podman-mac-helper" cp "${tmpBin}/podman-mac-helper-${goArch}" "contrib/pkginstaller/out/packaging/${binDir}/podman-mac-helper"
@@ -55,17 +49,6 @@ function build_podman_arch(){
cp bin/darwin/podman-mac-helper "${tmpBin}/podman-mac-helper-$1" cp bin/darwin/podman-mac-helper "${tmpBin}/podman-mac-helper-$1"
} }
function build_fat(){
echo "Building ARM Podman"
build_podman_arch "arm64"
echo "Building AMD Podman"
build_podman_arch "amd64"
echo "Creating universal binary"
lipo -create -output "${tmpBin}/podman-universal" "${tmpBin}/podman-arm64" "${tmpBin}/podman-amd64"
lipo -create -output "${tmpBin}/podman-mac-helper-universal" "${tmpBin}/podman-mac-helper-arm64" "${tmpBin}/podman-mac-helper-amd64"
}
function sign() { function sign() {
local opts="" local opts=""
entitlements="${BASEDIR}/$(basename "$1").entitlements" entitlements="${BASEDIR}/$(basename "$1").entitlements"

View File

@@ -1,4 +1,4 @@
//go:build darwin //go:build darwin && arm64
package libkrun package libkrun

View File

@@ -5,7 +5,6 @@ import (
"fmt" "fmt"
"os" "os"
"os/exec" "os/exec"
"runtime"
"strings" "strings"
"github.com/blang/semver/v4" "github.com/blang/semver/v4"
@@ -102,10 +101,6 @@ func appleHvInstalled() (bool, error) {
} }
func libKrunInstalled() (bool, error) { func libKrunInstalled() (bool, error) {
if runtime.GOARCH != "arm64" {
return false, nil
}
// need to verify that krunkit, virglrenderer, and libkrun-efi are installed // need to verify that krunkit, virglrenderer, and libkrun-efi are installed
cfg, err := config.Default() cfg, err := config.Default()
if err != nil { if err != nil {