Bug#1061274: coreutils: DEP17: move files to /usr

2024-01-22 Thread Helmut Grohne
On Sun, Jan 21, 2024 at 11:06:41PM +0100, Helmut Grohne wrote:
> I've prepared a patch for performing the conversion in a way that
> simplifies the packaging. This patch must not be backported to
> bookworm-backports as the moratorium still applies there, but I think
> backports of coreutils are fairly unlikely. The patch also allows us to
> get rid of the remaining maintainer scripts.

IRC user cacin observed that my patch left an empty /bin directory.
Thanks. I'm attaching an updated patch that takes care of it.

Helmut
diff --minimal -Nru coreutils-9.4/debian/changelog 
coreutils-9.4/debian/changelog
--- coreutils-9.4/debian/changelog  2024-01-02 14:54:03.0 +0100
+++ coreutils-9.4/debian/changelog  2024-01-21 22:33:08.0 +0100
@@ -1,3 +1,10 @@
+coreutils (9.4-3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * DEP17: Move files to /usr. (Closes: #-1)
+
+ -- Helmut Grohne   Sun, 21 Jan 2024 22:33:08 +0100
+
 coreutils (9.4-3) unstable; urgency=low
 
   * remove arch restriction from libssl-dev build-depend
diff --minimal -Nru coreutils-9.4/debian/control coreutils-9.4/debian/control
--- coreutils-9.4/debian/control2024-01-02 14:22:27.0 +0100
+++ coreutils-9.4/debian/control2024-01-21 22:33:08.0 +0100
@@ -11,6 +11,7 @@
 Pre-Depends: ${shlibs:Depends}, ${misc:Pre-Depends}
 Essential: yes
 Depends: ${misc:Depends}
+Breaks: usrmerge (<< 39)
 Description: GNU core utilities
  This package contains the basic file, shell and text manipulation
  utilities which are expected to exist on every operating system.
diff --minimal -Nru coreutils-9.4/debian/coreutils.dirs 
coreutils-9.4/debian/coreutils.dirs
--- coreutils-9.4/debian/coreutils.dirs 2014-09-01 15:51:06.0 +0200
+++ coreutils-9.4/debian/coreutils.dirs 2024-01-21 22:33:08.0 +0100
@@ -1,2 +1 @@
-bin
 usr/share/doc/coreutils
diff --minimal -Nru coreutils-9.4/debian/coreutils.postinst 
coreutils-9.4/debian/coreutils.postinst
--- coreutils-9.4/debian/coreutils.postinst 2022-09-20 17:04:38.0 
+0200
+++ coreutils-9.4/debian/coreutils.postinst 1970-01-01 01:00:00.0 
+0100
@@ -1,8 +0,0 @@
-#!/bin/sh
-set -e
-
-if [ "$1" = 'configure' -a ! -e "$DPKG_ROOT/usr/bin/touch" ]; then
-  ln -s /bin/touch "$DPKG_ROOT/usr/bin/touch"
-fi
-
-#DEBHELPER#
diff --minimal -Nru coreutils-9.4/debian/coreutils.postrm 
coreutils-9.4/debian/coreutils.postrm
--- coreutils-9.4/debian/coreutils.postrm   2022-09-20 17:04:49.0 
+0200
+++ coreutils-9.4/debian/coreutils.postrm   1970-01-01 01:00:00.0 
+0100
@@ -1,8 +0,0 @@
-#!/bin/sh
-set -e
-
-if [ "$1" = 'remove' -a -L "$DPKG_ROOT/usr/bin/touch" ]; then
-  rm "$DPKG_ROOT/usr/bin/touch"
-fi
-
-#DEBHELPER#
diff --minimal -Nru coreutils-9.4/debian/rules coreutils-9.4/debian/rules
--- coreutils-9.4/debian/rules  2023-11-10 14:31:21.0 +0100
+++ coreutils-9.4/debian/rules  2024-01-21 22:33:08.0 +0100
@@ -36,11 +36,6 @@
 override_dh_install-arch: 
dh_install -a
 
-   # some things go in root rather than usr
-   for f in $(BIN_PROGS); do \
-   mv $(d)/usr/bin/$$f $(d)/bin/$$f; \
-   done
-   
# backward compatability
ln -s /usr/bin/md5sum $(d)/usr/bin/md5sum.textutils
ln -s /usr/share/man/man1/md5sum.1 
$(d)/usr/share/man/man1/md5sum.textutils.1
@@ -49,8 +44,6 @@
 ifeq ($(DEB_HOST_ARCH_OS),linux)
# kill from procps is linux-specific
rm -f $(d)/usr/bin/kill $(d)/usr/share/man/man1/kill.1
-else
-   mv $(d)/usr/bin/kill $(d)/bin
 endif
rm -f $(d)/usr/bin/hostname $(d)/usr/share/man/man1/hostname.1
rm -f $(d)/usr/bin/uptime $(d)/usr/share/man/man1/uptime.1


Bug#1061274: coreutils: DEP17: move files to /usr

2024-01-21 Thread Helmut Grohne
Source: coreutils
Version: 9.4-3
Tags: patch
User: helm...@debian.org
Usertags: dep17m2

Hi,

we want to finalize the /usr-merge transition via DEP17 by moving all
files to /usr and having base-files install the aliasing symlinks.
coreutils is naturally involved as it installs files to /bin. While we
no longer officially support unmerged filesystem hierarchies since
trixie, coreutils is essential and we require more of it. Being
essential means we still support bootstrapping unmerged and merging via
usrmerge.postinst, which required presence of /bin/cp until version 38.
The updated version 39 also works with /usr/bin/cp and hence, we may now
move forward.

I've prepared a patch for performing the conversion in a way that
simplifies the packaging. This patch must not be backported to
bookworm-backports as the moratorium still applies there, but I think
backports of coreutils are fairly unlikely. The patch also allows us to
get rid of the remaining maintainer scripts.

I've performed tests with debootstrap, cdebootstrap and mmdebstrap and
all of them are able to construct chroots with this coreutils patch
applied.

Helmut
diff --minimal -Nru coreutils-9.4/debian/changelog 
coreutils-9.4/debian/changelog
--- coreutils-9.4/debian/changelog  2024-01-02 14:54:03.0 +0100
+++ coreutils-9.4/debian/changelog  2024-01-21 22:33:08.0 +0100
@@ -1,3 +1,10 @@
+coreutils (9.4-3.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * DEP17: Move files to /usr. (Closes: #-1)
+
+ -- Helmut Grohne   Sun, 21 Jan 2024 22:33:08 +0100
+
 coreutils (9.4-3) unstable; urgency=low
 
   * remove arch restriction from libssl-dev build-depend
diff --minimal -Nru coreutils-9.4/debian/control coreutils-9.4/debian/control
--- coreutils-9.4/debian/control2024-01-02 14:22:27.0 +0100
+++ coreutils-9.4/debian/control2024-01-21 22:33:08.0 +0100
@@ -11,6 +11,7 @@
 Pre-Depends: ${shlibs:Depends}, ${misc:Pre-Depends}
 Essential: yes
 Depends: ${misc:Depends}
+Breaks: usrmerge (<< 39)
 Description: GNU core utilities
  This package contains the basic file, shell and text manipulation
  utilities which are expected to exist on every operating system.
diff --minimal -Nru coreutils-9.4/debian/coreutils.postinst 
coreutils-9.4/debian/coreutils.postinst
--- coreutils-9.4/debian/coreutils.postinst 2022-09-20 17:04:38.0 
+0200
+++ coreutils-9.4/debian/coreutils.postinst 1970-01-01 01:00:00.0 
+0100
@@ -1,8 +0,0 @@
-#!/bin/sh
-set -e
-
-if [ "$1" = 'configure' -a ! -e "$DPKG_ROOT/usr/bin/touch" ]; then
-  ln -s /bin/touch "$DPKG_ROOT/usr/bin/touch"
-fi
-
-#DEBHELPER#
diff --minimal -Nru coreutils-9.4/debian/coreutils.postrm 
coreutils-9.4/debian/coreutils.postrm
--- coreutils-9.4/debian/coreutils.postrm   2022-09-20 17:04:49.0 
+0200
+++ coreutils-9.4/debian/coreutils.postrm   1970-01-01 01:00:00.0 
+0100
@@ -1,8 +0,0 @@
-#!/bin/sh
-set -e
-
-if [ "$1" = 'remove' -a -L "$DPKG_ROOT/usr/bin/touch" ]; then
-  rm "$DPKG_ROOT/usr/bin/touch"
-fi
-
-#DEBHELPER#
diff --minimal -Nru coreutils-9.4/debian/rules coreutils-9.4/debian/rules
--- coreutils-9.4/debian/rules  2023-11-10 14:31:21.0 +0100
+++ coreutils-9.4/debian/rules  2024-01-21 21:41:59.0 +0100
@@ -36,11 +36,6 @@
 override_dh_install-arch: 
dh_install -a
 
-   # some things go in root rather than usr
-   for f in $(BIN_PROGS); do \
-   mv $(d)/usr/bin/$$f $(d)/bin/$$f; \
-   done
-   
# backward compatability
ln -s /usr/bin/md5sum $(d)/usr/bin/md5sum.textutils
ln -s /usr/share/man/man1/md5sum.1 
$(d)/usr/share/man/man1/md5sum.textutils.1
@@ -49,8 +44,6 @@
 ifeq ($(DEB_HOST_ARCH_OS),linux)
# kill from procps is linux-specific
rm -f $(d)/usr/bin/kill $(d)/usr/share/man/man1/kill.1
-else
-   mv $(d)/usr/bin/kill $(d)/bin
 endif
rm -f $(d)/usr/bin/hostname $(d)/usr/share/man/man1/hostname.1
rm -f $(d)/usr/bin/uptime $(d)/usr/share/man/man1/uptime.1