Steps to reproduce on master (7ecb309c4ed1bb9ae6b9a12cbb4f083328edc125):
- On macOS 11
make deploy
- Copy the resulted
Bitcoin-Core.dmg
to a macOS 10.14.6 system - Install it
- Run it:
Steps to reproduce on master (7ecb309c4ed1bb9ae6b9a12cbb4f083328edc125):
make deploy
Bitcoin-Core.dmg
to a macOS 10.14.6 systemWeird error message:
“You have macOS 10.14.6. The application requires macOS 10.14 or later”
Error should have 11 instead of 10.14 because 10.14.6 is obviously higher than 10.14
Is there any option in make deploy
command to set the deployment target?
If you natively compile on macOS 12; at the configure stage, our build os
is set to darwin21.1.0
. Then we build and deploy. Is this executable expected to run on darwin18
?
What you should do is run a depends build with a darwin18
target and that executable is usable.
The wording here is obviously wrong, but our info.plist is static and we don’t fill in values automatically with Xcode. If this were an Xcode project and Xcode is filling in the info.plist automatically, then the error message would probably read “You have macOS 10.14.6. The application requires macOS 11 or later.”
If you run objdump -all-headers
on the built executable after natively compiling on master, I see:
0platform macos
1 sdk 11.3
2 minos 11.3
Running the same command on the dmg from a depends build, you will see:
0platform macos
1 sdk 11.3
2 minos 10.14
When running a depends build, we actually specify the min macos version
Steps to reproduce on master (7ecb309):
Confusing error message aside, the most important point is missing here. Was this build done using depends or not?
I don’t think it’s unexpected that non-depends builds done on newer macOS versions wouldn’t run on older versions. i.e when building macOS 11.x, ld64 is probably setting platform_version
with a minimum required OS version of 11.0 or later.
If you look at the actual Bitcoin-Qt
executable in the dmg, the min os is likely 11.0+.
“… Was this build done using depends or not?”
This was a native compile on macOS, non-depends build done by hebasto
“If you look at the actual Bitcoin-Qt executable in the dmg, the min os is likely 11.0+.”
Yep, that’s correct. I pointed that out here. The executable built natively on macOS 11 shouldn’t be expected to run on 10.14