From: Brian Harring <ferringb@gentoo.org>
To: gentoo-portage-dev@lists.gentoo.org
Subject: Re: [gentoo-portage-dev] Additional information to output: emerge -pv
Date: Thu, 25 Aug 2005 17:24:56 -0500 [thread overview]
Message-ID: <20050825222455.GO1701@nightcrawler> (raw)
In-Reply-To: <430E0AC8.7050200@wmich.edu>
[-- Attachment #1: Type: text/plain, Size: 2881 bytes --]
On Thu, Aug 25, 2005 at 06:15:36PM +0000, Dustin Spicuzza wrote:
>
> >
> >Actually, I'd find it useful personally.
> >People add *weird* use flags sometimes.
> >
> >
> LoL... yes, thats true.
>
> A suggestion possibly to keep in mind is what if all functionality
> related to USE flags were somehow implemented in a seperate class/set of
> functions... or maybe that's already being done. But I mean, the job of
> determining which flags apply to what package and managing all that and
> how it works... I noticed that (at least in stable) a lot of it is in
> portage.config, but maybe it could be a seperate class that
> portage.config uses.. and other things (like deps, etc). Then stuff like
> outputting USE flags, or adding additional ways to determine which USE
> flags to actually use for each package, would all be in one location,
> lending itself to code reuse...
>
> Of course, this is just from my looking at portage stable for a week or
> so... maybe its already being done. :)
It's being done :)
Essentially, you have this
config
domain
|--repo(s)
| |--cache(s)
| |--sync
|--vdb(s)
|--profile(s)
Domain is generated from configuration, as are all of the other
objects; the config class just holds config data, and instantiates
objects, shuffling them around dependant on an external file that
states the rules for the config (in the process, stating how to
instantiate the objs).
Config build data is domain data; your normal ebuild repository is an
'unconfigured' repository, iow, you can toggle stuff on it to change
the metadata of packages it returns.
The domain during instantiation notes that it has an unconfigured repo
in it's list, inspects the repo instance for what is needed to
configure it (and the func to call), calls the func with the
configurables supplied, and uses the returned repo instead of the
unconfigured repo.
Via this, the config data (USE, build, etc) is pushed down into the
repo. The configured repo wraps the unconfigured repo's returned
packages with it's own wrapper that binds the config data into it, and
hands that back.
Probably not a great description, but the short version is it works
pretty well, and is pretty well encapsulated.
What I'd *like* to see is the use.{local.,}desc information bound into
the repository, and have it supplied from the repository object; doing
so keeps that data in the repo backend, not screwing up any
abstractions that are carefully defined to allow for remote
replacements.
Haven't proposed it to -dev yet, but I'd like to see package.* and
use.* moved out of profiles/ , and into it's own base directory in the
ebuild repository.
Reasoning is that profile objs are seperate from repo objs; the fs
layout should reflect that to some degree. It's cleaner anyways, imo.
:)
~harring
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
next prev parent reply other threads:[~2005-08-25 22:27 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-08-25 17:44 Re: [gentoo-portage-dev] Additional information to output: emerge -pv Dustin Spicuzza
2005-08-25 21:57 ` Brian Harring
2005-08-25 18:15 ` Dustin Spicuzza
2005-08-25 22:24 ` Brian Harring [this message]
-- strict thread matches above, loose matches on Subject: below --
2005-08-25 17:54 Dustin Spicuzza
2005-08-25 18:22 ` Thomas de Grenier de Latour
2005-08-25 2:15 Dustin Spicuzza
2005-08-25 9:58 ` Simon Stelling
2005-08-25 9:59 ` Paul de Vrieze
2005-08-25 14:15 ` Sandy McArthur
2005-08-25 16:14 ` Brian Harring
2005-08-25 16:28 ` Brian Harring
2005-08-25 20:42 ` Alec Warner
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=20050825222455.GO1701@nightcrawler \
--to=ferringb@gentoo.org \
--cc=gentoo-portage-dev@lists.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