public inbox for gentoo-dev@lists.gentoo.org
 help / color / mirror / Atom feed
* Re: [gentoo-dev] emerge with interacitve use
@ 2003-04-29 18:34 Joshua Brindle
  2003-04-29 18:53 ` Henti Smith
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Joshua Brindle @ 2003-04-29 18:34 UTC (permalink / raw
  To: gentoo-dev, Kuleshov, Sergey

>Hey, I really like this feature! It really helps (anyway it's better that 
>looking in the .ebuild file and sort out what are the optional dependencies.)
>
>The thing I did not get is why is it sometimes dispalying the Disabled ..... 
>text ans sometimes not?
>
>P.S. What about enchancing it with some ncurses interface to make it really 
>intteractive?
>
>On Tuesday 29 April 2003 17:03, Panard wrote:
>> Hello,
>>
>> 	After some experiencies with emerge, it could be great that to do an
>> emerge with USE interactive :
>>
>> $ emerge -I php
>>
>> >>> ...
>>
>> Use Java [Y/n]?
>> Use X[y/N] ?
>> ....
>>
>> I found, that there are too many errors due to USE vars that we forget  to
>> disable or enable...
>>
>> So I have taken my hands and my vim, and tried to do this, it gave a good
>> result.
>>
>> I join the script, its name is emerge-interactive, this is in fact the
>> emerge script with my modifications (line  1840 to 1877)... place it in the
>> directory
>> /usr/lib/portage/bin
>> then
>> ln -s /usr/lib/portage/bin/emerge-interactive /usr/bin
>>
>>
>> To use the interactive mide, use
>> $ emerge-interactive -I or --interactive ....
>>
>> This is my first gentoo and linux contribution so I'm waiting for some
>> feedback, impression, and sure critiques and amelioration (this is the
>> first time I script in python, so be indulgent !!)
>>

This solution doesn't scale well, it would be impossible to emerge system
and expect this to be sane, additionally the lack of sticky use vars means
you can have unexpected support/lack of support after upgrading..

and digging through ebuilds? have you ever looked at emerge -h?

tachyon root # emerge -vp vim     

These are the packages that I would merge, in order:

Calculating dependencies ...done!
[ebuild  N   ] app-editors/vim-core-6.2_pre2  -gnome +gpm -gtk -gtk2 +ncurses +nls +perl +python -ruby +X 
[ebuild  N   ] app-editors/vim-6.2_pre2  -gnome +gpm -gtk -gtk2 +ncurses +nls +perl +python -ruby +X 

look, tells you exactly how your use flags are going to affect the build

USE="-X" emerge -vp vim and observe...

additionally, we now have this great program for managing the plethora of USE vars called 'ufed' (app-admin/ufed).. that way you don't forget which are enabled/disabled, you can look through them all and turn on/off the support you desire.. it's a nice program, well worth emerging..

Cheers

Joshua Brindle

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 18:34 [gentoo-dev] emerge with interacitve use Joshua Brindle
@ 2003-04-29 18:53 ` Henti Smith
  2003-04-29 19:12 ` Panard
  2003-04-29 20:15 ` Vano D
  2 siblings, 0 replies; 16+ messages in thread
From: Henti Smith @ 2003-04-29 18:53 UTC (permalink / raw
  To: method; +Cc: gentoo-dev, sergey

> This solution doesn't scale well, it would be impossible to emerge system
> and expect this to be sane, additionally the lack of sticky use vars means
> you can have unexpected support/lack of support after upgrading..

It's not impossible ... just highly time wasting ... ;P 

> and digging through ebuilds? have you ever looked at emerge -h?

yes ... 

> tachyon root # emerge -vp vim     
> 
> These are the packages that I would merge, in order:
> 
> Calculating dependencies ...done!
> [ebuild  N   ] app-editors/vim-core-6.2_pre2  -gnome +gpm -gtk -gtk2 +ncurses +nls +perl +python -ruby +X 
> [ebuild  N   ] app-editors/vim-6.2_pre2  -gnome +gpm -gtk -gtk2 +ncurses +nls +perl +python -ruby +X 

some are lazy ... ;P 

I'd rather do that .. then ID the ones that Iw ant to interactivly merge .. merge them .. then emerge world ;P 

> look, tells you exactly how your use flags are going to affect the build
> 
> USE="-X" emerge -vp vim and observe...

I know this .. and do this currently ... I was making a comment .. and suggesting a way :) 

> additionally, we now have this great program for managing the plethora of USE vars called 'ufed' (app-admin/ufed).. that way you don't forget which are
 enabled/disabled, you can look through them all and turn on/off the support you desire.. it's a nice program, well worth emerging..

hmmm .. I'll def look into that :) thanks 

Henti 

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 18:34 [gentoo-dev] emerge with interacitve use Joshua Brindle
  2003-04-29 18:53 ` Henti Smith
@ 2003-04-29 19:12 ` Panard
  2003-04-29 20:12   ` Vano D
  2003-04-29 20:15 ` Vano D
  2 siblings, 1 reply; 16+ messages in thread
From: Panard @ 2003-04-29 19:12 UTC (permalink / raw
  To: gentoo-dev

| tachyon root # emerge -vp vim
|
| These are the packages that I would merge, in order:
|
| Calculating dependencies ...done!
| [ebuild  N   ] app-editors/vim-core-6.2_pre2  -gnome +gpm -gtk -gtk2
| +ncurses +nls +perl +python -ruby +X [ebuild  N   ]
| app-editors/vim-6.2_pre2  -gnome +gpm -gtk -gtk2 +ncurses +nls +perl
| +python -ruby +X
|
| look, tells you exactly how your use flags are going to affect the build
|
| USE="-X" emerge -vp vim and observe...

yes, but it's just a little feature do to this interactivly (you do this in 
only one command instead of two and more words... ;-) )



| additionally, we now have this great program for managing the plethora of
| USE vars called 'ufed' (app-admin/ufed).. that way you don't forget which
| are enabled/disabled, you can look through them all and turn on/off the
| support you desire.. it's a nice program, well worth emerging..

yes, yes, but this for all packages, so if you want to turn off X just for an 
ebuild, you can't do this with ufed.


It's juste a little feature to do custom use to an package, with a more way 
friendly  than the -vp system


Thanks,

Panard

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 19:12 ` Panard
@ 2003-04-29 20:12   ` Vano D
       [not found]     ` <200304292236.07561.panard@inzenet.org>
                       ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Vano D @ 2003-04-29 20:12 UTC (permalink / raw
  To: gentoo-dev

Hi Panard,

	How about adding a little functionality to the script so it keeps which
USE vars the user chooses in a file like 
/var/db/pkg/app-editors/vim-6.1-r21/USECUSTOM (that would be for vim :)?
	I have checked the USE files but they all contain the complete $USE
variable when the package was emerged. So maybe if you add the
functionality so it adds a USECUSTOM file containing the USE vars the
user has chosen interactively then you could have an option at the
beginning of the interactive command asking:

	"Use previous USE flags for this package? (X gtk etc..) [Y/n]"

	If the user says Y, then you would extract the USE flags from USECUSTOM
and use those.

	Also you could have a commandline option such as --usecustom or
something like that, so if the user calls emerge-interactive with that
flag it skips all questions and uses the previously kept USE flags.

	Of course this would only work if you only used emerge-interactive
since emerge doesnt create any USECUSTOM files :) But I don't think this
is a big problem. In any case if emerge-interactive doesn't find any
CUSTOMFILE then it asks the users for USE flags just like now.

	This solves the scalibility problem and gives the user best of both
worlds. What do you think?

	Regards.
-- 
Vano D <gentoo-dev@europeansoftware.com>


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 18:34 [gentoo-dev] emerge with interacitve use Joshua Brindle
  2003-04-29 18:53 ` Henti Smith
  2003-04-29 19:12 ` Panard
@ 2003-04-29 20:15 ` Vano D
  2 siblings, 0 replies; 16+ messages in thread
