Source: dash
Version: 0.5.12-6
Tags: patch moreinfo
User: [email protected]
Usertags: dep17m2

Do not upload this patch to unstable yet!

We want to finalize the /usr-merge transition by moving all aliased
files from / to /usr via DEP17 to avoid negative effects arising from
aliasing. dash is quite special due to being involved in the bootstrap
set. I earlier contacted you about a "coordinated NMU" and this is the
patch for that. It must be uploaded concurrently with base-files, bash,
glibc and util-linux or debootstrap will fail. I'm thus tagging the bug
moreinfo. I'm happy to have it reviewed already and don't have a
concrete date for uploading yet, because we need to wait for time64 to
complete first.

Let me add a few explanations on the patch contents:
 * Moving the files is fairly obvious.
 * We earlier told people to manage their /bin/sh symlink using local
   diversions (when I removed the debconf stuff). This now breaks and
   people have to update their local diversions to /usr/bin/sh. Thus
   adding NEWS.
 * The smoke test fails. I've updated it.
 * The mmdebstrap test also fails when base-files is not updated. This
   will happen for trixie migration as the migration test will use
   trixie packages plus sid dash but not sid base-files. I'll talk to
   the release team to add appropriate test dependencies and migrate
   these packages together (or we have the same problems in trixie).

Helmut
diff --minimal -Nru dash-0.5.12/debian/ash.links dash-0.5.12/debian/ash.links
--- dash-0.5.12/debian/ash.links        2023-06-21 13:28:50.000000000 +0200
+++ dash-0.5.12/debian/ash.links        2024-01-24 10:00:47.000000000 +0100
@@ -1 +1 @@
-/bin/dash /bin/ash
+/usr/bin/dash /usr/bin/ash
diff --minimal -Nru dash-0.5.12/debian/changelog dash-0.5.12/debian/changelog
--- dash-0.5.12/debian/changelog        2023-06-21 13:28:50.000000000 +0200
+++ dash-0.5.12/debian/changelog        2024-01-24 10:00:47.000000000 +0100
@@ -1,3 +1,10 @@
+dash (0.5.12-6.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * DEP17: Move files to /usr. (Closes: #-1)
+
+ -- Helmut Grohne <[email protected]>  Wed, 24 Jan 2024 10:00:47 +0100
+
 dash (0.5.12-6) unstable; urgency=medium
 
   [ Johannes Schauer Marin Rodrigues ]
diff --minimal -Nru dash-0.5.12/debian/dash.NEWS dash-0.5.12/debian/dash.NEWS
--- dash-0.5.12/debian/dash.NEWS        2023-06-21 13:28:50.000000000 +0200
+++ dash-0.5.12/debian/dash.NEWS        2024-01-24 10:00:47.000000000 +0100
@@ -1,3 +1,13 @@
+dash (0.5.12-6.1) unstable; urgency=medium
+
+  * Changing the system shell has been possible by creating a local diversion
+    for /bin/sh. Due to DEP17, the path changes to /usr/bin and existing
+    diversions become ineffective reverting the sh symlink back to dash.
+    If you changed the system shell, please update your diversion to divert
+    /usr/bin/sh instead of /bin/sh.
+
+ -- Helmut Grohne <[email protected]>  Tue, 27 Feb 2024 11:04:14 +0100
+
 dash (0.5.5.1-2.1) unstable; urgency=low
 
   * The default system shell (/bin/sh) has been changed to dash for
diff --minimal -Nru dash-0.5.12/debian/dash.install 
dash-0.5.12/debian/dash.install
--- dash-0.5.12/debian/dash.install     2023-06-21 13:28:50.000000000 +0200
+++ dash-0.5.12/debian/dash.install     2024-01-24 10:00:31.000000000 +0100
@@ -1,3 +1,3 @@
-/usr/bin/dash  /bin
+/usr/bin/dash
 /usr/share
 debian/shells.d/dash /usr/share/debianutils/shells.d
diff --minimal -Nru dash-0.5.12/debian/dash.links dash-0.5.12/debian/dash.links
--- dash-0.5.12/debian/dash.links       2023-06-21 13:28:50.000000000 +0200
+++ dash-0.5.12/debian/dash.links       2024-01-24 10:00:44.000000000 +0100
@@ -1,2 +1,2 @@
-/bin/dash /bin/sh
+/usr/bin/dash /usr/bin/sh
 /usr/share/man/man1/dash.1 /usr/share/man/man1/sh.1
diff --minimal -Nru dash-0.5.12/debian/tests/smoke 
dash-0.5.12/debian/tests/smoke
--- dash-0.5.12/debian/tests/smoke      2023-06-21 13:28:50.000000000 +0200
+++ dash-0.5.12/debian/tests/smoke      2024-01-24 10:00:47.000000000 +0100
@@ -18,17 +18,18 @@
 diag(qx(ls -l /bin/bash));
 
 like(qx(dpkg -L dash),
-     qr{^/bin/sh$}m,
-     'dash must contain a /bin/sh symlink, for debootstrap');
+     qr{^/usr/bin/sh$}m,
+     'dash must contain a /usr/bin/sh symlink, for debootstrap');
 
 is(qx(echo hello), "hello\n");
 
-my $diverter = qx(dpkg-divert --listpackage /bin/sh);
+my $diverter = qx(dpkg-divert --listpackage /usr/bin/sh);
 
-ok($diverter eq "" or $diverter eq "LOCAL\n", '/bin/sh not diverted or local 
diversion');
-ok($diverter ne "dash\n", '/bin/sh not diverted by dash');
-ok($diverter ne "bash\n", '/bin/sh not diverted by bash');
+ok($diverter eq "" or $diverter eq "LOCAL\n", '/usr/bin/sh not diverted or 
local diversion');
+ok($diverter ne "dash\n", '/usr/bin/sh not diverted by dash');
+ok($diverter ne "bash\n", '/usr/bin/sh not diverted by bash');
 ok(like(realpath('/bin/sh'), qr{^(?:/usr)?/bin/dash}));
+ok(like(realpath('/usr/bin/sh'), qr{^(?:/usr)?/bin/dash}));
 
 my $tmpdir = File::Temp->newdir();
 chdir $tmpdir;
@@ -36,7 +37,7 @@
 is(system("dpkg-deb -X *.deb ."), 0);
 diag(qx(find . -ls));
 chdir $srcdir;
-like(readlink("$tmpdir/bin/sh"), qr{^(?:/bin/)?[bd]ash$},
-     'dash_*.deb must contain a /bin/sh symlink for debootstrap');
+like(readlink("$tmpdir/usr/bin/sh"), qr{^(?:/bin/)?[bd]ash$},
+     'dash_*.deb must contain a /usr/bin/sh symlink for debootstrap');
 
 done_testing;

Reply via email to