Merge branch 'c8-beta' into a8-beta
This commit is contained in:
commit
c7a34e2b0f
@ -0,0 +1,35 @@
|
|||||||
|
From 3a3929a27734aa77c980610a43039cb6b2b6d658 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Jan Kolarik <jkolarik@redhat.com>
|
||||||
|
Date: Wed, 10 Aug 2022 05:21:38 +0000
|
||||||
|
Subject: [PATCH] Fix listing a repository without cpeid (RhBug:2066334)
|
||||||
|
|
||||||
|
= changelog =
|
||||||
|
type: bugfix
|
||||||
|
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2066334
|
||||||
|
---
|
||||||
|
libdnf/repo/Repo.cpp | 9 +++++++--
|
||||||
|
1 file changed, 7 insertions(+), 2 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libdnf/repo/Repo.cpp b/libdnf/repo/Repo.cpp
|
||||||
|
index e3a574fb..d61a24a5 100644
|
||||||
|
--- a/libdnf/repo/Repo.cpp
|
||||||
|
+++ b/libdnf/repo/Repo.cpp
|
||||||
|
@@ -1021,8 +1021,13 @@ bool Repo::Impl::loadCache(bool throwExcept, bool ignoreMissing)
|
||||||
|
for (auto elem = yum_repomd->distro_tags; elem; elem = g_slist_next(elem)) {
|
||||||
|
if (elem->data) {
|
||||||
|
auto distroTag = static_cast<LrYumDistroTag *>(elem->data);
|
||||||
|
- if (distroTag->tag)
|
||||||
|
- distro_tags.emplace_back(distroTag->cpeid, distroTag->tag);
|
||||||
|
+ if (distroTag->tag) {
|
||||||
|
+ std::string cpeid_str;
|
||||||
|
+ if (distroTag->cpeid) {
|
||||||
|
+ cpeid_str = distroTag->cpeid;
|
||||||
|
+ }
|
||||||
|
+ distro_tags.emplace_back(std::move(cpeid_str), distroTag->tag);
|
||||||
|
+ }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.37.1
|
||||||
|
|
@ -0,0 +1,89 @@
|
|||||||
|
From af5493156ecb1af3aedd5559a9a60b5df54a17ac Mon Sep 17 00:00:00 2001
|
||||||
|
From: =?UTF-8?q?Ale=C5=A1=20Mat=C4=9Bj?= <amatej@redhat.com>
|
||||||
|
Date: Wed, 7 Sep 2022 09:07:04 +0200
|
||||||
|
Subject: [PATCH] Allow change of arch during security updates with noarch
|
||||||
|
(RhBug:2124483)
|
||||||
|
|
||||||
|
This matches upgrade behaviour where upgrading from/to noarch is a
|
||||||
|
special case and architecture change of a package is allowed
|
||||||
|
automatically.
|
||||||
|
|
||||||
|
= changelog =
|
||||||
|
msg: Allow change of architecture for packages during security updates with noarch involved
|
||||||
|
type: security
|
||||||
|
resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2124483
|
||||||
|
---
|
||||||
|
libdnf/sack/query.cpp | 34 ++++++++++++++++++++++++----------
|
||||||
|
1 file changed, 24 insertions(+), 10 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/libdnf/sack/query.cpp b/libdnf/sack/query.cpp
|
||||||
|
index 5355f9f7..b7b1560e 100644
|
||||||
|
--- a/libdnf/sack/query.cpp
|
||||||
|
+++ b/libdnf/sack/query.cpp
|
||||||
|
@@ -189,6 +189,13 @@ NameArchSolvableComparator(const Solvable * first, const Solvable * second)
|
||||||
|
return first->arch < second->arch;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static bool
|
||||||
|
+NameSolvableComparator(const Solvable * first, const Solvable * second)
|
||||||
|
+{
|
||||||
|
+ return first->name < second->name;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+
|
||||||
|
static bool
|
||||||
|
NamePrioritySolvableKey(const Solvable * first, const Solvable * second)
|
||||||
|
{
|
||||||
|
@@ -1878,11 +1885,14 @@ Query::Impl::filterAdvisory(const Filter & f, Map *m, int keyname)
|
||||||
|
std::vector<Solvable *> installed_solvables;
|
||||||
|
|
||||||
|
if (cmp_type & HY_UPGRADE) {
|
||||||
|
- // When doing HY_UPGRADE consider only candidate pkgs that have matching Name and Arch with:
|
||||||
|
- // * some already installed pkg (in other words: some other version of the pkg is already installed)
|
||||||
|
- // or
|
||||||
|
- // * with pkg that obsoletes some already installed (or to be installed in this transaction) pkg
|
||||||
|
- // Otherwise a pkg with different Arch than installed can end up in upgrade set which is wrong.
|
||||||
|
+ // When doing HY_UPGRADE consider only candidate pkgs that:
|
||||||
|
+ // * have matching Name and Arch with some already installed pkg
|
||||||
|
+ // (in other words: some other version of the pkg is already installed)
|
||||||
|
+ // * have matching Name with some already installed pkg and either the candidate or the installed pkg is noarch.
|
||||||
|
+ // This matches upgrade behavior where we allow architecture change only when noarch is involved.
|
||||||
|
+ // Details: RhBug:2124483, RhBug:2101398 and RhBug:1171543
|
||||||
|
+ // * obsoletes some already installed (or to be installed in this transaction) pkg
|
||||||
|
+ // Otherwise a pkg with different Arch than installed (and than noarch) can end up in upgrade set which is wrong.
|
||||||
|
// It can result in dependency issues, reported as: RhBug:2088149.
|
||||||
|
|
||||||
|
Query installed(sack, ExcludeFlags::IGNORE_EXCLUDES);
|
||||||
|
@@ -1893,7 +1903,7 @@ Query::Impl::filterAdvisory(const Filter & f, Map *m, int keyname)
|
||||||
|
while ((installed_id = installed.pImpl->result->next(installed_id)) != -1) {
|
||||||
|
installed_solvables.push_back(pool_id2solvable(pool, installed_id));
|
||||||
|
}
|
||||||
|
- std::sort(installed_solvables.begin(), installed_solvables.end(), NameArchSolvableComparator);
|
||||||
|
+ std::sort(installed_solvables.begin(), installed_solvables.end(), NameSolvableComparator);
|
||||||
|
|
||||||
|
Query obsoletes(sack, ExcludeFlags::IGNORE_EXCLUDES);
|
||||||
|
obsoletes.addFilter(HY_PKG, HY_EQ, resultPset);
|
||||||
|
@@ -1915,12 +1925,16 @@ Query::Impl::filterAdvisory(const Filter & f, Map *m, int keyname)
|
||||||
|
}
|
||||||
|
|
||||||
|
Id id = -1;
|
||||||
|
- // Add to candidates resultPset pkgs that match name and arch with some already installed pkg
|
||||||
|
+ // Add to candidates resultPset pkgs that match name and arch with some already installed pkg or match name and either the installed or candidate are NOARCH
|
||||||
|
while ((id = resultPset->next(id)) != -1) {
|
||||||
|
Solvable * s = pool_id2solvable(pool, id);
|
||||||
|
- auto low = std::lower_bound(installed_solvables.begin(), installed_solvables.end(), s, NameArchSolvableComparator);
|
||||||
|
- if (low != installed_solvables.end() && s->name == (*low)->name && s->arch == (*low)->arch) {
|
||||||
|
- candidates.push_back(s);
|
||||||
|
+ auto low = std::lower_bound(installed_solvables.begin(), installed_solvables.end(), s, NameSolvableComparator);
|
||||||
|
+ while (low != installed_solvables.end() && (*low)->name == s->name) {
|
||||||
|
+ if (s->arch == (*low)->arch || s->arch == ARCH_NOARCH || (*low)->arch == ARCH_NOARCH) {
|
||||||
|
+ candidates.push_back(s);
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+ ++low;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
--
|
||||||
|
2.37.3
|
||||||
|
|
@ -56,7 +56,7 @@
|
|||||||
|
|
||||||
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: 11%{?dist}.alma
|
Release: 13%{?dist}.alma
|
||||||
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
|
||||||
@ -101,6 +101,8 @@ Patch37: 0037-context-dnf_context_remove-accepts-package-spec-as-d.patch
|
|||||||
Patch38: 0038-context-Fix-doc-dnf_context_install-remove-update-di.patch
|
Patch38: 0038-context-Fix-doc-dnf_context_install-remove-update-di.patch
|
||||||
Patch39: 0039-advisory-upgrade-filter-out-advPkgs-with-different-a.patch
|
Patch39: 0039-advisory-upgrade-filter-out-advPkgs-with-different-a.patch
|
||||||
Patch40: 0040-Add-obsoletes-to-filtering-for-advisory-candidates.patch
|
Patch40: 0040-Add-obsoletes-to-filtering-for-advisory-candidates.patch
|
||||||
|
Patch41: 0041-Fix-listing-a-repository-without-cpeid-RhBug-2066334.patch
|
||||||
|
Patch42: 0042-Allow-change-of-arch-during-security-updates-with-no.patch
|
||||||
|
|
||||||
# Almalinux patches
|
# Almalinux patches
|
||||||
Patch10001: almalinux_bugtracker.patch
|
Patch10001: almalinux_bugtracker.patch
|
||||||
@ -349,9 +351,14 @@ popd
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
* Wed Oct 12 2022 Eduard Abdullin <eabdullin@almalinux.org> - 0.63.0-11.alma
|
* Wed Mar 29 2023 Eduard Abdullin <eabdullin@almalinux.org> - 0.63.0-13.alma
|
||||||
- AlmaLinux changes
|
- AlmaLinux changes
|
||||||
|
|
||||||
|
* Wed Oct 26 2022 Nicola Sella <nsella@redhat.com> - 0.63.0-13
|
||||||
|
- Allow change of arch during security updates with noarch (RhBug:2124483)
|
||||||
|
* Tue Sep 13 2022 Lukas Hrazky <lhrazky@redhat.com> - 0.63.0-12
|
||||||
|
- Fix listing a repository without cpeid (RhBug:2066334)
|
||||||
|
|
||||||
* Thu Jul 21 2022 Lukas Hrazky <lhrazky@redhat.com> - 0.63.0-11
|
* Thu Jul 21 2022 Lukas Hrazky <lhrazky@redhat.com> - 0.63.0-11
|
||||||
- Add obsoletes to filtering for advisory candidates
|
- Add obsoletes to filtering for advisory candidates
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user