You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2001/10/08 16:29:31 UTC

cvs commit: apache-1.3/src CHANGES Configuration.tmpl Configure

jim         01/10/08 07:29:31

  Modified:    src      CHANGES Configuration.tmpl Configure
  Log:
  Fix the EXPAT logic to the new meaning... Before, it was simply there to
  check that expat-lite existed, which was kind of bogus... Now, we
  allow it to choose which Expat we want. We prefer the system's Expat
  if available but will use expat-lite as a backup. We can also bypass
  that as well.
  
  Revision  Changes    Path
  1.1727    +5 -0      apache-1.3/src/CHANGES
  
  Index: CHANGES
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/CHANGES,v
  retrieving revision 1.1726
  retrieving revision 1.1727
  diff -u -r1.1726 -r1.1727
  --- CHANGES	2001/10/06 22:01:10	1.1726
  +++ CHANGES	2001/10/08 14:29:30	1.1727
  @@ -1,5 +1,10 @@
   Changes with Apache 1.3.22
   
  +  *) Change to the EXPAT rule logic. We can now use the system's expat
  +     library if we want, use our own expat-lite or have Configure
  +     pick one for us (prefer system, but use expat-lite as a backup).
  +     [Jim Jagielski, Greg Stein]
  +
     *) The manual directory is still configurable (as enabled by
        the 1.3.21 change), but its default setting was reverted to
        the pre-1.3.21 default as a subdirectory of the DocumentRoot.
  
  
  
  1.122     +6 -4      apache-1.3/src/Configuration.tmpl
  
  Index: Configuration.tmpl
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/Configuration.tmpl,v
  retrieving revision 1.121
  retrieving revision 1.122
  diff -u -r1.121 -r1.122
  --- Configuration.tmpl	1999/08/14 08:35:43	1.121
  +++ Configuration.tmpl	2001/10/08 14:29:30	1.122
  @@ -161,10 +161,12 @@
   #  actually print-out the code that the modules execute
   #
   # EXPAT:
  -#  Include James Clark's Expat package into Apache, for use by the
  -#  modules. The "default" is to include it if the lib/expat-lite/
  -#  directory is present. This rule will always be interpreted as "no"
  -#  if the directory is not present.
  +#  Apache requires an Expat package and includes James Clark's Expat
  +#  package (expat-lite) with the distribution. This determines
  +#  whether you want to include the system's Expat library ('yes'),
  +#  expat-lite ('no') or prefer the system Expat if available but choose
  +#  expat-lite if not ('default'). Note that if set to 'yes' and
  +#  libexpat.a cannot be found, the build will fail.
   #
   
   Rule SOCKS4=no
  
  
  
  1.439     +17 -23    apache-1.3/src/Configure
  
  Index: Configure
  ===================================================================
  RCS file: /home/cvs/apache-1.3/src/Configure,v
  retrieving revision 1.438
  retrieving revision 1.439
  diff -u -r1.438 -r1.439
  --- Configure	2001/10/08 13:59:39	1.438
  +++ Configure	2001/10/08 14:29:30	1.439
  @@ -1847,33 +1847,27 @@
   fi
   
   ####################################################################
  -## Add in the Expat library if needed/wanted.
  +## Add in the Expat library. Choose whether we want the system's
  +## version ('yes'), our version (expat-lite) ('no') or for Configure
  +## to choose for us ('default' - system is prefered if available).
   ##
   
  -# set the default, based on whether expat-lite is bundled. if it is present,
  -# then we can always include expat.
  -if [ "x$RULE_EXPAT" = "xdefault" ]; then
  -    if [ -d ./lib/expat-lite/ ]; then
  -        RULE_EXPAT=yes
  -    else
  -        RULE_EXPAT=no
  -    fi
  -fi
  -
  -if [ "x$RULE_EXPAT" = "xyes" ]; then
  -    if ./helpers/TestCompile lib expat; then
  +if ./helpers/TestCompile lib expat && [ "x$RULE_EXPAT" != "xno" ]; then
           echo " + using system Expat"
  -        LIBS="$LIBS -lexpat"
  -    else
  -        if [ ! -d ./lib/expat-lite/ ]; then
  -            echo "ERROR: RULE_EXPAT set to \"yes\" but is not available."
  -	    exit 1
  -        fi
  -        echo " + using builtin Expat"
  -        EXPATLIB="lib/expat-lite/libexpat.a"
  -        APLIBDIRS="expat-lite $APLIBDIRS"
  -        CFLAGS="$CFLAGS -DUSE_EXPAT -I\$(SRCDIR)/lib/expat-lite"
  +	LIBS="$LIBS -lexpat"
  +else
  +    if [ "x$RULE_EXPAT" = "xyes" ]; then
  +        echo "ERROR: RULE_EXPAT set to \"yes\" but is not available."
  +        exit 1
  +    fi
  +    if [ ! -d ./lib/expat-lite/ ]; then
  +        echo "Bundled expat-lite package not available."
  +	exit 1
       fi
  +    echo " + using builtin Expat"
  +    EXPATLIB="lib/expat-lite/libexpat.a"
  +    APLIBDIRS="expat-lite $APLIBDIRS"
  +    CFLAGS="$CFLAGS -DUSE_EXPAT -I\$(SRCDIR)/lib/expat-lite"
   fi
   
   ####################################################################
  
  
  

