summaryrefslogtreecommitdiffstats
path: root/source/ap/rpm/rpm.install4j.compat.diff
diff options
context:
space:
mode:
author Patrick J Volkerding <volkerdi@slackware.com>2021-12-03 20:07:20 +0000
committer Eric Hameleers <alien@slackware.com>2021-12-04 08:59:57 +0100
commitc29dcfa2dd2e7467ea3b6b757880348884d8790d (patch)
treed3353da7e281a39e6edb2bde414c1bc228be5d6e /source/ap/rpm/rpm.install4j.compat.diff
parent66ba810196d8ce6f6da7df7931ce31e7303b8cf8 (diff)
downloadcurrent-c29dcfa2dd2e7467ea3b6b757880348884d8790d.tar.gz
current-c29dcfa2dd2e7467ea3b6b757880348884d8790d.tar.xz
Fri Dec 3 20:07:20 UTC 202120211203200720
ap/rpm-4.16.1.3-x86_64-4.txz: Rebuilt. Patched to handle non-compliant RPMs created by install4j. Thanks to alienBOB. d/poke-1.4-x86_64-1.txz: Upgraded. l/enchant-2.3.2-x86_64-1.txz: Upgraded. l/freetype-2.11.1-x86_64-1.txz: Upgraded. l/glib2-2.70.2-x86_64-1.txz: Upgraded. n/lynx-2.9.0dev.10-x86_64-1.txz: Upgraded. extra/php8/php8-8.1.0-x86_64-1.txz: Removed. extra/php80/php80-8.0.13-x86_64-1.txz: Added. extra/php81/php81-8.1.0-x86_64-1.txz: Added.
Diffstat (limited to 'source/ap/rpm/rpm.install4j.compat.diff')
-rw-r--r--source/ap/rpm/rpm.install4j.compat.diff53
1 files changed, 53 insertions, 0 deletions
diff --git a/source/ap/rpm/rpm.install4j.compat.diff b/source/ap/rpm/rpm.install4j.compat.diff
new file mode 100644
index 000000000..1ceba1634
--- /dev/null
+++ b/source/ap/rpm/rpm.install4j.compat.diff
@@ -0,0 +1,53 @@
+--- ./lib/package.c.orig 2021-03-22 05:05:07.312635983 -0500
++++ ./lib/package.c 2021-11-30 12:48:31.637122803 -0600
+@@ -35,21 +35,22 @@
+ rpmTagVal stag;
+ rpmTagVal xtag;
+ rpm_count_t count;
++ int quirk;
+ } const xlateTags[] = {
+- { RPMSIGTAG_SIZE, RPMTAG_SIGSIZE, 1 },
+- { RPMSIGTAG_PGP, RPMTAG_SIGPGP, 0 },
+- { RPMSIGTAG_MD5, RPMTAG_SIGMD5, 16 },
+- { RPMSIGTAG_GPG, RPMTAG_SIGGPG, 0 },
+- /* { RPMSIGTAG_PGP5, RPMTAG_SIGPGP5, 0 }, */ /* long obsolete, dont use */
+- { RPMSIGTAG_PAYLOADSIZE, RPMTAG_ARCHIVESIZE, 1 },
+- { RPMSIGTAG_FILESIGNATURES, RPMTAG_FILESIGNATURES, 0 },
+- { RPMSIGTAG_FILESIGNATURELENGTH, RPMTAG_FILESIGNATURELENGTH, 1 },
+- { RPMSIGTAG_SHA1, RPMTAG_SHA1HEADER, 1 },
+- { RPMSIGTAG_SHA256, RPMTAG_SHA256HEADER, 1 },
+- { RPMSIGTAG_DSA, RPMTAG_DSAHEADER, 0 },
+- { RPMSIGTAG_RSA, RPMTAG_RSAHEADER, 0 },
+- { RPMSIGTAG_LONGSIZE, RPMTAG_LONGSIGSIZE, 1 },
+- { RPMSIGTAG_LONGARCHIVESIZE, RPMTAG_LONGARCHIVESIZE, 1 },
++ { RPMSIGTAG_SIZE, RPMTAG_SIGSIZE, 1, 0 },
++ { RPMSIGTAG_PGP, RPMTAG_SIGPGP, 0, 0 },
++ { RPMSIGTAG_MD5, RPMTAG_SIGMD5, 16, 0 },
++ { RPMSIGTAG_GPG, RPMTAG_SIGGPG, 0, 0 },
++ /* { RPMSIGTAG_PGP5, RPMTAG_SIGPGP5, 0, 0 }, */ /* long obsolete, dont use */
++ { RPMSIGTAG_PAYLOADSIZE, RPMTAG_ARCHIVESIZE, 1, 1 },
++ { RPMSIGTAG_FILESIGNATURES, RPMTAG_FILESIGNATURES, 0, 1 },
++ { RPMSIGTAG_FILESIGNATURELENGTH, RPMTAG_FILESIGNATURELENGTH, 1, 1 },
++ { RPMSIGTAG_SHA1, RPMTAG_SHA1HEADER, 1, 0 },
++ { RPMSIGTAG_SHA256, RPMTAG_SHA256HEADER, 1, 0 },
++ { RPMSIGTAG_DSA, RPMTAG_DSAHEADER, 0, 0 },
++ { RPMSIGTAG_RSA, RPMTAG_RSAHEADER, 0, 0 },
++ { RPMSIGTAG_LONGSIZE, RPMTAG_LONGSIGSIZE, 1, 0 },
++ { RPMSIGTAG_LONGARCHIVESIZE, RPMTAG_LONGARCHIVESIZE, 1, 0 },
+ { 0 }
+ };
+
+@@ -67,8 +68,12 @@
+
+ for (xl = xlateTags; xl->stag; xl++) {
+ /* There mustn't be one in the main header */
+- if (headerIsEntry(h, xl->xtag))
++ if (headerIsEntry(h, xl->xtag)) {
++ /* Some tags may exist in either header, but never both */
++ if (xl->quirk && !headerIsEntry(sigh, xl->stag))
++ continue;
+ goto exit;
++ }
+ }
+
+ rpmtdReset(&td);