Install and use sysusers.d/tmpfiles.d config files
authorLuca Boccassi <luca.boccassi@gmail.com>
Sun, 3 May 2026 13:47:37 +0000 (14:47 +0100)
committerLuca Boccassi <luca.boccassi@gmail.com>
Sun, 3 May 2026 13:47:37 +0000 (14:47 +0100)
sysusers.d/tmpfiles.d config files allow a package to use declarative
configuration instead of manually written maintainer scripts.
This also allows image-based systems to be created with /usr/ only, and
also allows for factory resetting a system and recreating /etc/ on boot.

https://www.freedesktop.org/software/systemd/man/latest/sysusers.d.html

debian/control
debian/dcmtk.postinst
debian/dcmtk.sysusers [new file with mode: 0644]
debian/dcmtk.tmpfiles [new file with mode: 0644]

index 68ddd8bde4008b434e915628172e9912d558a997..064af5ebd3aabe9d03b83e1cc802180b7abece0a 100644 (file)
@@ -4,6 +4,7 @@ Uploaders: Gert Wollny <gewo@debian.org>, Mathieu Malaterre <malat@debian.org>
 Section: science
 Build-Depends: cmake,
                debhelper-compat (= 13),
+               dh-sequence-installsysusers,
                dpkg-dev (>= 1.22.5),
                gettext,
                help2man,
@@ -24,7 +25,7 @@ Homepage: https://dicom.offis.de/dcmtk
 
 Package: dcmtk
 Architecture: any
-Depends: adduser, ${misc:Depends}, ${shlibs:Depends}
+Depends: ${misc:Depends}, ${shlibs:Depends}
 Description: OFFIS DICOM toolkit command line utilities
  DCMTK includes a collection of libraries and applications for examining,
  constructing and converting DICOM image files, handling offline media,
index 525636d9c8c5adedf3ffcaaa31a307ba78da7a7a..4ed8adcd999ee0195ef0be6bf98792f6a1890ab5 100644 (file)
@@ -2,24 +2,6 @@
 
 set -e
 
-# Create dcmtk user and group
-
-if ! getent passwd dcmtk >/dev/null 2>&1; then
-    if ! getent group dcmtk > /dev/null 2>&1; then
-       echo "Adding \`dcmtk' group to system ..."
-       addgroup --quiet --system dcmtk || true
-    fi
-    echo "Adding \`dcmtk' user to system ..."
-    adduser --quiet --system --ingroup dcmtk --home /var/lib/dcmtk/db \
-       --shell /usr/sbin/nologin dcmtk || true
-fi
-
-# work around possible adduser bug, see #119366
-[ -d /var/lib/dcmtk/db ] || mkdir -p /var/lib/dcmtk/db
-chmod 755 /var/lib/dcmtk/db
-chown -h dcmtk:dcmtk /var/lib/dcmtk/db || true
-
-
 # Handle imagectn -> dcmqrdb transition in (3.5.3 -> 3.5.4)
 
 
diff --git a/debian/dcmtk.sysusers b/debian/dcmtk.sysusers
new file mode 100644 (file)
index 0000000..149b92f
--- /dev/null
@@ -0,0 +1 @@
+u! dcmtk - - /var/lib/dcmtk/db /usr/sbin/nologin
diff --git a/debian/dcmtk.tmpfiles b/debian/dcmtk.tmpfiles
new file mode 100644 (file)
index 0000000..095d3a7
--- /dev/null
@@ -0,0 +1,2 @@
+d /var/lib/dcmtk/db 0755 dcmtk dcmtk
+Z /var/lib/dcmtk/db 0755 dcmtk dcmtk