static const char *initpool_data[] = {
#else
# define KNOWNID(a, b) a
-enum sat_knownid {
+enum solv_knownid {
#endif
KNOWNID(ID_NULL, "<NULL>"),
KNOWNID(ID_EMPTY, ""),
+
+/* The following Ids are stored in the solvable and must
+ * come in one block */
KNOWNID(SOLVABLE_NAME, "solvable:name"),
KNOWNID(SOLVABLE_ARCH, "solvable:arch"),
KNOWNID(SOLVABLE_EVR, "solvable:evr"),
KNOWNID(SOLVABLE_SUPPLEMENTS, "solvable:supplements"),
KNOWNID(SOLVABLE_ENHANCES, "solvable:enhances"),
KNOWNID(RPM_RPMDBID, "rpm:dbid"),
+
/* normal requires before this, prereqs after this */
KNOWNID(SOLVABLE_PREREQMARKER, "solvable:prereqmarker"),
/* normal provides before this, generated file provides after this */
KNOWNID(ARCH_SRC, "src"),
KNOWNID(ARCH_NOSRC, "nosrc"),
KNOWNID(ARCH_NOARCH, "noarch"),
-KNOWNID(REPODATA_INFO, "repodata:info"),
-KNOWNID(REPODATA_EXTERNAL, "repodata:external"),
-KNOWNID(REPODATA_KEYS, "repodata:keys"),
-KNOWNID(REPODATA_LOCATION, "repodata:location"),
-KNOWNID(REPODATA_ADDEDFILEPROVIDES, "repodata:addedfileprovides"),
-KNOWNID(REPODATA_RPMDBCOOKIE, "repodata:rpmdbcookie"),
+KNOWNID(ARCH_ALL, "all"),
+KNOWNID(ARCH_ANY, "any"),
+
+KNOWNID(REPOSITORY_SOLVABLES, "repository:solvables"),
+KNOWNID(REPOSITORY_DELTAINFO, "repository:deltainfo"),
+
+/* sub-repository information, they will get loaded on demand */
+KNOWNID(REPOSITORY_EXTERNAL, "repository:external"),
+KNOWNID(REPOSITORY_KEYS, "repository:keys"),
+KNOWNID(REPOSITORY_LOCATION, "repository:location"),
+
+/* file provides already added to our solvables */
+KNOWNID(REPOSITORY_ADDEDFILEPROVIDES, "repository:addedfileprovides"),
+/* inode of the rpm database for rpm --rebuilddb detection */
+KNOWNID(REPOSITORY_RPMDBCOOKIE, "repository:rpmdbcookie"),
/* The void type is usable to encode one-valued attributes, they have
no associated data. This is useful to encode values which many solvables
KNOWNID(REPOKEY_TYPE_U32, "repokey:type:num32"),
KNOWNID(REPOKEY_TYPE_DIR, "repokey:type:dir"),
KNOWNID(REPOKEY_TYPE_STR, "repokey:type:str"),
+KNOWNID(REPOKEY_TYPE_BINARY, "repokey:type:binary"),
KNOWNID(REPOKEY_TYPE_IDARRAY, "repokey:type:idarray"),
KNOWNID(REPOKEY_TYPE_REL_IDARRAY, "repokey:type:relidarray"),
KNOWNID(REPOKEY_TYPE_DIRSTRARRAY, "repokey:type:dirstrarray"),
KNOWNID(REPOKEY_TYPE_MD5, "repokey:type:md5"),
KNOWNID(REPOKEY_TYPE_SHA1, "repokey:type:sha1"),
KNOWNID(REPOKEY_TYPE_SHA256, "repokey:type:sha256"),
-KNOWNID(REPOKEY_TYPE_COUNTED, "repokey:type:counted"),
+KNOWNID(REPOKEY_TYPE_FIXARRAY, "repokey:type:fixarray"),
+KNOWNID(REPOKEY_TYPE_FLEXARRAY, "repokey:type:flexarray"),
+KNOWNID(REPOKEY_TYPE_DELETED, "repokey:type:deleted"),
KNOWNID(SOLVABLE_SUMMARY, "solvable:summary"),
KNOWNID(SOLVABLE_DESCRIPTION, "solvable:description"),
KNOWNID(SOLVABLE_BUILDTIME, "solvable:buildtime"),
KNOWNID(SOLVABLE_BUILDHOST, "solvable:buildhost"),
KNOWNID(SOLVABLE_EULA, "solvable:eula"),
-KNOWNID(SOLVABLE_CPE_NAME, "solvable:cpename"),
+KNOWNID(SOLVABLE_CPEID, "solvable:cpeid"),
KNOWNID(SOLVABLE_MESSAGEINS, "solvable:messageins"),
KNOWNID(SOLVABLE_MESSAGEDEL, "solvable:messagedel"),
KNOWNID(SOLVABLE_INSTALLSIZE, "solvable:installsize"),
KNOWNID(SOLVABLE_SOURCENAME, "solvable:sourcename"),
KNOWNID(SOLVABLE_SOURCEEVR, "solvable:sourceevr"),
KNOWNID(SOLVABLE_ISVISIBLE, "solvable:isvisible"),
+KNOWNID(SOLVABLE_TRIGGERS, "solvable:triggers"),
KNOWNID(SOLVABLE_CHECKSUM, "solvable:checksum"),
-/* pkgid: md5sum over header + payload */
-KNOWNID(SOLVABLE_PKGID, "solvable:pkgid"),
-/* hdrid: sha1sum over header only */
-KNOWNID(SOLVABLE_HDRID, "solvable:hdrid"),
-/* leadsigid: md5sum over lead + sigheader */
-KNOWNID(SOLVABLE_LEADSIGID, "solvable:leadsigid"),
+KNOWNID(SOLVABLE_PKGID, "solvable:pkgid"), /* pkgid: md5sum over header + payload */
+KNOWNID(SOLVABLE_HDRID, "solvable:hdrid"), /* hdrid: sha1sum over header only */
+KNOWNID(SOLVABLE_LEADSIGID, "solvable:leadsigid"), /* leadsigid: md5sum over lead + sigheader */
KNOWNID(SOLVABLE_PATCHCATEGORY, "solvable:patchcategory"),
KNOWNID(SOLVABLE_HEADEREND, "solvable:headerend"),
+KNOWNID(SOLVABLE_CHANGELOG, "solvable:changelog"),
+KNOWNID(SOLVABLE_CHANGELOG_AUTHOR, "solvable:changelog:author"),
+KNOWNID(SOLVABLE_CHANGELOG_TIME, "solvable:changelog:time"),
+KNOWNID(SOLVABLE_CHANGELOG_TEXT, "solvable:changelog:text"),
+
+/* stuff for solvables of type pattern */
KNOWNID(SOLVABLE_CATEGORY, "solvable:category"),
KNOWNID(SOLVABLE_INCLUDES, "solvable:includes"),
KNOWNID(SOLVABLE_EXTENDS, "solvable:extends"),
KNOWNID(SOLVABLE_ICON, "solvable:icon"),
KNOWNID(SOLVABLE_ORDER, "solvable:order"),
-KNOWNID(UPDATE_REBOOT, "update:reboot"), /* reboot suggested (kernel update) */
-KNOWNID(UPDATE_RESTART, "update:restart"), /* restart suggested (update stack update) */
-KNOWNID(UPDATE_RELOGIN, "update:relogin"), /* restart suggested (update stack update) */
-
-KNOWNID(UPDATE_MESSAGE, "update:message"), /* restart suggested (update stack update) */
- /* 'content' of patch, usually list of packages */
-KNOWNID(UPDATE_COLLECTION, "update:collection"), /* "name evr arch" */
-KNOWNID(UPDATE_COLLECTION_NAME, "update:collection:name"), /* name */
-KNOWNID(UPDATE_COLLECTION_EVR, "update:collection:evr"), /* epoch:version-release */
-KNOWNID(UPDATE_COLLECTION_ARCH, "update:collection:arch"), /* architecture */
-KNOWNID(UPDATE_COLLECTION_FILENAME, "update:collection:filename"), /* filename (of rpm) */
-KNOWNID(UPDATE_COLLECTION_FLAGS, "update:collection:flags"), /* reboot(1)/restart(2) suggested if this rpm gets updated */
-
- /* external references for the update */
-KNOWNID(UPDATE_REFERENCE_TYPE, "update:reference:type"), /* type, e.g. 'bugzilla' or 'cve' */
-KNOWNID(UPDATE_REFERENCE_HREF, "update:reference:href"), /* href, e.g. 'http://bugzilla...' */
-KNOWNID(UPDATE_REFERENCE_ID, "update:reference:id"), /* id, e.g. bug number */
-KNOWNID(UPDATE_REFERENCE_TITLE, "update:reference:title"), /* title, e.g. "the bla forz scribs on fuggle" */
+KNOWNID(UPDATE_REBOOT, "update:reboot"), /* reboot suggested (kernel update) */
+KNOWNID(UPDATE_RESTART, "update:restart"), /* restart suggested (update stack update) */
+KNOWNID(UPDATE_RELOGIN, "update:relogin"), /* relogin suggested */
+
+KNOWNID(UPDATE_MESSAGE, "update:message"), /* informative message */
+KNOWNID(UPDATE_SEVERITY, "update:severity"), /* "Important", ...*/
+KNOWNID(UPDATE_RIGHTS, "update:rights"), /* copyright */
+
+/* 'content' of patch, usually list of packages */
+KNOWNID(UPDATE_COLLECTION, "update:collection"), /* "name evr arch" */
+KNOWNID(UPDATE_COLLECTION_NAME, "update:collection:name"), /* name */
+KNOWNID(UPDATE_COLLECTION_EVR, "update:collection:evr"), /* epoch:version-release */
+KNOWNID(UPDATE_COLLECTION_ARCH, "update:collection:arch"), /* architecture */
+KNOWNID(UPDATE_COLLECTION_FILENAME, "update:collection:filename"), /* filename (of rpm) */
+KNOWNID(UPDATE_COLLECTION_FLAGS, "update:collection:flags"), /* reboot(1)/restart(2) suggested if this rpm gets updated */
+
+KNOWNID(UPDATE_REFERENCE, "update:reference"), /* external references for the update */
+KNOWNID(UPDATE_REFERENCE_TYPE, "update:reference:type"), /* type, e.g. 'bugzilla' or 'cve' */
+KNOWNID(UPDATE_REFERENCE_HREF, "update:reference:href"), /* href, e.g. 'http://bugzilla...' */
+KNOWNID(UPDATE_REFERENCE_ID, "update:reference:id"), /* id, e.g. bug number */
+KNOWNID(UPDATE_REFERENCE_TITLE, "update:reference:title"), /* title, e.g. "the bla forz scribs on fuggle" */
/* name */
-KNOWNID(PRODUCT_SHORTLABEL, "product:shortlabel"),
-KNOWNID(PRODUCT_DISTPRODUCT, "product:distproduct"),
-KNOWNID(PRODUCT_DISTVERSION, "product:distversion"),
-KNOWNID(PRODUCT_TYPE, "product:type"),
-KNOWNID(PRODUCT_URL, "product:url"),
+KNOWNID(PRODUCT_REFERENCEFILE, "product:referencefile"), /* installed product only */
+KNOWNID(PRODUCT_SHORTLABEL, "product:shortlabel"), /* not in repomd? */
+KNOWNID(PRODUCT_DISTPRODUCT, "product:distproduct"), /* obsolete */
+KNOWNID(PRODUCT_DISTVERSION, "product:distversion"), /* obsolete */
+KNOWNID(PRODUCT_TYPE, "product:type"), /* not in repomd? */
+KNOWNID(PRODUCT_URL, "product:url"),
KNOWNID(PRODUCT_URL_TYPE, "product:url:type"),
-KNOWNID(PRODUCT_FLAGS, "product:flags"),
-KNOWNID(PRODUCT_FLAVOR, "product:flavor"),
-KNOWNID(PRODUCT_REFERENCES, "product:references"),
-KNOWNID(PRODUCT_UPDATEREPOKEY, "product:updaterepokey"),
-KNOWNID(PRODUCT_REGISTER_TARGET, "product:regtarget"),
-KNOWNID(PRODUCT_REGISTER_RELEASE, "product:regrelease"),
+KNOWNID(PRODUCT_FLAGS, "product:flags"), /* code10 repo flags? obsolete? */
+KNOWNID(PRODUCT_PRODUCTLINE, "product:productline"), /* installed product only */
+KNOWNID(PRODUCT_REGISTER_TARGET, "product:regtarget"), /* installed product only */
+KNOWNID(PRODUCT_REGISTER_RELEASE, "product:regrelease"), /* installed product only */
/* argh */
KNOWNID(SUSETAGS_DATADIR, "susetags:datadir"),
+KNOWNID(SUSETAGS_DESCRDIR, "susetags:descrdir"),
+KNOWNID(SUSETAGS_DEFAULTVENDOR, "susetags:defaultvendor"),
+KNOWNID(SUSETAGS_FILE, "susetags:file"),
+KNOWNID(SUSETAGS_FILE_NAME, "susetags:file:name"),
+KNOWNID(SUSETAGS_FILE_TYPE, "susetags:file:type"),
+KNOWNID(SUSETAGS_FILE_CHECKSUM, "susetags:file:checksum"),
+KNOWNID(SUSETAGS_SHARE_NAME, "susetags:share:name"),
+KNOWNID(SUSETAGS_SHARE_EVR, "susetags:share:evr"),
+KNOWNID(SUSETAGS_SHARE_ARCH, "susetags:share:arch"),
+
/* timestamp then the repository was generated */
-KNOWNID(REPOSITORY_TIMESTAMP, "repository:timestamp"),
+KNOWNID(REPOSITORY_TIMESTAMP, "repository:timestamp"),
/* hint when the metadata could be outdated
w/respect to generated timestamp */
-KNOWNID(REPOSITORY_EXPIRE, "repository:expire"),
-/* which things does this repo provides updates for, if it does */
-KNOWNID(REPOSITORY_UPDATES, "repository:updates"),
-/* which products this repository is supposed to be for */
-KNOWNID(REPOSITORY_PRODUCTS, "repository:products"),
+KNOWNID(REPOSITORY_EXPIRE, "repository:expire"),
+
+/* which things does this repo provides updates for, if it does (array) */
+KNOWNID(REPOSITORY_UPDATES, "repository:updates"),
+/* for the repository:update label and cpeid, use the repository:product
+ sub attributes */
+
+/* which products this repository is supposed to be for (array) */
+KNOWNID(REPOSITORY_DISTROS, "repository:distros"),
+KNOWNID(REPOSITORY_PRODUCT_LABEL, "repository:product:label"),
+KNOWNID(REPOSITORY_PRODUCT_CPEID, "repository:product:cpeid"),
+KNOWNID(REPOSITORY_REPOID, "repository:repoid"), /* obsolete? */
+
/* keyword (tags) for this repository */
-KNOWNID(REPOSITORY_KEYWORDS, "repository:keywords"),
+KNOWNID(REPOSITORY_KEYWORDS, "repository:keywords"),
+/* revision of the repository. arbitrary string */
+KNOWNID(REPOSITORY_REVISION, "repository:revision"),
+KNOWNID(REPOSITORY_TOOLVERSION, "repository:toolversion"),
KNOWNID(DELTA_PACKAGE_NAME, "delta:pkgname"),
-KNOWNID(DELTA_PACKAGE_EVR, "delta:pkgevr"),
-KNOWNID(DELTA_PACKAGE_ARCH, "delta:pkgarch"),
+KNOWNID(DELTA_PACKAGE_EVR, "delta:pkgevr"),
+KNOWNID(DELTA_PACKAGE_ARCH, "delta:pkgarch"),
KNOWNID(DELTA_LOCATION_DIR, "delta:locdir"),
KNOWNID(DELTA_LOCATION_NAME, "delta:locname"),
KNOWNID(DELTA_LOCATION_EVR, "delta:locevr"),
KNOWNID(DELTA_LOCATION_SUFFIX, "delta:locsuffix"),
KNOWNID(DELTA_DOWNLOADSIZE, "delta:downloadsize"),
-KNOWNID(DELTA_CHECKSUM, "delta:checksum"),
-KNOWNID(DELTA_BASE_EVR, "delta:baseevr"),
-KNOWNID(DELTA_SEQ_NAME, "delta:seqname"),
-KNOWNID(DELTA_SEQ_EVR, "delta:seqevr"),
-KNOWNID(DELTA_SEQ_NUM, "delta:seqnum"),
+KNOWNID(DELTA_CHECKSUM, "delta:checksum"),
+KNOWNID(DELTA_BASE_EVR, "delta:baseevr"),
+KNOWNID(DELTA_SEQ_NAME, "delta:seqname"),
+KNOWNID(DELTA_SEQ_EVR, "delta:seqevr"),
+KNOWNID(DELTA_SEQ_NUM, "delta:seqnum"),
+
+/* XXX: shouldn't use a real ID */
+KNOWNID(NAMESPACE_PRODUCTBUDDY, "namespace:productbuddy"),
+
+KNOWNID(REPOSITORY_REPOMD, "repository:repomd"),
+KNOWNID(REPOSITORY_REPOMD_TYPE, "repository:repomd:type"),
+KNOWNID(REPOSITORY_REPOMD_LOCATION, "repository:repomd:location"),
+KNOWNID(REPOSITORY_REPOMD_TIMESTAMP, "repository:repomd:timestamp"),
+KNOWNID(REPOSITORY_REPOMD_CHECKSUM, "repository:repomd:checksum"),
+KNOWNID(REPOSITORY_REPOMD_OPENCHECKSUM, "repository:repomd:openchecksum"),
+KNOWNID(REPOSITORY_REPOMD_SIZE, "repository:repomd:size"),
+
+KNOWNID(PUBKEY_KEYID, "pubkey:keyid"),
+KNOWNID(PUBKEY_FINGERPRINT, "pubkey:fingerprint"),
+KNOWNID(PUBKEY_EXPIRES, "pubkey:expires"),
+KNOWNID(PUBKEY_SIGNATURES, "pubkey:signatures"),
+KNOWNID(SOLVABLE_MEDIABASE, "solvable:mediabase"), /* <location xml:base=... > */
+
+KNOWNID(PUBKEY_DATA, "pubkey:data"),
+
+KNOWNID(SIGNATURE_ISSUER, "signature:issuer"),
+KNOWNID(SIGNATURE_TIME, "signature:time"),
+KNOWNID(SIGNATURE_EXPIRES, "signature:expires"),
+KNOWNID(SIGNATURE_DATA, "signature:data"),
KNOWNID(ID_NUM_INTERNAL, 0)