Source: ncurses Version: 6.4+20231016-1 Severity: normal Tags: patch User: helm...@debian.org Usertags: dep17m2 X-Debbugs-Cc: vor...@debian.org
We want to finalize the /usr-merge transition via DEP17. For ncurses, this means moving libraries to /usr. Until recently, doing so was prohibited by the file move moratorium. This has now been delegated to https://wiki.debian.org/UsrMerge. We still must be careful about such moves e.g. in essential packages. https://subdivi.de/~helmut/dep17.html gives us a template of what might go wrong. Most importantly, ncurses is not listed as not-affected by the 2038 transition https://wiki.debian.org/ReleaseGoals/64bit-time. Therefore, it may become necessary to rename some of the library packages adding a "t64" suffix to the package name. In a bookworm to trixie upgrade, this constitutes a file move between packages and concurrent move from / to /usr leading to the precise file loss that the moratorium was meant to prevent (DEP17 P1). This needs to be mitigated and since we're dealing with essential packages, we cannot employ Conflicts (DEP17 M7). Instead, we'll have to use protective diversions (DEP17 M8) installed in preinst and removed in postinst. Since 2038 hasn't happened yet, we can defer this, but do upload that time64 change to experimental first and let it wait there for at least three days. Other problems are less of an issue. The change does not affect the debian-installer (P10), because the libraries are already moved there. It also does not cause the multiarch file loss (P7), because all affected filenames are architecture-dependent. I verified that it does not break filesystem bootstrap locally (P8). So given this I think we're good to go. I don't expect ncurses to be backported to bookworm-backports. Therefore, the attached patch just moves all the files. Do not upload this patch to bookworm-backports. If you plan to do that, consider using dh_movetousr instead. Also keep that 2038 matter in mind. Helmut
diff --minimal -Nru ncurses-6.4+20231016/debian/changelog ncurses-6.4+20231016/debian/changelog --- ncurses-6.4+20231016/debian/changelog 2023-10-17 17:34:56.000000000 +0200 +++ ncurses-6.4+20231016/debian/changelog 2023-11-14 12:00:46.000000000 +0100 @@ -1,3 +1,10 @@ +ncurses (6.4+20231016-1.1) UNRELEASED; urgency=medium + + * Non-maintainer upload. + * Move all libraries to /usr. (Closes: #-1) + + -- Helmut Grohne <hel...@subdivi.de> Tue, 14 Nov 2023 12:00:46 +0100 + ncurses (6.4+20231016-1) unstable; urgency=medium * New upstream patchlevel. diff --minimal -Nru ncurses-6.4+20231016/debian/lib32ncurses-dev.links ncurses-6.4+20231016/debian/lib32ncurses-dev.links --- ncurses-6.4+20231016/debian/lib32ncurses-dev.links 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib32ncurses-dev.links 2023-11-14 12:00:46.000000000 +0100 @@ -1,4 +1,4 @@ -lib32/libtinfo.so.6 usr/lib32/libtinfo.so +usr/lib32/libtinfo.so.6 usr/lib32/libtinfo.so usr/lib32/libncurses.so usr/lib32/libcurses.so usr/lib32/libncurses.a usr/lib32/libcurses.a usr/lib32/libtinfo.a usr/lib32/libtermcap.a diff --minimal -Nru ncurses-6.4+20231016/debian/lib32ncurses6.install ncurses-6.4+20231016/debian/lib32ncurses6.install --- ncurses-6.4+20231016/debian/lib32ncurses6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib32ncurses6.install 2023-11-14 11:59:24.000000000 +0100 @@ -1,4 +1,4 @@ -obj-32/lib/libncurses.so.* lib32 +obj-32/lib/libncurses.so.* usr/lib32 obj-32/lib/libpanel.so.* usr/lib32 obj-32/lib/libform.so.* usr/lib32 obj-32/lib/libmenu.so.* usr/lib32 diff --minimal -Nru ncurses-6.4+20231016/debian/lib32ncursesw6.install ncurses-6.4+20231016/debian/lib32ncursesw6.install --- ncurses-6.4+20231016/debian/lib32ncursesw6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib32ncursesw6.install 2023-11-14 11:59:29.000000000 +0100 @@ -1,4 +1,4 @@ -obj-wide-32/lib/libncursesw.so.* lib32 +obj-wide-32/lib/libncursesw.so.* usr/lib32 obj-wide-32/lib/libpanelw.so.* usr/lib32 obj-wide-32/lib/libformw.so.* usr/lib32 obj-wide-32/lib/libmenuw.so.* usr/lib32 diff --minimal -Nru ncurses-6.4+20231016/debian/lib32tinfo6.install ncurses-6.4+20231016/debian/lib32tinfo6.install --- ncurses-6.4+20231016/debian/lib32tinfo6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib32tinfo6.install 2023-11-14 11:59:33.000000000 +0100 @@ -1,2 +1,2 @@ -obj-wide-32/lib/libtinfo.so.* lib32 +obj-wide-32/lib/libtinfo.so.* usr/lib32 obj-wide-32/lib/libtic.so.* usr/lib32 diff --minimal -Nru ncurses-6.4+20231016/debian/lib64ncurses-dev.links ncurses-6.4+20231016/debian/lib64ncurses-dev.links --- ncurses-6.4+20231016/debian/lib64ncurses-dev.links 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib64ncurses-dev.links 2023-11-14 12:00:46.000000000 +0100 @@ -1,4 +1,4 @@ -lib64/libtinfo.so.6 usr/lib64/libtinfo.so +usr/lib64/libtinfo.so.6 usr/lib64/libtinfo.so usr/lib64/libncurses.so usr/lib64/libcurses.so usr/lib64/libncurses.a usr/lib64/libcurses.a usr/lib64/libtinfo.a usr/lib64/libtermcap.a diff --minimal -Nru ncurses-6.4+20231016/debian/lib64ncurses6.install ncurses-6.4+20231016/debian/lib64ncurses6.install --- ncurses-6.4+20231016/debian/lib64ncurses6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib64ncurses6.install 2023-11-14 11:59:43.000000000 +0100 @@ -1,4 +1,4 @@ -obj-64/lib/libncurses.so.* lib64 +obj-64/lib/libncurses.so.* usr/lib64 obj-64/lib/libpanel.so.* usr/lib64 obj-64/lib/libform.so.* usr/lib64 obj-64/lib/libmenu.so.* usr/lib64 diff --minimal -Nru ncurses-6.4+20231016/debian/lib64ncursesw6.install ncurses-6.4+20231016/debian/lib64ncursesw6.install --- ncurses-6.4+20231016/debian/lib64ncursesw6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib64ncursesw6.install 2023-11-14 11:59:47.000000000 +0100 @@ -1,4 +1,4 @@ -obj-wide-64/lib/libncursesw.so.* lib64 +obj-wide-64/lib/libncursesw.so.* usr/lib64 obj-wide-64/lib/libpanelw.so.* usr/lib64 obj-wide-64/lib/libformw.so.* usr/lib64 obj-wide-64/lib/libmenuw.so.* usr/lib64 diff --minimal -Nru ncurses-6.4+20231016/debian/lib64tinfo6.install ncurses-6.4+20231016/debian/lib64tinfo6.install --- ncurses-6.4+20231016/debian/lib64tinfo6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/lib64tinfo6.install 2023-11-14 11:59:50.000000000 +0100 @@ -1,2 +1,2 @@ -obj-wide-64/lib/libtinfo.so.* lib64 +obj-wide-64/lib/libtinfo.so.* usr/lib64 obj-wide-64/lib/libtic.so.* usr/lib64 diff --minimal -Nru ncurses-6.4+20231016/debian/libncurses-dev.links ncurses-6.4+20231016/debian/libncurses-dev.links --- ncurses-6.4+20231016/debian/libncurses-dev.links 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/libncurses-dev.links 2023-11-14 12:00:46.000000000 +0100 @@ -1,4 +1,4 @@ -lib/${DEB_HOST_MULTIARCH}/libtinfo.so.6 usr/lib/${DEB_HOST_MULTIARCH}/libtinfo.so +usr/lib/${DEB_HOST_MULTIARCH}/libtinfo.so.6 usr/lib/${DEB_HOST_MULTIARCH}/libtinfo.so usr/lib/${DEB_HOST_MULTIARCH}/libncurses.so usr/lib/${DEB_HOST_MULTIARCH}/libcurses.so usr/lib/${DEB_HOST_MULTIARCH}/libncurses.a usr/lib/${DEB_HOST_MULTIARCH}/libcurses.a usr/lib/${DEB_HOST_MULTIARCH}/libtinfo.a usr/lib/${DEB_HOST_MULTIARCH}/libtermcap.a diff --minimal -Nru ncurses-6.4+20231016/debian/libncurses6.install ncurses-6.4+20231016/debian/libncurses6.install --- ncurses-6.4+20231016/debian/libncurses6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/libncurses6.install 2023-11-14 12:00:12.000000000 +0100 @@ -1,4 +1,4 @@ -usr/lib/${DEB_HOST_MULTIARCH}/libncurses.so.* lib/${DEB_HOST_MULTIARCH}/ +usr/lib/${DEB_HOST_MULTIARCH}/libncurses.so.* usr/lib/${DEB_HOST_MULTIARCH}/libpanel.so.* usr/lib/${DEB_HOST_MULTIARCH}/libform.so.* usr/lib/${DEB_HOST_MULTIARCH}/libmenu.so.* diff --minimal -Nru ncurses-6.4+20231016/debian/libncursesw6.install ncurses-6.4+20231016/debian/libncursesw6.install --- ncurses-6.4+20231016/debian/libncursesw6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/libncursesw6.install 2023-11-14 12:00:21.000000000 +0100 @@ -1,4 +1,4 @@ -usr/lib/${DEB_HOST_MULTIARCH}/libncursesw.so.* lib/${DEB_HOST_MULTIARCH}/ +usr/lib/${DEB_HOST_MULTIARCH}/libncursesw.so.* usr/lib/${DEB_HOST_MULTIARCH}/libpanelw.so.* usr/lib/${DEB_HOST_MULTIARCH}/libformw.so.* usr/lib/${DEB_HOST_MULTIARCH}/libmenuw.so.* diff --minimal -Nru ncurses-6.4+20231016/debian/libtinfo6.install ncurses-6.4+20231016/debian/libtinfo6.install --- ncurses-6.4+20231016/debian/libtinfo6.install 2023-10-17 08:31:07.000000000 +0200 +++ ncurses-6.4+20231016/debian/libtinfo6.install 2023-11-14 12:00:31.000000000 +0100 @@ -1,2 +1,2 @@ -usr/lib/${DEB_HOST_MULTIARCH}/libtinfo.so.* lib/${DEB_HOST_MULTIARCH} +usr/lib/${DEB_HOST_MULTIARCH}/libtinfo.so.* usr/lib/${DEB_HOST_MULTIARCH}/libtic.so.*