Compare commits
No commits in common. "c8" and "c9-beta" have entirely different histories.
@ -0,0 +1,35 @@
|
||||
From e8ea9f09f4ec718c42b1909e21369a9487ed5f4b Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Mracek <jmracek@redhat.com>
|
||||
Date: Tue, 13 Nov 2018 18:31:57 +0100
|
||||
Subject: [PATCH 1/4] Replace bool option with int to generate repo files
|
||||
|
||||
During the testing of subscription manager it was discovered that
|
||||
subscription manager detects disabled repository by test if key
|
||||
"enabled == 0". It means that enabled=false was detected as enabled
|
||||
repository. I know that the issue is in subscription manager, but
|
||||
keeping the patch is not harmful because the 0/1 is also valid
|
||||
combination like false/true.
|
||||
---
|
||||
rhsm/rhsm-utils.c | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rhsm/rhsm-utils.c b/rhsm/rhsm-utils.c
|
||||
index 7b6a26b305515c53e10b9cecb9f95b2e9d84ad02..06b12fca7fe366f42f0daa1e77c275c3a8e9375c 100644
|
||||
--- a/rhsm/rhsm-utils.c
|
||||
+++ b/rhsm/rhsm-utils.c
|
||||
@@ -260,11 +260,11 @@ rhsm_utils_yum_repo_from_context (RHSMContext *ctx)
|
||||
}
|
||||
|
||||
g_autofree gchar *baseurl = g_strconcat (ctx_baseurl, path, NULL);
|
||||
g_key_file_set_string (repofile, id, "name", name);
|
||||
g_key_file_set_string (repofile, id, "baseurl", baseurl);
|
||||
- g_key_file_set_boolean (repofile, id, "enabled", enabled);
|
||||
+ g_key_file_set_integer (repofile, id, "enabled", enabled ? 1 : 0);
|
||||
|
||||
if (json_object_has_member (repo, "gpg_url"))
|
||||
{
|
||||
const gchar *gpg_url = json_object_get_string_member (repo, "gpg_url");
|
||||
g_key_file_set_string (repofile, id, "gpgkey", gpg_url);
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,8 +1,8 @@
|
||||
From 3d7519f2ac9e9f6e0978bc0cfebee6fa56190480 Mon Sep 17 00:00:00 2001
|
||||
From e215c12da9b74dbe85e2ca6555fd10b5b02778d5 Mon Sep 17 00:00:00 2001
|
||||
From: Pavla Kratochvilova <pkratoch@redhat.com>
|
||||
Date: Wed, 20 Mar 2019 18:45:16 +0100
|
||||
Subject: [PATCH] Generate repofile for any architecture if "ALL" is specified
|
||||
(RhBug:1645318)
|
||||
Subject: [PATCH 2/4] Generate repofile for any architecture if "ALL" is
|
||||
specified (RhBug:1645318)
|
||||
|
||||
The "arches" array can contain special value "ALL" and in that case any
|
||||
architecture should be accepted.
|
||||
@ -13,10 +13,12 @@ https://bugzilla.redhat.com/show_bug.cgi?id=1645318
|
||||
1 file changed, 2 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rhsm/rhsm-utils.c b/rhsm/rhsm-utils.c
|
||||
index 7b6a26b..0c8df57 100644
|
||||
index 06b12fca7fe366f42f0daa1e77c275c3a8e9375c..b52a2b81f3c2ba2f881d7f1746d9e0c0b15ab189 100644
|
||||
--- a/rhsm/rhsm-utils.c
|
||||
+++ b/rhsm/rhsm-utils.c
|
||||
@@ -230,7 +230,8 @@ rhsm_utils_yum_repo_from_context (RHSMContext *ctx)
|
||||
@@ -228,11 +228,12 @@ rhsm_utils_yum_repo_from_context (RHSMContext *ctx)
|
||||
|
||||
/* Filter by arches vs context one */
|
||||
if (json_object_has_member (repo, "arches"))
|
||||
{
|
||||
JsonArray *arr = json_object_get_array_member (repo, "arches");
|
||||
@ -26,3 +28,8 @@ index 7b6a26b..0c8df57 100644
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Filter by required tags vs available tags */
|
||||
if (json_object_has_member (repo, "required_tags"))
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From 1335a0a08399960128192651011c4a3ca6233b32 Mon Sep 17 00:00:00 2001
|
||||
From 55e2f2d64372043e2fab96461243d808326bc902 Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Mach <dmach@redhat.com>
|
||||
Date: Tue, 13 Nov 2018 12:17:58 +0100
|
||||
Subject: [PATCH] Enable repos when generating a .repo file based on
|
||||
Subject: [PATCH 3/4] Enable repos when generating a .repo file based on
|
||||
entitlement certificate.
|
||||
|
||||
Resolves: rhbz#1638850
|
||||
@ -10,10 +10,12 @@ Resolves: rhbz#1638850
|
||||
1 file changed, 8 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rhsm/rhsm-utils.c b/rhsm/rhsm-utils.c
|
||||
index 7b6a26b..021d0d8 100644
|
||||
index b52a2b81f3c2ba2f881d7f1746d9e0c0b15ab189..6708a43a93f850f873a216d6f20aca8b7bd3225e 100644
|
||||
--- a/rhsm/rhsm-utils.c
|
||||
+++ b/rhsm/rhsm-utils.c
|
||||
@@ -246,9 +246,16 @@ rhsm_utils_yum_repo_from_context (RHSMContext *ctx)
|
||||
@@ -245,13 +245,20 @@ rhsm_utils_yum_repo_from_context (RHSMContext *ctx)
|
||||
|
||||
/* Now we have only available repos */
|
||||
const gchar *id = json_object_get_string_member (repo, "label");
|
||||
const gchar *name = json_object_get_string_member (repo, "name");
|
||||
const gchar *path = json_object_get_string_member (repo, "path");
|
||||
@ -31,3 +33,8 @@ index 7b6a26b..021d0d8 100644
|
||||
if (id == NULL || name == NULL || path == NULL)
|
||||
continue; /* TODO: make some error reporting here */
|
||||
|
||||
/* Clashing repositories */
|
||||
if (g_key_file_has_group (repofile, id))
|
||||
--
|
||||
2.26.2
|
||||
|
@ -1,7 +1,7 @@
|
||||
From c3a333256261545ffe1bd7088c6c54dcb9fb759b Mon Sep 17 00:00:00 2001
|
||||
From 966d9e6b0dec88020a5a9d7368fc95825c55d225 Mon Sep 17 00:00:00 2001
|
||||
From: Jaroslav Rohel <jrohel@redhat.com>
|
||||
Date: Tue, 21 Apr 2020 08:56:01 +0200
|
||||
Subject: [PATCH] Append ctx_baseurl prefix to gpg_url (RhBug:1708628)
|
||||
Subject: [PATCH 4/4] Append ctx_baseurl prefix to gpg_url (RhBug:1708628)
|
||||
|
||||
Sometime the gpg_url contains relative path to context baseurl.
|
||||
In that case the code appends baseurl prefix to gpg_url. The resulting
|
||||
@ -10,14 +10,16 @@ URI is normalized (solved "//", ".", and "..")
|
||||
The new function rhsm_url_base_join() introduce similar results
|
||||
as utils.url_base_join() in subscription manager.
|
||||
---
|
||||
rhsm/rhsm-utils.c | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
rhsm/rhsm-utils.c | 94 ++++++++++++++++++++++++++++++++++++++++++++++-
|
||||
1 file changed, 93 insertions(+), 1 deletion(-)
|
||||
|
||||
diff --git a/rhsm/rhsm-utils.c b/rhsm/rhsm-utils.c
|
||||
index 6708a43..ee3f296 100644
|
||||
index 6708a43a93f850f873a216d6f20aca8b7bd3225e..ee3f296d59c0c4e3c9ed63ccfe460ffdac5bfd3e 100644
|
||||
--- a/rhsm/rhsm-utils.c
|
||||
+++ b/rhsm/rhsm-utils.c
|
||||
@@ -181,6 +181,97 @@ rhsm_json_array_is_subset_of_hash_table (JsonArray *array,
|
||||
@@ -179,10 +179,101 @@ rhsm_json_array_is_subset_of_hash_table (JsonArray *array,
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
@ -115,7 +117,11 @@ index 6708a43..ee3f296 100644
|
||||
/**
|
||||
* rhsm_utils_yum_repo_from_context:
|
||||
* @ctx: an #RHSMContext.
|
||||
@@ -275,7 +366,8 @@ rhsm_utils_yum_repo_from_context (RHSMContext *ctx)
|
||||
*
|
||||
* Returns: (transfer full): a new #GKeyFile.
|
||||
@@ -273,11 +364,12 @@ rhsm_utils_yum_repo_from_context (RHSMContext *ctx)
|
||||
g_key_file_set_integer (repofile, id, "enabled", enabled ? 1 : 0);
|
||||
|
||||
if (json_object_has_member (repo, "gpg_url"))
|
||||
{
|
||||
const gchar *gpg_url = json_object_get_string_member (repo, "gpg_url");
|
||||
@ -125,6 +131,8 @@ index 6708a43..ee3f296 100644
|
||||
g_key_file_set_boolean (repofile, id, "gpgcheck", TRUE);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* FIXME: Do we want to enforce gpgcheck? It's unsecure repo. */
|
||||
--
|
||||
libgit2 0.28.5
|
||||
2.26.2
|
||||
|
@ -0,0 +1,113 @@
|
||||
From 09f9b923f04a8276252fcfbc4f502be49df483c6 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
|
||||
Date: Fri, 27 Oct 2023 15:34:16 +0200
|
||||
Subject: [PATCH] Fix relocating certificate paths to /etc/rhsm-host
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
If /etc/rhsm-host directory exists, librhsm corrects CA certificate
|
||||
location (rhsm_context_get_ca_cert_dir()) and YUM repository CA
|
||||
certificate location (rhsm_context_get_repo_ca_cert()) from /etc/rhsm
|
||||
to /etc/rhsm-host prefix.
|
||||
|
||||
However, there was a bug in the path relocation and, as a result, the
|
||||
locations were mangled to a wrong /etc/rhsm-host-host prefix.
|
||||
|
||||
This patch fixes the relocation algorithm to consider boundaries
|
||||
between the path components.
|
||||
|
||||
Note that the relocation was and still is applied not only to default
|
||||
values, but also to values loaded from a configuration file. That's
|
||||
probably on purpose to ease sharing the configuration among a host and
|
||||
the containers.
|
||||
|
||||
https://github.com/rpm-software-management/librhsm/issues/9
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
rhsm/rhsm-context.c | 61 ++++++++++++++++++++++++++++++++++++++++++---
|
||||
1 file changed, 58 insertions(+), 3 deletions(-)
|
||||
|
||||
diff --git a/rhsm/rhsm-context.c b/rhsm/rhsm-context.c
|
||||
index 311dcdd..e0302fd 100644
|
||||
--- a/rhsm/rhsm-context.c
|
||||
+++ b/rhsm/rhsm-context.c
|
||||
@@ -482,6 +482,61 @@ rhsm_context_set_property (GObject *object,
|
||||
}
|
||||
}
|
||||
|
||||
+/*
|
||||
+ * path_has_prefix:
|
||||
+ * @path: pointer to a null-terminated path string.
|
||||
+ * @prefix: pointer to a null-terminated path prefix without a trailing slash.
|
||||
+ *
|
||||
+ * Returns: TRUE if the @prefix is a base path of the @path. FALSE otherwise.
|
||||
+ */
|
||||
+
|
||||
+static gboolean
|
||||
+path_has_prefix (const gchar *path, const gchar *prefix)
|
||||
+{
|
||||
+ if (!path || !prefix)
|
||||
+ {
|
||||
+ return FALSE;
|
||||
+ }
|
||||
+ {
|
||||
+ const size_t prefix_length = strlen (prefix);
|
||||
+ return (!strncmp (path, prefix, prefix_length) &&
|
||||
+ (G_IS_DIR_SEPARATOR (path [prefix_length]) || path [prefix_length] == '\0'));
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+/*
|
||||
+ * relocate_path:
|
||||
+ * @path: (inout): pointer to a null-terminated string.
|
||||
+ * @old_prefix: null-terminated path prefix without a trailing slash to relocate from.
|
||||
+ * @new_prefix: null-terminated path prefix without a trailing slash to relocate to.
|
||||
+ *
|
||||
+ * If @path starts with @old_prefix path components, the @old_prefix path
|
||||
+ * components will be replaced with @new_prefix.
|
||||
+ *
|
||||
+ * Returns: (transfer none): null-terminated string with the relocated path.
|
||||
+ */
|
||||
+static gchar *
|
||||
+relocate_path (gchar **path, const gchar *old_prefix, const gchar *new_prefix)
|
||||
+{
|
||||
+ if (!path || !*path || !old_prefix || !new_prefix)
|
||||
+ {
|
||||
+ return NULL;
|
||||
+ }
|
||||
+
|
||||
+ if (path_has_prefix (*path, old_prefix))
|
||||
+ {
|
||||
+ const size_t old_prefix_length = strlen (old_prefix);
|
||||
+ GString *tmp = g_string_sized_new (strlen (*path) - old_prefix_length + strlen (new_prefix));
|
||||
+ g_string_append (tmp, new_prefix);
|
||||
+ g_string_append (tmp, *path + old_prefix_length);
|
||||
+
|
||||
+ g_free (*path);
|
||||
+ *path = g_string_free (tmp, FALSE);
|
||||
+ }
|
||||
+
|
||||
+ return *path;
|
||||
+}
|
||||
+
|
||||
static void
|
||||
rhsm_context_constructed (GObject *object)
|
||||
{
|
||||
@@ -539,10 +594,10 @@ rhsm_context_constructed (GObject *object)
|
||||
}
|
||||
|
||||
/* If we have conf coming from /etc/rhsm-host, most probably we need to replace /etc/rhsm */
|
||||
- if (g_str_has_prefix (ctx->conf_file, CONFIG_DIR_HOST))
|
||||
+ if (path_has_prefix (ctx->conf_file, CONFIG_DIR_HOST))
|
||||
{
|
||||
- rhsm_utils_str_replace (&ctx->ca_cert_dir, CONFIG_DIR, CONFIG_DIR_HOST);
|
||||
- rhsm_utils_str_replace (&ctx->repo_ca_cert, CONFIG_DIR, CONFIG_DIR_HOST);
|
||||
+ relocate_path (&ctx->ca_cert_dir, CONFIG_DIR, CONFIG_DIR_HOST);
|
||||
+ relocate_path (&ctx->repo_ca_cert, CONFIG_DIR, CONFIG_DIR_HOST);
|
||||
}
|
||||
}
|
||||
|
||||
--
|
||||
2.41.0
|
||||
|
37
SOURCES/0006-Refactor-parse_entitlement_data.patch
Normal file
37
SOURCES/0006-Refactor-parse_entitlement_data.patch
Normal file
@ -0,0 +1,37 @@
|
||||
From 5e0674cf389f14174208641ec411ba7be448d5e3 Mon Sep 17 00:00:00 2001
|
||||
From: Marek Blaha <mblaha@redhat.com>
|
||||
Date: Fri, 18 Jun 2021 07:48:16 +0200
|
||||
Subject: [PATCH] Refactor parse_entitlement_data()
|
||||
MIME-Version: 1.0
|
||||
Content-Type: text/plain; charset=UTF-8
|
||||
Content-Transfer-Encoding: 8bit
|
||||
|
||||
This change is meant to silence alerts from static code analysis. It
|
||||
also makes the *ent variable freeing slightly more clear.
|
||||
|
||||
Signed-off-by: Petr Písař <ppisar@redhat.com>
|
||||
---
|
||||
rhsm/rhsm-entitlement-certificate.c | 4 ++--
|
||||
1 file changed, 2 insertions(+), 2 deletions(-)
|
||||
|
||||
diff --git a/rhsm/rhsm-entitlement-certificate.c b/rhsm/rhsm-entitlement-certificate.c
|
||||
index 5d37732..aa4dd7e 100644
|
||||
--- a/rhsm/rhsm-entitlement-certificate.c
|
||||
+++ b/rhsm/rhsm-entitlement-certificate.c
|
||||
@@ -140,11 +140,11 @@ parse_entitlement_data (const gchar *data,
|
||||
}
|
||||
|
||||
gsize hlen = strlen (ENTITLEMENT_DATA_HEADER);
|
||||
- gchar *ent = g_strndup (start + hlen, end - start - hlen);
|
||||
+ g_autofree gchar *ent = g_strndup (start + hlen, end - start - hlen);
|
||||
|
||||
gsize zlen = 0;
|
||||
guchar *zdata = g_base64_decode_inplace (ent, &zlen);
|
||||
- g_autoptr(GInputStream) zstream = g_memory_input_stream_new_from_data (zdata, zlen, g_free);
|
||||
+ g_autoptr(GInputStream) zstream = g_memory_input_stream_new_from_data (zdata, zlen, NULL);
|
||||
g_autoptr(GZlibDecompressor) decompressor = g_zlib_decompressor_new (G_ZLIB_COMPRESSOR_FORMAT_ZLIB);
|
||||
g_autoptr(GInputStream) cstream = g_converter_input_stream_new (zstream, G_CONVERTER (decompressor));
|
||||
g_autoptr(JsonParser) parser = json_parser_new_immutable ();
|
||||
--
|
||||
2.44.0
|
||||
|
@ -1,16 +1,19 @@
|
||||
%global libname rhsm
|
||||
|
||||
Name: lib%{libname}
|
||||
Name: librhsm
|
||||
Version: 0.0.3
|
||||
Release: 5%{?dist}
|
||||
Release: 9%{?dist}
|
||||
Summary: Red Hat Subscription Manager library
|
||||
|
||||
License: LGPLv2+
|
||||
URL: https://github.com/rpm-software-management/librhsm
|
||||
Source: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
|
||||
Patch0: 2.patch
|
||||
Patch1: 4.patch
|
||||
Patch2: 5.patch
|
||||
|
||||
# Patches backported from upstream
|
||||
Patch0001: 0001-Replace-bool-option-with-int-to-generate-repo-files.patch
|
||||
Patch0002: 0002-Generate-repofile-for-any-architecture-if-ALL-is-spe.patch
|
||||
Patch0003: 0003-Enable-repos-when-generating-a-.repo-file-based-on-e.patch
|
||||
Patch0004: 0004-Append-ctx_baseurl-prefix-to-gpg_url-RhBug-1708628.patch
|
||||
Patch0005: 0005-Fix-relocating-certificate-paths-to-etc-rhsm-host.patch
|
||||
Patch0006: 0006-Refactor-parse_entitlement_data.patch
|
||||
|
||||
BuildRequires: meson >= 0.37.0
|
||||
BuildRequires: gcc
|
||||
@ -47,24 +50,36 @@ Requires: %{name}%{?_isa} = %{?epoch:%{epoch}:}%{version}-%{release}
|
||||
|
||||
%files devel
|
||||
%{_libdir}/%{name}.so
|
||||
%{_includedir}/%{libname}/
|
||||
%{_includedir}/rhsm/
|
||||
%{_libdir}/pkgconfig/%{name}.pc
|
||||
|
||||
%changelog
|
||||
* Thu Jan 5 2023 Nicola Sella <nsella@redhat.com> - 0.0.3-5
|
||||
- Append ctx_baseurl prefix to gpg_url
|
||||
* Wed Apr 10 2024 Petr Pisar <ppisar@redhat.com> - 0.0.3-9
|
||||
- Fix memory leaks in parse_entitlement_data() (RHEL-25499)
|
||||
|
||||
* Wed Jan 6 2021 Marek Blaha <mblaha@redhat.com> - 0.0.3-4
|
||||
- Rebuild to ship also librhsm-devel subpackage
|
||||
* Tue Nov 21 2023 Petr Pisar <ppisar@redhat.com> - 0.0.3-8
|
||||
- Correct a License tag to LGPLv2+ (RHEL-16103)
|
||||
- Fix relocating certificate paths to /etc/rhsm-host (RHEL-14224)
|
||||
|
||||
* Wed Jul 10 2019 Daniel Mach <dmach@redhat.com> - 0.0.3-3
|
||||
- Generate repofile for any architecture if "ALL" is specified
|
||||
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 0.0.3-7
|
||||
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
|
||||
Related: rhbz#1991688
|
||||
|
||||
* Tue Nov 13 2018 Daniel Mach <dmach@redhat.com> - 0.0.3-2
|
||||
- Enable repos when generating a .repo file based on entitlement certificate.
|
||||
* Wed Jun 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.0.3-6
|
||||
- Rebuilt for RHEL 9 BETA for openssl 3.0
|
||||
Related: rhbz#1971065
|
||||
|
||||
* Mon Jul 09 2018 Igor Gnatenko <ignatenko@redhat.com> - 0.0.3-1
|
||||
- Update to 0.0.3
|
||||
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 0.0.3-5
|
||||
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
|
||||
|
||||
* Thu Feb 22 2018 Igor Gnatenko <ignatenko@redhat.com> - 0.0.2-1
|
||||
* Thu Mar 24 2021 Daniel Mach - 0.0.3-4
|
||||
- Fix License in spec to LGPLv2.1+ (was LGPLv2+)
|
||||
|
||||
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.3-3
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
|
||||
|
||||
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 0.0.3-2
|
||||
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
|
||||
|
||||
* Wed Jul 08 2020 Stephen Gallagher <sgallagh@redhat.com> - 0.0.3-1
|
||||
- Initial release
|
||||
|
Loading…
Reference in New Issue
Block a user