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>