Re: cvs commit: apache-1.3/src CHANGES Configuration.tmpl Configure

Posted by Greg Stein <gs...@lyra.org>.
On Mon, Oct 08, 2001 at 12:26:51PM -0400, Jim Jagielski wrote:
> Greg Stein wrote:
>...
> > RULE_EXPAT is for including expat, not for selecting which one.
> > 
> > The interesting choices, which were coded properly(*) before your change:
> > 
> > * use system if available; otherwise, use builtin
> > * don't include expat from anywhere
> > * if available somewhere, then use it; otherwise, skip
> 
> OK... I completely misunderstood the logic of what you were trying to
> implement...  Do you want to reverse the patch or me?


Please go ahead. If you're strapped for time, then just let me know.

Thanks,
-g

-- 
Greg Stein, http://www.lyra.org/

Re: cvs commit: apache-1.3/src CHANGES Configuration.tmpl Configure

Posted by Greg Stein <gs...@lyra.org>.
On Mon, Oct 08, 2001 at 12:00:26PM -0400, Jim Jagielski wrote:
>...
> Except, of course, that your logic didn't work. What is needed is some
> way to say "use system, use expat-lite or use whichever you find first
> (prefer system)". If we *don't* provide a choice, then why have
> any sort of rule in the 1st place?? If EXPAT 'no' means Don't Use
> expat-lite then that's easy to fix.

RULE_EXPAT is for including expat, not for selecting which one.

The interesting choices, which were coded properly(*) before your change:

* use system if available; otherwise, use builtin
* don't include expat from anywhere
* if available somewhere, then use it; otherwise, skip

These correspond to Yes, No, and Default.

If there is a system expat available, then there is no reason to choose the
builtin one. That is not a required option. The system version is *always*
preferable.

Note that Martin checked in something (accidentally, I presume, based on the
rest of the commit) to this section of code, so reverting your change might
be a bit trickier. But your change does need to be reverted. The previous
code implemented the proper logic.

Cheers,
-g

(*) I did make a tweak post .21 tag which fixed a case where expat-lite was
removed from the source bundle (you had pointed out the typo/logic issue on
that one), but the code always implemented the right set of choices

-- 
Greg Stein, http://www.lyra.org/

Re: cvs commit: apache-1.3/src CHANGES Configuration.tmpl Configure

Posted by Greg Stein <gs...@lyra.org>.
-1. Big time veto.

What the heck is this? RULE_EXPAT=no means *NO EXPAT*, not "use expat-lite"

