Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 06 Aug 2007 11:38:55 +0200
From:      Alexander Leidinger <Alexander@Leidinger.net>
To:        Kris Kennaway <kris@obsecurity.org>
Cc:        Henrik Brix Andersen <henrik@brixandersen.dk>, Michael Nottebrock <lofi@freebsd.org>, cvs-all@freebsd.org, ports-committers@freebsd.org, Pav Lucistnik <pav@freebsd.org>, cvs-ports@freebsd.org
Subject:   Re: cvs commit: ports/Mk bsd.port.mk
Message-ID:  <20070806113855.0fcq213io0www04k@webmail.leidinger.net>
In-Reply-To: <20070806065634.GA31676@rot26.obsecurity.org>
References:  <200706281553.l5SFr56i099807@repoman.freebsd.org> <20070802181715.46yikycm8gc8g8kk@webmail.leidinger.net> <20070803125410.GB1062@tirith.brixandersen.dk> <200708032144.57558.lofi@freebsd.org> <20070803204215.GA68620@rot26.obsecurity.org> <20070806074318.q9mw6ulngg00gwsw@webmail.leidinger.net> <20070806065634.GA31676@rot26.obsecurity.org>

next in thread | previous in thread | raw e-mail | index | archive | help
Quoting Kris Kennaway <kris@obsecurity.org> (from Mon, 6 Aug 2007 =20
02:56:34 -0400):

> On Mon, Aug 06, 2007 at 07:43:18AM +0200, Alexander Leidinger wrote:
>
>> >>Not sure this can work reliably enough to be usefule at present, at
>> >> least for
>> >>the specific scenario of avoiding unnecessary recompilations. I think
>> >>there
>> >>are just too many ports with implicit dependencies, especially in the
>> >>KDE/GNOME domain.
>>
>> That's a bug in those ports IMHO. And that's the reason why this
>> feature is not enabled by default.
>>
>> >Yes.  I'm not even convinced this feature is a good idea.
>>
>> "Not a good idea" as in "is not usable yet" or as in "it should never
>> be the goal to be usable"? If it is the former, I agree (see above).
>> If it is the later please elaborate (having correct dependency
>> information should always be a good idea, I think the benefits are
>> obvious, aren't they?).
>
> Both: we're not there yet, and I don't see why this implementation is
> the best way to get there :) Did I miss your discussion of the
> proposal?

No, I thought it is obvious that a correct dependency information is a =20
"Good Thing"(tm).

- When you do sweeping changes or changes with a large impact (number
   of ports), it is beneficial to have the real list of dependencies to
   be able to know the correct dependency list. You don't want to waste
   your time with ports which are listed as a implicit dependency but
   are not really referenced in source/object files (the feature in
   question is supposed to allow this). You also want to know about all
   ports which depend directly upon it (this is where we are not ready
   yet as not all ports list all explicit dependencies, an exp-build run
   would tell about the critical ones, user reports after switching the
   default would tell about edge-cases, some missing explicit
   dependencies may perhaps not get reported at all if there's a strong
   implicit relationship via an explicit dependency).

- Users which don't want packages but have to rebuild a lot of ports
   (update of middleware ports) would not need as long to rebuild
   the ports, as only the explicit dependencies need to be rebuild.
   Imagine an update of libx11 which should be accompanied with an
   update of everything which depends upon it. You don't really need
   to rebuild all GNOME/KDE ports. In the current scheme one would
   request a "portupgrade -rf libx11" or something to this effect and
   it would rebuild a lot of ports which don't include any X11 includes
   or link to X11 libs directly (you don't need to rebuild your
   python or perl application which uses GNOME, you just need to update
   gtk and some other middleware/critical ports).

- It may also motivate some people to work on some middleware ports
   when they see that the explicit dependency list to a particular
   port is relatively small (a huge number of ports which depend upon
   a specific port may afraid people which would be willing to maintain
   the port if there is a manageable amount of ports which depend upon
   it).

I was tempted to say it also decreases the amount of time for =20
incremental package builds, but as the package dependencies change =20
(meta data for the portversion or portrevision) all packages which =20
have a changed port in their implicit dependency list will change and =20
have to be rebuild. So it doesn't cut down the official builds, but at =20
least the development und "user-update" time.

Those are the most prominent benefits, maybe there are some more in =20
the meta-info department (maybe portsmon can use some of this info, =20
...).

Regarding the negative aspects I can only come up with the opinion =20
that it makes it harder / is more work to create a port (it came up =20
some months/years before when explicit dependencies where discussed).

I question this opinion, as most of the time the dependencies are =20
listed somewhere for this software (readme/homepage/...). I also think =20
a good maintainer lists the explicit dependencies anyway (to not get =20
annoyed by pointyhat mails; and while you are at it, it is easier to =20
list all documented dependencies than to hunt down implicit =20
dependencies). Exceptions to this are very large "ports" like =20
GNOME/KDE (I take my hat off to the corresponding maintainers, you are =20
doing a great work in my opinion) where the dependency tree is huge =20
and the goal was to get it up and running completely (as of the =20
current way of registering implicit dependencies this is perfectly ok, =20
as it is not needed to do a cleanup of the dependency tree). But they =20
trade in work for the explicit dependency tree for testing work before =20
the next release of the mega-port to get a (more or less) smooth =20
update-experience for users. With an explicit dependency tree you can =20
let some automation tools like portupgrade/portmaster/exp-build/... do =20
the tedious work -> faster testing -> less total development time -> =20
faster turn-around time for updates.

Have I missed something? Kris, what technical reasons are against =20
explicit dependencies, in your opinion?

Bye,
Alexander.

--=20
Love is sentimental measles.

http://www.Leidinger.net    Alexander @ Leidinger.net: PGP ID =3D B0063FE7
http://www.FreeBSD.org       netchild @ FreeBSD.org  : PGP ID =3D 72077137



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