From 566311457542d08f48507b0ab7bd68cb848594e9 Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Fri, 29 Nov 2019 09:47:29 +0100
Subject: [PATCH 1/2] Libmagic to follow symlinks (RhBug:1776399)
If the input metadata file for modifyrepo_c was a symlink the
program failed to detect compression type. This patch instructs
libmagic to follow the symlinks when guessing the mime type.
Let modules.yaml be a symlink:
$ modifyrepo_c ./modules.yaml ./repodata
Cannot open ./modules.yaml: Cannot detect compression type
https://bugzilla.redhat.com/show_bug.cgi?id=1776399
---
src/compression_wrapper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compression_wrapper.c b/src/compression_wrapper.c
index d04ab24..6fdb8ea 100644
--- a/src/compression_wrapper.c
+++ b/src/compression_wrapper.c
@@ -166,7 +166,7 @@ cr_detect_compression(const char *filename, GError **err)
// No success? Let's get hardcore... (Use magic bytes)
- magic_t myt = magic_open(MAGIC_MIME);
+ magic_t myt = magic_open(MAGIC_MIME | MAGIC_SYMLINK);
if (myt == NULL) {
g_set_error(err, ERR_DOMAIN, CRE_MAGIC,
"magic_open() failed: Cannot allocate the magic cookie");
From b1b849c3bd63424760152981f96031ef578d752c Mon Sep 17 00:00:00 2001
From: Marek Blaha <mblaha@redhat.com>
Date: Fri, 29 Nov 2019 10:53:25 +0100
Subject: [PATCH 2/2] Add shortcut to detect *.yaml files as not compressed
---
src/compression_wrapper.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/compression_wrapper.c b/src/compression_wrapper.c
index 6fdb8ea..56d1dc5 100644
--- a/src/compression_wrapper.c
+++ b/src/compression_wrapper.c
@@ -158,12 +158,12 @@ cr_detect_compression(const char *filename, GError **err)
return CR_CW_ZCK_COMPRESSION;
} else if (g_str_has_suffix(filename, ".xml") ||
g_str_has_suffix(filename, ".tar") ||
+ g_str_has_suffix(filename, ".yaml") ||
g_str_has_suffix(filename, ".sqlite"))
{
return CR_CW_NO_COMPRESSION;
}
-
// No success? Let's get hardcore... (Use magic bytes)
magic_t myt = magic_open(MAGIC_MIME | MAGIC_SYMLINK);