Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 17 Dec 2023 21:11:05 +0100
From:      Luca Pizzamiglio <pizzamig@freebsd.org>
To:        FreeBSD Ports mailing list <freebsd-ports@freebsd.org>
Subject:   Fwd: Support for subpackages in the portstree is going to land soon!
Message-ID:  <CAB88xy96xa-rXnfdwk9Tjcs%2BpHLiXXOPmpSqQmS=Gk1vVF-sLg@mail.gmail.com>
In-Reply-To: <CAB88xy_p2L7oveeKiVkoLkcG_2hbGz0=_PfvR80%2B3twsZYwaWg@mail.gmail.com>
References:  <CAB88xy_p2L7oveeKiVkoLkcG_2hbGz0=_PfvR80%2B3twsZYwaWg@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--000000000000feca5b060cba3bd4
Content-Type: text/plain; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

---------- Forwarded message ---------
From: Luca Pizzamiglio <pizzamig@freebsd.org>
Date: Sat, Dec 16, 2023 at 7:36=E2=80=AFPM
Subject: Support for subpackages in the portstree is going to land soon!
To: developers <developers@freebsd.org>


Hi everyone.

It's with pleasure that we are announcing that soon the portstree will
support subpackages.

Subpackage is the feature to create multiple packages from one port.
There has been a lighting talk at EuroBSD 2023 (
https://youtu.be/e-FUYbGNdBg?t=3D824) introducing the topic.
While this feature is used in many Linux distro to split packages (i.e.
-docs, -srcs, -devel, -man or similar), this is *not* the intended goal we
have.
Our primary goal is to get rid of ports that are currently compiled
separately in order to be packaged separately. Examples are php modules or
qt libraries, currently using the so called master/slave port approach.
Build time will benefit from it. The slave ports will become subpackages of
the master port (we can keep the build optional via OPTIONS).
This doesn't mean that all ports based on master/slave need to adopt
subpackages, there will be situations where it won't be possible.

We want to merge the feature in the framework now (end of the year), but
adopt it in ports slowly over the next quarters. To limit the adoption, we
will deploy a git hook server-side to request approval from portmgr before
introducing subpackages for specific ports.
While poudriere (3.4.x) already supports subpackages, other tools don't,
and we want to give time to their maintainer to add support.
The slow adoption will also allow us to catch problems one at a time and
fix them.

The patch is available for review here: https://reviews.freebsd.org/D40549
This implementation is heavily based on mat@ (7 years) old implementation (
https://reviews.freebsd.org/D16457)

We don't have documentation yet, but another patch (
https://reviews.freebsd.org/D43079) containing two fake ports, used to
build and test this feature. They provide the best example of how
subpackages would look like and they will be used to write the
documentation.

The roadmap
* successful EXP-RUN to not introduce regressions (
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D275735#h0)
* add a git hook server-side to allow only controlled adoption
* merge the support of subpackages in the portstree (before 2023.12.31)
* prepare and update the handbook
* success!

There will be a lot of questions, I will answer to all of them, but give me
some time, I could be AFK from time to time during holiday season.

Best regards,
pizzamig on behalf of portmgr

--000000000000feca5b060cba3bd4
Content-Type: text/html; charset="UTF-8"
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><br><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=
=3D"gmail_attr">---------- Forwarded message ---------<br>From: <b class=3D=
"gmail_sendername" dir=3D"auto">Luca Pizzamiglio</b> <span dir=3D"auto">&lt=
;<a href=3D"mailto:pizzamig@freebsd.org">pizzamig@freebsd.org</a>&gt;</span=
><br>Date: Sat, Dec 16, 2023 at 7:36=E2=80=AFPM<br>Subject: Support for sub=
packages in the portstree is going to land soon!<br>To: developers &lt;<a h=
ref=3D"mailto:developers@freebsd.org">developers@freebsd.org</a>&gt;<br></d=
iv><br><br><div dir=3D"ltr"><div>Hi everyone.<br><br></div><div>It&#39;s wi=
th pleasure that we are announcing that soon the portstree will support sub=
packages.</div><div><br></div><div>Subpackage is the feature to create mult=
iple packages from one port.</div><div>There has been a lighting talk at Eu=
roBSD 2023 (<a href=3D"https://youtu.be/e-FUYbGNdBg?t=3D824" target=3D"_bla=
nk">https://youtu.be/e-FUYbGNdBg?t=3D824</a>) introducing the topic.<br></d=
iv><div>While this feature is used in many Linux distro to split packages (=
i.e. -docs, -srcs, -devel, -man or similar), this is <b>not</b> the intende=
d goal we have.<br></div><div>Our primary goal is to get rid of ports that =
are currently compiled separately in order to be packaged separately. Examp=
les are php modules or qt libraries, currently using the so called master/s=
lave port approach. Build time will benefit from it. The slave ports will b=
ecome subpackages of the master port (we can keep the build optional via OP=
TIONS).<br></div><div>This doesn&#39;t mean that all ports based on master/=
slave need to adopt subpackages, there will be situations where it won&#39;=
t be possible. <br></div><div><br></div><div>We want to merge the feature i=
n the framework now (end of the year), but adopt it in ports slowly over th=
e next quarters. To limit the adoption, we will deploy a git hook server-si=
de to request approval from portmgr before introducing subpackages for spec=
ific ports.<br></div><div>While poudriere (3.4.x) already supports subpacka=
ges, other tools don&#39;t, and we want to give time to their maintainer to=
 add support.</div><div>The slow adoption will also allow us to catch probl=
ems one at a time and fix them.<br></div><div><br></div><div>The patch is a=
vailable for review here: <a href=3D"https://reviews.freebsd.org/D40549" ta=
rget=3D"_blank">https://reviews.freebsd.org/D40549</a></div><div>This imple=
mentation is heavily based on mat@ (7 years) old implementation (<a href=3D=
"https://reviews.freebsd.org/D16457" target=3D"_blank">https://reviews.free=
bsd.org/D16457</a>) </div><div><br></div><div>We don&#39;t have documentati=
on yet, but another patch (<a href=3D"https://reviews.freebsd.org/D43079" t=
arget=3D"_blank">https://reviews.freebsd.org/D43079</a>) containing two fak=
e ports, used to build and test this feature. They provide the best example=
 of how subpackages would look like and they will be used to write the docu=
mentation.</div><div><br></div><div>The roadmap</div><div>* successful EXP-=
RUN to not introduce regressions (<a href=3D"https://bugs.freebsd.org/bugzi=
lla/show_bug.cgi?id=3D275735#h0" target=3D"_blank">https://bugs.freebsd.org=
/bugzilla/show_bug.cgi?id=3D275735#h0</a>)</div>* add a git hook server-sid=
e to allow only controlled adoption<div><div>* merge the support of subpack=
ages in the portstree (before 2023.12.31)<br></div><div>* prepare and updat=
e the handbook</div><div>* success!</div><div><br></div><div>There will be =
a lot of questions, I will answer to all of them, but give me some time, I =
could be AFK from time to time during holiday season.<br></div><div><br></d=
iv><div>Best regards,<br></div><div>pizzamig on behalf of portmgr<br></div>=
<div><br></div><br><br></div></div>
</div></div>

--000000000000feca5b060cba3bd4--



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB88xy96xa-rXnfdwk9Tjcs%2BpHLiXXOPmpSqQmS=Gk1vVF-sLg>