Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 12 Mar 2008 15:45:46 +0100
From:      Benjamin Lutz <mail@maxlor.com>
To:        "Florent Thoumie" <flz@xbsd.org>
Cc:        ports@freebsd.org
Subject:   Re: ports/113132 (make -j patch)
Message-ID:  <200803121545.50921.mail@maxlor.com>
In-Reply-To: <a01628140803120601w49848718hc6ea6208f2b21692@mail.gmail.com>
References:  <200803121311.51383.mail@maxlor.com> <a01628140803120601w49848718hc6ea6208f2b21692@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
--nextPart1960261.SU7KFCqSDh
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

On Wednesday 12 March 2008 14:01:57 Florent Thoumie wrote:
> On Wed, Mar 12, 2008 at 12:11 PM, Benjamin Lutz <mail@maxlor.com> wrote:
> > This patch has been sitting in GNATS for a couple of months now:
> >
> >  http://www.freebsd.org/cgi/query-pr.cgi?pr=3Dports/113132
> >
> >  I've received a few mails from people reporting success, and none
> >  reporting that bad things have happened. Is it possible to get this
> >  committed?
>
> It needs to go through an experimental build first.
>
> IMHO, this is an ugly hack. Ultimately, we're talking about marking
> almost 20k ports as parallel-safe.

Because in requires modifications of individual port Makefiles? Or is there=
=20
something else in it that you don't like?

> Why not taking the opposite approach? Allow it by default, figure out
> which ports break and why, fix where possible?

=46or the following reason: This change has the potential to make port buil=
ding=20
fail in non-deterministic ways; a build might work one one machine all the=
=20
time, but fail on another 10% of the time, because the 3rd party code that =
is=20
being built is not -j-safe. It means that testing each individual port for=
=20
support is required, which, as you point out, is a large amount of work in=
=20
total (but it's not that much for each port). I think therefore that this=20
should be handled by the port maintainers.

If the list of ports which support -j-building is determined by an automate=
d=20
package build run, who will then have the responsibility to maintain that=20
list?

Since this change has the potential to break a lot of things, it should be =
off=20
by default, and only be enabled if the port maintainer is sure that his por=
t=20
supports it. To enable it by default would require all port maintainers to=
=20
get active immediately to blacklist the many ports which don't support -j=20
building; this is not going to happen, ports will remain in a broken state.

Also, the amount of work required to get an advantage from this change is=20
actually not as high as you think. Of the 20k ports we have, only the big=20
ones (e.g., kde*) gain a substantial benefit from -j building. Small ports=
=20
that only compile for a few seconds anyway can be left as they are now.

Cheers
Benjamin

--nextPart1960261.SU7KFCqSDh
Content-Type: application/pgp-signature; name=signature.asc 
Content-Description: This is a digitally signed message part.

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.7 (GNU/Linux)

iD8DBQBH1+yezZEjpyKHuQwRAkrWAKCfK98fIeIv7Y35j9zuqQW9wskS8wCfUUvQ
A4WajvcZVU4+XJry+g6v5II=
=Zznj
-----END PGP SIGNATURE-----

--nextPart1960261.SU7KFCqSDh--



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