Package: debhelper
Version: 12.1.1ubuntu1~ubuntu18.04.1
Severity: important
Tags: upstream

Dear Maintainer,

The `dh_installsystemduser` script contains:

```
# PROMISE: DH NOOP WITHOUT tmp(usr/lib/systemd/user) user.service
```

This indicates to `dh` that the script will do nothing unless there's a
`usr/lib/systemd/user` folder in the package temporary folder or there's
a `package.user.service` file in the `debian` directory.

Unfortunately, there are a few cases where this will declare a NOOP
where there actually was work to do:

* There's only `package.user.timer` (or `socket`, `target`, `path`)
  files
* There's only `package@.user.service` files
* Any combination of the above

In these cases, `dh` won't even bother to call into
`dh_installsystemduser`, since it thinks it won't do anything
interesting.

The fix for the first bullet is simply to add `user.socket user.target
user.path user.timer` to the `PROMISE: DH NOOP WITHOUT` line.  The
second seems harder, the NOOP engine seems to assume that any
package-related files will be called `package.somthing` but these files
are called `package@.something` which doesn't seem to be representable.

A workaround is to (rather lamely) override the stage in `debian/rules`:

```make
%:
  dh $@

override_dh_installsystemduser:
  dh_installsystemduser
```

since this bypasses the skip-check and runs the helper regardless.

Although this was seen on the Ubuntu packaging of debhelper, it appears
to still be the case in the trunk version:

https://salsa.debian.org/debian/debhelper/blob/master/dh_installsystemduser#L86

Thanks,

Andy

-- System Information:
Debian Release: buster/sid
  APT prefers bionic-updates
  APT policy: (500, 'bionic-updates'), (500, 'bionic-security'), (500, 
'bionic'), (100, 'bionic-backports')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.5.5-050505-generic (SMP w/4 CPU cores)
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), 
LANGUAGE=en_GB:en (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages debhelper depends on:
ii  autotools-dev            20180224.1
ii  dh-autoreconf            17
ii  dh-strip-nondeterminism  0.040-1.1~build1
ii  dpkg                     1.19.0.5ubuntu2.3
ii  dpkg-dev                 1.19.0.5ubuntu2.3
ii  dwz                      0.12-2
ii  file                     1:5.32-2ubuntu0.3
ii  libdpkg-perl             1.19.0.5ubuntu2.3
ii  man-db                   2.8.3-2ubuntu0.1
ii  perl                     5.26.1-6ubuntu0.3
ii  po-debconf               1.0.20

debhelper recommends no packages.

Versions of packages debhelper suggests:
ii  dh-make  2.201701

-- no debconf information

Reply via email to