From owner-freebsd-ports@freebsd.org Mon Dec 19 19:25:54 2016 Return-Path: Delivered-To: freebsd-ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 703D2C88DCA for ; Mon, 19 Dec 2016 19:25:54 +0000 (UTC) (envelope-from mazhe@alkumuna.eu) Received: from mailman.ysv.freebsd.org (mailman.ysv.freebsd.org [IPv6:2001:1900:2254:206a::50:5]) by mx1.freebsd.org (Postfix) with ESMTP id 563AB1BBD for ; Mon, 19 Dec 2016 19:25:54 +0000 (UTC) (envelope-from mazhe@alkumuna.eu) Received: by mailman.ysv.freebsd.org (Postfix) id 558E5C88DC9; Mon, 19 Dec 2016 19:25:54 +0000 (UTC) Delivered-To: ports@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 5533EC88DC7 for ; Mon, 19 Dec 2016 19:25:54 +0000 (UTC) (envelope-from mazhe@alkumuna.eu) Received: from smtp1-g21.free.fr (smtp1-g21.free.fr [212.27.42.1]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id A584A1BBC; Mon, 19 Dec 2016 19:25:53 +0000 (UTC) (envelope-from mazhe@alkumuna.eu) Received: from yggdrasil.alkumuna.eu (unknown [IPv6:2a01:e35:8a74:6e70:232:36ff:fe5c:3a87]) by smtp1-g21.free.fr (Postfix) with ESMTPS id 2FF9CB003E4; Mon, 19 Dec 2016 20:25:41 +0100 (CET) Received: from freedom.alkumuna.eu ([IPv6:2a01:e35:8a74:6e70:62a4:4cff:fe54:b212]) (authenticated bits=0) by yggdrasil.alkumuna.eu (8.15.2/8.15.2) with ESMTPSA id uBJJPbXi022169 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT); Mon, 19 Dec 2016 20:25:40 +0100 (CET) (envelope-from mazhe@alkumuna.eu) Date: Mon, 19 Dec 2016 20:25:36 +0100 From: Matthieu Volat To: Baptiste Daroussin Cc: ports@FreeBSD.org Subject: Re: HEADSUP: FLAVORS (initial version) and subpackages proposals Message-ID: <20161219202536.2d0a1955@freedom.alkumuna.eu> In-Reply-To: <20161219003143.c2qo5wn3a5kiua3m@ivaldir.etoilebsd.net> References: <20161219003143.c2qo5wn3a5kiua3m@ivaldir.etoilebsd.net> X-Mailer: Claws Mail 3.14.1 (GTK+ 2.24.29; amd64-portbld-freebsd11.0) MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; boundary="Sig_/55IvT7AadSiNRLflOLxfsnX"; protocol="application/pgp-signature" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=alkumuna.eu; s=default; t=1482175540; bh=V3OHNVZodZ1V65Ew9oBzj/LdKER3XoBNsZXqWOhfKOI=; h=Date:From:To:Cc:Subject:Message-ID:In-Reply-To:References:MIME-Version:Content-Type; b=juiqhkqPa/uMUL/qMqA5nBjXIo0c1r2THXzj26cRwI9Z5osOvTmHoK8W1pWAxYLgr9rWjMHaRbk4vzNmFxHSUZiUNqeVPieR2Vt0j3MperkalLWtnDhTBWQqj0xYDZuFUBqnQ2kMrLisnkkA8X78CvujkpqPkTHgZ1iySxbC4pE= X-BeenThere: freebsd-ports@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Porting software to FreeBSD List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 19 Dec 2016 19:25:54 -0000 --Sig_/55IvT7AadSiNRLflOLxfsnX Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable On Mon, 19 Dec 2016 01:31:43 +0100 Baptiste Daroussin wrote: > Hi all, >=20 > I have been working for a while on 2 long standing feature request for th= e ports > tree: flavors and subpackages. >=20 > For flavors I would like to propose a simple approach first which is more= like a > rework of the slave ports for now: >=20 > Examples available here: > https://reviews.freebsd.org/D8840 (with the implementation) > and > https://reviews.freebsd.org/D8843 >=20 > Design: introduce a 3rd level in the hierarchy and make it work a bit lik= e slave > ports >=20 > pros: > - all slave ports are self hosted under the same directory: easier for > maintenance > - should work with all existing tools >=20 > cons: > - hackish: it is not really much more than a slave port > - it adds plenty of new Makefiles :( >=20 > I think anyway this is an improvement >=20 > Next step after that is in would be to extend it to allow some dependency= on "I > depend on whatever flavor if port X" >=20 > Subpackages: > Design: > Add a new macro MULTI_PACKAGES > flag plist with an @pkg{suffixofthesubpackage} file > the framework will split the plist into small plist and create all the pa= ckages > All variables like COMMENT can be overridden with a COMMENT_${suffixofthe= subpackage} >=20 > pros: > - simple and working almost now > - allow to simplify lots of ports > - options friendly (_PACKAGE automatically appends a new entr= y to > MULTI_PACKAGES) >=20 > cons: > - will break the paradigm that certain tools depend on (portmaster/portup= grade > in particular are a huge problem since they are not actively maintained) >=20 > Example of the usage: > https://people.freebsd.org/~bapt/multipackage.diff >=20 > Note that I took the mpg123 as an example because it was a simple one to = test > not because it may need subpackages >=20 > As a result you build 3 packages: > mpg123 (the runtime tools) > mpg123-lib: the runtime libraries > mpg123-sndio: the sndio plugin >=20 > LIB_DEPENDS on ports depending on libmpg123.so does not have to be change= d, the > framework already automatically register only the mpg123-lib as a depende= ncy and > not others. >=20 > Not the example is missing one thing: a dependency between mpeg123-lib and > mpg123 >=20 > The second is not ready yet and would take time to land >=20 > Any comment? >=20 > Best regards, > Bapt Does this approach would manage a file that differ between flavors? Let's s= ay there a libfoo.so file that behave differently wheter an option A is sel= ected or not, but is still present in both cases.=20 On another note, I kinda liked the macports approach to use the "+" separat= or regarding naming flavors/options, it allows to better distinguish what i= n the package name and what are the selected options, and handled itself qu= ite well with multiple instances, like "vim+nls+python+x11"... Did you cons= ider something like that? --=20 Matthieu Volat --Sig_/55IvT7AadSiNRLflOLxfsnX Content-Type: application/pgp-signature Content-Description: OpenPGP digital signature -----BEGIN PGP SIGNATURE----- iF0EARECAB0WIQTxuiqPSkQnzRDOjsP4Q0N5gpmLfgUCWFg0MAAKCRD4Q0N5gpmL fs5UAJ4kyQUOOKNse74hNS2l7DAH7yywUwCeKfNp6Z4C36fKm9ZBm7NP918m5R0= =PKBp -----END PGP SIGNATURE----- --Sig_/55IvT7AadSiNRLflOLxfsnX--