You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "William A. Rowe, Jr." <wr...@rowe-clan.net> on 2003/03/11 08:13:16 UTC

out-of-tree apr/apr-util httpd-2.0 (the real 2.0) builds

I know not everyone monitors CVS logs.  I have backported the patch
for not-in-srclib/ apr and apr-util trees.  Even the in-tree builds however
are vulnerable.  If those working in the APACHE_2_0_BRANCH would
try cvs up and experiment with your preference if apr[-util] either in-tree
or out-of-tree, we would all appreciate it.

Bill

At 01:07 AM 3/11/2003, wrowe@apache.org wrote:
>wrowe       2003/03/10 23:07:52
>
>  Modified:    .        Tag: APACHE_2_0_BRANCH STATUS buildconf
>                        configure.in
>               server/mpm Tag: APACHE_2_0_BRANCH config.m4
>  Log:
>    Allow builds to work with out of tree apr and apr-util
>  
>    Backported:
>      buildconf: r1.30
>      configure.in: r1.239, r1.240, r1.242, r1.245
>      server/mpm/config.m4 r1.47
>  
>    I suspect configure.in r1.244 should also be applied, I suspect so
>    but want confirmation before backporting it.  If it's required, please
>    simply commit that patch.
>  
>    Please *thoroughly* test so we uncover any vpath/out-of-tree/in-tree
>    issues with apr/apr-util locations before our users do.  With everyone
>    who voulenteered for the effort, this should be no hassle.
>  
>  Revision  Changes    Path
>  No                   revision
>  
>  
>  No                   revision
>  
>  
>  1.751.2.169 +1 -10     httpd-2.0/STATUS
>  
>  Index: STATUS
>  ===================================================================
>  RCS file: /home/cvs/httpd-2.0/STATUS,v
>  retrieving revision 1.751.2.168
>  retrieving revision 1.751.2.169
>  diff -u -r1.751.2.168 -r1.751.2.169
>  --- STATUS    11 Mar 2003 06:40:41 -0000      1.751.2.168
>  +++ STATUS    11 Mar 2003 07:07:51 -0000      1.751.2.169
>  @@ -166,15 +166,6 @@
>         modules/generators/mod_autoindex.c: r1.119
>         +1: nd, wrowe, trawick
>   
>  -    * Allow builds to work with out of tree apr and apr-util
>  -      buildconf: r1.30
>  -      configure.in: r1.239, r1.240
>  -      +1: thommay, striker, ianh 
>  -          wrowe (but we must add server/mpm/config.m4 r1.47 to that list)
>  -      +1(concept): trawick...  I won't be putting my name next to any
>  -          specific revisions (no confidence on my part), but I will
>  -          try to help sort out what may go wrong.
>  -
>       * New Directive for mod_deflate (compressionlevel), and change to default
>         compression level
>         mod_deflate.c 1.31
>  
>  
>  
>  1.27.2.3  +59 -19    httpd-2.0/buildconf
>  
>  Index: buildconf
>  ===================================================================
>  RCS file: /home/cvs/httpd-2.0/buildconf,v
>  retrieving revision 1.27.2.2
>  retrieving revision 1.27.2.3
>  diff -u -r1.27.2.2 -r1.27.2.3
>  --- buildconf 3 Feb 2003 17:31:28 -0000       1.27.2.2
>  +++ buildconf 11 Mar 2003 07:07:52 -0000      1.27.2.3
>  @@ -56,12 +56,45 @@
>   # buildconf: Build the support scripts needed to compile from a
>   #            checked-out version of the source code.
>   
>  +# set a couple of defaults for where we should be looking for our support libs.
>  +# can be overridden with --with-apr=[dir] and --with-apr-util=[dir]
>  +
>  +apr_src_dir=srclib/apr
>  +apu_src_dir=srclib/apr-util
>  +
>  +while test $# -gt 0 
>  +do
>  +  # Normalize
>  +  case "$1" in
>  +  -*=*) optarg=`echo "$1" | sed 's/[-_a-zA-Z0-9]*=//'` ;;
>  +  *) optarg= ;;
>  +  esac
>  +
>  +  case "$1" in
>  +  --with-apr=*)
>  +  apr_src_dir=$optarg
>  +  ;;
>  +  esac
>  +
>  +  case "$1" in
>  +  --with-apr-util=*)
>  +  apu_src_dir=$optarg
>  +  ;;
>  +  esac
>  +
>  +  shift
>  +done
>  +
>   #
>   # Check to be sure that we have the srclib dependencies checked-out
>   #
>  -if [ ! -d srclib/apr -o ! -f srclib/apr/build/apr_common.m4 ]; then
>  +
>  +if [ ! -d "$apr_src_dir" -o ! -f "$apr_src_dir/build/apr_common.m4" ]; then
>       echo ""
>  -    echo "You don't have a srclib/apr/ subdirectory.  Please get one:"
>  +    echo "You don't have a copy of the apr source in $apr_src_dir. " 
>  +    echo "Please get the source using the following instructions," 
>  +    echo "or specify the location of the source with " 
>  +    echo "--with-apr=[path to apr] :"
>       echo ""
>       echo "   cd srclib"
>       echo "   cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login"
>  @@ -70,9 +103,12 @@
>       echo ""
>       exit 1
>   fi
>  -if [ ! -d srclib/apr-util -o ! -f srclib/apr-util/Makefile.in ]; then
>  +if [ ! -d "$apu_src_dir" -o ! -f "$apu_src_dir/Makefile.in" ]; then
>       echo ""
>  -    echo "You don't have a srclib/apr-util/ subdirectory.  Please get one:"
>  +    echo "You don't have a copy of the apr-util source in $apu_src_dir. "
>  +    echo "Please get one the source using the following instructions, "
>  +    echo "or specify the location of the source with "
>  +    echo "--with-apr-util=[path to apr-util]:"
>       echo ""
>       echo "   cd srclib"
>       echo "   cvs -d :pserver:anoncvs@cvs.apache.org:/home/cvspublic login"
>  @@ -98,29 +134,33 @@
>   #
>   # end temporary stuff
>   
>  -apr_configure="srclib/apr/configure"
>  -aprutil_configure="srclib/apr-util/configure"
>  +apr_configure="$apr_src_dir/configure"
>  +aprutil_configure="$apu_src_dir/configure"
>   pcre_configure="srclib/pcre/configure"
>   config_h_in="include/ap_config_auto.h.in"
>   
>   cross_compile_warning="warning: AC_TRY_RUN called without default to allow cross compiling"
>   
>  -echo rebuilding $apr_configure
>  -(cd srclib/apr && ./buildconf) || {
>  -    echo "./buildconf failed for apr"
>  -    exit 1
>  -}
>  +if [ -d srclib/apr ]; then
>  +    echo rebuilding $apr_configure
>  +    (cd srclib/apr && ./buildconf) || {
>  +        echo "./buildconf failed for apr"
>  +        exit 1
>  +    }
>  +fi
>   
>  -echo rebuilding $aprutil_configure
>  -(cd srclib/apr-util && ./buildconf) || {
>  -    echo "./buildconf failed for apr-util" 
>  -    exit 1
>  -}
>  +if [ -d srclib/apr-util ]; then
>  +    echo rebuilding $aprutil_configure
>  +    (cd srclib/apr-util && ./buildconf) || {
>  +        echo "./buildconf failed for apr-util" 
>  +        exit 1
>  +    }
>  +fi
>   
>   echo copying build files
>  -cp srclib/apr/build/config.guess build
>  -cp srclib/apr/build/config.sub build
>  -cp srclib/apr/build/PrintPath build
>  +cp $apr_src_dir/build/config.guess $apr_src_dir/build/config.sub \
>  +   $apr_src_dir/build/PrintPath $apr_src_dir/build/apr_common.m4 \
>  +   $apr_src_dir/build/find_apr.m4 $apu_src_dir/build/find_apu.m4 build
>   
>   echo rebuilding $pcre_configure
>   (cd srclib/pcre && ${AUTOCONF:-autoconf})
>  
>  
>  
>  1.232.2.4 +11 -18    httpd-2.0/configure.in
>  
>  Index: configure.in
>  ===================================================================
>  RCS file: /home/cvs/httpd-2.0/configure.in,v
>  retrieving revision 1.232.2.3
>  retrieving revision 1.232.2.4
>  diff -u -r1.232.2.3 -r1.232.2.4
>  --- configure.in      7 Jan 2003 22:02:19 -0000       1.232.2.3
>  +++ configure.in      11 Mar 2003 07:07:52 -0000      1.232.2.4
>  @@ -13,9 +13,9 @@
>   dnl #
>   dnl # Include our own M4 macros along with those for APR and libtool
>   dnl #
>  -sinclude(srclib/apr/build/apr_common.m4)
>  -sinclude(srclib/apr/build/find_apr.m4)
>  -sinclude(srclib/apr-util/build/find_apu.m4)
>  +sinclude(build/apr_common.m4)
>  +sinclude(build/find_apr.m4)
>  +sinclude(build/find_apu.m4)
>   sinclude(acinclude.m4)
>   
>   dnl XXX we can't just use AC_PREFIX_DEFAULT because that isn't subbed in
>  @@ -68,7 +68,7 @@
>   fi
>   
>   if test "$apr_found" = "reconfig"; then
>  -  APR_SUBDIR_CONFIG(srclib/apr, "$apache_apr_flags --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir --datadir=$datadir --with-installbuilddir=$installbuilddir")
>  +  APR_SUBDIR_CONFIG(srclib/apr, [$apache_apr_flags --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir --datadir=$datadir --with-installbuilddir=$installbuilddir])
>     dnl We must be the first to build and the last to be cleaned
>     AP_BUILD_SRCLIB_DIRS="apr $AP_BUILD_SRCLIB_DIRS"
>     AP_CLEAN_SRCLIB_DIRS="$AP_CLEAN_SRCLIB_DIRS apr"
>  @@ -80,7 +80,7 @@
>   APR_ADDTO(INCLUDES, `$apr_config --includes`)
>   SHLIBPATH_VAR=`$apr_config --shlib-path-var`
>   APR_BINDIR=`$apr_config --bindir`
>  -APR_INCLUDEDIR=`$apr_config --includes | sed 's|^.*-I\([[^ ]]*apr[[^ ]]*\).*$|\1|'`
>  +APR_INCLUDEDIR=`$apr_config --includedir`
>   
>   echo $ac_n "${nl}Configuring Apache Portable Runtime Utility library...${nl}"
>   
>  @@ -91,7 +91,7 @@
>   fi
>   
>   if test "$apu_found" = "reconfig"; then
>  -  APR_SUBDIR_CONFIG(srclib/apr-util, "--with-apr=../apr --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir")
>  +  APR_SUBDIR_CONFIG(srclib/apr-util, [--with-apr=../apr --prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir])
>     dnl We must be the last to build and the first to be cleaned
>     AP_BUILD_SRCLIB_DIRS="$AP_BUILD_SRCLIB_DIRS apr-util"
>     AP_CLEAN_SRCLIB_DIRS="apr-util $AP_CLEAN_SRCLIB_DIRS"
>  @@ -100,11 +100,11 @@
>   APR_ADDTO(LDFLAGS, `$apu_config --ldflags`)
>   APR_ADDTO(INCLUDES, `$apu_config --includes`)
>   APU_BINDIR=`$apu_config --bindir`
>  -APU_INCLUDEDIR=`$apu_config --includes | sed 's|^ *-I\([[^ ]]*apr[[^ ]]*\).*$|\1|'`
>  +APU_INCLUDEDIR=`$apu_config --includedir`
>   
>   echo $ac_n "${nl}Configuring PCRE regular expression library ...${nl}"
>   
>  -APR_SUBDIR_CONFIG(srclib/pcre, "--prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir")
>  +APR_SUBDIR_CONFIG(srclib/pcre, [--prefix=$prefix --exec-prefix=$exec_prefix --libdir=$libdir --includedir=$includedir --bindir=$bindir])
>   
>   echo $ac_n "${nl}Configuring Apache httpd ...${nl}"
>   
>  @@ -324,14 +324,7 @@
>           [if test "$withval" = "yes"; then AC_MSG_ERROR('option --with-port requires a value (the TCP port number)'); else PORT="$withval"; fi],
>        [PORT=80])
>   
>  -dnl ## See if APR has IPv6 support
>  -ap_old_cppflags=$CPPFLAGS
>  -CPPFLAGS="$CPPFLAGS -I$APR_SOURCE_DIR/include -I$abs_builddir/srclib/apr/include"
>  -AC_TRY_COMPILE([#include <apr.h>], [
>  -#if !APR_HAVE_IPV6
>  -#error APR does not have IPv6 support
>  -#endif], apr_have_ipv6=yes, apr_have_ipv6=no)
>  -CPPFLAGS=$ap_old_cppflags
>  +APR_CHECK_APR_DEFINE(APR_HAVE_IPV6)
>   
>   AC_ARG_ENABLE(v4-mapped,APACHE_HELP_STRING(--enable-v4-mapped,Allow IPv6 sockets to handle IPv4 connections),
>   [ 
>  @@ -348,10 +341,10 @@
>   esac
>   ])
>   
>  -if test $v4mapped = "yes" -o $apr_have_ipv6 = "no"; then
>  +if test $v4mapped = "yes" -o $ac_cv_define_APR_HAVE_IPV6 = "no"; then
>       nonssl_listen_stmt_1=""
>       nonssl_listen_stmt_2="Listen @@Port@@"
>  -    if test $apr_have_ipv6 = "yes"; then
>  +    if test $ac_cv_define_APR_HAVE_IPV6 = "yes"; then
>           AC_DEFINE(AP_ENABLE_V4_MAPPED, 1,
>                     [Allow IPv4 connections on IPv6 listening sockets])
>       fi
>  
>  
>  
>  No                   revision
>  
>  
>  No                   revision
>  
>  
>  1.46.2.1  +1 -1      httpd-2.0/server/mpm/config.m4
>  
>  Index: config.m4
>  ===================================================================
>  RCS file: /home/cvs/httpd-2.0/server/mpm/config.m4,v
>  retrieving revision 1.46
>  retrieving revision 1.46.2.1
>  diff -u -r1.46 -r1.46.2.1
>  --- config.m4 18 Apr 2002 08:16:56 -0000      1.46
>  +++ config.m4 11 Mar 2003 07:07:52 -0000      1.46.2.1
>  @@ -13,7 +13,7 @@
>   apache_cv_mpm=$APACHE_MPM
>        
>   if test "$apache_cv_mpm" = "worker" -o "$apache_cv_mpm" = "perchild" -o "$apache_cv_mpm" = "leader" -o "$apache_cv_mpm" = "threadpool" ; then
>  -  APR_CHECK_APR_DEFINE(APR_HAS_THREADS, srclib/apr)
>  +  APR_CHECK_APR_DEFINE(APR_HAS_THREADS)
>   
>     if test "x$ac_cv_define_APR_HAS_THREADS" = "xno"; then
>       AC_MSG_RESULT(The currently selected MPM requires threads which your system seems to lack)
>  
>  
>  



Re: out-of-tree apr/apr-util httpd-2.0 (the real 2.0) builds

Posted by Jeff Trawick <tr...@attglobal.net>.
Jeff Trawick wrote:

from the old STATUS entry

   -    * Allow builds to work with out of tree apr and apr-util
   -      buildconf: r1.30
   -      configure.in: r1.239, r1.240
   -      +1: thommay, striker, ianh
   -          wrowe (but we must add server/mpm/config.m4 r1.47 to that 
list)
   -      +1(concept): trawick...  I won't be putting my name next to any
   -          specific revisions (no confidence on my part), but I will
   -          try to help sort out what may go wrong.

Note that when I wrote that I assumed that somebody would actually test 
before committing.  Personally, I don't have the stomach for committing 
stuff to APACHE_2_0_BRANCH that hasn't been tested and retested.



Re: out-of-tree apr/apr-util httpd-2.0 (the real 2.0) builds

Posted by Jeff Trawick <tr...@attglobal.net>.
Make sure you have my recent (this a.m.) commits to

   build/.cvsignore
   configure.in
   modules/aaa/config.m4
   modules/mappers/config9.m4
   server/Makefile.in

before trying to test this.

With those recent commits, it works as well as I have time to test :) 
Now it is somebody else's turn.


Re: out-of-tree apr/apr-util httpd-2.0 (the real 2.0) builds

Posted by Jeff Trawick <tr...@attglobal.net>.
William A. Rowe, Jr. wrote:

> I know not everyone monitors CVS logs.  I have backported the patch
> for not-in-srclib/ apr and apr-util trees.  Even the in-tree builds 
> however
> are vulnerable.  If those working in the APACHE_2_0_BRANCH would
> try cvs up and experiment with your preference if apr[-util] either 
> in-tree
> or out-of-tree, we would all appreciate it.

I thought this was working, but after tracking down one nagging issue I 
realized I had forgotten to specify "-r APACHE_2_0_BRANCH" on my 
checkout (blush) when preparing a directory to try with out-of-tree APR.

Now that I have specified the right level of code, it bombs with this:

configure: error: can not find install-sh or install.sh in 
srclib/apr/build ./srclib/apr/build

now apply this patch:

Index: configure.in
===================================================================
RCS file: /home/cvs/httpd-2.0/configure.in,v
retrieving revision 1.232.2.4
diff -u -r1.232.2.4 configure.in
--- configure.in        11 Mar 2003 07:07:52 -0000      1.232.2.4
+++ configure.in        11 Mar 2003 12:23:37 -0000
@@ -8,7 +8,7 @@
  AC_INIT(ABOUT_APACHE)

  AC_CONFIG_HEADER(include/ap_config_auto.h)
-AC_CONFIG_AUX_DIR(srclib/apr/build)
+AC_CONFIG_AUX_DIR(build)

  dnl #
  dnl # Include our own M4 macros along with those for APR and libtool

and we get further, but it isn't picking up APR defines correctly:

checking whether to enable mod_auth_digest... checking dependencies
checking whether to enable mod_auth_digest... configure: error: 
mod_auth_digest has been requested but can not be built due to 
prerequisite failures

configure:4166: gcc -c  -DAPACHE_XLATE -g -O2 -Wall -Wmissing-prototypes 
-Wstrict-prototypes -Wmissing-declarations -pthread  -DLINUX=2 
-D_REENTRANT -D_XOPEN_SOURCE=500 -D_BSD_SOURCE -D_SVID_SOURCE 
-D_GNU_SOURCE -DAP_DEBUG -I/include 
-I/home/trawick/apache/ST/srclib/apr/include conftest.c 1>&5
configure:4158: apr.h: No such file or directory
configure:4161: #error You need APR random support to use auth_digest.

Somehow the INCLUDES setting got lost.  Here is part of what was 
displayed earlier when the APR settings were picked up:

   setting INCLUDES to " -I/home/trawick/apache/apr/include "

I gotta get busy with something else for a while, but I'll commit the 
configure.in fix above as well as a lost change to build/.cvsignore
and hopefully can get back to this later this a.m.


Re: out-of-tree apr/apr-util httpd-2.0 (the real 2.0) builds

Posted by Jeff Trawick <tr...@attglobal.net>.
William A. Rowe, Jr. wrote:

> I know not everyone monitors CVS logs.  I have backported the patch
> for not-in-srclib/ apr and apr-util trees.  Even the in-tree builds 
> however
> are vulnerable.  If those working in the APACHE_2_0_BRANCH would
> try cvs up and experiment with your preference if apr[-util] either 
> in-tree
> or out-of-tree, we would all appreciate it.

APACHE_2_0_BRANCH still seems to work for me fine (APR in tree or out of 
tree), so the backport looks good (but I will remain cynical for the 
next few days just in case).