Control: tags -1 + patch

On Wed, Nov 08, 2023 at 08:45:55PM +0100, Helmut Grohne wrote:
> I'm attaching a patch. I don't have high confidence, because it fails
> piuparts with left-over files. Given the mess in piuparts, I have no
> intentions to further test this. You may use the patch as a starting
> point.

I'm now glad I missed attaching the patch. The same patch for
molly-guard was horribly broken.

Based on the work on molly-guard, I'm ataching an updated patch and it
really is a copy of the one on bfh-container #1055509, so see there for
the why its done the way its done.

Also please remember to go for experimental first (just like bfh-container).

Helmut
diff -Nru progress-linux-metapackages-20221002/debian/changelog 
progress-linux-metapackages-20221002/debian/changelog
--- progress-linux-metapackages-20221002/debian/changelog       2023-12-08 
10:53:05.000000000 +0100
+++ progress-linux-metapackages-20221002/debian/changelog       2023-12-19 
14:51:05.000000000 +0100
@@ -1,3 +1,11 @@
+progress-linux-metapackages (20221002-10.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * Drop diversion migration from bullseye.
+  * Duplicate diversion via DEP17 M18. (Closes: #1055511)
+
+ -- Helmut Grohne <hel...@subdivi.de>  Tue, 19 Dec 2023 14:51:05 +0100
+
 progress-linux-metapackages (20221002-10) sid; urgency=medium
 
   * Uploading to sid.
diff -Nru 
progress-linux-metapackages-20221002/debian/progress-linux-container.postrm 
progress-linux-metapackages-20221002/debian/progress-linux-container.postrm
--- progress-linux-metapackages-20221002/debian/progress-linux-container.postrm 
2023-12-08 10:43:13.000000000 +0100
+++ progress-linux-metapackages-20221002/debian/progress-linux-container.postrm 
2023-12-19 14:50:55.000000000 +0100
@@ -6,12 +6,12 @@
        remove)
                for FILE in halt poweroff reboot shutdown coldreboot
                do
-                       dpkg-divert --package progress-linux-container --quiet 
--remove --rename --divert /lib/container/divert/${FILE}.orig /sbin/${FILE}
+                       dpkg-divert --package progress-linux-container --quiet 
--remove --rename --divert "/lib/container/divert/$FILE.orig.usr-is-merged" 
"/sbin/$FILE"
                done
 
-               for FILE in pm-hibernate pm-suspend pm-suspend-hybrid
+               for FILE in halt poweroff reboot shutdown coldreboot 
pm-hibernate pm-suspend pm-suspend-hybrid
                do
-                       dpkg-divert --package progress-linux-container --quiet 
--remove --rename --divert /lib/container/divert/${FILE}.orig /usr/sbin/${FILE}
+                       dpkg-divert --package progress-linux-container --quiet 
--remove --rename --divert "/usr/lib/container/divert/$FILE.orig" 
"/usr/sbin/$FILE"
                done
                ;;
 
diff -Nru 
progress-linux-metapackages-20221002/debian/progress-linux-container.preinst 
progress-linux-metapackages-20221002/debian/progress-linux-container.preinst
--- 
progress-linux-metapackages-20221002/debian/progress-linux-container.preinst    
    2023-12-08 10:43:13.000000000 +0100
+++ 
progress-linux-metapackages-20221002/debian/progress-linux-container.preinst    
    2023-12-19 14:51:05.000000000 +0100
@@ -4,30 +4,40 @@
 
 case "${1}" in
        install|upgrade)
-               # upgrade from bullseye
-               if ls /lib/open-infrastructure/container/divert/*.orig > 
/dev/null 2>&1
-               then
-                       for FILE in halt poweroff reboot shutdown coldreboot
-                       do
-                               dpkg-divert --package progress-linux-container 
--quiet --remove --rename --divert 
/lib/open-infrastructure/container/divert/${FILE}.orig /sbin/${FILE}
-                       done
-
-                       for FILE in pm-hibernate pm-suspend pm-suspend-hybrid
-                       do
-                               dpkg-divert --package progress-linux-container 
--quiet --remove --rename --divert 
/lib/open-infrastructure/container/divert/${FILE}.orig /usr/sbin/${FILE}
-                       done
-               fi
-
                mkdir -p /lib/container/divert
 
                for FILE in halt poweroff reboot shutdown coldreboot
                do
-                       dpkg-divert --package progress-linux-container --quiet 
--add --rename --divert /lib/container/divert/${FILE}.orig /sbin/${FILE}
+                       TRUENAMEUSR=$(dpkg-divert --truename "/usr/sbin/$FILE")
+                       TRUENAMEALIAS=$(dpkg-divert --truename "/sbin/$FILE")
+                       RENAME_FLAG=--no-rename
+                       if test "$TRUENAMEUSR" = "/usr/sbin/$FILE"; then
+                               if test "$TRUENAMEALIAS" = "/sbin/$FILE"; then
+                                       RENAME_FLAG=--rename
+                               fi
+                               dpkg-divert --package progress-linux-container 
--quiet --add "$RENAME_FLAG" --divert "/usr/lib/container/divert/$FILE.orig" 
"/usr/sbin/$FILE"
+                       fi
+                       # DEP17 M18 duplicated diversion. Can be removed after 
trixie.
+                       if test "$TRUENAMEALIAS" = "/sbin/$FILE"; then
+                               dpkg-divert --package progress-linux-container 
--quiet --add "$RENAME_FLAG" --divert 
"/lib/container/divert/$FILE.orig.usr-is-merged" "/sbin/$FILE"
+                       elif test "$TRUENAMEALIAS" != 
"/lib/container/divert/$FILE.orig.usr-is-merged"; then
+                               dpkg-divert --package progress-linux-container 
--quiet --remove --no-rename "/sbin/$FILE"
+                               dpkg-divert --package progress-linux-container 
--quiet --add --no-rename --divert 
"/lib/container/divert/$FILE.orig.usr-is-merged" "/sbin/$FILE"
+                               if test -e "$TRUENAMEALIAS" || test -h 
"$TRUENAMEALIAS"; then
+                                       mv "$TRUENAMEALIAS" 
"/lib/container/divert/$FILE.orig.usr-is-merged"
+                               fi
+                       fi
                done
 
                for FILE in pm-hibernate pm-suspend pm-suspend-hybrid
                do
-                       dpkg-divert --package progress-linux-container --quiet 
--add --rename --divert /lib/container/divert/${FILE}.orig /usr/sbin/${FILE}
+                       TRUENAMEUSR=$(dpkg-divert --truename "/usr/sbin/$FILE")
+                       if test "$TRUENAMEUSR" = 
"/lib/container/divert/$FILE.orig"; then
+                               dpkg-divert --package progress-linux-container 
--quiet --remove --no-rename "/usr/sbin/$FILE"
+                               dpkg-divert --package progress-linux-container 
--quiet --add --no-rename --divert "/usr/lib/container/divert/$FILE.orig" 
"/usr/sbin/$FILE"
+                       else
+                               dpkg-divert --package progress-linux-container 
--quiet --add --rename --divert "/usr/lib/container/divert/$FILE.orig" 
"/usr/sbin/$FILE"
+                       fi
                done
                ;;
 

Reply via email to