* [PATCH 0/1] Forward: Install files into UsrMerged layout @ 2024-06-12 17:35 Bastian Germann 2024-06-12 17:35 ` [PATCH 1/1] " Bastian Germann 0 siblings, 1 reply; 10+ messages in thread From: Bastian Germann @ 2024-06-12 17:35 UTC (permalink / raw) To: linux-xfs; +Cc: Bastian Germann Hi, I am forwarding a patch by Chris Hofstaedtler that is in the deferred upload queue and is going to arrive in sid in 5 days. The patch was sent by Christ in January as attachment so I guess it did not make it to the list. As most distributions are now /usr merged it might be a good idea to include it generally. Cheers, Bastian Chris Hofstaedtler (1): Install files into UsrMerged layout configure.ac | 19 ++----------------- debian/local/initramfs.hook | 2 +- 2 files changed, 3 insertions(+), 18 deletions(-) -- 2.45.2 ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH 1/1] Install files into UsrMerged layout 2024-06-12 17:35 [PATCH 0/1] Forward: Install files into UsrMerged layout Bastian Germann @ 2024-06-12 17:35 ` Bastian Germann 2024-06-12 18:08 ` Darrick J. Wong 2024-06-12 19:00 ` [PATCH v2 " Chris Hofstaedtler 0 siblings, 2 replies; 10+ messages in thread From: Bastian Germann @ 2024-06-12 17:35 UTC (permalink / raw) To: linux-xfs; +Cc: Chris Hofstaedtler, Bastian Germann From: Chris Hofstaedtler <zeha@debian.org> Signed-off-by: Chris Hofstaedtler <zeha@debian.org> Signed-off-by: Bastian Germann <bage@debian.org> --- configure.ac | 19 ++----------------- debian/local/initramfs.hook | 2 +- 2 files changed, 3 insertions(+), 18 deletions(-) diff --git a/configure.ac b/configure.ac index da30fc5c..a532d90d 100644 --- a/configure.ac +++ b/configure.ac @@ -113,23 +113,8 @@ esac # test -n "$multiarch" && enable_lib64=no -# -# Some important tools should be installed into the root partitions. -# -# Check whether exec_prefix=/usr: and install them to /sbin in that -# case. If the user chooses a different prefix assume they just want -# a local install for testing and not a system install. -# -case $exec_prefix:$prefix in -NONE:NONE | NONE:/usr | /usr:*) - root_sbindir='/sbin' - root_libdir="/${base_libdir}" - ;; -*) - root_sbindir="${sbindir}" - root_libdir="${libdir}" - ;; -esac +root_sbindir="${sbindir}" +root_libdir="${libdir}" AC_SUBST([root_sbindir]) AC_SUBST([root_libdir]) diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook index 5b24eaec..eac7e79e 100644 --- a/debian/local/initramfs.hook +++ b/debian/local/initramfs.hook @@ -45,7 +45,7 @@ rootfs_type() { . /usr/share/initramfs-tools/hook-functions if [ "$(rootfs_type)" = "xfs" ]; then - copy_exec /sbin/xfs_repair + copy_exec /usr/sbin/xfs_repair copy_exec /usr/sbin/xfs_db copy_exec /usr/sbin/xfs_metadump fi -- 2.45.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] Install files into UsrMerged layout 2024-06-12 17:35 ` [PATCH 1/1] " Bastian Germann @ 2024-06-12 18:08 ` Darrick J. Wong 2024-06-12 18:58 ` Chris Hofstaedtler 2024-06-12 19:00 ` [PATCH v2 " Chris Hofstaedtler 1 sibling, 1 reply; 10+ messages in thread From: Darrick J. Wong @ 2024-06-12 18:08 UTC (permalink / raw) To: Bastian Germann; +Cc: linux-xfs, Chris Hofstaedtler On Wed, Jun 12, 2024 at 07:35:05PM +0200, Bastian Germann wrote: > From: Chris Hofstaedtler <zeha@debian.org> > > Signed-off-by: Chris Hofstaedtler <zeha@debian.org> > Signed-off-by: Bastian Germann <bage@debian.org> > --- > configure.ac | 19 ++----------------- > debian/local/initramfs.hook | 2 +- > 2 files changed, 3 insertions(+), 18 deletions(-) > > diff --git a/configure.ac b/configure.ac > index da30fc5c..a532d90d 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -113,23 +113,8 @@ esac > # > test -n "$multiarch" && enable_lib64=no > > -# > -# Some important tools should be installed into the root partitions. > -# > -# Check whether exec_prefix=/usr: and install them to /sbin in that > -# case. If the user chooses a different prefix assume they just want > -# a local install for testing and not a system install. > -# > -case $exec_prefix:$prefix in > -NONE:NONE | NONE:/usr | /usr:*) > - root_sbindir='/sbin' > - root_libdir="/${base_libdir}" > - ;; > -*) > - root_sbindir="${sbindir}" > - root_libdir="${libdir}" > - ;; > -esac > +root_sbindir="${sbindir}" > +root_libdir="${libdir}" Should we get rid of $root_sbindir, $root_libdir, PKG_ROOT_LIB_DIR, and PKG_ROOT_SBIN_DIR while we're at it? That will break anyone who hasn't done the /usr merge yet, but how many distros still want /sbin/xfs_repair? opensuse and the rhel variants seem to have moved that to /usr/sbin/ years ago. --D > > AC_SUBST([root_sbindir]) > AC_SUBST([root_libdir]) > diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook > index 5b24eaec..eac7e79e 100644 > --- a/debian/local/initramfs.hook > +++ b/debian/local/initramfs.hook > @@ -45,7 +45,7 @@ rootfs_type() { > . /usr/share/initramfs-tools/hook-functions > > if [ "$(rootfs_type)" = "xfs" ]; then > - copy_exec /sbin/xfs_repair > + copy_exec /usr/sbin/xfs_repair > copy_exec /usr/sbin/xfs_db > copy_exec /usr/sbin/xfs_metadump > fi > -- > 2.45.2 > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] Install files into UsrMerged layout 2024-06-12 18:08 ` Darrick J. Wong @ 2024-06-12 18:58 ` Chris Hofstaedtler 2024-06-12 20:07 ` Darrick J. Wong 0 siblings, 1 reply; 10+ messages in thread From: Chris Hofstaedtler @ 2024-06-12 18:58 UTC (permalink / raw) To: Darrick J. Wong; +Cc: Bastian Germann, linux-xfs * Darrick J. Wong <djwong@kernel.org> [240612 20:08]: > On Wed, Jun 12, 2024 at 07:35:05PM +0200, Bastian Germann wrote: > > From: Chris Hofstaedtler <zeha@debian.org> > > > > Signed-off-by: Chris Hofstaedtler <zeha@debian.org> > > Signed-off-by: Bastian Germann <bage@debian.org> > > --- > > configure.ac | 19 ++----------------- > > debian/local/initramfs.hook | 2 +- > > 2 files changed, 3 insertions(+), 18 deletions(-) > > > > diff --git a/configure.ac b/configure.ac > > index da30fc5c..a532d90d 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -113,23 +113,8 @@ esac > > # > > test -n "$multiarch" && enable_lib64=no > > > > -# > > -# Some important tools should be installed into the root partitions. > > -# > > -# Check whether exec_prefix=/usr: and install them to /sbin in that > > -# case. If the user chooses a different prefix assume they just want > > -# a local install for testing and not a system install. > > -# > > -case $exec_prefix:$prefix in > > -NONE:NONE | NONE:/usr | /usr:*) > > - root_sbindir='/sbin' > > - root_libdir="/${base_libdir}" > > - ;; > > -*) > > - root_sbindir="${sbindir}" > > - root_libdir="${libdir}" > > - ;; > > -esac > > +root_sbindir="${sbindir}" > > +root_libdir="${libdir}" > > Should we get rid of $root_sbindir, $root_libdir, PKG_ROOT_LIB_DIR, and > PKG_ROOT_SBIN_DIR while we're at it? Will do. > That will break anyone who hasn't > done the /usr merge yet, but how many distros still want > /sbin/xfs_repair? opensuse and the rhel variants seem to have moved > that to /usr/sbin/ years ago. I think nobody supports split-/usr nowadays? Chris ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 1/1] Install files into UsrMerged layout 2024-06-12 18:58 ` Chris Hofstaedtler @ 2024-06-12 20:07 ` Darrick J. Wong 0 siblings, 0 replies; 10+ messages in thread From: Darrick J. Wong @ 2024-06-12 20:07 UTC (permalink / raw) To: Chris Hofstaedtler; +Cc: Bastian Germann, linux-xfs On Wed, Jun 12, 2024 at 08:58:55PM +0200, Chris Hofstaedtler wrote: > * Darrick J. Wong <djwong@kernel.org> [240612 20:08]: > > On Wed, Jun 12, 2024 at 07:35:05PM +0200, Bastian Germann wrote: > > > From: Chris Hofstaedtler <zeha@debian.org> > > > > > > Signed-off-by: Chris Hofstaedtler <zeha@debian.org> > > > Signed-off-by: Bastian Germann <bage@debian.org> > > > --- > > > configure.ac | 19 ++----------------- > > > debian/local/initramfs.hook | 2 +- > > > 2 files changed, 3 insertions(+), 18 deletions(-) > > > > > > diff --git a/configure.ac b/configure.ac > > > index da30fc5c..a532d90d 100644 > > > --- a/configure.ac > > > +++ b/configure.ac > > > @@ -113,23 +113,8 @@ esac > > > # > > > test -n "$multiarch" && enable_lib64=no > > > > > > -# > > > -# Some important tools should be installed into the root partitions. > > > -# > > > -# Check whether exec_prefix=/usr: and install them to /sbin in that > > > -# case. If the user chooses a different prefix assume they just want > > > -# a local install for testing and not a system install. > > > -# > > > -case $exec_prefix:$prefix in > > > -NONE:NONE | NONE:/usr | /usr:*) > > > - root_sbindir='/sbin' > > > - root_libdir="/${base_libdir}" > > > - ;; > > > -*) > > > - root_sbindir="${sbindir}" > > > - root_libdir="${libdir}" > > > - ;; > > > -esac > > > +root_sbindir="${sbindir}" > > > +root_libdir="${libdir}" > > > > Should we get rid of $root_sbindir, $root_libdir, PKG_ROOT_LIB_DIR, and > > PKG_ROOT_SBIN_DIR while we're at it? > > Will do. > > > That will break anyone who hasn't > > done the /usr merge yet, but how many distros still want > > /sbin/xfs_repair? opensuse and the rhel variants seem to have moved > > that to /usr/sbin/ years ago. > > I think nobody supports split-/usr nowadays? Oh I bet there are *some* people still running separate / and /usr without an initramfs or a livecd who still need to be able to mount / so they can repair /usr. Buuuut. As none of the major distros (suse/rhel/debian/anything with systemd) support separate /usr anymore, it's probably no great loss. --D > Chris > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v2 1/1] Install files into UsrMerged layout 2024-06-12 17:35 ` [PATCH 1/1] " Bastian Germann 2024-06-12 18:08 ` Darrick J. Wong @ 2024-06-12 19:00 ` Chris Hofstaedtler 2024-06-12 20:03 ` Darrick J. Wong 1 sibling, 1 reply; 10+ messages in thread From: Chris Hofstaedtler @ 2024-06-12 19:00 UTC (permalink / raw) To: linux-xfs, Bastian Germann; +Cc: Darrick J. Wong From: Chris Hofstaedtler <zeha@debian.org> Signed-off-by: Chris Hofstaedtler <zeha@debian.org> --- V1 -> V2: remove root_sbindir, root_libdir, PKG_ROOT_SBIN_DIR, PKG_ROOT_LIB_DIR configure.ac | 21 --------------------- debian/Makefile | 4 ++-- debian/local/initramfs.hook | 2 +- fsck/Makefile | 4 ++-- include/builddefs.in | 2 -- include/buildmacros | 20 ++++++++++---------- mkfs/Makefile | 4 ++-- repair/Makefile | 4 ++-- 8 files changed, 19 insertions(+), 42 deletions(-) diff --git a/configure.ac b/configure.ac index da30fc5c..4530f387 100644 --- a/configure.ac +++ b/configure.ac @@ -113,27 +113,6 @@ esac # test -n "$multiarch" && enable_lib64=no -# -# Some important tools should be installed into the root partitions. -# -# Check whether exec_prefix=/usr: and install them to /sbin in that -# case. If the user chooses a different prefix assume they just want -# a local install for testing and not a system install. -# -case $exec_prefix:$prefix in -NONE:NONE | NONE:/usr | /usr:*) - root_sbindir='/sbin' - root_libdir="/${base_libdir}" - ;; -*) - root_sbindir="${sbindir}" - root_libdir="${libdir}" - ;; -esac - -AC_SUBST([root_sbindir]) -AC_SUBST([root_libdir]) - # Find localized files. Don't descend into any "dot directories" # (like .git or .pc from quilt). Strangely, the "-print" argument # to "find" is required, to avoid including such directories in the diff --git a/debian/Makefile b/debian/Makefile index cafe8bbb..2f9cd38c 100644 --- a/debian/Makefile +++ b/debian/Makefile @@ -31,6 +31,6 @@ endif install-d-i: default ifeq ($(PKG_DISTRIBUTION), debian) - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_ROOT_SBIN_DIR)/mkfs.xfs + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_SBIN_DIR)/mkfs.xfs endif diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook index 5b24eaec..eac7e79e 100644 --- a/debian/local/initramfs.hook +++ b/debian/local/initramfs.hook @@ -45,7 +45,7 @@ rootfs_type() { . /usr/share/initramfs-tools/hook-functions if [ "$(rootfs_type)" = "xfs" ]; then - copy_exec /sbin/xfs_repair + copy_exec /usr/sbin/xfs_repair copy_exec /usr/sbin/xfs_db copy_exec /usr/sbin/xfs_metadump fi diff --git a/fsck/Makefile b/fsck/Makefile index da9b6ded..5ca529f5 100644 --- a/fsck/Makefile +++ b/fsck/Makefile @@ -12,6 +12,6 @@ default: $(LTCOMMAND) include $(BUILDRULES) install: default - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(INSTALL) -m 755 xfs_fsck.sh $(PKG_ROOT_SBIN_DIR)/fsck.xfs + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(INSTALL) -m 755 xfs_fsck.sh $(PKG_SBIN_DIR)/fsck.xfs install-dev: diff --git a/include/builddefs.in b/include/builddefs.in index 644ed1cb..6ac36c14 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -48,8 +48,6 @@ datarootdir = @datarootdir@ top_builddir = @top_builddir@ PKG_SBIN_DIR = @sbindir@ -PKG_ROOT_SBIN_DIR = @root_sbindir@ -PKG_ROOT_LIB_DIR= @root_libdir@@libdirsuffix@ PKG_LIB_DIR = @libdir@@libdirsuffix@ PKG_LIBEXEC_DIR = @libexecdir@/@pkg_name@ PKG_INC_DIR = @includedir@/xfs diff --git a/include/buildmacros b/include/buildmacros index 6f34d7c5..9183e5bc 100644 --- a/include/buildmacros +++ b/include/buildmacros @@ -50,16 +50,16 @@ LTINSTALL = $(LIBTOOL) --quiet --mode=install $(INSTALL) LTCOMPILE = $(LIBTOOL) --quiet --tag=CC --mode=compile $(CCF) ifeq ($(ENABLE_SHARED),yes) -LTLDFLAGS += -rpath $(PKG_ROOT_LIB_DIR) +LTLDFLAGS += -rpath $(PKG_LIB_DIR) LTLDFLAGS += -version-info $(LTVERSION) endif ifeq ($(ENABLE_SHARED),yes) INSTALL_LTLIB = \ cd $(TOPDIR)/$(LIBNAME)/.libs; \ - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ - ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ - ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_ROOT_LIB_DIR) + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ + ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_LIB_DIR); \ + ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_LIB_DIR) endif # Libtool thinks the static and shared libs should be in the same dir, so @@ -74,13 +74,13 @@ INSTALL_LTLIB_DEV = \ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \ ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ - ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ + ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \ if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \ - "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \ - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ - ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ + "x$(shell readlink -f $(PKG_LIB_DIR))" ]; then \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ fi else INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) diff --git a/mkfs/Makefile b/mkfs/Makefile index a0c168e3..a6173083 100644 --- a/mkfs/Makefile +++ b/mkfs/Makefile @@ -28,8 +28,8 @@ default: depend $(LTCOMMAND) $(CFGFILES) include $(BUILDRULES) install: default - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) $(INSTALL) -m 755 -d $(MKFS_CFG_DIR) $(INSTALL) -m 644 $(CFGFILES) $(MKFS_CFG_DIR) diff --git a/repair/Makefile b/repair/Makefile index e5014deb..c5b0d4cb 100644 --- a/repair/Makefile +++ b/repair/Makefile @@ -99,8 +99,8 @@ include $(BUILDRULES) #CFLAGS += ... install: default - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) install-dev: -include .dep -- 2.39.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/1] Install files into UsrMerged layout 2024-06-12 19:00 ` [PATCH v2 " Chris Hofstaedtler @ 2024-06-12 20:03 ` Darrick J. Wong 2024-06-12 20:10 ` Chris Hofstaedtler 2024-06-19 21:48 ` [PATCH v3] Remove support for split-/usr installs Chris Hofstaedtler 0 siblings, 2 replies; 10+ messages in thread From: Darrick J. Wong @ 2024-06-12 20:03 UTC (permalink / raw) To: Chris Hofstaedtler; +Cc: linux-xfs, Bastian Germann On Wed, Jun 12, 2024 at 09:00:19PM +0200, Chris Hofstaedtler wrote: > From: Chris Hofstaedtler <zeha@debian.org> > > Signed-off-by: Chris Hofstaedtler <zeha@debian.org> Hmm. From what I can tell from the systemd.pc file in (Debian) sid, all the systemd services and udev files will get put in /usr/lib/systemd/system/ and /usr/lib/udev/. Since those directories are picked up by the xfsprogs build system via pkgconfig, there's no need to patch that separately, right? Also, this commit could use a brief message to acknowledge that we're breaking the usecase of / and /usr being different filesystems: "Always install binaries and other files under /usr, not /. This will break any distribution that hasn't yet merged the two, which are vanishingly small these days. This breaks the usecase of needing to repair the /usr partition when there is no initramfs or livecd available and / is the only option." If the answer to the first question is 'yes' and the commit message is acceptable, Reviewed-by: Darrick J. Wong <djwong@kernel.org> --D > --- > V1 -> V2: remove root_sbindir, root_libdir, PKG_ROOT_SBIN_DIR, > PKG_ROOT_LIB_DIR > > configure.ac | 21 --------------------- > debian/Makefile | 4 ++-- > debian/local/initramfs.hook | 2 +- > fsck/Makefile | 4 ++-- > include/builddefs.in | 2 -- > include/buildmacros | 20 ++++++++++---------- > mkfs/Makefile | 4 ++-- > repair/Makefile | 4 ++-- > 8 files changed, 19 insertions(+), 42 deletions(-) > > diff --git a/configure.ac b/configure.ac > index da30fc5c..4530f387 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -113,27 +113,6 @@ esac > # > test -n "$multiarch" && enable_lib64=no > > -# > -# Some important tools should be installed into the root partitions. > -# > -# Check whether exec_prefix=/usr: and install them to /sbin in that > -# case. If the user chooses a different prefix assume they just want > -# a local install for testing and not a system install. > -# > -case $exec_prefix:$prefix in > -NONE:NONE | NONE:/usr | /usr:*) > - root_sbindir='/sbin' > - root_libdir="/${base_libdir}" > - ;; > -*) > - root_sbindir="${sbindir}" > - root_libdir="${libdir}" > - ;; > -esac > - > -AC_SUBST([root_sbindir]) > -AC_SUBST([root_libdir]) > - > # Find localized files. Don't descend into any "dot directories" > # (like .git or .pc from quilt). Strangely, the "-print" argument > # to "find" is required, to avoid including such directories in the > diff --git a/debian/Makefile b/debian/Makefile > index cafe8bbb..2f9cd38c 100644 > --- a/debian/Makefile > +++ b/debian/Makefile > @@ -31,6 +31,6 @@ endif > > install-d-i: default > ifeq ($(PKG_DISTRIBUTION), debian) > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_ROOT_SBIN_DIR)/mkfs.xfs > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_SBIN_DIR)/mkfs.xfs > endif > diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook > index 5b24eaec..eac7e79e 100644 > --- a/debian/local/initramfs.hook > +++ b/debian/local/initramfs.hook > @@ -45,7 +45,7 @@ rootfs_type() { > . /usr/share/initramfs-tools/hook-functions > > if [ "$(rootfs_type)" = "xfs" ]; then > - copy_exec /sbin/xfs_repair > + copy_exec /usr/sbin/xfs_repair > copy_exec /usr/sbin/xfs_db > copy_exec /usr/sbin/xfs_metadump > fi > diff --git a/fsck/Makefile b/fsck/Makefile > index da9b6ded..5ca529f5 100644 > --- a/fsck/Makefile > +++ b/fsck/Makefile > @@ -12,6 +12,6 @@ default: $(LTCOMMAND) > include $(BUILDRULES) > > install: default > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(INSTALL) -m 755 xfs_fsck.sh $(PKG_ROOT_SBIN_DIR)/fsck.xfs > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(INSTALL) -m 755 xfs_fsck.sh $(PKG_SBIN_DIR)/fsck.xfs > install-dev: > diff --git a/include/builddefs.in b/include/builddefs.in > index 644ed1cb..6ac36c14 100644 > --- a/include/builddefs.in > +++ b/include/builddefs.in > @@ -48,8 +48,6 @@ datarootdir = @datarootdir@ > top_builddir = @top_builddir@ > > PKG_SBIN_DIR = @sbindir@ > -PKG_ROOT_SBIN_DIR = @root_sbindir@ > -PKG_ROOT_LIB_DIR= @root_libdir@@libdirsuffix@ > PKG_LIB_DIR = @libdir@@libdirsuffix@ > PKG_LIBEXEC_DIR = @libexecdir@/@pkg_name@ > PKG_INC_DIR = @includedir@/xfs > diff --git a/include/buildmacros b/include/buildmacros > index 6f34d7c5..9183e5bc 100644 > --- a/include/buildmacros > +++ b/include/buildmacros > @@ -50,16 +50,16 @@ LTINSTALL = $(LIBTOOL) --quiet --mode=install $(INSTALL) > LTCOMPILE = $(LIBTOOL) --quiet --tag=CC --mode=compile $(CCF) > > ifeq ($(ENABLE_SHARED),yes) > -LTLDFLAGS += -rpath $(PKG_ROOT_LIB_DIR) > +LTLDFLAGS += -rpath $(PKG_LIB_DIR) > LTLDFLAGS += -version-info $(LTVERSION) > endif > > ifeq ($(ENABLE_SHARED),yes) > INSTALL_LTLIB = \ > cd $(TOPDIR)/$(LIBNAME)/.libs; \ > - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ > - ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ > - ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_ROOT_LIB_DIR) > + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > + ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_LIB_DIR); \ > + ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_LIB_DIR) > endif > > # Libtool thinks the static and shared libs should be in the same dir, so > @@ -74,13 +74,13 @@ INSTALL_LTLIB_DEV = \ > ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \ > ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ > - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ > - ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ > + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > + ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \ > if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \ > - "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \ > - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ > - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ > - ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ > + "x$(shell readlink -f $(PKG_LIB_DIR))" ]; then \ > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ > fi > else > INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) > diff --git a/mkfs/Makefile b/mkfs/Makefile > index a0c168e3..a6173083 100644 > --- a/mkfs/Makefile > +++ b/mkfs/Makefile > @@ -28,8 +28,8 @@ default: depend $(LTCOMMAND) $(CFGFILES) > include $(BUILDRULES) > > install: default > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) > $(INSTALL) -m 755 -d $(MKFS_CFG_DIR) > $(INSTALL) -m 644 $(CFGFILES) $(MKFS_CFG_DIR) > > diff --git a/repair/Makefile b/repair/Makefile > index e5014deb..c5b0d4cb 100644 > --- a/repair/Makefile > +++ b/repair/Makefile > @@ -99,8 +99,8 @@ include $(BUILDRULES) > #CFLAGS += ... > > install: default > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) > install-dev: > > -include .dep > -- > 2.39.2 > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v2 1/1] Install files into UsrMerged layout 2024-06-12 20:03 ` Darrick J. Wong @ 2024-06-12 20:10 ` Chris Hofstaedtler 2024-06-19 21:48 ` [PATCH v3] Remove support for split-/usr installs Chris Hofstaedtler 1 sibling, 0 replies; 10+ messages in thread From: Chris Hofstaedtler @ 2024-06-12 20:10 UTC (permalink / raw) To: Darrick J. Wong; +Cc: linux-xfs, Bastian Germann * Darrick J. Wong <djwong@kernel.org> [240612 22:03]: > On Wed, Jun 12, 2024 at 09:00:19PM +0200, Chris Hofstaedtler wrote: > > From: Chris Hofstaedtler <zeha@debian.org> > > > > Signed-off-by: Chris Hofstaedtler <zeha@debian.org> > > Hmm. From what I can tell from the systemd.pc file in (Debian) sid, all > the systemd services and udev files will get put in > /usr/lib/systemd/system/ and /usr/lib/udev/. Since those directories > are picked up by the xfsprogs build system via pkgconfig, there's no > need to patch that separately, right? Yes, correct. > Also, this commit could use a brief message to acknowledge that we're > breaking the usecase of / and /usr being different filesystems: > > "Always install binaries and other files under /usr, not /. This will > break any distribution that hasn't yet merged the two, which are > vanishingly small these days. This breaks the usecase of needing to > repair the /usr partition when there is no initramfs or livecd > available and / is the only option." > > If the answer to the first question is 'yes' and > the commit message is acceptable, Yeah. I'll note that, on Debian, this usecase was already broken. On Debian stable, /sbin/xfs_repair links /usr/lib/<triplet>/liburcu.so.8. > Reviewed-by: Darrick J. Wong <djwong@kernel.org> > > --D > > > --- > > V1 -> V2: remove root_sbindir, root_libdir, PKG_ROOT_SBIN_DIR, > > PKG_ROOT_LIB_DIR > > > > configure.ac | 21 --------------------- > > debian/Makefile | 4 ++-- > > debian/local/initramfs.hook | 2 +- > > fsck/Makefile | 4 ++-- > > include/builddefs.in | 2 -- > > include/buildmacros | 20 ++++++++++---------- > > mkfs/Makefile | 4 ++-- > > repair/Makefile | 4 ++-- > > 8 files changed, 19 insertions(+), 42 deletions(-) > > > > diff --git a/configure.ac b/configure.ac > > index da30fc5c..4530f387 100644 > > --- a/configure.ac > > +++ b/configure.ac > > @@ -113,27 +113,6 @@ esac > > # > > test -n "$multiarch" && enable_lib64=no > > > > -# > > -# Some important tools should be installed into the root partitions. > > -# > > -# Check whether exec_prefix=/usr: and install them to /sbin in that > > -# case. If the user chooses a different prefix assume they just want > > -# a local install for testing and not a system install. > > -# > > -case $exec_prefix:$prefix in > > -NONE:NONE | NONE:/usr | /usr:*) > > - root_sbindir='/sbin' > > - root_libdir="/${base_libdir}" > > - ;; > > -*) > > - root_sbindir="${sbindir}" > > - root_libdir="${libdir}" > > - ;; > > -esac > > - > > -AC_SUBST([root_sbindir]) > > -AC_SUBST([root_libdir]) > > - > > # Find localized files. Don't descend into any "dot directories" > > # (like .git or .pc from quilt). Strangely, the "-print" argument > > # to "find" is required, to avoid including such directories in the > > diff --git a/debian/Makefile b/debian/Makefile > > index cafe8bbb..2f9cd38c 100644 > > --- a/debian/Makefile > > +++ b/debian/Makefile > > @@ -31,6 +31,6 @@ endif > > > > install-d-i: default > > ifeq ($(PKG_DISTRIBUTION), debian) > > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > > - $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_ROOT_SBIN_DIR)/mkfs.xfs > > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > > + $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_SBIN_DIR)/mkfs.xfs > > endif > > diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook > > index 5b24eaec..eac7e79e 100644 > > --- a/debian/local/initramfs.hook > > +++ b/debian/local/initramfs.hook > > @@ -45,7 +45,7 @@ rootfs_type() { > > . /usr/share/initramfs-tools/hook-functions > > > > if [ "$(rootfs_type)" = "xfs" ]; then > > - copy_exec /sbin/xfs_repair > > + copy_exec /usr/sbin/xfs_repair > > copy_exec /usr/sbin/xfs_db > > copy_exec /usr/sbin/xfs_metadump > > fi > > diff --git a/fsck/Makefile b/fsck/Makefile > > index da9b6ded..5ca529f5 100644 > > --- a/fsck/Makefile > > +++ b/fsck/Makefile > > @@ -12,6 +12,6 @@ default: $(LTCOMMAND) > > include $(BUILDRULES) > > > > install: default > > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > > - $(INSTALL) -m 755 xfs_fsck.sh $(PKG_ROOT_SBIN_DIR)/fsck.xfs > > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > > + $(INSTALL) -m 755 xfs_fsck.sh $(PKG_SBIN_DIR)/fsck.xfs > > install-dev: > > diff --git a/include/builddefs.in b/include/builddefs.in > > index 644ed1cb..6ac36c14 100644 > > --- a/include/builddefs.in > > +++ b/include/builddefs.in > > @@ -48,8 +48,6 @@ datarootdir = @datarootdir@ > > top_builddir = @top_builddir@ > > > > PKG_SBIN_DIR = @sbindir@ > > -PKG_ROOT_SBIN_DIR = @root_sbindir@ > > -PKG_ROOT_LIB_DIR= @root_libdir@@libdirsuffix@ > > PKG_LIB_DIR = @libdir@@libdirsuffix@ > > PKG_LIBEXEC_DIR = @libexecdir@/@pkg_name@ > > PKG_INC_DIR = @includedir@/xfs > > diff --git a/include/buildmacros b/include/buildmacros > > index 6f34d7c5..9183e5bc 100644 > > --- a/include/buildmacros > > +++ b/include/buildmacros > > @@ -50,16 +50,16 @@ LTINSTALL = $(LIBTOOL) --quiet --mode=install $(INSTALL) > > LTCOMPILE = $(LIBTOOL) --quiet --tag=CC --mode=compile $(CCF) > > > > ifeq ($(ENABLE_SHARED),yes) > > -LTLDFLAGS += -rpath $(PKG_ROOT_LIB_DIR) > > +LTLDFLAGS += -rpath $(PKG_LIB_DIR) > > LTLDFLAGS += -version-info $(LTVERSION) > > endif > > > > ifeq ($(ENABLE_SHARED),yes) > > INSTALL_LTLIB = \ > > cd $(TOPDIR)/$(LIBNAME)/.libs; \ > > - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ > > - ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ > > - ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_ROOT_LIB_DIR) > > + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > > + ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_LIB_DIR); \ > > + ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_LIB_DIR) > > endif > > > > # Libtool thinks the static and shared libs should be in the same dir, so > > @@ -74,13 +74,13 @@ INSTALL_LTLIB_DEV = \ > > ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > > ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \ > > ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ > > - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ > > - ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ > > + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > > + ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \ > > if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \ > > - "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \ > > - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ > > - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ > > - ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ > > + "x$(shell readlink -f $(PKG_LIB_DIR))" ]; then \ > > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ > > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ > > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ > > fi > > else > > INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) > > diff --git a/mkfs/Makefile b/mkfs/Makefile > > index a0c168e3..a6173083 100644 > > --- a/mkfs/Makefile > > +++ b/mkfs/Makefile > > @@ -28,8 +28,8 @@ default: depend $(LTCOMMAND) $(CFGFILES) > > include $(BUILDRULES) > > > > install: default > > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > > - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) > > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > > + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) > > $(INSTALL) -m 755 -d $(MKFS_CFG_DIR) > > $(INSTALL) -m 644 $(CFGFILES) $(MKFS_CFG_DIR) > > > > diff --git a/repair/Makefile b/repair/Makefile > > index e5014deb..c5b0d4cb 100644 > > --- a/repair/Makefile > > +++ b/repair/Makefile > > @@ -99,8 +99,8 @@ include $(BUILDRULES) > > #CFLAGS += ... > > > > install: default > > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > > - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) > > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > > + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) > > install-dev: > > > > -include .dep > > -- > > 2.39.2 > > > > ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3] Remove support for split-/usr installs 2024-06-12 20:03 ` Darrick J. Wong 2024-06-12 20:10 ` Chris Hofstaedtler @ 2024-06-19 21:48 ` Chris Hofstaedtler 2024-06-20 18:34 ` Darrick J. Wong 1 sibling, 1 reply; 10+ messages in thread From: Chris Hofstaedtler @ 2024-06-19 21:48 UTC (permalink / raw) To: linux-xfs; +Cc: Bastian Germann, Darrick J. Wong, Chris Hofstaedtler Always install binaries and other files under /usr, not /. This will break any distribution that hasn't yet merged the two, which are vanishingly small these days. This breaks the usecase of needing to repair the /usr partition when there is no initramfs or livecd available and / is the only option. Signed-off-by: Chris Hofstaedtler <zeha@debian.org> --- V1 -> V2: remove root_sbindir, root_libdir, PKG_ROOT_SBIN_DIR, PKG_ROOT_LIB_DIR V2 -> V3: fix debian-specific installation logic, i.e. do not delete /usr/lib in xfslibs-dev configure.ac | 21 --------------------- debian/Makefile | 4 ++-- debian/local/initramfs.hook | 2 +- debian/rules | 5 ++--- fsck/Makefile | 4 ++-- include/builddefs.in | 2 -- include/buildmacros | 20 ++++++++++---------- mkfs/Makefile | 4 ++-- repair/Makefile | 4 ++-- 9 files changed, 21 insertions(+), 45 deletions(-) diff --git a/configure.ac b/configure.ac index da30fc5c..4530f387 100644 --- a/configure.ac +++ b/configure.ac @@ -113,27 +113,6 @@ esac # test -n "$multiarch" && enable_lib64=no -# -# Some important tools should be installed into the root partitions. -# -# Check whether exec_prefix=/usr: and install them to /sbin in that -# case. If the user chooses a different prefix assume they just want -# a local install for testing and not a system install. -# -case $exec_prefix:$prefix in -NONE:NONE | NONE:/usr | /usr:*) - root_sbindir='/sbin' - root_libdir="/${base_libdir}" - ;; -*) - root_sbindir="${sbindir}" - root_libdir="${libdir}" - ;; -esac - -AC_SUBST([root_sbindir]) -AC_SUBST([root_libdir]) - # Find localized files. Don't descend into any "dot directories" # (like .git or .pc from quilt). Strangely, the "-print" argument # to "find" is required, to avoid including such directories in the diff --git a/debian/Makefile b/debian/Makefile index cafe8bbb..2f9cd38c 100644 --- a/debian/Makefile +++ b/debian/Makefile @@ -31,6 +31,6 @@ endif install-d-i: default ifeq ($(PKG_DISTRIBUTION), debian) - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_ROOT_SBIN_DIR)/mkfs.xfs + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_SBIN_DIR)/mkfs.xfs endif diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook index 5b24eaec..eac7e79e 100644 --- a/debian/local/initramfs.hook +++ b/debian/local/initramfs.hook @@ -45,7 +45,7 @@ rootfs_type() { . /usr/share/initramfs-tools/hook-functions if [ "$(rootfs_type)" = "xfs" ]; then - copy_exec /sbin/xfs_repair + copy_exec /usr/sbin/xfs_repair copy_exec /usr/sbin/xfs_db copy_exec /usr/sbin/xfs_metadump fi diff --git a/debian/rules b/debian/rules index 0c1cef92..0db0ed8e 100755 --- a/debian/rules +++ b/debian/rules @@ -105,9 +105,8 @@ binary-arch: checkroot built $(pkgme) $(MAKE) dist install -D -m 0755 debian/local/initramfs.hook debian/xfsprogs/usr/share/initramfs-tools/hooks/xfs rmdir debian/xfslibs-dev/usr/share/doc/xfsprogs - rm -f debian/xfslibs-dev/lib/$(DEB_HOST_MULTIARCH)/libhandle.la - rm -f debian/xfslibs-dev/lib/$(DEB_HOST_MULTIARCH)/libhandle.a - rm -fr debian/xfslibs-dev/usr/lib + rm -f debian/xfslibs-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libhandle.la + rm -f debian/xfslibs-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libhandle.a dh_installdocs -XCHANGES dh_installchangelogs dh_strip diff --git a/fsck/Makefile b/fsck/Makefile index da9b6ded..5ca529f5 100644 --- a/fsck/Makefile +++ b/fsck/Makefile @@ -12,6 +12,6 @@ default: $(LTCOMMAND) include $(BUILDRULES) install: default - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(INSTALL) -m 755 xfs_fsck.sh $(PKG_ROOT_SBIN_DIR)/fsck.xfs + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(INSTALL) -m 755 xfs_fsck.sh $(PKG_SBIN_DIR)/fsck.xfs install-dev: diff --git a/include/builddefs.in b/include/builddefs.in index 644ed1cb..6ac36c14 100644 --- a/include/builddefs.in +++ b/include/builddefs.in @@ -48,8 +48,6 @@ datarootdir = @datarootdir@ top_builddir = @top_builddir@ PKG_SBIN_DIR = @sbindir@ -PKG_ROOT_SBIN_DIR = @root_sbindir@ -PKG_ROOT_LIB_DIR= @root_libdir@@libdirsuffix@ PKG_LIB_DIR = @libdir@@libdirsuffix@ PKG_LIBEXEC_DIR = @libexecdir@/@pkg_name@ PKG_INC_DIR = @includedir@/xfs diff --git a/include/buildmacros b/include/buildmacros index 6f34d7c5..9183e5bc 100644 --- a/include/buildmacros +++ b/include/buildmacros @@ -50,16 +50,16 @@ LTINSTALL = $(LIBTOOL) --quiet --mode=install $(INSTALL) LTCOMPILE = $(LIBTOOL) --quiet --tag=CC --mode=compile $(CCF) ifeq ($(ENABLE_SHARED),yes) -LTLDFLAGS += -rpath $(PKG_ROOT_LIB_DIR) +LTLDFLAGS += -rpath $(PKG_LIB_DIR) LTLDFLAGS += -version-info $(LTVERSION) endif ifeq ($(ENABLE_SHARED),yes) INSTALL_LTLIB = \ cd $(TOPDIR)/$(LIBNAME)/.libs; \ - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ - ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ - ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_ROOT_LIB_DIR) + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ + ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_LIB_DIR); \ + ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_LIB_DIR) endif # Libtool thinks the static and shared libs should be in the same dir, so @@ -74,13 +74,13 @@ INSTALL_LTLIB_DEV = \ ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \ ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ - ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ + ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \ if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \ - "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \ - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ - ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ + "x$(shell readlink -f $(PKG_LIB_DIR))" ]; then \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ fi else INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) diff --git a/mkfs/Makefile b/mkfs/Makefile index a0c168e3..a6173083 100644 --- a/mkfs/Makefile +++ b/mkfs/Makefile @@ -28,8 +28,8 @@ default: depend $(LTCOMMAND) $(CFGFILES) include $(BUILDRULES) install: default - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) $(INSTALL) -m 755 -d $(MKFS_CFG_DIR) $(INSTALL) -m 644 $(CFGFILES) $(MKFS_CFG_DIR) diff --git a/repair/Makefile b/repair/Makefile index e5014deb..c5b0d4cb 100644 --- a/repair/Makefile +++ b/repair/Makefile @@ -99,8 +99,8 @@ include $(BUILDRULES) #CFLAGS += ... install: default - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) install-dev: -include .dep -- 2.39.2 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3] Remove support for split-/usr installs 2024-06-19 21:48 ` [PATCH v3] Remove support for split-/usr installs Chris Hofstaedtler @ 2024-06-20 18:34 ` Darrick J. Wong 0 siblings, 0 replies; 10+ messages in thread From: Darrick J. Wong @ 2024-06-20 18:34 UTC (permalink / raw) To: Chris Hofstaedtler; +Cc: linux-xfs, Bastian Germann On Wed, Jun 19, 2024 at 11:48:43PM +0200, Chris Hofstaedtler wrote: > Always install binaries and other files under /usr, not /. This will > break any distribution that hasn't yet merged the two, which are > vanishingly small these days. This breaks the usecase of needing to > repair the /usr partition when there is no initramfs or livecd > available and / is the only option. > > Signed-off-by: Chris Hofstaedtler <zeha@debian.org> Sorry I missed that on the first run... the new xfslibs-dev/xfsprogs package paths are comparable to what got built before this patch. Reviewed-by: Darrick J. Wong <djwong@kernel.org> --D > --- > > V1 -> V2: remove root_sbindir, root_libdir, PKG_ROOT_SBIN_DIR, > PKG_ROOT_LIB_DIR > > V2 -> V3: fix debian-specific installation logic, i.e. do not > delete /usr/lib in xfslibs-dev > > configure.ac | 21 --------------------- > debian/Makefile | 4 ++-- > debian/local/initramfs.hook | 2 +- > debian/rules | 5 ++--- > fsck/Makefile | 4 ++-- > include/builddefs.in | 2 -- > include/buildmacros | 20 ++++++++++---------- > mkfs/Makefile | 4 ++-- > repair/Makefile | 4 ++-- > 9 files changed, 21 insertions(+), 45 deletions(-) > > diff --git a/configure.ac b/configure.ac > index da30fc5c..4530f387 100644 > --- a/configure.ac > +++ b/configure.ac > @@ -113,27 +113,6 @@ esac > # > test -n "$multiarch" && enable_lib64=no > > -# > -# Some important tools should be installed into the root partitions. > -# > -# Check whether exec_prefix=/usr: and install them to /sbin in that > -# case. If the user chooses a different prefix assume they just want > -# a local install for testing and not a system install. > -# > -case $exec_prefix:$prefix in > -NONE:NONE | NONE:/usr | /usr:*) > - root_sbindir='/sbin' > - root_libdir="/${base_libdir}" > - ;; > -*) > - root_sbindir="${sbindir}" > - root_libdir="${libdir}" > - ;; > -esac > - > -AC_SUBST([root_sbindir]) > -AC_SUBST([root_libdir]) > - > # Find localized files. Don't descend into any "dot directories" > # (like .git or .pc from quilt). Strangely, the "-print" argument > # to "find" is required, to avoid including such directories in the > diff --git a/debian/Makefile b/debian/Makefile > index cafe8bbb..2f9cd38c 100644 > --- a/debian/Makefile > +++ b/debian/Makefile > @@ -31,6 +31,6 @@ endif > > install-d-i: default > ifeq ($(PKG_DISTRIBUTION), debian) > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_ROOT_SBIN_DIR)/mkfs.xfs > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(INSTALL) -m 755 $(BOOT_MKFS_BIN) $(PKG_SBIN_DIR)/mkfs.xfs > endif > diff --git a/debian/local/initramfs.hook b/debian/local/initramfs.hook > index 5b24eaec..eac7e79e 100644 > --- a/debian/local/initramfs.hook > +++ b/debian/local/initramfs.hook > @@ -45,7 +45,7 @@ rootfs_type() { > . /usr/share/initramfs-tools/hook-functions > > if [ "$(rootfs_type)" = "xfs" ]; then > - copy_exec /sbin/xfs_repair > + copy_exec /usr/sbin/xfs_repair > copy_exec /usr/sbin/xfs_db > copy_exec /usr/sbin/xfs_metadump > fi > diff --git a/debian/rules b/debian/rules > index 0c1cef92..0db0ed8e 100755 > --- a/debian/rules > +++ b/debian/rules > @@ -105,9 +105,8 @@ binary-arch: checkroot built > $(pkgme) $(MAKE) dist > install -D -m 0755 debian/local/initramfs.hook debian/xfsprogs/usr/share/initramfs-tools/hooks/xfs > rmdir debian/xfslibs-dev/usr/share/doc/xfsprogs > - rm -f debian/xfslibs-dev/lib/$(DEB_HOST_MULTIARCH)/libhandle.la > - rm -f debian/xfslibs-dev/lib/$(DEB_HOST_MULTIARCH)/libhandle.a > - rm -fr debian/xfslibs-dev/usr/lib > + rm -f debian/xfslibs-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libhandle.la > + rm -f debian/xfslibs-dev/usr/lib/$(DEB_HOST_MULTIARCH)/libhandle.a > dh_installdocs -XCHANGES > dh_installchangelogs > dh_strip > diff --git a/fsck/Makefile b/fsck/Makefile > index da9b6ded..5ca529f5 100644 > --- a/fsck/Makefile > +++ b/fsck/Makefile > @@ -12,6 +12,6 @@ default: $(LTCOMMAND) > include $(BUILDRULES) > > install: default > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(INSTALL) -m 755 xfs_fsck.sh $(PKG_ROOT_SBIN_DIR)/fsck.xfs > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(INSTALL) -m 755 xfs_fsck.sh $(PKG_SBIN_DIR)/fsck.xfs > install-dev: > diff --git a/include/builddefs.in b/include/builddefs.in > index 644ed1cb..6ac36c14 100644 > --- a/include/builddefs.in > +++ b/include/builddefs.in > @@ -48,8 +48,6 @@ datarootdir = @datarootdir@ > top_builddir = @top_builddir@ > > PKG_SBIN_DIR = @sbindir@ > -PKG_ROOT_SBIN_DIR = @root_sbindir@ > -PKG_ROOT_LIB_DIR= @root_libdir@@libdirsuffix@ > PKG_LIB_DIR = @libdir@@libdirsuffix@ > PKG_LIBEXEC_DIR = @libexecdir@/@pkg_name@ > PKG_INC_DIR = @includedir@/xfs > diff --git a/include/buildmacros b/include/buildmacros > index 6f34d7c5..9183e5bc 100644 > --- a/include/buildmacros > +++ b/include/buildmacros > @@ -50,16 +50,16 @@ LTINSTALL = $(LIBTOOL) --quiet --mode=install $(INSTALL) > LTCOMPILE = $(LIBTOOL) --quiet --tag=CC --mode=compile $(CCF) > > ifeq ($(ENABLE_SHARED),yes) > -LTLDFLAGS += -rpath $(PKG_ROOT_LIB_DIR) > +LTLDFLAGS += -rpath $(PKG_LIB_DIR) > LTLDFLAGS += -version-info $(LTVERSION) > endif > > ifeq ($(ENABLE_SHARED),yes) > INSTALL_LTLIB = \ > cd $(TOPDIR)/$(LIBNAME)/.libs; \ > - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ > - ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ > - ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_ROOT_LIB_DIR) > + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > + ../$(INSTALL) -m 755 -T so_dot_version $(LIBNAME).lai $(PKG_LIB_DIR); \ > + ../$(INSTALL) -T so_dot_current $(LIBNAME).lai $(PKG_LIB_DIR) > endif > > # Libtool thinks the static and shared libs should be in the same dir, so > @@ -74,13 +74,13 @@ INSTALL_LTLIB_DEV = \ > ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > ../$(INSTALL) -m 644 -T old_lib $(LIBNAME).lai $(PKG_LIB_DIR); \ > ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ > - ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ > - ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ > + ../$(INSTALL) -m 755 -d $(PKG_LIB_DIR); \ > + ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_LIB_DIR); \ > if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \ > - "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" ]; then \ > - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ > - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ > - ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ > + "x$(shell readlink -f $(PKG_LIB_DIR))" ]; then \ > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_LIB_DIR)/$(LIBNAME).a; \ > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_LIB_DIR)/$(LIBNAME).la; \ > + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ > fi > else > INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) > diff --git a/mkfs/Makefile b/mkfs/Makefile > index a0c168e3..a6173083 100644 > --- a/mkfs/Makefile > +++ b/mkfs/Makefile > @@ -28,8 +28,8 @@ default: depend $(LTCOMMAND) $(CFGFILES) > include $(BUILDRULES) > > install: default > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) > $(INSTALL) -m 755 -d $(MKFS_CFG_DIR) > $(INSTALL) -m 644 $(CFGFILES) $(MKFS_CFG_DIR) > > diff --git a/repair/Makefile b/repair/Makefile > index e5014deb..c5b0d4cb 100644 > --- a/repair/Makefile > +++ b/repair/Makefile > @@ -99,8 +99,8 @@ include $(BUILDRULES) > #CFLAGS += ... > > install: default > - $(INSTALL) -m 755 -d $(PKG_ROOT_SBIN_DIR) > - $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_ROOT_SBIN_DIR) > + $(INSTALL) -m 755 -d $(PKG_SBIN_DIR) > + $(LTINSTALL) -m 755 $(LTCOMMAND) $(PKG_SBIN_DIR) > install-dev: > > -include .dep > -- > 2.39.2 > > ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-06-20 18:34 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-06-12 17:35 [PATCH 0/1] Forward: Install files into UsrMerged layout Bastian Germann 2024-06-12 17:35 ` [PATCH 1/1] " Bastian Germann 2024-06-12 18:08 ` Darrick J. Wong 2024-06-12 18:58 ` Chris Hofstaedtler 2024-06-12 20:07 ` Darrick J. Wong 2024-06-12 19:00 ` [PATCH v2 " Chris Hofstaedtler 2024-06-12 20:03 ` Darrick J. Wong 2024-06-12 20:10 ` Chris Hofstaedtler 2024-06-19 21:48 ` [PATCH v3] Remove support for split-/usr installs Chris Hofstaedtler 2024-06-20 18:34 ` Darrick J. Wong
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox