summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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"