* Darrick J. Wong <djwong@xxxxxxxxxx> [240612 22:03]: > On Wed, Jun 12, 2024 at 09:00:19PM +0200, Chris Hofstaedtler wrote: > > From: Chris Hofstaedtler <zeha@xxxxxxxxxx> > > > > Signed-off-by: Chris Hofstaedtler <zeha@xxxxxxxxxx> > > 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@xxxxxxxxxx> > > --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 > > > >