From: Vano D @ 2003-04-29 20:15 UTC (permalink / raw
  To: gentoo-dev

Hi Panard,

	Actually if you push it a bit further, then you can have a USECUSTOM
editor working similar to ufed but with a "pull down menu" or something
which selects a specific installed (or uninstalled) application and sets
the USECUSTOM file (this wouldnt work for uninstalled ones ... but this
is really usefull for installed files anyway).

	I think the interactive emerge with some of these ideas would be one
hell of an improvement to Portage !

	Regards.
-- 
Vano D <gentoo-dev@europeansoftware.com>


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
       [not found]     ` <200304292236.07561.panard@inzenet.org>
@ 2003-04-29 23:26       ` Vano D
  0 siblings, 0 replies; 16+ messages in thread
From: Vano D @ 2003-04-29 23:26 UTC (permalink / raw
  To: gentoo-dev

On Tue, 2003-04-29 at 22:36, Panard wrote:
> Le Mardi 29 Avril 2003 22:12, Vano D a écrit :
> | Hi Panard,
> |
> | 	How about adding a little functionality to the script so it keeps which
> | USE vars the user chooses in a file like
> | /var/db/pkg/app-editors/vim-6.1-r21/USECUSTOM (that would be for vim :)?
> | 	I have checked the USE files but they all contain the complete $USE
> | variable when the package was emerged. So maybe if you add the
> | functionality so it adds a USECUSTOM file containing the USE vars the
> | user has chosen interactively then you could have an option at the
> | beginning of the interactive command asking:
> |
> | 	"Use previous USE flags for this package? (X gtk etc..) [Y/n]"
> |
> | 	If the user says Y, then you would extract the USE flags from USECUSTOM
> | and use those.
...
> | 	This solves the scalibility problem and gives the user best of both
> | worlds. What do you think?
> 
> 
> Yes, I think that it's a really good functionnality to add! I will tried to 
> find a way to do this... (but some help will be welcome, I just discover 
> Python!)
> 
> Thanks for your interest !

If I knew Python and had some time I would help. Although I will have
both soon hopefully. I think great things can be achieved with extending
Portage a little bit. So I think you did a great job with this.

Also one other idea I had in mind which I would like to work on one day
is the use of a database to keep all the /var portage information for
different machines in a network and somehow extend Portage to interface
with this database and use one central emerge command (probably with a
wrapper script) to administer all these machines. For now it's all
theory of course :)

BTW just added a reply-to header.

Regards.

-- 
Vano D <gentoo-dev@europeansoftware.com>


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 20:12   ` Vano D
       [not found]     ` <200304292236.07561.panard@inzenet.org>
@ 2003-04-29 23:31     ` Panard
  2003-04-30  0:31       ` Todd Berman
  2003-04-30  0:39       ` Vano D
  2003-04-30  0:18     ` [gentoo-dev] " Daniel Armyr
  2 siblings, 2 replies; 16+ messages in thread
From: Panard @ 2003-04-29 23:31 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2058 bytes --]

Le Mardi 29 Avril 2003 22:12, Vano D a écrit :
| Hi Panard,
|
| 	How about adding a little functionality to the script so it keeps which
| USE vars the user chooses in a file like
| /var/db/pkg/app-editors/vim-6.1-r21/USECUSTOM (that would be for vim :)?
| 	I have checked the USE files but they all contain the complete $USE
| variable when the package was emerged. So maybe if you add the
| functionality so it adds a USECUSTOM file containing the USE vars the
| user has chosen interactively then you could have an option at the
| beginning of the interactive command asking:
|
| 	"Use previous USE flags for this package? (X gtk etc..) [Y/n]"
|
| 	If the user says Y, then you would extract the USE flags from USECUSTOM
| and use those.
|
| 	Also you could have a commandline option such as --usecustom or
| something like that, so if the user calls emerge-interactive with that
| flag it skips all questions and uses the previously kept USE flags.
|
| 	Of course this would only work if you only used emerge-interactive
| since emerge doesnt create any USECUSTOM files :) But I don't think this
| is a big problem. In any case if emerge-interactive doesn't find any
| CUSTOMFILE then it asks the users for USE flags just like now.
|
| 	This solves the scalibility problem and gives the user best of both
| worlds. What do you think?
|
| 	Regards.



Ok, I've apply theses changes (I join the emerge-interactive file) :

