Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 19 Dec 2016 20:25:36 +0100
From:      Matthieu Volat <mazhe@alkumuna.eu>
To:        Baptiste Daroussin <bapt@FreeBSD.org>
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>

next in thread | previous in thread | raw e-mail | index | archive | help
--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 <bapt@FreeBSD.org> 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 (<optionname>_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 <mazhe@alkumuna.eu>


--Sig_/55IvT7AadSiNRLflOLxfsnX
Content-Type: application/pgp-signature
Content-Description: OpenPGP digital signature

-----BEGIN PGP SIGNATURE-----

iF0EARECAB0WIQTxuiqPSkQnzRDOjsP4Q0N5gpmLfgUCWFg0MAAKCRD4Q0N5gpmL
fs5UAJ4kyQUOOKNse74hNS2l7DAH7yywUwCeKfNp6Z4C36fKm9ZBm7NP918m5R0=
=PKBp
-----END PGP SIGNATURE-----

--Sig_/55IvT7AadSiNRLflOLxfsnX--



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