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 compatibility. The on-disk solv format does not use the fixed
19 Ids, but instead references the strings, so solv files can still be
20 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 keynames 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 capabilities 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 The basename of the product file in the package.
294 *PRODUCT_SHORTLABEL "product:shortlabel"*::
295 An identification string of the product.
297 *PRODUCT_DISTPRODUCT "product:distproduct"*::
298 Obsolete, do not use. Was a SUSE Code-10 product name.
300 *PRODUCT_DISTVERSION "product:distversion"*::
301 Obsolete, do not use. Was 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 used for product registering.
318 *PRODUCT_REGISTER_TARGET "product:regtarget"*::
319 A target for product registering.
321 *PRODUCT_REGISTER_RELEASE "product:regrelease"*::
322 A release string for product 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 a md5sum instead.
331 *PUBKEY_EXPIRES "pubkey:expires"*::
332 The seconds since the unix epoch when the pubkey expires.
334 *PUBKEY_SUBKEYOF "pubkey:subkeyof"*::
335 The keyid of the master pubkey for subkeys.
337 *PUBKEY_DATA "pubkey:data"*::
338 The MPI data of the pubkey.
340 *SOLVABLE_ISVISIBLE "solvable:isvisible"*::
341 An attribute describing if the package should be listed to the user
342 or not. Used for SUSE patterns.
344 *SOLVABLE_CATEGORY "solvable:category"*::
345 The category of a pattern.
347 *SOLVABLE_INCLUDES "solvable:includes"*::
348 A list of other patterns that this pattern includes.
350 *SOLVABLE_EXTENDS "solvable:extends"*::
351 A list of other patterns that this pattern extends.
353 *SOLVABLE_ICON "solvable:icon"*::
354 The icon name of a pattern.
356 *SOLVABLE_ORDER "solvable:order"*::
357 An ordering clue of a pattern.
359 *SUSETAGS_SHARE_NAME "susetags:share:name"*::
360 Internal attribute to implement susetags shared records. Holds the
361 name of the solvable used for sharing attributes.
363 *SUSETAGS_SHARE_EVR "susetags:share:evr"*::
364 Internal attribute to implement susetags shared records. Holds the
365 version of the solvable used for sharing attributes.
367 *SUSETAGS_SHARE_ARCH "susetags:share:arch"*::
368 Internal attribute to implement susetags shared records. Holds the
369 architecture of the solvable used for sharing attributes.
372 Solvable Architectures
373 ----------------------
374 Predefined architecture values for commonly used architectures.
377 Used for binary packages that contain the package sources.
379 *ARCH_NOSRC "nosrc"*::
380 Used for binary packages that contain some of the package sources,
381 but not all files (because of restrictions).
383 *ARCH_NOARCH "noarch"*::
384 This package can be installed on any architecture. Used for rpm.
387 This package can be installed on any architecture. Used for Debian.
390 This package can be installed on any architecture. Used for Archlinux
396 Namespaces are special modifiers that change the meaning of a dependency.
397 Namespace dependencies are created with the REL_NAMESPACE flag. To make
398 custom namespaces work you have to implement a namespace callback function.
400 The dependency markers partition the dependency array in two parts with
403 *NAMESPACE_MODALIAS "namespace:modalias"*::
404 The dependency is a special modalias dependency that matches installed
407 *NAMESPACE_SPLITPROVIDES "namespace:splitprovides"*::
408 The dependency is a special splitprovides dependency used to implement
409 updates that include a package split. A splitprovides dependency contains
410 a filename and a package name, it is matched if a package with the
411 provided package name is installed that contains the filename.
412 This namespace is implemented in libsolv, so you do not need a callback.
414 *NAMESPACE_LANGUAGE "namespace:language"*::
415 The dependency describes a language. The callback should return true
416 if the language was selected by the user.
418 *NAMESPACE_FILESYSTEM "namespace:filesystem"*::
419 The dependency describes a filesystem. The callback should return true
420 if the filesystem is needed.
422 *NAMESPACE_OTHERPROVIDERS "namespace:otherproviders"*::
423 This is a hack to allow self-conflicting packages. It is not needed
424 with current rpm version, so do not use this namespace.
426 *SOLVABLE_PREREQMARKER "solvable:prereqmarker"*::
427 This marker partitions the normal require dependencies from the
428 prerequires. It is not needed for dependency solving, but it is
429 used by the transaction ordering algorithm when a dependency cycle
430 needs to be broken (non-prereq deps get broken first).
432 *SOLVABLE_FILEMARKER "solvable:filemarker"*::
433 This marker partitions the package provides dependencies from the
434 synthetic file provides dependencies added by pool_addfileprovides().
439 Each attribute data is stored with a type, so that the lookup functions
440 know how to interpret the data. The following types are available:
442 *REPOKEY_TYPE_VOID "repokey:type:void"*::
443 No data is stored with this attribute. Thus you can only test if
444 the attribute exists or not. Useful to store boolean values.
446 *REPOKEY_TYPE_CONSTANT "repokey:type:constant"*::
447 The data is a constant 32bit number. The number is stored in the key
448 area, so using it does not cost extra storage space (but you need the
451 *REPOKEY_TYPE_CONSTANTID "repokey:type:constantid"*::
452 The data is a constant Id. The Id is stored in the key area,
453 so using it does not cost extra storage space (but you need the
456 *REPOKEY_TYPE_ID "repokey:type:id"*::
459 *REPOKEY_TYPE_NUM "repokey:type:num"*::
460 The data is an unsigned 64bit number.
462 *REPOKEY_TYPE_U32 "repokey:type:num32"*::
463 The data is an unsigned 32bit number. Obsolete, do not use.
465 *REPOKEY_TYPE_DIR "repokey:type:dir"*::
466 The data is an Id of a directory.
468 *REPOKEY_TYPE_STR "repokey:type:str"*::
469 The data is a regular string.
471 *REPOKEY_TYPE_BINARY "repokey:type:binary"*::
472 The data is a binary blob.
474 *REPOKEY_TYPE_IDARRAY "repokey:type:idarray"*::
475 The data is an array of non-zero Ids.
477 *REPOKEY_TYPE_REL_IDARRAY "repokey:type:relidarray"*::
478 The data is an array of non-zero Ids ordered so that it needs less
481 *REPOKEY_TYPE_DIRSTRARRAY "repokey:type:dirstrarray"*::
482 The data is a tuple consisting of a directory Id and a basename.
483 Used to store file names.
485 *REPOKEY_TYPE_DIRNUMNUMARRAY "repokey:type:dirnumnumarray"*::
486 The data is a triple consisting of a directory Id and two 32bit
487 unsigned integers. Used to store disk usage information.
489 *REPOKEY_TYPE_MD5 "repokey:type:md5"*::
490 The data is a binary md5sum.
492 *REPOKEY_TYPE_SHA1 "repokey:type:sha1"*::
493 The data is a binary sha1sum.
495 *REPOKEY_TYPE_SHA256 "repokey:type:sha256"*::
496 The data is a binary sha256sum.
498 *REPOKEY_TYPE_FIXARRAY "repokey:type:fixarray"*::
499 The data is an array of structures that have all the same layout
500 (i.e. the same keynames and keytypes in the same order).
502 *REPOKEY_TYPE_FLEXARRAY "repokey:type:flexarray"*::
503 The data is an array of structures that have a different layout.
505 *REPOKEY_TYPE_DELETED "repokey:type:deleted"*::
506 The data does not exist. Used to mark an attribute that was deleted.
511 This attributes contain meta information about the repository.
513 *REPOSITORY_SOLVABLES "repository:solvables"*::
514 This attribute holds the array including all of the solvables. It is
515 only used in the on-disk solv files, internally the solvables are
516 stored in the pool's solvable array for fast access.
518 *REPOSITORY_DELTAINFO "repository:deltainfo"*::
519 This attribute holds the array including all of the delta packages.
521 *REPOSITORY_EXTERNAL "repository:external"*::
522 This attribute holds the array including all of the data to construct
523 stub repodata areas to support on-demand loading of metadata.
525 *REPOSITORY_KEYS "repository:keys"*::
526 This should really be named "repository:external:keys", it contains an
527 array if Ids that consists of (keyname, keytype) pairs that describe the
530 *REPOSITORY_LOCATION "repository:location"*::
531 This is used to provide a file name in the stub.
533 *REPOSITORY_ADDEDFILEPROVIDES "repository:addedfileprovides"*::
534 This attribute holds an array of filename Ids, that tell the library,
535 that all of the Ids were already added to the solvable provides.
537 *REPOSITORY_RPMDBCOOKIE "repository:rpmdbcookie"*::
538 An attribute that stores a sha256sum over the file stats of the
539 Packages database. It's used to detect rebuilds of the database,
540 as in that case the database Ids of every package are newly
543 *REPOSITORY_TIMESTAMP "repository:timestamp"*::
544 The seconds since the unix epoch when the repository was created.
546 *REPOSITORY_EXPIRE "repository:expire"*::
547 The seconds after the timestamp when the repository will expire.
549 *REPOSITORY_UPDATES "repository:updates"*::
550 An array of structures describing what this repository updates.
552 *REPOSITORY_DISTROS "repository:distros"*::
553 Also an array of structures describing what this repository updates.
554 Seems to be the newer name of REPOSITORY_UPDATES.
556 *REPOSITORY_PRODUCT_LABEL "repository:product:label"*::
557 Should really be called "repository:updates:label". What distribution
558 is updated with this repository.
560 *REPOSITORY_PRODUCT_CPEID "repository:product:cpeid"*::
561 The cpeid of the platform updated by this repository. Is both used
562 in REPOSITORY_UPDATES and REPOSITORY_DISTROS to maximize confusion.
564 *REPOSITORY_REPOID "repository:repoid"*::
565 An array of Id strings describing keywords/tags about the repository
568 *REPOSITORY_KEYWORDS "repository:keywords"*::
569 An array of Id strings describing keywords/tags about the content of
572 *REPOSITORY_REVISION "repository:revision"*::
573 An arbitrary string describing the revision of the repository.
575 *REPOSITORY_TOOLVERSION "repository:toolversion"*::
576 Some string describing somewhat the version of libsolv used to create
580 Repository Metadata for Susetags Repos
581 --------------------------------------
582 Attributes describing repository files in a susetags repository.
583 *SUSETAGS_DATADIR "susetags:datadir"*::
584 The directory that contains the packages.
586 *SUSETAGS_DESCRDIR "susetags:descrdir"*::
587 The directory that contains the repository file resources.
589 *SUSETAGS_DEFAULTVENDOR "susetags:defaultvendor"*::
590 The default vendor used when a package does not specify a vendor.
592 *SUSETAGS_FILE "susetags:file"*::
593 An array of file resources of the repository.
595 *SUSETAGS_FILE_NAME "susetags:file:name"*::
596 The filename of the resource.
598 *SUSETAGS_FILE_TYPE "susetags:file:type"*::
599 The type of the resource, e.g. ``META''.
601 *SUSETAGS_FILE_CHECKSUM "susetags:file:checksum"*::
602 The file checksum of the resource.
605 Repository Metadata for RpmMD Repos
606 -----------------------------------
607 *REPOSITORY_REPOMD "repository:repomd"*::
608 An array of file resources of the repository.
610 *REPOSITORY_REPOMD_TYPE "repository:repomd:type"*::
611 The type of the resource, e.g. ``primary''.
613 *REPOSITORY_REPOMD_LOCATION "repository:repomd:location"*::
614 The location (aka filename) of the resource
616 *REPOSITORY_REPOMD_TIMESTAMP "repository:repomd:timestamp"*::
617 The seconds since the unix epoch when the resource was created.
619 *REPOSITORY_REPOMD_CHECKSUM "repository:repomd:checksum"*::
620 The file checksum of the resource.
622 *REPOSITORY_REPOMD_OPENCHECKSUM "repository:repomd:openchecksum"*::
623 The checksum over the uncompressed contents of the resource.
625 *REPOSITORY_REPOMD_SIZE "repository:repomd:size"*::
626 The size of the resource file.
629 Delta Package Attributes
630 ------------------------
631 *DELTA_PACKAGE_NAME "delta:pkgname"*::
632 The target package name for the delta package. Applying the delta
633 will recreate the target package.
635 *DELTA_PACKAGE_EVR "delta:pkgevr"*::
636 The version of the target package.
638 *DELTA_PACKAGE_ARCH "delta:pkgarch"*::
639 The architecture of the target package.
641 *DELTA_LOCATION_DIR "delta:locdir"*::
642 The directory in the repository that contains the delta package.
644 *DELTA_LOCATION_NAME "delta:locname"*::
645 The first part of the file name of the delta package.
647 *DELTA_LOCATION_EVR "delta:locevr"*::
648 The version part of the file name of the delta package.
650 *DELTA_LOCATION_SUFFIX "delta:locsuffix"*::
651 The suffix part of the file name of the delta package.
653 *DELTA_LOCATION_BASE "delta:locbase"*::
654 This attribute can be used to overwrite the repositories base url for
657 *DELTA_DOWNLOADSIZE "delta:downloadsize"*::
658 The size of the delta rpm file.
660 *DELTA_CHECKSUM "delta:checksum"*::
661 The checksum of the delta rpm file.
663 *DELTA_BASE_EVR "delta:baseevr"*::
664 The version of the package the delta was built against.
666 *DELTA_SEQ_NAME "delta:seqname"*::
667 The first part of the delta sequence, the base package name.
669 *DELTA_SEQ_EVR "delta:seqevr"*::
670 The evr part of the delta sequence, the base package evr. Identical
671 to the DELTA_BASE_EVR attribute.
673 *DELTA_SEQ_NUM "delta:seqnum"*::
674 The last part of the delta sequence, the content selection string.
679 Michael Schroeder <mls@suse.de>