On 11/12/2012 09:43 AM, Panu Matilainen wrote:
On 11/12/2012 08:56 AM, Adam Williamson wrote:
On 2012-11-11 22:02, Panu Matilainen wrote:
Based on a quick grep, it doesn't seem to consider obsoletion at all,
which explains what I see on the DVD and perhaps deserves looking at.
I think the basic idea is that pungi isn't supposed to painfully
re-implement yum.
Meh. Of course not. But unlike yum, pungi deals with space-constrained
images and if it ends up pulling useless cruft in those images then it's
not doing the best job it can for the very specific task it has.
If packages are obsoleted, they're supposed to be
retired. If something's obsoleted but not retired, that's a packaging
error.
No disagreement there. But quite obviously nothing is currently finding
those packaging errors, much of the "suspect items" list I posted has
been there for years already. Just haven't gotten around to mention it
anywhere.
I'll shut up now and go see if I can actually do something about it.
FWIW, this is what I get with F18 pungi compose:
-rw-r--r--. 1 root root 240 Nov 12 21:10 Fedora-18-x86_64-CHECKSUM
-rw-r--r--. 1 root root 4687134720 Nov 12 21:10 Fedora-18-x86_64-DVD.iso
-rw-r--r--. 2 root root 268435456 Nov 12 19:22 Fedora-18-x86_64-netinst.iso
And this is with a patched pungi to filter out obsoleted packages:
-rw-r--r--. 1 root root 240 Nov 12 21:02 Fedora-18-x86_64-CHECKSUM
-rw-r--r--. 1 root root 4550819840 Nov 12 21:01 Fedora-18-x86_64-DVD.iso
-rw-r--r--. 2 root root 268435456 Nov 12 19:22 Fedora-18-x86_64-netinst.iso
It might not save the whales or even the day, but the difference is
simply dead weight of obsoleted packages, and the list of packages
excluded this way shockingly matches what the install-everything rpm
"test" found.
Here's the diff to pungi in case somebody is interested:
[root@turre pypungi]# diff -u __init__.py.orig __init__.py
--- __init__.py.orig 2012-11-12 19:12:12.592544072 +0200
+++ __init__.py 2012-11-12 21:12:14.139970112 +0200
@@ -336,6 +336,14 @@
pkg_sack.remove(pkg)
break
+ # weed out obsoleted packages
+ obsoleters =
pkg.obsoletedBy(self.ayum.pkgSack.searchObsoletes(pkg.name), limit=1)
+ if obsoleters:
+ obs = obsoleters[0]
+ self.logger.info("Excluding %s.%s (obsoleted by %s.%s)"
% (pkg.name, pkg.arch, obs.name, obs.arch))
+ self.excluded_pkgs[pkg.nvra] = pkg
+ pkg_sack.remove(pkg)
+
return pkg_sack
def getPackageDeps(self, po):
- Panu -
--
devel mailing list
devel@xxxxxxxxxxxxxxxxxxxxxxx
https://admin.fedoraproject.org/mailman/listinfo/devel