p5-Apache-DBI 'make package' dependency strangeness

Scot Hetzel swhetzel at gmail.com
Wed Sep 27 07:29:23 PDT 2006


> I know there's magic that almost gets it right, because it was finding
> my apache-2.2.3 dependency before (when I didn't specify APACHE_PORT),
> but was trying to add an apache20 or apache13 dependency as well.
>
> Speaking of APACHE_PORT...  Is it documented somewhere that that's the
> variable needed for this stuff?  It's not in the hints in
> /usr/ports/Mk/bsd.apache.mk, and what I do see implies that
> setting APACHE_VERSION to 22 should DTRT.
>
The reason why Apache 2.0 port is appearing in your dependancy list is
because of the way the p5-Apache-DBI Makefile is written.  If you look
at bsd.apache.mk, and look at this section of code:

.elif ${USE_APACHE:C/\.//:C/\+//:M[12][3210]} != ""
AP_PORT_IS_MODULE=	YES

#### for backward compatibility
.elif ${USE_APACHE:L} == yes
.   if defined(WITH_APACHE2)
APACHE_PORT?=	www/apache20
.   else
APACHE_PORT?=	www/apache13
.   endif
APXS?=			${LOCALBASE}/sbin/apxs
.if !defined(APACHE_COMPAT)
BUILD_DEPENDS+=	${APXS}:${PORTSDIR}/${APACHE_PORT}
RUN_DEPENDS+=	${APXS}:${PORTSDIR}/${APACHE_PORT}
.endif
#### End of backward compatibility

When WITH_APACHE2 is defined, it sets the dependancy to the
www/apache20 port, because it has defined APACHE_PORT, even though the
APACHE_PORT variable gets overriden latter in bsd.apache.mk by the
check for the currently installed apache port.

To solve the problem in the p5-APACHE-DBI, you need to take a hint
from the mod_perl2 port to define USE_APACHE=2.0+.

If the current code in the p5-Apache-DBI port is changed to:

.if defined(WITH_MODPERL2)
USE_APACHE= 2.0+
RUN_DEPENDS+=	${SITE_PERL}/${PERL_ARCH}/mod_perl2.pm:${PORTSDIR}/www/mod_perl2
.else
USE_APACHE= yes
RUN_DEPENDS+=	${SITE_PERL}/${PERL_ARCH}/mod_perl.pm:${PORTSDIR}/www/mod_perl
.endif

.include <bsd.port.pre.mk>

Then to build the port for mod_perl2, you just build it as:

make -DWITH_MODPERL2

Also setting APACHE_VERSION=22 does nothing, as it gets overriden in
bsd.apache.mk.

Scot


More information about the freebsd-ports mailing list