View previous topic :: View next topic |
Author |
Message |
Monkeywrench Apprentice
Joined: 22 Jun 2004 Posts: 205 Location: Florida
|
Posted: Sun Jul 04, 2004 3:29 am Post subject: |
|
|
awesome script dr_shadow! I'm currently kind of learning python (my first language, actually) but I'd have no idea how to put this kind of thing together... really cool
The only things I would like to see would be colored output, specifically having the USE flags and package size in different colors, and having the options that the user invokes for pye extended to each emerge. What I mean is, for example, if I run "pye -upvD world" and emerge a few packages, one of the packages might say
" * Processed 347 info files: 1 errors; run with emerge --verbose to view errors."
even if I did pass "-v" to pye. But these are both small issues.
Thanks again for the script _________________ Folding@home -Join the Linux team (163)! |
|
Back to top |
|
|
Pink Veteran
Joined: 24 Jul 2003 Posts: 1062
|
Posted: Mon Jul 26, 2004 10:00 am Post subject: |
|
|
Great script, discovered it today and for what I've used it for so far it's been great.
Big thanks from me |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Mon Jul 26, 2004 1:16 pm Post subject: |
|
|
Thanks for the thanks:-) _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
zsoltika l33t
Joined: 13 Nov 2003 Posts: 634 Location: Budapest, Hungary
|
Posted: Wed Aug 18, 2004 6:53 pm Post subject: |
|
|
Some improvemnet suggestion:
- pye should have a "--version" param which displays pye's version.
- If there are nothing to update like below it should exit except asking me to choose from nothing.
Code: |
#pye -uUDv system
One moment...
These are the packages that I would merge, in order:
Calculating system dependencies ...done!
Total size of downloads: 0 kB
Enter the numbers of packages you want to emerge or unmerge (in case of prune),comma-separated (you can also specify ranges, like 1,4-8,12 etc.). Alternatively, you can specify packages to be excluded from the list; for this, start your first item with an ! (e.g. !2,4,8). For all packages write 'a'. If you want to quit, press q: |
Cheers from Budapest |
|
Back to top |
|
|
STEDevil Apprentice
Joined: 24 Apr 2003 Posts: 156
|
Posted: Sun Aug 29, 2004 7:39 am Post subject: |
|
|
dr_strange wrote: | stahlsau wrote: | hi,
imho, if you call just "pye", the script calls "emerge -Up world", and when you agree it does "emerge -U world", right?
If that´s right, it´s maybe the wrong way, ´cause -U can really break some things. (for me, it did once - so i looked for this option in your script before running it )
For me, i changed it to -uD, so i get the up- AND downgrades AND the dependencies. |
No, pye anything just runs emerge -p anything; you should add any other flags yourself. |
If that is the case, then perhaps the very first sentence in the very first post in this thread should be updated?
dr_strange wrote: | The following script basically gives you a numbered list of emerge -pU world output, and you can choose what to emerge by typing in the numbers simply... |
Also, it would probably also be a good idea to update the entry for pye in this thread https://forums.gentoo.org/viewtopic.php?t=67849
(but hopefully the ebuild for this little script will be added soon anyway =).
BTW, you haven't been thinking of adding a functionallity like ehush ( https://forums.gentoo.org/viewtopic.php?t=76161 ) to your script? Could be added as an option when proceding with the actual emerges, eg "sh" or "s hush". That would be really greate.
Visszlát |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Mon Aug 30, 2004 6:52 pm Post subject: |
|
|
zsoltika wrote: | Some improvemnet suggestion:
- pye should have a "--version" param which displays pye's version.
- If there are nothing to update like below it should exit except asking me to choose from nothing.
Code: |
#pye -uUDv system
One moment...
These are the packages that I would merge, in order:
Calculating system dependencies ...done!
Total size of downloads: 0 kB
Enter the numbers of packages you want to emerge or unmerge (in case of prune),comma-separated (you can also specify ranges, like 1,4-8,12 etc.). Alternatively, you can specify packages to be excluded from the list; for this, start your first item with an ! (e.g. !2,4,8). For all packages write 'a'. If you want to quit, press q: |
Cheers from Budapest |
Good ideas, thanks. I am back from vacation now, and will start thinking about implementing them and all the other suggestions in this thread.
Re-cheers from Budapest, see you on #gentoo-hu on freenode! _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Thu Sep 23, 2004 10:35 pm Post subject: |
|
|
Okay, I've decided to unleash version 0.8.4 onto the unsuspecting masses... There are quite a few changes:
- the script now uses the getopt.getopt() function for option parsing
- you have the following options now:
-v or --version: prints version
-h or --help
-s or --sync: makes emerge rsync before anything else
-e or --emergeopts: here you list the opts you would give to emerge: for instance pye -e uDv world would be equivalent with calling emerge -puDv world
-i or --info <package> will print all info about <package> that can be found in /var/db/pkg
-c or --category: will list all packages available in a portage category; e.g. pye -c games-fps will give you the list of all FPS games in portage, to choose from
-p or --prune: lists all installed packages, and the user can choose which nes to unmerge
When the packages are listed, you will have the following possibilities:
Code: |
* you can simply enter the numbers comma-separated, e.g. 1,3,5,6,8
* you can also specify ranges: 2,4-7,9,11-16
* "a" or "all" merges all packages in the list
* "!" excludes the specified packages (and merges the rest): !4,6-8,13
* "x" excludes _and_ masks them in /etc/portage/package.mask or ~/.pye/pye.mask
* "q" quits pye
|
- Pye now boasts of a config file! It would reside in ~/.pye/pye.conf (you should manually create the dir and file for the time being), and can contain the following variables:
Code: |
EMERGEOPTS = uDv
SILENT = no
MASKFILE_ETC_PORTAGE_PACKAGEMASK = no
|
With EMERGEOPTS you can specify your standard options for emerge (pye -e overrides this).
If SILENT is yes, pye will not print the list of choices as shown above.
The maskfile is a new feature. When you specify the packages to be excluded with an x (e.g. x3,6-9,23), pye will enter these packages either into /etc/portage/package.mask or ~/.pye/pye.mask, depending on the variable MASKFILE_ETC_PORTAGE_PACKAGEMASK (if yes, the former, if no, the latter). Those packages will not show up when you dp pye world the next time.
At the end, pye now gives emerge times for the individual packages.
The script is available from here. Please test extensively and suggest improvements.
TODO:
- --purge option to totally unmerge a package
- --sqlite backend
- HUSH variable to oppress emerge output
Enjoy,
dr_strange _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Fri Sep 24, 2004 6:41 am Post subject: |
|
|
further TODOs:
TODO:
- --purge option to totally unmerge a package
- --sqlite backend
- HUSH variable to oppress emerge output
- beautify output of --info
- provide some alternative output for --info if package is not installed
- colorize package listing if --v in emergeopts _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
nouse66 Apprentice
Joined: 09 Jan 2003 Posts: 194
|
Posted: Sun Sep 26, 2004 9:26 pm Post subject: |
|
|
i just grabbed your newest version and it's not running for me:
Code: |
aaron/ # pye world
Traceback (most recent call last):
File "/usr/sbin/pye", line 179, in ?
conf, defaultopts, silent, maskfile = parse_pyeconf(confpath)
File "/usr/sbin/pye", line 48, in parse_pyeconf
return confvar, optsvar, silentvar, maskfilevar
UnboundLocalError: local variable 'confvar' referenced before assignment
|
that's all i get, any idea what's wrong?
thanks,
aaron |
|
Back to top |
|
|
iverson0881 Apprentice
Joined: 08 Jan 2004 Posts: 285 Location: CA
|
Posted: Mon Sep 27, 2004 1:30 am Post subject: |
|
|
Code: | bash-2.05b# ./pye
Traceback (most recent call last):
File "./pye", line 179, in ?
conf, defaultopts, silent, maskfile = parse_pyeconf(confpath)
File "./pye", line 48, in parse_pyeconf
return confvar, optsvar, silentvar, maskfilevar
UnboundLocalError: local variable 'confvar' referenced before assignment
|
Yup having problems here too
NEVERMIND it works perfectly just make sure you create your ~/.pye/pye.conf as told |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Mon Sep 27, 2004 8:31 am Post subject: |
|
|
OK, another TODO: make an ebuild that installs pye + creates the conf file and empty mask file for the user
thx guys _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
Chickpea l33t
Joined: 03 Jun 2002 Posts: 846 Location: Vancouver WA
|
Posted: Tue Sep 28, 2004 2:47 pm Post subject: |
|
|
I just working with this today and I get a couple of errors. If I use pye alone i get this error message:
Code: |
These are the packages that I would merge, in order:
Calculating dependencies
emerge: there are no masked or unmasked ebuilds to satisfy "w".
!!! Error calculating dependencies. Please correct.
No packages to emerge.
|
if I try to use this option: Code: | -p or --prune will list all installed packages, from which you can pick the ones
to unmerge (proceed carefully!) |
Code: | emergeopts:
Traceback (most recent call last):
File "/usr/bin/pye", line 242, in ?
print "emergeopts: ", green(emergeopts)
NameError: name 'emergeopts' is not defined
|
What is going on? |
|
Back to top |
|
|
asph l33t
Joined: 25 Aug 2003 Posts: 741 Location: Barcelona, Spain
|
Posted: Tue Sep 28, 2004 3:29 pm Post subject: |
|
|
iverson0881 wrote: | Code: | bash-2.05b# ./pye
Traceback (most recent call last):
File "./pye", line 179, in ?
conf, defaultopts, silent, maskfile = parse_pyeconf(confpath)
File "./pye", line 48, in parse_pyeconf
return confvar, optsvar, silentvar, maskfilevar
UnboundLocalError: local variable 'confvar' referenced before assignment
|
Yup having problems here too
NEVERMIND it works perfectly just make sure you create your ~/.pye/pye.conf as told |
same error here.. do we have to create the config file?
a suggestion may be that pye creates the config file with default settings if it's not here, or ask you the values (showing defaults) the first time you run it _________________ gentoo sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; emerge --oneshot condom; mount; fsck; gasp; more; yes; yes; yes; more; umount; emerge -C condom; make clean; sleep |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Tue Sep 28, 2004 5:59 pm Post subject: |
|
|
yes, please, for the time being do create the conf file, I will amend the script and post a new version soon _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
asph l33t
Joined: 25 Aug 2003 Posts: 741 Location: Barcelona, Spain
|
Posted: Tue Sep 28, 2004 6:26 pm Post subject: |
|
|
i created the config file, now i get another error:
emerge: there are no ebuilds to satisfy "w". _________________ gentoo sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; emerge --oneshot condom; mount; fsck; gasp; more; yes; yes; yes; more; umount; emerge -C condom; make clean; sleep |
|
Back to top |
|
|
Keffin Apprentice
Joined: 14 Feb 2004 Posts: 202 Location: England
|
Posted: Tue Sep 28, 2004 6:37 pm Post subject: |
|
|
nastassja wrote: | i created the config file, now i get another error:
emerge: there are no ebuilds to satisfy "w". |
I got that when I just ran "pye". I ran "pye world" and got past that, then got a ~/.pye/pye.mask doesn't exist error. I created that then it worked like a charm. _________________ Always cut the deck if it ups your odds. |
|
Back to top |
|
|
stahlsau Guru
Joined: 09 Jan 2004 Posts: 584 Location: WildWestwoods
|
Posted: Wed Sep 29, 2004 6:27 am Post subject: |
|
|
hi,
just wanna say: nice script, dr_strange, thank you!
I´m using this for a long time embedded into my own update-script, works very well. Recently, i had to do a "emerge -e world", which in former times kept failing at the moment i went to bed. With "pye -e world" and "step-emerge" there are no problems, and i see the other day which packages failed overnight. Very nice!
(and please excuse my language, it´s early in the morning ) |
|
Back to top |
|
|
asph l33t
Joined: 25 Aug 2003 Posts: 741 Location: Barcelona, Spain
|
Posted: Wed Sep 29, 2004 7:22 am Post subject: |
|
|
works fine now, steps i followed:
Code: | # cd
# wget http://magenta.linuxforum.hu/downloads/pye
# chmod +x pye
# mkdir ~/.pye
# echo "EMERGEOPTS = uDv" > ~/.pye/pye.conf
# echo "SILENT = no" >> ~/.pye/pye.conf
# echo "MASKFILE_ETC_PORTAGE_PACKAGEMASK = no" >> ~/.pye/pye.conf
# touch ~/.pye/pye.mask
# ./pye world |
thanks for pye, works fine _________________ gentoo sex is updatedb; locate; talk; date; cd; strip; look; touch; finger; unzip; uptime; gawk; head; emerge --oneshot condom; mount; fsck; gasp; more; yes; yes; yes; more; umount; emerge -C condom; make clean; sleep |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Wed Sep 29, 2004 7:41 am Post subject: |
|
|
stahlsau wrote: | hi,
just wanna say: nice script, dr_strange, thank you!
I´m using this for a long time embedded into my own update-script, works very well. Recently, i had to do a "emerge -e world", which in former times kept failing at the moment i went to bed. With "pye -e world" and "step-emerge" there are no problems, and i see the other day which packages failed overnight. Very nice!
(and please excuse my language, it´s early in the morning ) |
glad you like it; please also test the new version, I'd like to catch as many bugs as possible _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
Chickpea l33t
Joined: 03 Jun 2002 Posts: 846 Location: Vancouver WA
|
Posted: Wed Sep 29, 2004 4:53 pm Post subject: |
|
|
The only thing that I noticed and dont like with the current version (0.8.4) is that pye -p doesn't work and if you try pye prune, it lists the dups (much like it works now)
According to the help pye outputs pye -p or pye --prune should list all of the packages installed on your system giving you an opportunity to remove packages in the same numbering fashion.
It has worked like that in the past but the current script doesn't do that. |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Sun Oct 03, 2004 9:09 pm Post subject: |
|
|
Version 0.8.4.1 is up
Two bugfixes:
- pye --prune now works (I hope )
- the script now creates a default ~/.pye directory and pye.conf and pye.mask files if they do not exist _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
Chickpea l33t
Joined: 03 Jun 2002 Posts: 846 Location: Vancouver WA
|
Posted: Thu Oct 07, 2004 9:07 pm Post subject: |
|
|
dr_strange wrote: | Version 0.8.4.1 is up
Two bugfixes:
- pye --prune now works (I hope )
- the script now creates a default ~/.pye directory and pye.conf and pye.mask files if they do not exist |
Just wanted to say that the bug fixes worked. I dont get the previous errors I received when running the script...especially the --prune option.
Great work! |
|
Back to top |
|
|
hepta_sean Apprentice
Joined: 27 Apr 2004 Posts: 246 Location: Berlin, Germany
|
Posted: Tue Nov 09, 2004 11:29 pm Post subject: |
|
|
I already posted some problems a few months ago. They are still there with this version:
1.) You only record category and package, but not the version in the merge list. Therefore, you can only emerge the latest (unmasked) version with pye, not any previous version (this also happens in world updates, when an old slot is to be updated):
Code: | sean@lois ~/bin $ pye-0.8.4.1 =gtk+-1.2.10-r11
One moment...
These are the packages that I would merge, in order:
Calculating dependencies ...done!
0): [ebuild R ] x11-libs/gtk+-1.2.10-r11
You can now enter the numbers of packages you want to emerge/unmerge/exclude.
...
Enter your choices now: a
I'm about to emerge the following packages: x11-libs/gtk+
Is this correct? Choose an option: e(merge)/n(o)/q(uit): q
sean@lois ~/bin $ emerge -p x11-libs/gtk+
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[ebuild R ] x11-libs/gtk+-2.4.13 |
2.) mergethis() gives false positives on remerges, because it only checks, if the latest version is installed:
Code: | sean@lois ~/bin $ pye-0.8.4.1 gtk+
One moment...
These are the packages that I would merge, in order:
Calculating dependencies ...done!
0): [ebuild R ] x11-libs/gtk+-2.4.13
You can now enter the numbers of packages you want to emerge/unmerge/exclude.
...
Enter your choices now: a
I'm about to emerge the following packages: x11-libs/gtk+
Is this correct? Choose an option: e(merge)/n(o)/q(uit): e
emerge: root access required.
This is digest of pye on Wed, 10 Nov 2004 00:05:47:
x11-libs/gtk+: Merged in 0.02 minutes
Check /var/log/emerge for details. Exiting. |
3.) pye does not work with binary packages:
Code: | sean@lois ~/bin $ pye-0.8.4.1 -e k gtk+
One moment...
These are the packages that I would merge, in order:
Calculating dependencies ...done!
[binary R ] x11-libs/gtk+-2.4.13
No packages to emerge. |
4.) Since you call emerge directly with each package, pye enters every package into the world file. Over time the world file will contain every single package of the system. Please use "--oneshot".
5.) With the changed way of giving options to emerge, I cannot give long options anymore (some options like "--oneshot" or "--newuse" do not have short variants, so this would be necessary).
Would be nice, if you could consider these issues. |
|
Back to top |
|
|
dr_strange Guru
Joined: 16 Apr 2002 Posts: 480 Location: Cambridge, UK
|
Posted: Fri Nov 19, 2004 9:01 am Post subject: |
|
|
Thank you all for the input and suggestions. My Gentoo PC is currently suffering from a serious malaise, but as soon as it gets repaired I will return to my script. _________________ shine on,
dr_strange
Set the Controls for the Heart of Gentoo
http://magenta.linuxforum.hu |
|
Back to top |
|
|
theDreamer Tux's lil' helper
Joined: 20 Oct 2003 Posts: 118
|
Posted: Fri Dec 31, 2004 2:35 pm Post subject: world file |
|
|
pye is a very nice tool - good work.
though, i have one problem with it:
the usage of the tool is manually emerging parts of the world/system list (mostly).
When emerging using -D you fill the world file with system sub packages you dont want manually add but that should be dependent on other packages.
for example:
the output of pye world results in both evolution and evolution-data-server.
when using pye without explicitly saying not emerging evolution-data-server (which is a sub-package of evolution) it will actually add it to the world file.
this is just a small example for expanding the world file to hold unnecessary packages.
This is standing against the logic of using the system dependencies and having minimal world file.
there's another nice tool that talks about what i've tried to explain:
https://forums.gentoo.org/viewtopic.php?t=142475
enough talking, i think that a small fix for this is required and also simple:
when emerging the packages you should add --oneshot.
what do you think? _________________ Cheers,
Nir Dremer
www.dremer.org |
|
Back to top |
|
|
|
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|