Re: [PATCH] xfsprogs: healer: install targets one at a time

"Darrick J. Wong" <[email protected]>
Newsgroups org.kernel.vger.linux-xfs
Message-ID <20260714234832.GN7380@frogsfrogsfrogs>
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 <[email protected]>
> > > ---
> > >  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" <[email protected]>
> > 
> > --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
> > >
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.