I have no idea where you got this idea for what RULE_EXPAT means, nor why my
name might be on the CHANGES with it (I certainly don't agree with this).

The mod_perl guys have gotten *very* used to using RULE_EXPAT=no to keep
expat-lite from being included into Apache, thus to prevent symbol conflict.
What you've done is to completely reverse that logic for them. Now they will
*definitely* get expat-lite, thus getting sym conflicts.

The whole point of my change to this logic a few days ago was to use the
system Expat whenever possible because it solves the sym conflict issue.

-g

On Mon, Oct 08, 2001 at 02:29:31PM -0000, jim@apache.org wrote:
> jim         01/10/08 07:29:31
> 
>   Modified:    src      CHANGES Configuration.tmpl Configure
>   Log:
>   Fix the EXPAT logic to the new meaning... Before, it was simply there to
>   check that expat-lite existed, which was kind of bogus... Now, we
>   allow it to choose which Expat we want. We prefer the system's Expat
>   if available but will use expat-lite as a backup. We can also bypass
>   that as well.
>   
>   Revision  Changes    Path
>   1.1727    +5 -0      apache-1.3/src/CHANGES
>   
>   Index: CHANGES
>   ===================================================================
>   RCS file: /home/cvs/apache-1.3/src/CHANGES,v
>   retrieving revision 1.1726
>   retrieving revision 1.1727
>   diff -u -r1.1726 -r1.1727
>   --- CHANGES	2001/10/06 22:01:10	1.1726
>   +++ CHANGES	2001/10/08 14:29:30	1.1727
>   @@ -1,5 +1,10 @@
>    Changes with Apache 1.3.22
>    
>   +  *) Change to the EXPAT rule logic. We can now use the system's expat
>   +     library if we want, use our own expat-lite or have Configure
>   +     pick one for us (prefer system, but use expat-lite as a backup).
>   +     [Jim Jagielski, Greg Stein]
>   +
>      *) The manual directory is still configurable (as enabled by
>         the 1.3.21 change), but its default setting was reverted to
>         the pre-1.3.21 default as a subdirectory of the DocumentRoot.
>   
>   
>   
>   1.122     +6 -4      apache-1.3/src/Configuration.tmpl
>   
>   Index: Configuration.tmpl
>   ===================================================================
>   RCS file: /home/cvs/apache-1.3/src/Configuration.tmpl,v
>   retrieving revision 1.121
>   retrieving revision 1.122
>   diff -u -r1.121 -r1.122
>   --- Configuration.tmpl	1999/08/14 08:35:43	1.121
>   +++ Configuration.tmpl	2001/10/08 14:29:30	1.122
>   @@ -161,10 +161,12 @@
>    #  actually print-out the code that the modules execute
>    #
>    # EXPAT:
>   -#  Include James Clark's Expat package into Apache, for use by the
>   -#  modules. The "default" is to include it if the lib/expat-lite/
>   -#  directory is present. This rule will always be interpreted as "no"
>   -#  if the directory is not present.
>   +#  Apache requires an Expat package and includes James Clark's Expat
>   +#  package (expat-lite) with the distribution. This determines
>   +#  whether you want to include the system's Expat library ('yes'),
>   +#  expat-lite ('no') or prefer the system Expat if available but choose
>   +#  expat-lite if not ('default'). Note that if set to 'yes' and
>   +#  libexpat.a cannot be found, the build will fail.
>    #
>    
>    Rule SOCKS4=no
>   
>   
>   
>   1.439     +17 -23    apache-1.3/src/Configure
>   
>   Index: Configure
>   ===================================================================
>   RCS file: /home/cvs/apache-1.3/src/Configure,v
>   retrieving revision 1.438
>   retrieving revision 1.439
>   diff -u -r1.438 -r1.439
>   --- Configure	2001/10/08 13:59:39	1.438
>   +++ Configure	2001/10/08 14:29:30	1.439
>   @@ -1847,33 +1847,27 @@
>    fi
>    
>    ####################################################################
>   -## Add in the Expat library if needed/wanted.
>   +## Add in the Expat library. Choose whether we want the system's
>   +## version ('yes'), our version (expat-lite) ('no') or for Configure
>   +## to choose for us ('default' - system is prefered if available).
>    ##
>    
>   -# set the default, based on whether expat-lite is bundled. if it is present,
>   -# then we can always include expat.
>   -if [ "x$RULE_EXPAT" = "xdefault" ]; then
>   -    if [ -d ./lib/expat-lite/ ]; then
>   -        RULE_EXPAT=yes
>   -    else
>   -        RULE_EXPAT=no
>   -    fi
>   -fi
>   -
>   -if [ "x$RULE_EXPAT" = "xyes" ]; then
>   -    if ./helpers/TestCompile lib expat; then
>   +if ./helpers/TestCompile lib expat && [ "x$RULE_EXPAT" != "xno" ]; then
>            echo " + using system Expat"
>   -        LIBS="$LIBS -lexpat"
>   -    else
>   -        if [ ! -d ./lib/expat-lite/ ]; then
>   -            echo "ERROR: RULE_EXPAT set to \"yes\" but is not available."
>   -	    exit 1
>   -        fi
>   -        echo " + using builtin Expat"
>   -        EXPATLIB="lib/expat-lite/libexpat.a"
>   -        APLIBDIRS="expat-lite $APLIBDIRS"
>   -        CFLAGS="$CFLAGS -DUSE_EXPAT -I\$(SRCDIR)/lib/expat-lite"
>   +	LIBS="$LIBS -lexpat"
>   +else
>   +    if [ "x$RULE_EXPAT" = "xyes" ]; then
>   +        echo "ERROR: RULE_EXPAT set to \"yes\" but is not available."
>   +        exit 1
>   +    fi
>   +    if [ ! -d ./lib/expat-lite/ ]; then
>   +        echo "Bundled expat-lite package not available."
>   +	exit 1
>        fi
>   +    echo " + using builtin Expat"
>   +    EXPATLIB="lib/expat-lite/libexpat.a"
>   +    APLIBDIRS="expat-lite $APLIBDIRS"
>   +    CFLAGS="$CFLAGS -DUSE_EXPAT -I\$(SRCDIR)/lib/expat-lite"
>    fi
>    
>    ####################################################################
>   
>   
>   

-- 
Greg Stein, http://www.lyra.org/