Update to 0.39.1

This commit is contained in:
Aleš Matěj 2019-11-29 14:22:45 +01:00
parent ff8dfe3dd9
commit 3545d967ac
6 changed files with 14 additions and 151 deletions

1
.gitignore vendored
View File

@ -38,3 +38,4 @@
/libdnf-0.35.3.tar.gz
/libdnf-0.35.5.tar.gz
/libdnf-0.37.2.tar.gz
/libdnf-0.39.1.tar.gz

View File

@ -1,33 +0,0 @@
From d9684b99ed849e11b366ee1e6d98b88daf4b41ba Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Wed, 16 Oct 2019 10:58:03 +0100
Subject: [PATCH 1/2] Revert "hy_detect_arch(): detect crypto only on arm
version >= 8"
This reverts commit 6c4f7462b3004e39e82c4ec186175ea4a56035b4.
The reverts the commit. More details will be in the fixes for commit
73b0de05a4d2.
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
---
libdnf/hy-util.cpp | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/libdnf/hy-util.cpp b/libdnf/hy-util.cpp
index f6de87d3..61838cc3 100644
--- a/libdnf/hy-util.cpp
+++ b/libdnf/hy-util.cpp
@@ -118,8 +118,7 @@ hy_detect_arch(char **arch)
modifier++;
if (getauxval(AT_HWCAP) & HWCAP_ARM_VFP)
*modifier++ = 'h';
- // arm version >= 8 can have crypto extension
- if ((atoi(un.machine+4) >= 8) && (getauxval(AT_HWCAP2) & HWCAP2_AES))
+ if (getauxval(AT_HWCAP2) & HWCAP2_AES)
*modifier++ = 'c';
if (getauxval(AT_HWCAP) & HWCAP_ARM_NEON)
*modifier++ = 'n';
--
2.23.0

View File

