diff --git a/Installation-filesystem-layout.md b/Installation-filesystem-layout.md new file mode 100644 index 0000000..f4ff797 --- /dev/null +++ b/Installation-filesystem-layout.md @@ -0,0 +1,71 @@ +This page represents installation layout on a Linux system. + +# Binaries + +This includes: + +* `jackd` - classic JACK launcher executable +* `jackdbus` - D-Bus JACK service (installed if D-Bus integration is built) +* examples clients +* tools + +They are installed in `/bin/`. + +# Libraries + +The `libjack`, `libjacknet` and `libjackserver` libraries are installed in `/lib/`. + +A libtool-like installation is made with `.la` files and symbolic links, like this: + + libjack.la + libjack.so --> libjack.so.0.1.0 + libjack.so.0 --> libjack.so.0.1.0 + libjack.so.0.1.0 + +## Drivers + +Jack drivers are installed into `/lib/jack/` as dynamic libraries. + +## In-process clients + +In-process clients are installed into `/lib/jack/`. + +# D-Bus service file + +If `jackdbus` is being installed, a D-Bus service file is installed too. This file instructs the D-Bus session bus how to activate the JACK controller object upon request. + +By default the `org.jackaudio.service` file is installed in `/share/dbus-1/services/`. + +However, a user may force using the real D-Bus service directory by specifying `--enable-pkg-config-dbus-service-dir` when configuring the the sources for building. + +The D-Bus service file directory `/share/dbus-1/services/` will differ from the one specified in the pkg-config file of D-Bus when they are installed in different prefixes. If the service file is installed in a different prefix, the D-Bus session bus daemon should be instructed to search in the appropriate directory (out of scope of JACK installation process, as implemented in the distribution tarball). + +# Systemd unit + +A systemd unit file is installed as `/lib/systemd/user/jack@.service`. System-wide configuration files for this systemd unit should be put in `/etc/jack` and user configuration files in `~/.config/jack` with a `.conf` filename extension. + +# Headers + +C headers are installed in a JACK specific header directory, `/include/jack/`. + +# pkg-config + +`jack.pc` is installed in `/lib/pkgconfig/`. + +# User documentation + +Man pages are installed in `/share/man/man1/`. + +# Development documentation + +HTML documentation is installed in a JACK specific directory `/share/jack-audio-connection-kit`. + +The index file of the HTML documentation is in `/share/jack-audio-connection-kit/reference/html/`. + +# Additional notes + +Some unusual things related to installation relocateability: + +* in-process clients and drivers are loaded from a fixed path (`/lib/jack/`), specified literally during build. Drivers load directory may be overridden using the `JACK_DRIVER_DIR` environment variable. At the moment there is no way to override the in-process client directory. +* The D-Bus session bus daemon configuration may need modification to be able to auto-activate the JACK controller service. +* The `jack.pc` file contains ``.