httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From r..@engelschall.com (Ralf S. Engelschall)
Subject Re: APACI 980313: Give it a try
Date Sat, 21 Mar 1998 18:42:26 GMT

In article <Pine.LNX.3.96.980321174857.18192B-100000@ecstasy.localnet> you wrote:
> On Fri, 13 Mar 1998, Ralf S. Engelschall wrote:

>[...]
> But there is one thing I don't like. It always sets SERVER_CONFIG_FILE to
> an absolute path. I like to build Apache with a particular prefix, then
> run it with multiple server roots with -d. Setting SERVER_CONFIG_FILE to
> an absolute path means that -d does not work. I think sysconfdir should
> default to the current value, "conf", for maximum compatibility and so -d
> works again. Perhaps there could be a test in configure to see if the user
> is trying to set --sysconfdir, and if _not_, do not define
> {SERVER,TYPES,ACCESS,RESOURCE}_CONFIG_FILE in the build. 

OK, because sysconfdir is for maximum flexibility and is needed as an absolute
path under "make install", directly changing this variable is not very useful.
So, I've now added a trick: `sysconfdir' is used as in the past as an absolute
path. But the {SERVER,TYPES,ACCESS,RESOURCE}_CONFIG_FILE variables are now set
to `sysconfdir_compile' which is `sysconfdir' if `sysconfdir' is not under
`prefix' (perhaps the case when the user manually sets it) or
`sysconfdir_compile' is `sysconfdir' where the prefix `prefix' is removed (the
usual case). This way we have both, I think.  The user can use
--sysconfdir=ANYPATH for maximum flexibility and when ANYPATH _is_ somewhere
under `prefix' the compiled in path is a relative on.

In other words: When you for instance you 

  $ ./configure --compat

you exactly get the old structure where prefix=/usr/local/apache, the config
files are under /usr/local/apache/conf/ and the config directory
(`sysconfdir_compile' in APACI) is compiled in as just "conf". Bingo.

Even for the non-compat case where you use 

  $ ./configure --prefix=/somewhere

you then get prefix=/somewhere, sysconfdir=/somewhere/etc and
sysconfdir_compile=etc. Also the combination is possible:

  $ ./configure --compat --prefix=/somewhere

This way the old structure is used under /somewhere: prefix=/somewhere,
sysconfdir=/somewhere/conf and sysconfdir_compile=conf.

Try it out and give more feedback, Paul.  Perhaps my trick is not really
enough or you want a slightly different approach. I've now uploaded
apaci-980321.tar.gz to ftp.apache.org which includes this change.

                                       Ralf S. Engelschall
                                       rse@engelschall.com
                                       www.engelschall.com

Mime
View raw message