* [PATCH] xfsprogs: healer: install targets one at a time
@ 2026-07-14 23:21 Allen Hewes
2026-07-14 23:30 ` Darrick J. Wong
0 siblings, 1 reply; 4+ messages in thread
From: Allen Hewes @ 2026-07-14 23:21 UTC (permalink / raw)
To: linux-xfs@vger.kernel.org
libtool's --mode=install requires the destination to already exist
as a real directory whenever more than one source file is given
(it emulates cp/install semantics, which have the same requirement).
Installing xfs_healer and xfs_healer_start in a single LTINSTALL
call trips this check on any build where HAVE_HEALER_START_DEPS=yes,
since PKG_LIBEXEC_DIR isn't guaranteed to exist under the raw,
un-DESTDIR'd path libtool checks. Install each target separately
to avoid the multi-file directory check entirely.
Assisted-by: Claude:claude-sonnet-5
Signed-off-by: Allen Hewes <rallenh@hotmail.com>
---
healer/Makefile | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/healer/Makefile b/healer/Makefile
index e3c41e66..4aa58757 100644
--- a/healer/Makefile
+++ b/healer/Makefile
@@ -69,7 +69,9 @@ install: $(INSTALL_HEALER)
install-healer: default
$(INSTALL) -m 755 -d $(PKG_LIBEXEC_DIR)
- $(LTINSTALL) -m 755 $(BUILD_TARGETS) $(PKG_LIBEXEC_DIR)
+ for f in $(BUILD_TARGETS); do \
+ $(LTINSTALL) -m 755 $$f $(PKG_LIBEXEC_DIR); \
+ done
install-systemd: default
$(INSTALL) -m 755 -d $(SYSTEMD_SYSTEM_UNIT_DIR)
--
2.55.0
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] xfsprogs: healer: install targets one at a time
2026-07-14 23:21 [PATCH] xfsprogs: healer: install targets one at a time Allen Hewes
@ 2026-07-14 23:30 ` Darrick J. Wong
2026-07-14 23:34 ` Allen Hewes
0 siblings, 1 reply; 4+ messages in thread
From: Darrick J. Wong @ 2026-07-14 23:30 UTC (permalink / raw)
To: Allen Hewes; +Cc: linux-xfs@vger.kernel.org
On Tue, Jul 14, 2026 at 11:21:03PM +0000, Allen Hewes wrote:
> libtool's --mode=install requires the destination to already exist
> as a real directory whenever more than one source file is given
> (it emulates cp/install semantics, which have the same requirement).
> Installing xfs_healer and xfs_healer_start in a single LTINSTALL
> call trips this check on any build where HAVE_HEALER_START_DEPS=yes,
> since PKG_LIBEXEC_DIR isn't guaranteed to exist under the raw,
> un-DESTDIR'd path libtool checks. Install each target separately
> to avoid the multi-file directory check entirely.
Aha, so that's the bug then -- distro build scripts set DESTDIR=/xxx and
run the build. include/buildefs sets
PKG_LIBEXEC_DIR=/usr/libexec/xfsprogs and passes that to libtool.
libtool sees that /usr/libexec/xfsprogs doesn't exist and fails.
Or, if that path happens to exist already, then it starts our custom
../install-sh script which copies the file to $DESTDIR/$PKG_LIBEXEC_DIR
which is NOT the same path that libtool dies on.
> Assisted-by: Claude:claude-sonnet-5
> Signed-off-by: Allen Hewes <rallenh@hotmail.com>
> ---
> healer/Makefile | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/healer/Makefile b/healer/Makefile
> index e3c41e66..4aa58757 100644
> --- a/healer/Makefile
> +++ b/healer/Makefile
> @@ -69,7 +69,9 @@ install: $(INSTALL_HEALER)
>
> install-healer: default
> $(INSTALL) -m 755 -d $(PKG_LIBEXEC_DIR)
> - $(LTINSTALL) -m 755 $(BUILD_TARGETS) $(PKG_LIBEXEC_DIR)
> + for f in $(BUILD_TARGETS); do \
> + $(LTINSTALL) -m 755 $$f $(PKG_LIBEXEC_DIR); \
Let's hope nobody ever wants to build a binary with a space in it.
Thanks for digging into this.
Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
--D
> + done
>
> install-systemd: default
> $(INSTALL) -m 755 -d $(SYSTEMD_SYSTEM_UNIT_DIR)
> --
> 2.55.0
>
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] xfsprogs: healer: install targets one at a time
2026-07-14 23:30 ` Darrick J. Wong
@ 2026-07-14 23:34 ` Allen Hewes
2026-07-14 23:48 ` Darrick J. Wong
0 siblings, 1 reply; 4+ messages in thread
From: Allen Hewes @ 2026-07-14 23:34 UTC (permalink / raw)
To: Darrick J. Wong; +Cc: linux-xfs@vger.kernel.org
On Tue, 2026-07-14 at 16:30 -0700, Darrick J. Wong wrote:
> On Tue, Jul 14, 2026 at 11:21:03PM +0000, Allen Hewes wrote:
> > libtool's --mode=install requires the destination to already exist
> > as a real directory whenever more than one source file is given
> > (it emulates cp/install semantics, which have the same
> > requirement).
> > Installing xfs_healer and xfs_healer_start in a single LTINSTALL
> > call trips this check on any build where
> > HAVE_HEALER_START_DEPS=yes,
> > since PKG_LIBEXEC_DIR isn't guaranteed to exist under the raw,
> > un-DESTDIR'd path libtool checks. Install each target separately
> > to avoid the multi-file directory check entirely.
>
> Aha, so that's the bug then -- distro build scripts set DESTDIR=/xxx
> and
> run the build. include/buildefs sets
> PKG_LIBEXEC_DIR=/usr/libexec/xfsprogs and passes that to libtool.
> libtool sees that /usr/libexec/xfsprogs doesn't exist and fails.
>
> Or, if that path happens to exist already, then it starts our custom
> ../install-sh script which copies the file to
> $DESTDIR/$PKG_LIBEXEC_DIR
> which is NOT the same path that libtool dies on.
>
> > Assisted-by: Claude:claude-sonnet-5
> > Signed-off-by: Allen Hewes <rallenh@hotmail.com>
> > ---
> > healer/Makefile | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/healer/Makefile b/healer/Makefile
> > index e3c41e66..4aa58757 100644
> > --- a/healer/Makefile
> > +++ b/healer/Makefile
> > @@ -69,7 +69,9 @@ install: $(INSTALL_HEALER)
> >
> > install-healer: default
> > $(INSTALL) -m 755 -d $(PKG_LIBEXEC_DIR)
> > - $(LTINSTALL) -m 755 $(BUILD_TARGETS) $(PKG_LIBEXEC_DIR)
> > + for f in $(BUILD_TARGETS); do \
> > + $(LTINSTALL) -m 755 $$f $(PKG_LIBEXEC_DIR); \
>
> Let's hope nobody ever wants to build a binary with a space in it.
> Thanks for digging into this.
> Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
>
> --D
>
Quotes? I can add them if you think that's better defense.
Thanks for helping,
/allen
> > + done
> >
> > install-systemd: default
> > $(INSTALL) -m 755 -d $(SYSTEMD_SYSTEM_UNIT_DIR)
> > --
> > 2.55.0
> >
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] xfsprogs: healer: install targets one at a time
2026-07-14 23:34 ` Allen Hewes
@ 2026-07-14 23:48 ` Darrick J. Wong
0 siblings, 0 replies; 4+ messages in thread
From: Darrick J. Wong @ 2026-07-14 23:48 UTC (permalink / raw)
To: Allen Hewes; +Cc: linux-xfs@vger.kernel.org
On Tue, Jul 14, 2026 at 11:34:46PM +0000, Allen Hewes wrote:
> On Tue, 2026-07-14 at 16:30 -0700, Darrick J. Wong wrote:
> > On Tue, Jul 14, 2026 at 11:21:03PM +0000, Allen Hewes wrote:
> > > libtool's --mode=install requires the destination to already exist
> > > as a real directory whenever more than one source file is given
> > > (it emulates cp/install semantics, which have the same
> > > requirement).
> > > Installing xfs_healer and xfs_healer_start in a single LTINSTALL
> > > call trips this check on any build where
> > > HAVE_HEALER_START_DEPS=yes,
> > > since PKG_LIBEXEC_DIR isn't guaranteed to exist under the raw,
> > > un-DESTDIR'd path libtool checks. Install each target separately
> > > to avoid the multi-file directory check entirely.
> >
> > Aha, so that's the bug then -- distro build scripts set DESTDIR=/xxx
> > and
> > run the build. include/buildefs sets
> > PKG_LIBEXEC_DIR=/usr/libexec/xfsprogs and passes that to libtool.
> > libtool sees that /usr/libexec/xfsprogs doesn't exist and fails.
> >
> > Or, if that path happens to exist already, then it starts our custom
> > ../install-sh script which copies the file to
> > $DESTDIR/$PKG_LIBEXEC_DIR
> > which is NOT the same path that libtool dies on.
> >
> > > Assisted-by: Claude:claude-sonnet-5
> > > Signed-off-by: Allen Hewes <rallenh@hotmail.com>
> > > ---
> > > healer/Makefile | 4 +++-
> > > 1 file changed, 3 insertions(+), 1 deletion(-)
> > >
> > > diff --git a/healer/Makefile b/healer/Makefile
> > > index e3c41e66..4aa58757 100644
> > > --- a/healer/Makefile
> > > +++ b/healer/Makefile
> > > @@ -69,7 +69,9 @@ install: $(INSTALL_HEALER)
> > >
> > > install-healer: default
> > > $(INSTALL) -m 755 -d $(PKG_LIBEXEC_DIR)
> > > - $(LTINSTALL) -m 755 $(BUILD_TARGETS) $(PKG_LIBEXEC_DIR)
> > > + for f in $(BUILD_TARGETS); do \
> > > + $(LTINSTALL) -m 755 $$f $(PKG_LIBEXEC_DIR); \
> >
> > Let's hope nobody ever wants to build a binary with a space in it.
> > Thanks for digging into this.
> > Reviewed-by: "Darrick J. Wong" <djwong@kernel.org>
> >
> > --D
> >
>
> Quotes? I can add them if you think that's better defense.
RFC 5322 says that display-name has to be quoted if you want to use a
period inside of it, because elsewhere it defines '.' as a delimiter.
Most software doesn't care of course, but once you start writing
automation to wrangle patches you might as well get it right.
(As it took 20 years for me to start doing per-spec :P)
--D
> Thanks for helping,
>
> /allen
> > > + done
> > >
> > > install-systemd: default
> > > $(INSTALL) -m 755 -d $(SYSTEMD_SYSTEM_UNIT_DIR)
> > > --
> > > 2.55.0
> > >
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-14 23:48 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-07-14 23:21 [PATCH] xfsprogs: healer: install targets one at a time Allen Hewes
2026-07-14 23:30 ` Darrick J. Wong
2026-07-14 23:34 ` Allen Hewes
2026-07-14 23:48 ` 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