1 /* 2 * Copyright (c) 2007, Novell Inc. 3 * 4 * This program is licensed under the BSD license, read LICENSE.BSD 5 * for further information 6 */ 7 8 /* 9 * knownid.h 10 * 11 */ 12 13 /* 14 * Warning: you're free to append new entries, but insert/delete breaks 15 * the ABI! 16 */ 17 18 #undef KNOWNID 19 #ifdef KNOWNID_INITIALIZE 20 # define KNOWNID(a, b) b 21 static const char *initpool_data[] = { 22 #else 23 # define KNOWNID(a, b) a 24 enum solv_knownid { 25 #endif 26 27 KNOWNID(ID_NULL, "<NULL>"), 28 KNOWNID(ID_EMPTY, ""), 29 30 /* The following Ids are stored in the solvable and must 31 * come in one block */ 32 KNOWNID(SOLVABLE_NAME, "solvable:name"), 33 KNOWNID(SOLVABLE_ARCH, "solvable:arch"), 34 KNOWNID(SOLVABLE_EVR, "solvable:evr"), 35 KNOWNID(SOLVABLE_VENDOR, "solvable:vendor"), 36 KNOWNID(SOLVABLE_PROVIDES, "solvable:provides"), 37 KNOWNID(SOLVABLE_OBSOLETES, "solvable:obsoletes"), 38 KNOWNID(SOLVABLE_CONFLICTS, "solvable:conflicts"), 39 KNOWNID(SOLVABLE_REQUIRES, "solvable:requires"), 40 KNOWNID(SOLVABLE_RECOMMENDS, "solvable:recommends"), 41 KNOWNID(SOLVABLE_SUGGESTS, "solvable:suggests"), 42 KNOWNID(SOLVABLE_SUPPLEMENTS, "solvable:supplements"), 43 KNOWNID(SOLVABLE_ENHANCES, "solvable:enhances"), 44 KNOWNID(RPM_RPMDBID, "rpm:dbid"), 45 46 /* normal requires before this, prereqs after this */ 47 KNOWNID(SOLVABLE_PREREQMARKER, "solvable:prereqmarker"), 48 /* normal provides before this, generated file provides after this */ 49 KNOWNID(SOLVABLE_FILEMARKER, "solvable:filemarker"), 50 KNOWNID(NAMESPACE_INSTALLED, "namespace:installed"), 51 KNOWNID(NAMESPACE_MODALIAS, "namespace:modalias"), 52 KNOWNID(NAMESPACE_SPLITPROVIDES, "namespace:splitprovides"), 53 KNOWNID(NAMESPACE_LANGUAGE, "namespace:language"), 54 KNOWNID(NAMESPACE_FILESYSTEM, "namespace:filesystem"), 55 KNOWNID(NAMESPACE_OTHERPROVIDERS, "namespace:otherproviders"), 56 KNOWNID(SYSTEM_SYSTEM, "system:system"), 57 KNOWNID(ARCH_SRC, "src"), 58 KNOWNID(ARCH_NOSRC, "nosrc"), 59 KNOWNID(ARCH_NOARCH, "noarch"), 60 KNOWNID(ARCH_ALL, "all"), 61 KNOWNID(ARCH_ANY, "any"), 62 63 KNOWNID(REPOSITORY_SOLVABLES, "repository:solvables"), 64 KNOWNID(REPOSITORY_DELTAINFO, "repository:deltainfo"), 65 66 /* sub-repository information, they will get loaded on demand */ 67 KNOWNID(REPOSITORY_EXTERNAL, "repository:external"), 68 KNOWNID(REPOSITORY_KEYS, "repository:keys"), 69 KNOWNID(REPOSITORY_LOCATION, "repository:location"), 70 71 /* file provides already added to our solvables */ 72 KNOWNID(REPOSITORY_ADDEDFILEPROVIDES, "repository:addedfileprovides"), 73 /* inode of the rpm database for rpm --rebuilddb detection */ 74 KNOWNID(REPOSITORY_RPMDBCOOKIE, "repository:rpmdbcookie"), 75 76 /* The void type is usable to encode one-valued attributes, they have 77 no associated data. This is useful to encode values which many solvables 78 have in common, and whose overall set is relatively limited. A prime 79 example would be the media number. The actual value is encoded in the 80 SIZE member of the key structure. Be warned: careless use of this 81 leads to combinatoric explosion of number of schemas. */ 82 KNOWNID(REPOKEY_TYPE_VOID, "repokey:type:void"), 83 KNOWNID(REPOKEY_TYPE_CONSTANT, "repokey:type:constant"), 84 KNOWNID(REPOKEY_TYPE_CONSTANTID, "repokey:type:constantid"), 85 KNOWNID(REPOKEY_TYPE_ID, "repokey:type:id"), 86 KNOWNID(REPOKEY_TYPE_NUM, "repokey:type:num"), 87 KNOWNID(REPOKEY_TYPE_U32, "repokey:type:num32"), 88 KNOWNID(REPOKEY_TYPE_DIR, "repokey:type:dir"), 89 KNOWNID(REPOKEY_TYPE_STR, "repokey:type:str"), 90 KNOWNID(REPOKEY_TYPE_BINARY, "repokey:type:binary"), 91 KNOWNID(REPOKEY_TYPE_IDARRAY, "repokey:type:idarray"), 92 KNOWNID(REPOKEY_TYPE_REL_IDARRAY, "repokey:type:relidarray"), 93 KNOWNID(REPOKEY_TYPE_DIRSTRARRAY, "repokey:type:dirstrarray"), 94 KNOWNID(REPOKEY_TYPE_DIRNUMNUMARRAY, "repokey:type:dirnumnumarray"), 95 KNOWNID(REPOKEY_TYPE_MD5, "repokey:type:md5"), 96 KNOWNID(REPOKEY_TYPE_SHA1, "repokey:type:sha1"), 97 KNOWNID(REPOKEY_TYPE_SHA256, "repokey:type:sha256"), 98 KNOWNID(REPOKEY_TYPE_FIXARRAY, "repokey:type:fixarray"), 99 KNOWNID(REPOKEY_TYPE_FLEXARRAY, "repokey:type:flexarray"), 100 KNOWNID(REPOKEY_TYPE_DELETED, "repokey:type:deleted"), 101 102 KNOWNID(SOLVABLE_SUMMARY, "solvable:summary"), 103 KNOWNID(SOLVABLE_DESCRIPTION, "solvable:description"), 104 KNOWNID(SOLVABLE_DISTRIBUTION, "solvable:distribution"), 105 KNOWNID(SOLVABLE_AUTHORS, "solvable:authors"), 106 KNOWNID(SOLVABLE_PACKAGER, "solvable:packager"), 107 KNOWNID(SOLVABLE_GROUP, "solvable:group"), 108 KNOWNID(SOLVABLE_URL, "solvable:url"), 109 KNOWNID(SOLVABLE_KEYWORDS, "solvable:keywords"), 110 KNOWNID(SOLVABLE_LICENSE, "solvable:license"), 111 KNOWNID(SOLVABLE_BUILDTIME, "solvable:buildtime"), 112 KNOWNID(SOLVABLE_BUILDHOST, "solvable:buildhost"), 113 KNOWNID(SOLVABLE_EULA, "solvable:eula"), 114 KNOWNID(SOLVABLE_CPEID, "solvable:cpeid"), 115 KNOWNID(SOLVABLE_MESSAGEINS, "solvable:messageins"), 116 KNOWNID(SOLVABLE_MESSAGEDEL, "solvable:messagedel"), 117 KNOWNID(SOLVABLE_INSTALLSIZE, "solvable:installsize"), 118 KNOWNID(SOLVABLE_DISKUSAGE, "solvable:diskusage"), 119 KNOWNID(SOLVABLE_FILELIST, "solvable:filelist"), 120 KNOWNID(SOLVABLE_INSTALLTIME, "solvable:installtime"), 121 KNOWNID(SOLVABLE_MEDIADIR, "solvable:mediadir"), 122 KNOWNID(SOLVABLE_MEDIAFILE, "solvable:mediafile"), 123 KNOWNID(SOLVABLE_MEDIANR, "solvable:medianr"), 124 KNOWNID(SOLVABLE_DOWNLOADSIZE, "solvable:downloadsize"), 125 KNOWNID(SOLVABLE_SOURCEARCH, "solvable:sourcearch"), 126 KNOWNID(SOLVABLE_SOURCENAME, "solvable:sourcename"), 127 KNOWNID(SOLVABLE_SOURCEEVR, "solvable:sourceevr"), 128 KNOWNID(SOLVABLE_ISVISIBLE, "solvable:isvisible"), 129 KNOWNID(SOLVABLE_TRIGGERS, "solvable:triggers"), 130 KNOWNID(SOLVABLE_CHECKSUM, "solvable:checksum"), 131 KNOWNID(SOLVABLE_PKGID, "solvable:pkgid"), /* pkgid: md5sum over header + payload */ 132 KNOWNID(SOLVABLE_HDRID, "solvable:hdrid"), /* hdrid: sha1sum over header only */ 133 KNOWNID(SOLVABLE_LEADSIGID, "solvable:leadsigid"), /* leadsigid: md5sum over lead + sigheader */ 134 135 KNOWNID(SOLVABLE_PATCHCATEGORY, "solvable:patchcategory"), 136 KNOWNID(SOLVABLE_HEADEREND, "solvable:headerend"), 137 KNOWNID(SOLVABLE_CHANGELOG, "solvable:changelog"), 138 KNOWNID(SOLVABLE_CHANGELOG_AUTHOR, "solvable:changelog:author"), 139 KNOWNID(SOLVABLE_CHANGELOG_TIME, "solvable:changelog:time"), 140 KNOWNID(SOLVABLE_CHANGELOG_TEXT, "solvable:changelog:text"), 141 142 143 /* stuff for solvables of type pattern */ 144 KNOWNID(SOLVABLE_CATEGORY, "solvable:category"), 145 KNOWNID(SOLVABLE_INCLUDES, "solvable:includes"), 146 KNOWNID(SOLVABLE_EXTENDS, "solvable:extends"), 147 KNOWNID(SOLVABLE_ICON, "solvable:icon"), 148 KNOWNID(SOLVABLE_ORDER, "solvable:order"), 149 150 KNOWNID(UPDATE_REBOOT, "update:reboot"), /* reboot suggested (kernel update) */ 151 KNOWNID(UPDATE_RESTART, "update:restart"), /* restart suggested (update stack update) */ 152 KNOWNID(UPDATE_RELOGIN, "update:relogin"), /* relogin suggested */ 153 154 KNOWNID(UPDATE_MESSAGE, "update:message"), /* informative message */ 155 KNOWNID(UPDATE_SEVERITY, "update:severity"), /* "Important", ...*/ 156 KNOWNID(UPDATE_RIGHTS, "update:rights"), /* copyright */ 157 158 /* 'content' of patch, usually list of packages */ 159 KNOWNID(UPDATE_COLLECTION, "update:collection"), /* "name evr arch" */ 160 KNOWNID(UPDATE_COLLECTION_NAME, "update:collection:name"), /* name */ 161 KNOWNID(UPDATE_COLLECTION_EVR, "update:collection:evr"), /* epoch:version-release */ 162 KNOWNID(UPDATE_COLLECTION_ARCH, "update:collection:arch"), /* architecture */ 163 KNOWNID(UPDATE_COLLECTION_FILENAME, "update:collection:filename"), /* filename (of rpm) */ 164 KNOWNID(UPDATE_COLLECTION_FLAGS, "update:collection:flags"), /* reboot(1)/restart(2) suggested if this rpm gets updated */ 165 166 KNOWNID(UPDATE_REFERENCE, "update:reference"), /* external references for the update */ 167 KNOWNID(UPDATE_REFERENCE_TYPE, "update:reference:type"), /* type, e.g. 'bugzilla' or 'cve' */ 168 KNOWNID(UPDATE_REFERENCE_HREF, "update:reference:href"), /* href, e.g. 'http://bugzilla...' */ 169 KNOWNID(UPDATE_REFERENCE_ID, "update:reference:id"), /* id, e.g. bug number */ 170 KNOWNID(UPDATE_REFERENCE_TITLE, "update:reference:title"), /* title, e.g. "the bla forz scribs on fuggle" */ 171 172 /* name */ 173 KNOWNID(PRODUCT_REFERENCEFILE, "product:referencefile"), 174 KNOWNID(PRODUCT_SHORTLABEL, "product:shortlabel"), 175 KNOWNID(PRODUCT_DISTPRODUCT, "product:distproduct"), 176 KNOWNID(PRODUCT_DISTVERSION, "product:distversion"), 177 KNOWNID(PRODUCT_TYPE, "product:type"), 178 KNOWNID(PRODUCT_URL, "product:url"), 179 KNOWNID(PRODUCT_URL_TYPE, "product:url:type"), 180 KNOWNID(PRODUCT_FLAGS, "product:flags"), 181 KNOWNID(PRODUCT_PRODUCTLINE, "product:productline"), 182 KNOWNID(PRODUCT_REGISTER_TARGET, "product:regtarget"), 183 KNOWNID(PRODUCT_REGISTER_RELEASE, "product:regrelease"), 184 185 /* argh */ 186 KNOWNID(SUSETAGS_DATADIR, "susetags:datadir"), 187 KNOWNID(SUSETAGS_DESCRDIR, "susetags:descrdir"), 188 KNOWNID(SUSETAGS_DEFAULTVENDOR, "susetags:defaultvendor"), 189 KNOWNID(SUSETAGS_FILE, "susetags:file"), 190 KNOWNID(SUSETAGS_FILE_NAME, "susetags:file:name"), 191 KNOWNID(SUSETAGS_FILE_TYPE, "susetags:file:type"), 192 KNOWNID(SUSETAGS_FILE_CHECKSUM, "susetags:file:checksum"), 193 KNOWNID(SUSETAGS_SHARE_NAME, "susetags:share:name"), 194 KNOWNID(SUSETAGS_SHARE_EVR, "susetags:share:evr"), 195 KNOWNID(SUSETAGS_SHARE_ARCH, "susetags:share:arch"), 196 197 198 /* timestamp then the repository was generated */ 199 KNOWNID(REPOSITORY_TIMESTAMP, "repository:timestamp"), 200 /* hint when the metadata could be outdated 201 w/respect to generated timestamp */ 202 KNOWNID(REPOSITORY_EXPIRE, "repository:expire"), 203 204 /* which things does this repo provides updates for, if it does (array) */ 205 KNOWNID(REPOSITORY_UPDATES, "repository:updates"), 206 /* for the repository:update label and cpeid, use the repository:product 207 sub attributes */ 208 209 /* which products this repository is supposed to be for (array) */ 210 KNOWNID(REPOSITORY_DISTROS, "repository:distros"), 211 KNOWNID(REPOSITORY_PRODUCT_LABEL, "repository:product:label"), 212 KNOWNID(REPOSITORY_PRODUCT_CPEID, "repository:product:cpeid"), 213 KNOWNID(REPOSITORY_REPOID, "repository:repoid"), /* obsolete? */ 214 215 /* keyword (tags) for this repository */ 216 KNOWNID(REPOSITORY_KEYWORDS, "repository:keywords"), 217 /* revision of the repository. arbitrary string */ 218 KNOWNID(REPOSITORY_REVISION, "repository:revision"), 219 KNOWNID(REPOSITORY_TOOLVERSION, "repository:toolversion"), 220 221 KNOWNID(DELTA_PACKAGE_NAME, "delta:pkgname"), 222 KNOWNID(DELTA_PACKAGE_EVR, "delta:pkgevr"), 223 KNOWNID(DELTA_PACKAGE_ARCH, "delta:pkgarch"), 224 KNOWNID(DELTA_LOCATION_DIR, "delta:locdir"), 225 KNOWNID(DELTA_LOCATION_NAME, "delta:locname"), 226 KNOWNID(DELTA_LOCATION_EVR, "delta:locevr"), 227 KNOWNID(DELTA_LOCATION_SUFFIX, "delta:locsuffix"), 228 KNOWNID(DELTA_DOWNLOADSIZE, "delta:downloadsize"), 229 KNOWNID(DELTA_CHECKSUM, "delta:checksum"), 230 KNOWNID(DELTA_BASE_EVR, "delta:baseevr"), 231 KNOWNID(DELTA_SEQ_NAME, "delta:seqname"), 232 KNOWNID(DELTA_SEQ_EVR, "delta:seqevr"), 233 KNOWNID(DELTA_SEQ_NUM, "delta:seqnum"), 234 235 /* XXX: shouldn't use a real ID */ 236 KNOWNID(NAMESPACE_PRODUCTBUDDY, "namespace:productbuddy"), 237 238 KNOWNID(REPOSITORY_REPOMD, "repository:repomd"), 239 KNOWNID(REPOSITORY_REPOMD_TYPE, "repository:repomd:type"), 240 KNOWNID(REPOSITORY_REPOMD_LOCATION, "repository:repomd:location"), 241 KNOWNID(REPOSITORY_REPOMD_TIMESTAMP, "repository:repomd:timestamp"), 242 KNOWNID(REPOSITORY_REPOMD_CHECKSUM, "repository:repomd:checksum"), 243 KNOWNID(REPOSITORY_REPOMD_OPENCHECKSUM, "repository:repomd:openchecksum"), 244 KNOWNID(REPOSITORY_REPOMD_SIZE, "repository:repomd:size"), 245 246 KNOWNID(PUBKEY_KEYID, "pubkey:keyid"), 247 KNOWNID(PUBKEY_FINGERPRINT, "pubkey:fingerprint"), 248 KNOWNID(PUBKEY_EXPIRES, "pubkey:expires"), 249 KNOWNID(PUBKEY_SIGNATURES, "pubkey:signatures"), 250 251 KNOWNID(ID_NUM_INTERNAL, 0) 252 253 #ifdef KNOWNID_INITIALIZE 254 }; 255 #else 256 }; 257 #endif 258 259 #undef KNOWNID 260 261