httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Randy Terbush <ra...@Covalent.NET>
Subject Re: [CONTRIB] Autoconf Interface Emulation
Date Sun, 01 Mar 1998 22:39:43 GMT
I've purposefully stayed out of this debate since I don't think that
it offers much to our nearterm goals. But Ralf's work demands some
comment...

-1 on including this in 1.3. It is far too late in the release
schedule for this.

Also, the thing that I dislike most about Autoconf and friends is the
user interface. The advantage to autoconf is all of the work that it
does to help make writing portable code easier. Grabbing the interface
is not desirable IMO.

Also, as for are copyright issues go, it is my understanding that the
GPL is not an issue with Autoconf.


rse@engelschall.com (Ralf S. Engelschall) writes:
> Autoconf Interface Emulation (ACE)
> ----------------------------------
> 
> While we are all the opinion that GNU AutoConf is a point of discussion for
> Apache 2.0 and that we never want to use GNU AutoConf checks for 1.3, there is
> a subtle difference here: the system-checks of AutoConf have nothing to do
> with the popular Cygnus/GNU options used to control the build process of a
> AutoConf-based source tree. Mostly everyone loves packages which can be build
> like this:
> 
>    $ gunzip <foo-0.8.15.tar.gz
>    $ cd foo-0.8.15
>    $ ./configure --prefix=/somewhere --enable-xxx --disable-yyy ...
>    $ make
>    $ make install
>    $ make distclean
> 
> At least I prefer this way of building because it is widely known, it is
> simple and stupid to use, it is pure batch without interactive stuff, a
> FreeBSD port can be done easily, RPM packages can be done more easily, etc.
> pp.
> 
> So, I've started yesterday from scratch (to avoid copyright problems!) to
> create a GNU AutoConf-style configuration emulation interface for our
> "Configuration+Configure" scheme. The idea came to me because we already have
> a top-level Makefile (even if it currently is a totally bogus one in my
> opinion). So, why not enhance this to a full-featured AutoConf-style
> interface? I now created four files:
> 
>     apache-1.3/configure
>     apache-1.3/Makefile.tmpl
>     apache-1.3/aux/mkdir.sh
>     apache-1.3/aux/install.sh
> 
> This is all we need - no changes at other places are needed! How it works?
> As an example I present you how one can build a Reverse Proxy:
> 
>     $ cd apache-1.3
>     $ ./configure --prefix=/tmp/apache-rproxy \
>                   --disable-module=all \
>                   --enable-module=rewrite \
>                   --enable-module=proxy \
>                   --enable-module=mime
>                   --enable-rule=WANTHSREGEX \
>                   --enable-rule=HIDE
>     Configuring for Apache, Version 1.3b6-dev
>     Creating Makefile
>     Creating Configuration.gen in src
>     Creating Makefile in src
>      + configured for FreeBSD 2.1.5 platform
>      + setting C compiler to gcc
>      + adding selected modules
>      + doing sanity check on compiler and options
>     Creating Makefile in src/support
>     Creating Makefile in src/main
>     Creating Makefile in src/ap
>     Creating Makefile in src/regex
>     Creating Makefile in src/os/unix
>     Creating Makefile in src/modules/standard
>     $ make
>     ...
>     $ make install
>     ...
> 
> After this Apache is installed in the GNU-conforming way (with all paths
> correctly set in the binaries and the *.conf files, etc.) under
> /tmp/apache-rproxy as following:
> 
>     drwxr-xr-x  2 rse  wheel  512 Mar  1 17:03 bin
>     drwxr-xr-x  2 rse  wheel  512 Mar  1 17:03 etc
>     drwxr-xr-x  2 rse  wheel  512 Mar  1 17:03 libexec
>     drwxr-xr-x  4 rse  wheel  512 Mar  1 17:03 man
>     drwxr-xr-x  2 rse  wheel  512 Mar  1 17:03 sbin
>     drwxr-xr-x  5 rse  wheel  512 Mar  1 17:03 share
>     drwxr-xr-x  5 rse  wheel  512 Mar  1 17:03 var
> 
> In detail:
> 
>     /tmp/apache-rproxy
>     /tmp/apache-rproxy/bin
>     /tmp/apache-rproxy/bin/htpasswd
>     /tmp/apache-rproxy/bin/htdigest
>     /tmp/apache-rproxy/sbin
>     /tmp/apache-rproxy/sbin/apachectl
>     /tmp/apache-rproxy/sbin/dbmmanage
>     /tmp/apache-rproxy/sbin/logresolve
>     /tmp/apache-rproxy/sbin/rotatelogs
>     /tmp/apache-rproxy/libexec
>     /tmp/apache-rproxy/libexec/httpd
>     /tmp/apache-rproxy/man
>     /tmp/apache-rproxy/man/man1
>     /tmp/apache-rproxy/man/man1/apachectl.1
>     /tmp/apache-rproxy/man/man1/htpasswd.1
>     /tmp/apache-rproxy/man/man8
>     /tmp/apache-rproxy/man/man8/httpd.8
>     /tmp/apache-rproxy/etc
>     /tmp/apache-rproxy/etc/httpd.conf
>     /tmp/apache-rproxy/etc/access.conf
>     /tmp/apache-rproxy/etc/srm.conf
>     /tmp/apache-rproxy/share
>     /tmp/apache-rproxy/share/htdocs
>     /tmp/apache-rproxy/share/htdocs/manual
>     /tmp/apache-rproxy/share/htdocs/manual/images
>     /tmp/apache-rproxy/share/htdocs/manual/images/custom_errordocs.gif
>     /tmp/apache-rproxy/share/htdocs/manual/images/home.gif
>     /tmp/apache-rproxy/share/htdocs/manual/images/index.gif
>     /tmp/apache-rproxy/share/htdocs/manual/images/sub.gif
>     /tmp/apache-rproxy/share/htdocs/manual/mod
>     /tmp/apache-rproxy/share/htdocs/manual/mod/core.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/directive-dict.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/directives.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/footer.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/header.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/index.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_access.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_actions.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_alias.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_asis.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_auth.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_auth_anon.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_auth_db.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_auth_dbm.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_autoindex.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_browser.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_cern_meta.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_cgi.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_cookies.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_digest.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_dir.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_dld.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_dll.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_env.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_example.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_expires.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_headers.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_imap.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_include.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_info.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_isapi.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_log_agent.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_log_common.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_log_config.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_log_referer.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_mime.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_mime_magic.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_negotiation.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_proxy.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_rewrite.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_setenvif.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_so.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_speling.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_status.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_unique_id.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_userdir.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_usertrack.html
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_rewrite_fig1.fig
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_rewrite_fig1.gif
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_rewrite_fig2.fig
>     /tmp/apache-rproxy/share/htdocs/manual/mod/mod_rewrite_fig2.gif
>     /tmp/apache-rproxy/share/htdocs/manual/misc
>     /tmp/apache-rproxy/share/htdocs/manual/misc/API.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/FAQ.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/client_block_api.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/compat_notes.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/custom_errordocs.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/descriptors.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/fin_wait_2.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/footer.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/header.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/howto.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/index.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/known_bugs.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/known_client_problems.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/nopgp.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/perf-bsd44.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/perf-dec.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/perf-hp.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/perf-tuning.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/perf.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/security_tips.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/vif-info.html
>     /tmp/apache-rproxy/share/htdocs/manual/misc/windoz_keepalive.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/details.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/details_1_2.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/examples.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/fd-limits.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/footer.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/header.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/host.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/index.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/ip-based.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/name-based.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/vhosts-in-depth.html
>     /tmp/apache-rproxy/share/htdocs/manual/vhosts/virtual-host.html
>     /tmp/apache-rproxy/share/htdocs/manual/LICENSE
>     /tmp/apache-rproxy/share/htdocs/manual/custom-error.html
>     /tmp/apache-rproxy/share/htdocs/manual/dns-caveats.html
>     /tmp/apache-rproxy/share/htdocs/manual/env.html
>     /tmp/apache-rproxy/share/htdocs/manual/expand.pl
>     /tmp/apache-rproxy/share/htdocs/manual/footer.html
>     /tmp/apache-rproxy/share/htdocs/manual/handler.html
>     /tmp/apache-rproxy/share/htdocs/manual/header.html
>     /tmp/apache-rproxy/share/htdocs/manual/index.html
>     /tmp/apache-rproxy/share/htdocs/manual/install.html
>     /tmp/apache-rproxy/share/htdocs/manual/invoking.html
>     /tmp/apache-rproxy/share/htdocs/manual/keepalive.html
>     /tmp/apache-rproxy/share/htdocs/manual/location.html
>     /tmp/apache-rproxy/share/htdocs/manual/man-template.html
>     /tmp/apache-rproxy/share/htdocs/manual/multilogs.html
>     /tmp/apache-rproxy/share/htdocs/manual/new_features_1_0.html
>     /tmp/apache-rproxy/share/htdocs/manual/new_features_1_1.html
>     /tmp/apache-rproxy/share/htdocs/manual/new_features_1_2.html
>     /tmp/apache-rproxy/share/htdocs/manual/new_features_1_3.html
>     /tmp/apache-rproxy/share/htdocs/manual/process-model.html
>     /tmp/apache-rproxy/share/htdocs/manual/sections.html
>     /tmp/apache-rproxy/share/htdocs/manual/sourcereorg.html
>     /tmp/apache-rproxy/share/htdocs/manual/stopping.html
>     /tmp/apache-rproxy/share/htdocs/manual/suexec.html
>     /tmp/apache-rproxy/share/htdocs/manual/unixware.html
>     /tmp/apache-rproxy/share/htdocs/manual/upgrading_to_1_3.html
>     /tmp/apache-rproxy/share/htdocs/manual/windows.html
>     /tmp/apache-rproxy/share/htdocs/manual/cgi_path.html
>     /tmp/apache-rproxy/share/htdocs/manual/bind.html
>     /tmp/apache-rproxy/share/htdocs/manual/TODO
>     /tmp/apache-rproxy/share/htdocs/manual/content-negotiation.html
>     /tmp/apache-rproxy/share/htdocs/foo
>     /tmp/apache-rproxy/share/htdocs/foo/testerli.html
>     /tmp/apache-rproxy/share/htdocs/index.html
>     /tmp/apache-rproxy/share/htdocs/apache_pb.gif
>     /tmp/apache-rproxy/share/icons
>     /tmp/apache-rproxy/share/icons/world1.gif
>     /tmp/apache-rproxy/share/icons/uuencoded.gif
>     /tmp/apache-rproxy/share/icons/uu.gif
>     /tmp/apache-rproxy/share/icons/up.gif
>     /tmp/apache-rproxy/share/icons/unknown.gif
>     /tmp/apache-rproxy/share/icons/transfer.gif
>     /tmp/apache-rproxy/share/icons/text.gif
>     /tmp/apache-rproxy/share/icons/tex.gif
>     /tmp/apache-rproxy/share/icons/tar.gif
>     /tmp/apache-rproxy/share/icons/sphere2.gif
>     /tmp/apache-rproxy/share/icons/sphere1.gif
>     /tmp/apache-rproxy/share/icons/sound2.gif
>     /tmp/apache-rproxy/share/icons/sound1.gif
>     /tmp/apache-rproxy/share/icons/script.gif
>     /tmp/apache-rproxy/share/icons/screw2.gif
>     /tmp/apache-rproxy/share/icons/screw1.gif
>     /tmp/apache-rproxy/share/icons/right.gif
>     /tmp/apache-rproxy/share/icons/quill.gif
>     /tmp/apache-rproxy/share/icons/ps.gif
>     /tmp/apache-rproxy/share/icons/portal.gif
>     /tmp/apache-rproxy/share/icons/pie8.gif
>     /tmp/apache-rproxy/share/icons/pie7.gif
>     /tmp/apache-rproxy/share/icons/pie6.gif
>     /tmp/apache-rproxy/share/icons/pie5.gif
>     /tmp/apache-rproxy/share/icons/pie4.gif
>     /tmp/apache-rproxy/share/icons/pie3.gif
>     /tmp/apache-rproxy/share/icons/pie2.gif
>     /tmp/apache-rproxy/share/icons/pie1.gif
>     /tmp/apache-rproxy/share/icons/pie0.gif
>     /tmp/apache-rproxy/share/icons/pdf.gif
>     /tmp/apache-rproxy/share/icons/patch.gif
>     /tmp/apache-rproxy/share/icons/p.gif
>     /tmp/apache-rproxy/share/icons/movie.gif
>     /tmp/apache-rproxy/share/icons/link.gif
>     /tmp/apache-rproxy/share/icons/left.gif
>     /tmp/apache-rproxy/share/icons/layout.gif
>     /tmp/apache-rproxy/share/icons/index.gif
>     /tmp/apache-rproxy/share/icons/image3.gif
>     /tmp/apache-rproxy/share/icons/image2.gif
>     /tmp/apache-rproxy/share/icons/image1.gif
>     /tmp/apache-rproxy/share/icons/icon.sheet.gif
>     /tmp/apache-rproxy/share/icons/hand.up.gif
>     /tmp/apache-rproxy/share/icons/hand.right.gif
>     /tmp/apache-rproxy/share/icons/generic.sec.gif
>     /tmp/apache-rproxy/share/icons/generic.red.gif
>     /tmp/apache-rproxy/share/icons/generic.gif
>     /tmp/apache-rproxy/share/icons/forward.gif
>     /tmp/apache-rproxy/share/icons/folder.sec.gif
>     /tmp/apache-rproxy/share/icons/folder.gif
>     /tmp/apache-rproxy/share/icons/folder.open.gif
>     /tmp/apache-rproxy/share/icons/f.gif
>     /tmp/apache-rproxy/share/icons/dvi.gif
>     /tmp/apache-rproxy/share/icons/down.gif
>     /tmp/apache-rproxy/share/icons/dir.gif
>     /tmp/apache-rproxy/share/icons/continued.gif
>     /tmp/apache-rproxy/share/icons/compressed.gif
>     /tmp/apache-rproxy/share/icons/comp.gray.gif
>     /tmp/apache-rproxy/share/icons/comp.blue.gif
>     /tmp/apache-rproxy/share/icons/c.gif
>     /tmp/apache-rproxy/share/icons/burst.gif
>     /tmp/apache-rproxy/share/icons/broken.gif
>     /tmp/apache-rproxy/share/icons/box2.gif
>     /tmp/apache-rproxy/share/icons/box1.gif
>     /tmp/apache-rproxy/share/icons/bomb.gif
>     /tmp/apache-rproxy/share/icons/blank.gif
>     /tmp/apache-rproxy/share/icons/binhex.gif
>     /tmp/apache-rproxy/share/icons/world2.gif
>     /tmp/apache-rproxy/share/icons/ball.red.gif
>     /tmp/apache-rproxy/share/icons/ball.gray.gif
>     /tmp/apache-rproxy/share/icons/back.gif
>     /tmp/apache-rproxy/share/icons/apache_pb.gif
>     /tmp/apache-rproxy/share/icons/alert.red.gif
>     /tmp/apache-rproxy/share/icons/alert.black.gif
>     /tmp/apache-rproxy/share/icons/a.gif
>     /tmp/apache-rproxy/share/icons/README
>     /tmp/apache-rproxy/share/icons/binary.gif
>     /tmp/apache-rproxy/share/cgi-bin
>     /tmp/apache-rproxy/share/cgi-bin/test-cgi
>     /tmp/apache-rproxy/share/cgi-bin/printenv
>     /tmp/apache-rproxy/var
>     /tmp/apache-rproxy/var/logs
>     /tmp/apache-rproxy/var/run
>     /tmp/apache-rproxy/var/proxy
> 
> And then you can directly run 
> 
>     $ /tmp/apache-rproxy/sbin/apachectl start
> 
> out-of-the-box. Ok, how powerful is the configure script: Enough to provide
> all comon GNU-AutoConf options and to automatically determine all information
> from the src-tree (including the default enabled rules and modules). One can
> see the options and the determined defaults as following:
> 
> $ ./configure --help
> Usage: configure [options]
> Options: [defaults in brackets after descriptions]
> 
>  --help                print this message
>  --quiet, --silent     do not print messages
> 
>  --prefix=PREFIX       install architecture-independent files in PREFIX
>                        [/usr/local]
>  --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX
>                        [same as prefix]
>  --bindir=DIR          install user     executables in DIR  [EPREFIX/bin]
>  --sbindir=DIR         install sysadmin executables in DIR  [EPREFIX/sbin]
>  --libexecdir=DIR      install program  executables in DIR  [EPREFIX/libexec]
>  --mandir=DIR          install manual pages in DIR          [PREFIX/man]
>  --sysconfdir=DIR      install configuration files in DIR   [PREFIX/etc]
>  --datadir=DIR         install read-only  data files in DIR [PREFIX/share]
>  --localstatedir=DIR   install modifiable data files in DIR [PREFIX/var]
> 
>  --enable-rule=NAME    enable  a particular Rule named 'NAME'
>  --disable-rule=NAME   disable a particular Rule named 'NAME'
>                        [HIDE=no IRIXN32=yes IRIXNIS=no PARANOID=no SOCKS4=no]
>                        [STATUS=yes WANTHSREGEX=default]
> 
>  --enable-module=NAME  enable  a particular Module named 'NAME'
>  --disable-module=NAME disable a particular Module named 'NAME'
>                        [access=yes actions=yes alias=yes asis=yes auth=yes]
>                        [auth_anon=no auth_db=no auth_dbm=no autoindex=yes]
>                        [cern_meta=no cgi=yes digest=no dir=yes env=yes]
>                        [example=no expires=no headers=no imap=yes include=yes]
>                        [info=no log_agent=no log_config=yes log_referer=no]
>                        [mime=yes mime_magic=no negotiation=yes proxy=no]
>                        [rewrite=no setenvif=yes so=no speling=no status=no]
>                        [unique_id=no userdir=yes usertrack=no]
> 
> Because it is easier for you to test it, I bundled the four files into a
> tarball which I append uuencoded at this message.  Ok, perhaps we have to
> change or adjust some stuff to finally add this to apache-1.3 but I think it
> would be a great step further for the users...
> 
> Greetings,
>                                        Ralf S. Engelschall
>                                        rse@engelschall.com
>                                        www.engelschall.com
> 
> begin 644 ace.tar.gz
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
> "````
> `
> end

Mime
View raw message