From owner-freebsd-ports@FreeBSD.ORG Fri Aug 5 07:36:18 2005 Return-Path: X-Original-To: freebsd-ports@freebsd.org Delivered-To: freebsd-ports@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id A9CBB16A41F for ; Fri, 5 Aug 2005 07:36:18 +0000 (GMT) (envelope-from vd@datamax.bg) Received: from jengal.datamax.bg (jengal.datamax.bg [82.103.104.21]) by mx1.FreeBSD.org (Postfix) with ESMTP id 35CD943D4C for ; Fri, 5 Aug 2005 07:36:18 +0000 (GMT) (envelope-from vd@datamax.bg) Received: from sinanica.bg.datamax (sinanica.bg.datamax [192.168.10.1]) by jengal.datamax.bg (Postfix) with QMQP id 3111787C8; Fri, 5 Aug 2005 10:36:17 +0300 (EEST) Received: (nullmailer pid 62751 invoked by uid 1004); Fri, 05 Aug 2005 07:36:17 -0000 Date: Fri, 5 Aug 2005 10:36:17 +0300 From: Vasil Dimov To: Adam Weinberger Message-ID: <20050805073617.GB60681@sinanica.bg.datamax> References: <20050805070513.GA60681@sinanica.bg.datamax> <42F310D2.7020200@magnesium.net> Mime-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="ADZbWkCsHQ7r3kzd" Content-Disposition: inline In-Reply-To: <42F310D2.7020200@magnesium.net> X-OS: FreeBSD 5.4-STABLE User-Agent: Mutt/1.5.9i Cc: freebsd-ports@freebsd.org Subject: Re: The right way to depend on a package's extra feature X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: vd@datamax.bg List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Aug 2005 07:36:18 -0000 --ADZbWkCsHQ7r3kzd Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Fri, Aug 05, 2005 at 03:10:10AM -0400, Adam Weinberger wrote: > Vasil Dimov wrote: > >Hi list, > > > >What it the right way to make a port that depends on other port, but > >that other port must be built with some extra feature? > > > >For example, imagine we have port "A" that installs > >/foo/bar/great_feature only if it is build with > >'make WITH_GREAT_FEATURE=3Dyes' > > > >Then we have port "B" that happens to depend on /foo/bar/great_feature. > > > >You see, there are two problems here: > > > >1. We cannot pass WITH_GREAT_FEATURE=3Dyes via the RUN_DEPENDS technolog= y, > > only the target may be specified: RUN_DEPENDS=3D/file:portdir:target > > needed command: make -C portdir WITH_GREAT_FEATURE=3Dyes target > > > >2. Port A may have already been installed without WITH_GREAT_FEATURE=3Dy= es > > This will cause make WITH_GREAT_FEATURE=3Dyes install in A's dir to f= ail > > with error "already installed" > > needed command: portupgrade -f -m WITH_GREAT_FEATURE=3Dyes /var/db/pk= g/A > > (huh! we used portupgrade, not very nice...) > > > >Any suggestions? Did I miss something? >=20 > I have that same problem with deskutils/gourmet. It needs a metakit=20 > built with python support, but python support is disabled by default.=20 > You can see what I've done as a kludge in deskutils/gourmet/Makefile,=20 > but the best solution would be to separate metakit into a master/slave > port thing so you can just depend on metakit-python and be done with it. >=20 > Does this parallel your situation any? >=20 Yes, but I am looking for solution that: * does not change the port we depend on (in your case metakit) * does not devolve the flow-control to the user saying "I cannot manage with this situation, you have to do manually this and this". --ADZbWkCsHQ7r3kzd Content-Type: application/pgp-signature Content-Disposition: inline -----BEGIN PGP SIGNATURE----- iD8DBQFC8xbwFw6SP/bBpCARAlgVAKCDkHpb1V55vhGRhQLmocOMlf448gCgv8uQ luxp66edevM/VkVZOlpRg1g= =cYYd -----END PGP SIGNATURE----- --ADZbWkCsHQ7r3kzd--