import microdnf-3.4.0-3.el8

This commit is contained in:
CentOS Sources 2021-02-13 06:12:21 +00:00 committed by Andrew Lukoshko
parent 85142d255c
commit 6de49ebb78
3 changed files with 432 additions and 2 deletions

View File

@ -0,0 +1,52 @@
From 4f9a7a0eda7b5d30a5697b07809fc1a93cb976d1 Mon Sep 17 00:00:00 2001
From: Neal Gompa <ngompa13@gmail.com>
Date: Fri, 20 Nov 2020 06:01:16 -0500
Subject: [PATCH] Add support for setting a platform module ID
Now that Micro DNF supports modularity, we need to be able to selectively
override what it detects as the platform module when working with
installroots that have modular content when they differ from the host.
nsella
Note: the commit 7419ab465a04af525e39005e33ff869647c6bde2 was omitted
---
dnf/dnf-main.c | 16 +++++++++++++++-
1 file changed, 15 insertions(+), 1 deletion(-)
diff --git a/dnf/dnf-main.c b/dnf/dnf-main.c
index 6cb8c0e..2ea3d76 100644
--- a/dnf/dnf-main.c
+++ b/dnf/dnf-main.c
@@ -131,6 +131,20 @@ process_global_option (const gchar *option_name,
}
}
}
+ else if (strcmp (setopt[0], "module_platform_id") == 0)
+ {
+ const char *module_platform_id = setopt[1];
+ if (module_platform_id[0] != '\0')
+ {
+ dnf_context_set_platform_module (ctx, module_platform_id);
+ }
+ else
+ {
+ local_error = g_error_new (G_OPTION_ERROR, G_OPTION_ERROR_BAD_VALUE,
+ "Empty value in: %s", value);
+ ret = FALSE;
+ }
+ }
else if (strcmp (setopt[0], "cachedir") == 0)
{
cachedir_used = TRUE;
@@ -212,7 +226,7 @@ static const GOptionEntry global_opts[] = {
{ "refresh", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_NONE, &opt_refresh, "Set metadata as expired before running the command", NULL },
{ "releasever", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_CALLBACK, process_global_option, "Override the value of $releasever in config and repo files", "RELEASEVER" },
{ "setopt", '\0', G_OPTION_FLAG_NONE, G_OPTION_ARG_CALLBACK, process_global_option,
- "Override a configuration option (install_weak_deps=0/1, cachedir=<path>, reposdir=<path1>,<path2>,..., tsflags=nodocs/test, varsdir=<path1>,<path2>,...)", "<option>=<value>" },
+ "Override a configuration option (install_weak_deps=0/1, module_platform_id=<name:stream>, cachedir=<path>, reposdir=<path1>,<path2>,..., tsflags=nodocs/test, varsdir=<path1>,<path2>,...)", "<option>=<value>" },
{ NULL }
};
--
2.26.2

View File