-> there is a /var/db/pkg/CATEG/PKG/USECUSTOM :
	ask to use this file y or n :
		y : we load the values of the file
		n : we ask for the new values, when, (re-)create 
/var/db/pkg/CATEG/PKG/USECUSTOM
 -> no file   we do exactly like if the user answer n to the previous question



Please test this script (I made some merge and it was working)

Thanks,

Panard
-- 
________________________________________________________
         panard@inzenet.org                http://www.inzenet.org

"Computers are like air-conditioners, they stop working properly when you open 
Windows."

[-- Attachment #2: emerge-interactive.bz2 --]
[-- Type: application/x-bzip2, Size: 17988 bytes --]

[-- Attachment #3: Type: text/plain, Size: 37 bytes --]

--
gentoo-dev@gentoo.org mailing list

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 20:12   ` Vano D
       [not found]     ` <200304292236.07561.panard@inzenet.org>
  2003-04-29 23:31     ` Panard
@ 2003-04-30  0:18     ` Daniel Armyr
  2 siblings, 0 replies; 16+ messages in thread
From: Daniel Armyr @ 2003-04-30  0:18 UTC (permalink / raw
  Cc: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

| functionality so it adds a USECUSTOM file containing the USE vars the
| user has chosen interactively then you could have an option at the
| beginning of the interactive command asking:
There is a bug submitted, mentioned a couple of days ago, that mentions
this. No interactivity, but flags for individual programs. A patch was
supplied.
//Daniel Armyr

- --
=========================================
daniel.armyr@home.se     f00-dar@f.kth.se

C118 KEVII Hall
1A Kent Ridge Rd S.119224
Singapore                 PGP@pgp.mit.edu
=========================================
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE+rxZKhxtTUWLs2lERAjQDAJ44+ySXKCeFfIaNxY0oH/tJeqGnJACfVUz+
9NMmaZu0RDgglh4oBUcxDS0=
=fCBl
-----END PGP SIGNATURE-----


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 23:31     ` Panard
@ 2003-04-30  0:31       ` Todd Berman
  2003-04-30  0:39       ` Vano D
  1 sibling, 0 replies; 16+ messages in thread
From: Todd Berman @ 2003-04-30  0:31 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 2155 bytes --]

Please stop attaching things to emails coming to this list. Either post
a url, or ask for people to reply privately to you so you can email it
to them.

Thanks

--Todd

On Tue, 2003-04-29 at 19:31, Panard wrote:
> Le Mardi 29 Avril 2003 22:12, Vano D a écrit :
> | Hi Panard,
> |
> | 	How about adding a little functionality to the script so it keeps which
> | USE vars the user chooses in a file like
> | /var/db/pkg/app-editors/vim-6.1-r21/USECUSTOM (that would be for vim :)?
> | 	I have checked the USE files but they all contain the complete $USE
> | variable when the package was emerged. So maybe if you add the
> | functionality so it adds a USECUSTOM file containing the USE vars the
> | user has chosen interactively then you could have an option at the
> | beginning of the interactive command asking:
> |
> | 	"Use previous USE flags for this package? (X gtk etc..) [Y/n]"
> |
> | 	If the user says Y, then you would extract the USE flags from USECUSTOM
> | and use those.
> |
> | 	Also you could have a commandline option such as --usecustom or
> | something like that, so if the user calls emerge-interactive with that
> | flag it skips all questions and uses the previously kept USE flags.
> |
> | 	Of course this would only work if you only used emerge-interactive
> | since emerge doesnt create any USECUSTOM files :) But I don't think this
> | is a big problem. In any case if emerge-interactive doesn't find any
> | CUSTOMFILE then it asks the users for USE flags just like now.
> |
> | 	This solves the scalibility problem and gives the user best of both
> | worlds. What do you think?
> |
> | 	Regards.
> 
> 
> 
> Ok, I've apply theses changes (I join the emerge-interactive file) :
> 
> -> there is a /var/db/pkg/CATEG/PKG/USECUSTOM :
> 	ask to use this file y or n :
> 		y : we load the values of the file
> 		n : we ask for the new values, when, (re-)create 
> /var/db/pkg/CATEG/PKG/USECUSTOM
>  -> no file   we do exactly like if the user answer n to the previous question
> 
> 
> 
> Please test this script (I made some merge and it was working)
> 
> Thanks,
> 
> Panard

[-- Attachment #2: This is a digitally signed message part --]
[-- Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] emerge with interacitve use
  2003-04-29 23:31     ` Panard
  2003-04-30  0:31       ` Todd Berman
@ 2003-04-30  0:39       ` Vano D
  2003-04-30 19:50         ` [gentoo-dev] [update] " Panard
  1 sibling, 1 reply; 16+ messages in thread
From: Vano D @ 2003-04-30  0:39 UTC (permalink / raw
  To: gentoo-dev

On Wed, 2003-04-30 at 01:31, Panard wrote:
> Ok, I've apply theses changes (I join the emerge-interactive file) :
> 
> -> there is a /var/db/pkg/CATEG/PKG/USECUSTOM :
> 	ask to use this file y or n :
> 		y : we load the values of the file
> 		n : we ask for the new values, when, (re-)create 
> /var/db/pkg/CATEG/PKG/USECUSTOM
>  -> no file   we do exactly like if the user answer n to the previous question
> 
> 
> 
> Please test this script (I made some merge and it was working)

Fantastic !!! It works just as advertised :) well done !

Maybe you should put this in a bug report so the maintaners notice it
and get motivated to incorporate the changes into Portage. You can also
supply them the diff, I think it would be easier for them but maybe some
portage people around would know better than me.

The only comment I can think of is that I would name this feature more
like "per package (interactive) USE management" or something rather than
just plain (-I) interactive. It has passed way beyond just interactivity
for me :) 

BTW I don't know if you included any commandline options like
"--usecustom" so it won't ask and use the USECUSTOM file all the time.
This is good for when doing emerge -Up world or for scalability.

Great great stuff !!!

PD. There is just one bug I found when I do something like "emerge -Ip
package" and set the flags it actually updates the USEFLAG file. Maybe
you should tell it not to do anything when the user chooses --pretend.
Also looks like you create the USECUSTOM file before the rest of portage
starts donwloading/compiling/merging. Maybe you should also create the
USECUSTOM flag right at the same moment when the rest of the /var/db
files are created. This well keep consistency.

Just to give you an example I ran emerge-interactive -Ip balsa and set
the use flags, and now portage thinks I have it installed:

   [ebuild   R  ] net-mail/balsa-2.0.9-r1

That is because there is a "/var/db/pkg/net-mail/balsa-2.0.9-r1" with
only USECUSTOM inside it.

Anyhow GREAT job !

Regards.
-- 
Vano D <gentoo-dev@europeansoftware.com>


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev]  [update] emerge with interacitve use
  2003-04-30  0:39       ` Vano D
@ 2003-04-30 19:50         ` Panard
  2003-04-30 22:52           ` Panard
  0 siblings, 1 reply; 16+ messages in thread
From: Panard @ 2003-04-30 19:50 UTC (permalink / raw
  To: gentoo-dev

Hello,

	the interactive system work now with --update and world or system (this is a 
big evolution)

For the storage of the USECUSTOM, I didn't have any idea to do this after the 
package has been merge, so I've pu this file in /var/tmp/portage/...... 
waiting for a better solution.

When we upgrade un package, the script will search for a USECUSTOM file from 
the previous versions.

Now there is two important point :
- find a solution for storage of USECUSTOM file
- make a diff between a USECUSTOM from old package to new USE vars (I will 
work on it tomorow)

these is the link to downlode the new version:
http://data.inzenet.org/gentoo/emerge-interactive.bz2


This script must be hard tested !

Thanks

Panard

-- 
________________________________________________________
         panard@inzenet.org                http://www.inzenet.org

"Computers are like air-conditioners, they stop working properly when you open 
Windows."

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev]  [update] emerge with interacitve use
  2003-04-30 19:50         ` [gentoo-dev] [update] " Panard
@ 2003-04-30 22:52           ` Panard
  2003-05-01  0:22             ` Daniel Armyr
  0 siblings, 1 reply; 16+ messages in thread
From: Panard @ 2003-04-30 22:52 UTC (permalink / raw
  To: gentoo-dev

Hi,

	I've kill some bugs...

these is the link to downlode the new version:
http://data.inzenet.org/gentoo/emerge-interactive.bz2


-- 
________________________________________________________
         panard@inzenet.org                http://www.inzenet.org

"Computers are like air-conditioners, they stop working properly when you open 
Windows."

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev]  [update] emerge with interacitve use
  2003-04-30 22:52           ` Panard
@ 2003-05-01  0:22             ` Daniel Armyr
  2003-05-01 12:50               ` Panard
  0 siblings, 1 reply; 16+ messages in thread
From: Daniel Armyr @ 2003-05-01  0:22 UTC (permalink / raw
  To: gentoo-dev

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Could you supply a diff? I would like to see your changes.
//Daniel Armyr

Panard wrote:
| Hi,
|
| 	I've kill some bugs...
|
| these is the link to downlode the new version:
| http://data.inzenet.org/gentoo/emerge-interactive.bz2
|
|

- --
=========================================
daniel.armyr@home.se     f00-dar@f.kth.se

C118 KEVII Hall
1A Kent Ridge Rd S.119224
Singapore                 PGP@pgp.mit.edu
=========================================
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQE+sGiphxtTUWLs2lERAqMwAJ9H76pvW8ycdpVr8PNw5hsxy08sbQCfb27C
sEUAyHHiSiH2B91pCfF6SV0=
=Y0cG
-----END PGP SIGNATURE-----


--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev]  [update] emerge with interacitve use
  2003-05-01  0:22             ` Daniel Armyr
@ 2003-05-01 12:50               ` Panard
  2003-05-05 12:18                 ` Panard
  0 siblings, 1 reply; 16+ messages in thread
From: Panard @ 2003-05-01 12:50 UTC (permalink / raw
  To: gentoo-dev

[-- Attachment #1: Type: text/plain, Size: 341 bytes --]

Le Jeudi 1 Mai 2003 02:22, Daniel Armyr a écrit :
| Could you supply a diff? I would like to see your changes.



-- 
________________________________________________________
         panard@inzenet.org                http://www.inzenet.org

"Computers are like air-conditioners, they stop working properly when you open 
Windows."

[-- Attachment #2: emerge-interactive.patch --]
[-- Type: text/x-diff, Size: 6511 bytes --]

--- emerge	2003-05-01 14:47:56.000000000 +0200
+++ emerge-interactive	2003-05-01 02:32:10.000000000 +0200
@@ -23,13 +23,13 @@
 "--changelog",    "--columns",
 "--debug",        "--deep",
 "--emptytree",    "--fetchonly",
-"--help",         "--noconfmem",
+"--help",         "--interactive",    "--noconfmem",
 "--nodeps",       "--noreplace",
 "--nospinner",    "--oneshot",
 "--onlydeps",     "--pretend",
 "--quiet",        "--resume",
 "--searchdesc",   "--selective",
-"--update",       "--upgradeonly",
+"--update",       "--upgradeonly",    "--usecustom",
 "--usepkg",       "--usepkgonly",
 "--verbose",      "--version"
 ]
@@ -41,7 +41,7 @@
 "e":"--emptytree",
 "f":"--fetchonly",
 "h":"--help",
-"i":"--inject",
+"i":"--inject",    "I":"--interactive",
 "k":"--usepkg",    "K":"--usepkgonly",
 "l":"--changelog",
 "n":"--noreplace",
@@ -1095,6 +1095,8 @@
 			myroot=x[1]
 			#the last argument in the portage.doebuild() tells doebuild to *not* do dep checking
 			#(emerge is already handling that)
+
+									
 			y=portage.portdb.findname(x[2])
 			if not "--pretend" in myopts:
 				print ">>> emerge ("+str(mergecount)+" of "+str(len(mymergelist))+")",x[2],"to",x[1]
@@ -1820,6 +1822,171 @@
 			print darkgreen("emerge: It seems we have nothing to resume...")
 			sys.exit(0)
 
+		if myaction not in ["system","world"]:
+			if not myfiles:
+				print "emerge: please tell me what to do."
+				help()
+				sys.exit(1)
+				#we don't have any files to process; skip this step and exit
+			
+		# INTERACTIVE MODE
+		if "--interactive" in myopts:
+			print ">>> Per packages interactive USE management"
+			mydepgraph = depgraph (myaction,myopts)
+			if myaction not in ["system","world"]:
+				ret,files = mydepgraph.select_files (myfiles)
+			else:
+				if not mydepgraph.xcreate(myaction):
+					print "!!! Depgraph creation failed."
+					sys.exit(1)
+			
+			mygraph = mydepgraph.digraph.copy()
+			retlist = mygraph.dict.keys()
+			
+			files = []
+			for i in retlist:
+				i = string.split (i)
+				if i[1] == "blocks":
+					print "!!! Error: Conflict problem..."
+					sys.exit(1)
+				if i[3] == "merge":
+					if myaction not in ["system","world"]:
+						for j in mygraph.dict.keys():
+							try:
+								files.index(string.split(j,' '))
+							except:
+								files.append(string.split(j,' '))
+					else:
+						try:
+							files.index(i)
+						except:
+							files.append(i)
+			for x in files:
+				t=portage.portdb.xmatch("bestmatch-visible",x[2])
+				if t != '':
+					x=t
+				print ">>> Interactive mode for "+green(x[2])
+
+				useruse=[]
+				explode = string.split (x[2],"/")
+				mycat=explode[0]
+				mypkg=explode[1]
+
+				if "--update" not in myopts:
+					whichpkg = mypkg
+					whichcat = mycat
+				else:
+					# we take the old package USECUSTOM
+					myoldbest=portage.best(portage.db[x[1]]["vartree"].dbapi.match(portage.pkgsplit(x[2])[0]))
+					myoldbest = string.split (myoldbest,'/')
+					whichcat = myoldbest[0]
+					whichpkg = myoldbest[1]
+					
+				mydblink = portage.dblink (whichcat,whichpkg,'/var/tmp/portage')
+				
+				
+				usecustom = mydblink.getelements("USECUSTOM")
+				do_ask=1
+				if usecustom != [] and "--usecustom" not in myopts:
+					to_print = "Use previous USE flags for this package? ("
+					for u in usecustom:
+						if u != "":
+							if u[0] == '-':
+								to_print = to_print+blue(u)
+							else:
+								to_print = to_print+green("+"+u)
+							to_print = to_print+" "
+					choice = raw_input (to_print+") [Y/n] ").lower ()
+					if choice != '':
+						if choice[0] == 'y':
+							do_ask=0
+						elif choice[0] != 'n':
+							print red("Bad input -- assume no")
+					else:
+						do_ask=0
+				elif usecustom == [] and "--usecustom" in myopts:
+					do_ask = 1
+				elif usecustom != [] and "--usecustom" in myopts:
+					do_ask = 0
+
+					
+				if do_ask == 0:
+					for u in usecustom:
+						if u != "":
+							if u[0] == '-':
+								try:
+									portage.usesplit.remove(u[1:])
+								except:
+									""
+							else:
+								try:
+									portage.usesplit.remove("-"+u)
+								except:
+									""
+							try:
+								portage.usesplit.remove(u)
+							except:
+								""
+							portage.usesplit.append(u)
+							
+
+				if do_ask == 1:
+					for ebuild_iuse in string.split(portage.portdb.aux_get(x[2],["IUSE"])[0], " "):
+						if ebuild_iuse != "":
+							to_print = "Use "+ebuild_iuse+"? ["
+							try:
+								if (portage.usesplit.index(ebuild_iuse) >= 0) :
+									default='y'
+									to_print = to_print+"Y/n"
+							except ValueError:
+								if ebuild_iuse != "":
+									default='n'
+									to_print = to_print+"y/N"
+							to_print = to_print+"]"
+
+							choice = raw_input (to_print+" ").lower ()
+							if choice == '':
+								state=default
+							else:
+								choice = choice[0]
+								if choice != default:
+									if choice == 'y':
+										print green('Enabled '+ebuild_iuse)
+										state='y'
+									elif choice == 'n':
+										print blue('Disabled '+ebuild_iuse)
+										state='n'
+									else:
+										print red('Bad input -- reverting to default... ('+default+')')
+										state=default
+								else:
+									state=default
+								
+
+							# we remove the ebuild from usesplit (it will be append, with his value next)
+							try:
+								portage.usesplit.remove(ebuild_iuse)
+							except:
+								""
+							try:
+								portage.usesplit.remove('-'+ebuild_iuse)
+							except:
+								""
+							if state == 'n':
+								ebuild_iuse = '-'+ebuild_iuse
+								
+							portage.usesplit.append(ebuild_iuse)
+							useruse.append(ebuild_iuse)
+	
+					# save use settings to USECUSTOM
+					print ">>> Save USE settings"
+					mydblink=portage.dblink(mycat,mypkg,"/var/tmp/portage")
+					mydblink.setelements(useruse,"USECUSTOM")
+			
+				portage.settings.configlist[-1]["USE"]=string.join(portage.usesplit," ")
+
+				print
+				
 		mydepgraph=depgraph(myaction,myopts)
 		if myaction in ["system","world"]:
 			print "Calculating",myaction,"dependencies  ",
@@ -1827,12 +1994,7 @@
 				print "!!! Depgraph creation failed."
 				sys.exit(1)
 			print "\b\b ...done!"
-		else:
-			if not myfiles:
-				print "emerge: please tell me what to do."
-				help()
-				sys.exit(1)
-				#we don't have any files to process; skip this step and exit
+		if myaction not in ["system","world"]:	
 			print "Calculating dependencies  ",
 			retval,favorites=mydepgraph.select_files(myfiles)
 			if not retval:


[-- Attachment #3: Type: text/plain, Size: 37 bytes --]

--
gentoo-dev@gentoo.org mailing list

^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev]  [update] emerge with interacitve use
  2003-05-01 12:50               ` Panard
@ 2003-05-05 12:18                 ` Panard
  0 siblings, 0 replies; 16+ messages in thread
From: Panard @ 2003-05-05 12:18 UTC (permalink / raw
  To: gentoo-dev

Hi,

Ok, I've correct some bugs, and do the USE flags diff between a new and an old 
version.

look at this link for patch and script:

http://data.inzenet.org/gentoo

thanks,

Panard

-- 
________________________________________________________
         panard@inzenet.org                http://www.inzenet.org

"Computers are like air-conditioners, they stop working properly when you open 
Windows."

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

* Re: [gentoo-dev] [update] emerge with interacitve use
  2003-04-29 17:03 Panard
@ 2003-05-12 22:50 ` Panard
  0 siblings, 0 replies; 16+ messages in thread
From: Panard @ 2003-05-12 22:50 UTC (permalink / raw
  To: gentoo-dev

Hi!

I've made the update of the interactivity for the new portage,

http://data.inzenet.org/gentoo

Thanks,

Panard

-- 
________________________________________________________
         panard@inzenet.org                http://www.inzenet.org

"Computers are like air-conditioners, they stop working properly when you open 
Windows."

--
gentoo-dev@gentoo.org mailing list


^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2003-05-12 22:57 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-04-29 18:34 [gentoo-dev] emerge with interacitve use Joshua Brindle
2003-04-29 18:53 ` Henti Smith
2003-04-29 19:12 ` Panard
2003-04-29 20:12   ` Vano D
     [not found]     ` <200304292236.07561.panard@inzenet.org>
2003-04-29 23:26       ` Vano D
2003-04-29 23:31     ` Panard
2003-04-30  0:31       ` Todd Berman
2003-04-30  0:39       ` Vano D
2003-04-30 19:50         ` [gentoo-dev] [update] " Panard
2003-04-30 22:52           ` Panard
2003-05-01  0:22             ` Daniel Armyr
2003-05-01 12:50               ` Panard
2003-05-05 12:18                 ` Panard
2003-04-30  0:18     ` [gentoo-dev] " Daniel Armyr
2003-04-29 20:15 ` Vano D
  -- strict thread matches above, loose matches on Subject: below --
2003-04-29 17:03 Panard
2003-05-12 22:50 ` [gentoo-dev] [update] " Panard

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox