[oe-commits] [openembedded-core] 44/66: opkg-utils: backport a patch to fix a sstate timestamp issue

git at git.openembedded.org git at git.openembedded.org
Tue May 21 23:33:07 UTC 2019


This is an automated email from the git hooks/post-receive script.

rpurdie pushed a commit to branch thud
in repository openembedded-core.

commit 6351f52609af51055786f7b3b24aee722b4dcea4
Author: Ming Liu <liu.ming50 at gmail.com>
AuthorDate: Fri Apr 5 16:22:15 2019 +0200

    opkg-utils: backport a patch to fix a sstate timestamp issue
    
    When using sstate, two parallel builds can produce two packages
    with the same mtime but different checksums. When later one of
    those two builds fetches the others ipk, the package index does
    not get udpated properly (since mtime matches). This ends up with
    messages such as:
      Downloading file:/../tmp/work/../image/...ipk.
      Removing corrupt package file /../sysroot/../var/cache/opkg/volatile/...ipk
    
    However, in that case, ctime is different. Use ctime instead of
    mtime to prevent failures like this.
    
    Signed-off-by: Ming Liu <liu.ming50 at gmail.com>
    Signed-off-by: Armin Kuster <akuster808 at gmail.com>
---
 ...pkg-make-index-use-ctime-instead-of-mtime.patch | 59 ++++++++++++++++++++++
 .../opkg-utils/opkg-utils_0.3.6.bb                 |  1 +
 2 files changed, 60 insertions(+)

diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-make-index-use-ctime-instead-of-mtime.patch b/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-make-index-use-ctime-instead-of-mtime.patch
new file mode 100644
index 0000000..19778ac
--- /dev/null
+++ b/meta/recipes-devtools/opkg-utils/opkg-utils/0001-opkg-make-index-use-ctime-instead-of-mtime.patch
@@ -0,0 +1,59 @@
+From 0cd38bb1bdcdbfc091014a1f39d015a1586a33e6 Mon Sep 17 00:00:00 2001
+From: Stefan Agner <stefan.agner at toradex.com>
+Date: Fri, 19 Oct 2018 17:38:21 +0200
+Subject: [PATCH] opkg-make-index: use ctime instead of mtime
+
+Upstream-Status: Backport
+
+When using sstate, two parallel builds can produce two packages
+with the same mtime but different checksums. When later one of
+those two builds fetches the others ipk, the package index does
+not get udpated properly (since mtime matches). This ends up with
+messages such as:
+  Downloading file:/../tmp/work/../image/...ipk.
+  Removing corrupt package file /../sysroot/../var/cache/opkg/volatile/...ipk
+
+However, in that case, ctime is different. Use ctime instead of
+mtime to prevent failures like this.
+
+Suggested-by: Khem Raj <raj.khem at gmail.com>
+Signed-off-by: Stefan Agner <stefan.agner at toradex.com>
+Acked-by: Richard Purdie <richard.purdie at linuxfoundation.org>
+Acked-by: Khem Raj <raj.khem at gmail.com>
+Signed-off-by: Alejandro del Castillo <alejandro.delcastillo at ni.com>
+Signed-off-by: Ming Liu <liu.ming50 at gmail.com>
+---
+ opkg-make-index | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/opkg-make-index b/opkg-make-index
+index 3227fc0..db7bf64 100755
+--- a/opkg-make-index
++++ b/opkg-make-index
+@@ -115,12 +115,12 @@ for abspath in files:
+      pkg = None
+      fnameStat = os.stat(abspath)
+      if filename in old_pkg_hash:
+-          if filename in pkgsStamps and int(fnameStat.st_mtime) == pkgsStamps[filename]:
++          if filename in pkgsStamps and int(fnameStat.st_ctime) == pkgsStamps[filename]:
+             if (verbose):
+                sys.stderr.write("Found %s in Packages\n" % (filename,))
+             pkg = old_pkg_hash[filename]
+           else:
+-               sys.stderr.write("Found %s in Packages, but mtime differs - re-reading\n" % (filename,))
++               sys.stderr.write("Found %s in Packages, but ctime differs - re-reading\n" % (filename,))
+ 
+      if not pkg:
+           if (verbose):
+@@ -137,7 +137,7 @@ for abspath in files:
+      else:
+           old_filename = ""
+      s = packages.add_package(pkg, opt_a)
+-     pkgsStamps[filename] = fnameStat.st_mtime
++     pkgsStamps[filename] = fnameStat.st_ctime
+      if s == 0:
+           if old_filename:
+                # old package was displaced by newer
+-- 
+2.7.4
+
diff --git a/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb b/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb
index 4c41774..41cf11c 100644
--- a/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb
+++ b/meta/recipes-devtools/opkg-utils/opkg-utils_0.3.6.bb
@@ -14,6 +14,7 @@ SRC_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/${BPN}/snapshot/${BPN}-${PV
            file://threaded-xz.patch \
            file://pigz.patch \
            file://0001-update-alternatives-Fix-link-relocation-support.patch \
+           file://0001-opkg-make-index-use-ctime-instead-of-mtime.patch \
 "
 SRC_URI_append_class-native = " file://tar_ignore_error.patch"
 UPSTREAM_CHECK_URI = "http://git.yoctoproject.org/cgit/cgit.cgi/opkg-utils/refs/"

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.


More information about the Openembedded-commits mailing list