[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