From 6b92a88a3dc9c958f7d0e4159a08e04bb15b3508 Mon Sep 17 00:00:00 2001 From: Joe Orton Date: Wed, 2 Mar 2011 11:17:35 +0000 Subject: [PATCH] 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 deletion(-) create mode 100644 apr-1.4.2-libtool.patch create mode 100644 apr-1.4.2-pr50190.patch 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 - 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 - 1.4.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild