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

Bundles with unified macOS binary are broken #36

Closed
marceltaeumel opened this issue Jan 15, 2024 · 4 comments
Closed

Bundles with unified macOS binary are broken #36

marceltaeumel opened this issue Jan 15, 2024 · 4 comments

Comments

@marceltaeumel
Copy link
Member

All recent bundles with a unified binary for macOS (i.e., both x64 and ARMv8) are not usable, such as:

  • Squeak6.1alpha-22943-64bit-202312181441-macOS.dmg
  • Squeak6.1alpha-22943-64bit-All-in-One.zip

Meaning, the ones with the newer OSVM 2023.12. This is because the folder structure is different between x64 and ARMv8:

  • files.squeak.org/base/Squeak64-trunk/vm-macos.zip/Squeak.app/Contents/Resources/English.lproj/MainMenu.nib (! folder !)
    • keyedobjects.nib
    • keyedobjects-101300.nib
  • files.squeak.org/base/Squeak64-trunk/vm-macos-arm.zip/Squeak.app/Contents/Resources/English.lproj/MainMenu.nib

We build x64 for macOS 10.9 and later. We build ARMv8 for macOS 11.0 and later.

We had to switch GitHub Actions runner from macos-10.15 to macos-11. With it, we seem to use XCode 13.2.1. Through that, the usr/bin/ibtool seems to produce an output that is now different to ensure compatibility for macOS 10.9 and later, which results in MainMenu.nib being a folder (or bundle) with two different .nib files.

More interestingly, none of those keyedobjects* files matches the MainMenu.nib from the ARMv8 build, which has compatibility for macOS 11.0 and later.

Thus, our code for creating the unified binary is broken. The .nib files do not match anymore.

All other bundles are not affected. macOS users should download dedicated x64 or ARMv8 bundles for now. The all-in-one is thus not working for macOS.

@marceltaeumel
Copy link
Member Author

That extra .nib file looks like some issue was discovered in macOS 10.13.

@marceltaeumel
Copy link
Member Author

marceltaeumel commented Jan 16, 2024

I will now try to hot-patch the x64 version to use the MainMenu.nib from our previous OSVM 2022.06 release.

I will just ignore the mismatch and use the MainMenu.nib from the ARM build.

See:

@marceltaeumel
Copy link
Member Author

Fixed via 23f93f1 ... even though I think it is more of a workaround. We gamble that newer macOS versions will keep on supporting the older binary plist format in MainMenu.nib. I also think that unified binaries are supported to target the same minimum macOS version. However, we target 10.9 for x64 and 11.0 for ARM. Let's see for how much longer we can do this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

1 participant