The 'aclocal -I non-existent' should not fail
Version: 1.13.1-5 Resolves: #901333
This commit is contained in:
parent
0f8ac2e626
commit
fedee23596
159
automake-1.13.1-non-existing-m4-dir.patch
Normal file
159
automake-1.13.1-non-existing-m4-dir.patch
Normal file
@ -0,0 +1,159 @@
|
|||||||
|
diff --git a/aclocal.in b/aclocal.in
|
||||||
|
index b51c09d..29be10e 100644
|
||||||
|
--- a/aclocal.in
|
||||||
|
+++ b/aclocal.in
|
||||||
|
@@ -165,6 +165,11 @@ my @ac_config_macro_dirs;
|
||||||
|
# If set, names a temporary file that must be erased on abnormal exit.
|
||||||
|
my $erase_me;
|
||||||
|
|
||||||
|
+# constants for scan_m4_dirs($ERR_LEVEL) parameter
|
||||||
|
+use constant SCAN_M4_DIRS_SILENT => 0;
|
||||||
|
+use constant SCAN_M4_DIRS_WARN => 1;
|
||||||
|
+use constant SCAN_M4_DIRS_ERROR => 2;
|
||||||
|
+
|
||||||
|
################################################################
|
||||||
|
|
||||||
|
# Prototypes for all subroutines.
|
||||||
|
@@ -355,21 +360,29 @@ sub list_compare (\@\@)
|
||||||
|
|
||||||
|
################################################################
|
||||||
|
|
||||||
|
-# scan_m4_dirs($TYPE, $ERR_ON_NONEXISTING, @DIRS)
|
||||||
|
+# scan_m4_dirs($TYPE, $ERR_LEVEL, @DIRS)
|
||||||
|
# -----------------------------------------------
|
||||||
|
# Scan all M4 files installed in @DIRS for new macro definitions.
|
||||||
|
# Register each file as of type $TYPE (one of the FT_* constants).
|
||||||
|
+# Fail without discussion on non-existing include directory when the
|
||||||
|
+# $ERR_LEVEL parameter equals to SCAN_M4_DIRS_ERROR, just print warning
|
||||||
|
+# when it equals to SCAN_M4_DIRS_WARN and don't complain at all when
|
||||||
|
+# it is set to SCAN_M4_DIRS_SILENT.
|
||||||
|
sub scan_m4_dirs ($$@)
|
||||||
|
{
|
||||||
|
- my ($type, $err_on_nonexisting, @dirlist) = @_;
|
||||||
|
+ my ($type, $err_level, @dirlist) = @_;
|
||||||
|
|
||||||
|
foreach my $m4dir (@dirlist)
|
||||||
|
{
|
||||||
|
if (! opendir (DIR, $m4dir))
|
||||||
|
{
|
||||||
|
# TODO: maybe avoid complaining only if errno == ENONENT?
|
||||||
|
- next unless $err_on_nonexisting;
|
||||||
|
- fatal "couldn't open directory '$m4dir': $!";
|
||||||
|
+ my $message = "couldn't open directory '$m4dir': $!";
|
||||||
|
+
|
||||||
|
+ fatal $message if $err_level == SCAN_M4_DIRS_ERROR;
|
||||||
|
+ msg ('unsupported', $message) if $err_level == SCAN_M4_DIRS_WARN;
|
||||||
|
+ # don't complain if $err_level == SCAN_M4_DIRS_SILENT
|
||||||
|
+ next
|
||||||
|
}
|
||||||
|
|
||||||
|
# We reverse the directory contents so that foo2.m4 gets
|
||||||
|
@@ -406,13 +419,25 @@ sub scan_m4_files ()
|
||||||
|
|
||||||
|
if (@user_includes)
|
||||||
|
{
|
||||||
|
+ # Don't explore the same directory multiple times. This is here not
|
||||||
|
+ # only for speedup purposes. We need this when the user has e.g.
|
||||||
|
+ # specified 'ACLOCAL_AMFLAGS = -I m4' and has also set
|
||||||
|
+ # AC_CONFIG_MACRO_DIR[S]([m4]) in configure.ac. This makes the 'm4'
|
||||||
|
+ # directory to occur twice here and fail on the second call to
|
||||||
|
+ # scan_m4_dirs([m4]) when the 'm4' directory doesn't exist.
|
||||||
|
+ # TODO: Shouldn't there be rather a check in scan_m4_dirs for
|
||||||
|
+ # @user_includes[0]?
|
||||||
|
+ @user_includes = uniq @user_includes;
|
||||||
|
+
|
||||||
|
# Don't complain if the first user directory doesn't exist, in case
|
||||||
|
# we need to create it later (can happen if '--install' was given).
|
||||||
|
- scan_m4_dirs (FT_USER, !$install, $user_includes[0]);
|
||||||
|
- scan_m4_dirs (FT_USER, 1, @user_includes[1..$#user_includes]);
|
||||||
|
+ my $first_dir_lvl = $install ? SCAN_M4_DIRS_SILENT : SCAN_M4_DIRS_WARN;
|
||||||
|
+ scan_m4_dirs (FT_USER, $first_dir_lvl, $user_includes[0]);
|
||||||
|
+ scan_m4_dirs (FT_USER, SCAN_M4_DIRS_ERROR,
|
||||||
|
+ @user_includes[1..$#user_includes]);
|
||||||
|
}
|
||||||
|
- scan_m4_dirs (FT_AUTOMAKE, 1, @automake_includes);
|
||||||
|
- scan_m4_dirs (FT_SYSTEM, 1, @system_includes);
|
||||||
|
+ scan_m4_dirs (FT_AUTOMAKE, SCAN_M4_DIRS_ERROR, @automake_includes);
|
||||||
|
+ scan_m4_dirs (FT_SYSTEM, SCAN_M4_DIRS_ERROR, @system_includes);
|
||||||
|
|
||||||
|
# Construct a new function that does the searching. We use a
|
||||||
|
# function (instead of just evaluating $search in the loop) so that
|
||||||
|
diff --git a/t/aclocal-macrodir.tap b/t/aclocal-macrodir.tap
|
||||||
|
index 3c66e53..bdeb30d 100755
|
||||||
|
--- a/t/aclocal-macrodir.tap
|
||||||
|
+++ b/t/aclocal-macrodir.tap
|
||||||
|
@@ -20,7 +20,7 @@
|
||||||
|
am_create_testdir=empty
|
||||||
|
. test-init.sh
|
||||||
|
|
||||||
|
-plan_ 6
|
||||||
|
+plan_ 7
|
||||||
|
|
||||||
|
ocwd=$(pwd) || fatal_ "getting current working directory"
|
||||||
|
ACLOCAL_PATH=; unset ACLOCAL_PATH
|
||||||
|
@@ -105,7 +105,9 @@ mkdir sys-dir the-dir
|
||||||
|
echo 'AC_DEFUN([THE_MACRO], [:])' > sys-dir/my.m4
|
||||||
|
|
||||||
|
test ! -r the-dir/my.m4 \
|
||||||
|
- && $ACLOCAL --install --system-acdir ./sys-dir \
|
||||||
|
+ && $ACLOCAL --install --system-acdir ./sys-dir 2>stderr \
|
||||||
|
+ && cat stderr >&2 \
|
||||||
|
+ && not grep "couldn't open directory" stderr \
|
||||||
|
&& diff sys-dir/my.m4 the-dir/my.m4 \
|
||||||
|
|| r='not ok'
|
||||||
|
|
||||||
|
@@ -149,7 +151,9 @@ mkdir acdir
|
||||||
|
echo 'AC_DEFUN([MY_MACRO], [:])' > acdir/bar.m4
|
||||||
|
|
||||||
|
test ! -d foo \
|
||||||
|
- && $ACLOCAL --install --system-acdir ./acdir \
|
||||||
|
+ && $ACLOCAL --install --system-acdir ./acdir 2>stderr \
|
||||||
|
+ && cat stderr >&2 \
|
||||||
|
+ && not grep "couldn't open directory" stderr \
|
||||||
|
&& diff acdir/bar.m4 foo/bar.m4 \
|
||||||
|
|| r='not ok'
|
||||||
|
|
||||||
|
@@ -157,14 +161,14 @@ test_end
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
-test_begin "AC_CONFIG_MACRO_DIR([non-existent]) errors out (1)"
|
||||||
|
+test_begin "AC_CONFIG_MACRO_DIR([non-existent]) warns but succeeds"
|
||||||
|
|
||||||
|
cat > configure.ac << 'END'
|
||||||
|
AC_INIT([oops], [1.0])
|
||||||
|
AC_CONFIG_MACRO_DIR([non-existent])
|
||||||
|
END
|
||||||
|
|
||||||
|
-not $ACLOCAL -Wnone 2>stderr \
|
||||||
|
+$ACLOCAL -Wno-error 2>stderr \
|
||||||
|
&& cat stderr >&2 \
|
||||||
|
&& grep "couldn't open directory 'non-existent'" stderr \
|
||||||
|
|| r='not ok'
|
||||||
|
@@ -173,6 +177,26 @@ test_end
|
||||||
|
|
||||||
|
#---------------------------------------------------------------------------
|
||||||
|
|
||||||
|
+test_begin "AC_CONFIG_MACRO_DIR([not-exist]) and ACLOCAL_AMFLAGS = -I not-exist"
|
||||||
|
+
|
||||||
|
+cat > configure.ac << 'END'
|
||||||
|
+AC_INIT([oops], [1.0])
|
||||||
|
+AC_CONFIG_MACRO_DIR([not-exist])
|
||||||
|
+END
|
||||||
|
+
|
||||||
|
+cat > Makefile.am << 'END'
|
||||||
|
+ACLOCAL_AMFLAGS = -I not-exist
|
||||||
|
+END
|
||||||
|
+
|
||||||
|
+$ACLOCAL -Wno-error 2>stderr \
|
||||||
|
+ && cat stderr >&2 \
|
||||||
|
+ && grep "couldn't open directory 'not-exist'" stderr \
|
||||||
|
+ || r='not ok'
|
||||||
|
+
|
||||||
|
+test_end
|
||||||
|
+
|
||||||
|
+#---------------------------------------------------------------------------
|
||||||
|
+
|
||||||
|
# Avoid spurious failures with pre-2.70 autoconf.
|
||||||
|
# FIXME: remove this in automake 1.14, once we require Autoconf 2.70.
|
||||||
|
if echo 'AC_INIT AC_CONFIG_MACRO_DIRS' | $AUTOCONF -o/dev/null -; then
|
@ -3,7 +3,7 @@
|
|||||||
Summary: A GNU tool for automatically creating Makefiles
|
Summary: A GNU tool for automatically creating Makefiles
|
||||||
Name: automake
|
Name: automake
|
||||||
Version: %{api_version}.1
|
Version: %{api_version}.1
|
||||||
Release: 4%{?dist}
|
Release: 5%{?dist}
|
||||||
License: GPLv2+ and GFDL
|
License: GPLv2+ and GFDL
|
||||||
Group: Development/Tools
|
Group: Development/Tools
|
||||||
Source: ftp://ftp.gnu.org/gnu/automake/automake-%{version}.tar.xz
|
Source: ftp://ftp.gnu.org/gnu/automake/automake-%{version}.tar.xz
|
||||||
@ -11,6 +11,10 @@ Source: ftp://ftp.gnu.org/gnu/automake/automake-%{version}.tar.xz
|
|||||||
# autoreconf run is not safe)
|
# autoreconf run is not safe)
|
||||||
Patch0: automake-1.13.1-reenable-disabled-macros.patch
|
Patch0: automake-1.13.1-reenable-disabled-macros.patch
|
||||||
Patch1: automake-1.13.1-disable-tests.patch
|
Patch1: automake-1.13.1-disable-tests.patch
|
||||||
|
# 'aclocal -I m4' should not fail when m4 does not exist (#901333)
|
||||||
|
# Upstream ticket (not yet upstream):
|
||||||
|
# <http://lists.gnu.org/archive/html/bug-automake/2013-01/msg00115.html>
|
||||||
|
Patch2: %{name}-%{version}-non-existing-m4-dir.patch
|
||||||
URL: http://www.gnu.org/software/automake/
|
URL: http://www.gnu.org/software/automake/
|
||||||
Requires: autoconf >= 2.65
|
Requires: autoconf >= 2.65
|
||||||
BuildRequires: autoconf >= 2.65
|
BuildRequires: autoconf >= 2.65
|
||||||
@ -53,6 +57,7 @@ Makefiles.
|
|||||||
%setup -q -n automake-%{version}
|
%setup -q -n automake-%{version}
|
||||||
%patch0 -p1 -b .reenable_macros
|
%patch0 -p1 -b .reenable_macros
|
||||||
%patch1 -p1 -b .disable_tests
|
%patch1 -p1 -b .disable_tests
|
||||||
|
%patch2 -p1 -b .non_existing_m4_dir
|
||||||
autoreconf -i -f
|
autoreconf -i -f
|
||||||
|
|
||||||
%build
|
%build
|
||||||
@ -90,6 +95,10 @@ fi
|
|||||||
%{_mandir}/man1/*
|
%{_mandir}/man1/*
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Feb 14 2013 Pavel Raiskup <praiskup@redhat.com> - 1.13.1-5
|
||||||
|
- Do not fail in aclocal when the first include directory does not exist
|
||||||
|
(#901333)
|
||||||
|
|
||||||
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.13.1-4
|
* Wed Feb 13 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 1.13.1-4
|
||||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user