public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
From: "José Fonseca" <j_r_fonseca@yahoo.co.uk>
To: gentoo-dev@gentoo.org
Subject: [gentoo-dev] A proposal (Was: More suggestions for USE)
Date: Wed, 22 May 2002 17:58:12 +0100	[thread overview]
Message-ID: <20020522175812.A8474@localhost> (raw)
In-Reply-To: <1022082581.13307.9.camel@tara.pvt.jagunco.net>; from rufiao@gmx.net on Wed, May 22, 2002 at 16:49:34 +0100

The USE flags is the way by which portage knows what the main subsystems 
that the user pretends, and therefore which dependencies it should satisfy 
when installing an ebuild. In other words, now the USE flags represent in 
very global terms what the user wants.

As Rufiao noticed, the USE flags fail to represent what the system 
additionally also has, as in the gnome flag example gave by him.

To make the USE flags also represent what the system has there would had 
to be a distinction between the "user wants" and "system has" duality.

An idea that seems to be viable is to have the USE flags very much like 
the "vitual provides" of some ebuilds, i.e., there would be two files: one 
with the USE flags that "user wants" which I'll call "use.wants" and other 
with the USE flags that have been already satisfied, which I'll call 
"use.has".

When a user installs the first time Gentoo he would find a default 
"use.wants" (an automatically generated file from parsing all ebuilds) 
including a brief description. Something like:

	use.wants:
		#flag	description

		gnome	The GNOME desktop manager
		kde 	The K Desktop Environment

we would uncomment what we wants, and comment what we doesn't want.

At this time "use.has" would be empty, as the system has the bare minimum. 
By typing e.g., "emerge --use", emerge would install every ebuild which 
provided what was specified in "use.has" and wasn't already in "use.has".

Everytime the user installed a package that provided some USE flag, emerge 
would update "use.has" accordingly. If by some reason the user wanted to 
remove some USE flag from the system he would do, e.g., "emerge --unuse 
gnome", and emerge would remove the packages that provided gnome and its 
dependencies, updating both "use.wants" and "use.has". All this after 
confirming the user intention, of course.

This would simplify enormously the first time installation and the 
maintainance of the USE vars, and best, it would be possible a smooth 
transition. Each ebuild would just add something like

	gnome-libs-x.xx.ebuild:
		...
		USE_PROVIDE = "gnome"
		...
		...
		get_use() {
			echo "gnome	The GNOME desktop manager"
		}

where the automatically generation of the default "use.wants" would be 
made by calling "get_use", but initally the ebuilds could just remain as 
is, and the default "use.wants" would be made by hand, and the 
USE_PROVIDES would be gradually added.

As you can see the USE flags would become very similar to the "virtual 
provides". I'm not even sure if we could blend these two concepts.


I don't know what are the detailed plans for portage2 but I would like to 
see this proposal considered and discussed.


Regards,

José Fonseca


On 2002.05.22 16:49 Rufiao Valhacouto wrote:
> I'd be useful if each ebuild could provide some queries to specify which
> USE flags a given package can use, and give some explanations about what
> are the end results of using each flag. Also, some kind of 'suggested'
> USE flags could be implemented, possibly using some dynamic
> configuration hints (eg. if the ebuild detects there is gnome installed,
> it can suggest the gnome flag).
> 
> I've seen some proposals for implementing a more effective way to
> maintain the USE flags for each package, and it seems for me this is a
> must. Anyway, it would be nice if emerge/ebuild could record the USE
> flags used in the build process for each package to help in the track of
> how everything was compiled.
> 


      reply	other threads:[~2002-05-22 16:58 UTC|newest]

Thread overview: 2+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-05-22 15:49 [gentoo-dev] More suggestions for USE Rufiao Valhacouto
2002-05-22 16:58 ` José Fonseca [this message]

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=20020522175812.A8474@localhost \
    --to=j_r_fonseca@yahoo.co.uk \
    --cc=gentoo-dev@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