View previous topic :: View next topic |
Author |
Message |
line72 Apprentice
Joined: 13 Jun 2002 Posts: 212
|
Posted: Tue Jul 09, 2002 2:05 pm Post subject: portage not putting everything in my world file |
|
|
I emerged gnome, and i build a ton of stuff including xfree, but in my world file, i only have the entry gnome. If i build things one at a time, it puts it in my world file, but if i build a program that has a couple dependencies, none of the dependencies go into the world file. I'm running 1.3b with portage 2.0.11 (2.0.10) was doing the same thing
-Mark |
|
Back to top |
|
|
AutoBot l33t
Joined: 22 Apr 2002 Posts: 968 Location: Usually Out
|
Posted: Tue Jul 09, 2002 2:28 pm Post subject: Re: portage not putting everything in my world file |
|
|
line72 wrote: | I emerged gnome, and i build a ton of stuff including xfree, but in my world file, i only have the entry gnome. If i build things one at a time, it puts it in my world file, but if i build a program that has a couple dependencies, none of the dependencies go into the world file. I'm running 1.3b with portage 2.0.11 (2.0.10) was doing the same thing
-Mark |
Try this script that relies on gentoolkits qpkg:
Code: |
#!/usr/bin/perl -w
use strict;
# 12/09/2002 - Updated for use with app-admin/gentoolkit-0.1.11
my %syspackages; # System packages (filtered - shouldn't be in world)
my @array; # Temp array
# Die if process owner isn't root
if ($< != 0) {
print "You must be root to run this script.\n\n";
exit 0;
}
# Determine which packages are part of the "system" set
print "Determining system packages for exclusion (use emerge system for updating such packages) ...\n";
my @temp = `emerge --pretend --emptytree system` or die "Problem invoking emerge!\n";
foreach (@temp) {
# Push system packages into temporary array
if (/\] .+\/(.+?)-.+\ /s) {
push @array, $1 => 1;
}
}
# Assign to hash for fast checking below
%syspackages = @array;
# Grab list of installed packages
print "Determining installed packages on your system ...\n";
my @packages = `qpkg -I` or die "Problem invoking qpkg, make sure you have gentoolkit installed!\n";
# Now filter and output to world.new
print "Lists compiled. Attempting to create /var/cache/edb/world.new ...\n";
open(FILE, '>/var/cache/edb/world.new') || die "Couldn't create /var/cache/edb/world.new - check permissions?\n";
foreach (@packages) {
# Grab pure package name
/^\x1B.+?m(.+)\/\x1B.+?m(.+)\ /s;
my $package = "$1\/$2";
my $name = $2;
# Output package to world.new unless it is a system package
unless ($syspackages{$name}) {
print FILE "$package\n" || die "Could not output $package to /var/cache/edb/world.new";
print "Added: $package\n";
}
}
close(FILE);
# Finished
print "Success. Please edit the world.new file to your satisfaction. Then rename to world.\n\n";
1;
|
_________________ This message self destructed a long time ago. |
|
Back to top |
|
|
asimon l33t
Joined: 27 Jun 2002 Posts: 979 Location: Germany, Old Europe
|
Posted: Tue Jul 09, 2002 2:36 pm Post subject: Re: portage not putting everything in my world file |
|
|
AFAIK Portage only puts packages into the world file which explicitly appear on the command line, i.e. dependencies which get installed too but are not mentioned at the command line don't get into the world file.
On a mailing list I read that this is a feature and not a bug.
I would prefer when portage would put everything into the world file.
The problem with current Portage's behaviour:
A user executes "emerge gnome" and thus only gnome ends up in the world file. If for example a security fix happens for gnome-terminal, then "emerge --update world" would not update gnome-terminal (please correct me if I am wrong). That would happen only if gnome will get a higher version number too. And seeing that Gentoo's developers love to change ebuilds without increasing version numbers at all, I don't believe they would change the gnome version number when a security fix in gnome-terminal happens. IMHO this is a major flaw in Portage.
Cheers,
Andreas |
|
Back to top |
|
|
delta407 Bodhisattva
Joined: 23 Apr 2002 Posts: 2876 Location: Chicago, IL
|
Posted: Tue Jul 09, 2002 5:22 pm Post subject: Re: portage not putting everything in my world file |
|
|
asimon wrote: | And seeing that Gentoo's developers love to change ebuilds without increasing version numbers at all |
Untrue. Look at the repository; things are rarely if ever changed after they're checked in. New ebuilds, even if it's the same package version, get an -r1, -r2, -r3 syntax. _________________ I don't believe in witty sigs.
Last edited by delta407 on Tue Jul 09, 2002 6:44 pm; edited 1 time in total |
|
Back to top |
|
|
asimon l33t
Joined: 27 Jun 2002 Posts: 979 Location: Germany, Old Europe
|
Posted: Tue Jul 09, 2002 6:00 pm Post subject: Re: portage not putting everything in my world file |
|
|
delta407 wrote: | asimon wrote: | And seeing that Gentoo's developers love to change ebuilds without increasing version numbers at all |
Untrue. Look at the repository; things are rarely if ever changed after they're checked in. New ebuilds, even if it's the same package version, get an -r1, -r2, -r3 syntax. |
This is not always the case. One example: on June 25th 2002 some big patches were added to XFree 4.0.2-r12. No change of the release number. Unfortunately those patches triggered an issue which caused the X11 module loader to not function at all. This bug got fixed and the release number was still not increased. So in the end there were three groups of people all having installed xfree-4.0.2-r12: the first group with the initial xfree ebuild, the second one with the patched xfree and a non-working module loader and the third group had the patched xfree with a working module loader -- all with the same release number. IMHO this is no good software engineering, but other people may see it otherwise.
This is no individual case. Okay, there is the cvs log, but things like "small changes", or "fixlets" don't really help in getting to know what changed. Also the ChangeLog files are not always updated, too. This is from the ChangeLog template:
Added initial ChangeLog which should be updated whenever the package is updated in any way.
See for example sys-libs/db. The additions of db-3.2.9, db-3.3.11, and db-4.0.14 are not mentioned at all (there were also some changes in the ebuild script too). Okay, this db thing is nitpicking, but the xfree example above is really bad IMHO.
Sure these cases don't represent the vast majority of ebuilds, but it can't hurt to be aware of the problem. Having different packages with the same realease number out can be confusing.
BTW, following your link I get "/cgi-bin/viewcvs.cgi/gentoo-x86/CVS: unknown location"
Cheers,
Andreas |
|
Back to top |
|
|
delta407 Bodhisattva
Joined: 23 Apr 2002 Posts: 2876 Location: Chicago, IL
|
Posted: Tue Jul 09, 2002 6:46 pm Post subject: Re: portage not putting everything in my world file |
|
|
asimon wrote: | Okay, this db thing is nitpicking, but the xfree example above is really bad IMHO. |
Agreed on both counts. BTW, when you see CVS log entries like "fixlets" you can always look at the diff to see what, exactly, was changed.
asimon wrote: | BTW, following your link I get "/cgi-bin/viewcvs.cgi/gentoo-x86/CVS: unknown location" |
My web browser got confused, evidently... link fixed. (Unless it's still confused, that is.) _________________ I don't believe in witty sigs. |
|
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
|
|