Inspired by recent fedora-devel list discussion, here's a patch to save
some space from images by excluding obsoleted packages. Arguably those
packages should just die and not hang around in the repos, but these
undead packages seem fairly persistent...
This is what I see with F18 install DVD:
Before patch:
-rw-r--r--. 1 root root 4687134720 Nov 12 21:10 Fedora-18-x86_64-DVD.iso
With the patch:
-rw-r--r--. 1 root root 4550819840 Nov 12 21:01 Fedora-18-x86_64-DVD.iso
This is what makes up the difference:
[root@turre tmp]# grep obsoleted pungi-exclude-obsoletes.log
Pungi:INFO: Excluding ql2100-firmware.noarch (obsoleted by
linux-firmware.noarch)
Pungi:INFO: Excluding grub.x86_64 (obsoleted by grub2.x86_64)
Pungi:INFO: Excluding rt61pci-firmware.noarch (obsoleted by
linux-firmware.noarch)
Pungi:INFO: Excluding ql23xx-firmware.noarch (obsoleted by
linux-firmware.noarch)
Pungi:INFO: Excluding ql2200-firmware.noarch (obsoleted by
linux-firmware.noarch)
Pungi:INFO: Excluding rt73usb-firmware.noarch (obsoleted by
linux-firmware.noarch)
Pungi:INFO: Excluding module-init-tools.x86_64 (obsoleted by kmod.x86_64)
Pungi:INFO: Excluding maven-shared-common-artifact-filters.noarch
(obsoleted by maven-common-artifact-filters.noarch)
Pungi:INFO: Excluding jaxen-bootstrap.noarch (obsoleted by jaxen.noarch)
Pungi:INFO: Excluding maven-shared-dependency-tree.noarch (obsoleted by
maven-dependency-tree.noarch)
Pungi:INFO: Excluding dvipng.x86_64 (obsoleted by texlive-dvipng-bin.x86_64)
Pungi:INFO: Excluding xdvik.x86_64 (obsoleted by texlive-xdvi-bin.x86_64)
Pungi:INFO: Excluding dvipdfmx.x86_64 (obsoleted by
texlive-dvipdfmx-bin.x86_64)
Pungi:INFO: Excluding dvipdfm.x86_64 (obsoleted by
texlive-dvipdfm-bin.noarch)
Pungi:INFO: Excluding nfs-utils-lib.x86_64 (obsoleted by libnfsidmap.x86_64)
[root@turre tmp]#
- Panu -
>From 1c789008c8f4c3647e5087e7f9a2126a8645d660 Mon Sep 17 00:00:00 2001
From: Panu Matilainen <[email protected]>
Date: Tue, 13 Nov 2012 08:45:40 +0200
Subject: [PATCH] Exclude obsoleted packages from images
Avoid dragging undead packages which would just be replaced by something
else in the next 'yum update' into space-constrained images.
---
src/pypungi/__init__.py | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/pypungi/__init__.py b/src/pypungi/__init__.py
index a2ac2fc..2894dcd 100644
--- a/src/pypungi/__init__.py
+++ b/src/pypungi/__init__.py
@@ -336,6 +336,15 @@ class Pungi(pypungi.PungiBase):
pkg_sack.remove(pkg)
break
+ # weed out obsoleted packages
+ if pkg.nvra not in self.excluded_pkgs:
+ 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):
--
1.7.7.6
--
buildsys mailing list
[email protected]
https://admin.fedoraproject.org/mailman/listinfo/buildsys