[PATCH util-modular] release.sh: create a worktree structure that's out of reach of libtool
Peter Hutterer
peter.hutterer at who-t.net
Wed Mar 8 20:50:21 UTC 2017
On Wed, Mar 08, 2017 at 02:18:23PM +0000, Emil Velikov wrote:
> On 8 March 2017 at 08:21, Peter Hutterer <peter.hutterer at who-t.net> wrote:
> > The comment in the diff says it all, we need to put our worktree root at least
> > two directories away from our normal checkout.
> >
> > This fixes the issue of release.sh failing in git trees that haven't been git
> > cleaned:
> >
> > ERROR: files left in build directory after distclean:
> > ./config.sub
> > ./test-driver
> > ./ltmain.sh
> > ./config.guess
> > ./install-sh
> > ./missing
> > ./depcomp
> > ./compile
> > make[1]: *** [distcleancheck] Error 1
> > make: *** [distcheck] Error 1
> >
> > Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> > ---
> > release.sh | 12 ++++++++++++
> > 1 file changed, 12 insertions(+)
> >
> > diff --git a/release.sh b/release.sh
> > index c824dea..b5069cc 100755
> > --- a/release.sh
> > +++ b/release.sh
> > @@ -365,6 +365,18 @@ process_module() {
> > return 1
> > fi
> >
> > + # libtool will search down to ../.. for install-sh and then just gess
> > + # that's the aux dir, dumping config.sub and other files into that
> > + # directory. make distclean then complains about leftover files. So
> > + # let's put our real module dir out of reach of libtool.
> > + #
> That seems like a very strange behaviour indeed: from the manual -
> "the standard location is the first one of ., .., or ../.. (relative
> to the top source directory)"
> The better solution imho is to simply tell it where those are/should
> be stored via AC_CONFIG_AUX_DIR. For libdrm we use
> AC_CONFIG_AUX_DIR([build-aux]).
that would require changing every repo, only a few currently have that set.
So a long-term option, but for now getting the release script to work
independently of the automake setup seems to be sensible.
Cheers,
Peter
> > + # We use $build_dir/release/$build_dir because git will pick the last
> > + # part as branch identifer, so it needs to be random to avoid conflicts.
> > + # And in between we put 'release' so it doesn't look like a runaway
> > + # script and confuse poor maintainers.
> > + build_dir="$build_dir/release/$build_dir"
> > + mkdir -p "$build_dir"
> > +
> Regardless of my suggestion - having a $repo_top/release/$build_dir
> sounds great imho.
>
> Thanks
> Emil
More information about the xorg-devel
mailing list