9 libsolv-constantids - fixed Ids for often used strings
14 Constant Ids are Ids of strings that are often needed. They are defined
15 to ease programming and reduce the number of pool_str2id calls. The
16 constant Ids are part of the binary ABI of libsolv, a minor version
17 update will only add new constants and not change existing Ids to
18 maintain compatible. The on-disk solv format works does not use the
19 fixed Ids, but instead references the strings, so solv files can still
20 be read when the ABI is broken.
26 The empty string. It will always have Id 1.
28 *SYSTEM_SYSTEM "system:system"*::
29 The name of the always installed "system" solvable.
34 These are Ids for keyname of attributes. They can be used in the
35 lookup and storage functions to select the correct attribute in the
36 solvable. The descriptions below describe the intended semantics
37 of the values stored in the attribute with the keyname.
39 *SOLVABLE_NAME "solvable:name"*::
40 The name of the package.
42 *SOLVABLE_ARCH "solvable:arch"*::
43 The architecture of the package. See the Solvable Architecture section
44 for predefined architecture Id values.
46 *SOLVABLE_EVR "solvable:evr"*::
47 The version of the package. It usually consists of some combination of
48 the Epoch, the Version, and the Release of the solvable.
50 *SOLVABLE_VENDOR "solvable:vendor"*::
51 A vendor string. Usually the company or group that created the binary
54 *SOLVABLE_PROVIDES "solvable:provides"*::
55 Stores an array of dependency Ids that describe the capabilities
56 that the package provides.
58 *SOLVABLE_OBSOLETES "solvable:obsoletes"*::
59 Stores an array of dependency Ids that describe the packages that this
62 *SOLVABLE_CONFLICTS "solvable:conflicts"*::
63 Stores an array of dependency Ids that describe the capabilities that
64 this package conflicts with, i.e. that can't be installed together with
67 *SOLVABLE_REQUIRES "solvable:requires"*::
68 Stores an array of dependency Ids that describe the capabilities that
69 also must be installed when this package is installed.
71 *SOLVABLE_RECOMMENDS "solvable:recommends"*::
72 Stores an array of dependency Ids that describe the capabilities that
73 also should be installed when this package is installed. It's not an
74 error if not all capabilites can be met.
76 *SOLVABLE_SUGGESTS "solvable:suggests"*::
77 Stores an array of dependency Ids that describe the capabilities that
78 also useful to have installed when this package is installed. This is
79 intended to provide a hint to the user about other packages.
81 *SOLVABLE_SUPPLEMENTS "solvable:supplements"*::
82 Stores an array of dependency Ids that define that this package should
83 be installed if one of the capabilities is met. This is like the
84 recommends attribute, but works in the reverse way.
86 *SOLVABLE_ENHANCES "solvable:enhances"*::
87 Stores an array of dependency Ids that define that this package is
88 useful to have installed if one of the capabilities is met. This is like
89 the suggests attribute, but works in the reverse way.
91 *SOLVABLE_SUMMARY "solvable:summary"*::
92 The summary should be a short string without any newlines that describes
95 *SOLVABLE_DESCRIPTION "solvable:description"*::
96 The description should be a more verbose description about what a
97 package does. It may consist of multiple lines.
99 *SOLVABLE_DISTRIBUTION "solvable:distribution"*::
100 The distribution is a short string that describes the OS and OS version
101 this package is built for.
103 *SOLVABLE_AUTHORS "solvable:authors"*::
104 A list of authors of this package. This attribute was used in SUSE
107 *SOLVABLE_PACKAGER "solvable:packager"*::
108 The person who created the binary package, see also the vendor attribute.
110 *SOLVABLE_GROUP "solvable:group"*::
111 The package group that this package belongs to. See also the keywords
114 *SOLVABLE_URL "solvable:url"*::
115 An URL that points to more information about the package.
117 *SOLVABLE_KEYWORDS "solvable:keywords"*::
118 list of keyword string IDs used for tagging this package.
120 *SOLVABLE_LICENSE "solvable:license"*::
121 The license(s) of this package.
123 *SOLVABLE_BUILDTIME "solvable:buildtime"*::
124 The seconds since the unix epoch when the binary package was created.
126 *SOLVABLE_BUILDHOST "solvable:buildhost"*::
127 The name of the host on which the binary package was created.
129 *SOLVABLE_EULA "solvable:eula"*::
130 If this attribute is present the user should be asked to accept the end
131 user license agreement before the package gets installed.
133 *SOLVABLE_CPEID "solvable:cpeid"*::
134 A Common Platform Enumeration string describes the platform this package
135 is intended for. See also the distribution attribute.
137 *SOLVABLE_MESSAGEINS "solvable:messageins"*::
138 A message that should be displayed to the user when the package gets
141 *SOLVABLE_MESSAGEDEL "solvable:messagedel"*::
142 A message that should be displayed to the user when the package gets
145 *SOLVABLE_INSTALLSIZE "solvable:installsize"*::
146 The disk space in bytes needed when installing the package.
148 *SOLVABLE_DISKUSAGE "solvable:diskusage"*::
149 A SUSE extension that stores for each directory the needed amount of
150 disk space in kilobytes and inodes.
152 *SOLVABLE_FILELIST "solvable:filelist"*::
153 A list of files that the package contains.
155 *SOLVABLE_INSTALLTIME "solvable:installtime"*::
156 The seconds since the unix epoch when the binary package was installed
159 *SOLVABLE_MEDIADIR "solvable:mediadir"*::
160 The directory on the repository that contains the package. If this
161 attribute is set to void, the package architecture is used as
164 *SOLVABLE_MEDIAFILE "solvable:mediafile"*::
165 The filename on the repository that contains the package. If this
166 attribute is set to void, the canonical file name of the package is
167 used (i.e. a combination of the name, version, architecture).
169 *SOLVABLE_MEDIANR "solvable:medianr"*::
170 The media number. This is an integer describing on which of a multi-part
171 media set this package is on.
173 *SOLVABLE_MEDIABASE "solvable:mediabase"*::
174 This attribute can be used to overwrite the repositories base url.
176 *SOLVABLE_DOWNLOADSIZE "solvable:downloadsize"*::
177 The size of the binary package in bytes.
179 *SOLVABLE_SOURCEARCH "solvable:sourcearch"*::
180 The architecture of the source package that this package belongs to.
182 *SOLVABLE_SOURCENAME "solvable:sourcename"*::
183 The name of the source package that this package belongs to. If set
184 to void, the package name attribute is used instead.
186 *SOLVABLE_SOURCEEVR "solvable:sourceevr"*::
187 The version of the source package that this package belongs to. If set
188 to void, the package version attribute is used instead.
190 *SOLVABLE_TRIGGERS "solvable:triggers"*::
191 A list of package triggers for this package. Used in the transaction
194 *SOLVABLE_CHECKSUM "solvable:checksum"*::
195 The checksum of the binary package. See the Data Types section for
196 a list of supported algorithms.
198 *SOLVABLE_PKGID "solvable:pkgid"*::
199 A string identifying a package. For rpm packages, this is the md5sum
200 over the package header and the payload.
202 *SOLVABLE_HDRID "solvable:hdrid"*::
203 A string identifying a package. For rpm packages, this is the sha1sum
204 over just the package header.
206 *SOLVABLE_LEADSIGID "solvable:leadsigid"*::
207 A string identifying the signature part of a package. For rpm packages,
208 this is the md5sum from the start of the file up to the package header
209 (i.e. it includes the lead, the signature header, and the padding).
211 *SOLVABLE_HEADEREND "solvable:headerend"*::
212 The offset of the payload in rpm binary packages. You can use this
213 information to download just the header if you want to display
214 information not included in the repository metadata.
216 *SOLVABLE_CHANGELOG "solvable:changelog"*::
217 The array containing all the changelog structures.
219 *SOLVABLE_CHANGELOG_AUTHOR "solvable:changelog:author"*::
220 The author of a changelog entry.
222 *SOLVABLE_CHANGELOG_TIME "solvable:changelog:time"*::
223 The seconds since the unix epoch when the changelog entry was written.
225 *SOLVABLE_CHANGELOG_TEXT "solvable:changelog:text"*::
226 The text of a changelog entry.
229 Special Solvable Attributes
230 ---------------------------
231 *RPM_RPMDBID "rpm:dbid"*::
232 The rpm database id of this (installed) package. Usually a small
235 *SOLVABLE_PATCHCATEGORY "solvable:patchcategory"*::
236 The category field for patch solvables. Should be named
237 ``update:category'' instead.
239 *UPDATE_REBOOT "update:reboot"*::
240 If this attribute is present the system should be rebooted after
241 the update is installed.
243 *UPDATE_RESTART "update:restart"*::
244 If this attribute is present the software manager should be run
245 again after the update is installed.
247 *UPDATE_RELOGIN "update:relogin"*::
248 If this attribute is present the user should log off and on again
249 after the update is installed.
251 *UPDATE_MESSAGE "update:message"*::
252 A message that should be shown to the user to warn him about anything
255 *UPDATE_SEVERITY "update:severity"*::
256 The severity of the update.
258 *UPDATE_RIGHTS "update:rights"*::
259 Any legal or other rights of the update.
261 *UPDATE_COLLECTION "update:collection"*::
262 The array containing the package list of the update.
264 *UPDATE_COLLECTION_NAME "update:collection:name"*::
265 The name of the updated package.
267 *UPDATE_COLLECTION_EVR "update:collection:evr"*::
268 The version of the updated package.
270 *UPDATE_COLLECTION_ARCH "update:collection:arch"*::
271 The architecture of the updated package.
273 *UPDATE_COLLECTION_FILENAME "update:collection:filename"*::
274 The file name of the updated package.
276 *UPDATE_REFERENCE "update:reference"*::
277 The array containing the reference list of the update.
279 *UPDATE_REFERENCE_TYPE "update:reference:type"*::
280 The type of the reference, e.g. bugzilla.
282 *UPDATE_REFERENCE_HREF "update:reference:href"*::
283 The URL of the reference.
285 *UPDATE_REFERENCE_ID "update:reference:id"*::
286 The identification string of the reference, e.g. the bug number.
288 *UPDATE_REFERENCE_TITLE "update:reference:title"*::
289 The title of the reference, e.g. the bug summary.
291 *PRODUCT_REFERENCEFILE "product:referencefile"*::
292 A reference to another product file.
294 *PRODUCT_SHORTLABEL "product:shortlabel"*::
295 A identification string of the product.
297 *PRODUCT_DISTPRODUCT "product:distproduct"*::
298 A SUSE Code-10 product name.
300 *PRODUCT_DISTVERSION "product:distversion"*::
301 A SUSE Code-10 product version.
303 *PRODUCT_TYPE "product:type"*::
304 The type of the product, e.g. ``base''.
306 *PRODUCT_URL "product:url"*::
307 An array of product URLs.
309 *PRODUCT_URL_TYPE "product:url:type"*::
310 An array of product URL types.
312 *PRODUCT_FLAGS "product:flags"*::
313 An array of product flags.
315 *PRODUCT_PRODUCTLINE "product:productline"*::
316 A product line string.
318 *PRODUCT_REGISTER_TARGET "product:regtarget"*::
319 A target for proudct registering.
321 *PRODUCT_REGISTER_RELEASE "product:regrelease"*::
322 A release string for proudct registering.
324 *PUBKEY_KEYID "pubkey:keyid"*::
325 The keyid of a pubkey, consisting of 8 bytes in hex.
327 *PUBKEY_FINGERPRINT "pubkey:fingerprint"*::
328 The fingerprint of a pubkey, usually a sha1sum in hex. Old V3 RSA keys
329 use an md5sum instead.
331 *PUBKEY_EXPIRES "pubkey:expires"*::
332 The seconds since the unix epoch when the pubkey expires.
334 *SOLVABLE_ISVISIBLE "solvable:isvisible"*::
335 An attribute describing if the package should be listed to the user
336 or not. Used for SUSE patterns.
338 *SOLVABLE_CATEGORY "solvable:category"*::
339 The category of a pattern.
341 *SOLVABLE_INCLUDES "solvable:includes"*::
342 A list of other patterns that this pattern includes.
344 *SOLVABLE_EXTENDS "solvable:extends"*::
345 A list of other patterns that this pattern extends.
347 *SOLVABLE_ICON "solvable:icon"*::
348 The icon of a pattern.
350 *SOLVABLE_ORDER "solvable:order"*::
351 An ordering clue of a pattern.
353 *SUSETAGS_SHARE_NAME "susetags:share:name"*::
354 Internal attribute to implement susetags shared records. Holds the
355 name of the solvable used for sharing attributes.
357 *SUSETAGS_SHARE_EVR "susetags:share:evr"*::
358 Internal attribute to implement susetags shared records. Holds the
359 version of the solvable used for sharing attributes.
361 *SUSETAGS_SHARE_ARCH "susetags:share:arch"*::
362 Internal attribute to implement susetags shared records. Holds the
363 architecture of the solvable used for sharing attributes.
366 Solvable Architectures
367 ----------------------
368 Predefined architecture values for commonly used architectures.
371 Used for binary packages that contain the package sources.
373 *ARCH_NOSRC "nosrc"*::
374 Used for binary packages that contain some of the package sources,
375 but not all files (because of restrictions).
377 *ARCH_NOARCH "noarch"*::
378 This package can be installed on any architecture. Used for rpm.
381 This package can be installed on any architecture. Used for Debian.
384 This package can be installed on any architecture. Used for Archlinux
390 Namespaces are special modifiers that change the meaning of a dependency.
391 Namespace dependencies are created with the REL_NAMESPACE flag. To make
392 custom namespaces work you have to implement a namespace callback function.
394 The dependency markers partition the dependency array in two parts with
397 *NAMESPACE_INSTALLED "namespace:installed"*::
398 The dependency only selects installed packages.
400 *NAMESPACE_MODALIAS "namespace:modalias"*::
401 The dependency is a special modalias dependency that matches installed
404 *NAMESPACE_SPLITPROVIDES "namespace:splitprovides"*::
405 The dependency is a special splitprovides dependency used to implement
406 updates that include a package split. A splitprovoide dependency contains
407 a filename and a package name, it is matched if a package with the
408 provided package name is installed that contains the filename.
409 This namespace is implemented in libsolv, so you do not need a callback.
411 *NAMESPACE_LANGUAGE "namespace:language"*::
412 The dependency describes a language. The callback should return true
413 if the language was selected by the user.
415 *NAMESPACE_FILESYSTEM "namespace:filesystem"*::
416 The dependency describes a filesystem. The callback should return true
417 if the filesystem is needed.
419 *NAMESPACE_OTHERPROVIDERS "namespace:otherproviders"*::
420 This is a hack to allow self-conflicting packages. It is not needed
421 with current rpm version, so do not use this namespace.
423 *NAMESPACE_PRODUCTBUDDY "namespace:productbuddy"*::
424 This is a another hack to implement the SUSE product buddy system.
427 *SOLVABLE_PREREQMARKER "solvable:prereqmarker"*::
428 This marker partitions the normal require dependencies from the
429 prerequires. It is not needed for dependency solving, but it is
430 used by the transaction ordering algorithm when a dependency cycle
431 needs to be broken (non-prereq deps get broken first).
433 *SOLVABLE_FILEMARKER "solvable:filemarker"*::
434 This marker partitions the package provides dependencies from the
435 synthetic file provides dependencies added by pool_addfileprovides().
440 Each attribute data is stored with a type, so that the lookup functions
441 know how to interpret the data. The following types are available:
443 *REPOKEY_TYPE_VOID "repokey:type:void"*::
444 No data is stored with this attribute. Thus you can only test if
445 the attribute exists or not. Useful to store boolean values.
447 *REPOKEY_TYPE_CONSTANT "repokey:type:constant"*::
448 The data is a constant 32bit number. The number is stored in the key
449 area, so using it does not cost extra storage space (but you need the
452 *REPOKEY_TYPE_CONSTANTID "repokey:type:constantid"*::
453 The data is a constant Id. The Id is stored in the key area,
454 so using it does not cost extra storage space (but you need the
457 *REPOKEY_TYPE_ID "repokey:type:id"*::
460 *REPOKEY_TYPE_NUM "repokey:type:num"*::
461 The data is an unsigned 64bit number.
463 *REPOKEY_TYPE_U32 "repokey:type:num32"*::
464 The data is an unsigned 32bit number. Obsolete, do not use.
466 *REPOKEY_TYPE_DIR "repokey:type:dir"*::
467 The data is an Id of a directory.
469 *REPOKEY_TYPE_STR "repokey:type:str"*::
470 The data is a regular string.
472 *REPOKEY_TYPE_BINARY "repokey:type:binary"*::
473 The data is a binary blob.
475 *REPOKEY_TYPE_IDARRAY "repokey:type:idarray"*::
476 The data is an array of non-zero Ids.
478 *REPOKEY_TYPE_REL_IDARRAY "repokey:type:relidarray"*::
479 The data is an array of non-zero Ids ordered so that it needs less
482 *REPOKEY_TYPE_DIRSTRARRAY "repokey:type:dirstrarray"*::
483 The data is an tuple consisting of a directory Id and a basename.
484 Used to store file names.
486 *REPOKEY_TYPE_DIRNUMNUMARRAY "repokey:type:dirnumnumarray"*::
487 The data is an triple consisting of a directory Id and two 32bit
488 unsigned integers. Used to store disk usage information.
490 *REPOKEY_TYPE_MD5 "repokey:type:md5"*::
491 The data is a binary md5sum.
493 *REPOKEY_TYPE_SHA1 "repokey:type:sha1"*::
494 The data is a binary sha1sum.
496 *REPOKEY_TYPE_SHA256 "repokey:type:sha256"*::
497 The data is a binary sha256sum.
499 *REPOKEY_TYPE_FIXARRAY "repokey:type:fixarray"*::
500 The data is an array of structures that have all the same layout
501 (i.e. the same keynames and keytypes in the same order).
503 *REPOKEY_TYPE_FLEXARRAY "repokey:type:flexarray"*::
504 The data is an array of structures that have a different layout.
506 *REPOKEY_TYPE_DELETED "repokey:type:deleted"*::
507 The data does not exist. Used to mark an attribute that was deleted.
512 This attributes contain meta information about the repository.
514 *REPOSITORY_SOLVABLES "repository:solvables"*::
515 This attribute holds the array including all of the solvables. It is
516 only used in the on-disk solv files, internally the solvables are
517 stored in the pool's solvable array for fast access.
519 *REPOSITORY_DELTAINFO "repository:deltainfo"*::
520 This attribute holds the array including all of the delta packages.
522 *REPOSITORY_EXTERNAL "repository:external"*::
523 This attribute holds the array including all of the data to construct
524 stub repodata areas to support on-demand loading of metadata.
526 *REPOSITORY_KEYS "repository:keys"*::
527 This should really be named "repository:external:keys", it contains an
528 array if Ids that consists of (keyname, keytype) pairs that describe the
531 *REPOSITORY_LOCATION "repository:location"*::
532 This is used to provide a file name in the stub.
534 *REPOSITORY_ADDEDFILEPROVIDES "repository:addedfileprovides"*::
535 This attribute holds an array of filename Ids, that tell the library,
536 that all of the Ids were already added to the solvable provides.
538 *REPOSITORY_RPMDBCOOKIE "repository:rpmdbcookie"*::
539 An attribute that stores a sha256sum over the file stats of the
540 Packages database. It's used to detect rebuilds of the database,
541 as in that case the database Ids of every package are newly
544 *REPOSITORY_TIMESTAMP "repository:timestamp"*::
545 The seconds since the unix epoch when the repository was created.
547 *REPOSITORY_EXPIRE "repository:expire"*::
548 The seconds after the timestamp when the repository will expire.
550 *REPOSITORY_UPDATES "repository:updates"*::
551 An array of structures describing what this repository updates.
553 *REPOSITORY_DISTROS "repository:distros"*::
554 Also an array of structures describing what this repository updates.
555 Seems to be the newer name of REPOSITORY_UPDATES.
557 *REPOSITORY_PRODUCT_LABEL "repository:product:label"*::
558 Should really be called "repository:updates:label". What distribution
559 is updated with this repository.
561 *REPOSITORY_PRODUCT_CPEID "repository:product:cpeid"*::
562 The cpeid of the platform updated by this repository. Is both used
563 in REPOSITORY_UPDATES and REPOSITORY_DISTROS to maximize confusion.
565 *REPOSITORY_REPOID "repository:repoid"*::
566 An array of Id strings describing keywords/tags about the repository
569 *REPOSITORY_KEYWORDS "repository:keywords"*::
570 An array of Id strings describing keywords/tags about the content of
573 *REPOSITORY_REVISION "repository:revision"*::
574 An arbitrary string describing the revision of the repository.
576 *REPOSITORY_TOOLVERSION "repository:toolversion"*::
577 Some string describing somewhat the version of libsolv used to create
581 Repository Metadata for Susetags Repos
582 --------------------------------------
583 Attributes describing repository files in a susetags repository.
584 *SUSETAGS_DATADIR "susetags:datadir"*::
585 The directory that contains the packages.
587 *SUSETAGS_DESCRDIR "susetags:descrdir"*::
588 The directory that contains the repository file resources.
590 *SUSETAGS_DEFAULTVENDOR "susetags:defaultvendor"*::
591 The default vendor used when a package does not specify a vendor.
593 *SUSETAGS_FILE "susetags:file"*::
594 An array of file resources of the repository.
596 *SUSETAGS_FILE_NAME "susetags:file:name"*::
597 The filename of the resource.
599 *SUSETAGS_FILE_TYPE "susetags:file:type"*::
600 The type of the resource, e.g. ``META''.
602 *SUSETAGS_FILE_CHECKSUM "susetags:file:checksum"*::
603 The file checksum of the resource.
606 Repository Metadata for RpmMD Repos
607 -----------------------------------
608 *REPOSITORY_REPOMD "repository:repomd"*::
609 An array of file resources of the repository.
611 *REPOSITORY_REPOMD_TYPE "repository:repomd:type"*::
612 The type of the resource, e.g. ``primary''.
614 *REPOSITORY_REPOMD_LOCATION "repository:repomd:location"*::
615 The location (aka filename) of the resource
617 *REPOSITORY_REPOMD_TIMESTAMP "repository:repomd:timestamp"*::
618 The seconds since the unix epoch when the resource was created.
620 *REPOSITORY_REPOMD_CHECKSUM "repository:repomd:checksum"*::
621 The file checksum of the resource.
623 *REPOSITORY_REPOMD_OPENCHECKSUM "repository:repomd:openchecksum"*::
624 The checksum over the uncompressed contents of the resource.
626 *REPOSITORY_REPOMD_SIZE "repository:repomd:size"*::
627 The size of the resource file.
630 Delta Package Attributes
631 ------------------------
632 *DELTA_PACKAGE_NAME "delta:pkgname"*::
633 The target package name for the delta package. Applying the delta
634 will recreate the target package.
636 *DELTA_PACKAGE_EVR "delta:pkgevr"*::
637 The version of the target package.
639 *DELTA_PACKAGE_ARCH "delta:pkgarch"*::
640 The architecture of the target package.
642 *DELTA_LOCATION_DIR "delta:locdir"*::
643 The directory in the repository that contains the delta package.
645 *DELTA_LOCATION_NAME "delta:locname"*::
646 The first part of the file name of the delta package.
648 *DELTA_LOCATION_EVR "delta:locevr"*::
649 The version part of the file name of the delta package.
651 *DELTA_LOCATION_SUFFIX "delta:locsuffix"*::
652 The suffix part of the file name of the delta package.
654 *DELTA_DOWNLOADSIZE "delta:downloadsize"*::
655 The size of the delta rpm file.
657 *DELTA_CHECKSUM "delta:checksum"*::
658 The checksum of the delta rpm file.
660 *DELTA_BASE_EVR "delta:baseevr"*::
661 The version of the package the delta was build against.
663 *DELTA_SEQ_NAME "delta:seqname"*::
664 The first part of the delta sequence, the base package name.
666 *DELTA_SEQ_EVR "delta:seqevr"*::
667 The evr part of the delta sequence, the base package evr. Identical
668 to the DELTA_BASE_EVR attribute.
670 *DELTA_SEQ_NUM "delta:seqnum"*::
671 The last part of the delta sequence, the content selection string.
676 Michael Schroeder <mls@suse.de>