[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: New systemd service file path?



On Tue, 05 Oct 2021 at 06:14:26 -0700, Otto Kekäläinen wrote:
> So, which one of these paths should be used and why?
> - /lib/systemd/system/
> - /usr/lib/systemd/system/

tl;dr: Continue to use /lib/systemd/system.

Moving files to /usr/lib/systemd/system can cause debhelper >= 13.5.2
(and debhelper < 13.4) to not find them, and could cause upgrade issues
during the transition to merged-/usr under some circumstances (for example
moving from /lib to /usr/lib at the same time that a package Replaces
another package).

> Seems dh_systemd_enable still installs files into /lib/systemd/system/
> and I find it confusing that apparently Lintian errors on what
> debhelper does by default. Please enlighten me on what I have missed.

debhelper and lintian have both changed more than once recently, reacting
to each other's changes with less coordination than they would ideally
have had. (A reminder: the development suite is called "unstable" for a
reason...)

As of debhelper 13.5.2 and lintian 2.107.0, the situation is:

* systemd supports both /{,usr/}lib/systemd/system
* init-system-helpers supports both /{,usr/}lib/systemd/system
* lintian considers either /{,usr/}lib/systemd/system to be potentially valid
* debhelper installs units from debian/ in /lib/systemd/system
* debhelper looks for upstream units in /lib/systemd/system (only!)

So if an upstream project installs systemd system units,
please configure its build system in the Debian packaging to
install them into /lib/systemd/system so that debhelper will see
them. For example, in Autotools, this is conventionally spelled
"--with-systemdsystemunitdir=/lib/systemd/system". dbus is an example
of a package doing this correctly.

The Technical Committee should give more specific advice about the /usr
merge and /usr vs. the root filesystem soon. (I have written a draft
resolution and I'm waiting for feedback from others in the committee.)

It is likely that one of our recommendations will be that individual
packages should not move any more files from the root filesystem to /usr
(so files that were historically in /bin, /lib*, /sbin should continue
to be packaged as /bin, /lib*, /sbin in the data.tar.* of a .deb)
until we are sure that it has been prevented from breaking upgrades.

    smcv
    writing here as an individual, not on behalf of the TC


Reply to: