From: Brian Harring <ferringb@gmail.com>
To: gentoo-dev@lists.gentoo.org, axs@gentoo.org
Cc: Micha?? G??rny <mgorny@gentoo.org>
Subject: [gentoo-dev] example conversion of gentoo-x86 current deps to unified dependencies
Date: Sat, 15 Sep 2012 18:20:26 -0700 [thread overview]
Message-ID: <20120916012026.GI28593@localhost> (raw)
In-Reply-To: <20120916000336.37f516f6@pomiocik.lan>
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 ) )
dep:post? ( 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 ) )
dep:post? ( dev-python/snakeoil )
"
Etc.
~harring
next prev parent reply other threads:[~2012-09-16 1:21 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-09-07 11:45 [gentoo-dev] Unified DEPENDENCIES concept Ciaran McCreesh
2012-09-07 12:29 ` Michał Górny
2012-09-07 12:36 ` Ciaran McCreesh
2012-09-07 14:23 ` Michał Górny
2012-09-07 14:53 ` Ciaran McCreesh
2012-09-07 15:02 ` Michał Górny
2012-09-07 15:07 ` Ciaran McCreesh
2012-09-07 15:16 ` Michał Górny
2012-09-07 15:25 ` Wulf C. Krueger
2012-09-07 14:50 ` Ian Stakenvicius
2012-09-07 14:58 ` Ciaran McCreesh
2012-09-07 15:46 ` Alexis Ballier
2012-09-07 16:03 ` Michał Górny
2012-09-07 16:11 ` Ian Stakenvicius
2012-09-07 16:28 ` Michael Mol
2012-09-07 16:34 ` Ciaran McCreesh
2012-09-07 16:40 ` "Paweł Hajdan, Jr."
2012-09-07 16:47 ` Ciaran McCreesh
2012-09-07 17:40 ` Alexis Ballier
2012-09-07 18:21 ` Michał Górny
2012-09-07 19:59 ` Alexis Ballier
2012-09-07 20:10 ` Michał Górny
2012-09-07 20:14 ` Ian Stakenvicius
2012-09-11 2:16 ` Brian Harring
2012-09-13 19:18 ` Kent Fredric
2012-09-13 22:17 ` Brian Harring
2012-09-15 11:06 ` Kent Fredric
2012-09-15 20:33 ` Brian Harring
2012-09-15 22:03 ` Michał Górny
2012-09-16 1:20 ` Brian Harring [this message]
2012-09-16 2:39 ` [gentoo-dev] example conversion of gentoo-x86 current deps to unified dependencies Diego Elio Pettenò
2012-09-16 7:39 ` Ben de Groot
2012-09-16 13:15 ` Brian Harring
2012-09-18 22:51 ` Matt Turner
2012-09-19 4:22 ` Ben de Groot
2012-09-19 10:59 ` [gentoo-dev] " Duncan
2012-09-19 13:09 ` Michael Orlitzky
2012-09-19 13:16 ` Ian Stakenvicius
2012-09-30 22:15 ` Brian Harring
2012-10-01 0:23 ` Duncan
2012-10-02 17:47 ` Ian Stakenvicius
2012-10-03 4:00 ` Ben de Groot
2012-10-07 14:09 ` [gentoo-dev] " Steven J. Long
2012-09-16 7:56 ` [gentoo-dev] " Michał Górny
2012-09-16 11:10 ` Brian Harring
2012-09-16 11:21 ` Michał Górny
2012-09-16 11:49 ` Brian Harring
2012-09-16 12:02 ` Michał Górny
2012-09-16 13:38 ` Brian Harring
2012-09-07 16:10 ` [gentoo-dev] Unified DEPENDENCIES concept Ciaran McCreesh
2012-09-07 16:53 ` Zac Medico
2012-09-07 16:58 ` Ciaran McCreesh
2012-09-07 17:02 ` Ian Stakenvicius
2012-09-07 17:40 ` Zac Medico
2012-09-07 17:58 ` Ian Stakenvicius
2012-09-07 18:18 ` Zac Medico
2012-09-07 18:23 ` Ciaran McCreesh
2012-09-07 18:23 ` Zac Medico
2012-09-07 18:23 ` Michał Górny
2012-09-07 18:31 ` Ciaran McCreesh
2012-09-07 18:46 ` Michał Górny
2012-09-07 18:52 ` Ciaran McCreesh
2012-09-07 19:11 ` Michał Górny
2012-09-07 19:13 ` Ciaran McCreesh
2012-09-07 19:21 ` Michał Górny
2012-09-07 19:25 ` Ciaran McCreesh
2012-09-07 20:07 ` Michał Górny
2012-09-07 20:15 ` Ciaran McCreesh
2012-09-07 20:08 ` Ian Stakenvicius
2012-09-07 20:14 ` Ciaran McCreesh
2012-09-07 20:28 ` Ian Stakenvicius
2012-09-07 20:40 ` Ciaran McCreesh
2012-09-07 19:42 ` Ian Stakenvicius
2012-09-07 17:31 ` Zac Medico
2012-09-07 16:12 ` "Paweł Hajdan, Jr."
2012-09-07 16:43 ` Michał Górny
2012-09-07 22:55 ` Michael Orlitzky
2012-09-08 6:43 ` Ciaran McCreesh
2012-09-08 13:01 ` Michael Orlitzky
2012-09-08 7:27 ` Michał Górny
2012-09-08 1:02 ` Patrick Lauer
2012-09-09 3:32 ` Matt Turner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20120916012026.GI28593@localhost \
--to=ferringb@gmail.com \
--cc=axs@gentoo.org \
--cc=gentoo-dev@lists.gentoo.org \
--cc=mgorny@gentoo.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox