Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 13 Feb 2004 18:41:32 +0100
From:      Alexander Haderer <alexander.haderer@charite.de>
To:        "Wayne Sierke" <ws@au.dyndns.ws>, "Kris Kennaway" <kris@obsecurity.org>
Cc:        freebsd-questions@FreeBSD.org
Subject:   RE: How to deal with package conflicts (apache)?
Message-ID:  <5.2.0.9.1.20040213180532.019e0058@postamt1.charite.de>
In-Reply-To: <KKEALCNDCMLKCEEMOEDLGEBKCAAA.ws@au.dyndns.ws>
References:  <20040209072343.GA3277@xor.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
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



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5.2.0.9.1.20040213180532.019e0058>