From: "Darrick J. Wong" <djwong@kernel.org>
To: Chris Hofstaedtler <zeha@debian.org>
Cc: linux-xfs@vger.kernel.org, Bastian Germann <bage@debian.org>
Subject: Re: [PATCH v3] Remove support for split-/usr installs
Date: Thu, 20 Jun 2024 11:34:04 -0700 [thread overview]
Message-ID: <20240620183404.GX103034@frogsfrogsfrogs> (raw)
In-Reply-To: <20240619214843.183235-1-zeha@debian.org>
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
>
>
prev parent reply other threads:[~2024-06-20 18:34 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
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 message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20240620183404.GX103034@frogsfrogsfrogs \
--to=djwong@kernel.org \
--cc=bage@debian.org \
--cc=linux-xfs@vger.kernel.org \
--cc=zeha@debian.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.