SHA256
6
0
forked from pool/rpm

- update to rpm-4.8.0

* updated python bindings
  * new transaction ordering code

OBS-URL: https://build.opensuse.org/package/show/Base:System/rpm?expand=0&rev=40
This commit is contained in:
2010-03-26 10:56:28 +00:00
committed by Git OBS Bridge
parent 3de0fb7483
commit a6846b83ca
30 changed files with 960 additions and 1166 deletions

View File

@@ -14,11 +14,9 @@ B) use RPMSENSE_STRONG to support a "strong" version, "Recommends"
Needs extcond.diff for query operations.
Index: build/parsePreamble.c
===================================================================
--- build/parsePreamble.c.orig
+++ build/parsePreamble.c
@@ -122,6 +122,8 @@ static struct tokenBits_s const installS
--- ./build/parsePreamble.c.orig 2009-12-17 09:05:55.000000000 +0000
+++ ./build/parsePreamble.c 2010-03-25 14:56:24.000000000 +0000
@@ -124,6 +124,8 @@ static struct tokenBits_s const installS
{ "post", RPMSENSE_SCRIPT_POST },
{ "rpmlib", RPMSENSE_RPMLIB },
{ "verify", RPMSENSE_SCRIPT_VERIFY },
@@ -27,7 +25,7 @@ Index: build/parsePreamble.c
{ NULL, 0 }
};
@@ -132,6 +134,8 @@ static const struct tokenBits_s const bu
@@ -134,6 +136,8 @@ static const struct tokenBits_s const bu
{ "build", RPMSENSE_SCRIPT_BUILD },
{ "install", RPMSENSE_SCRIPT_INSTALL },
{ "clean", RPMSENSE_SCRIPT_CLEAN },
@@ -36,7 +34,7 @@ Index: build/parsePreamble.c
{ NULL, 0 }
};
@@ -637,6 +641,18 @@ static int handlePreambleTag(rpmSpec spe
@@ -649,6 +653,18 @@ static int handlePreambleTag(rpmSpec spe
if ((rc = parseRCPOT(spec, pkg, field, tag, 0, tagflags)))
return rc;
break;
@@ -55,26 +53,24 @@ Index: build/parsePreamble.c
case RPMTAG_EXCLUDEARCH:
case RPMTAG_EXCLUSIVEARCH:
case RPMTAG_EXCLUDEOS:
@@ -734,6 +750,14 @@ static struct PreambleRec_s preambleList
{RPMTAG_AUTOPROV, 0, 0, 0, "autoprov"},
{RPMTAG_DOCDIR, 0, 0, 0, "docdir"},
{RPMTAG_DISTTAG, 0, 0, 0, "disttag"},
+ {RPMTAG_SUGGESTSFLAGS, 0, 0, 0, "recommends"},
+ {RPMTAG_SUGGESTSFLAGS, 0, 0, 0, "suggests"},
+ {RPMTAG_ENHANCESFLAGS, 0, 0, 0, "supplements"},
+ {RPMTAG_ENHANCESFLAGS, 0, 0, 0, "enhances"},
+ {RPMTAG_BUILDSUGGESTS, 0, 0, 0, "buildrecommends"},
+ {RPMTAG_BUILDSUGGESTS, 0, 0, 0, "buildsuggests"},
+ {RPMTAG_BUILDENHANCES, 0, 0, 0, "buildsupplements"},
+ {RPMTAG_BUILDENHANCES, 0, 0, 0, "buildenhances"},
/* LCL: can't add null annotation */
{0, 0, 0, 0, 0}
@@ -748,6 +764,14 @@ static struct PreambleRec_s const preamb
{RPMTAG_DOCDIR, 0, 0, LEN_AND_STR("docdir")},
{RPMTAG_DISTTAG, 0, 0, LEN_AND_STR("disttag")},
{RPMTAG_BUGURL, 0, 0, LEN_AND_STR("bugurl")},
+ {RPMTAG_SUGGESTSFLAGS, 0, 0, LEN_AND_STR("recommends")},
+ {RPMTAG_SUGGESTSFLAGS, 0, 0, LEN_AND_STR("suggests")},
+ {RPMTAG_ENHANCESFLAGS, 0, 0, LEN_AND_STR("supplements")},
+ {RPMTAG_ENHANCESFLAGS, 0, 0, LEN_AND_STR("enhances")},
+ {RPMTAG_BUILDSUGGESTS, 0, 0, LEN_AND_STR("buildrecommends")},
+ {RPMTAG_BUILDSUGGESTS, 0, 0, LEN_AND_STR("buildsuggests")},
+ {RPMTAG_BUILDENHANCES, 0, 0, LEN_AND_STR("buildsupplements")},
+ {RPMTAG_BUILDENHANCES, 0, 0, LEN_AND_STR("buildenhances")},
{0, 0, 0, 0}
};
Index: build/parseReqs.c
===================================================================
--- build/parseReqs.c.orig
+++ build/parseReqs.c
@@ -84,6 +84,14 @@ rpmRC parseRCPOT(rpmSpec spec, Package p
--- ./build/parseReqs.c.orig 2009-12-17 09:05:55.000000000 +0000
+++ ./build/parseReqs.c 2010-03-25 14:53:47.000000000 +0000
@@ -85,6 +85,14 @@ rpmRC parseRCPOT(rpmSpec spec, Package p
tagflags |= RPMSENSE_ANY;
h = spec->buildRestrictions;
break;
@@ -89,11 +85,9 @@ Index: build/parseReqs.c
default:
case RPMTAG_REQUIREFLAGS:
tagflags |= RPMSENSE_ANY;
Index: build/reqprov.c
===================================================================
--- build/reqprov.c.orig
+++ build/reqprov.c
@@ -43,6 +43,16 @@ int addReqProv(rpmSpec spec, Header h, r
--- ./build/reqprov.c.orig 2009-12-07 14:36:49.000000000 +0000
+++ ./build/reqprov.c 2010-03-25 14:53:47.000000000 +0000
@@ -75,6 +75,16 @@ int addReqProv(rpmSpec spec, Header h, r
flagtag = RPMTAG_TRIGGERFLAGS;
indextag = RPMTAG_TRIGGERINDEX;
extra = Flags & RPMSENSE_TRIGGER;
@@ -110,11 +104,9 @@ Index: build/reqprov.c
} else {
nametag = RPMTAG_REQUIRENAME;
versiontag = RPMTAG_REQUIREVERSION;
Index: build/rpmfc.c
===================================================================
--- build/rpmfc.c.orig
+++ build/rpmfc.c
@@ -1377,6 +1377,12 @@ static struct DepMsg_s depMsgs[] = {
--- ./build/rpmfc.c.orig 2009-12-09 13:37:25.000000000 +0000
+++ ./build/rpmfc.c 2010-03-25 14:53:47.000000000 +0000
@@ -1405,6 +1405,12 @@ static struct DepMsg_s depMsgs[] = {
{ "Obsoletes", { "%{?__find_obsoletes}", NULL, NULL, NULL },
RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_OBSOLETEFLAGS,
0, -1 },
@@ -127,7 +119,7 @@ Index: build/rpmfc.c
{ NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 }
};
@@ -1467,6 +1473,14 @@ static int rpmfcGenerateDependsHelper(co
@@ -1490,6 +1496,14 @@ static int rpmfcGenerateDependsHelper(co
failnonzero = 0;
tagflags = RPMSENSE_FIND_REQUIRES;
break;
@@ -142,66 +134,9 @@ Index: build/rpmfc.c
default:
continue;
break;
Index: python/rpmmodule.c
===================================================================
--- python/rpmmodule.c.orig
+++ python/rpmmodule.c
@@ -387,7 +387,7 @@ void init_rpm(void)
REGISTER_ENUM(RPMSENSE_RPMLIB);
REGISTER_ENUM(RPMSENSE_TRIGGERPREIN);
REGISTER_ENUM(RPMSENSE_KEYRING);
- REGISTER_ENUM(RPMSENSE_PATCHES);
+ REGISTER_ENUM(RPMSENSE_STRONG);
REGISTER_ENUM(RPMSENSE_CONFIG);
REGISTER_ENUM(RPMTRANS_FLAG_TEST);
Index: lib/rpmds.c
===================================================================
--- lib/rpmds.c.orig
+++ lib/rpmds.c
@@ -73,6 +73,10 @@ static int dsType(rpmTag tag,
t = "Trigger";
evr = RPMTAG_TRIGGERVERSION;
f = RPMTAG_TRIGGERFLAGS;
+ } else if (tag == RPMTAG_ENHANCESNAME) {
+ t = "Enhances";
+ evr = RPMTAG_ENHANCESVERSION;
+ f = RPMTAG_ENHANCESFLAGS;
} else {
rc = 1;
}
Index: rpmpopt.in
===================================================================
--- rpmpopt.in.orig
+++ rpmpopt.in
@@ -65,6 +65,22 @@ rpm alias --requires --qf \
--POPTdesc=$"list capabilities required by package(s)"
rpm alias -R --requires
+rpm alias --suggests --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{}:{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package suggests"
+
+rpm alias --recommends --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package recommends"
+
+rpm alias --enhances --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{}:{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package enhances"
+
+rpm alias --supplements --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package supplements"
+
rpm alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\
Version : %-27{VERSION} Vendor: %{VENDOR}\n\
Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\
Index: lib/formats.c
===================================================================
--- lib/formats.c.orig
+++ lib/formats.c
@@ -601,6 +601,25 @@ static char * depflagsFormat(rpmtd td, c
--- ./lib/formats.c.orig 2009-12-07 14:36:49.000000000 +0000
+++ ./lib/formats.c 2010-03-25 15:00:15.000000000 +0000
@@ -601,6 +601,24 @@ static char * depflagsFormat(rpmtd td, c
return val;
}
@@ -220,24 +155,34 @@ Index: lib/formats.c
+ strcat(formatPrefix, "s");
+ rasprintf(&val, formatPrefix, buf);
+ }
+
+ return val;
+}
+
/**
* Return tag container array size.
* @param td tag data container
@@ -661,5 +680,6 @@ static const struct headerFormatFunc_s r
{ RPMTD_FORMAT_DAY, "day", dayFormat },
{ RPMTD_FORMAT_SHESCAPE, "shescape", shescapeFormat },
@@ -738,5 +756,6 @@ static const struct headerFormatFunc_s r
{ RPMTD_FORMAT_ARRAYSIZE, "arraysize", arraysizeFormat },
+ { RPMTD_FORMAT_DEPFLAG_STRONG, "depflag_strong", { depflag_strongFormat } },
{ RPMTD_FORMAT_FSTATE, "fstate", fstateFormat },
{ RPMTD_FORMAT_VFLAGS, "vflags", vflagsFormat },
+ { RPMTD_FORMAT_DEPFLAG_STRONG, "depflag_strong", depflag_strongFormat },
{ -1, NULL, NULL }
};
Index: lib/rpmds.h
===================================================================
--- lib/rpmds.h.orig
+++ lib/rpmds.h
--- ./lib/rpmds.c.orig 2009-12-07 14:36:49.000000000 +0000
+++ ./lib/rpmds.c 2010-03-25 14:53:47.000000000 +0000
@@ -66,6 +66,10 @@ static int dsType(rpmTag tag,
t = "Trigger";
evr = RPMTAG_TRIGGERVERSION;
f = RPMTAG_TRIGGERFLAGS;
+ } else if (tag == RPMTAG_ENHANCESNAME) {
+ t = "Enhances";
+ evr = RPMTAG_ENHANCESVERSION;
+ f = RPMTAG_ENHANCESFLAGS;
} else {
rc = 1;
}
--- ./lib/rpmds.h.orig 2010-03-24 16:47:28.000000000 +0000
+++ ./lib/rpmds.h 2010-03-25 14:53:47.000000000 +0000
@@ -55,7 +55,7 @@ typedef enum rpmsenseFlags_e {
RPMSENSE_RPMLIB = (1 << 24), /*!< rpmlib(feature) dependency. */
RPMSENSE_TRIGGERPREIN = (1 << 25), /*!< %triggerprein dependency. */
@@ -255,22 +200,8 @@ Index: lib/rpmds.h
RPMSENSE_SCRIPT_PREP | \
RPMSENSE_SCRIPT_BUILD | \
RPMSENSE_SCRIPT_INSTALL | \
Index: lib/rpmtd.h
===================================================================
--- lib/rpmtd.h.orig
+++ lib/rpmtd.h
@@ -214,6 +214,7 @@ typedef enum rpmtdFormats_e {
RPMTD_FORMAT_SHESCAPE = 13, /* shell escaped (any type) */
RPMTD_FORMAT_ARRAYSIZE = 14, /* size of contained array (any type) */
RPMTD_FORMAT_DEPTYPE = 15, /* dependency types (int32 types) */
+ RPMTD_FORMAT_DEPFLAG_STRONG = 16, /* strong dependency */
} rpmtdFormats;
/** \ingroup rpmtd
Index: lib/rpmtag.h
===================================================================
--- lib/rpmtag.h.orig
+++ lib/rpmtag.h
--- ./lib/rpmtag.h.orig 2009-12-07 14:36:49.000000000 +0000
+++ ./lib/rpmtag.h 2010-03-25 14:53:47.000000000 +0000
@@ -228,14 +228,14 @@ typedef enum rpmTag_e {
RPMTAG_PRETRANSPROG = 1153, /* s */
RPMTAG_POSTTRANSPROG = 1154, /* s */
@@ -294,3 +225,49 @@ Index: lib/rpmtag.h
RPMTAG_PRIORITY = 1162, /* i[] extension placeholder (unimplemented) */
RPMTAG_CVSID = 1163, /* s (unimplemented) */
#define RPMTAG_SVNID RPMTAG_CVSID /* s (unimplemented) */
--- ./lib/rpmtd.h.orig 2009-12-07 14:36:49.000000000 +0000
+++ ./lib/rpmtd.h 2010-03-25 14:58:31.000000000 +0000
@@ -216,6 +216,7 @@ typedef enum rpmtdFormats_e {
RPMTD_FORMAT_DEPTYPE = 15, /* dependency types (int types) */
RPMTD_FORMAT_FSTATE = 16, /* file states (int types) */
RPMTD_FORMAT_VFLAGS = 17, /* file verify flags (int types) */
+ RPMTD_FORMAT_DEPFLAG_STRONG = 18, /* strong dependency */
} rpmtdFormats;
/** \ingroup rpmtd
--- ./python/rpmmodule.c.orig 2009-12-07 14:36:49.000000000 +0000
+++ ./python/rpmmodule.c 2010-03-25 14:53:47.000000000 +0000
@@ -373,7 +373,7 @@ static int initModule(PyObject *m)
REGISTER_ENUM(RPMSENSE_RPMLIB);
REGISTER_ENUM(RPMSENSE_TRIGGERPREIN);
REGISTER_ENUM(RPMSENSE_KEYRING);
- REGISTER_ENUM(RPMSENSE_PATCHES);
+ REGISTER_ENUM(RPMSENSE_STRONG);
REGISTER_ENUM(RPMSENSE_CONFIG);
REGISTER_ENUM(RPMTRANS_FLAG_TEST);
--- ./rpmpopt.in.orig 2009-12-07 14:36:49.000000000 +0000
+++ ./rpmpopt.in 2010-03-25 14:53:47.000000000 +0000
@@ -65,6 +65,22 @@ rpm alias --requires --qf \
--POPTdesc=$"list capabilities required by package(s)"
rpm alias -R --requires
+rpm alias --suggests --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{}:{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package suggests"
+
+rpm alias --recommends --qf \
+ "[%|SUGGESTSFLAGS:depflag_strong?{%{SUGGESTSNAME} %{SUGGESTSFLAGS:depflags} %{SUGGESTSVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package recommends"
+
+rpm alias --enhances --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{}:{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package enhances"
+
+rpm alias --supplements --qf \
+ "[%|ENHANCESFLAGS:depflag_strong?{%{ENHANCESNAME} %{ENHANCESFLAGS:depflags} %{ENHANCESVERSION}\n}|]" \
+ --POPTdesc=$"list capabilities this package supplements"
+
rpm alias --info --qf 'Name : %-27{NAME} Relocations: %|PREFIXES?{[%{PREFIXES} ]}:{(not relocatable)}|\n\
Version : %-27{VERSION} Vendor: %{VENDOR}\n\
Release : %-27{RELEASE} Build Date: %{BUILDTIME:date}\n\