]> code.ossystems Code Review - openembedded-core.git/commitdiff
python-smartpm: Add checking for "rpm-ignoresize" option
authorChong Lu <Chong.Lu@windriver.com>
Mon, 13 Oct 2014 07:43:20 +0000 (15:43 +0800)
committerRichard Purdie <richard.purdie@linuxfoundation.org>
Fri, 24 Oct 2014 16:31:56 +0000 (17:31 +0100)
The do_rootfs takes a very long time when build host has mounted many NFS
devices. syscall lstat() was being called on every filesystem mounted on the
build host during building.
The reason for the lstat() is that rpm is verifying that enough free disk space
is available to do the install. However, since the install is into the target
rootfs it should not matter how much free space there is in the host mounts.
Add checking for "rpm-ignoresize", by it, smart can make whether RPM skip
checking for diskspace when install a rpm package.

Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Ross Burton <ross.burton@intel.com>
meta/lib/oe/package_manager.py
meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch [new file with mode: 0644]
meta/recipes-devtools/python/python-smartpm_1.4.1.bb

index 27fdf26e0711ecc632cd6a596ad9d74b7a4a96a2..ffb83b2cba9dc1666a1fc1cac47872ec34975d6f 100644 (file)
@@ -838,6 +838,7 @@ class RpmPM(PackageManager):
                         % prefer_color)
 
         self._invoke_smart(cmd)
+        self._invoke_smart('config --set rpm-ignoresize=1')
 
         # Write common configuration for host and target usage
         self._invoke_smart('config --set rpm-nolinktos=1')
diff --git a/meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch b/meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch
new file mode 100644 (file)
index 0000000..8a27f25
--- /dev/null
@@ -0,0 +1,37 @@
+python-smartpm: Add checking for "rpm-ignoresize" option
+
+The do_rootfs takes a very long time when build host has mounted many NFS
+devices. syscall lstat() was being called on every filesystem mounted on the
+build host during building.
+The reason for the lstat() is that rpm is verifying that enough free disk space
+is available to do the install. However, since the install is into the target
+rootfs it should not matter how much free space there is in the host mounts.
+Add checking for "rpm-ignoresize", by it, smart can make whether RPM skip
+checking for diskspace when install a rpm package.
+
+Upstream-Status: Pending
+
+Signed-off-by: wenlin.kang <wenlin.kang@windriver.com>
+Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
+---
+ smart/backends/rpm/pm.py | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
+index 5da9ee6..f0488ec 100644
+--- a/smart/backends/rpm/pm.py
++++ b/smart/backends/rpm/pm.py
+@@ -241,6 +241,10 @@ class RPMPackageManager(PackageManager):
+         except AttributeError:
+             probfilter |= rpm.RPMPROB_FILTER_IGNOREARCH
++        if sysconf.get("rpm-ignoresize", False):
++            probfilter |= rpm.RPMPROB_FILTER_DISKNODES
++            probfilter |= rpm.RPMPROB_FILTER_DISKSPACE
++
+         if force or reinstall:
+             probfilter |= rpm.RPMPROB_FILTER_REPLACEPKG
+             probfilter |= rpm.RPMPROB_FILTER_REPLACEOLDFILES
+-- 
+1.9.1
+
index f2eb33d3a3da06695399f000979245dbcc7f1c71..c75f10fbf3b7bad8b2edf27f1697f0dbe5dff258 100644 (file)
@@ -33,6 +33,7 @@ SRC_URI = "\
           file://smart-attempt.patch \
           file://smart-filename-NAME_MAX.patch \
           file://smart-rpm4-fixes.patch \
+          file://smart-add-for-rpm-ignoresize-check.patch \
          "
 
 SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"