configure stops when run by big UID (#843379)

This commit is contained in:
Petr Hracek 2013-04-24 12:33:35 +02:00
parent f28d18c7a7
commit cf408a4e8e
2 changed files with 43 additions and 1 deletions

View File

@ -0,0 +1,37 @@
diff --git a/m4/tar.m4 b/m4/tar.m4
index ec8c83e..681fcbf 100644
--- a/m4/tar.m4
+++ b/m4/tar.m4
@@ -81,7 +81,31 @@ do
AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
rm -rf conftest.dir
if test -s conftest.tar; then
- AM_RUN_LOG([$am__untar <conftest.tar])
+ m4_if([$1], [ustar], [
+ if test "$_am_tool" = pax; then
+ # Automake bugs #8343 and #13588: 'pax' can hang when UIDs
+ # or GIDs are involved that requires more than 21 bits to
+ # be stored.
+ am_max_uid=2097151 # 2^21 - 1
+ am_max_gid=$am_max_uid
+ # The $UID and $GID variables are not portable, so we need to
+ # resort to the POSIX-mandated id(1) utility. Errors here are
+ # definitely unexpected, so allow the users to see them (i.e.,
+ # no stderr redirection).
+ am_uid=`id -u || echo unknown`
+ am_gid=`id -g || echo unknown`
+ if test $am_uid -le $am_max_uid; then :; else
+ AS_ECHO(["$as_me: $LINENO: UID '$am_uid' too large for ustar"]) \
+ >&AS_MESSAGE_LOG_FD
+ continue
+ fi
+ if test $am_gid -le $am_max_gid; then :; else
+ AS_ECHO(["$as_me: $LINENO: UID '$am_gid' too large for ustar"]) \
+ >&AS_MESSAGE_LOG_FD
+ continue
+ fi
+ fi
+ ]) # $1 == ustar
grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
fi
done

View File

@ -3,7 +3,7 @@
Summary: A GNU tool for automatically creating Makefiles
Name: automake
Version: %{api_version}.1
Release: 15%{?dist}
Release: 16%{?dist}
# docs ~> GFDL, sources ~> GPLv2+, mkinstalldirs ~> PD and install-sh ~> MIT
License: GPLv2+ and GFDL and Public Domain and MIT
@ -19,6 +19,7 @@ Patch1: %{name}-%{version}-disable-tests.patch
# ~> #901333
# ~> already upstream (commits 7a3d7cee2 and c83c13355)
Patch2: %{name}-%{version}-non-existing-m4-dir.patch
Patch3: %{name}-%{version}-pax-hangs.patch
URL: http://www.gnu.org/software/automake/
Requires: autoconf >= 2.65
@ -69,6 +70,7 @@ Makefiles.
%patch0 -p1 -b .reenable_macros
%patch1 -p1 -b .disable_tests
%patch2 -p1 -b .non_existing_m4_dir
%patch3 -p1 -b .pax-hangs
autoreconf -iv
# Fedora only to add ppc64p7 (Power7 optimized) arch:
@ -109,6 +111,9 @@ fi
%{_mandir}/man1/*
%changelog
* Wed Apr 24 2013 Petr Hracek <phracek@redhat.com> - 1.13.1-16
- configure stops when run by big UID (#843379)
* Thu Apr 11 2013 Pavel Raiskup <praiskup@redhat.com> - 1.13.1-15
- tune %%check to show testsuite.log when failed