summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools
diff options
context:
space:
mode:
authorMarkus Lehtonen <markus.lehtonen@linux.intel.com>2016-09-14 11:46:06 +0300
committerRichard Purdie <richard.purdie@linuxfoundation.org>2016-09-23 15:27:05 +0100
commit5368cfee9e2c2a9bf0c6f9718f4c33105c3c6ac0 (patch)
treed53aed0690d4bbce5aa7c5185750ac8f56e2a051 /meta/recipes-devtools
parente588da43b0299d13a70dcee02488cca3d7b52541 (diff)
downloadpoky-5368cfee9e2c2a9bf0c6f9718f4c33105c3c6ac0.tar.gz
python-smartpm: use md5 as the digest for rpm_sys channel
Use md5 sum instead of mtime as the "digest" method for rpm_sys channel. The digest is used to determine if the channel has been updated. It was found out that mtime was not a reliable digest. On some systems mtime of the rpm db does not get updated after every transaction if transactions (smart install / remove commands) are fired in quick succession. As a consequence smartpm cache and rpm db get out of sync. [YOCTO #10244] (From OE-Core rev: e7267b4e78461e71a1175f93e2eb5e90272c2b47) (From OE-Core rev: c126a48a38e4f9c57f48b9ef77537cfd98901fb3) Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Armin Kuster <akuster808@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'meta/recipes-devtools')
-rw-r--r--meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch38
-rw-r--r--meta/recipes-devtools/python/python-smartpm_git.bb1
2 files changed, 39 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch b/meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch
new file mode 100644
index 0000000000..2f14a124ef
--- /dev/null
+++ b/meta/recipes-devtools/python/python-smartpm/channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch
@@ -0,0 +1,38 @@
1channels/rpm_sys: use md5sum instead of mtime as the digest
2
3Use the internal getFileDigest() function (which defaults to md5) instead of
4mtime for getting the file digest. On some systems mtime proved to be
5unreliable because of delayed update. This caused smart to miss rpm db updates
6and thus get its understanding of installed packages out of sync.
7
8Upstream-Status: Pending
9
10Signed-off-by: Markus Lehtonen <markus.lehtonen@linux.intel.com>
11---
12 smart/channels/rpm_sys.py | 3 ++-
13 1 file changed, 2 insertions(+), 1 deletion(-)
14
15diff --git a/smart/channels/rpm_sys.py b/smart/channels/rpm_sys.py
16index b9fda27..6f1fe94 100644
17--- a/smart/channels/rpm_sys.py
18+++ b/smart/channels/rpm_sys.py
19@@ -22,6 +22,7 @@
20 from smart.backends.rpm.header import RPMDBLoader
21 from smart.backends.rpm.base import getTS, rpm_join_dbpath
22 from smart.channel import PackageChannel
23+from smart.util.filetools import getFileDigest
24 from smart import *
25 import os
26
27@@ -35,7 +36,7 @@ class RPMSysChannel(PackageChannel):
28 dbdir = rpm_join_dbpath(sysconf.get("rpm-root", "/"),
29 sysconf.get("rpm-dbpath", "var/lib/rpm"))
30 path = os.path.join(dbdir, "Packages")
31- digest = os.path.getmtime(path)
32+ digest = getFileDigest(path)
33 if digest == self._digest:
34 return True
35 self.removeLoaders()
36--
372.6.6
38
diff --git a/meta/recipes-devtools/python/python-smartpm_git.bb b/meta/recipes-devtools/python/python-smartpm_git.bb
index e6dd02ed5e..f5e97be099 100644
--- a/meta/recipes-devtools/python/python-smartpm_git.bb
+++ b/meta/recipes-devtools/python/python-smartpm_git.bb
@@ -26,6 +26,7 @@ SRC_URI = "\
26 file://smart-locale.patch \ 26 file://smart-locale.patch \
27 file://smartpm-rpm5-support-check-signatures.patch \ 27 file://smartpm-rpm5-support-check-signatures.patch \
28 file://smart-add-deugging-when-targetpath-is-empty.patch \ 28 file://smart-add-deugging-when-targetpath-is-empty.patch \
29 file://channels-rpm_sys-use-md5sum-instead-of-mtime-as-the-.patch \
29 " 30 "
30 31
31SRCREV = "407a7eca766431257dcd1da15175cc36a1bb22d0" 32SRCREV = "407a7eca766431257dcd1da15175cc36a1bb22d0"