[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#526346: Patch



tags 526346 + patch
thanks

Hello,

The build system in this version of apr doesn't work with libtool 2.x.
It's fixed in the upstream Subversion repository.  The attached patch is
a port of the relevant commits in upstream svn.

Thanks,
-- 
John Wright <jsw@debian.org>
#! /bin/sh /usr/share/dpatch/dpatch-run
## 025_libtool_2.x_fixes.dpatch by  <jsw@debian.org>
##
## All lines beginning with `## DP:' are a description of the patch.
## DP: Update build system to work with libtool 2.x
## DP:
## DP: This corresponds to upstream revisions:
## DP:   733052
## DP:   742752
## DP:   748902
## DP:   757363
@DPATCH@

diff --git a/build/buildcheck.sh b/build/buildcheck.sh
index 62fe931..c236810 100755
--- a/build/buildcheck.sh
+++ b/build/buildcheck.sh
@@ -38,7 +38,7 @@ fi
 # output is multiline from 1.5 onwards
 
 # Require libtool 1.4 or newer
-libtool=`build/PrintPath glibtool libtool libtool15 libtool14`
+libtool=`build/PrintPath glibtool1 glibtool libtool libtool15 libtool14`
 lt_pversion=`$libtool --version 2>/dev/null|sed -e 's/([^)]*)//g;s/^[^0-9]*//;s/[- ].*//g;q'`
 if test -z "$lt_pversion"; then
 echo "buildconf: libtool not found."
diff --git a/buildconf b/buildconf
index bc0e9fd..11554ed 100755
--- a/buildconf
+++ b/buildconf
@@ -23,7 +23,7 @@
 #
 build/buildcheck.sh || exit 1
 
-libtoolize=`build/PrintPath glibtoolize libtoolize15 libtoolize14 libtoolize`
+libtoolize=`build/PrintPath glibtoolize1 glibtoolize libtoolize15 libtoolize14 libtoolize`
 if [ "x$libtoolize" = "x" ]; then
     echo "libtoolize not found in path"
     exit 1
@@ -35,17 +35,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)
-
-$libtoolize --copy --automake
-
-if [ -f libtool.m4 ]; then 
-   ltfile=`pwd`/libtool.m4
-else
+(cd build ; rm -f ltconfig ltmain.sh libtool.m4 ltoptions.m4 ltsugar.m4 ltversion.m4 lt~obsolete.m4)
+
+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
+  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"`}
@@ -54,21 +57,21 @@ 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}."
+  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
+  # 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 build/libtool.m4.$$
 fi
 
 # Clean up any leftovers
@@ -77,22 +80,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}
 
-echo "Creating configure ..."
+echo "buildconf: creating configure ..."
 ### do some work to toss config.cache?
 ${AUTOCONF:-autoconf}
 
 # Remove autoconf 2.5x's cache directory
 rm -rf autom4te*.cache
 
-echo "Generating 'make' outputs ..."
+echo "buildconf: generating 'make' outputs ..."
 build/gen-build.py 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/configure.in b/configure.in
index 46b4b32..2ac1439 100644
--- a/configure.in
+++ b/configure.in
@@ -9,6 +9,7 @@ AC_PREREQ(2.50)
 AC_INIT(build/apr_common.m4)
 AC_CONFIG_HEADER(include/arch/unix/apr_private.h)
 AC_CONFIG_AUX_DIR(build)
+AC_CONFIG_MACRO_DIR(build)
 
 dnl 
 dnl Include our own M4 macros along with those for libtool
@@ -20,6 +21,10 @@ sinclude(build/apr_win32.m4)
 sinclude(build/apr_hints.m4)
 sinclude(build/libtool.m4)
 sinclude(build/ltsugar.m4)
+sinclude(build/argz.m4)
+sinclude(build/ltoptions.m4)
+sinclude(build/ltversion.m4)
+sinclude(build/lt~obsolete.m4)
 
 dnl Hard-coded inclusion at the tail end of apr_private.h:
 AH_BOTTOM([
@@ -117,6 +122,8 @@ dnl can only be used once within a configure script, so this prevents a
 dnl preload section from invoking the macro to get compiler info.
 AC_PROG_CC
 
+AC_PROG_SED
+
 dnl Preload
 APR_PRELOAD
 
@@ -160,6 +167,11 @@ echo "performing libtool configuration..."
 AC_ARG_ENABLE(experimental-libtool,[  --enable-experimental-libtool Use experimental custom libtool],
   [experimental_libtool=$enableval],[experimental_libtool=no])
 
+dnl Workarounds for busted Libtool 2.x when we don't call AC_PROG_LIBTOOL
+if test "x$Xsed" = "x"; then
+  Xsed="$SED -e 1s/^X//"
+fi
+
 case $host in
 *-os2*)
     # Use a custom-made libtool replacement

Reply to: