[ports-amd64@pointyhat-west.isc.freebsd.org: ap13-mod_bandwidth-2.1.0 failed on amd64 7.4-release]

olli hauer ohauer at gmx.de
Tue Jan 18 20:25:16 UTC 2011


On 2011-01-18 00:04, Philip M. Gollucci wrote:
> If the only source of the .c is clement and he is not active, then I'd
> say upstream is gone.  I'd be tempted to mark it deprecated/expires.
> 
> However, if this works, I'm fine with it too.
> 
>>  post-install:
>> +       @${ECHO} "@unexec ${SED} -i '' '/AddModule mod_bandwidth.c/d'
>> %D/etc/apache/httpd.conf" >> ${TMPPLIST}
>>         @${INSTALL_SCRIPT} ${WRKSRC}/cleanlink.pl ${LOCALBASE}/sbin
> Why did the pkg-plist change ?  There's better ways to do this anyway,
> see the other mod_ ports in www/.
> 

Hm, lets take a look what happened with apache13 httpd.conf if we install
a module (for apache20/22 you have already fixed a similar issue PR 133704)

Maybe I'm wrong since I haven't used apache13 for the last five years ...


We do a fresh apache13 install

# diff -u1s /usr/local/etc/apache/httpd.conf /usr/local/etc/apache/httpd.conf-dist
Files /usr/local/etc/apache/httpd.conf and /usr/local/etc/apache/httpd.conf-dist
are identical


Now we install for example mod_bandwidth or a random other "mod_*" port.

# diff -u1s /usr/local/etc/apache/httpd.conf /usr/local/etc/apache/httpd.conf-dist
--- /usr/local/etc/apache/httpd.conf
+++ /usr/local/etc/apache/httpd.conf-dist
@@ -237,3 +237,2 @@
 LoadModule setenvif_module    libexec/apache/mod_setenvif.so
-#LoadModule bandwidth_module   libexec/apache/mod_bandwidth.so

@@ -277,3 +276,2 @@
 AddModule mod_setenvif.c
-#AddModule mod_bandwidth.c


OK, the module directives are added to the httpd.conf, now we will deinstall the
module.

# make deinstall
# diff -u1s /usr/local/etc/apache/httpd.conf /usr/local/etc/apache/httpd.conf-dist
--- /usr/local/etc/apache/httpd.conf
+++ /usr/local/etc/apache/httpd.conf-dist
@@ -276,3 +276,2 @@
 AddModule mod_setenvif.c
-#AddModule mod_bandwidth.c


Bingo, we have a leftover in httpd.conf.
The leftover will not be shown in tinderbox since the following line exists in
"tinderbox/scripts/lib/buildscript"

cat > /tmp/mtree.(pre|build)exclude <<EOF
...
./${L}/etc/apache
...
EOF


Now lets take a look into bsd.apache.mk.
If we add the following line, then I suspect we can remove the exclude
directives in tinderbox.
(The issue is present for every port which installs a module to apache13)

# diff -u5 bsd.apache.mk.orig bsd.apache.mk
--- bsd.apache.mk.orig
+++ bsd.apache.mk
@@ -393,10 +393,11 @@
 ap-gen-plist:
 .if defined(AP_GENPLIST)
 .   if !exists(${PLIST})
        @${ECHO} "===>  Generating apache plist"
        @${ECHO} "@unexec ${SED} -i '' '/LoadModule %%AP_NAME%%_module/d'
%D/%%APACHEETCDIR%%/httpd.conf" >> ${PLIST}
+       @${ECHO} "@unexec ${SED} -i '' '/AddModule mod_%%AP_NAME%%.c/d'
%D/%%APACHEETCDIR%%/httpd.conf" >> ${PLIST}
        @${ECHO} "%%APACHEMODDIR%%/%%AP_MODULE%%" >> ${PLIST}
        @${ECHO} "@exec %D/sbin/apxs -e -A -n %%AP_NAME%% %D/%F" >> ${PLIST}
        @${ECHO} "@unexec echo \"Don't forget to remove all
${MODULENAME}-related directives in your httpd.conf\"">> ${PLIST}
 .   endif
 .else


Let's fix it manually.
# sed -i '' '/AddModule mod_bandwidth.c/d' /usr/local/etc/apache/httpd.conf
# diff -u1s /usr/local/etc/apache/httpd.conf /usr/local/etc/apache/httpd.conf-dist
Files /usr/local/etc/apache/httpd.conf and /usr/local/etc/apache/httpd.conf-dist
are identical


Now you know the reason I fixed this with the additional line in TMPPLIST.
I don't know if the build clusters have the same exclude directives like
tinderbox, and I can only
test with clean VM's at the moment since my tinderbox machine is broken.

--
Regards,
olli


More information about the freebsd-apache mailing list