@ -1,88 +0,0 @@
From f858089c65119500986c6695138590af60a02542 Mon Sep 17 00:00:00 2001
From: Peter Robinson <pbrobinson@gmail.com>
Date: Wed, 16 Oct 2019 11:47:43 +0100
Subject: [PATCH 2/2] Fix Arm detection improvements
The change in 73b0de05a4d2 has caused a number of real world regressions
on arm32/armhfp/aarch32 users, in particular when running on ARMv8 based
hardware. There's a number of cases where software can't be installed
or the OS can't even be installed due to issues around armv7hcnl and
armv8hcnl. The NEON 'n' extension on ARMv8 hardware is not optional, so
is assumed as part of the armv8hl rpm. The crypto extensions 'c' are
optional and their implementation is widely varied, due to this the
software implementations do run time detection, the detection of this
functionality and subsquent priortisation of the 'c' extension is
incorrect, especially where the software could be running in a VM
or container and hence even in a running instance the underlying
hardware could concievably change so requiring this as a compile time
option has proved to be extremely problematic causing massive issues
with Fedora ARM.
We adjust the detection of NEON 'n' just to happen on ARMv7 where while
it was implemented it has always been problematic and never really used
and hence is a legacy implementation detail that needs to be supported
but in reality the vast majority of NEON optimisation happens at run
time in libraries where it make a difference.
In the case of the 'c' crypto extenions we have explicitly not added
this as package management functionality as it's handled effectively
with run time detection as optimisaiton and as in Fefora has just
caused regressions and issues.
Fixes RHBZ: https://bugzilla.redhat.com/show_bug.cgi?id=1691430
Signed-off-by: Peter Robinson <pbrobinson@gmail.com>
---
libdnf/hy-util.cpp | 17 +++++------------
1 file changed, 5 insertions(+), 12 deletions(-)
diff --git a/libdnf/hy-util.cpp b/libdnf/hy-util.cpp
index 61838cc3..295fdc1b 100644
--- a/libdnf/hy-util.cpp
+++ b/libdnf/hy-util.cpp
@@ -36,20 +36,13 @@
#include <memory>
-/* ARM specific HWCAP defines may be missing on non-ARM devices,
- * AT_HWCAP2 is missing on old glibc (<2.18) */
-#ifndef AT_HWCAP2
-#define AT_HWCAP2 26
-#endif
+/* ARM specific HWCAP defines may be missing on non-ARM devices */
#ifndef HWCAP_ARM_VFP
#define HWCAP_ARM_VFP (1<<6)
#endif
#ifndef HWCAP_ARM_NEON
#define HWCAP_ARM_NEON (1<<12)
#endif
-#ifndef HWCAP2_AES
-#define HWCAP2_AES (1<<0)
-#endif
const char *
hy_chksum_name(int chksum_type)
@@ -111,16 +104,16 @@ hy_detect_arch(char **arch)
if (!strncmp(un.machine, "armv", 4)) {
/* un.machine is armvXE, where X is version number and E is
* endianness (b or l); we need to add modifiers such as
- * h (hardfloat), n (neon), c (crypto extensions) */
+ * h (hardfloat), n (neon). Neon is a requirement of armv8 so
+ * as far as rpm is concerned armv8l is the equivilent of armv7hnl
+ * (or 7hnb) so we don't explicitly add 'n' for 8+ as it's expected. */
char endian = un.machine[strlen(un.machine)-1];
char *modifier = un.machine + 5;
while(isdigit(*modifier)) /* keep armv7, armv8, armv9, armv10, armv100, ... */
modifier++;
if (getauxval(AT_HWCAP) & HWCAP_ARM_VFP)
*modifier++ = 'h';
- if (getauxval(AT_HWCAP2) & HWCAP2_AES)
- *modifier++ = 'c';
- if (getauxval(AT_HWCAP) & HWCAP_ARM_NEON)
+ if ((atoi(un.machine+4) == 7) && (getauxval(AT_HWCAP) & HWCAP_ARM_NEON))
*modifier++ = 'n';
*modifier++ = endian;
*modifier = 0;
--
2.23.0

View File

@ -1,23 +0,0 @@
From c0fb150c79302079a4fb4e26fec26cecbeefd84f Mon Sep 17 00:00:00 2001
From: Jaroslav Rohel <jrohel@redhat.com>
Date: Thu, 7 Nov 2019 09:53:54 +0100
Subject: [PATCH] Fix: use with_src in hy_subject_get_best_solution()
The code accidentally disappeared during improving getBestSolution().
---
libdnf/hy-subject.cpp | 2 ++
1 file changed, 2 insertions(+)
diff --git a/libdnf/hy-subject.cpp b/libdnf/hy-subject.cpp
index 686438d3b..c90fa148d 100644
--- a/libdnf/hy-subject.cpp
+++ b/libdnf/hy-subject.cpp
@@ -81,6 +81,8 @@ hy_subject_get_best_solution(HySubject subject, DnfSack *sack, HyForm *forms, Hy
gboolean with_filenames, gboolean with_src)
{
std::unique_ptr<libdnf::Query> query(new libdnf::Query(sack, libdnf::Query::ExcludeFlags::APPLY_EXCLUDES));
+ if (!with_src)
+ query->addFilter(HY_PKG_ARCH, HY_NEQ, "src");
auto ret = query->filterSubject(subject, forms, icase, with_nevra, with_provides, with_filenames);
*out_nevra = ret.second.release();
return query.release();

View File

@ -48,16 +48,12 @@
%{nil}
Name: libdnf
Version: 0.37.2
Release: 2%{?dist}
Version: 0.39.1
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-hy_detect_arch-detect-crypto-only-on-arm-vers.patch
Patch0002: 0002-Fix-Arm-detection-improvements.patch
# https://github.com/rpm-software-management/libdnf/pull/836
Patch0003: 0003-Fix-use-with-src-in-hy_subject_get_best_solution.patch
BuildRequires: cmake
BuildRequires: gcc
@ -294,6 +290,16 @@ popd
%endif
%changelog
* Fri Nov 29 2019 Ales Matej <amatej@redhat.com> - 0.39.1-1
- Update to 0.39.1
- Report reason how package was excluded (RhBug:1649754)
- Additional Arm detection improvements (RhBug:1691430)
- Set skip_if_unavailable for media repos to skip their update (RhBug:1716067)
- Add support of xml:base for remote and local url in context (RhBug:1734350, 1717865)
- Handle NoModuleException in dnf_context_reset_modules (RhBug:1767453)
- Add missing C function hy_nevra_free() for HyNevra deallocation
- Context part of libdnf now uses metadata_expire from global configuration
* Wed Nov 13 2019 Pavla Kratochvilova <pkratoch@redhat.com> - 0.37.2-2
- Fix accidental code removal from hy_subject_get_best_solution()

View File

@ -1 +1 @@
SHA512 (libdnf-0.37.2.tar.gz) = ca1db4670ba5571ae0f310ebf9cbe0a4734b85527498336e57e47fd894ac99d5a8bc310c88632bd4f6615f58d0b98b08087c361e6334f884725bdebc968ed740
SHA512 (libdnf-0.39.1.tar.gz) = 98bdbca606a26d41387af9c6f2bb63b287f8866b6005198535563bf62877d1f03398a8144157e6a341db62be643e587a86ae9e7e9d5d06db276d70a4c952a3c8