rse 98/12/16 07:57:28
Modified: src CHANGES . configure config.layout Log: Removed recently introduced bugs and disfigurements in APACI: o fixed argument line processing: using $args was broken: It was not initialized and using args="$args $apc_option" and even args="$args \"$apc_option\"" fails in the second processing round for any arguments containing whitespaces. The only correct way is to use the construct "$@" (but not possible here) or iterate _both_ times over the implicit argument line (no argument to for-loop) which is what we now use. o make --with-layout=Apache the default without creating redundancy (copying the --with-layout block in the argument parsing loop). We achieve this by using the "$@" construct together with the `set' command to prepend --with-layout=Apache to the command line in case --with-layout is not used. o fixed auto-suffix handling now that config.layout exists. Paths which are auto-suffixed are marked with a trailing plus sign in config.layout and every path now can be marked this way (not only the four paths for which we do it currently). Additionally the suffix is no longer a static one. Instead it's now `/<target>' where <target> is the argument of the --target option or per default `httpd'. o allow also tabs (and only spaces) where we match whitespaces o various fixes and cleanups related to used shell coding style o made Jim happy by replacing `Written by' with `Initially written by' ;-) o trimmed output of --help to fit into 80 columns Now APACI is again clean and ready for 1.3.4 ;-) (IMHO) Revision Changes Path 1.1171 +24 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1170 retrieving revision 1.1171 diff -u -r1.1170 -r1.1171 --- CHANGES 1998/12/12 05:26:00 1.1170 +++ CHANGES 1998/12/16 15:57:26 1.1171 @@ -1,5 +1,29 @@ Changes with Apache 1.3.4 + *) Removed recently introduced bugs and disfigurements in APACI: + o fixed argument line processing: using $args was broken: It was not + initialized and using args="$args $apc_option" and even args="$args + \"$apc_option\"" fails in the second processing round for any arguments + containing whitespaces. The only correct way is to use the construct + "$@" (but not possible here) or iterate _both_ times over the implicit + argument line (no argument to for-loop) which is what we now use. + o make --with-layout=Apache the default without creating + redundancy (copying the --with-layout block in the argument parsing + loop). We achieve this by using the "$@" construct together with the + `set' command to prepend --with-layout=Apache to the command line in + case --with-layout is not used. + o fixed auto-suffix handling now that config.layout exists. + Paths which are auto-suffixed are marked with a trailing plus sign in + config.layout and every path now can be marked this way (not only the + four paths for which we do it currently). Additionally the suffix is + no longer a static one. Instead it's now `/<target>' where <target> is + the argument of the --target option or per default `httpd'. + o allow also tabs (and only spaces) where we match whitespaces + o various fixes and cleanups related to used shell coding style + o made Jim happy by replacing `Written by' with `Initially written by' ;-) + o trimmed output of --help to fit into 80 columns + [Ralf S. Engelschall] + *) Added two new core API functions, ap_single_module_configure() and ap_single_module_init(), which are now used by mod_so to correctly initialize a module after loading. This fixes a problem with unusable 1.63 +101 -89 apache-1.3/configure Index: configure =================================================================== RCS file: /home/cvs/apache-1.3/configure,v retrieving revision 1.62 retrieving revision 1.63 diff -u -r1.62 -r1.63 --- configure 1998/12/16 10:57:45 1.62 +++ configure 1998/12/16 15:57:28 1.63 @@ -58,7 +58,7 @@ ## ## configure -- Apache Autoconf-style Interface (APACI) ## -## Written by Ralf S. Engelschall <[EMAIL PROTECTED]> +## Initially written by Ralf S. Engelschall <[EMAIL PROTECTED]> ## # default input separator chars: <space><tab><cr> @@ -68,7 +68,6 @@ ## ## the paths to the Apache source tree ## - top=. mkf=Makefile src=src @@ -84,7 +83,6 @@ ## ## pre-determine runtime modes ## - help=no quiet=no verbose=no @@ -98,7 +96,6 @@ ## ## display version information ## - if [ ".$quiet" = .no ]; then APV=`cat $src/include/httpd.h |\ grep "#define SERVER_BASEVERSION" |\ @@ -109,7 +106,6 @@ ## ## important hint for the first-time users ## - if [ $# -eq 0 ]; then echo " + Warning: Configuring Apache with default settings." echo " + This is probably not what you really want." @@ -121,7 +117,6 @@ ## ## determine path to (optional) Perl interpreter ## - PERL=no-perl-on-this-system perlpath="`$aux/PrintPath perl5 perl miniperl`" if [ ".$perlpath" != . ]; then @@ -134,7 +129,6 @@ ## and if it then is still broken we give a warning message. ## If it works set the `Safe Echo Option' (SEO) variable. ## - SEO='' # CHANGE THIS VARIABLE HERE IF YOU HAVE PROBLEMS WITH ECHO! bytes=`echo $SEO '\1' | wc -c | awk '{ printf("%s", $1); }'` if [ ".$bytes" != .3 ]; then @@ -156,7 +150,6 @@ ## standard Awks are really braindead and cause ## problems for our scripts under some platforms. ## - AWK=awk awkpath="`$aux/PrintPath nawk gawk awk`" if [ ".$awkpath" != . ]; then @@ -170,13 +163,6 @@ # default paths prefix=UNSET -# customization flags for -# automatic "apache" suffix -customized_sysconfdir=0 -customized_datadir=0 -customized_localstatedir=0 -customized_includedir=0 - # layout configuration with_layout=0 show_layout=0 @@ -192,24 +178,20 @@ suexec_gidmin=100 suexec_safepath="/usr/local/bin:/usr/bin:/bin" -# with support tools +# various other flags support=1 - -# with adjustments confadjust=1 - -# module ordering permute='' # determine rules -rules="" -rulelist="" +rules='' +rulelist='' OIFS="$IFS" IFS=' ' for rule in `grep '^Rule' $src/Configuration.tmpl`; do - rule=`echo "$rule" | sed -e 's/^Rule[ ]*//'` + rule=`echo "$rule" | sed -e 's/^Rule[ ]*//'` name=`echo "$rule" | sed -e 's/=.*$//'` - namelow=`echo "$name" | tr "A-Z" "a-z"` + namelow=`echo "$name" | tr 'A-Z' 'a-z'` arg=`echo "$rule" | sed -e 's/^.*=//'` eval "rule_$namelow=$arg" rules="$rules:$namelow" @@ -219,11 +201,11 @@ rules=`echo $rules | sed -e 's/^://'` # determine modules -modules="" -modulelist="" +modules='' +modulelist='' OIFS="$IFS" IFS=' ' -for module in `egrep '^[# ]*(Add|Shared)Module' $src/Configuration.tmpl`; do +for module in `egrep '^[# ]*(Add|Shared)Module' $src/Configuration.tmpl`; do add=yes share=no if [ ".`echo $module | grep '^#'`" != . ]; then @@ -234,7 +216,8 @@ fi module=`echo "$module" |\ sed -e 's%^.*/\(.*\)$%\1%' \ - -e 's/\.[oam].*$//' \ + -e 's/\.[oa]$//' \ + -e 's/\.module$//' \ -e 's/^mod_//' \ -e 's/^lib//'` eval "module_$module=$add" @@ -248,7 +231,7 @@ IFS="$OIFS" modules=`echo $modules | sed -e 's/^://'` -# backward compatibility from old src/Configuration.tmpl +# backward compatibility for old src/Configuration.tmpl # parameter names to the canonical Autoconf-style shell # variable names. OIFS="$IFS" IFS="$DIFS" @@ -263,10 +246,24 @@ IFS="$OIFS" ## -## check for help option and preprocess path layout definititions so that -## these can be overriden +## support for the default layout ## -apc_prev="" +case "$*" in + *--with-layout=* ) + ;; + * ) + set -- '--with-layout=Apache' "$@" + ;; +esac + +## +## Iterate over the command line options the first time. +## +## This time we pre-process options which need high priority +## on the command line independent of their position, so they +## can be overridden by others. +## +apc_prev='' OIFS1="$IFS" IFS="$DIFS" for apc_option do @@ -281,7 +278,7 @@ -*=*) apc_optarg=`echo "$apc_option" | sed 's/[-_a-zA-Z0-9]*=//'` ;; *) apc_optarg= ;; esac - + # pre-process only a few options now case "$apc_option" in --help | -h | -help ) echo "Usage: configure [options]" @@ -297,7 +294,7 @@ echo "" echo "Installation layout options:" echo " --with-layout=[F:]ID use installation path layout ID (from file F)" - echo " --target=TARGET install server executable and associated files using basename TARGET" + echo " --target=TARGET install name-associated files using basename TARGET" echo " --prefix=PREFIX install architecture-independent files in PREFIX" echo " --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX" echo " --bindir=DIR install user executables in DIR" @@ -316,17 +313,17 @@ echo " --enable-rule=NAME enable a particular Rule named 'NAME'" echo " --disable-rule=NAME disable a particular Rule named 'NAME'" $aux/ppl.sh $rulelist - echo " --add-module=FILE on-the-fly copy & activate a third-party Module source" - echo " --activate-module=FILE on-the-fly activate existing third-party Module source" - echo " --permute-module=N1:N2 permute module 'N1' with module 'N2' in the configuration" + echo " --add-module=FILE on-the-fly copy & activate a 3rd-party Module" + echo " --activate-module=FILE on-the-fly activate existing 3rd-party Module" + echo " --permute-module=N1:N2 on-the-fly permute module 'N1' with module 'N2'" echo " --enable-module=NAME enable a particular Module named 'NAME'" echo " --disable-module=NAME disable a particular Module named 'NAME'" $aux/ppl.sh $modulelist - echo " --enable-shared=NAME enable build of Module named 'NAME' as a shared object" - echo " --disable-shared=NAME disable build of Module named 'NAME' as a shared object" - echo " --with-perl=FILE set the path to the optional Perl interpreter to use" + echo " --enable-shared=NAME enable build of Module named 'NAME' as a DSO" + echo " --disable-shared=NAME disable build of Module named 'NAME' as a DSO" + echo " --with-perl=FILE path to the optional Perl interpreter" echo " --without-support disable the build and installation of support tools" - echo " --without-confadjust disable some build user/situation adjustments to config files" + echo " --without-confadjust disable the user/situation adjustments in config" echo "" echo "suEXEC options:" echo " --enable-suexec enable the suEXEC feature" @@ -368,6 +365,23 @@ -e "s/[ ]*$/'/g" \ $file >$pldconf . $pldconf + OIFS="$IFS" IFS="$DIFS" + for var in prefix exec_prefix bindir sbindir libexecdir mandir \ + sysconfdir datadir includedir localstatedir runtimedir \ + logfiledir proxycachedir; do + eval "val=\"\$$var\"" + case $val in + *+ ) + val=`echo $val | sed -e 's;\+$;;'` + eval "$var=\"\$val\"" + eval "autosuffix_$var=yes" + ;; + * ) + eval "autosuffix_$var=no" + ;; + esac + done + IFS="$OIFS" rm -f $pldconf 2>/dev/null if [ ".$prefix" = .UNSET ]; then echo "configure:Error: Path layout definition not found or incorrect" 1>&2 @@ -379,26 +393,19 @@ with_layout=1 ;; *) - args="$args $apc_option" ;; esac done -IFS="$OIFS1" - -if [ ".$with_layout" = .0 ]; then - echo "configure:Error: Please select an installation path layout with" - echo " the --with-layout=[FILE:]ID option. Use 'Apache' or" - echo " 'GNU' for ID to select the two predefined layouts." - exit 1 -fi +## +## Iterate over the command line options the second time. ## -## parse argument line options +## This time we parse the standard options. ## addconf_created=0 -apc_prev="" +apc_prev='' OIFS1="$IFS" IFS="$DIFS" -for apc_option in $args +for apc_option do # if previous option needs an argument, assign it. if [ ".$apc_prev" != . ]; then @@ -413,6 +420,9 @@ esac # accept only the most important GNU Autoconf-style options case "$apc_option" in + --help|-h|-help|--with-layout=*|-compat) + # just ignore already parsed options + ;; --quiet | --silent) quiet=yes ;; @@ -491,46 +501,55 @@ ;; --prefix=*) prefix="$apc_optarg" + autosuffix_prefix=no ;; --exec-prefix=*) exec_prefix="$apc_optarg" + autosuffix_exec_prefix=no ;; --bindir=*) bindir="$apc_optarg" + autosuffix_bindir=no ;; --sbindir=*) sbindir="$apc_optarg" + autosuffix_sbindir=no ;; --libexecdir=*) libexecdir="$apc_optarg" + autosuffix_libexecdir=no ;; --mandir=*) mandir="$apc_optarg" + autosuffix_mandir=no ;; --sysconfdir=*) sysconfdir="$apc_optarg" - customized_sysconfdir=1 + autosuffix_sysconfdir=no ;; --datadir=*) datadir="$apc_optarg" - customized_datadir=1 + autosuffix_datadir=no ;; --includedir=*) includedir="$apc_optarg" - customized_includedir=1 + autosuffix_includedir=no ;; --localstatedir=*) localstatedir="$apc_optarg" - customized_localstatedir=1 + autosuffix_localstatedir=no ;; --runtimedir=*) runtimedir="$apc_optarg" + autosuffix_runtimedir=no ;; --logfiledir=*) logfiledir="$apc_optarg" + autosuffix_logfiledir=no ;; --proxycachedir=*) proxycachedir="$apc_optarg" + autosuffix_proxycachedir=no ;; --add-module=*) file="$apc_optarg" @@ -821,8 +840,10 @@ touch $addconf 2>/dev/null fi -# create a config status script for restoring -# the configuration via a simple shell script +## +## create a config status script for restoring +## the configuration via a simple shell script +## rm -f $configstatus 2>/dev/null echo "#!/bin/sh" >$configstatus echo "##" >>$configstatus @@ -859,7 +880,7 @@ chmod a+x $configstatus ## -## a few errors +## a few errors and warnings ## if [ ".$suexec" = .1 ]; then if [ ".$suexec_ok" = .0 ]; then @@ -870,12 +891,6 @@ echo " and htdocs/manual/suexec.html documents first." exit 1 fi -fi - -## -## a few warnings -## -if [ ".$suexec" = .1 ]; then if [ ".`id | grep root`" = . ]; then echo " + Warning: You enabled the suEXEC feature. Be aware that you need" 1>&2 echo " + root privileges for this, at the latest at the installation step." 1>&2 @@ -902,25 +917,21 @@ ## they do not end with a backslash ## OIFS="$IFS" IFS="$DIFS" -for var in prefix exec_prefix bindir sbindir libexecdir mandir sysconfdir \ +for var in prefix exec_prefix bindir sbindir libexecdir mandir \ sysconfdir datadir includedir localstatedir runtimedir \ logfiledir proxycachedir suexec_docroot suexec_logexec; do eval "val=\"\$$var\""; val=`echo $val | sed -e 's:/*$::'` eval "$var=\"$val\"" - case $var in - libexecdir|sysconfdir|datadir|localstatedir|includedir ) - eval "val=\$$var" - case $val in - *apache | *apache* ) ;; - * ) eval "customized=\$customized_$var" - if [ ".$customized" = .0 ]; then - eval "$var=\"\$$var/apache\"" - fi - ;; - esac - ;; - esac + # expand value + eval "val=\$$var" + # add target suffix when requested + if [ ".`echo $val | grep $thetarget`" = . ]; then + eval "autosuffix=\$autosuffix_$var" + if [ ".$autosuffix" = .yes ]; then + eval "$var=\"\$$var/$thetarget\"" + fi + fi done IFS="$OIFS" @@ -928,15 +939,15 @@ ## determine special configurable Makefile targets ## if [ ".$support" = .1 ]; then - build_support=build-support - install_support=install-support - clean_support=clean-support - distclean_support=distclean-support + build_support='build-support' + install_support='install-support' + clean_support='clean-support' + distclean_support='distclean-support' else - build_support= - install_support= - clean_support= - distclean_support= + build_support='' + install_support='' + clean_support='' + distclean_support='' fi ## @@ -1161,7 +1172,8 @@ for line in `cat src/Configuration.tmpl $addconf | egrep '^[# ]*(Add|Shared)Module'`; do name=`echo "$line" |\ sed -e 's%^.*/\(.*\)$%\1%' \ - -e 's/\.[oam].*$//' \ + -e 's/\.[oa]$//' \ + -e 's/\.module$//' \ -e 's/^mod_//' \ -e 's/^lib//'` echo "${name}:${line}" 1.2 +14 -7 apache-1.3/config.layout Index: config.layout =================================================================== RCS file: /home/cvs/apache-1.3/config.layout,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- config.layout 1998/12/02 06:11:52 1.1 +++ config.layout 1998/12/16 15:57:28 1.2 @@ -1,9 +1,15 @@ ## ## config.layout -- APACI Pre-defined Installation Path Layouts -## (selectable with APACI's --with-layout=ID option) ## +## Hints: +## - layouts can be loaded with APACI's --with-layout=ID option +## - when no --with-layout option is given, the default layout is `Apache' +## - a trailing plus character (`+') on paths is replaced with a +## `/<target>' suffix where <target> is the the argument from +## option --target (defaults to `httpd'). +## -# Classical Apache path layout +# Classical Apache path layout. <Layout Apache> prefix: /usr/local/apache exec_prefix: $prefix @@ -20,7 +26,8 @@ proxycachedir: $localstatedir/proxy </Layout> -# GNU standards conforming path layout +# GNU standards conforming path layout. +# See FSF's GNU project `make-stds' document for details. <Layout GNU> prefix: /usr/local exec_prefix: $prefix @@ -28,10 +35,10 @@ sbindir: $exec_prefix/sbin libexecdir: $exec_prefix/libexec mandir: $prefix/man - sysconfdir: $prefix/etc - datadir: $prefix/share - includedir: $prefix/include - localstatedir: $prefix/var + sysconfdir: $prefix/etc+ + datadir: $prefix/share+ + includedir: $prefix/include+ + localstatedir: $prefix/var+ runtimedir: $localstatedir/run logfiledir: $localstatedir/log proxycachedir: $localstatedir/proxy