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