|
 |
ccbcd8 |
From fe460068335b4cfe89197b42b1b7e30b84e8ea07 Mon Sep 17 00:00:00 2001
|
|
 |
ccbcd8 |
From: Neal Gompa <ngompa13@gmail.com>
|
|
 |
ccbcd8 |
Date: Tue, 28 Apr 2020 22:00:04 -0400
|
|
 |
ccbcd8 |
Subject: [PATCH] dnf: Load all the repos and vars directories
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
Historically, the backend has internally determined its setup with
|
|
 |
ccbcd8 |
static values. However, we generally want PackageKit to load all
|
|
 |
ccbcd8 |
repositories defined in all repository directories that DNF normally
|
|
 |
ccbcd8 |
searches, since it is not guaranteed to be in /etc/yum.repos.d and
|
|
 |
ccbcd8 |
DNF supports multiple repository configuration paths.
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
We also need the vars to be loaded so that repository definitions
|
|
 |
ccbcd8 |
that rely on more than the built-in vars will work.
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
This bumps our dependency for libdnf to 0.43.1, as we're using APIs
|
|
 |
ccbcd8 |
introduced in this release.
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
(Backport note: to avoid regenerating autofoo, the configure.ac change
|
|
 |
ccbcd8 |
has been stripped.)
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
(cherry picked from commit ed73aa6317595d2c2f1bda7990cbd64efb133f84)
|
|
 |
ccbcd8 |
---
|
|
 |
ccbcd8 |
backends/dnf/pk-backend-dnf.c | 27 ++++++++++++++++++++++++---
|
|
 |
ccbcd8 |
1 files changed, 24 insertions(+), 3 deletions(-)
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
diff --git a/backends/dnf/pk-backend-dnf.c b/backends/dnf/pk-backend-dnf.c
|
|
 |
ccbcd8 |
index 779896c2d..7fcdaddbe 100644
|
|
 |
ccbcd8 |
--- a/backends/dnf/pk-backend-dnf.c
|
|
 |
ccbcd8 |
+++ b/backends/dnf/pk-backend-dnf.c
|
|
 |
ccbcd8 |
@@ -137,11 +137,12 @@ pk_backend_context_invalidate_cb (DnfContext *context,
|
|
 |
ccbcd8 |
static gboolean
|
|
 |
ccbcd8 |
pk_backend_setup_dnf_context (DnfContext *context, GKeyFile *conf, const gchar *release_ver, GError **error)
|
|
 |
ccbcd8 |
{
|
|
 |
ccbcd8 |
+ const gchar * const *repo_dirs;
|
|
 |
ccbcd8 |
+ const gchar * const *var_dirs;
|
|
 |
ccbcd8 |
gboolean keep_cache;
|
|
 |
ccbcd8 |
g_autofree gchar *cache_dir = NULL;
|
|
 |
ccbcd8 |
g_autofree gchar *destdir = NULL;
|
|
 |
ccbcd8 |
g_autofree gchar *lock_dir = NULL;
|
|
 |
ccbcd8 |
- g_autofree gchar *repo_dir = NULL;
|
|
 |
ccbcd8 |
g_autofree gchar *solv_dir = NULL;
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
destdir = g_key_file_get_string (conf, "Daemon", "DestDir", NULL);
|
|
 |
ccbcd8 |
@@ -152,12 +153,32 @@ pk_backend_setup_dnf_context (DnfContext *context, GKeyFile *conf, const gchar *
|
|
 |
ccbcd8 |
dnf_context_set_cache_dir (context, cache_dir);
|
|
 |
ccbcd8 |
solv_dir = g_build_filename (destdir, "/var/cache/PackageKit", release_ver, "hawkey", NULL);
|
|
 |
ccbcd8 |
dnf_context_set_solv_dir (context, solv_dir);
|
|
 |
ccbcd8 |
- repo_dir = g_build_filename (destdir, "/etc/yum.repos.d", NULL);
|
|
 |
ccbcd8 |
- dnf_context_set_repo_dir (context, repo_dir);
|
|
 |
ccbcd8 |
lock_dir = g_build_filename (destdir, "/var/run", NULL);
|
|
 |
ccbcd8 |
dnf_context_set_lock_dir (context, lock_dir);
|
|
 |
ccbcd8 |
dnf_context_set_rpm_verbosity (context, "info");
|
|
 |
ccbcd8 |
|
|
 |
ccbcd8 |
+ /* Add prefix to repo directories */
|
|
 |
ccbcd8 |
+ repo_dirs = dnf_context_get_repos_dir (context);
|
|
 |
ccbcd8 |
+ if (repo_dirs != NULL && repo_dirs[0] != NULL) {
|
|
 |
ccbcd8 |
+ g_auto(GStrv) full_repo_dirs = NULL;
|
|
 |
ccbcd8 |
+ guint len = g_strv_length ((gchar **)repo_dirs);
|
|
 |
ccbcd8 |
+ full_repo_dirs = g_new0 (gchar*, len + 1);
|
|
 |
ccbcd8 |
+ for (guint i = 0; i < len; i++)
|
|
 |
ccbcd8 |
+ full_repo_dirs[i] = g_build_filename (destdir, repo_dirs[i], NULL);
|
|
 |
ccbcd8 |
+ dnf_context_set_repos_dir (context, (const gchar * const*)full_repo_dirs);
|
|
 |
ccbcd8 |
+ }
|
|
 |
ccbcd8 |
+
|
|
 |
ccbcd8 |
+ /* Add prefix to var directories */
|
|
 |
ccbcd8 |
+ var_dirs = dnf_context_get_vars_dir (context);
|
|
 |
ccbcd8 |
+ if (var_dirs != NULL && var_dirs[0] != NULL) {
|
|
 |
ccbcd8 |
+ g_auto(GStrv) full_var_dirs = NULL;
|
|
 |
ccbcd8 |
+ guint len = g_strv_length ((gchar **)var_dirs);
|
|
 |
ccbcd8 |
+ full_var_dirs = g_new0 (gchar*, len + 1);
|
|
 |
ccbcd8 |
+ for (guint i = 0; i < len; i++)
|
|
 |
ccbcd8 |
+ full_var_dirs[i] = g_build_filename (destdir, var_dirs[i], NULL);
|
|
 |
ccbcd8 |
+ dnf_context_set_vars_dir (context, (const gchar * const*)full_var_dirs);
|
|
 |
ccbcd8 |
+ }
|
|
 |
ccbcd8 |
+
|
|
 |
ccbcd8 |
/* use this initial data if repos are not present */
|
|
 |
ccbcd8 |
dnf_context_set_vendor_cache_dir (context, "/usr/share/PackageKit/metadata");
|
|
 |
ccbcd8 |
dnf_context_set_vendor_solv_dir (context, "/usr/share/PackageKit/hawkey");
|
|
 |
ccbcd8 |
--
|
|
 |
ccbcd8 |
2.32.0
|
|
 |
ccbcd8 |
|