@ -0,0 +1,372 @@
From dfb32883ee6e822289716bba82f4301bdf9d3c59 Mon Sep 17 00:00:00 2001
From: Jaroslav Rohel <jrohel@redhat.com>
Date: Mon, 7 Dec 2020 09:23:36 +0100
Subject: [PATCH 1/3] Command "update" renamed to "upgrade"
Compatibility with DNF.
DNF uses "upgrade". "update" is deprecated in DNF and is
only supported for compatibility.
---
dnf/CMakeLists.txt | 8 ++--
dnf/meson.build | 12 ++---
.../update/dnf-command-update.gresource.xml | 6 ---
dnf/plugins/update/update.plugin | 9 ----
.../dnf-command-upgrade.c} | 44 +++++++++----------
.../upgrade/dnf-command-upgrade.gresource.xml | 6 +++
.../dnf-command-upgrade.h} | 8 ++--
dnf/plugins/upgrade/upgrade.plugin | 9 ++++
8 files changed, 51 insertions(+), 51 deletions(-)
delete mode 100644 dnf/plugins/update/dnf-command-update.gresource.xml
delete mode 100644 dnf/plugins/update/update.plugin
rename dnf/plugins/{update/dnf-command-update.c => upgrade/dnf-command-upgrade.c} (69%)
create mode 100644 dnf/plugins/upgrade/dnf-command-upgrade.gresource.xml
rename dnf/plugins/{update/dnf-command-update.h => upgrade/dnf-command-upgrade.h} (74%)
create mode 100644 dnf/plugins/upgrade/upgrade.plugin
diff --git a/dnf/CMakeLists.txt b/dnf/CMakeLists.txt
index 1d640be..7f421f3 100644
--- a/dnf/CMakeLists.txt
+++ b/dnf/CMakeLists.txt
@@ -15,10 +15,10 @@ glib_compile_resources (DNF_COMMAND_REMOVE plugins/remove/dnf-command-remove.gre
INTERNAL)
list (APPEND DNF_COMMAND_REMOVE "plugins/remove/dnf-command-remove.c")
-glib_compile_resources (DNF_COMMAND_UPDATE plugins/update/dnf-command-update.gresource.xml
- C_PREFIX dnf_command_update
+glib_compile_resources (DNF_COMMAND_UPGRADE plugins/upgrade/dnf-command-upgrade.gresource.xml
+ C_PREFIX dnf_command_upgrade
INTERNAL)
-list (APPEND DNF_COMMAND_UPDATE "plugins/update/dnf-command-update.c")
+list (APPEND DNF_COMMAND_UPGRADE "plugins/upgrade/dnf-command-upgrade.c")
glib_compile_resources (DNF_COMMAND_REPOLIST plugins/repolist/dnf-command-repolist.gresource.xml
C_PREFIX dnf_command_repolist
@@ -56,7 +56,7 @@ add_executable (microdnf dnf-main.c ${DNF_SRCS}
${DNF_COMMAND_INSTALL}
${DNF_COMMAND_REINSTALL}
${DNF_COMMAND_REMOVE}
- ${DNF_COMMAND_UPDATE}
+ ${DNF_COMMAND_UPGRADE}
${DNF_COMMAND_REPOLIST}
${DNF_COMMAND_REPOQUERY}
${DNF_COMMAND_CLEAN}
diff --git a/dnf/meson.build b/dnf/meson.build
index b456202..4d4bd9e 100644
--- a/dnf/meson.build
+++ b/dnf/meson.build
@@ -30,14 +30,14 @@ microdnf_srcs = [
),
'plugins/remove/dnf-command-remove.c',
- # update
+ # upgrade
gnome.compile_resources(
- 'dnf-update',
- 'plugins/update/dnf-command-update.gresource.xml',
- c_name : 'dnf_command_update',
- source_dir : 'plugins/update',
+ 'dnf-upgrade',
+ 'plugins/upgrade/dnf-command-upgrade.gresource.xml',
+ c_name : 'dnf_command_upgrade',
+ source_dir : 'plugins/upgrade',
),
- 'plugins/update/dnf-command-update.c',
+ 'plugins/upgrade/dnf-command-upgrade.c',
# repolist
gnome.compile_resources(
diff --git a/dnf/plugins/update/dnf-command-update.gresource.xml b/dnf/plugins/update/dnf-command-update.gresource.xml
deleted file mode 100644
index 6168991..0000000
--- a/dnf/plugins/update/dnf-command-update.gresource.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<gresources>
- <gresource prefix="/org/fedoraproject/dnf/plugins/update">
- <file>update.plugin</file>
- </gresource>
-</gresources>
diff --git a/dnf/plugins/update/update.plugin b/dnf/plugins/update/update.plugin
deleted file mode 100644
index a61b911..0000000
--- a/dnf/plugins/update/update.plugin
+++ /dev/null
@@ -1,9 +0,0 @@
-[Plugin]
-Module = command_update
-Embedded = dnf_command_update_register_types
-Name = update
-Description = Update packages
-Authors = Igor Gnatenko <ignatenko@redhat.com>
-License = GPL-3.0+
-Copyright = Copyright © 2016 Igor Gnatenko
-X-Command-Syntax = update [PACKAGE…]
diff --git a/dnf/plugins/update/dnf-command-update.c b/dnf/plugins/upgrade/dnf-command-upgrade.c
similarity index 69%
rename from dnf/plugins/update/dnf-command-update.c
rename to dnf/plugins/upgrade/dnf-command-upgrade.c
index 45ff797..5dc1c90 100644
--- a/dnf/plugins/update/dnf-command-update.c
+++ b/dnf/plugins/upgrade/dnf-command-upgrade.c
@@ -1,4 +1,4 @@
-/* dnf-command-update.c
+/* dnf-command-upgrade.c
*
* Copyright © 2016-2017 Igor Gnatenko <ignatenko@redhat.com>
*
@@ -16,35 +16,35 @@
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-#include "dnf-command-update.h"
+#include "dnf-command-upgrade.h"
#include "dnf-utils.h"
-struct _DnfCommandUpdate
+struct _DnfCommandUpgrade
{
PeasExtensionBase parent_instance;
};
-static void dnf_command_update_iface_init (DnfCommandInterface *iface);
+static void dnf_command_upgrade_iface_init (DnfCommandInterface *iface);
-G_DEFINE_DYNAMIC_TYPE_EXTENDED (DnfCommandUpdate,
- dnf_command_update,
+G_DEFINE_DYNAMIC_TYPE_EXTENDED (DnfCommandUpgrade,
+ dnf_command_upgrade,
PEAS_TYPE_EXTENSION_BASE,
0,
G_IMPLEMENT_INTERFACE (DNF_TYPE_COMMAND,
- dnf_command_update_iface_init))
+ dnf_command_upgrade_iface_init))
static void
-dnf_command_update_init (DnfCommandUpdate *self)
+dnf_command_upgrade_init (DnfCommandUpgrade *self)
{
}
static gboolean
-dnf_command_update_run (DnfCommand *cmd,
- int argc,
- char *argv[],
- GOptionContext *opt_ctx,
- DnfContext *ctx,
- GError **error)
+dnf_command_upgrade_run (DnfCommand *cmd,
+ int argc,
+ char *argv[],
+ GOptionContext *opt_ctx,
+ DnfContext *ctx,
+ GError **error)
{
g_auto(GStrv) pkgs = NULL;
const GOptionEntry opts[] = {
@@ -63,7 +63,7 @@ dnf_command_update_run (DnfCommand *cmd,
}
else
{
- /* Update each package */
+ /* Upgrade each package */
for (GStrv pkg = pkgs; *pkg != NULL; pkg++)
{
if (!dnf_context_update (ctx, *pkg, error))
@@ -89,27 +89,27 @@ dnf_command_update_run (DnfCommand *cmd,
}
static void
-dnf_command_update_class_init (DnfCommandUpdateClass *klass)
+dnf_command_upgrade_class_init (DnfCommandUpgradeClass *klass)
{
}
static void
-dnf_command_update_iface_init (DnfCommandInterface *iface)
+dnf_command_upgrade_iface_init (DnfCommandInterface *iface)
{
- iface->run = dnf_command_update_run;
+ iface->run = dnf_command_upgrade_run;
}
static void
-dnf_command_update_class_finalize (DnfCommandUpdateClass *klass)
+dnf_command_upgrade_class_finalize (DnfCommandUpgradeClass *klass)
{
}
G_MODULE_EXPORT void
-dnf_command_update_register_types (PeasObjectModule *module)
+dnf_command_upgrade_register_types (PeasObjectModule *module)
{
- dnf_command_update_register_type (G_TYPE_MODULE (module));
+ dnf_command_upgrade_register_type (G_TYPE_MODULE (module));
peas_object_module_register_extension_type (module,
DNF_TYPE_COMMAND,
- DNF_TYPE_COMMAND_UPDATE);
+ DNF_TYPE_COMMAND_UPGRADE);
}
diff --git a/dnf/plugins/upgrade/dnf-command-upgrade.gresource.xml b/dnf/plugins/upgrade/dnf-command-upgrade.gresource.xml
new file mode 100644
index 0000000..97c1ce4
--- /dev/null
+++ b/dnf/plugins/upgrade/dnf-command-upgrade.gresource.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<gresources>
+ <gresource prefix="/org/fedoraproject/dnf/plugins/upgrade">
+ <file>upgrade.plugin</file>
+ </gresource>
+</gresources>
diff --git a/dnf/plugins/update/dnf-command-update.h b/dnf/plugins/upgrade/dnf-command-upgrade.h
similarity index 74%
rename from dnf/plugins/update/dnf-command-update.h
rename to dnf/plugins/upgrade/dnf-command-upgrade.h
index 58bd228..5c8e976 100644
--- a/dnf/plugins/update/dnf-command-update.h
+++ b/dnf/plugins/upgrade/dnf-command-upgrade.h
@@ -1,4 +1,4 @@
-/* dnf-command-update.h
+/* dnf-command-upgrade.h
*
* Copyright © 2016 Igor Gnatenko <ignatenko@redhat.com>
*
@@ -23,9 +23,9 @@
G_BEGIN_DECLS
-#define DNF_TYPE_COMMAND_UPDATE dnf_command_update_get_type ()
-G_DECLARE_FINAL_TYPE (DnfCommandUpdate, dnf_command_update, DNF, COMMAND_UPDATE, PeasExtensionBase)
+#define DNF_TYPE_COMMAND_UPGRADE dnf_command_upgrade_get_type ()
+G_DECLARE_FINAL_TYPE (DnfCommandUpgrade, dnf_command_upgrade, DNF, COMMAND_UPGRADE, PeasExtensionBase)
-G_MODULE_EXPORT void dnf_command_update_register_types (PeasObjectModule *module);
+G_MODULE_EXPORT void dnf_command_upgrade_register_types (PeasObjectModule *module);
G_END_DECLS
diff --git a/dnf/plugins/upgrade/upgrade.plugin b/dnf/plugins/upgrade/upgrade.plugin
new file mode 100644
index 0000000..1f2bda2
--- /dev/null
+++ b/dnf/plugins/upgrade/upgrade.plugin
@@ -0,0 +1,9 @@
+[Plugin]
+Module = command_upgrade
+Embedded = dnf_command_upgrade_register_types
+Name = upgrade
+Description = Upgrade packages
+Authors = Igor Gnatenko <ignatenko@redhat.com>
+License = GPL-2.0+
+Copyright = Copyright © 2016 Igor Gnatenko
+X-Command-Syntax = upgrade [PACKAGE…]
--
2.26.2
From 1bdeb23b66b44c4549a19e9c538c30833839156e Mon Sep 17 00:00:00 2001
From: Jaroslav Rohel <jrohel@redhat.com>
Date: Mon, 7 Dec 2020 12:25:48 +0100
Subject: [PATCH 2/3] Add support for command aliases
Added support for new custom keys to "*.plugin" file:
X-Alias-Name - command alias name
X-Alias-Description - description of alias
If both keys are present, then information will be added into help.
---
dnf/dnf-main.c | 21 ++++++++++++++++++---
1 file changed, 18 insertions(+), 3 deletions(-)
diff --git a/dnf/dnf-main.c b/dnf/dnf-main.c
index 2ea3d76..0cf634f 100644
--- a/dnf/dnf-main.c
+++ b/dnf/dnf-main.c
@@ -358,6 +358,8 @@ main (int argc,
g_autoptr(GOptionContext) subcmd_opt_ctx = NULL;
g_autofree gchar *subcmd_opt_param = NULL;
GSList *cmds_with_subcmds = NULL; /* list of commands with subcommands */
+ /* dictionary of aliases for commands */
+ g_autoptr(GHashTable) cmds_aliases = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_free);
setlocale (LC_ALL, "");
@@ -397,6 +399,7 @@ main (int argc,
if (peas_engine_provides_extension (engine, info, DNF_TYPE_COMMAND))
{
g_autofree gchar *command_name = g_strdup (peas_plugin_info_get_name (info));
+ g_autofree gchar *command_alias_name = g_strdup (peas_plugin_info_get_external_data (info, "Alias-Name"));
/* Plugins with a '_' character in command name implement subcommands.
E.g. the "command_module_enable" plugin implements the "enable" subcommand of the "module" command. */
@@ -409,11 +412,21 @@ main (int argc,
break;
}
}
+
+ /* Add command alias to the dictionary. */
+ if (command_alias_name)
+ g_hash_table_insert (cmds_aliases, g_strdup (command_alias_name), g_strdup (command_name));
+
/*
* At least 2 spaces between the command and its description are needed
* so that help2man formats it correctly.
*/
g_string_append_printf (cmd_summary, "\n %-16s %s", command_name, peas_plugin_info_get_description (info));
+
+ /* If command has an alias with a description, add it to the help. */
+ const gchar *command_alias_description = peas_plugin_info_get_external_data (info, "Alias-Description");
+ if (command_alias_name && command_alias_description)
+ g_string_append_printf (cmd_summary, "\n %-16s %s", command_alias_name, command_alias_description);
}
}
g_option_context_set_summary (opt_ctx, cmd_summary->str);
@@ -552,15 +565,17 @@ main (int argc,
* Command name (cmd_name) can not contain '_' character. It is reserved for subcomands. */
if (cmd_name != NULL && strchr(cmd_name, '_') == NULL)
{
- with_subcmds = g_slist_find_custom (cmds_with_subcmds, cmd_name, compare_strings) != NULL;
- g_autofree gchar *mod_name = g_strdup_printf ("command_%s", cmd_name);
+ const gchar *original_cmd_name = g_hash_table_lookup (cmds_aliases, cmd_name);
+ const gchar *search_cmd_name = original_cmd_name ? original_cmd_name : cmd_name;
+ with_subcmds = g_slist_find_custom (cmds_with_subcmds, search_cmd_name, compare_strings) != NULL;
+ g_autofree gchar *mod_name = g_strdup_printf ("command_%s", search_cmd_name);
plug = peas_engine_get_plugin_info (engine, mod_name);
if (plug == NULL && with_subcmds)
{
subcmd_name = get_command (&argc, argv);
if (subcmd_name != NULL)
{
- g_autofree gchar *submod_name = g_strdup_printf ("command_%s_%s", cmd_name, subcmd_name);
+ g_autofree gchar *submod_name = g_strdup_printf ("command_%s_%s", search_cmd_name, subcmd_name);
plug = peas_engine_get_plugin_info (engine, submod_name);
}
}
--
2.26.2
From 74a918e84a2250c02dcf2190f4951eab2a3e3296 Mon Sep 17 00:00:00 2001
From: Jaroslav Rohel <jrohel@redhat.com>
Date: Mon, 7 Dec 2020 12:30:05 +0100
Subject: [PATCH 3/3] Added alias "update" to "upgrade" command
"Update" is deprecated, but is required for compatibility.
---
dnf/plugins/upgrade/upgrade.plugin | 2 ++
1 file changed, 2 insertions(+)
diff --git a/dnf/plugins/upgrade/upgrade.plugin b/dnf/plugins/upgrade/upgrade.plugin
index 1f2bda2..87dd93e 100644
--- a/dnf/plugins/upgrade/upgrade.plugin
+++ b/dnf/plugins/upgrade/upgrade.plugin
@@ -7,3 +7,5 @@ Authors = Igor Gnatenko <ignatenko@redhat.com>
License = GPL-2.0+
Copyright = Copyright © 2016 Igor Gnatenko
X-Command-Syntax = upgrade [PACKAGE…]
+X-Alias-Name = update
+X-Alias-Description = Compatibility alias for the "upgrade" command
--
2.26.2

View File

@ -1,14 +1,16 @@
%global libdnf_version 0.43.1
%global libdnf_version 0.55.0
Name: microdnf
Version: 3.4.0
Release: 2%{?dist}
Release: 3%{?dist}
Summary: Minimal C implementation of DNF
License: GPLv3+
URL: https://github.com/rpm-software-management/microdnf
Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz
Patch0: 0001-Add-module-enable-disable-reset-command.patch
Patch1: 0002-Add-support-for-setting-a-platform-module-ID.patch
Patch2: 0003-Rename-update-command-to-upgrade-update-remain-as-compatibility-alias-RhBug-1905471.patch
BuildRequires: gcc
BuildRequires: meson >= 0.36.0
@ -54,6 +56,10 @@ capabilities are intentionally not implemented in Micro DNF.
%{_bindir}/%{name}
%changelog
* Fri Jan 29 2021 Nicola Sella <nsella@redhat.com> - 3.4.0-3
- Patch: Add support for setting a platform module ID
- Rename "update" command to "upgrade", "update" remain as compatibility alias
* Fri Jan 15 2021 Nicola Sella <nsella@redhat.com> - 3.4.0-2
- Patch: Add module enable/disable/reset command