-
-
Notifications
You must be signed in to change notification settings - Fork 14.4k
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
ffmpeg_{4,6,7}: Darwin clean‐ups and improvements #351188
Conversation
All of these are supplied in the standard environment as part of the SDK now, so there’s no closure difference at build or runtime and no reason to turn them off.
Upstream is pretty good about using availability checks, and there are runtime‐checked features for macOS 10.13, 11, and 12 that are only available if we build with a modern SDK. This impacts, e.g. hardware‐accelerated video decoding in mpv. FFmpeg should still continue to build and run on all our supported macOS releases, with runtime functionality being no worse than before on older versions.
Actually apparently we’re going based on anywhere‐on‐Earth time so the removals are totally okay. |
Retargeted to staging as this will of course cause a bunch of rebuilds. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Diff LGTM. If you say this works the same on Darwin, that sounds good to me.
It works better, at least for hardware‐accelerated decoding on new OS versions :) It should behave the same way on old macOS releases but it’s always possible that upstream may have missed some availability checks. That would be a bug we can fix (and upstream the fix for) if it arises, but should be much less relevant once we bump the minimum supported version for 25.05 anyway. |
Speaking of which, we use SDK 15 here, wouldn't that already exclude macOS < 15 from running the binaries? |
No; the SDK controls what functionality you can access, and the minimum version (“deployment target”) controls what functionality is assumed to be available. With the new SDK pattern, In the case of FFmpeg, they even have checks for versions below our current
However, you did remind me that despite supporting deploying to old versions, FFmpeg doesn’t properly build with the ancient 10.12 SDK we currently default to on |
This pull request has been mentioned on NixOS Discourse. There might be relevant details there: https://discourse.nixos.org/t/title-the-darwin-sdks-have-been-updated/55295/1 |
This brings the functionality of our mpv package on macOS more in line with their official CI binaries while cleaning up a bunch of cruft that is no longer required after #346043. See the commit messages for details.
The flag removals are technically breaking changes past the freeze, although I highly doubt anyone was ever toggling them. If preferred, we could instead leave the flags around but warn about their impending removal when they’re set, and ditch them after branch‐off. I’d definitely rather not keep around pointless feature flags that don’t incur any additional dependencies in 25.05, though.
Things done
nix.conf
? (See Nix manual)sandbox = relaxed
sandbox = true
nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"
. Note: all changes have to be committed, also see nixpkgs-review usage./result/bin/
)Add a 👍 reaction to pull requests you find important.