Package: release.debian.org
Severity: normal
Tags: bullseye
User: release.debian@packages.debian.org
Usertags: pu
X-Debbugs-Cc: usrme...@packages.debian.org
Control: affects -1 + src:usrmerge
[ Reason ]
Improve the usrmerge experience in bookworm.
A few more ancient packages were found that need to be removed first for
usrmerge to succeed, add versioned Breaks against them.
Depending on the time a system was bootstrapped or converted, there may
be biarch directories/links not owned by any package
(e.g. /usr/libx32 and /libx32 -> /usr/libx32)
Since these are now handled by the respective packages from src:glibc,
bootstrapping and conversion no longer create them and we can clean them
up if they are empty and not owned by a package.
Clarify errors in case something goes wrong during usrmerge conversion.
[ Impact ]
Unclear errors if something fails.
Failing usrmerge conversion if certain ancient packages are installed.
Leftover unowned files that may disappear on certain upgrade paths and
confuse CI tools.
Inconsistent handling of /etc/shells and shells.state.
[ Tests ]
Local piuparts tests of bookworm (w/ updated package) and various
distupgrade tests from bullseye (or earlier) to bookworm (w/ updated
package).
[ Risks ]
Low.
[ Checklist ]
[*] *all* changes are documented in the d/changelog
[*] I reviewed all changes and I approve them
[*] attach debdiff against the package in (old)stable
[*] the issue is verified as fixed in unstable
[ Changes ]
+usrmerge (37~deb12u1) bookworm; urgency=medium
+
+ * Rebuild for bookworm.
+
+ -- Andreas Beckmann Mon, 27 Nov 2023 11:35:49 +0100
+
+usrmerge (37) unstable; urgency=medium
+
+ [ Johannes Schauer Marin Rodrigues ]
+ * Use $DPKG_ROOT in usr-is-merged.postinst. (Closes: #1050755)
+
+ -- Marco d'Itri Tue, 29 Aug 2023 02:14:10 +0200
+
+usrmerge (36) unstable; urgency=medium
+
+ * Added code by Andreas Beckmann to clean up the biarch libraries
+directories when they are not needed. (Closes: #1038853)
+ * Changed postinst to not run convert-etc-shells again on already
+converted systems and to run update-shells to make sure that the
+new shells.state file introduced in bookworm is up to date.
+(Closes: #1033167)
+ * Improved the instructions to deal with a mounted /lib/modules/,
+which can also happen on some Xen-based systems. (Closes: 1034346)
+ * Greatly improved the error messages when commands execution fails
+(see #1037362).
+ * Added a versioned conflict with libc-bin, only relevant for the
+conversion script. (Closes: #1037362)
+ * Added a versioned conflict with dhcpcd. (Closes: #1038832)
+ * Added a versioned conflict with libparted1.8-10. (Closes: #1038832)
+ * Added a versioned conflict with lustre-utils. (Closes: #1038832)
+
+ -- Marco d'Itri Sun, 27 Aug 2023 13:56:49 +0200
convert-usrmerge | 34 +++---
debian/README.Debian | 6 ++
debian/changelog | 33 +
debian/control| 9 -
debian/usr-is-merged.postinst | 28
debian/usrmerge.postinst | 28 ++--
6 files changed, 116 insertions(+), 22 deletions(-)
[ Other info ]
This is a rebuild of a package that was previously in sid and testing.
(The current version (38) in sid made usrmerge mandatory in all cases
and is not applicable to bookworm (which supports the usrmerge opt-out.)
Andreas
diff --git a/convert-usrmerge b/convert-usrmerge
index e9398f5..00200f3 100755
--- a/convert-usrmerge
+++ b/convert-usrmerge
@@ -28,6 +28,8 @@ my %Ignore_In_Root = map { $_ => 1 } qw(
/lib/udev/hwdb.bin
);
+$ENV{LC_ALL} = 'C';
+
check_free_space();
check_overlayfs();
@@ -217,9 +219,11 @@ sub convert_file {
# To prevent a failure later, the regular files of the libraries used by
# cp and mv must be converted before of the symlinks that point to them.
sub early_conversion_files {
+ no autodie qw(close);
+
open(my $fh, '-|', 'ldd /bin/cp');
my @ldd = <$fh>;
- close $fh;
+ close $fh or fatal("Failed to execute 'ldd /bin/cp'");
# the libraries
my @list = grep { $_ } map { /^\s+\S+ => (\/\S+) / and $1 } @ldd;
@@ -340,9 +344,9 @@ END
##
sub check_free_space {
- local $ENV{LC_ALL} = 'C';
- my $fh;
+ no autodie qw(close);
+ my $fh;
open($fh, '-|', 'stat --dereference --file-system --format="%i" /');
my $root_id = <$fh>;
die "stat / failed" if not defined $root_id;
@@ -361,14 +365,14 @@ sub check_free_space {
my $free = $free_blocks * ($bs / 1024);
my @dirs = grep { -e $_ } directories_to_merge();
- open($fh, '-|',
- "du --summarize --no-dereference --total --block-size=1K
@dirs");
+ my $cmd = "du --summarize --no-dereference --total --block-size=1K
@dir