Update to 0.66.0

This commit is contained in:
Pavla Kratochvilova 2022-03-14 08:58:40 +01:00
parent ede0478c76
commit 0315c10112
4 changed files with 12 additions and 74 deletions

1
.gitignore vendored
View File

@ -53,3 +53,4 @@
/libdnf-0.63.1.tar.gz /libdnf-0.63.1.tar.gz
/libdnf-0.64.0.tar.gz /libdnf-0.64.0.tar.gz
/libdnf-0.65.0.tar.gz /libdnf-0.65.0.tar.gz
/libdnf-0.66.0.tar.gz

View File

@ -1,67 +0,0 @@
From e361b9fa110f5c79f0713243a1e7cba189d1219c Mon Sep 17 00:00:00 2001
From: Jaroslav Mracek <jmracek@redhat.com>
Date: Tue, 8 Feb 2022 09:30:03 +0100
Subject: [PATCH] Skip rich deps for autodetection of unmet dependencies
Rich dependencies are difficult to properly evaluate because we do not
have enough information about past and only libsolv is capable to
evaluate it in comparison to present state of the system.
Additionally - rich deps are used for langpacks therefore disabling
unmet rich deps will have a negative impact on UX.
---
libdnf/goal/Goal.cpp | 22 +++++++++++++++++++---
1 file changed, 19 insertions(+), 3 deletions(-)
diff --git a/libdnf/goal/Goal.cpp b/libdnf/goal/Goal.cpp
index 2b698f7..ebe2fbd 100644
--- a/libdnf/goal/Goal.cpp
+++ b/libdnf/goal/Goal.cpp
@@ -835,8 +835,12 @@ Goal::exclude_from_weak_autodetect()
installed_names.push_back(dnf_package_get_name(pkg));
std::unique_ptr<libdnf::DependencyContainer> recommends(dnf_package_get_recommends(pkg));
for (int i = 0; i < recommends->count(); ++i) {
- Query query(base_query);
std::unique_ptr<libdnf::Dependency> dep(recommends->getPtr(i));
+ const char * dep_string = dep->toString();
+ if (dep_string[0] == '(') {
+ continue;
+ }
+ Query query(base_query);
const char * version = dep->getVersion();
// There can be installed provider in different version or upgraded packed can recommend a different version
// Ignore version and search only by reldep name
@@ -858,7 +862,7 @@ Goal::exclude_from_weak_autodetect()
}
}
- // Invesigate supplements of only available packages with a different name to installed packages
+ // Investigate supplements of only available packages with a different name to installed packages
installed_names.push_back(nullptr);
base_query.addFilter(HY_PKG_NAME, HY_NEQ, installed_names.data());
auto * available_pset = base_query.getResultPset();
@@ -870,8 +874,20 @@ Goal::exclude_from_weak_autodetect()
if (supplements->count() == 0) {
continue;
}
+ libdnf::DependencyContainer supplements_without_rich(getSack());
+ for (int i = 0; i < supplements->count(); ++i) {
+ std::unique_ptr<libdnf::Dependency> dep(supplements->getPtr(i));
+ const char * dep_string = dep->toString();
+ if (dep_string[0] == '(') {
+ continue;
+ }
+ supplements_without_rich.add(dep.get());
+ }
+ if (supplements_without_rich.count() == 0) {
+ continue;
+ }
Query query(installed_query);
- query.addFilter(HY_PKG_PROVIDES, supplements.get());
+ query.addFilter(HY_PKG_PROVIDES, &supplements_without_rich);
// When supplemented package already installed, exclude_from_weak available package
if (!query.empty()) {
add_exclude_from_weak(pkg);
--
libgit2 1.1.0

View File

@ -1,10 +1,10 @@
%global libsolv_version 0.7.20 %global libsolv_version 0.7.20
%global libmodulemd_version 2.13.0 %global libmodulemd_version 2.13.0
%global librepo_version 1.13.1 %global librepo_version 1.13.1
%global dnf_conflict 4.3.0 %global dnf_conflict 4.11.0
%global swig_version 3.0.12 %global swig_version 3.0.12
%global libdnf_major_version 0 %global libdnf_major_version 0
%global libdnf_minor_version 65 %global libdnf_minor_version 66
%global libdnf_micro_version 0 %global libdnf_micro_version 0
%define __cmake_in_source_build 1 %define __cmake_in_source_build 1
@ -56,12 +56,11 @@
Name: libdnf Name: libdnf
Version: %{libdnf_major_version}.%{libdnf_minor_version}.%{libdnf_micro_version} Version: %{libdnf_major_version}.%{libdnf_minor_version}.%{libdnf_micro_version}
Release: 3%{?dist} Release: 1%{?dist}
Summary: Library providing simplified C and Python API to libsolv Summary: Library providing simplified C and Python API to libsolv
License: LGPLv2+ License: LGPLv2+
URL: https://github.com/rpm-software-management/libdnf URL: https://github.com/rpm-software-management/libdnf
Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz Source0: %{url}/archive/%{version}/%{name}-%{version}.tar.gz
Patch1: 0001-Skip-rich-deps-for-autodetection-of-unmet-dependencies.patch
BuildRequires: cmake BuildRequires: cmake
BuildRequires: gcc BuildRequires: gcc
@ -74,7 +73,7 @@ BuildRequires: valgrind
%endif %endif
BuildRequires: pkgconfig(gio-unix-2.0) >= 2.46.0 BuildRequires: pkgconfig(gio-unix-2.0) >= 2.46.0
BuildRequires: pkgconfig(gtk-doc) BuildRequires: pkgconfig(gtk-doc)
BuildRequires: rpm-devel >= 4.11.0 BuildRequires: rpm-devel >= 4.15.0
%if %{with rhsm} %if %{with rhsm}
BuildRequires: pkgconfig(librhsm) >= 0.0.3 BuildRequires: pkgconfig(librhsm) >= 0.0.3
%endif %endif
@ -84,7 +83,6 @@ BuildRequires: pkgconfig(zck) >= 0.9.11
BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(sqlite3)
BuildRequires: pkgconfig(json-c) BuildRequires: pkgconfig(json-c)
BuildRequires: pkgconfig(cppunit) BuildRequires: pkgconfig(cppunit)
BuildRequires: pkgconfig(libcrypto)
BuildRequires: pkgconfig(modulemd-2.0) >= %{libmodulemd_version} BuildRequires: pkgconfig(modulemd-2.0) >= %{libmodulemd_version}
BuildRequires: pkgconfig(smartcols) BuildRequires: pkgconfig(smartcols)
BuildRequires: gettext BuildRequires: gettext
@ -306,6 +304,12 @@ popd
%endif %endif
%changelog %changelog
* Mon Mar 14 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 0.66.0-1
- Use `rpmdbCookie` from librpm, remove `hawkey.Sack._rpmdb_version`
- Fix handling transaction id in resolveTransactionItemReason (RhBug:2010259,2053014)
- Remove deprecated assertions (RhBug:2027383)
- Increase required rpm version since we use `rpmdbCookie()`
* Mon Feb 21 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 0.65.0-3 * Mon Feb 21 2022 Pavla Kratochvilova <pkratoch@redhat.com> - 0.65.0-3
- Skip rich deps for autodetection of unmet dependencies (RhBug:2033130) - Skip rich deps for autodetection of unmet dependencies (RhBug:2033130)

View File

@ -1 +1 @@
SHA512 (libdnf-0.65.0.tar.gz) = e334cb5674940503ff33a15da68a42eab75ec9db8e23cf00ac84310b7a7339572a7d406897149d0ab01ad527afdaedaf488c3270d3033c99146221349400628a SHA512 (libdnf-0.66.0.tar.gz) = a93660aaab92a7133264234adcadbd229654bf315b336ff27b765ab99efa87a7fafede0d4e9a349aa1e81415c5b0ede735fb10ccf0a0150e81b382c67aeab790