FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Gentoo > Gentoo Development

 
 
LinkBack Thread Tools
 
Old 09-16-2012, 01:20 AM
Brian Harring
 
Default example conversion of gentoo-x86 current deps to unified dependencies

On Sun, Sep 16, 2012 at 12:03:36AM +0200, Micha?? G??rny wrote:
> On Sat, 15 Sep 2012 13:33:18 -0700
> Brian Harring <ferringb@gmail.com> wrote:
> > To demonstrate the gain of this, we basically take the existing
> > tree's deps, and re-render it into a unified DEPENDENCIES form.
>
> But in order to do this, we first have to decide exactly what kind
> of dependencies do we want to have. Then convert the tree to
> a separate-variable form with new dependencies. Then we can compare
> it with the DEPENDENCIES form and decide which one is better.

Funny you mentioned that, I just finished tweaking pquery to generate
real world example unified dependencies; these *are* accurate, just to
be clear.

Dumps are at
http://dev.gentoo.org/~ferringb/unified-dependencies-example/ .

Herds, if you want to see what your pkgs would look like, look at
http://dev.gentoo.org/~ferringb/unified-dependencies-example/herds/ .

If you'd like to see an *example effect* it has on what gets displayed
to the user (aka, after all major use conditionals are stripped), look
at
http://dev.gentoo.org/~ferringb/unified-dependencies-example/user-visible.txt
; warning, that's a 55MB file. The syntax in use there isn't great,
but as said, it's an example.

Total cache savings from doing this for a full tree conversion, for
our existing md5-cache format is 2.73MB (90 byes per cache entry).
Calculating the savings from the ebuild/eclass standpoint is dependent
on how the deps are built up, so I skipped that.

The algorithim used is fairly stupid, but reasonably effectively;
essentially it intersects the top level of each individual type of
dep, breaking out common groupings.

In other words, it won't pick up this:
DEPEND="x? ( dev-util/diffball dev-util/bsdiff )"
RDEPEND="x? ( dev-util/diffball )"

and convert it into thus
DEPENDENCIES="
dep:build,run? (
x? (
dev-util/diffball
dep:run? (
dev-util/diffball
)
)
)"

Additionally, the form used here makes *no assumption about default
context*; in any final solution we use, a default context would be
wise- say build,run. Again, an example of what I mean.

If we said "in the absense of a context, the default is dep:build,run"
the following:

DEPEND="dev-util/diffball dev-util/bsdiff"
RDEPEND="dev-util/diffball de-vutil/bsdiff x? ( sys-apps/pkgcore )"
PDEPEND="dev-python/snakeoil"

would be:
DEPENDENCIES="
dev-util/diffball
dev-util/bsdiff
dep:run? ( x? ( sys-apps/pkgcore ) )
depost? ( dev-python/snakeoil )
"

The quicky algo I used assumes no default context, thus it writes
this:
DEPENDENCIES="
dep:build,run? (
dev-util/diffball
dev-util/bsdiff
)
dep:run? ( x? ( sys-apps/pkgcore ) )
depost? ( dev-python/snakeoil )
"

Etc.

~harring
 

Thread Tools




All times are GMT. The time now is 01:13 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org