fielding 99/01/04 21:14:52
Modified: . STATUS config.layout src CHANGES Added: src/helpers binbuild.sh findprg.sh Log: Added binbuild.sh and findprg.sh helpers to make it easier for us to build binary distributions. This is Lars' "take 2" version of 12/26. Submitted by: Lars Eilebrecht Reviewed by: Roy Fielding, Randy Terbush Revision Changes Path 1.589 +17 -56 apache-1.3/STATUS Index: STATUS =================================================================== RCS file: /home/cvs/apache-1.3/STATUS,v retrieving revision 1.588 retrieving revision 1.589 diff -u -r1.588 -r1.589 --- STATUS 1999/01/05 01:03:03 1.588 +++ STATUS 1999/01/05 05:14:49 1.589 @@ -1,5 +1,5 @@ 1.3 STATUS: - Last modified at [$Date: 1999/01/05 01:03:03 $] + Last modified at [$Date: 1999/01/05 05:14:49 $] Release: @@ -33,59 +33,24 @@ RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: - * How should an Apache binary release tarball look? + * Randy's proposed changes for binbuild: - - A proposed solution is available. - See: <[EMAIL PROTECTED]> - <[EMAIL PROTECTED]> - - 1. The "old" way where it is just a source release tarball - plus a pre-compiled src/httpd-<gnutriple>. It is created - via the apache-devsite/binbuild.sh script which - - creates the build tree - - creates the src/Configuration file with standard modules - - runs "make" - - renames src/httpd to src/httpd-<gnutriple> - - runs "make clean" - - packs the build tree stuff together - Already known discussion points: - - should src/httpd be renamed or not because a lot - of PRs say they cannot find the httpd :-( - Status: Ralf -0, Ken +0, Randy -1 - - 2. The way some other projects release binary tarballs, i.e. - a package containing the installed (binary) files. - It can be created by a script which - - creates the build tree - - runs "./configure --prefix=/usr/local/apache \ - --enable-shared=remain \ - --disable-module=auth_db \ - --enable-suexec ..." - - runs "make install root=apache-root" - - packs the stuff together from ./apache-root only!! - Already known discussion points: - - should there be a prefix usr/local/apache in - the tarball or not? Some people think - it's useful while others dislike it a lot. - - it doesn't include the source. - - the paths don't match the original Apache style, nor the Win32 - paths - - should suexec be prebuilt in a binary tarball? - Status: Randy, +1, Ralf +1, Martin +1, Roy -1, - Ken +1 (IFF source is included, - there's no usr/local/apache prefix in the tarball, AND the - old-style [common with Win32] paths are used) - - 3. A source release tarball with three extra directories: - lib: for the shared library object files - bin: for the httpd and support executables - man: for the man files (if desired) - as if the server was installed in those directories. - Status: Roy +1, Jim +1 (still need to define which modules - are built) - Ralf -0 (I dislike mixed source+binary tarballs) - Randy -1 (those wanting binary dists don't want source) + 1. Change to build binary only distribution + 2. Use standard Apache layout + [It is currently using the BinaryDistribution layout that mimics + the standard Apache layout _without_ any absolute paths in it + (apart from HTTPD_ROOT /usr/local/apache). This makes it possible + for a user to install it in _any_ directory.] + [Roy: I don't understand what Randy wants to change here.] + + 3. Add 'make dist' target to call binbuild.sh + [Roy: That would require a Makefile, which is what binbuild creates. + I don't see any point in that.] + + 4. Create toplevel 'setup' script for install to mirror win32 name + [It is currently creating "install-bindist.sh"] + Documentation that needs writing: * Need a document explaining mod_rewrite/"UseCanonicalName off" based @@ -95,10 +60,6 @@ vhost-xxx.html document out of it. -- rse Available Patches: - - * Lars' 'binbuild' patch - Message-ID: <[EMAIL PROTECTED]> - Status: Lars +1 * Jim Patterson's patch to make mod_info work on Win32 Message-ID: PR#1442 1.3 +16 -0 apache-1.3/config.layout Index: config.layout =================================================================== RCS file: /home/cvs/apache-1.3/config.layout,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- config.layout 1998/12/16 15:57:28 1.2 +++ config.layout 1999/01/05 05:14:49 1.3 @@ -44,3 +44,19 @@ proxycachedir: $localstatedir/proxy </Layout> +# Apache binary distribution path layout +<Layout BinaryDistribution> + prefix: /usr/local/apache + exec_prefix: + bindir: bin + sbindir: bin + libexecdir: libexec + mandir: man + sysconfdir: conf + datadir: + includedir: include + localstatedir: + runtimedir: logs + logfiledir: logs + proxycachedir: proxy +</Layout> 1.1202 +3 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1201 retrieving revision 1.1202 diff -u -r1.1201 -r1.1202 --- CHANGES 1999/01/04 19:49:36 1.1201 +++ CHANGES 1999/01/05 05:14:50 1.1202 @@ -1,5 +1,8 @@ Changes with Apache 1.3.4 + *) Added binbuild.sh and findprg.sh helpers to make it easier for us + to build binary distributions. [Lars Eilebrecht] + *) IndexOptions SuppressColumnSorting only turned off making the column headers anchors; you could still change the display order by manually adding a '?N=A' or similar query string to the 1.1 apache-1.3/src/helpers/binbuild.sh Index: binbuild.sh =================================================================== #!/bin/sh # # binbuild.sh - Builds an Apache binary distribution. # Initially written by Lars Eilebrecht <[EMAIL PROTECTED]>. # # This script falls under the Apache License. # See http://www.apache.org/docs/LICENSE APDIR=$(basename $(pwd)) VER=$(echo $APDIR |sed s/apache-//) OS=$(src/helpers/GuessOS) USER="$(src/helpers/buildinfo.sh -n [EMAIL PROTECTED])" TAR="$(src/helpers/findprg.sh tar)" GTAR="$(src/helpers/findprg.sh gtar)" GZIP="$(src/helpers/findprg.sh gzip)" CONFIGPARAM="--with-layout=BinaryDistribution --enable-module=most --enable-shared=max" if [ ! -f ./ABOUT_APACHE ] then echo "ERROR: The current directory contains no valid Apache distribution." echo "Please change the directory to the top level directory of a freshly" echo "unpacked Apache 1.3 source distribution and re-execute the script" echo "'./src/helpers/bindbuild.sh'." exit 1; fi if [ -d ./CVS ] then echo "ERROR: The current directory is a CVS checkout of Apache." echo "Only a standard Apache 1.3 source distribution should be used to" echo "create a binary distribution." exit 1; fi echo "Building Apache $VER binary distribution..." echo "Platform is \"$OS\"..." ( echo "Build log for Apache binary distribution" && \ echo "----------------------------------------------------------------------" && \ ./configure $CONFIGPARAM && \ echo "----------------------------------------------------------------------" && \ make clean && \ rm -rf bindist install-bindist.sh *.bindist echo "----------------------------------------------------------------------" && \ make && \ echo "----------------------------------------------------------------------" && \ make install-quiet root="bindist/" && \ echo "----------------------------------------------------------------------" && \ make clean && \ echo "----------------------------------------------------------------------" && \ echo "[EOF]" \ ) > build.log 2>&1 if [ ! -f ./bindist/bin/httpd ] then echo "ERROR: Failed to build Apache. See \"build.log\" for details." exit 1; fi echo "Binary images successfully created..." echo "Creating supplementary files..." ( echo " " && \ echo "Apache $VER binary distribution" && \ echo "================================" && \ echo " " && \ echo "This binary distribution is usable on a \"$OS\"" && \ echo "system and was built by \"$USER\"." && \ echo "" && \ echo "The distribution contains all standard Apache modules as shared" && \ echo "objects. This allows you to enable or disable particular modules" && \ echo "with the LoadModule/AddModule directives in the configuration file" && \ echo "without the need to re-compile Apache." && \ echo "" && \ echo "See \"INSTALL.bindist\" on how to install the distribution." && \ echo " " && \ echo "NOTE: Please do not send support-related mails to the address mentioned" && \ echo " above or to any member of the Apache Group! Support questions" && \ echo " should be directed to the \"comp.infosystems.www.servers.unix\"" && \ echo " or \"comp.infosystems.www.servers.ms-windows\" newsgroup" && \ echo " (as appropriate for the platform you use), where some of the" && \ echo " Apache team lurk, in the company of many other Apache gurus" && \ echo " who should be able to help." && \ echo " If you think you found a bug in Apache or have a suggestion please" && \ echo " visit the bug report page at http://www.apache.org/bug_report.html" && \ echo " " && \ echo "----------------------------------------------------------------------" && \ ./bindist/bin/httpd -V && \ echo "----------------------------------------------------------------------" \ ) > README.bindist cp README.bindist ../apache-$VER-$OS.README ( echo " " && \ echo "Apache $VER binary installation" && \ echo "================================" && \ echo " " && \ echo "To install this binary distribution you have to execute the installation" && \ echo "script \"install-bindist.sh\" in the top-level directory of the distribution." && \ echo " " && \ echo "The script takes the ServerRoot directory into which you want to install" && \ echo "Apache as an option. If you ommit the option the default path" && \ echo "\"/usr/local/apache\" is used." && \ echo "Make sure you have write permissions in the target directory, e.g. switch" && \ echo "to user \"root\" before you execute the script." && \ echo " " && \ echo "See \"README.bindist\" for further details about this distribution." && \ echo " " && \ echo "Please note that this distribution includes the complete Apache source code." && \ echo "Therefore you may compile Apache yourself at any time if you have a compiler" && \ echo "installation on your system." && \ echo "See \"INSTALL\" for details on how to accomplish this." && \ echo " " \ ) > INSTALL.bindist ( echo "#!/bin/sh" && \ echo "#" && \ echo "# Usage: install-bindist.sh [ServerRoot]" && \ echo "# This script installs the Apache binary distribution and" && \ echo "# was automatically created by binbuild.sh." && \ echo " " && \ echo "if [ .\$1 = . ]" && \ echo "then" && \ echo " SR=/usr/local/apache" && \ echo "else" && \ echo " SR=\$1" && \ echo "fi" && \ echo "echo \"Installing binary distribution for platform $OS\"" && \ echo "echo \"into directory \$SR ...\"" && \ echo "./src/helpers/mkdir.sh \$SR" && \ echo "cp -r bindist/proxy \$SR/proxy" && \ echo "cp -r bindist/man \$SR/man" && \ echo "cp -r bindist/logs \$SR/logs" && \ echo "cp -r bindist/libexec \$SR/libexec" && \ echo "cp -r bindist/include \$SR/include" && \ echo "cp -r bindist/icons \$SR/icons" && \ echo "cp -r bindist/cgi-bin \$SR/cgi-bin" && \ echo "cp -r bindist/bin \$SR/bin" && \ echo "if [ -d \$SR/conf ]" && \ echo "then" && \ echo " echo \"[Preserving existing configuration files.]\"" && \ echo " cp -r bindist/conf/*.default \$SR/conf/" && \ echo "else" && \ echo " cp -r bindist/conf \$SR/conf" && \ echo "fi" && \ echo "if [ -d \$SR/htdocs ]" && \ echo "then" && \ echo " echo \"[Preserving existing htdocs directory.]\"" && \ echo "else" && \ echo " cp -r bindist/htdocs \$SR/htdocs" && \ echo "fi" && \ echo "sed -e s%/usr/local/apache%\$SR/% \$SR/conf/httpd.conf.default > \$SR/conf/httpd.conf" && \ echo "sed -e s%PIDFILE=%PIDFILE=\$SR/% -e s%HTTPD=%HTTPD=\\\"\$SR/% -e \"s%/httpd$%/httpd -d \$SR\\\"%\" bindist/bin/apachectl > \$SR/bin/apachectl" && \ echo " " && \ echo "echo \"Ready.\"" && \ echo "echo \" +--------------------------------------------------------+\"" && \ echo "echo \" | You now have successfully installed the Apache $VER |\"" && \ echo "echo \" | HTTP server. To verify that Apache actually works |\"" && \ echo "echo \" | correctly you now should first check the (initially |\"" && \ echo "echo \" | created or preserved) configuration files |\"" && \ echo "echo \" | |\"" && \ echo "echo \" | \$SR/conf/httpd.conf\"" && \ echo "echo \" | |\"" && \ echo "echo \" | and then you should be able to immediately fire up |\"" && \ echo "echo \" | Apache the first time by running: |\"" && \ echo "echo \" | |\"" && \ echo "echo \" | \$SR/bin/apachectl start \"" &&\ echo "echo \" | |\"" && \ echo "echo \" | Thanks for using Apache. The Apache Group |\"" && \ echo "echo \" | http://www.apache.org/ |\"" && \ echo "echo \" +--------------------------------------------------------+\"" && \ echo "echo \" \"" \ ) > install-bindist.sh chmod 755 install-bindist.sh sed -e "s%\"/htdocs%\"/usr/local/apache/htdocs%" \ -e "s%\"/icons%\"/usr/local/apache/icons%" \ -e "s%\"/cgi-bin%\"/usr/local/apache/cgi-bin%" \ -e "s%^ServerAdmin.*%ServerAdmin [EMAIL PROTECTED]" \ -e "s%#ServerName.*%#ServerName localhost%" \ -e "s%Port 8080%Port 80%" \ bindist/conf/httpd.conf.default > bindist/conf/httpd.conf cp bindist/conf/httpd.conf bindist/conf/httpd.conf.default echo "Creating distribution archive and readme file..." if [ ".`grep -i error build.log > /dev/null`" != . ] then echo "ERROR: Failed to build Apache. See \"build.log\" for details." exit 1; else if [ ".$GTAR" != . ] then $GTAR -zcf ../apache-$VER-$OS.tar.gz -C .. --owner=root --group=root apache-$VER else if [ ".$TAR" != . ] then $TAR -cf ../apache-$VER-$OS.tar -C .. apache-$VER if [ ".$GZIP" != . ] then $GZIP ../apache-$VER-$OS.tar fi else echo "ERROR: Could not find a 'tar' program!" echo " Please execute the following commands manually:" echo " tar -cf ../apache-$VER-$OS.tar ." echo " gzip ../apache-$VER-$OS.tar" fi fi if [ -f ../apache-$VER-$OS.tar.gz ] && [ -f ../apache-$VER-$OS.README ] then echo "Ready." echo "You can find the binary archive (apache-$VER-$OS.tar.gz)" echo "and the readme file (apache-$VER-$OS.README) in the" echo "parent directory." exit 0; else exit 1; fi fi 1.4 +19 -61 apache-1.3/src/helpers/findprg.sh