[apr] work around alising issue in ring macros (upstream PR 50190) fix buildconf with newer libtool (#6706
jorton
jorton at fedoraproject.org
Wed Mar 2 11:17:47 UTC 2011
commit 6b92a88a3dc9c958f7d0e4159a08e04bb15b3508
Author: Joe Orton <jorton at redhat.com>
Date: Wed Mar 2 11:17:35 2011 +0000
work around alising issue in ring macros (upstream PR 50190)
fix buildconf with newer libtool (#670621)
.gitignore | 4 ++
apr-1.4.2-libtool.patch | 100 +++++++++++++++++++++++++++++++++++++++++++++++
apr-1.4.2-pr50190.patch | 13 ++++++
apr.spec | 10 ++++-
4 files changed, 126 insertions(+), 1 deletions(-)
---
diff --git a/.gitignore b/.gitignore
index 6c1512a..990de8c 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,2 +1,6 @@
apr-1.3.9.tar.bz2
/apr-1.4.2.tar.bz2
+/*.rpm
+/clog
+/x86_64
+/.build*.log
diff --git a/apr-1.4.2-libtool.patch b/apr-1.4.2-libtool.patch
new file mode 100644
index 0000000..ba60b56
--- /dev/null
+++ b/apr-1.4.2-libtool.patch
@@ -0,0 +1,100 @@
+--- apr-1.4.2/buildconf.libtool
++++ apr-1.4.2/buildconf
+@@ -40,25 +40,20 @@ fi
+ # Note: APR supplies its own config.guess and config.sub -- we do not
+ # rely on libtool's versions
+ #
+-echo "Copying libtool helper files ..."
++echo "buildconf: copying libtool helper files using $libtoolize"
+
+ # Remove any libtool files so one can switch between libtool 1.3
+ # and libtool 1.4 by simply rerunning the buildconf script.
+-(cd build ; rm -f ltconfig ltmain.sh libtool.m4)
++(cd build ; rm -f ltconfig ltmain.sh libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4)
+
+-$libtoolize --copy --automake --force $verbose
+-
+-if [ -f libtool.m4 ]; then
+- ltfile=`pwd`/libtool.m4
+-elif grep all_pkgmacro_files $libtoolize > /dev/null; then
+- # libtool 2.x
+- aclocal_dir=`sed -n '/^aclocaldir=/{s/.*=//;p;q;}' < $libtoolize`
+- ltfiles=`sed -n '/^all_pkgmacro_files=/{s/.*=//;;s/"//;p;q;}' < $libtoolize`
+- for f in $ltfiles; do
+- test -f "$aclocal_dir/$f" && cp "$aclocal_dir/$f" build
+- done
+- ltfile=$aclocal_dir/libtool.m4
+-else
++lt_pversion=`$libtoolize --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
++lt_version=`echo $lt_pversion|sed -e 's/\([a-z]*\)$/.\1/'`
++IFS=.; set $lt_version; IFS=' '
++if test "$1" = "1"; then
++ $libtoolize --copy --automake $verbose
++ if [ -f libtool.m4 ]; then
++ ltfile=`pwd`/libtool.m4
++ else
+ ltfindcmd="`sed -n \"/=[^\\\`]/p;/libtool_m4=/{s/.*=/echo /p;q;}\" \
+ < $libtoolize`"
+ ltfile=${LIBTOOL_M4-`eval "$ltfindcmd"`}
+@@ -67,21 +62,22 @@ else
+ ltpath=`dirname $libtoolize`
+ ltfile=`cd $ltpath/../share/aclocal ; pwd`/libtool.m4
+ fi
+-fi
+-
+-if [ ! -f $ltfile ]; then
++ fi
++ if [ ! -f $ltfile ]; then
+ echo "$ltfile not found"
+ exit 1
++ fi
++ # Do we need this anymore?
++ echo "buildconf: Using libtool.m4 at ${ltfile}."
++ rm -f build/libtool.m4
++ cat $ltfile | sed -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' > build/libtool.m4
+ fi
+-
+-echo "buildconf: Using libtool.m4 at ${ltfile}."
+-
+-cat $ltfile | sed -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' > build/libtool.m4
+-
+-# libtool.m4 from 1.6 requires ltsugar.m4
+-if [ -f ltsugar.m4 ]; then
+- rm -f build/ltsugar.m4
+- mv ltsugar.m4 build/ltsugar.m4
++if test "$1" = "2"; then
++ $libtoolize --copy --automake $verbose
++ # Wouldn't it just be better to define top_builddir??
++ mv build/libtool.m4 build/libtool.m4.$$
++ cat build/libtool.m4.$$ | sed -e 's/LIBTOOL=\(.*\)top_build/LIBTOOL=\1apr_build/' > build/libtool.m4
++ rm -f build/libtool.m4.$$
+ fi
+
+ # Clean up any leftovers
+@@ -90,22 +86,22 @@ rm -f aclocal.m4 libtool.m4
+ #
+ # Generate the autoconf header and ./configure
+ #
+-echo "Creating include/arch/unix/apr_private.h.in ..."
++echo "buildconf: creating include/arch/unix/apr_private.h.in ..."
+ ${AUTOHEADER:-autoheader} $verbose
+
+-echo "Creating configure ..."
++echo "buildconf: creating configure ..."
+ ### do some work to toss config.cache?
+ ${AUTOCONF:-autoconf} $verbose
+
+ # Remove autoconf 2.5x's cache directory
+ rm -rf autom4te*.cache
+
+-echo "Generating 'make' outputs ..."
++echo "buildconf: generating 'make' outputs ..."
+ build/gen-build.py $verbose make
+
+ # Create RPM Spec file
+ if [ -f `which cut` ]; then
+- echo rebuilding rpm spec file
++ echo "buildconf: rebuilding rpm spec file"
+ ( REVISION=`build/get-version.sh all include/apr_version.h APR`
+ VERSION=`echo $REVISION | cut -d- -s -f1`
+ RELEASE=`echo $REVISION | cut -d- -s -f2`
diff --git a/apr-1.4.2-pr50190.patch b/apr-1.4.2-pr50190.patch
new file mode 100644
index 0000000..85475fc
--- /dev/null
+++ b/apr-1.4.2-pr50190.patch
@@ -0,0 +1,13 @@
+--- apr-1.4.2/include/apr_ring.h.pr50190
++++ apr-1.4.2/include/apr_ring.h
+@@ -90,8 +90,8 @@
+ */
+ #define APR_RING_HEAD(head, elem) \
+ struct head { \
+- struct elem *next; \
+- struct elem *prev; \
++ struct elem * volatile next; \
++ struct elem * volatile prev; \
+ }
+
+ /**
diff --git a/apr.spec b/apr.spec
index 0921207..3b98cc2 100644
--- a/apr.spec
+++ b/apr.spec
@@ -6,7 +6,7 @@
Summary: Apache Portable Runtime library
Name: apr
Version: 1.4.2
-Release: 2%{?dist}
+Release: 3%{?dist}
License: ASL 2.0
Group: System Environment/Libraries
URL: http://apr.apache.org/
@@ -16,6 +16,8 @@ Patch1: apr-0.9.7-deepbind.patch
Patch2: apr-1.2.2-locktimeout.patch
Patch3: apr-1.2.2-libdir.patch
Patch4: apr-1.2.7-pkgconf.patch
+Patch5: apr-1.4.2-pr50190.patch
+Patch6: apr-1.4.2-libtool.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
BuildRequires: autoconf, libtool, libuuid-devel, python
# To enable SCTP support
@@ -45,6 +47,8 @@ C data structures and routines.
%patch2 -p1 -b .locktimeout
%patch3 -p1 -b .libdir
%patch4 -p1 -b .pkgconf
+%patch5 -p1 -b .pr50190
+%patch6 -p1 -b .libtool
%build
# regenerate configure script etc.
@@ -125,6 +129,10 @@ rm -rf $RPM_BUILD_ROOT
%{_datadir}/aclocal/*.m4
%changelog
+* Wed Mar 2 2011 Joe Orton <jorton at redhat.com> - 1.4.2-3
+- work around alising issue in ring macros (upstream PR 50190)
+- fix buildconf with newer libtool (#670621)
+
* Mon Feb 07 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 1.4.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
More information about the scm-commits
mailing list