diff --git a/SOURCES/rpm-4.11.x-correct-g-libs.patch b/SOURCES/rpm-4.11.x-correct-g-libs.patch new file mode 100644 index 00000000..70ed760f --- /dev/null +++ b/SOURCES/rpm-4.11.x-correct-g-libs.patch @@ -0,0 +1,11 @@ +--- rpm-4.11.3/scripts/find-debuginfo.sh.old 2019-07-26 10:03:50.390264038 +0200 ++++ rpm-4.11.3/scripts/find-debuginfo.sh 2019-07-26 10:24:12.540154792 +0200 +@@ -109,7 +109,7 @@ + shift + done + +-if ("$strip_g" = "true") && ("$strip_glibs" = "true"); then ++if [ "$strip_g" = "true" ] && [ "$strip_glibs" = "true" ]; then + echo >&2 "*** ERROR: -g and --g-libs cannot be used together" + exit 2 + fi diff --git a/SOURCES/rpm-4.11.x-dependson.patch b/SOURCES/rpm-4.11.x-dependson.patch new file mode 100644 index 00000000..7b084fdc --- /dev/null +++ b/SOURCES/rpm-4.11.x-dependson.patch @@ -0,0 +1,13 @@ +diff -up rpm-4.11.3/lib/depends.c.dependson rpm-4.11.3/lib/depends.c +--- rpm-4.11.3/lib/depends.c.dependson 2019-10-04 10:46:35.399545965 +0300 ++++ rpm-4.11.3/lib/depends.c 2019-10-04 10:47:10.693542015 +0300 +@@ -117,7 +117,8 @@ static int removePackage(rpmts ts, Heade + tsmem->order = xrealloc(tsmem->order, sizeof(*tsmem->order) * tsmem->orderAlloced); + } + +- rpmteSetDependsOn(p, depends); ++ if (depends) ++ rpmteSetDependsOn(p, depends); + + tsmem->order[tsmem->orderCount] = p; + tsmem->orderCount++; diff --git a/SOURCES/rpm-4.13.x-fix-segfault-on-fingerprint-symlink.patch b/SOURCES/rpm-4.13.x-fix-segfault-on-fingerprint-symlink.patch new file mode 100644 index 00000000..0b266876 --- /dev/null +++ b/SOURCES/rpm-4.13.x-fix-segfault-on-fingerprint-symlink.patch @@ -0,0 +1,21 @@ +--- rpm-4.11.3/lib/fprint.c.old 2014-02-05 14:04:01.000000000 +0100 ++++ rpm-4.11.3/lib/fprint.c 2019-08-21 16:28:03.255538275 +0200 +@@ -484,7 +484,7 @@ + (void) rpmdbCheckSignals(); + + if ((fi = rpmteFI(p)) == NULL) +- continue; /* XXX can't happen */ ++ continue; + + (void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), 0); + rpmfiFpLookup(fi, fpc); +@@ -518,6 +518,9 @@ + while ((p = rpmtsiNext(pi, 0)) != NULL) { + (void) rpmdbCheckSignals(); + ++ if ((fi = rpmteFI(p)) == NULL) ++ continue; ++ + fs = rpmteGetFileStates(p); + fc = rpmfsFC(fs); + (void) rpmswEnter(rpmtsOp(ts, RPMTS_OP_FINGERPRINT), 0); diff --git a/SOURCES/rpm-4.14.x-PGP-handle-no-EOL-at-EOF.patch b/SOURCES/rpm-4.14.x-PGP-handle-no-EOL-at-EOF.patch new file mode 100644 index 00000000..d4bdb46d --- /dev/null +++ b/SOURCES/rpm-4.14.x-PGP-handle-no-EOL-at-EOF.patch @@ -0,0 +1,29 @@ +From 655c4c72a3467037abd51aab29f0300e97caf54c Mon Sep 17 00:00:00 2001 +From: Stepan Broz +Date: Thu, 25 Jul 2019 11:00:47 +0200 +Subject: [PATCH] rpmpgp: Handle EOF without EOL better at END PGP + +--- + rpmio/rpmpgp.c | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/rpmio/rpmpgp.c b/rpmio/rpmpgp.c +index 061751a4d..46cd0f31a 100644 +--- a/rpmio/rpmpgp.c ++++ b/rpmio/rpmpgp.c +@@ -1289,9 +1289,10 @@ static pgpArmor decodePkts(uint8_t *b, uint8_t **pkt, size_t *pktlen) + goto exit; + } + t += (sizeof("-----")-1); +- if (t >= te) continue; ++ /* Handle EOF without EOL here, *t == '\0' at EOF */ ++ if (*t && (t >= te)) continue; + /* XXX permitting \r here is not RFC-2440 compliant */ +- if (!(*t == '\n' || *t == '\r')) continue; ++ if (!(*t == '\n' || *t == '\r' || *t == '\0')) continue; + + crcdec = NULL; + crclen = 0; +-- +2.26.2 + diff --git a/SPECS/rpm.spec b/SPECS/rpm.spec index 5ae52730..8603619f 100644 --- a/SPECS/rpm.spec +++ b/SPECS/rpm.spec @@ -21,7 +21,7 @@ Summary: The RPM package management system Name: rpm Version: %{rpmver} -Release: %{?snapver:0.%{snapver}.}40%{?dist} +Release: %{?snapver:0.%{snapver}.}45%{?dist} Group: System Environment/Base Url: http://www.rpm.org/ Source0: http://rpm.org/releases/rpm-4.11.x/%{name}-%{srcver}.tar.bz2 @@ -97,10 +97,13 @@ Patch194: rpm-4.11.x-disk-space-calculation.patch Patch195: rpm-4.11.x-remove-perl-provides-from-requires.patch Patch196: rpm-4.13.x-bad-owner-group.patch Patch197: rpm-4.11.x-perl.req-6.patch +Patch198: rpm-4.13.x-fix-segfault-on-fingerprint-symlink.patch +Patch199: rpm-4.11.x-dependson.patch # Filter soname dependencies by name Patch200: rpm-4.11.x-filter-soname-deps.patch Patch201: rpm-4.11.x-do-not-filter-ld64.patch +Patch202: rpm-4.14.x-PGP-handle-no-EOL-at-EOF.patch # These are not yet upstream Patch301: rpm-4.6.0-niagara.patch @@ -146,6 +149,8 @@ Patch504: rpm-4.11.x-add-g-libs.patch # Fixed upstream: # https://github.com/rpm-software-management/rpm/commit/a8e51b3bb05c6acb1d9b2e3d34f859ddda1677be Patch505: rpm-4.11.3-brp-python-bytecompile-Fix-when-default-python-is-no.patch +Patch506: rpm-4.11.x-correct-g-libs.patch + # Partially GPL/LGPL dual-licensed and some bits with BSD # SourceLicense: (GPLv2+ and LGPLv2+ with exceptions) and BSD @@ -383,9 +388,12 @@ Requires: rpm-libs%{_isa} = %{version}-%{release} %patch195 -p1 -b .perl.req5 %patch196 -p1 -b .badowner %patch197 -p1 -b .perl.req6 +%patch198 -p1 -b .sf_fingerprint +%patch199 -p1 -b .dependson %patch200 -p1 -b .filter-soname-deps %patch201 -p1 -b .dont-filter-ld64 +%patch202 -p1 -b .PGP-no-EOL %patch301 -p1 -b .niagara %patch302 -p1 -b .geode @@ -416,6 +424,7 @@ Requires: rpm-libs%{_isa} = %{version}-%{release} %patch503 -p1 -b .reinstall %patch504 -p1 -b .g-libs %patch505 -p1 -b .brp-python-bytecompile +%patch506 -p1 -b .fix-g-libs %if %{with int_bdb} ln -s db-%{bdbver} db @@ -647,6 +656,21 @@ exit 0 %doc COPYING doc/librpm/html/* %changelog +* Tue Jun 02 2020 Michal Domonkos - 4.11.3-45 +- Actually apply the previous patch + +* Wed May 27 2020 Michal Domonkos - 4.11.3-44 +- Accept PGP public keys with missing EOL (#1840006) + +* Fri Oct 04 2019 Panu Matilainen - 4.11.3-43 +- Fix packages getting removed on failed update via dnf (#1710691) + +* Wed Aug 21 2019 Pavlina Moravcova Varekova - 4.11.3-42 +- Fix segfault on fingerprint symlink (#1660232) + +* Fri Aug 16 2019 Pavlina Moravcova Varekova - 4.11.3-41 +- Fix bogus if-condition in find-debuginfo.sh (#1720590) + * Sun May 26 2019 Pavlina Moravcova Varekova - 4.11.3-40 - Remove only special perl dependencies provided in the same file (#1570181)