libosinfo: pick upstream patches to fix bug causing test failure

This commit is contained in:
Will Dietz 2018-09-29 00:04:25 -05:00
parent 4bc001e41b
commit dacdf8b6c7
3 changed files with 76 additions and 0 deletions

View file

@ -0,0 +1,40 @@
From b9cb227842948b1b2289cdd3e9b8d925664c2ee7 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
Date: Fri, 7 Sep 2018 15:04:20 +0200
Subject: [PATCH 1/2] tests: Expand the arch's parser for isodetect
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Some Windows ISOs isodata, as the ones added as part of commit 857f503,
uses X64 and X86 and load_iso() didn't take those into consideration.
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
---
tests/test-isodetect.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/tests/test-isodetect.c b/tests/test-isodetect.c
index 415770b..76f0c5a 100644
--- a/tests/test-isodetect.c
+++ b/tests/test-isodetect.c
@@ -106,6 +106,7 @@ static struct ISOInfo *load_iso(GFile *file, const gchar *shortid, const gchar *
info->langs = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, NULL);
if (strstr(name, "amd64") ||
strstr(name, "x64") ||
+ strstr(name, "X64") ||
strstr(name, "x86_64") ||
strstr(name, "64bit") ||
strstr(name, "64-bit"))
@@ -114,6 +115,7 @@ static struct ISOInfo *load_iso(GFile *file, const gchar *shortid, const gchar *
strstr(name, "i586") ||
strstr(name, "i686") ||
strstr(name, "x86") ||
+ strstr(name, "X86") ||
strstr(name, "32bit") ||
strstr(name, "32-bit"))
arch = "i386";
--
2.19.0

View file

@ -0,0 +1,34 @@
From e6168463f4fc659b9827b5c8694dc1c6d7d5239a Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= <fidencio@redhat.com>
Date: Fri, 7 Sep 2018 15:53:20 +0200
Subject: [PATCH 2/2] db: Force anchored patterns when matching regex
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Without forcing anchored patterns some matches may be completely wrong
as "(J_)?CENN?A_X64FREV" (volume-id for Windows 10) that could be taken
as a match for "HRM_CENNA_X64FREV" (volume-id of a Windows 8 ISO).
Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com>
Reviewed-by: Cole Robinson <crobinso@redhat.com>
---
osinfo/osinfo_db.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/osinfo/osinfo_db.c b/osinfo/osinfo_db.c
index fa14c6d..f4b3a8c 100644
--- a/osinfo/osinfo_db.c
+++ b/osinfo/osinfo_db.c
@@ -37,7 +37,7 @@ G_DEFINE_TYPE(OsinfoDb, osinfo_db, G_TYPE_OBJECT);
#define match_regex(pattern, str) \
(((pattern) == NULL) || \
(((str) != NULL) && \
- g_regex_match_simple((pattern), (str), 0, 0)))
+ g_regex_match_simple((pattern), (str), 0, G_REGEX_MATCH_ANCHORED)))
static gchar *get_raw_lang(const char *volume_id, const gchar *regex_str)
{
--
2.19.0

View file

@ -20,6 +20,8 @@ stdenv.mkDerivation rec {
patches = [
./osinfo-db-data-dir.patch
./0001-tests-Expand-the-arch-s-parser-for-isodetect.patch
./0002-db-Force-anchored-patterns-when-matching-regex.patch
];
postPatch = ''