mirror of
git://slackware.nl/current.git
synced 2024-12-30 10:24:23 +01:00
54 lines
2.1 KiB
Diff
54 lines
2.1 KiB
Diff
|
--- ./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);
|