hydrogen-music / hydrogen

The advanced drum machine for Linux, macOS, and Windows
http://www.hydrogen-music.org
GNU General Public License v2.0
1.03k stars 172 forks source link

Hydrogen 1.2.3 crashes on macOS 10.13.6 (High Sierra) #1997

Closed elektronen closed 1 month ago

elektronen commented 1 month ago

Hydrogen version * : 1.2.3 Operating system + version : macOS 10.13.6 Audio driver + version : CoreAudio


The website and documentation should make clear the minimum OS version. Hydrogen 1.2.0 ran on 10.13.6, but crash details indicate 1.2.3 is now built on and expects minimum macOS 10.15. While I understand that I am using a legacy version of macOS, I've no reason to think newer 1.2.x Hydrogen wouldn't work; changing system requirements should be communicated in the release notes.


elektronen commented 1 month ago

On closer inspection of Assets, I note that there are 'High Sierra' tagged releases of 1.2.0 and 1.2.1, but not after that. It would be helpful if it could be explicitly stated in the release notes that the standard build of 1.2.0 and later for macOS requires 10.15 or newer.

theGreatWhiteShark commented 1 month ago

Hey @elektronen

The website and documentation should make clear the minimum OS version.

Hmmm. The "Mac OS X" section on our Download page indicates the range of versions a release is supported on. And the download section of the manual is pointing to this page as well.

But for the release pages on Github you're right. Problem there is that homebrew is expecting them to carry a specific name. Renaming e.g. "Hydrogen-1.2.3.dmg" into "Hydrogen-1.2.3-10-14-or-above.dmg" would break their recipe.

I've no reason to think newer 1.2.x Hydrogen wouldn't work; changing system requirements should be communicated in the release notes.

I think there actually is no reason why newer versions wouldn't work. It's just that we depend on a build pipeline provided by AppVeyor to create our artifacts. And their macOS image was updated causing the resulting binaries to be incompatible with High Sierra. You should still be able to build it yourself.

On closer inspection of Assets, I note that there are 'High Sierra' tagged releases of 1.2.0 and 1.2.1, but not after that.

Yeah. These were done by a member of the team with access to a mac. I do not own one and can not provide any binaries built locally for newer versions.

elektronen commented 1 month ago

Well, now I feel like a dummy. 😳 Thank you for your kind and detailed response.

I have all the necessary tooling lined up on my venerable old 2012 Mac Mini to do a build, so I'll see about contributing a High Sierra build of 1.2.3.

theGreatWhiteShark commented 1 month ago

Well, now I feel like a dummy.

You don't need to. There is indeed no note whether support was dropped or we just do not provide artifacts for those mac OS versions anymore. I'll add one.

I have all the necessary tooling lined up on my venerable old 2012 Mac Mini to do a build, so I'll see about contributing a High Sierra build of 1.2.3.

Sounds nice. Thanks for the offer but I can't make a contributed artifact an official release. Even our AppVeyor build pipelines are somewhat on the edge because we do not control the images used and can not verify their integrity.

Also, please feel free to update/polish the build instructions for macOS in our wiki.

cme commented 1 month ago

We should probably set the deployment target on appveyor so that the new OS builds are correctly flagged as not running on the order OSes instead of crashing out.

I can't do legacy builds at the moment as my macs are all too new but I intended to set up a build VM with high sierra, sadly haven't got round to it yet.

Last I checked, Hydrogen builds straight out of the box using macports for dependencies. Appveyor's use of Homebrew is a bit of a pain :/

theGreatWhiteShark commented 1 month ago

We should probably set the deployment target on appveyor so that the new OS builds are correctly flagged as not running on the order OSes instead of crashing out.

Hmm. I have mixed feelings about this. Currently we do determine the range of supported macOS versions more or less using bug reports. If we decide to compile this information into our executables, we would need to make a new patch release instead of just update 1-2 doc pages.

Apart from that I actually does not even know why they are not compatible anymore. I mean, I could think of a dozen reasons, like changes in the system API, changes in the compiler version, switching from gcc to clang, ABI incompatibility of dylibs we ship.... But I do not know the actual reason or whether we could check in advance for compatibility.

Furthermore, we use the rolling macOS image macos in AppVeyor and did not even pin the OS version. I wonder whether we would notice when AppVeyor is updating it to a more recent one.