-
Notifications
You must be signed in to change notification settings - Fork 17
More work to get 64-bit Mac builds of LilyPond working #69
base: master
Are you sure you want to change the base?
Conversation
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.
One general question: From previous discussions, it seemed that you can't cross-build from Linux. What's the expected behavior when the user tries to?
More radically, does it really make sense to use the complicated GUB for building a native application on macOS? I really see the great idea behind a unified build system for many packages and multiple platforms. But as far as I know, LilyPond is currently the only project using GUB (correct me if I'm wrong), is there another project actively working to adopt it? If GUB now also loses the ability to build for all needed platforms (in addition to some binary packages being broken or outdated), I wonder if it's worth the development effort...
Huh? I though all Mac and Windows releases up till now had been cross-built on Linux. The issue is that, for a combination of technical and licensing reasons, we can't do 64-bit Mac builds on Linux.
I've wondered this myself, but the fact seems to be that at the moment, GUB has the only build script for making a native Mac .app bundle (which involves doing things like moving dylibs around, so I'm not eager to recreate it elsewhere). Please see the discussion at http://lilypond.1069038.n5.nabble.com/macOS-64-bit-td221367.html before we rehash this.
I thought Inkscape was still using it (and was having some of the same Mac packaging issues!), but looking at the website, I'm not sure I'm right about that.
I'd love for GUB to go away for a different reason: I think the LilyPond build process should be simpler than it currently is. But the fact remains that until that happens, it looks to me like GUB is the easiest way to create a native 64-bit Mac .app bundle. If you have a better idea, I'm happy to hear it—as long as it builds something that can be installed cleanly on a Mac without developer tools by a technically naïve user. |
Yes, sorry for being unclear: Up to now, the binary packages were cross-built from Linux, that's also my understanding. But exactly that won't be possible for darwin-64 for the reasons you stated.
There surely must be other (open) projects creating .app bundles, no?
There was a spec for Inkscape, but it was 2 repositories behind and I've removed it in 79a8000.
I don't have a concrete proposal right now, and no Mac either to help with any of this activities. I've tried to find out which binary packages would be required going forward, but the response on lilypond-dev has been that targets should not be dropped unless already broken. |
Not for LilyPond AFAIK. The GUB builds have been the one and only source of LilyPond.app that I'm aware of.
I set up a build environment at MacStadium largely so this would no longer be an issue. I wasn't planning to give other people access to it just yet (I'm hoping to get the builds working before I do that), but if you feel like it would be useful to play around, contact me and we'll figure something out.
I have no idea what you are saying here. |
No, but for other open-source projects. And they won't have it that complicated as GUB has it.
Please see this thread: https://lists.gnu.org/archive/html/lilypond-devel/2019-10/msg00045.html |
[ Disclaimer: I don't have a Mac, just looking around for now. ] |
You'd be surprised. I would have thought so too, but I've found relatively little, and anyway, the script in GUB is already customized for the LilyPond project, so why wouldn't I use it? Besides, as long as the other releases are using GUB, I kind of like the idea of using the same build process rather than making things too divergent. In principle I think we could cross-compile the Linux and Windows builds on a Mac if we wanted to, although I haven't tried that. So: I don't like GUB that much, but I like less the idea of having the build processes diverge too much. Can we abandon GUB and still have a unified build process? (Eventually, of course we can. But my priority now is getting a 64-bit Mac build happening, not revamping LilyPond's entire build process on all platforms.) |
Correct, and yes I’ve seen that Stack Overflow post about moving libraries around. :)
No, I think there's more to it than that. In particular, LilyPond needs a lot of dylibs moved into the .app bundle (which LilyPad presumably wouldn't have, or at least wouldn't itself need to have). I think, but am not positive, that Rewirer does that. |
@marnen sorry for chiming in, thought I could help |
@hahnjo Don’t apologize! I really appreciate your input here, and you may well be able to help. |
@hahnjo Actually, you have helped already. You’ve gotten me to think seriously about how hard it would be to build the .app bundle without GUB. Perhaps I should give it a try before I completely discount it. |
This builds on @Jahrme’s work in #64 (perfect number!). So far all the tools* stuff is building, but I’d like some help finding the logic that figures out if we’re cross-compiling, because I think I’m going to need to change it and I haven’t found it yet.