How to deal with package conflicts (apache)?
Alexander Haderer
alexander.haderer at charite.de
Fri Feb 13 09:40:31 PST 2004
At 03:21 14.02.2004 +1030, Wayne Sierke wrote:
>Kris Kennaway wrote:
> > On Mon, Feb 09, 2004 at 05:24:32PM +1030, W. Sierke wrote:
> > > How should I deal with package conflicts such as
> > > apache13/apache13-mod_ssl...
> > >
> > > I've installed apache13-mod_ssl but a couple of other ports I want
>to
> > > install want apache13 (specifically apache-1.3.29_1) which
> > complains of a
> > > package conflict (with apache+mod_ssl-1.3.29+2.8.16) so I'll
> > have to force
> > > the installation. Is there a way of convincing the new packages that
> > > apache13-mod_ssl is an adequate substitute for apache13?
> >
> > Set the APACHE_PORT variable (to www/apachewhatever) in
> > /etc/make.conf. This will only work with ports, not packages, for
> > which one can only use the default settings.
>
>Ok, does it matter that the port I want to install doesn't have any
>references to APACHE_PORT in its Makefile? Grepping through /usr/ports I
>can see that many ports do, but the port I want to install
>(mail/squirrelmail) doesn't.
If squirrelmail has a direct dependecy like BUILD_DEPEND=...www/apache13
then it does matter. If squirrelmail depends on other ports that have this
kind of dependency then it does matter too, if these other ports have their
dependency set via APACHE_PORT then it does not matter.
Here we had a similar problem with apache13 packages: We have different
setups for workstations/servers, some have mod_ssl apache some have
apache13 only. All setup is done via packages, not ports. We have a compile
workstation that creates the packages to install. Our solution: Ports may
have subversions, which allows dependend packages to refer to the port and
accept all subversions as a valid dependency (with a warning). Example: You
can install the popular postgresql database either as server or as client
only. All deps to postgres client will be fullfilled by both packages.
To build mod-ssl apache13 package as a "variant" of the apache13 I renamed
www/apache13-modssl to www/apache13 (necessary for pkg-database) and
modified the Makefile like this:
diff Makefile.orig Makefile
8,9c8,9
< PORTNAME= apache+mod_ssl
< PORTVERSION= ${VERSION_APACHE}+${VERSION_MODSSL}
---
> PORTNAME= apache
> PORTVERSION= ${VERSION_APACHE}
16a17
> PKGNAMESUFFIX= -modssl
The last line make the variant of apache13: apache13-modssl.
Well, this is of course a hack, because modifications of the ports usually
are not such a good idea: If you cvsup all modifications will be lost. Our
focus was to have precompiled packages for automated setup. We modified the
ports Makefiles because we believe that we know what we are doing (and
others will know better and roll the eyes :-). Most probably there is a
better solution for this scenario but I didn't found one and I wanted to
learn more about the ports system so I did it this way.
Alexander
More information about the freebsd-questions
mailing list