Scratch part of the last email. I think I'm confusing things.
The old script build the app bundle and simply copied in the entire folder contents, including build artifacts.
The new script builds the app bundle and copies in only specified things.
By "source distribution" I'm guessing you mean the actual source files, makefiles etc and not the pre-build artifacts?
One thing to note: IOhannes and I removed the generated autotools files (configure, m4 stuff, Makefile, Makefile.in) so the source tarball should behave without having to change anything by hand. The configure script was *greatly* updated to facilitate this as well. It should work whether inside the .app or not.
I guess what I don't understand is the need for both a source tarball and a .app which includes all the sources. It should be possible now to build Pd on Mac 10.6 to 10.12 (and soon 10.13) with the same steps.
On Aug 15, 2017, at 2:06 PM, Dan Wilcox danomatika@gmail.com wrote:
On Aug 15, 2017, at 1:42 PM, katja <katjavetter@gmail.com mailto:katjavetter@gmail.com> wrote:
Does the new build script automatically create a complete and deterministic source distribution for the app bundle?
No. It copies only the binaries and required resource files for the app to run. It does include the source files or the built .o files.
It would be easy to have it copy in the .c and .h files if desired, see the script itself: https://github.com/pure-data/pure-data/blob/master/mac/osx-app.sh https://github.com/pure-data/pure-data/blob/master/mac/osx-app.sh
Or do you still need to add and configure things 'by hand'?
No. The idea is that we don't have to do anything by hand, partially because it's my opinion that if Pd is easier to build we can empower users. Being able to easily build a configurable .app with different versions of Tk was also a requirement for testing/supporting non-ancient versions of macOS. At the time I started with this work, you couldn't even build Pd on anything newer than 10.9. The vast majority of macOS users are on the latest two releases.
This setup is fully documented: https://github.com/pure-data/pure-data/tree/master/mac https://github.com/pure-data/pure-data/tree/master/mac
One conclusion from PdCon sessions about building Pd was, a source repository snapshot is not necessarily the same as a source distribution. Pd for OSX used to be a combined source / binary distribution. If the build is hard(er) to reproduce without embedded sources, I guess they should better be included like before. When this is the preferred approach for deken packages, why not for Pd.
The script is easy to change and it's not a big deal to handle either requirement.
It's my opinion that users should be both able to and encouraged to build from source if they want to and my efficiency side doesn't see the need for the .o files. In that regard, I don't see the reason to distribute the partial build artifacts and I'm not sure if I could link a .o built on 10.6 on 10.12 but I haven't quite figured out the details on being able to build binaries which work better across the versions. So far, building on an older machine gives binaries which run ok on most newer versions, but not the other way around (at least with the GUI). That's one advantage I can see for including all the artifacts. This needs some more testing to know the full situation.
However, my change when writing the script was not meant as final decision in any way. As always, I put the work forward for review and feedback and did not receive any feedback on this aspects of things, even though I had put out custom app builds. In any case, I can do whatever is needed via consensus.
Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/
-------- Dan Wilcox @danomatika http://twitter.com/danomatika danomatika.com http://danomatika.com/ robotcowboy.com http://robotcowboy.com/