16 Binary Package Tracking

Official products and their updates are often claimed to be supported. Multiple parties, like release managers, maintenance engineers, QA and support need to be able to check which exact versions of a package got released. OBS server can track these binaries and offers a database to search them.

16.1 Which binaries get tracked?

All binaries which get released in to projects providing kind=maintenance_release get tracked. In addition to that the OBS admininistrator may configure addition projects via the packtrack setting in BSConfig.pm

16.2 What data is tracked?

In short the informations to identify a binary, it's building place and timestamps are tracked. In addition to that also information about possible successor versions or if the binary got removed meanwhile. If products do reference the repositories the search interface does offer also a listing of products which are supposed to use it. Either as part of the product media itself or in one of it's update repositories.

16.2.1 Binary Identifier

A binary gets identified by the following informations. This is basically the components of the storage path and filename of the binary.

  • repository: where is the binary hosted
  • name: the name of the binary file
  • epoch: the epoch version (optional, usually not used)
  • version: the version
  • release: the release number
  • architecture: the architecture
  • medium: the medium name, this exists only for product builds

16.2.2 Binary informations

Additional informations of a binary are informations which get updated when a binary gets added or replaced.

  • operation, got the binary added, removed or modified
  • publish time, aka the time when the repository gets published by OBS. This is not the same time as when the release action gots invoked.
  • build time
  • obsolete time, exists only when a binary gets removed or replaced
  • supportstatus, meta information about the level of support which is granted for the binary at the time of releasing it.
  • updateinfo id from rpm-md repository
  • maintainer of the binary who has prepared this update
  • disturl, the exact identifier to the source and build repository

16.2.3 Product informations

Additional informations about products referencing to this binary.

  • updatefor: the listed products do reference the repository as update channel.
  • product: exists when the binary was part of a product medium

16.3 osc search interface

not yet implemented

16.4 webui search interface

not yet implemented

16.5 API search interface

The search is provided via the generic xpath search interface. It is provided below the pathes:

  • /search/released/binary/id : short form, just listing the matched binary identifiers
  • /search/released/binary : long form, provides all other tracked informations as described above

16.5.1 Examples

To find the latest version of given glibc-devel binary in all products. Skipping old and revoked versions:

/search/released/binary?match=@name"=glibc-devel"+and+obsolete[not(@time)]

To find a specific version by given updateinfo id. This ID is visible in the update tools to the end user:

/search/released/binary?match=updateinfo/@id="OBS-2014-42"

To find a specific version by given disturl. Used to find all affected products by a certain build of a binary:

/search/released/binary?match=disturl="obs://..."

When got the specific package version got released the first time:

/search/released/binary?match=@name='kernel-default'+and+@version='1.0'+and+@release='1'+and+@arch='i586'+and+supportstatus='l3'+and+operation='added'

All binaries in a given repository:

/search/released/binary?match=repository/[@project='BaseDistro3'+and+@name='BaseDistro3_repo']

All binaries part of a product release:

/search/released/binary?match=product/[@project='openSUSE'+and+@name='openSUSE'+and+(@arch='x86_64'+or+not(@arch))]

All binaries part of the update repositories of a product:

/search/released/binary?match=updatefor/[@project='openSUSE'+and+@product='openSUSE'+and+(@arch='x86_64'+or+not(@arch))]

All binaries part of the update repositories of a versioned product:

/search/released/binary?match=updatefor/[@project='openSUSE'+and+@product='openSUSE'+and+@version='13.2']

All binaries part of the update repositories of a versioned product (enterprise style):

/search/released/binary?match=updatefor/[@project='openSUSE'+and+@product='openSUSE'+and+@baseversion='12'+and+@patchlevel='1']

Print this page