summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChong Lu <Chong.Lu@windriver.com>2014-10-13 15:43:20 +0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2014-10-24 17:36:14 +0100
commitd7cb96f28ddab87653d4cc03ea1b478c4efac616 (patch)
tree268022b96dd17db3a232de7d01bdda5e3eef90ae
parentfd50427935b242971202b4f855ae291d95c261a6 (diff)
downloadpoky-d7cb96f28ddab87653d4cc03ea1b478c4efac616.tar.gz
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. (From OE-Core rev: fc0668a019eca422540ceab3efcd2b2a27dd79e0) Signed-off-by: Chong Lu <Chong.Lu@windriver.com> Signed-off-by: Ross Burton <ross.burton@intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r--meta/lib/oe/package_manager.py1
-rw-r--r--meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch37
-rw-r--r--meta/recipes-devtools/python/python-smartpm_1.4.1.bb1
3 files changed, 39 insertions, 0 deletions
diff --git a/meta/lib/oe/package_manager.py b/meta/lib/oe/package_manager.py
index 27fdf26e07..ffb83b2cba 100644
--- a/meta/lib/oe/package_manager.py
+++ b/meta/lib/oe/package_manager.py
@@ -838,6 +838,7 @@ class RpmPM(PackageManager):
838 % prefer_color) 838 % prefer_color)
839 839
840 self._invoke_smart(cmd) 840 self._invoke_smart(cmd)
841 self._invoke_smart('config --set rpm-ignoresize=1')
841 842
842 # Write common configuration for host and target usage 843 # Write common configuration for host and target usage
843 self._invoke_smart('config --set rpm-nolinktos=1') 844 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
index 0000000000..8a27f2583a
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/smart-add-for-rpm-ignoresize-check.patch
@@ -0,0 +1,37 @@
1python-smartpm: Add checking for "rpm-ignoresize" option
2
3The do_rootfs takes a very long time when build host has mounted many NFS
4devices. syscall lstat() was being called on every filesystem mounted on the
5build host during building.
6The reason for the lstat() is that rpm is verifying that enough free disk space
7is available to do the install. However, since the install is into the target
8rootfs it should not matter how much free space there is in the host mounts.
9Add checking for "rpm-ignoresize", by it, smart can make whether RPM skip
10checking for diskspace when install a rpm package.
11
12Upstream-Status: Pending
13
14Signed-off-by: wenlin.kang <wenlin.kang@windriver.com>
15Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
16---
17 smart/backends/rpm/pm.py | 4 ++++
18 1 file changed, 4 insertions(+)
19
20diff --git a/smart/backends/rpm/pm.py b/smart/backends/rpm/pm.py
21index 5da9ee6..f0488ec 100644
22--- a/smart/backends/rpm/pm.py
23+++ b/smart/backends/rpm/pm.py
24@@ -241,6 +241,10 @@ class RPMPackageManager(PackageManager):
25 except AttributeError:
26 probfilter |= rpm.RPMPROB_FILTER_IGNOREARCH
27
28+ if sysconf.get("rpm-ignoresize", False):
29+ probfilter |= rpm.RPMPROB_FILTER_DISKNODES
30+ probfilter |= rpm.RPMPROB_FILTER_DISKSPACE
31+
32 if force or reinstall:
33 probfilter |= rpm.RPMPROB_FILTER_REPLACEPKG
34 probfilter |= rpm.RPMPROB_FILTER_REPLACEOLDFILES
35--
361.9.1
37
diff --git a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
index f2eb33d3a3..c75f10fbf3 100644
--- a/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
+++ b/meta/recipes-devtools/python/python-smartpm_1.4.1.bb
@@ -33,6 +33,7 @@ SRC_URI = "\
33 file://smart-attempt.patch \ 33 file://smart-attempt.patch \
34 file://smart-filename-NAME_MAX.patch \ 34 file://smart-filename-NAME_MAX.patch \
35 file://smart-rpm4-fixes.patch \ 35 file://smart-rpm4-fixes.patch \
36 file://smart-add-for-rpm-ignoresize-check.patch \
36 " 37 "
37 38
38SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6" 39SRC_URI[md5sum] = "573ef32ba177a6b3c4bf7ef04873fcb6"