From ba1a75e45d6dd62fbe50067dd300413593ad3061 Mon Sep 17 00:00:00 2001 From: Pavla Kratochvilova Date: Tue, 5 Nov 2019 12:12:08 +0100 Subject: [PATCH] Update to 0.37.2 --- .gitignore | 1 + ...e92332241ff1113433057c969cebf127734e.patch | 25 ----- ...e-POOL_FLAG_WHATPROVIDESWITHDISABLED.patch | 46 ---------- 0003-Fix-leaking-log-handlers-in-Sack.patch | 92 ------------------- libdnf.spec | 81 ++++++++++------ sources | 2 +- 6 files changed, 53 insertions(+), 194 deletions(-) delete mode 100644 0001-Revert-9309e92332241ff1113433057c969cebf127734e.patch delete mode 100644 0001-Use-POOL_FLAG_WHATPROVIDESWITHDISABLED.patch delete mode 100644 0003-Fix-leaking-log-handlers-in-Sack.patch diff --git a/.gitignore b/.gitignore index 342310b..1d4535f 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ /libdnf-0.35.2.tar.gz /libdnf-0.35.3.tar.gz /libdnf-0.35.5.tar.gz +/libdnf-0.37.2.tar.gz diff --git a/0001-Revert-9309e92332241ff1113433057c969cebf127734e.patch b/0001-Revert-9309e92332241ff1113433057c969cebf127734e.patch deleted file mode 100644 index 42fa3d1..0000000 --- a/0001-Revert-9309e92332241ff1113433057c969cebf127734e.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 56286de885cfa5721a5d74b873df49238f324029 Mon Sep 17 00:00:00 2001 -From: Pavla Kratochvilova -Date: Wed, 13 Feb 2019 12:39:30 +0100 -Subject: [PATCH] Revert: 9309e92332241ff1113433057c969cebf127734e - ---- - libdnf/conf/ConfigMain.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libdnf/conf/ConfigMain.cpp b/libdnf/conf/ConfigMain.cpp -index fc4ff01..50c640c 100644 ---- a/libdnf/conf/ConfigMain.cpp -+++ b/libdnf/conf/ConfigMain.cpp -@@ -210,7 +210,7 @@ class ConfigMain::Impl { - OptionSeconds metadata_timer_sync{60 * 60 * 3}; // 3 hours - OptionStringList disable_excludes{std::vector{}}; - OptionEnum multilib_policy{"best", {"best", "all"}}; // :api -- OptionBool best{true}; // :api -+ OptionBool best{false}; // :api - OptionBool install_weak_deps{true}; - OptionString bugtracker_url{BUGTRACKER}; - OptionBool zchunk{true}; --- -libgit2 0.27.7 - diff --git a/0001-Use-POOL_FLAG_WHATPROVIDESWITHDISABLED.patch b/0001-Use-POOL_FLAG_WHATPROVIDESWITHDISABLED.patch deleted file mode 100644 index 1754957..0000000 --- a/0001-Use-POOL_FLAG_WHATPROVIDESWITHDISABLED.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 97d0afa11b44d295e49c67b978f786f7870f09e3 Mon Sep 17 00:00:00 2001 -From: Jaroslav Mracek -Date: Fri, 11 Oct 2019 15:16:34 +0200 -Subject: [PATCH] Use POOL_FLAG_WHATPROVIDESWITHDISABLED - -It resolves the problem with --best and search in provides. -The patch requires libsolv-0.7.7. - -https://bugzilla.redhat.com/show_bug.cgi?id=1737469 - -Requires for 100% functionality (build, run-time): -https://github.com/openSUSE/libsolv/commit/954862319e32e97b20afd0f598cd461ece320e4f -https://github.com/openSUSE/libsolv/commit/bfdc347fdfc350a9b290543fac905cb21f9a71a8 - -Tests: -https://github.com/openSUSE/libsolv/commit/7477a28ca57c9fd2df73e24a36d2a0f0734662ef ---- - libdnf.spec | 2 +- - libdnf/dnf-sack.cpp | 1 + - 2 files changed, 2 insertions(+), 1 deletion(-) - -diff --git a/libdnf.spec b/libdnf.spec -index 42205d0..a2bf2a2 100644 ---- a/libdnf.spec -+++ b/libdnf.spec -@@ -1,4 +1,4 @@ --%global libsolv_version 0.7.4-1 -+%global libsolv_version 0.7.7 - %global libmodulemd_version 1.6.1 - %global librepo_version 1.10.0 - %global dnf_conflict 4.2.11 -diff --git a/libdnf/dnf-sack.cpp b/libdnf/dnf-sack.cpp -index 8848aab..57839a3 100644 ---- a/libdnf/dnf-sack.cpp -+++ b/libdnf/dnf-sack.cpp -@@ -183,6 +183,7 @@ dnf_sack_init(DnfSack *sack) - { - DnfSackPrivate *priv = GET_PRIVATE(sack); - priv->pool = pool_create(); -+ pool_set_flag(priv->pool, POOL_FLAG_WHATPROVIDESWITHDISABLED, 1); - priv->running_kernel_id = -1; - priv->running_kernel_fn = running_kernel; - priv->considered_uptodate = TRUE; --- -libgit2 0.28.2 - diff --git a/0003-Fix-leaking-log-handlers-in-Sack.patch b/0003-Fix-leaking-log-handlers-in-Sack.patch deleted file mode 100644 index 847f274..0000000 --- a/0003-Fix-leaking-log-handlers-in-Sack.patch +++ /dev/null @@ -1,92 +0,0 @@ -From 4503d8c017b1c625d65b22279a7e136ec962984c Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hr=C3=A1zk=C3=BD?= -Date: Mon, 7 Oct 2019 16:33:48 +0200 -Subject: [PATCH] Fix leaking log handlers in Sack (RhBug:1758737) - -Stores the log handler ids in the sack and uses g_log_remove_handler() -in the sack destructor to remove the handlers. - -The mechanism is a bit complex and is explained in a code comment. - -https://bugzilla.redhat.com/show_bug.cgi?id=1758737 ---- - python/hawkey/sack-py.cpp | 35 ++++++++++++++++++++++++++++------- - 1 file changed, 28 insertions(+), 7 deletions(-) - -diff --git a/python/hawkey/sack-py.cpp b/python/hawkey/sack-py.cpp -index 5e39dda69..5a1c10d1a 100644 ---- a/python/hawkey/sack-py.cpp -+++ b/python/hawkey/sack-py.cpp -@@ -52,6 +52,22 @@ typedef struct { - PyObject *custom_package_class; - PyObject *custom_package_val; - PyObject * ModulePackageContainerPy; -+ -+ // g_log handler IDs -+ // Multiple sacks can be created during a run of an application and each -+ // sack opens a log file and registers two g_log handlers. To avoid dangling -+ // handlers with invalid FILE pointers (we close them when destroying the -+ // sack), we need to keep track of the handlers so that we can also remove -+ // them. -+ // -+ // g_log is clever about adding log handlers. It does store all handlers -+ // registered for a given domain, but only the one that was registered last -+ // is used. If you remove the last registered one, the next in line will be -+ // used. That means stacking sacks is ok, the handler from the last -+ // undeleted sack will be the one that is used. -+ guint default_log_handler_id; -+ guint libdnf_log_handler_id; -+ - FILE *log_out; - } _SackObject; - -@@ -131,8 +147,13 @@ sack_dealloc(_SackObject *o) - } - g_object_unref(o->sack); - } -- if (o->log_out) -+ -+ if (o->log_out) { -+ g_log_remove_handler(nullptr, o->default_log_handler_id); -+ g_log_remove_handler("libdnf", o->libdnf_log_handler_id); - fclose(o->log_out); -+ } -+ - Py_TYPE(o)->tp_free(o); - } - -@@ -194,11 +215,11 @@ log_handler_noop(const gchar *, GLogLevelFlags, const gchar *, gpointer) - } - - static gboolean --set_logfile(const gchar *path, FILE ** log_out, bool debug) -+sack_set_logfile(_SackObject *self, const gchar *path, bool debug) - { -- *log_out = fopen(path, "a"); -+ self->log_out = fopen(path, "a"); - -- if (!(*log_out)) -+ if (!self->log_out) - return FALSE; - - // The default log handler prints messages that weren't handled by any -@@ -213,8 +234,8 @@ set_logfile(const gchar *path, FILE ** log_out, bool debug) - G_LOG_LEVEL_ERROR); - - // set the handler for the default domain as well as "libdnf" -- g_log_set_handler(nullptr, log_mask, log_handler, *log_out); -- g_log_set_handler("libdnf", log_mask, log_handler, *log_out); -+ self->default_log_handler_id = g_log_set_handler(nullptr, log_mask, log_handler, self->log_out); -+ self->libdnf_log_handler_id = g_log_set_handler("libdnf", log_mask, log_handler, self->log_out); - - g_info("=== Started libdnf-%d.%d.%d ===", LIBDNF_MAJOR_VERSION, - LIBDNF_MINOR_VERSION, LIBDNF_MICRO_VERSION); -@@ -273,7 +294,7 @@ sack_init(_SackObject *self, PyObject *args, PyObject *kwds) - PycompString logfile(logfile_py); - if (!logfile.getCString()) - return -1; -- if (!set_logfile(logfile.getCString(), &self->log_out, debug)) { -+ if (!sack_set_logfile(self, logfile.getCString(), debug)) { - PyErr_Format(PyExc_IOError, "Failed to open log file: %s", logfile.getCString()); - return -1; - } diff --git a/libdnf.spec b/libdnf.spec index 1127710..e0c7a52 100644 --- a/libdnf.spec +++ b/libdnf.spec @@ -1,9 +1,20 @@ -%global libsolv_version 0.7.6-3 +%global libsolv_version 0.7.7 %global libmodulemd_version 1.6.1 -%global librepo_version 1.10.0 -%global dnf_conflict 4.2.11 +%global librepo_version 1.11.0 +%global dnf_conflict 4.2.13 %global swig_version 3.0.12 +# set sphinx package name according to distro +%global requires_python2_sphinx python2-sphinx +%global requires_python3_sphinx python3-sphinx +%if 0%{?rhel} == 7 + %global requires_python2_sphinx python-sphinx +%endif +%if 0%{?suse_version} + %global requires_python2_sphinx python2-Sphinx + %global requires_python3_sphinx python3-Sphinx +%endif + %bcond_with valgrind # Do not build bindings for python3 for RHEL <= 7 @@ -13,12 +24,6 @@ %bcond_without python3 %endif -%if 0%{?rhel} - %global rpm_version 4.14.2 -%else - %global rpm_version 4.14.2.1-4 -%endif - %if 0%{?rhel} > 7 || 0%{?fedora} > 29 # Disable python2 build by default %bcond_with python2 @@ -43,18 +48,14 @@ %{nil} Name: libdnf -Version: 0.35.5 -Release: 5%{?dist} +Version: 0.37.2 +Release: 1%{?dist} Summary: Library providing simplified C and Python API to libsolv License: LGPLv2+ URL: https://github.com/rpm-software-management/libdnf Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz -Patch0001: 0001-Revert-9309e92332241ff1113433057c969cebf127734e.patch -Patch0002: 0001-Use-POOL_FLAG_WHATPROVIDESWITHDISABLED.patch -Patch0003: 0003-Fix-leaking-log-handlers-in-Sack.patch - -Patch0005: 0001-Revert-hy_detect_arch-detect-crypto-only-on-arm-vers.patch -Patch0006: 0002-Fix-Arm-detection-improvements.patch +Patch0001: 0001-Revert-hy_detect_arch-detect-crypto-only-on-arm-vers.patch +Patch0002: 0002-Fix-Arm-detection-improvements.patch BuildRequires: cmake BuildRequires: gcc @@ -67,7 +68,7 @@ BuildRequires: valgrind %endif BuildRequires: pkgconfig(gio-unix-2.0) >= 2.46.0 BuildRequires: pkgconfig(gtk-doc) -BuildRequires: rpm-devel >= %{rpm_version} +BuildRequires: rpm-devel >= 4.11.0 %if %{with rhsm} BuildRequires: pkgconfig(librhsm) >= 0.0.3 %endif @@ -114,11 +115,12 @@ Development files for %{name}. Summary: Python 2 bindings for the libdnf library. Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: python2-devel +%if !0%{?mageia} +BuildRequires: %{requires_python2_sphinx} +%endif %if 0%{?rhel} == 7 -BuildRequires: python-sphinx BuildRequires: swig3 >= %{swig_version} %else -BuildRequires: python2-sphinx BuildRequires: swig >= %{swig_version} %endif @@ -132,7 +134,7 @@ Python 2 bindings for the libdnf library. Summary: Python 3 bindings for the libdnf library. Requires: %{name}%{?_isa} = %{version}-%{release} BuildRequires: python3-devel -BuildRequires: python3-sphinx +BuildRequires: %{requires_python3_sphinx} BuildRequires: swig >= %{swig_version} %description -n python3-%{name} @@ -190,6 +192,11 @@ mkdir build-py3 %build %if %{with python2} pushd build-py2 + %if 0%{?mageia} || 0%{?suse_version} + cd .. + %define _cmake_builddir build-py2 + %define __builddir build-py2 + %endif %cmake -DPYTHON_DESIRED:FILEPATH=%{__python2} -DWITH_MAN=OFF ../ %{!?with_zchunk:-DWITH_ZCHUNK=OFF} %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} %make_build popd @@ -197,20 +204,17 @@ popd %if %{with python3} pushd build-py3 + %if 0%{?mageia} || 0%{?suse_version} + cd .. + %define _cmake_builddir build-py3 + %define __builddir build-py3 + %endif %cmake -DPYTHON_DESIRED:FILEPATH=%{__python3} -DWITH_GIR=0 -DWITH_MAN=0 -Dgtkdoc=0 ../ %{!?with_zchunk:-DWITH_ZCHUNK=OFF} %{!?with_valgrind:-DDISABLE_VALGRIND=1} %{_cmake_opts} %make_build popd %endif %check -if [ "$(id -u)" == "0" ] ; then - cat <&2 -Package tests cannot be run under superuser account. -Please build the package as non-root user. -ERROR - exit 1 -fi - %if %{with python2} pushd build-py2 make ARGS="-V" test @@ -246,7 +250,7 @@ popd %find_lang %{name} -%if 0%{?rhel} && 0%{?rhel} <= 7 +%if (0%{?rhel} && 0%{?rhel} <= 7) || 0%{?suse_version} %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %else @@ -288,6 +292,23 @@ popd %endif %changelog +* Wed Nov 06 2019 Pavla Kratochvilova - 0.37.2-1 +- Update to 0.37.2 +- Use more descriptive message when failed to retrieve GPG key (RhBug:1605117) +- Add removeMetadataTypeFromDownload function to the API +- Context part of libdnf can now read vars (urlvars) from dirs and environment +- Throw exception immediately if file cannot be opened +- Add test when there is no primary metadata in compatible format (RhBug:1744960) +- Various improvements to countme features +- Don't abort on rpmdb checksum calculation failure +- Enable module dependency trees when using set_modules_enabled_by_pkgset() (RhBug:1762314) +- New method "Query::filterSubject()", replaces Solution::getBestSolution() +- The Solution class was removed +- Add query argument into get_best_query and get_best_solution +- Add module reset function into dnf_context +- Add method to get all repository metadata locations +- Catch NoModuleException in case of not existent value was used in persistor (RhBug:1761773) + * Wed Oct 23 2019 Peter Robinson 0.35.5-5 - Fixes for some issues on Arm platforms (rhbz 1691430) diff --git a/sources b/sources index 1db6c9f..146d7c1 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (libdnf-0.35.5.tar.gz) = 4b9ec3a527ebcffd96c9b5b7c92db867e5e4b9b8cc07e057aaceae7cd447f67a23dbc821527d1db1bef5630d17301c08293708b383b5d04db6989ae5c9d9b3ef +SHA512 (libdnf-0.37.2.tar.gz) = ca1db4670ba5571ae0f310ebf9cbe0a4734b85527498336e57e47fd894ac99d5a8bc310c88632bd4f6615f58d0b98b08087c361e6334f884725bdebc968ed740