Package: samba-ad-dc
Version: 2:4.20.1+dfsg-3
Severity: serious
Tags: patch
User: helm...@debian.org
Usertags: dep17p1
Control: affects -1 + samba

Hi,

/lib/systemd/system/samba-ad-dc.service is part of the samba package
in the following versions:
 * 2:4.13.13+dfsg-1~deb11u5: bullseye                                           
      
 * 2:4.13.13+dfsg-1~deb11u6: bullseye-security|bullseye-proposed-updates        
      
 * 2:4.17.12+dfsg-0+deb12u1: bookworm|bookworm-security                         
      
 * 2:4.17.12+dfsg-0+deb12u1~bpo11+1: bullseye-backports                         
      
 * 2:4.17.9+dfsg-0+deb12u3: bookworm-updates                                    
      
 * 2:4.19.6+dfsg-3~bpo12+1: bookworm-backports                                  
      

/usr/lib/systemd/system/samba-ad-dc.service is now part of samba-ad-dc.
Since these actually refer to the same file via different paths (due to
/usr-move), we produce a DEP17 P1 problem and the declared Replaces are
ineffective leading to file loss in an upgrade scenario (what the file
move moratorium meant to prevent). This needs to be mitigated and I am
attaching the necessary patch.

Helmut
diff -Nru samba-4.20.1+dfsg/debian/changelog samba-4.20.1+dfsg/debian/changelog
--- samba-4.20.1+dfsg/debian/changelog  2024-05-26 17:48:17.000000000 +0200
+++ samba-4.20.1+dfsg/debian/changelog  2024-05-28 13:37:34.000000000 +0200
@@ -1,3 +1,10 @@
+samba (2:4.20.1+dfsg-3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Mitigate ineffective replaces due to /usr-move (DEP17 P1). (Closes: #-1)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 28 May 2024 13:37:34 +0200
+
 samba (2:4.20.1+dfsg-3) unstable; urgency=medium
 
   * d/rules: move samba-common install to d/samba-common.install
diff -Nru samba-4.20.1+dfsg/debian/control samba-4.20.1+dfsg/debian/control
--- samba-4.20.1+dfsg/debian/control    2024-05-26 14:33:25.000000000 +0200
+++ samba-4.20.1+dfsg/debian/control    2024-05-28 12:36:04.000000000 +0200
@@ -203,8 +203,10 @@
 Enhances: bind9, ntp
 Breaks:   samba-ad-provision (<< ${source:Upstream-Version}),
 # files moved from samba & samba-common-bin in 4.20.1-2:
-         samba (<< 2:4.20.1+dfsg-2~), samba-common-bin (<< 2:4.20.1+dfsg-2~),
-Replaces: samba (<< 2:4.20.1+dfsg-2~), samba-common-bin (<< 2:4.20.1+dfsg-2~),
+         samba-common-bin (<< 2:4.20.1+dfsg-2~),
+Replaces: samba-common-bin (<< 2:4.20.1+dfsg-2~),
+# Breaks+Replaces upgraded to Conflicts for DEP17 + /usr-move
+Conflicts: samba (<< 2:4.20.1+dfsg-2~),
 Description: Samba control files to run AD Domain Controller
  Samba is an implementation of the SMB/CIFS protocol for Unix systems,
  providing support for cross-platform file and printer sharing with
diff -Nru samba-4.20.1+dfsg/debian/samba-ad-dc.lintian-overrides 
samba-4.20.1+dfsg/debian/samba-ad-dc.lintian-overrides
--- samba-4.20.1+dfsg/debian/samba-ad-dc.lintian-overrides      1970-01-01 
01:00:00.000000000 +0100
+++ samba-4.20.1+dfsg/debian/samba-ad-dc.lintian-overrides      2024-05-28 
13:37:34.000000000 +0200
@@ -0,0 +1,3 @@
+# begin-remove-after: trixie
+diversion-for-unknown-file lib/systemd/system/samba-ad-dc.service [preinst:*]
+# end-remove-after
diff -Nru samba-4.20.1+dfsg/debian/samba-ad-dc.postinst 
samba-4.20.1+dfsg/debian/samba-ad-dc.postinst
--- samba-4.20.1+dfsg/debian/samba-ad-dc.postinst       1970-01-01 
01:00:00.000000000 +0100
+++ samba-4.20.1+dfsg/debian/samba-ad-dc.postinst       2024-05-28 
13:37:30.000000000 +0200
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# begin-remove-after: released:trixie
+# protective diversion of files moved from / to /usr, to avoid file loss.
+# Only for upgrades.
+if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ]; then
+       dpkg-divert --package #PACKAGE# --no-rename \
+               --divert /lib/systemd/system/samba-ad-dc.service.usr-is-merged \
+               --remove /lib/systemd/system/samba-ad-dc.service
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0
diff -Nru samba-4.20.1+dfsg/debian/samba-ad-dc.preinst 
samba-4.20.1+dfsg/debian/samba-ad-dc.preinst
--- samba-4.20.1+dfsg/debian/samba-ad-dc.preinst        1970-01-01 
01:00:00.000000000 +0100
+++ samba-4.20.1+dfsg/debian/samba-ad-dc.preinst        2024-05-28 
13:36:29.000000000 +0200
@@ -0,0 +1,15 @@
+#!/bin/sh
+
+# begin-remove-after: released:trixie
+# protective diversion of files moved from / to /usr, to avoid file loss.
+# Only for upgrades.
+if [ "$1" = "upgrade" ] || [ "$1" = "install" ]; then
+       dpkg-divert --package #PACKAGE# --no-rename \
+               --divert /lib/systemd/system/samba-ad-dc.service.usr-is-merged \
+               --add /lib/systemd/system/samba-ad-dc.service
+fi
+# end-remove-after
+
+#DEBHELPER#
+
+exit 0

Reply via email to