xref: /haiku/src/libs/libsolv/solv/knownid.h (revision 909af08f4328301fbdef1ffb41f566c3b5bec0c7)
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