Append suggested-packaging-approach.adoc to packaging.adoc

This commit is contained in:
Nedko Arnaudov 2023-05-27 19:34:11 +03:00
parent e7f9654ed6
commit e2e8c153a0
3 changed files with 18 additions and 19 deletions

View File

@ -1,8 +1,7 @@
.PHONY: html html-mkdir
html: ./html/index.html
html: ./html/jackdbus-packaging.html
html: ./html/suggested-packaging-approach.html
html: ./html/packaging.html
html-mkdir:
@mkdir -vp html

View File

@ -40,3 +40,20 @@ Both D-Bus launcher (jackdbus executable) and classic launcher (jackd executable
* No JACK D-Bus aware control/monitor applications can be used. They will claim JACK server is not started (cannot be contacted) even when JACK server is actually running and normal JACK applications are connected and probably using it.
* PulseAudio will not know whether JACK server is running
* jackd and jackdbus will use different storage for JACK server configuration. jackd will be typically started through the ~/.jackdrc *script* or qjackctl. jackdbus reads and stores settings in ~/.config/jack/conf.xml
* "jack server frontend" - virtual package provided by "jackd" and "jackdbus" packages
* "jack server (library)" - package containing libjackserver.so at least. Maybe also: essential tools, drivers, inprocess clients.
* "jackd" - package containing jackd binary. This package depends on "jack server (library)"
* "jackdbus" - package containing jackdbus binary and jack_control script. This package depends on "jack server (library)"
* "jack client library" - package containing libjack.so
* "jack client library dev" - package containging headers and pkgconfig file for libjack.so
* "jack server library dev" - package containging headers and pkgconfig file for libjackserver.so
"jack client library" and "jack server (library") packages should be version coupled because they use internal IPC protocol that is not guaranteed to be compatible between versions.
All different releases of JACK should be considered internally incompatible - that is, it should never be considered possible to mix versions of the JACK server with other versions of the JACK library/ies, drivers or internal clients. Packaging should ensure that no packages associated with different releases of JACK are ever installed simultaneously. Especially, having two versions of libjack.so installed simultaneously, often causes JACK programs using one libjack version not being able to operate with JACK server of other version.
* app that uses jack as only audio interfaces, (jack_keyboard for example), depends on "jack client library" package and on the "jack server frontend" virtual package
* app that uses jack as alternative (not the only) audio interface, (mplayer for exmaple), depends on "jack client library" and suggests "jack server frontend" virtual package
* ardour depends on "jack client library" and depends on "jackd" package, because it can start jack server through jackd binary.
* qjackctl depends on "jack client library" and depends on "jack server frontend" package, because it can start jack server through either jackd or jackdbus binary.
* laditools depend on "jackdbus" only

View File

@ -1,17 +0,0 @@
* "jack server frontend" - virtual package provided by "jackd" and "jackdbus" packages
* "jack server (library)" - package containing libjackserver.so at least. Maybe also: essential tools, drivers, inprocess clients.
* "jackd" - package containing jackd binary. This package depends on "jack server (library)"
* "jackdbus" - package containing jackdbus binary and jack_control script. This package depends on "jack server (library)"
* "jack client library" - package containing libjack.so
* "jack client library dev" - package containging headers and pkgconfig file for libjack.so
* "jack server library dev" - package containging headers and pkgconfig file for libjackserver.so
"jack client library" and "jack server (library") packages should be version coupled because they use internal IPC protocol that is not guaranteed to be compatible between versions.
All different releases of JACK should be considered internally incompatible - that is, it should never be considered possible to mix versions of the JACK server with other versions of the JACK library/ies, drivers or internal clients. Packaging should ensure that no packages associated with different releases of JACK are ever installed simultaneously. Especially, having two versions of libjack.so installed simultaneously, often causes JACK programs using one libjack version not being able to operate with JACK server of other version.
* app that uses jack as only audio interfaces, (jack_keyboard for example), depends on "jack client library" package and on the "jack server frontend" virtual package
* app that uses jack as alternative (not the only) audio interface, (mplayer for exmaple), depends on "jack client library" and suggests "jack server frontend" virtual package
* ardour depends on "jack client library" and depends on "jackd" package, because it can start jack server through jackd binary.
* qjackctl depends on "jack client library" and depends on "jack server frontend" package, because it can start jack server through either jackd or jackdbus binary.
* laditools depend on "jackdbus" only