[PATCH v2 util-modular] release.sh: create a worktree structure that's out of reach of libtool

Eric Engestrom eric.engestrom at imgtec.com
Thu Mar 9 09:37:52 UTC 2017


On Thursday, 2017-03-09 08:23:24 +1000, Peter Hutterer 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 because most repos don't have
> AC_CONFIG_AUX_DIR() set.
> 
> 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>
> ---
> Changes to v1:
> - now with new and improved typos :)
> - add note about AC_CONFIG_AUX_DIR
> - change path to release/$section/, section is the only thing we have
>   available this early
> 
>  release.sh | 15 ++++++++++++++-
>  1 file changed, 14 insertions(+), 1 deletion(-)
> 
> diff --git a/release.sh b/release.sh
> index c824dea..0e9261b 100755
> --- a/release.sh
> +++ b/release.sh
> @@ -357,13 +357,26 @@ process_module() {
>  	return 1
>      fi
>  
> +    # If AC_CONFIG_AUX_DIR isn't set, libtool will search down to ../.. for
> +    # install-sh and then just guess 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.
> +    #
> +    # We use release/$section/$build_dir because git worktree will pick the
> +    # last part as branch identifier, so it needs to be random to avoid
> +    # conflicts.
> +    build_dir="release/$section"
> +    mkdir -p "$build_dir"
> +
>      # Create tmpdir for the release
> -    build_dir=`mktemp -d -p . build.XXXXXXXXXX`
> +    tmpdir=`mktemp -d -p . build.XXXXXXXXXX`

I'm pretty sure that should be `-p "$build_dir"` :P

And the output already contains `-p`, so this line should read:
  build_dir=`mktemp -d -p "$build_dir" build.XXXXXXXXXX`

>      if [ $? -ne 0 ]; then
>          echo "Error: could not create a temporary directory for the release"
>          echo "Do you have coreutils' mktemp ?"
>          return 1
>      fi
> +    build_dir="$build_dir/$tmpdir"

And this line should be dropped.

With that, the patch is:
Reviewed-by: Eric Engestrom <eric.engestrom at imgtec.com>

Cheers,
  Eric

>  
>      # Worktree removal is intentionally left to the user, due to:
>      #  - currently we cannot select only one worktree to prune
> -- 
> 2.9.3
> 


More information about the xorg-devel mailing list