- Temporary workaround payload size mismatch issue in rpm2cpio (#1142949)
This commit is contained in:
Panu Matilainen 2014-09-18 14:25:40 +03:00
parent 2e5e062433
commit 2176e2752d
5 changed files with 28 additions and 46 deletions

1
.gitignore vendored
View File

@ -17,3 +17,4 @@
/rpm-4.12.0-beta1.tar.bz2
/rpm-4.12.0-rc1.tar.bz2
/rpm-4.12.0.tar.bz2
/rpm-4.12.0.1.tar.bz2

View File

@ -1,42 +0,0 @@
commit 5e0f3e6298bde0c6e44bd4db956a7287f9ff3f88
Author: Panu Matilainen <pmatilai@redhat.com>
Date: Wed Sep 17 09:47:54 2014 +0300
Turn invalid double separator error into a warning
- As hysterical as it seems, people keep banging their heads into this:
older distros have these invalid dependencies deployed etc and people
do expect to create srpms and do test-builds on newer distros they're
running themselves. Which, put that way, seems rather reasonable...
- For history reference, the sanity check was originally introduced in
commit b2cf1471bbe2c35e3c36510a9e3f59919d8ed2c8 and
67ccf8d99630f4edad0ea16dddaca0a3355fba00,
- Backported from commit 1b3f7547c532b1f5ad68228571f1716d5be5b455
diff --git a/build/parseReqs.c b/build/parseReqs.c
index 1427111..3cf1ce0 100644
--- a/build/parseReqs.c
+++ b/build/parseReqs.c
@@ -40,7 +40,6 @@ static int checkSep(const char *s, char c, char **emsg)
const char *sep = strchr(s, c);
if (sep && strchr(sep + 1, c)) {
rasprintf(emsg, "Invalid version (double separator '%c'): %s", c, s);
- return 1;
}
return 0;
}
@@ -198,11 +197,12 @@ rpmRC parseRCPOT(rpmSpec spec, Package pkg, const char *field, rpmTagVal tagN,
exit:
if (emsg) {
+ int lvl = (rc == RPMRC_OK) ? RPMLOG_WARNING : RPMLOG_ERR;
/* Automatic dependencies don't relate to spec lines */
if (tagflags & (RPMSENSE_FIND_REQUIRES|RPMSENSE_FIND_PROVIDES)) {
- rpmlog(RPMLOG_ERR, "%s: %s\n", emsg, r);
+ rpmlog(lvl, "%s: %s\n", emsg, r);
} else {
- rpmlog(RPMLOG_ERR, _("line %d: %s: %s\n"),
+ rpmlog(lvl, _("line %d: %s: %s\n"),
spec->lineNum, emsg, spec->line);
}
free(emsg);

View File

@ -0,0 +1,18 @@
diff --git a/rpm2cpio.c b/rpm2cpio.c
index 89ebdfa..ae999ff 100644
--- a/rpm2cpio.c
+++ b/rpm2cpio.c
@@ -84,7 +84,12 @@ int main(int argc, char *argv[])
exit(EXIT_FAILURE);
}
- rc = (ufdCopy(gzdi, fdo) == payload_size) ? EXIT_SUCCESS : EXIT_FAILURE;
+ /*
+ * XXX HACK for #1142949: should be equality test, but archive size
+ * short by cpio trailer size in packages built with rpm 4.12.0
+ * and its pre-releases.
+ */
+ rc = (ufdCopy(gzdi, fdo) >= payload_size) ? EXIT_SUCCESS : EXIT_FAILURE;
Fclose(fdo);

View File

@ -15,7 +15,7 @@
%define rpmhome /usr/lib/rpm
%define rpmver 4.12.0
%define rpmver 4.12.0.1
#define snapver rc1
%define srcver %{rpmver}%{?snapver:-%{snapver}}
%define eggver %{rpmver}%{?snapver:_%{snapver}}
@ -27,7 +27,7 @@
Summary: The RPM package management system
Name: rpm
Version: %{rpmver}
Release: %{?snapver:0.%{snapver}.}2%{?dist}
Release: %{?snapver:0.%{snapver}.}1%{?dist}
Group: System Environment/Base
Url: http://www.rpm.org/
Source0: http://rpm.org/releases/rpm-4.12.x/%{name}-%{srcver}.tar.bz2
@ -46,9 +46,10 @@ Patch2: rpm-4.9.90-fedora-specspo.patch
Patch3: rpm-4.9.90-no-man-dirs.patch
# gnupg2 comes installed by default, avoid need to drag in gnupg too
Patch4: rpm-4.8.1-use-gpg2.patch
# Temporary band-aid for rpm2cpio whining on payload size mismatch (#1142949)
Patch5: rpm-4.12.0-rpm2cpio-hack.patch
# Patches already upstream:
Patch100: rpm-4.12.0-double-separator-warning.patch
# These are not yet upstream
Patch302: rpm-4.7.1-geode-i686.patch
@ -527,6 +528,10 @@ exit 0
%doc doc/librpm/html/*
%changelog
* Thu Sep 18 2014 Panu Matilainen <pmatilai@redhat.com> - 4.12.0.1-1
- Update to rpm-4.12.0.1 final (http://rpm.org/wiki/Releases/4.12.0.1)
- Temporary workaround payload size mismatch issue in rpm2cpio (#1142949)
* Wed Sep 17 2014 Panu Matilainen <pmatilai@redhat.com> - 4.12.0-2
- Reduce the double separator spec parse error into a warning (#1065563)

View File

@ -1 +1 @@
cfa6a605d3f21219a689b0fc2b0f1bcc rpm-4.12.0.tar.bz2
c06a691765252d2b381a7942a9669856 rpm-4.12.0.1.tar.bz2