From bd8cd9546d55e27542d688f1b934edf371033fa2 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20R=C4=99korajski?= Date: Wed, 7 Oct 2020 23:36:40 +0200 Subject: [PATCH] - fix building with rpm.org 4.15+ --- poldek.spec | 2 + rpm-4.15.patch | 113 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 115 insertions(+) create mode 100644 rpm-4.15.patch diff --git a/poldek.spec b/poldek.spec index 13fac60..2f23bb3 100644 --- a/poldek.spec +++ b/poldek.spec @@ -57,6 +57,7 @@ Patch2: %{name}-ext-down-enable.patch Patch3: %{name}-pc.patch Patch4: %{name}-info.patch Patch5: %{name}-multiarch-x32.patch +Patch6: rpm-4.15.patch URL: http://poldek.pld-linux.org/ BuildRequires: %{db_pkg}-devel >= %{ver_db} BuildRequires: autoconf >= 2.63 @@ -236,6 +237,7 @@ Moduły języka Python dla poldka. %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 %{__rm} doc/poldek.info %{__rm} m4/libtool.m4 m4/lt*.m4 diff --git a/rpm-4.15.patch b/rpm-4.15.patch new file mode 100644 index 0000000..193d2b8 --- /dev/null +++ b/rpm-4.15.patch @@ -0,0 +1,113 @@ +--- poldek-0.42.2/pm/rpmorg/signature.c.orig 2020-10-07 23:33:17.051835958 +0200 ++++ poldek-0.42.2/pm/rpmorg/signature.c 2020-10-07 23:34:10.408960665 +0200 +@@ -101,18 +101,18 @@ + case RPMSIGTAG_RSA: + case RPMSIGTAG_PGP5: /* XXX legacy */ + case RPMSIGTAG_PGP: +- flags |= VRFYSIG_SIGNPGP; ++ flags |= PKGVERIFY_PGP; + break; + + case RPMSIGTAG_DSA: + case RPMSIGTAG_GPG: +- flags |= VRFYSIG_SIGNGPG; ++ flags |= PKGVERIFY_GPG; + break; + + case RPMSIGTAG_LEMD5_2: + case RPMSIGTAG_LEMD5_1: + case RPMSIGTAG_MD5: +- flags |= VRFYSIG_DGST; ++ flags |= PKGVERIFY_MD; + break; + + default: +@@ -137,7 +137,7 @@ + int rc; + + +- n_assert(flags & (VRFYSIG_DGST | VRFYSIG_SIGN)); ++ n_assert(flags & (PKGVERIFY_MD | PKGVERIFY_GPG | PKGVERIFY_PGP)); + + if (!rpm_signatures(path, &presented_signs, NULL)) + return 0; +@@ -146,13 +146,13 @@ + char signam[255]; + int n = 0; + +- if (flags & VRFYSIG_DGST) ++ if (flags & PKGVERIFY_MD) + n += n_snprintf(&signam[n], sizeof(signam) - n, "digest/"); + +- if (flags & VRFYSIG_SIGNGPG) ++ if (flags & PKGVERIFY_GPG) + n += n_snprintf(&signam[n], sizeof(signam) - n, "gpg/"); + +- if (flags & VRFYSIG_SIGNPGP) ++ if (flags & PKGVERIFY_PGP) + n += n_snprintf(&signam[n], sizeof(signam) - n, "pgp/"); + + n_assert(n > 0); +@@ -163,12 +163,12 @@ + } + unsigned qva_flags = RPMVSF_DEFAULT; + +- if ((flags & (VRFYSIG_SIGNPGP | VRFYSIG_SIGNGPG)) == 0) { ++ if ((flags & (PKGVERIFY_PGP | PKGVERIFY_GPG)) == 0) { + qva_flags |= RPMVSF_MASK_NOSIGNATURES; + } + + // always check digests - without them rpmVerifySignature returns error +- //if ((flags & VRFYSIG_DGST) == 0) ++ //if ((flags & PKGVERIFY_MD) == 0) + // qva_flags |= RPMVSF_MASK_NODIGESTS; + + memset(&qva, '\0', sizeof(qva)); +@@ -183,7 +183,7 @@ + rpmtsFree(ts); + + DBGF("rpmVerifySignatures[md=%d, sign=%d] %s %s\n", +- flags & VRFYSIG_DGST ? 1:0, flags & VRFYSIG_SIGN ? 1:0, ++ flags & PKGVERIFY_MD ? 1:0, flags & (PKGVERIFY_GPG | PKGVERIFY_PGP) ? 1:0, + n_basenam(path), rc == 0 ? "OK" : "BAD"); + } + +@@ -196,24 +196,12 @@ + static + int do_pm_rpm_verify_signature(void *pm_rpm, const char *path, unsigned flags) + { +- unsigned rpmflags = 0; +- +- pm_rpm = pm_rpm; + if (access(path, R_OK) != 0) { + logn(LOGERR, "%s: verify signature failed: %m", path); + return 0; + } + +- if (flags & PKGVERIFY_GPG) +- rpmflags |= VRFYSIG_SIGNGPG; +- +- if (flags & PKGVERIFY_PGP) +- rpmflags |= VRFYSIG_SIGNPGP; +- +- if (flags & PKGVERIFY_MD) +- rpmflags |= VRFYSIG_DGST; +- +- return do_verify_signature(path, rpmflags); ++ return do_verify_signature(path, flags); + } + + extern int pm_rpm_verbose; +--- poldek-0.42.2/pm/rpmorg/pm_rpm.h.orig 2020-10-07 23:34:34.276110954 +0200 ++++ poldek-0.42.2/pm/rpmorg/pm_rpm.h 2020-10-07 23:34:40.173648478 +0200 +@@ -69,10 +69,6 @@ + struct poldek_ts *ts); + + #include +-#define VRFYSIG_DGST VERIFY_DIGEST +-#define VRFYSIG_SIGN VERIFY_SIGNATURE +-#define VRFYSIG_SIGNGPG VERIFY_SIGNATURE +-#define VRFYSIG_SIGNPGP VERIFY_SIGNATURE + + int pm_rpm_verify_signature(void *pm_rpm, const char *path, unsigned flags); + -- 2.44.0