Package: luanti-server Version: 5.10.0+dfsg-2 Severity: serious Tags: patch User: helm...@debian.org Usertags: dep17p1 Control: affects -1 + minetest-server
Hi Tobi, Your luanti-server upload introduced a /usr-move regression. The systemd units were formerly part of minetest-server and are now in luanti-server. At the same time, they moved from /lib to /usr/lib. This is a classical DEP17 P1 situation. I recommend upgrading the Breaks+Replaces relation to Conflicts as well as introducing brief protective diversions. You'll find them in the attached patch. Unfortunately, I was not able to test them as luanti-server has an unsatisfiable dependency. Please verify that no diversions exist once luanti-server has been successfully installed. They should only exist from preinst to postinst and not beyond. Helmut
diff --minimal -Nru luanti-5.10.0+dfsg/debian/changelog luanti-5.10.0+dfsg/debian/changelog --- luanti-5.10.0+dfsg/debian/changelog 2025-02-13 17:20:14.000000000 +0100 +++ luanti-5.10.0+dfsg/debian/changelog 2025-02-14 13:15:10.000000000 +0100 @@ -1,3 +1,11 @@ +luanti (5.10.0+dfsg-2.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Mitigate file loss due to concurrent package rename and aliasing change + (DEP17 P1 M8, Closes: #-1). + + -- Helmut Grohne <hel...@subdivi.de> Fri, 14 Feb 2025 13:15:10 +0100 + luanti (5.10.0+dfsg-2) unstable; urgency=medium * Team upload. diff --minimal -Nru luanti-5.10.0+dfsg/debian/control luanti-5.10.0+dfsg/debian/control --- luanti-5.10.0+dfsg/debian/control 2025-02-13 17:19:05.000000000 +0100 +++ luanti-5.10.0+dfsg/debian/control 2025-02-14 12:41:26.000000000 +0100 @@ -84,8 +84,7 @@ Package: luanti-server Architecture: any -Replaces: minetest-server (<< 5.10.0+dfsg-1~) -Breaks: minetest-server (<< 5.10.0+dfsg-1~) +Conflicts: minetest-server (<< 5.10.0+dfsg-1~) Depends: luanti-data (= ${source:Version}), sse2-support [i386], diff --minimal -Nru luanti-5.10.0+dfsg/debian/luanti-server.lintian-overrides luanti-5.10.0+dfsg/debian/luanti-server.lintian-overrides --- luanti-5.10.0+dfsg/debian/luanti-server.lintian-overrides 1970-01-01 01:00:00.000000000 +0100 +++ luanti-5.10.0+dfsg/debian/luanti-server.lintian-overrides 2025-02-14 13:15:10.000000000 +0100 @@ -0,0 +1,7 @@ +# begin-remove-after: released:trixie +# DEP17 P1 M8: Protective diversion for moved file +luanti-server: diversion-for-unknown-file lib/systemd/system/minetest-server.service [preinst:*] +luanti-server: diversion-for-unknown-file lib/systemd/system/minetest-server@.service [preinst:*] +luanti-server: systemd-diversion lib/systemd/system/minetest-server.service [preinst:*] +luanti-server: systemd-diversion lib/systemd/system/minetest-server@.service [preinst:*] +# end-remove-after: released:trixie diff --minimal -Nru luanti-5.10.0+dfsg/debian/luanti-server.postinst luanti-5.10.0+dfsg/debian/luanti-server.postinst --- luanti-5.10.0+dfsg/debian/luanti-server.postinst 2025-02-13 17:19:05.000000000 +0100 +++ luanti-5.10.0+dfsg/debian/luanti-server.postinst 2025-02-14 13:10:59.000000000 +0100 @@ -22,6 +22,14 @@ mv $OLD_SERVER_LOG_PATH /var/log/luanti/default/server.log fi fi + + # begin-remove-after: released:trixie + # DEP17 P1 M8: Protective diversion for moved file + if dpkg --compare-versions "$MOST_RECENTLY_CONFIGURED_VERSION" lt 5.10.0+dfgs-2.1~; then + dpkg-divert --remove --no-rename --divert /lib/systemd/system/minetest-server.service.usr-is-merged /lib/systemd/system/minetest-server.service + dpkg-divert --remove --no-rename --divert /lib/systemd/system/minetest-server.service@.usr-is-merged /lib/systemd/system/minetest-server@.service + fi + # end-remove-after fi #DEBHELPER# diff --minimal -Nru luanti-5.10.0+dfsg/debian/luanti-server.postrm luanti-5.10.0+dfsg/debian/luanti-server.postrm --- luanti-5.10.0+dfsg/debian/luanti-server.postrm 2025-02-13 17:19:05.000000000 +0100 +++ luanti-5.10.0+dfsg/debian/luanti-server.postrm 2025-02-14 13:13:02.000000000 +0100 @@ -11,4 +11,12 @@ rm --recursive --force /var/log/minetest fi +# begin-remove-after: released:trixie +# DEP17 P1 M8: Protective diversion for moved file +if [ "$1" = "abort-upgrade" ] && dpkg --compare-versions "$2" lt 5.10.0+dfgs-2.1~; then + dpkg-divert --remove --no-rename --divert /lib/systemd/system/minetest-server.service.usr-is-merged /lib/systemd/system/minetest-server.service + dpkg-divert --remove --no-rename --divert /lib/systemd/system/minetest-server.service@.usr-is-merged /lib/systemd/system/minetest-server@.service +fi + +# end-remove-after #DEBHELPER# diff --minimal -Nru luanti-5.10.0+dfsg/debian/luanti-server.preinst luanti-5.10.0+dfsg/debian/luanti-server.preinst --- luanti-5.10.0+dfsg/debian/luanti-server.preinst 1970-01-01 01:00:00.000000000 +0100 +++ luanti-5.10.0+dfsg/debian/luanti-server.preinst 2025-02-14 13:15:04.000000000 +0100 @@ -0,0 +1,13 @@ +#!/bin/sh + +set -e + +# begin-remove-after: released:trixie +# DEP17 P1 M8: Protective diversion for moved file +if [ "$1" = install ] || { [ "$1" = upgrade ] && dpkg --compare-versions "$2" lt 5.10.0+dfgs-2.1~; } ; then + dpkg-divert --add --no-rename --divert /lib/systemd/system/minetest-server.service.usr-is-merged /lib/systemd/system/minetest-server.service + dpkg-divert --add --no-rename --divert /lib/systemd/system/minetest-server.service@.usr-is-merged /lib/systemd/system/minetest-server@.service +fi + +# end-remove-after +#DEBHELPER#