diff --git a/.gitignore b/.gitignore index f292d70..0637cc3 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1 @@ -SOURCES/libpeas-1.20.0.tar.xz SOURCES/microdnf-2.tar.gz diff --git a/.microdnf.metadata b/.microdnf.metadata index 4f610a9..b66d4de 100644 --- a/.microdnf.metadata +++ b/.microdnf.metadata @@ -1,2 +1 @@ -3844f00f0ab3ded28c6a8c6c1c3186856bccdc30 SOURCES/libpeas-1.20.0.tar.xz 5491a82ed3ab1b3bc86a6da3b5417e0e45fb4eb0 SOURCES/microdnf-2.tar.gz diff --git a/SOURCES/0001-print-downloading-packages-only-once.patch b/SOURCES/0001-print-downloading-packages-only-once.patch new file mode 100644 index 0000000..2c0b16a --- /dev/null +++ b/SOURCES/0001-print-downloading-packages-only-once.patch @@ -0,0 +1,47 @@ +From 15837579fef30f1e8fe1aa3017eb5441caf3f09c Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Fri, 17 Feb 2017 21:46:28 +0100 +Subject: [PATCH 1/2] print downloading packages only once + +Signed-off-by: Igor Gnatenko +--- + dnf/dnf-main.c | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/dnf/dnf-main.c b/dnf/dnf-main.c +index 610ad74..6473bb3 100644 +--- a/dnf/dnf-main.c ++++ b/dnf/dnf-main.c +@@ -29,6 +29,7 @@ + static gboolean opt_yes = TRUE; + static gboolean opt_nodocs = FALSE; + static gboolean show_help = FALSE; ++static gboolean dl_pkgs_printed = FALSE; + + static gboolean + process_global_option (const gchar *option_name, +@@ -115,8 +116,11 @@ state_action_changed_cb (DnfState *state, + g_print("Downloading metadata...\n"); + break; + case DNF_STATE_ACTION_DOWNLOAD_PACKAGES: +- g_print("Downloading: %s (%u%%)\n", action_hint, +- dnf_state_get_percentage (state)); ++ if (!dl_pkgs_printed) ++ { ++ g_print("Downloading packages...\n"); ++ dl_pkgs_printed = TRUE; ++ } + break; + case DNF_STATE_ACTION_TEST_COMMIT: + g_print("Running transaction test...\n"); +@@ -141,6 +145,7 @@ state_action_changed_cb (DnfState *state, + break; + case DNF_STATE_ACTION_CLEANUP: + g_print("Cleanup: %s\n", action_hint); ++ break; + default: + break; + } +-- +2.12.1 + diff --git a/SOURCES/0001-use-bundled-libpeas-in-case-proper-one-not-found.patch b/SOURCES/0001-use-bundled-libpeas-in-case-proper-one-not-found.patch deleted file mode 100644 index 869b0f6..0000000 --- a/SOURCES/0001-use-bundled-libpeas-in-case-proper-one-not-found.patch +++ /dev/null @@ -1,53 +0,0 @@ -From 06b6c44a0236bd499e71c2f56d0f5907e0a642c5 Mon Sep 17 00:00:00 2001 -From: Igor Gnatenko -Date: Thu, 19 Jan 2017 16:44:53 +0100 -Subject: [PATCH] use bundled libpeas in case proper one not found - -Signed-off-by: Igor Gnatenko ---- - CMakeLists.txt | 27 ++++++++++++++++++++++++++- - 1 file changed, 26 insertions(+), 1 deletion(-) - -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 04ca35a..e1ab4e3 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -16,9 +16,34 @@ set (CMAKE_C_FLAGS "${CMAKE_C_FLAGS} --std=gnu11") - find_package (PkgConfig REQUIRED) - pkg_check_modules (GLIB REQUIRED glib-2.0>=2.44.0) - pkg_check_modules (GOBJECT REQUIRED gobject-2.0>=2.44.0) --pkg_check_modules (PEAS REQUIRED libpeas-1.0>=1.20.0) -+pkg_check_modules (PEAS QUIET libpeas-1.0>=1.20.0) - pkg_check_modules (LIBDNF REQUIRED libdnf>=0.7.0) - -+if (NOT PEAS_FOUND) -+ include (ExternalProject) -+ set (PEAS_ARCHIVE ${CMAKE_CURRENT_LIST_DIR}/libpeas-1.20.0.tar.xz) -+ set (PEAS_INSTALL_PREFIX ${CMAKE_BINARY_DIR}/libpeas) -+ pkg_check_modules (PEAS_INTERNALS REQUIRED glib-2.0>=2.38.0 gobject-2.0>=2.38.0 gmodule-2.0>=2.38.0 gio-2.0>=2.32.0 gobject-introspection-1.0>=1.39.0) -+ ExternalProject_Add ( -+ libpeas_external -+ URL https://download.gnome.org/sources/libpeas/1.20/libpeas-1.20.0.tar.xz -+ URL_HASH SHA256=f392fffe2dc00072a51bb2a1b274224a06bdc5f9c3b3c0ac4816909e9933d354 -+ CONFIGURE_COMMAND -+ COMMAND ./configure --prefix=${PEAS_INSTALL_PREFIX} --enable-static --disable-shared --disable-lua5.1 --disable-luajit --disable-python2 --disable-python3 --disable-gtk --disable-glade-catalog -+ BUILD_COMMAND -+ COMMAND make -+ INSTALL_COMMAND -+ COMMAND make install -+ BUILD_IN_SOURCE 1 -+ ) -+ -+ add_library (libpeas STATIC IMPORTED) -+ add_dependencies (libpeas libpeas_external) -+ set_target_properties (libpeas PROPERTIES IMPORTED_LOCATION ${PEAS_INSTALL_PREFIX}/lib/libpeas-1.0.a) -+ set (PEAS_INCLUDE_DIRS ${PEAS_INSTALL_PREFIX}/include/libpeas-1.0;${PEAS_INTERNALS_STATIC_INCLUDE_DIRS}) -+ set (PEAS_LIBRARIES libpeas;${PEAS_INTERNALS_STATIC_LIBRARIES}) -+endif () -+ - set (PKG_LIBDIR ${CMAKE_INSTALL_FULL_LIBDIR}/dnf) - set (PKG_DATADIR ${CMAKE_INSTALL_FULL_DATADIR}/dnf) - add_definitions (-DPACKAGE_LIBDIR="${PKG_LIBDIR}") --- -2.7.4 - diff --git a/SOURCES/0002-do-not-fail-on-empty-transactions.patch b/SOURCES/0002-do-not-fail-on-empty-transactions.patch new file mode 100644 index 0000000..318a891 --- /dev/null +++ b/SOURCES/0002-do-not-fail-on-empty-transactions.patch @@ -0,0 +1,129 @@ +From 5b9caacf40e20e74298da29b0e5de525096c0e13 Mon Sep 17 00:00:00 2001 +From: Igor Gnatenko +Date: Sat, 4 Mar 2017 16:56:43 +0100 +Subject: [PATCH 2/2] do not fail on empty transactions + +Closes: https://github.com/rpm-software-management/microdnf/issues/3 +Signed-off-by: Igor Gnatenko +--- + dnf/dnf-utils.c | 16 +++++++++------- + dnf/dnf-utils.h | 4 ++-- + dnf/plugins/install/dnf-command-install.c | 5 +++-- + dnf/plugins/update/dnf-command-update.c | 5 +++-- + 4 files changed, 17 insertions(+), 13 deletions(-) + +diff --git a/dnf/dnf-utils.c b/dnf/dnf-utils.c +index 16f4d08..b3d087c 100644 +--- a/dnf/dnf-utils.c ++++ b/dnf/dnf-utils.c +@@ -2,7 +2,7 @@ + * + * Copyright © 2010-2015 Richard Hughes + * Copyright © 2016 Colin Walters +- * Copyright © 2016 Igor Gnatenko ++ * Copyright © 2016-2017 Igor Gnatenko + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -20,7 +20,7 @@ + + #include "dnf-utils.h" + +-void ++gboolean + dnf_utils_print_transaction (DnfContext *ctx) + { + g_autoptr(GPtrArray) pkgs = dnf_goal_get_packages (dnf_context_get_goal (ctx), +@@ -30,16 +30,18 @@ dnf_utils_print_transaction (DnfContext *ctx) + DNF_PACKAGE_INFO_UPDATE, + DNF_PACKAGE_INFO_REMOVE, + -1); +- g_print ("Transaction: "); ++ + if (pkgs->len == 0) +- g_print ("(empty)"); +- else +- g_print ("%u packages", pkgs->len); +- g_print ("\n"); ++ { ++ g_print ("Nothing to do.\n"); ++ return FALSE; ++ } ++ g_print ("Transaction: %u packages\n", pkgs->len); + + for (guint i = 0; i < pkgs->len; i++) + { + DnfPackage *pkg = pkgs->pdata[i]; + g_print ("%s (%s)\n", dnf_package_get_nevra (pkg), dnf_package_get_reponame (pkg)); + } ++ return TRUE; + } +diff --git a/dnf/dnf-utils.h b/dnf/dnf-utils.h +index d649109..f894800 100644 +--- a/dnf/dnf-utils.h ++++ b/dnf/dnf-utils.h +@@ -1,7 +1,7 @@ + /* dnf-utils.h + * + * Copyright © 2016 Colin Walters +- * Copyright © 2016 Igor Gnatenko ++ * Copyright © 2016-2017 Igor Gnatenko + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -24,6 +24,6 @@ + + G_BEGIN_DECLS + +-void dnf_utils_print_transaction (DnfContext *ctx); ++gboolean dnf_utils_print_transaction (DnfContext *ctx); + + G_END_DECLS +diff --git a/dnf/plugins/install/dnf-command-install.c b/dnf/plugins/install/dnf-command-install.c +index 6f27768..ea549da 100644 +--- a/dnf/plugins/install/dnf-command-install.c ++++ b/dnf/plugins/install/dnf-command-install.c +@@ -2,7 +2,7 @@ + * + * Copyright © 2010-2015 Richard Hughes + * Copyright © 2016 Colin Walters +- * Copyright © 2016 Igor Gnatenko ++ * Copyright © 2016-2017 Igor Gnatenko + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -75,7 +75,8 @@ dnf_command_install_run (DnfCommand *cmd, + } + if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), DNF_INSTALL, error)) + return FALSE; +- dnf_utils_print_transaction (ctx); ++ if (!dnf_utils_print_transaction (ctx)) ++ return TRUE; + if (!dnf_context_run (ctx, NULL, error)) + return FALSE; + g_print ("Complete.\n"); +diff --git a/dnf/plugins/update/dnf-command-update.c b/dnf/plugins/update/dnf-command-update.c +index 33f7974..652d902 100644 +--- a/dnf/plugins/update/dnf-command-update.c ++++ b/dnf/plugins/update/dnf-command-update.c +@@ -1,6 +1,6 @@ + /* dnf-command-update.c + * +- * Copyright © 2016 Igor Gnatenko ++ * Copyright © 2016-2017 Igor Gnatenko + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -73,7 +73,8 @@ dnf_command_update_run (DnfCommand *cmd, + + if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), 0, error)) + return FALSE; +- dnf_utils_print_transaction (ctx); ++ if (!dnf_utils_print_transaction (ctx)) ++ return TRUE; + if (!dnf_context_run (ctx, NULL, error)) + return FALSE; + g_print ("Complete.\n"); +-- +2.12.1 + diff --git a/SOURCES/0002-print-downloading-packages-only-once.patch b/SOURCES/0002-print-downloading-packages-only-once.patch deleted file mode 100644 index 87bed96..0000000 --- a/SOURCES/0002-print-downloading-packages-only-once.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 15837579fef30f1e8fe1aa3017eb5441caf3f09c Mon Sep 17 00:00:00 2001 -From: Igor Gnatenko -Date: Fri, 17 Feb 2017 21:46:28 +0100 -Subject: [PATCH 2/3] print downloading packages only once - -Signed-off-by: Igor Gnatenko ---- - dnf/dnf-main.c | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/dnf/dnf-main.c b/dnf/dnf-main.c -index 610ad74..6473bb3 100644 ---- a/dnf/dnf-main.c -+++ b/dnf/dnf-main.c -@@ -29,6 +29,7 @@ - static gboolean opt_yes = TRUE; - static gboolean opt_nodocs = FALSE; - static gboolean show_help = FALSE; -+static gboolean dl_pkgs_printed = FALSE; - - static gboolean - process_global_option (const gchar *option_name, -@@ -115,8 +116,11 @@ state_action_changed_cb (DnfState *state, - g_print("Downloading metadata...\n"); - break; - case DNF_STATE_ACTION_DOWNLOAD_PACKAGES: -- g_print("Downloading: %s (%u%%)\n", action_hint, -- dnf_state_get_percentage (state)); -+ if (!dl_pkgs_printed) -+ { -+ g_print("Downloading packages...\n"); -+ dl_pkgs_printed = TRUE; -+ } - break; - case DNF_STATE_ACTION_TEST_COMMIT: - g_print("Running transaction test...\n"); -@@ -141,6 +145,7 @@ state_action_changed_cb (DnfState *state, - break; - case DNF_STATE_ACTION_CLEANUP: - g_print("Cleanup: %s\n", action_hint); -+ break; - default: - break; - } --- -2.7.4 - diff --git a/SOURCES/0003-do-not-fail-on-empty-transactions.patch b/SOURCES/0003-do-not-fail-on-empty-transactions.patch deleted file mode 100644 index 63bdae3..0000000 --- a/SOURCES/0003-do-not-fail-on-empty-transactions.patch +++ /dev/null @@ -1,129 +0,0 @@ -From 5b9caacf40e20e74298da29b0e5de525096c0e13 Mon Sep 17 00:00:00 2001 -From: Igor Gnatenko -Date: Sat, 4 Mar 2017 16:56:43 +0100 -Subject: [PATCH 3/3] do not fail on empty transactions - -Closes: https://github.com/rpm-software-management/microdnf/issues/3 -Signed-off-by: Igor Gnatenko ---- - dnf/dnf-utils.c | 16 +++++++++------- - dnf/dnf-utils.h | 4 ++-- - dnf/plugins/install/dnf-command-install.c | 5 +++-- - dnf/plugins/update/dnf-command-update.c | 5 +++-- - 4 files changed, 17 insertions(+), 13 deletions(-) - -diff --git a/dnf/dnf-utils.c b/dnf/dnf-utils.c -index 16f4d08..b3d087c 100644 ---- a/dnf/dnf-utils.c -+++ b/dnf/dnf-utils.c -@@ -2,7 +2,7 @@ - * - * Copyright © 2010-2015 Richard Hughes - * Copyright © 2016 Colin Walters -- * Copyright © 2016 Igor Gnatenko -+ * Copyright © 2016-2017 Igor Gnatenko - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -20,7 +20,7 @@ - - #include "dnf-utils.h" - --void -+gboolean - dnf_utils_print_transaction (DnfContext *ctx) - { - g_autoptr(GPtrArray) pkgs = dnf_goal_get_packages (dnf_context_get_goal (ctx), -@@ -30,16 +30,18 @@ dnf_utils_print_transaction (DnfContext *ctx) - DNF_PACKAGE_INFO_UPDATE, - DNF_PACKAGE_INFO_REMOVE, - -1); -- g_print ("Transaction: "); -+ - if (pkgs->len == 0) -- g_print ("(empty)"); -- else -- g_print ("%u packages", pkgs->len); -- g_print ("\n"); -+ { -+ g_print ("Nothing to do.\n"); -+ return FALSE; -+ } -+ g_print ("Transaction: %u packages\n", pkgs->len); - - for (guint i = 0; i < pkgs->len; i++) - { - DnfPackage *pkg = pkgs->pdata[i]; - g_print ("%s (%s)\n", dnf_package_get_nevra (pkg), dnf_package_get_reponame (pkg)); - } -+ return TRUE; - } -diff --git a/dnf/dnf-utils.h b/dnf/dnf-utils.h -index d649109..f894800 100644 ---- a/dnf/dnf-utils.h -+++ b/dnf/dnf-utils.h -@@ -1,7 +1,7 @@ - /* dnf-utils.h - * - * Copyright © 2016 Colin Walters -- * Copyright © 2016 Igor Gnatenko -+ * Copyright © 2016-2017 Igor Gnatenko - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -24,6 +24,6 @@ - - G_BEGIN_DECLS - --void dnf_utils_print_transaction (DnfContext *ctx); -+gboolean dnf_utils_print_transaction (DnfContext *ctx); - - G_END_DECLS -diff --git a/dnf/plugins/install/dnf-command-install.c b/dnf/plugins/install/dnf-command-install.c -index 6f27768..ea549da 100644 ---- a/dnf/plugins/install/dnf-command-install.c -+++ b/dnf/plugins/install/dnf-command-install.c -@@ -2,7 +2,7 @@ - * - * Copyright © 2010-2015 Richard Hughes - * Copyright © 2016 Colin Walters -- * Copyright © 2016 Igor Gnatenko -+ * Copyright © 2016-2017 Igor Gnatenko - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -75,7 +75,8 @@ dnf_command_install_run (DnfCommand *cmd, - } - if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), DNF_INSTALL, error)) - return FALSE; -- dnf_utils_print_transaction (ctx); -+ if (!dnf_utils_print_transaction (ctx)) -+ return TRUE; - if (!dnf_context_run (ctx, NULL, error)) - return FALSE; - g_print ("Complete.\n"); -diff --git a/dnf/plugins/update/dnf-command-update.c b/dnf/plugins/update/dnf-command-update.c -index 33f7974..652d902 100644 ---- a/dnf/plugins/update/dnf-command-update.c -+++ b/dnf/plugins/update/dnf-command-update.c -@@ -1,6 +1,6 @@ - /* dnf-command-update.c - * -- * Copyright © 2016 Igor Gnatenko -+ * Copyright © 2016-2017 Igor Gnatenko - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by -@@ -73,7 +73,8 @@ dnf_command_update_run (DnfCommand *cmd, - - if (!dnf_goal_depsolve (dnf_context_get_goal (ctx), 0, error)) - return FALSE; -- dnf_utils_print_transaction (ctx); -+ if (!dnf_utils_print_transaction (ctx)) -+ return TRUE; - if (!dnf_context_run (ctx, NULL, error)) - return FALSE; - g_print ("Complete.\n"); --- -2.7.4 - diff --git a/SPECS/microdnf.spec b/SPECS/microdnf.spec index 52950de..68ce045 100644 --- a/SPECS/microdnf.spec +++ b/SPECS/microdnf.spec @@ -8,34 +8,27 @@ Name: microdnf Version: 2 -Release: 3%{?dist}.1.1 +Release: 4%{?dist} Summary: The microdnf package contains a limited functionality package manager written in C -License: GPLv3+ and LGPLv2+ +License: GPLv3+ URL: https://github.com/rpm-software-management/microdnf Source0: %{url}/archive/v%{version}/%{name}-%{version}.tar.gz -Source1: https://download.gnome.org/sources/libpeas/1.20/libpeas-1.20.0.tar.xz -Patch0001: 0001-use-bundled-libpeas-in-case-proper-one-not-found.patch -Patch0002: 0002-print-downloading-packages-only-once.patch -Patch0003: 0003-do-not-fail-on-empty-transactions.patch +Patch0001: 0001-print-downloading-packages-only-once.patch +Patch0002: 0002-do-not-fail-on-empty-transactions.patch BuildRequires: gcc BuildRequires: %{buildsys_req} BuildRequires: pkgconfig(glib-2.0) >= 2.44.0 BuildRequires: pkgconfig(gobject-2.0) >= 2.44.0 +BuildRequires: pkgconfig(libpeas-1.0) >= 1.20.0 BuildRequires: pkgconfig(libdnf) >= 0.7.0 -BuildRequires: pkgconfig(gmodule-2.0) >= 2.38.0 -BuildRequires: pkgconfig(gio-2.0) >= 2.32.0 -BuildRequires: pkgconfig(gobject-introspection-1.0) >= 1.39.0 -BuildRequires: intltool -Provides: bundled(libpeas) = 1.20.0 %description %{summary}. Supports basic commands like install, update and remove. %prep -%autosetup -p1 -a1 -sed -i -e "s|URL https://download.gnome.org/sources/libpeas/1.20/libpeas-1.20.0.tar.xz|SOURCE_DIR \${CMAKE_CURRENT_LIST_DIR}/libpeas-1.20.0|" CMakeLists.txt +%autosetup -p1 %if %{buildsys} == "cmake" %build @@ -59,11 +52,14 @@ popd %endif %files -%license COPYING libpeas-1.20.0/COPYING +%license COPYING %doc README.md %{_bindir}/%{name} %changelog +* Thu Mar 23 2017 Igor Gnatenko - 2-4 +- Unbundle libpeas + * Mon Mar 6 2017 Jan Silhan - 2-3 - do not fail on empty transactions + extended summary