work around alising issue in ring macros (upstream PR 50190)

fix buildconf with newer libtool (#670621)
This commit is contained in:
Joe Orton 2011-03-02 11:17:35 +00:00
parent 0b77e05339
commit 6b92a88a3d
4 changed files with 126 additions and 1 deletions

4
.gitignore vendored
View File

@ -1,2 +1,6 @@
apr-1.3.9.tar.bz2
/apr-1.4.2.tar.bz2
/*.rpm
/clog
/x86_64
/.build*.log

100
apr-1.4.2-libtool.patch Normal file
View File

@ -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`

13
apr-1.4.2-pr50190.patch Normal file
View File

@ -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; \
}
/**

View File

@ -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@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@lists.fedoraproject.org> - 1.4.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild