Subject: Re: bug#13588: Pax hangs in case big UID

From: Stefano Lattarini <[email-masked]>
Date: Tue, 23 Apr 2013 21:37:39 +0200

On 04/23/2013 05:04 PM, Petr Hracek wrote:
> Hello Stefano,
> I was a little bit busy.
No worries.

> From my point of view user is not informed that his UID is too big.
> I think that it should be mentioned and visible directly on the screen.
>
But then, following the same logic, we should also report the error from
GNU tar signaling that the UID is to big; this error is currently only
reported in the config.log as well:

  configure:2400: tardir=conftest.dir && eval tar --format=ustar -chf - \
    "$tardir" >conftest.tar
  tar: value 17000000 out of uid_t range 0..2097151

Still, I am quite neutral on this change, so I might accept a patch if
the other reviewers think it would be an improvement.

> But as I mentioned it is my point of view.
>
And you did well to bring it up; the worst that can happen is that we
agree to disagree :-)

> Here are results:
> test@kiasportyw: ~/mycproject$ ./configure
> checking for a BSD-compatible install... /usr/bin/install -c
> checking whether build environment is sane... yes
> checking for a thread-safe mkdir -p... /usr/bin/mkdir -p
> checking for gawk... gawk
> checking whether make sets $(MAKE)... yes
> checking how to create a ustar tar archive... none
> checking for style of include used by make... GNU
> checking for gcc... gcc
> checking whether the C compiler works... yes
> checking for C compiler default output file name... a.out
> checking for suffix of executables...
> checking whether we are cross compiling... no
> checking for suffix of object files... o
> checking whether we are using the GNU C compiler... yes
> checking whether gcc accepts -g... yes
> checking for gcc option to accept ISO C89... none needed
> checking dependency style of gcc... gcc3
> checking for pthread_create in -lpthread... yes
> checking for pthread_join in -lpthread... yes
> checking for gcc... (cached) gcc
> checking whether we are using the GNU C compiler... (cached) yes
> checking whether gcc accepts -g... (cached) yes
> checking for gcc option to accept ISO C89... (cached) none needed
> checking dependency style of gcc... (cached) gcc3
> checking that generated files are newer than configure... done
> configure: creating ./config.status
> config.status: creating Makefile
> config.status: creating src/Makefile
> config.status: executing depfiles commands
> test@kiasportyw: ~/mycproject$
> 
> and in config.log file is mentioned:
> tar (GNU tar) 1.26
> Copyright (C) 2011 Free Software Foundation, Inc.
> License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
> This is free software: you are free to change and redistribute it.
> There is NO WARRANTY, to the extent permitted by law.
> 
> Written by John Gilmore and Jay Fenlason.
> configure:2360: $? = 0
> configure:2400: tardir=conftest.dir && eval tar --format=ustar -chf - "$tardir" >conftest.tar
> tar: value 17000000 out of uid_t range 0..2097151
> tar: Exiting with failure status due to previous errors
> configure:2403: $? = 2
> configure:2400: tardir=conftest.dir && eval pax -L -x ustar -w "$tardir" >conftest.tar
> pax: Ustar header field is too small for conftest.dir
> pax: Ustar header field is too small for conftest.dir/file
> configure:2403: $? = 1
> configure: 2421: UID '17000000' too large for ustar
> configure:2400: tardir=conftest.dir && eval find "$tardir" -print | cpio -o -H ustar -L >conftest.tar
> 5 blocks
> configure:2403: $? = 0
> configure:2400: tardir=conftest.dir && eval false >conftest.tar
> configure:2403: $? = 1
> configure:2443: result: none
> configure:2463: checking for style of include used by make
> configure:2491: result: GNU
> configure:2562: checking for gcc
> configure:2578: found /usr/bin/gcc
> configure:2589: result: gcc
> configure:2818: checking for C compiler version
> configure:2827: gcc --version >&5
> 
OK, at least the problem is correctly detected now!  I will merge the
patch in branch-1.13.2 soon, so that the fix will appear in the next
maintenance version of Automake (1.13.2).

> Best regards
> Petr

Thanks, and best regards,
  Stefano