245
245
argvAdd(&sdeps, "postun");
246
246
if (item & RPMSENSE_SCRIPT_VERIFY)
247
247
argvAdd(&sdeps, "verify");
248
if (item & RPMSENSE_INTERP)
249
argvAdd(&sdeps, "interp");
250
if (item & RPMSENSE_RPMLIB)
251
argvAdd(&sdeps, "rpmlib");
252
if ((item & RPMSENSE_FIND_REQUIRES) || (item & RPMSENSE_FIND_PROVIDES))
253
argvAdd(&sdeps, "auto");
254
if (item & RPMSENSE_PREREQ)
255
argvAdd(&sdeps, "prereq");
250
258
val = argvJoin(sdeps, ",");
253
if (item & RPMSENSE_RPMLIB)
254
val = xstrdup("rpmlib");
255
else if (item & RPMSENSE_INTERP)
256
val = xstrdup("interp");
257
else if ((item & RPMSENSE_FIND_REQUIRES) ||
258
(item & RPMSENSE_FIND_PROVIDES))
259
val = xstrdup("auto");
260
else if (item & RPMSENSE_PREREQ)
261
val = xstrdup("prereq");
263
val = xstrdup("manual");
260
val = xstrdup("manual");
516
515
val = t = xrealloc(val, nb + 1);
518
switch (sigp->pubkey_algo) {
519
case PGPPUBKEYALGO_DSA:
520
t = stpcpy(t, "DSA");
522
case PGPPUBKEYALGO_RSA:
523
t = stpcpy(t, "RSA");
526
(void) snprintf(t, nb - (t - val), "%d", sigp->pubkey_algo);
517
t = stpcpy(t, pgpValString(PGPVAL_PUBKEYALGO, sigp->pubkey_algo));
530
518
if (t + 5 >= val + nb)
533
switch (sigp->hash_algo) {
534
case PGPHASHALGO_MD5:
535
t = stpcpy(t, "MD5");
537
case PGPHASHALGO_SHA1:
538
t = stpcpy(t, "SHA1");
541
(void) snprintf(t, nb - (t - val), "%d", sigp->hash_algo);
521
t = stpcpy(t, pgpValString(PGPVAL_HASHALGO, sigp->hash_algo));
545
522
if (t + strlen (", ") + 1 >= val + nb)
595
static char * fstateFormat(rpmtd td, char * formatPrefix)
599
if (rpmtdClass(td) != RPM_NUMERIC_CLASS) {
600
val = xstrdup(_("(not a number)"));
603
rpmfileState fstate = rpmtdGetNumber(td);
605
case RPMFILE_STATE_NORMAL:
608
case RPMFILE_STATE_REPLACED:
611
case RPMFILE_STATE_NOTINSTALLED:
612
str = _("not installed");
614
case RPMFILE_STATE_NETSHARED:
615
str = _("net shared");
617
case RPMFILE_STATE_WRONGCOLOR:
618
str = _("wrong color");
620
/* XXX headers should never have this value as file state */
621
case RPMFILE_STATE_MISSING:
625
str = _("(unknown)");
629
strcat(formatPrefix, "s");
630
rasprintf(&val, formatPrefix, str);
635
static char * vflagsFormat(rpmtd td, char * formatPrefix)
640
if (rpmtdClass(td) != RPM_NUMERIC_CLASS) {
641
val = xstrdup(_("(not a number)"));
643
uint64_t vflags = rpmtdGetNumber(td);
645
if (vflags & RPMVERIFY_FILEDIGEST)
647
if (vflags & RPMVERIFY_FILESIZE)
649
if (vflags & RPMVERIFY_LINKTO)
651
if (vflags & RPMVERIFY_MTIME)
653
if (vflags & RPMVERIFY_RDEV)
655
if (vflags & RPMVERIFY_USER)
657
if (vflags & RPMVERIFY_GROUP)
659
if (vflags & RPMVERIFY_MODE)
661
if (vflags & RPMVERIFY_CAPS)
664
strcat(formatPrefix, "s");
665
rasprintf(&val, formatPrefix, buf);
618
670
void *rpmHeaderFormatFuncByName(const char *fmt)
620
672
const struct headerFormatFunc_s * ext;
621
673
void *func = NULL;
623
675
for (ext = rpmHeaderFormats; ext->name != NULL; ext++) {
624
if (!strcmp(ext->name, fmt)) {
676
if (rstreq(ext->name, fmt)) {
625
677
func = ext->func;
661
713
{ RPMTD_FORMAT_DAY, "day", dayFormat },
662
714
{ RPMTD_FORMAT_SHESCAPE, "shescape", shescapeFormat },
663
715
{ RPMTD_FORMAT_ARRAYSIZE, "arraysize", arraysizeFormat },
716
{ RPMTD_FORMAT_FSTATE, "fstate", fstateFormat },
717
{ RPMTD_FORMAT_VFLAGS, "vflags", vflagsFormat },
664
718
{ -1, NULL, NULL }