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@xxxxxxxxxx> 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@xxxxxxxxxx> --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 > >