apache vs autoconf 2.60

Jakub Bogusz qboosh at pld-linux.org
Fri Oct 13 21:40:51 CEST 2006


apache suffers from some problem with autoconf 2.60 related to expansion
of path variables passed in layout file.

config_vars.mk made by configure generated by autoconf 2.59 contains
(ac-amd64, so with lib64):

bindir = /usr/bin
sbindir = /usr/sbin
cgidir = ${prefix}/lib/cgi-bin/apache
logfiledir = /var/log/httpd
exec_prefix = /usr
datadir = /home/services/httpd
localstatedir = /var
mandir = /usr/share/man
libdir = /usr/lib64
libexecdir = /usr/lib64/apache
htdocsdir = ${datadir}/html
manualdir = ${datadir}/manual
includedir = /usr/include/apache
errordir = ${datadir}/error
iconsdir = ${datadir}/icons
sysconfdir = /etc/httpd
installbuilddir = ${libexecdir}/build
runtimedir = /var/run
proxycachedir = /var/cache/httpd
other_targets = suexec
progname = httpd.prefork
prefix = /usr

and made by configure generated by autoconf 2.60:

bindir = ${exec_prefix}/bin
sbindir = ${exec_prefix}/sbin
cgidir = ${prefix}/lib/cgi-bin/apache
logfiledir = /var/log/httpd
exec_prefix = ${prefix}
datadir = /home/services/httpd
localstatedir = /var/lib/httpd
mandir = /usr/share/man
libdir = ${exec_prefix}/lib
libexecdir = ${libdir}/apache
htdocsdir = ${datadir}/html
manualdir = ${datadir}/manual
includedir = ${prefix}/include/apache
errordir = ${datadir}/error
iconsdir = ${datadir}/icons
sysconfdir = /etc/httpd
installbuilddir = ${libexecdir}/build
runtimedir = /var/run
proxycachedir = /var/cache/httpd
other_targets = suexec
progname = httpd.prefork
prefix = /usr

In the second case apxs have some problems when querying for paths:

$ /usr/sbin/apxs -q libdir
Use of uninitialized value in concatenation (.) or string at /usr/sbin/apxs line 237.
/usr/lib

$ /usr/sbin/apxs -q libexecdir
Use of uninitialized value in concatenation (.) or string at /usr/sbin/apxs line 237.
Use of uninitialized value in concatenation (.) or string at /usr/sbin/apxs line 237.


(the answer is the third line, i.e. empty string; it breaks build of e.g.
libapreq2 or subversion)

Also, with autoconf 2.60 libdir (and thus libexecdir) is expanded using
only PLD layout file, i.e. using libdir=${exec_prefix}/lib, so on
x86_64 apache installs in /usr/lib/apache and package doesn't even build.
With autoconf 2.59 libdir setting from PLD layout is ignored.

What to do?
IMO the simplest way to resolve it is to use absolute paths in all
variables in PLD layout and use sed to change /lib into /{_lib} at %prep
stage. Any better ideas?


-- 
Jakub Bogusz    http://qboosh.cs.net.pl/


More information about the pld-devel-en mailing list