diff options
| -rw-r--r-- | meta/packages/rpm/files/tagsbackport.patch | 37 | ||||
| -rw-r--r-- | meta/packages/rpm/files/weakdeps.patch | 312 | ||||
| -rw-r--r-- | meta/packages/rpm/rpm_4.4.2.3.bb | 6 |
3 files changed, 353 insertions, 2 deletions
diff --git a/meta/packages/rpm/files/tagsbackport.patch b/meta/packages/rpm/files/tagsbackport.patch new file mode 100644 index 0000000000..a2a360944c --- /dev/null +++ b/meta/packages/rpm/files/tagsbackport.patch | |||
| @@ -0,0 +1,37 @@ | |||
| 1 | Backported some new tags and sense values. | ||
| 2 | |||
| 3 | Index: lib/rpmlib.h | ||
| 4 | =================================================================== | ||
| 5 | --- lib/rpmlib.h.orig 2008-08-26 17:07:12.000000000 +0100 | ||
| 6 | +++ lib/rpmlib.h 2008-08-26 17:22:21.000000000 +0100 | ||
| 7 | @@ -447,7 +447,19 @@ | ||
| 8 | RPMTAG_PRIORITY = 1162, /* i extension placeholder */ | ||
| 9 | RPMTAG_CVSID = 1163, /* s */ | ||
| 10 | #define RPMTAG_SVNID RPMTAG_CVSID /* s */ | ||
| 11 | + RPMTAG_BLINKPKGID = 1164, /* s[] */ | ||
| 12 | + RPMTAG_BLINKHDRID = 1165, /* s[] */ | ||
| 13 | + RPMTAG_BLINKNEVRA = 1166, /* s[] */ | ||
| 14 | + RPMTAG_FLINKPKGID = 1167, /* s[] */ | ||
| 15 | + RPMTAG_FLINKHDRID = 1168, /* s[] */ | ||
| 16 | + RPMTAG_FLINKNEVRA = 1169, /* s[] */ | ||
| 17 | + RPMTAG_PACKAGEORIGIN = 1170, /* s */ | ||
| 18 | RPMTAG_TRIGGERPREIN = 1171, /*!< internal */ | ||
| 19 | + RPMTAG_BUILDSUGGESTS = 1172, /*!< internal */ | ||
| 20 | + RPMTAG_BUILDENHANCES = 1173, /*!< internal */ | ||
| 21 | + RPMTAG_SCRIPTSTATES = 1174, /*!< i scriptlet exit codes */ | ||
| 22 | + RPMTAG_SCRIPTMETRICS = 1175, /*!< i scriptlet execution times */ | ||
| 23 | + RPMTAG_BUILDCPUCLOCK = 1176, /*!< i */ | ||
| 24 | |||
| 25 | /*@-enummemuse@*/ | ||
| 26 | RPMTAG_FIRSTFREE_TAG /*!< internal */ | ||
| 27 | @@ -531,7 +543,9 @@ | ||
| 28 | /*@=enummemuse@*/ | ||
| 29 | RPMSENSE_KEYRING = (1 << 26), | ||
| 30 | RPMSENSE_STRONG = (1 << 27), | ||
| 31 | - RPMSENSE_CONFIG = (1 << 28) | ||
| 32 | + RPMSENSE_CONFIG = (1 << 28), | ||
| 33 | + RPMSENSE_PROBE = (1 << 29), | ||
| 34 | + RPMSENSE_PACKAGE = (1 << 30) | ||
| 35 | } rpmsenseFlags; | ||
| 36 | |||
| 37 | #define RPMSENSE_SENSEMASK 15 /* Mask to get senses, ie serial, */ | ||
diff --git a/meta/packages/rpm/files/weakdeps.patch b/meta/packages/rpm/files/weakdeps.patch new file mode 100644 index 0000000000..a013b75542 --- /dev/null +++ b/meta/packages/rpm/files/weakdeps.patch | |||
| @@ -0,0 +1,312 @@ | |||
| 1 | Taken from OpenSUSE 11 rpm source file - RP 26/8/08 | ||
| 2 | |||
| 3 | Add support for weak dependencies: | ||
| 4 | |||
| 5 | A) use RPMTAG_SUGGESTS and RPMTAG_ENHANCES to store them. | ||
| 6 | |||
| 7 | This is different to upstream, which uses RPMSENSE_MISSINGOK | ||
| 8 | and RPMTAG_REQUIRES/RPMTAG_PROVIDES instead. I chose different | ||
| 9 | tags because I wanted to be compatible. The point is that | ||
| 10 | applications that don't know about the new MISSINGOK semantics | ||
| 11 | will mis-interpret the provides/requires otherwise, which | ||
| 12 | I deemed to risky. | ||
| 13 | |||
| 14 | B) use RPMSENSE_STRONG to support a "strong" version, "Recommends" | ||
| 15 | instead of "Suggests" and "Supplements" instead of "Enhances". | ||
| 16 | |||
| 17 | Needs extcond.diff for query operations. | ||
| 18 | |||
| 19 | Index: build/parsePreamble.c | ||
| 20 | =================================================================== | ||
| 21 | --- build/parsePreamble.c.orig 2008-04-01 08:28:21.000000000 +0100 | ||
| 22 | +++ build/parsePreamble.c 2008-08-26 16:58:09.000000000 +0100 | ||
| 23 | @@ -129,6 +129,8 @@ | ||
| 24 | { "post", RPMSENSE_SCRIPT_POST }, | ||
| 25 | { "rpmlib", RPMSENSE_RPMLIB }, | ||
| 26 | { "verify", RPMSENSE_SCRIPT_VERIFY }, | ||
| 27 | + { "hint", RPMSENSE_MISSINGOK }, | ||
| 28 | + { "strong", RPMSENSE_STRONG }, | ||
| 29 | { NULL, 0 } | ||
| 30 | }; | ||
| 31 | |||
| 32 | @@ -140,6 +142,8 @@ | ||
| 33 | { "build", RPMSENSE_SCRIPT_BUILD }, | ||
| 34 | { "install", RPMSENSE_SCRIPT_INSTALL }, | ||
| 35 | { "clean", RPMSENSE_SCRIPT_CLEAN }, | ||
| 36 | + { "hint", RPMSENSE_MISSINGOK }, | ||
| 37 | + { "strong", RPMSENSE_STRONG }, | ||
| 38 | { NULL, 0 } | ||
| 39 | }; | ||
| 40 | |||
| 41 | @@ -692,6 +696,18 @@ | ||
| 42 | if ((rc = parseRCPOT(spec, pkg, field, tag, 0, tagflags))) | ||
| 43 | return rc; | ||
| 44 | break; | ||
| 45 | + case RPMTAG_SUGGESTSFLAGS: | ||
| 46 | + case RPMTAG_ENHANCESFLAGS: | ||
| 47 | + case RPMTAG_BUILDSUGGESTS: | ||
| 48 | + case RPMTAG_BUILDENHANCES: | ||
| 49 | + tagflags = RPMSENSE_MISSINGOK; | ||
| 50 | + if (macro && (!strcmp(macro, "recommends") || !strcmp(macro, "buildrecommends"))) | ||
| 51 | + tagflags |= RPMSENSE_STRONG; | ||
| 52 | + if (macro && (!strcmp(macro, "supplements") || !strcmp(macro, "buildsupplements"))) | ||
| 53 | + tagflags |= RPMSENSE_STRONG; | ||
| 54 | + if ((rc = parseRCPOT(spec, pkg, field, tag, 0, tagflags))) | ||
| 55 | + return rc; | ||
| 56 | + break; | ||
| 57 | case RPMTAG_EXCLUDEARCH: | ||
| 58 | case RPMTAG_EXCLUSIVEARCH: | ||
| 59 | case RPMTAG_EXCLUDEOS: | ||
| 60 | @@ -783,6 +799,14 @@ | ||
| 61 | {RPMTAG_DISTTAG, 0, 0, 0, "disttag"}, | ||
| 62 | {RPMTAG_CVSID, 0, 0, 0, "cvsid"}, | ||
| 63 | {RPMTAG_SVNID, 0, 0, 0, "svnid"}, | ||
| 64 | + {RPMTAG_SUGGESTSFLAGS, 0, 0, 0, "recommends"}, | ||
| 65 | + {RPMTAG_SUGGESTSFLAGS, 0, 0, 0, "suggests"}, | ||
| 66 | + {RPMTAG_ENHANCESFLAGS, 0, 0, 0, "supplements"}, | ||
| 67 | + {RPMTAG_ENHANCESFLAGS, 0, 0, 0, "enhances"}, | ||
| 68 | + {RPMTAG_BUILDSUGGESTS, 0, 0, 0, "buildrecommends"}, | ||
| 69 | + {RPMTAG_BUILDSUGGESTS, 0, 0, 0, "buildsuggests"}, | ||
| 70 | + {RPMTAG_BUILDENHANCES, 0, 0, 0, "buildsupplements"}, | ||
| 71 | + {RPMTAG_BUILDENHANCES, 0, 0, 0, "buildenhances"}, | ||
| 72 | /*@-nullassign@*/ /* LCL: can't add null annotation */ | ||
| 73 | {0, 0, 0, 0, 0} | ||
| 74 | /*@=nullassign@*/ | ||
| 75 | Index: build/parseReqs.c | ||
| 76 | =================================================================== | ||
| 77 | --- build/parseReqs.c.orig 2008-04-01 08:28:21.000000000 +0100 | ||
| 78 | +++ build/parseReqs.c 2008-08-26 16:58:09.000000000 +0100 | ||
| 79 | @@ -85,6 +85,14 @@ | ||
| 80 | tagflags |= RPMSENSE_ANY; | ||
| 81 | h = spec->buildRestrictions; | ||
| 82 | break; | ||
| 83 | + case RPMTAG_SUGGESTSFLAGS: | ||
| 84 | + case RPMTAG_ENHANCESFLAGS: | ||
| 85 | + h = pkg->header; | ||
| 86 | + break; | ||
| 87 | + case RPMTAG_BUILDSUGGESTS: | ||
| 88 | + case RPMTAG_BUILDENHANCES: | ||
| 89 | + h = spec->buildRestrictions; | ||
| 90 | + break; | ||
| 91 | default: | ||
| 92 | case RPMTAG_REQUIREFLAGS: | ||
| 93 | tagflags |= RPMSENSE_ANY; | ||
| 94 | Index: build/reqprov.c | ||
| 95 | =================================================================== | ||
| 96 | --- build/reqprov.c.orig 2008-04-01 08:28:21.000000000 +0100 | ||
| 97 | +++ build/reqprov.c 2008-08-26 16:58:09.000000000 +0100 | ||
| 98 | @@ -48,6 +48,16 @@ | ||
| 99 | flagtag = RPMTAG_TRIGGERFLAGS; | ||
| 100 | indextag = RPMTAG_TRIGGERINDEX; | ||
| 101 | extra = Flags & RPMSENSE_TRIGGER; | ||
| 102 | + } else if (tagN == RPMTAG_SUGGESTSFLAGS || tagN == RPMTAG_BUILDSUGGESTS) { | ||
| 103 | + nametag = RPMTAG_SUGGESTSNAME; | ||
| 104 | + versiontag = RPMTAG_SUGGESTSVERSION; | ||
| 105 | + flagtag = RPMTAG_SUGGESTSFLAGS; | ||
| 106 | + extra = Flags & _ALL_REQUIRES_MASK; | ||
| 107 | + } else if (tagN == RPMTAG_ENHANCESFLAGS || tagN == RPMTAG_BUILDENHANCES) { | ||
| 108 | + nametag = RPMTAG_ENHANCESNAME; | ||
| 109 | + versiontag = RPMTAG_ENHANCESVERSION; | ||
| 110 | + flagtag = RPMTAG_ENHANCESFLAGS; | ||
| 111 | + extra = Flags & _ALL_REQUIRES_MASK; | ||
| 112 | } else { | ||
| 113 | nametag = RPMTAG_REQUIRENAME; | ||
| 114 | versiontag = RPMTAG_REQUIREVERSION; | ||
| 115 | Index: build/rpmfc.c | ||
| 116 | =================================================================== | ||
| 117 | --- build/rpmfc.c.orig 2008-04-01 08:28:21.000000000 +0100 | ||
| 118 | +++ build/rpmfc.c 2008-08-26 16:58:09.000000000 +0100 | ||
| 119 | @@ -1385,6 +1385,12 @@ | ||
| 120 | { "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL }, | ||
| 121 | RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS, | ||
| 122 | 0, -1 }, | ||
| 123 | + { "Enhances", { "%{?__find_enhances}", NULL, NULL, NULL }, | ||
| 124 | + RPMTAG_ENHANCESNAME, RPMTAG_ENHANCESVERSION, RPMTAG_ENHANCESFLAGS, | ||
| 125 | + RPMSENSE_STRONG, RPMSENSE_STRONG }, | ||
| 126 | + { "Supplements", { "%{?__find_supplements}", NULL, NULL, NULL }, | ||
| 127 | + RPMTAG_ENHANCESNAME, RPMTAG_ENHANCESVERSION, RPMTAG_ENHANCESFLAGS, | ||
| 128 | + RPMSENSE_STRONG, 0 }, | ||
| 129 | { NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 } | ||
| 130 | }; | ||
| 131 | |||
| 132 | @@ -1480,6 +1486,14 @@ | ||
| 133 | failnonzero = 0; | ||
| 134 | tagflags = RPMSENSE_FIND_REQUIRES; | ||
| 135 | /*@switchbreak@*/ break; | ||
| 136 | + case RPMTAG_ENHANCESFLAGS: | ||
| 137 | + if (!pkg->autoProv) | ||
| 138 | + continue; | ||
| 139 | + failnonzero = 0; | ||
| 140 | + tagflags = RPMSENSE_FIND_REQUIRES | RPMSENSE_MISSINGOK; | ||
| 141 | + if (strcmp(dm->msg, "Supplements") == 0) | ||
| 142 | + tagflags |= RPMSENSE_STRONG; | ||
| 143 | + /*@switchbreak@*/ break; | ||
| 144 | default: | ||
| 145 | continue; | ||
| 146 | /*@notreached@*/ /*@switchbreak@*/ break; | ||
| 147 | Index: lib/rpmlib.h | ||
| 148 | =================================================================== | ||
| 149 | --- lib/rpmlib.h.orig 2008-04-01 08:28:22.000000000 +0100 | ||
| 150 | +++ lib/rpmlib.h 2008-08-26 17:00:37.000000000 +0100 | ||
| 151 | @@ -530,7 +530,7 @@ | ||
| 152 | RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< @todo Implement %triggerprein. */ | ||
| 153 | /*@=enummemuse@*/ | ||
| 154 | RPMSENSE_KEYRING = (1 << 26), | ||
| 155 | - RPMSENSE_PATCHES = (1 << 27), | ||
| 156 | + RPMSENSE_STRONG = (1 << 27), | ||
| 157 | RPMSENSE_CONFIG = (1 << 28) | ||
| 158 | } rpmsenseFlags; | ||
| 159 | |||
| 160 | Index: python/rpmmodule.c | ||
| 161 | =================================================================== | ||
| 162 | --- python/rpmmodule.c.orig 2008-04-01 08:28:22.000000000 +0100 | ||
| 163 | +++ python/rpmmodule.c 2008-08-26 16:58:09.000000000 +0100 | ||
| 164 | @@ -433,7 +433,7 @@ | ||
| 165 | REGISTER_ENUM(RPMSENSE_RPMLIB); | ||
| 166 | REGISTER_ENUM(RPMSENSE_TRIGGERPREIN); | ||
| 167 | REGISTER_ENUM(RPMSENSE_KEYRING); | ||
| 168 | - REGISTER_ENUM(RPMSENSE_PATCHES); | ||
| 169 | + REGISTER_ENUM(RPMSENSE_STRONG); | ||
| 170 | REGISTER_ENUM(RPMSENSE_CONFIG); | ||
| 171 | |||
| 172 | REGISTER_ENUM(RPMTRANS_FLAG_TEST); | ||
| 173 | Index: lib/rpmds.c | ||
| 174 | =================================================================== | ||
| 175 | --- lib/rpmds.c.orig 2008-04-01 08:28:22.000000000 +0100 | ||
| 176 | +++ lib/rpmds.c 2008-08-26 16:58:09.000000000 +0100 | ||
| 177 | @@ -320,6 +320,11 @@ | ||
| 178 | tagEVR = RPMTAG_TRIGGERVERSION; | ||
| 179 | tagF = RPMTAG_TRIGGERFLAGS; | ||
| 180 | } else | ||
| 181 | + if (tagN == RPMTAG_ENHANCESNAME) { | ||
| 182 | + Type = "Enhances"; | ||
| 183 | + tagEVR = RPMTAG_ENHANCESVERSION; | ||
| 184 | + tagF = RPMTAG_ENHANCESFLAGS; | ||
| 185 | + } else | ||
| 186 | goto exit; | ||
| 187 | |||
| 188 | /*@-branchstate@*/ | ||
| 189 | Index: rpmpopt.in | ||
| 190 | =================================================================== | ||
| 191 | --- rpmpopt.in.orig 2008-04-01 08:28:22.000000000 +0100 | ||
| 192 | +++ rpmpopt.in 2008-08-26 16:58:09.000000000 +0100 | ||
| 193 | @@ -68,6 +68,22 @@ | ||
| 194 | --POPTdesc=$"list capabilities required by package(s)" | ||
| 195 | rpm alias -R --requires | ||
| 196 | |||
| 197 | +rpm alias --suggests --qf \ | ||
| 198 | + "[%|SUGGESTSFLAGS:depflag_strong?{}:{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \ | ||
| 199 | + --POPTdesc=$"list capabilities this package suggests" | ||
| 200 | + | ||
| 201 | +rpm alias --recommends --qf \ | ||
| 202 | + "[%|SUGGESTSFLAGS:depflag_strong?{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \ | ||
| 203 | + --POPTdesc=$"list capabilities this package recommends" | ||
| 204 | + | ||
| 205 | +rpm alias --enhances --qf \ | ||
| 206 | + "[%|ENHANCESFLAGS:depflag_strong?{}:{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \ | ||
| 207 | + --POPTdesc=$"list capabilities this package enhances" | ||
| 208 | + | ||
| 209 | +rpm alias --supplements --qf \ | ||
| 210 | + "[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \ | ||
| 211 | + --POPTdesc=$"list capabilities this package supplements" | ||
| 212 | + | ||
| 213 | rpm alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\ | ||
| 214 | Version : %-27{VERSION} Vendor: %{VENDOR}\n\ | ||
| 215 | Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\ | ||
| 216 | @@ -351,6 +367,22 @@ | ||
| 217 | --POPTdesc=$"list capabilities required by package(s)" | ||
| 218 | rpmq alias -R --requires | ||
| 219 | |||
| 220 | +rpmq alias --suggests --qf \ | ||
| 221 | + "[%|SUGGESTSFLAGS:depflag_strong?{}:{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \ | ||
| 222 | + --POPTdesc=$"list capabilities this package suggests" | ||
| 223 | + | ||
| 224 | +rpmq alias --recommends --qf \ | ||
| 225 | + "[%|SUGGESTSFLAGS:depflag_strong?{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \ | ||
| 226 | + --POPTdesc=$"list capabilities this package recommends" | ||
| 227 | + | ||
| 228 | +rpmq alias --enhances --qf \ | ||
| 229 | + "[%|ENHANCESFLAGS:depflag_strong?{}:{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \ | ||
| 230 | + --POPTdesc=$"list capabilities this package enhances" | ||
| 231 | + | ||
| 232 | +rpmq alias --supplements --qf \ | ||
| 233 | + "[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \ | ||
| 234 | + --POPTdesc=$"list capabilities this package supplements" | ||
| 235 | + | ||
| 236 | rpmq alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\ | ||
| 237 | Version : %-27{VERSION} Vendor: %{VENDOR}\n\ | ||
| 238 | Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\ | ||
| 239 | @@ -452,6 +484,22 @@ | ||
| 240 | --POPTdesc=$"list capabilities required by package(s)" | ||
| 241 | rpmquery alias -R --requires | ||
| 242 | |||
| 243 | +rpmquery alias --suggests --qf \ | ||
| 244 | + "[%|SUGGESTSFLAGS:depflag_strong?{}:{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \ | ||
| 245 | + --POPTdesc=$"list capabilities this package suggests" | ||
| 246 | + | ||
| 247 | +rpmquery alias --recommends --qf \ | ||
| 248 | + "[%|SUGGESTSFLAGS:depflag_strong?{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \ | ||
| 249 | + --POPTdesc=$"list capabilities this package recommends" | ||
| 250 | + | ||
| 251 | +rpmquery alias --enhances --qf \ | ||
| 252 | + "[%|ENHANCESFLAGS:depflag_strong?{}:{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \ | ||
| 253 | + --POPTdesc=$"list capabilities this package enhances" | ||
| 254 | + | ||
| 255 | +rpmquery alias --supplements --qf \ | ||
| 256 | + "[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \ | ||
| 257 | + --POPTdesc=$"list capabilities this package supplements" | ||
| 258 | + | ||
| 259 | rpmquery alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\ | ||
| 260 | Version : %-27{VERSION} Vendor: %{VENDOR}\n\ | ||
| 261 | Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\ | ||
| 262 | Index: lib/formats.c | ||
| 263 | =================================================================== | ||
| 264 | --- lib/formats.c.orig 2008-04-01 08:28:22.000000000 +0100 | ||
| 265 | +++ lib/formats.c 2008-08-26 16:58:09.000000000 +0100 | ||
| 266 | @@ -543,6 +543,38 @@ | ||
| 267 | return val; | ||
| 268 | } | ||
| 269 | |||
| 270 | +static /*@only@*/ char * depflag_strongFormat(int_32 type, const void * data, | ||
| 271 | + char * formatPrefix, int padding, /*@unused@*/ int element) | ||
| 272 | + /*@modifies formatPrefix @*/ | ||
| 273 | + /*@requires maxRead(data) >= 0 @*/ | ||
| 274 | +{ | ||
| 275 | + char * val; | ||
| 276 | + char buf[10]; | ||
| 277 | + int anint; | ||
| 278 | + | ||
| 279 | + if (type != RPM_INT32_TYPE) { | ||
| 280 | + val = xstrdup(_("(not a number)")); | ||
| 281 | + } else { | ||
| 282 | + anint = *((int_32 *) data); | ||
| 283 | + buf[0] = '\0'; | ||
| 284 | + | ||
| 285 | +/*@-boundswrite@*/ | ||
| 286 | + if (anint & RPMSENSE_STRONG) | ||
| 287 | + strcat(buf, "strong"); | ||
| 288 | +/*@=boundswrite@*/ | ||
| 289 | + | ||
| 290 | + val = xmalloc(7 + padding); | ||
| 291 | +/*@-boundswrite@*/ | ||
| 292 | + strcat(formatPrefix, "s"); | ||
| 293 | +/*@=boundswrite@*/ | ||
| 294 | + /*@-formatconst@*/ | ||
| 295 | + sprintf(val, formatPrefix, buf); | ||
| 296 | + /*@=formatconst@*/ | ||
| 297 | + } | ||
| 298 | + | ||
| 299 | + return val; | ||
| 300 | +} | ||
| 301 | + | ||
| 302 | /** | ||
| 303 | * Retrieve mounted file system paths. | ||
| 304 | * @param h header | ||
| 305 | @@ -1171,6 +1203,7 @@ | ||
| 306 | { HEADER_EXT_FORMAT, "base64", { base64Format } }, | ||
| 307 | { HEADER_EXT_FORMAT, "pgpsig", { pgpsigFormat } }, | ||
| 308 | { HEADER_EXT_FORMAT, "depflags", { depflagsFormat } }, | ||
| 309 | + { HEADER_EXT_FORMAT, "depflag_strong", { depflag_strongFormat } }, | ||
| 310 | { HEADER_EXT_FORMAT, "fflags", { fflagsFormat } }, | ||
| 311 | { HEADER_EXT_FORMAT, "perms", { permsFormat } }, | ||
| 312 | { HEADER_EXT_FORMAT, "permissions", { permsFormat } }, | ||
diff --git a/meta/packages/rpm/rpm_4.4.2.3.bb b/meta/packages/rpm/rpm_4.4.2.3.bb index 4e868e3716..1a6e01a196 100644 --- a/meta/packages/rpm/rpm_4.4.2.3.bb +++ b/meta/packages/rpm/rpm_4.4.2.3.bb | |||
| @@ -2,11 +2,13 @@ DESCRIPTION = "The RPM Package Manager." | |||
| 2 | HOMEPAGE = "http://rpm.org/" | 2 | HOMEPAGE = "http://rpm.org/" |
| 3 | LICENSE = "LGPL GPL" | 3 | LICENSE = "LGPL GPL" |
| 4 | DEPENDS = "zlib beecrypt file popt python" | 4 | DEPENDS = "zlib beecrypt file popt python" |
| 5 | PR = "r4" | 5 | PR = "r6" |
| 6 | 6 | ||
| 7 | SRC_URI = "http://www.rpm.org/releases/rpm-4.4.x/rpm-4.4.2.3.tar.gz \ | 7 | SRC_URI = "http://www.rpm.org/releases/rpm-4.4.x/rpm-4.4.2.3.tar.gz \ |
| 8 | file://external-tools.patch;patch=1 \ | 8 | file://external-tools.patch;patch=1 \ |
| 9 | file://cross_libpaths.patch;patch=1" | 9 | file://cross_libpaths.patch;patch=1 \ |
| 10 | file://weakdeps.patch;patch=1;pnum=0 \ | ||
| 11 | file://tagsbackport.patch;patch=1;pnum=0" | ||
| 10 | 12 | ||
| 11 | inherit autotools gettext | 13 | inherit autotools gettext |
| 12 | 14 | ||
