From c81990aecae3bdf70a7c924699776b248ab7a006 Mon Sep 17 00:00:00 2001 From: Enrico Scholz Date: Thu, 24 Feb 2011 08:12:49 +0000 Subject: [PATCH] opkg-utils: convert mtime to int before comparing it The st_mtime attribute (which is a float) is compared against a value from the timestamp database, which was stored as an integer there. When working on a filesystem with precise timestamps the comparision will fail nearly everytime hence. Although it might be possible to enhance the database to store the fractional part too, this will complicate things more than we would gain by this change. This patch was applied as 49e11b32906fc1becd9218bb3125f6fc8fa03fa4 to old ipkg-utils already. Signed-off-by: Enrico Scholz Acked-By: Graham Gower Signed-off-by: Khem Raj --- recipes/opkg-utils/opkg-utils/mtime-int.patch | 27 +++++++++++++++++++ recipes/opkg-utils/opkg-utils_svn.bb | 5 ++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 recipes/opkg-utils/opkg-utils/mtime-int.patch diff --git a/recipes/opkg-utils/opkg-utils/mtime-int.patch b/recipes/opkg-utils/opkg-utils/mtime-int.patch new file mode 100644 index 0000000000..efec3c09cc --- /dev/null +++ b/recipes/opkg-utils/opkg-utils/mtime-int.patch @@ -0,0 +1,27 @@ +Convert mtime to int before comparing it + +The st_mtime attribute (which is a float) is compared against a value +from the timestamp database, which was stored as an integer there. + +When working on a filesystem with precise timestamps the comparision +will fail nearly everytime hence. + +Although it might be possible to enhance the database to store the +fractional part too, this will complicate things more than we would +gain by this change. + +Signed-off-by: Enrico Scholz + +Index: opkg-utils/opkg-make-index +=================================================================== +--- opkg-utils.orig/opkg-make-index ++++ opkg-utils/opkg-make-index +@@ -100,7 +100,7 @@ for filename in files: + pkg = None + fnameStat = os.stat(filename) + if old_pkg_hash.has_key(basename): +- if pkgsStamps.has_key(basename) and fnameStat.st_mtime == pkgsStamps[basename]: ++ if pkgsStamps.has_key(basename) and int(fnameStat.st_mtime) == pkgsStamps[basename]: + if (verbose): + sys.stderr.write("Found %s in Packages\n" % (filename,)) + pkg = old_pkg_hash[basename] diff --git a/recipes/opkg-utils/opkg-utils_svn.bb b/recipes/opkg-utils/opkg-utils_svn.bb index 951580a61b..6b8d3ea682 100644 --- a/recipes/opkg-utils/opkg-utils_svn.bb +++ b/recipes/opkg-utils/opkg-utils_svn.bb @@ -6,10 +6,11 @@ RDEPENDS_${PN} = "python" RDEPENDS_${PN}_virtclass-native = "" SRCREV = "4747" PV = "0.1.8+svnr${SRCPV}" -PR = "r5" +PR = "r6" SRC_URI = "svn://svn.openmoko.org/trunk/src/host/;module=opkg-utils;proto=http \ - file://index-ignore-filenotfound.patch" + file://index-ignore-filenotfound.patch \ + file://mtime-int.patch" S = "${WORKDIR}/opkg-utils" -- 2.39.5