[Jack-Devel] Major update of jack2 build system

Karl Lindén karl.j.linden at gmail.com
Sat Apr 11 19:05:52 CEST 2015


Hi jack-devel list!

[This part is technical and can be skipped, if you like]
To ease packaging jack2, its build system has received a major update [1]. The initial intent was to simply remove automagic dependencies (on celt, opus, libsamplerate, libsndfile, readline), which are bad [2] for source based distributions, such as Gentoo, but after a discussion [3] the decision was taken to reimplement all options that have third-party dependencies using a special option class, so that the build system by default builds against foo if available, refrains from doing so if --foo=no is given and if --foo=yes the dependency is hard-required. To preserve backwards compatibility (and save time writing "=yes") --foo is the same as --foo=yes.

Apart from this change pkg-config is now used whenever possible instead of only header checks. (It is bad to just check for headers without checking for the accompanying library.) This eases packaging (and cross-compiling) somewhat. Also the check for readline has been improved (it now checks for header existence too instead of just library existence), in effect making it easier to compile jack2 on binary distros (where the library existence does not imply header existence). (Correct me if I'm wrong; I have not compiled jack2 on a binary distro.)
[End of skip part]

So apart from the above points, what are the goodies for actual users? Well, now users do not have to explicitly state --alsa, --firewire or such to get the correct backend built since it will be automatically detected if --alsa, --firewire, etc. is not given.

Now the important part. Like with all big software changes, this might introduce some bugs that I have not found during testing. (I did test the option I could with both --foo=yes and --foo=no!) Some option have not been tested at all since I lack the prerequisites, these options are --iio, --portaudio and --winmme, but since all option use the same class the logic should be the same, so they should work, but you can never be too sure.

In conclusion, I want you to be on the lookout for bugs or weird stuff (as always!) when building jack2. Report the bugs and I will do my very best to squash them!

Regards,
Karl Lindén (lilrc)

[1] https://github.com/jackaudio/jack2/pull/113
[2] https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Automagic_dependencies
[3] https://github.com/jackaudio/jack2/pull/110



More information about the Jackaudio mailing list