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 Sun, 22 Mar 1998 14:51:38 GMT

In article <Pine.LNX.3.96.980322133301.30871C-100000@ecstasy.localnet> you wrote:
> On Sat, 21 Mar 1998, Ralf S. Engelschall wrote:

>> 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.

> Yes, this is better. -d now works fine.

> However I am still worried about the use of the non-compatible directories
> by default. A 'principle of least astonishment' would lead me to expect
> that
>   ./configure --enable-shared=max

> would give me something like the current arrangement of directories. 
> However it doesn't. 

Sure, the default is a GNU-conforming layout because this one fits better for
the usual installation under /usr/local or other non-private paths.  Because
the old Apache layout with conf, htdocs, etc. is only useful for private
subtrees. For this --compat is here which uses /usr/local/apache (a private
subtree) as prefix and there the prorprietary subdirs are no problem.

But no one except us would expect the Apache layout when using a
Autoconf-style "configure script! So, --compat should be not the default, it
should be enabled manually.

> For example, sysconfdir becomes "etc/apache". Even
> with --sysconfdir=conf, it is "conf/apache". 

With --compat this is not the case. The /apache suffix is because the default
prefix is /usr/local.

> I think I would much prefer
> it if the out-of-the-box behaviour was to use a directory structure that
> is already familiar for Apache users. The options to configure give
> everybody enough flexibility to pick exactly the kind of directory
> configuration that they want. Arrangements of directories varies greatly
> between different systems, and between different people. The use of
> "libexec", "sbin", "var/run", etc, are not universal. 

> In short, I'd like --compat to be enabled by default.

No, as mentioned below a script named "configure" should provide the expected
behaviour of path layout and not the Apache-one.  BUT THE FOLLOWING IS GOOD
POINT:

> Finally, even with --compat you get

>   -DDEFAULT_PIDLOG="/usr/local/apache/run/httpd.pid"
>   -DDEFAULT_SCOREBOARD="/usr/local/apache/run/httpd.scoreboard"
>   -DDEFAULT_LOCKFILE="/usr/local/apache/run/httpd.lock"

> I think the "run" should be "logs" for compatibility. 

Yeah, APACI should treat the localstatedir the same way as sysconfdir, i.e.
try to remove the prefix to get relative paths.  And I've added now support
for the run/logs subdirs. 

With the current APACI, I've added a --display-layout test and debug option
which now gives the following:

1. The GNU-conforming way anybody familiar with "configure"-type
   scripts expects:

    | :> ./configure --display-layout 
    | Configuring for Apache, Version 1.3b6-dev
    | 
    | Installation paths:
    |                prefix: /usr/local
    |           exec_prefix: /usr/local
    |                bindir: /usr/local/bin
    |               sbindir: /usr/local/sbin
    |            libexecdir: /usr/local/libexec
    |                mandir: /usr/local/man
    |            sysconfdir: /usr/local/etc/apache
    |               datadir: /usr/local/share/apache
    |         localstatedir: /usr/local/var/apache
    | 
    | Compilation paths:
    |            HTTPD_ROOT: /usr/local
    |            SUEXEC_BIN: /usr/local/sbin/suexec
    |        DEFAULT_PIDLOG: var/apache/run/httpd.pid
    |    DEFAULT_SCOREBOARD: var/apache/run/httpd.scoreboard
    |      DEFAULT_LOCKFILE: var/apache/run/httpd.lock
    |       DEFAULT_XFERLOG: var/apache/logs/access_log
    |      DEFAULT_ERRORLOG: var/apache/logs/error_log
    |     TYPES_CONFIG_FILE: etc/apache/mime.types
    |    SERVER_CONFIG_FILE: etc/apache/httpd.conf
    |    ACCESS_CONFIG_FILE: etc/apache/access.conf
    |  RESOURCE_CONFIG_FILE: etc/apache/srm.conf

2. When using a private installation tree, the paths
   getting simpler (of course):

    | :> ./configure --display-layout --prefix=/usr/local/apache
    | Configuring for Apache, Version 1.3b6-dev
    | 
    | Installation paths:
    |                prefix: /usr/local/apache
    |           exec_prefix: /usr/local/apache
    |                bindir: /usr/local/apache/bin
    |               sbindir: /usr/local/apache/sbin
    |            libexecdir: /usr/local/apache/libexec
    |                mandir: /usr/local/apache/man
    |            sysconfdir: /usr/local/apache/etc
    |               datadir: /usr/local/apache/share
    |         localstatedir: /usr/local/apache/var
    | 
    | Compilation paths:
    |            HTTPD_ROOT: /usr/local/apache
    |            SUEXEC_BIN: /usr/local/apache/sbin/suexec
    |        DEFAULT_PIDLOG: var/run/httpd.pid
    |    DEFAULT_SCOREBOARD: var/run/httpd.scoreboard
    |      DEFAULT_LOCKFILE: var/run/httpd.lock
    |       DEFAULT_XFERLOG: var/logs/access_log
    |      DEFAULT_ERRORLOG: var/logs/error_log
    |     TYPES_CONFIG_FILE: etc/mime.types
    |    SERVER_CONFIG_FILE: etc/httpd.conf
    |    ACCESS_CONFIG_FILE: etc/access.conf
    |  RESOURCE_CONFIG_FILE: etc/srm.conf

3. And finally the Apache-1.2 layout which should
   be now really backward compatible:

    | :> ./configure --display-layout --compat
    | Configuring for Apache, Version 1.3b6-dev
    | 
    | Installation paths:
    |                prefix: /usr/local/apache
    |           exec_prefix: /usr/local/apache
    |                bindir: /usr/local/apache/bin
    |               sbindir: /usr/local/apache/bin
    |            libexecdir: /usr/local/apache/bin
    |                mandir: /usr/local/apache/man
    |            sysconfdir: /usr/local/apache/conf
    |               datadir: /usr/local/apache
    |         localstatedir: /usr/local/apache
    | 
    | Compilation paths:
    |            HTTPD_ROOT: /usr/local/apache
    |            SUEXEC_BIN: /usr/local/apache/bin/suexec
    |        DEFAULT_PIDLOG: logs/httpd.pid
    |    DEFAULT_SCOREBOARD: logs/httpd.scoreboard
    |      DEFAULT_LOCKFILE: logs/httpd.lock
    |       DEFAULT_XFERLOG: logs/access_log
    |      DEFAULT_ERRORLOG: logs/error_log
    |     TYPES_CONFIG_FILE: conf/mime.types
    |    SERVER_CONFIG_FILE: conf/httpd.conf
    |    ACCESS_CONFIG_FILE: conf/access.conf
    |  RESOURCE_CONFIG_FILE: conf/srm.conf

Is this a compromise? I know that you want the point (3) the default but I
really think this is not the baviour what people expect from a Autoconf-style
"configure" script. Of course, we can rename --compat to something less
negative. Any suggestions? --apache-paths? --apache12? 

Either way, thanks for your feedback, Paul.

I've uploaded the current APACI to ftp.apache.org for more tests.

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

Mime
View raw message