Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Is macOS 11 supported? #125

Open
judaew opened this issue Apr 11, 2024 · 9 comments
Open

Is macOS 11 supported? #125

judaew opened this issue Apr 11, 2024 · 9 comments

Comments

@judaew
Copy link

judaew commented Apr 11, 2024

I'm a maintainer on MacPorts and have encountered an error during build in the current version of vfkit due to the use of VZVirtioSoundDeviceInputStreamConfiguration (which from macOS 12).

virtualization_12.m:178:69: error: use of undeclared identifier 'VZVirtioSoundDeviceInputStreamConfiguration'; did you mean 'newVZVirtioSoundDeviceInputStreamConfiguration'?
virtualization_12.m:163:7: note: 'newVZVirtioSoundDeviceInputStreamConfiguration' declared here
virtualization_12.m:178:54: error: use of undeclared identifier 'inputStream'
virtualization_12.m:179:10: error: unknown receiver 'inputStream'; did you mean 'NSInputStream'?
/Library/Developer/CommandLineTools/SDKs/MacOSX11.sdk/System/Library/Frameworks/Foundation.framework/Headers/NSUserActivity.h:12:109: note: 'NSInputStream' declared here
virtualization_12.m:179:34: error: use of undeclared identifier 'VZHostAudioInputStreamSource'
virtualization_12.m:180:16: error: use of undeclared identifier 'inputStream'
virtualization_12.m:193:18: error: use of undeclared identifier 'VZVirtioSoundDeviceOutputStreamConfiguration'; did you mean 'newVZVirtioSoundDeviceOutputStreamConfiguration'?
virtualization_12.m:190:7: note: 'newVZVirtioSoundDeviceOutputStreamConfiguration' declared here
virtualization_12.m:193:18: warning: receiver type 'void *(*)()' is not 'id' or interface pointer, consider casting it to 'id' [-Wreceiver-expr]
virtualization_12.m:205:9: error: use of undeclared identifier 'VZVirtioSoundDeviceOutputStreamConfiguration'; did you mean 'newVZVirtioSoundDeviceOutputStreamConfiguration'?
virtualization_12.m:190:7: note: 'newVZVirtioSoundDeviceOutputStreamConfiguration' declared here
virtualization_12.m:205:117: error: expected expression
fatal error: too many errors emitted, stopping now [-ferror-limit=]
make: *** [out/vfkit-arm64] Error 1

See https://trac.macports.org/ticket/69683.

Let me know if vfkit should support macOS 11.

@gbraad
Copy link

gbraad commented Apr 12, 2024

Apple stopped support for Big Sur (11) on 26 Sep 2023.

One of the consumers, CRC/OpenShift Local, which I lead has therefore ended support for this version as a target and added this as part of the documentation: https://crc.dev/crc/getting_started/getting_started/installing/#_requirements_on_macos

Our sister project: Podman Machine does not mention these requirements: https://podman.io/docs/installation

... however, both implementations depend on the EFI support by the virtualization framework, which I believe is only available from MacOS 13. So even when it compiles, it would not work for us and provide limited support.

Let me know if vfkit should support macOS 11.

It would be best for @cfergeau to chime in, ...

judaew added a commit to judaew/macports-ports that referenced this issue Apr 12, 2024
judaew added a commit to macports/macports-ports that referenced this issue Apr 12, 2024
@cfergeau
Copy link
Collaborator

The error you are seeing could be caused by an outdated xcode/...version? This is what is used on the github builder where the build succeeds https://github.com/actions/runner-images/blob/main/images/macos/macos-11-Readme.md

@cfergeau
Copy link
Collaborator

Apart from this, with macOS 11/Big Sur out of support https://endoflife.date/macos , macOS 11 support could be dropped from vfkit at any time: the day something breaks badly in vfkit on macOS 11, if fixing it is costly, I'd drop macOS 11 support instead.

@gbraad
Copy link

gbraad commented Apr 16, 2024

I'd drop macOS 11 support instead.

Better to have a clear plan/date for this, such as half a year after support ended? (which is soon)

@cfergeau
Copy link
Collaborator

I'd drop macOS 11 support instead.

Better to have a clear plan/date for this, such as half a year after support ended? (which is soon)

The thing is, as long as it's not broken, we can keep the support. And I don't know when it will be break. With the next major macOS release and new virtualization framework APIs, maybe building on macOS 11 will break when we start using new APIs provided in this version. But even this, I don't know for sure.

@cfergeau
Copy link
Collaborator

These patches from NixOS should help with building on older macOS versions NixOS/nixpkgs@85c9003

@cooljeanius
Copy link

These patches from NixOS should help with building on older macOS versions NixOS/nixpkgs@85c9003

@judaew I think that these patches would probably be better than the current approach of just pinning podman to an older version that doesn't use vfkit

@cfergeau
Copy link
Collaborator

With https://github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners/ and #164 , macos 11 is going to be even less tested than it currently is :(

@cooljeanius
Copy link

With github.blog/changelog/2024-05-20-actions-upcoming-changes-to-github-hosted-macos-runners and #164 , macos 11 is going to be even less tested than it currently is :(

Well I guess in that case, the documentation should be updated accordingly...

cfergeau added a commit to cfergeau/vfkit that referenced this issue Sep 30, 2024
macOS 11 github runners are no longer available so we no longer build
and test vfkit on this platform.
macOS 11 has been out of support for a year now.
This commit changes the minimum supported version to macOS 12.
A mention of macOS 11 is kept, we'll remove it when we'll know for sure
vfkit is broken on this platform

This fixes crc-org#125

Signed-off-by: Christophe Fergeau <cfergeau@redhat.com>

# Veuillez saisir le message de validation pour vos modifications. Les lignes
# commençant par '#' seront ignorées, et un message vide abandonne la validation.
#
# Date :       Mon Sep 30 16:51:00 2024 +0200
#
# Sur la branche docs
# Votre branche est à jour avec 'teuf/docs'.
#
# Modifications qui seront validées :
#	modifié :         doc/quickstart.md
#
# Fichiers non suivis:
#	.goreleaser.yaml
#	0001-Add-script-to-start-EFI-image.patch
#	0002-misc-improvements-to-scripts.patch
#	0003-setRawMode-work.patch
#	0004-test-with-qemu.patch
#	0005-debug-hacks.patch
#	cmd/vfkit/main.go.orig
#	cmdline.test
#	diff
#	go.mod.orig
#	go.mod.rej
#	gosec.patch
#	hacks.diff
#	lint.patch
#	patch
#	pkg/config/json.go~
#	pkg/ignition/
#	pkg/vf/virtionet.go.orig
#	pkg/vf/virtionet.go.rej
#	rest.md
#	run-sample-vm.sh
#	start-vm.sh
#	stdout/
#	unixsocket.patch
#	vfkit
#	vfkit-amd64
#	vfkit-arm64
#	vfkit-macos12
#
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants