rpm: Dependency Set API.

rpm 4.13.0

Enumerations | Functions
Dependency Set API.

## Enumerations
enum | rpmsenseFlags_e { RPMSENSE_ANY = 0, RPMSENSE_LESS = (1 << 1), RPMSENSE_GREATER = (1 << 2), RPMSENSE_EQUAL = (1 << 3), RPMSENSE_POSTTRANS = (1 << 5), RPMSENSE_PREREQ = (1 << 6), RPMSENSE_PRETRANS = (1 << 7), RPMSENSE_INTERP = (1 << 8), RPMSENSE_SCRIPT_PRE = (1 << 9), RPMSENSE_SCRIPT_POST = (1 << 10), RPMSENSE_SCRIPT_PREUN = (1 << 11), RPMSENSE_SCRIPT_POSTUN = (1 << 12), RPMSENSE_SCRIPT_VERIFY = (1 << 13), RPMSENSE_FIND_REQUIRES = (1 << 14), RPMSENSE_FIND_PROVIDES = (1 << 15), RPMSENSE_TRIGGERIN = (1 << 16), RPMSENSE_TRIGGERUN = (1 << 17), RPMSENSE_TRIGGERPOSTUN = (1 << 18), RPMSENSE_MISSINGOK = (1 << 19), RPMSENSE_RPMLIB = (1 << 24), RPMSENSE_TRIGGERPREIN = (1 << 25), RPMSENSE_KEYRING = (1 << 26), RPMSENSE_CONFIG = (1 << 28) }
| Dependency Attributes. More...

## Functions
rpmsenseFlags | rpmSanitizeDSFlags (rpmTagVal tagN, rpmsenseFlags Flags)
| Return only those flags allowed for given type of dependencies. More...
rpmsenseFlags | rpmParseDSFlags (const char *str, size_t len)
| Convert a string to the sense flags. More...
rpmds | rpmdsLink (rpmds ds)
| Reference a dependency set instance. More...
rpmds | rpmdsFree (rpmds ds)
| Destroy a dependency set. More...
rpmds | rpmdsNew (Header h, rpmTagVal tagN, int flags)
| Create and load a dependency set. More...
char * | rpmdsNewDNEVR (const char *dspfx, const rpmds ds)
| Return new formatted dependency string. More...
rpmds | rpmdsThis (Header h, rpmTagVal tagN, rpmsenseFlags Flags)
| Create, load and initialize a dependency for this header. More...
rpmds | rpmdsSingle (rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
| Create, load and initialize a dependency set of size 1. More...
rpmds | rpmdsCurrent (rpmds ds)
| Return a new dependency set of size 1 from the current iteration index. More...
int | rpmdsPutToHeader (rpmds ds, Header h)
| Write content of the dependency set to the header. More...
int | rpmdsCount (const rpmds ds)
| Return dependency set count. More...
int | rpmdsIx (const rpmds ds)
| Return dependency set index. More...
int | rpmdsSetIx (rpmds ds, int ix)
| Set dependency set index. More...
const char * | rpmdsDNEVR (const rpmds ds)
| Return current formatted dependency string. More...
char | rpmdsD (const rpmds ds)
| Return one char indicating the type of the dependency. More...
rpmTagVal | rpmdsDToTagN (char deptype)
| Return matching tagN for one char dependency type description. More...
const char * | rpmdsN (const rpmds ds)
| Return current dependency name. More...
const char * | rpmdsEVR (const rpmds ds)
| Return current dependency epoch-version-release. More...
int | rpmdsTi (const rpmds ds)
| Return current dependency triggerindex. More...
rpmsenseFlags | rpmdsFlags (const rpmds ds)
| Return current dependency flags. More...
rpmTagVal | rpmdsTagN (const rpmds ds)
| Return current dependency type. More...
rpmTagVal | rpmdsTagEVR (const rpmds ds)
| Return current dependency type. More...
rpmTagVal | rpmdsTagF (const rpmds ds)
| Return current dependency type. More...
rpmTagVal | rpmdsTagTi (const rpmds ds)
| Return current dependency type. More...
unsigned int | rpmdsInstance (rpmds ds)
| Return dependency header instance, ie whether the dependency comes from an installed header or not. More...
int | rpmdsNoPromote (const rpmds ds)
| Return current "Don't promote Epoch:" flag. More...
int | rpmdsSetNoPromote (rpmds ds, int nopromote)
| Set "Don't promote Epoch:" flag. More...
rpm_color_t | rpmdsColor (const rpmds ds)
| Return current dependency color. More...
rpm_color_t | rpmdsSetColor (const rpmds ds, rpm_color_t color)
| Return current dependency color. More...
void | rpmdsNotify (rpmds ds, const char *where, int rc)
| Notify of results of dependency match. More...
int | rpmdsNext (rpmds ds)
| Return next dependency set iterator index. More...
rpmds | rpmdsInit (rpmds ds)
| Initialize dependency set iterator. More...
int | rpmdsFind (rpmds ds, const rpmds ods)
| Find a dependency set element using binary search. More...
int | rpmdsMerge (rpmds *dsp, rpmds ods)
| Merge a dependency set maintaining (N,EVR,Flags) sorted order. More...
int | rpmdsSearch (rpmds ds, rpmds ods)
| Search a sorted dependency set for an element that overlaps. More...
int | rpmdsCompare (const rpmds A, const rpmds B)
| Compare two versioned dependency ranges, looking for overlap. More...
int | rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
| Compare package provides dependencies from header with a single dependency. More...
int | rpmdsMatchesDep (const Header h, int ix, const rpmds req, int nopromote)
| Compare package provides dependencies from header with a single dependency. More...
int | rpmdsNVRMatchesDep (const Header h, const rpmds req, int nopromote)
| Compare package name-version-release from header with a single dependency. More...
rpmds | rpmdsNewPool (rpmstrPool pool, Header h, rpmTagVal tagN, int flags)
| Create and load a dependency set. More...
rpmds | rpmdsThisPool (rpmstrPool pool, Header h, rpmTagVal tagN, rpmsenseFlags Flags)
| Create, load and initialize a dependency for this header. More...
rpmds | rpmdsSinglePool (rpmstrPool pool, rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
| Create, load and initialize a dependency set of size 1. More...
rpmds | rpmdsSinglePoolTix (rpmstrPool pool, rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags, int triggerIndex)
| Create, load and initialize a trigger dependency set of size 1. More...

## Detailed Description

## Enumeration Type Documentation

## ◆ rpmsenseFlags_e

enum rpmsenseFlags_e

Dependency Attributes.

Enumerator
RPMSENSE_ANY |
RPMSENSE_LESS |
RPMSENSE_GREATER |
RPMSENSE_EQUAL |
RPMSENSE_POSTTRANS | posttrans dependency
RPMSENSE_PREREQ |
RPMSENSE_PRETRANS | Pre-transaction dependency.
RPMSENSE_INTERP | Interpreter used by scriptlet.
RPMSENSE_SCRIPT_PRE | pre dependency.
RPMSENSE_SCRIPT_POST | post dependency.
RPMSENSE_SCRIPT_PREUN | preun dependency.
RPMSENSE_SCRIPT_POSTUN | postun dependency.
RPMSENSE_SCRIPT_VERIFY | verify dependency.
RPMSENSE_FIND_REQUIRES | find-requires generated dependency.
RPMSENSE_FIND_PROVIDES | find-provides generated dependency.
RPMSENSE_TRIGGERIN | triggerin dependency.
RPMSENSE_TRIGGERUN | triggerun dependency.
RPMSENSE_TRIGGERPOSTUN | triggerpostun dependency.
RPMSENSE_MISSINGOK | suggests/enhances hint.
RPMSENSE_RPMLIB | rpmlib(feature) dependency.
RPMSENSE_TRIGGERPREIN | triggerprein dependency.
RPMSENSE_KEYRING |
RPMSENSE_CONFIG |

Definition at line 25 of file rpmds.h.

## Function Documentation

## ◆ rpmdsAnyMatchesDep()

int rpmdsAnyMatchesDep | ( | const Header | h,
|  | const rpmds | req,
|  | int | nopromote
| ) |  |

Compare package provides dependencies from header with a single dependency.

Parameters

  h | header
  req | dependency set
  nopromote | Don't promote Epoch: in comparison?

Returns
  1 if any dependency overlaps, 0 otherwise

## ◆ rpmdsColor()

rpm_color_t rpmdsColor | ( | const rpmds | ds | ) |

Return current dependency color.

Parameters

  ds | dependency set

Returns
  current dependency color

## ◆ rpmdsCompare()

int rpmdsCompare | ( | const rpmds | A,
|  | const rpmds | B
| ) |  |

Compare two versioned dependency ranges, looking for overlap.

Parameters

  A | 1st dependency
  B | 2nd dependency

Returns
  1 if dependencies overlap, 0 otherwise

## ◆ rpmdsCount()

int rpmdsCount | ( | const rpmds | ds | ) |

Return dependency set count.

Parameters

  ds | dependency set

Returns
  current count

## ◆ rpmdsCurrent()

rpmds rpmdsCurrent | ( | rpmds | ds | ) |

Return a new dependency set of size 1 from the current iteration index.

Parameters

  ds | dependency set

Returns
  new dependency set

## ◆ rpmdsD()

char rpmdsD | ( | const rpmds | ds | ) |

Return one char indicating the type of the dependency.

Parameters

  ds | dependency set

Returns
  character

## ◆ rpmdsDNEVR()

const char* rpmdsDNEVR | ( | const rpmds | ds | ) |

Return current formatted dependency string.

Parameters

  ds | dependency set

Returns
  current dependency DNEVR, NULL on invalid

## ◆ rpmdsDToTagN()

rpmTagVal rpmdsDToTagN | ( | char | deptype | ) |

Return matching tagN for one char dependency type description.

Parameters

  deptype | character

Returns
  type of dependency

## ◆ rpmdsEVR()

const char* rpmdsEVR | ( | const rpmds | ds | ) |

Return current dependency epoch-version-release.

Parameters

  ds | dependency set

Returns
  current dependency EVR, NULL on invalid

## ◆ rpmdsFind()

int rpmdsFind | ( | rpmds | ds,
|  | const rpmds | ods
| ) |  |

Find a dependency set element using binary search.

Parameters

  ds | dependency set to search
  ods | dependency set element to find.

Returns
  dependency index (or -1 if not found)

## ◆ rpmdsFlags()

rpmsenseFlags rpmdsFlags | ( | const rpmds | ds | ) |

Return current dependency flags.

Parameters

  ds | dependency set

Returns
  current dependency flags, 0 on invalid

## ◆ rpmdsFree()

rpmds rpmdsFree | ( | rpmds | ds | ) |

Destroy a dependency set.

Parameters

  ds | dependency set

Returns
  NULL always

## ◆ rpmdsInit()

rpmds rpmdsInit | ( | rpmds | ds | ) |

Initialize dependency set iterator.

Parameters

  ds | dependency set

Returns
  dependency set

## ◆ rpmdsInstance()

unsigned int rpmdsInstance | ( | rpmds | ds | ) |

Return dependency header instance, ie whether the dependency comes from an installed header or not.

Parameters

  ds | dependency set

Returns
  header instance of dependency (0 for not installed)

## ◆ rpmdsIx()

int rpmdsIx | ( | const rpmds | ds | ) |

Return dependency set index.

Parameters

  ds | dependency set

Returns
  current index

## ◆ rpmdsLink()

rpmds rpmdsLink | ( | rpmds | ds | ) |

Reference a dependency set instance.

Parameters

  ds | dependency set

Returns
  new dependency set reference

## ◆ rpmdsMatchesDep()

int rpmdsMatchesDep | ( | const Header | h,
|  | int | ix,
|  | const rpmds | req,
|  | int | nopromote
| ) |  |

Compare package provides dependencies from header with a single dependency.

Parameters

  h | header
  ix | index in header provides
  req | dependency set
  nopromote | Don't promote Epoch: in comparison?

Returns
  1 if any dependency overlaps, 0 otherwise

## ◆ rpmdsMerge()

int rpmdsMerge | ( | rpmds * | dsp,
|  | rpmds | ods
| ) |  |

Merge a dependency set maintaining (N,EVR,Flags) sorted order.

Return values

  *dsp | (merged) dependency set

Parameters

  ods | dependency set to merge

Returns
  number of merged dependencies, -1 on error

## ◆ rpmdsN()

const char* rpmdsN | ( | const rpmds | ds | ) |

Return current dependency name.

Parameters

  ds | dependency set

Returns
  current dependency name, NULL on invalid

## ◆ rpmdsNew()

rpmds rpmdsNew | ( | Header | h,
|  | rpmTagVal | tagN,
|  | int | flags
| ) |  |

Create and load a dependency set.

Parameters

  h | header
  tagN | type of dependency
  flags | unused

Returns
  new dependency set

## ◆ rpmdsNewDNEVR()

char* rpmdsNewDNEVR | ( | const char * | dspfx,
|  | const rpmds | ds
| ) |  |

Return new formatted dependency string.

Parameters

  dspfx | formatted dependency string prefix
  ds | dependency set

Returns
  new formatted dependency (malloc'ed)

## ◆ rpmdsNewPool()

rpmds rpmdsNewPool | ( | rpmstrPool | pool,
|  | Header | h,
|  | rpmTagVal | tagN,
|  | int | flags
| ) |  |

Create and load a dependency set.

Parameters

  pool | shared string pool (or NULL for private pool)
  h | header
  tagN | type of dependency
  flags | unused

Returns
  new dependency set

## ◆ rpmdsNext()

int rpmdsNext | ( | rpmds | ds | ) |

Return next dependency set iterator index.

Parameters

  ds | dependency set

Returns
  dependency set iterator index, -1 on termination

## ◆ rpmdsNoPromote()

int rpmdsNoPromote | ( | const rpmds | ds | ) |

Return current "Don't promote Epoch:" flag.

This flag controls for Epoch: promotion when a dependency set is compared. If the flag is set (for already installed packages), then an unspecified value will be treated as Epoch: 0. Otherwise (for added packages), the Epoch: portion of the comparison is skipped if the value is not specified, i.e. an unspecified Epoch: is assumed to be equal in dependency comparisons.

Parameters

  ds | dependency set

Returns
  current "Don't promote Epoch:" flag

## ◆ rpmdsNotify()

void rpmdsNotify | ( | rpmds | ds,
|  | const char * | where,
|  | int | rc
| ) |  |

Notify of results of dependency match.

Parameters

  ds | dependency set
  where | where dependency was resolved (or NULL)
  rc | 0 == YES, otherwise NO

## ◆ rpmdsNVRMatchesDep()

int rpmdsNVRMatchesDep | ( | const Header | h,
|  | const rpmds | req,
|  | int | nopromote
| ) |  |

Compare package name-version-release from header with a single dependency.

Parameters

  h | header
  req | dependency set
  nopromote | Don't promote Epoch: in comparison?

Returns
  1 if dependency overlaps, 0 otherwise

## ◆ rpmdsPutToHeader()

int rpmdsPutToHeader | ( | rpmds | ds,
|  | Header | h
| ) |  |

Write content of the dependency set to the header.

Parameters

  ds | dependency set
  h | header

Returns
  0 on success

## ◆ rpmdsSearch()

int rpmdsSearch | ( | rpmds | ds,
|  | rpmds | ods
| ) |  |

Search a sorted dependency set for an element that overlaps.

A boolean result is saved (if allocated) and accessible through rpmdsResult(ods) afterwards.

Parameters

  ds | dependency set to search
  ods | dependency set element to find.

Returns
  dependency index (or -1 if not found)

## ◆ rpmdsSetColor()

rpm_color_t rpmdsSetColor | ( | const rpmds | ds,
|  | rpm_color_t | color
| ) |  |

Return current dependency color.

Parameters

  ds | dependency set
  color | new dependency color

Returns
  previous dependency color

## ◆ rpmdsSetIx()

int rpmdsSetIx | ( | rpmds | ds,
|  | int | ix
| ) |  |

Set dependency set index.

Parameters

  ds | dependency set
  ix | new index

Returns
  current index

## ◆ rpmdsSetNoPromote()

int rpmdsSetNoPromote | ( | rpmds | ds,
|  | int | nopromote
| ) |  |

Set "Don't promote Epoch:" flag.

Parameters

  ds | dependency set
  nopromote | Should an unspecified Epoch: be treated as Epoch: 0?

Returns
  previous "Don't promote Epoch:" flag

## ◆ rpmdsSingle()

rpmds rpmdsSingle | ( | rpmTagVal | tagN,
|  | const char * | N,
|  | const char * | EVR,
|  | rpmsenseFlags | Flags
| ) |  |

Create, load and initialize a dependency set of size 1.

Parameters

  tagN | type of dependency
  N | name
  EVR | epoch:version-release
  Flags | comparison flags

Returns
  new dependency set

## ◆ rpmdsSinglePool()

rpmds rpmdsSinglePool | ( | rpmstrPool | pool,
|  | rpmTagVal | tagN,
|  | const char * | N,
|  | const char * | EVR,
|  | rpmsenseFlags | Flags
| ) |  |

Create, load and initialize a dependency set of size 1.

Parameters

  pool | string pool (or NULL for private pool)
  tagN | type of dependency
  N | name
  EVR | epoch:version-release
  Flags | comparison flags

Returns
  new dependency set

## ◆ rpmdsSinglePoolTix()

rpmds rpmdsSinglePoolTix | ( | rpmstrPool | pool,
|  | rpmTagVal | tagN,
|  | const char * | N,
|  | const char * | EVR,
|  | rpmsenseFlags | Flags,
|  | int | triggerIndex
| ) |  |

Create, load and initialize a trigger dependency set of size 1.

Parameters

  pool | string pool (or NULL for private pool)
  tagN | type of dependency
  N | name
  EVR | epoch:version-release
  Flags | comparison flags
  triggerIndex | trigger index

Returns
  new dependency set

## ◆ rpmdsTagEVR()

rpmTagVal rpmdsTagEVR | ( | const rpmds | ds | ) |

Return current dependency type.

Parameters

  ds | dependency set

Returns
  current dependency type version tag, 0 on invalid

## ◆ rpmdsTagF()

rpmTagVal rpmdsTagF | ( | const rpmds | ds | ) |

Return current dependency type.

Parameters

  ds | dependency set

Returns
  current dependency type flags tag, 0 on invalid

## ◆ rpmdsTagN()

rpmTagVal rpmdsTagN | ( | const rpmds | ds | ) |

Return current dependency type.

Parameters

  ds | dependency set

Returns
  current dependency type, 0 on invalid

## ◆ rpmdsTagTi()

rpmTagVal rpmdsTagTi | ( | const rpmds | ds | ) |

Return current dependency type.

Parameters

  ds | dependency set

Returns
  current dependency type trigger index tag, 0 on invalid

## ◆ rpmdsThis()

rpmds rpmdsThis | ( | Header | h,
|  | rpmTagVal | tagN,
|  | rpmsenseFlags | Flags
| ) |  |

Create, load and initialize a dependency for this header.

Parameters

  h | header
  tagN | type of dependency
  Flags | comparison flags

Returns
  new dependency set

## ◆ rpmdsThisPool()

rpmds rpmdsThisPool | ( | rpmstrPool | pool,
|  | Header | h,
|  | rpmTagVal | tagN,
|  | rpmsenseFlags | Flags
| ) |  |

Create, load and initialize a dependency for this header.

Parameters

  pool | string pool (or NULL for private pool)
  h | header
  tagN | type of dependency
  Flags | comparison flags

Returns
  new dependency set

## ◆ rpmdsTi()

int rpmdsTi | ( | const rpmds | ds | ) |

Return current dependency triggerindex.

Parameters

  ds | dependency set

Returns
  current dependency trigger index, 0 on invalid

## ◆ rpmParseDSFlags()

rpmsenseFlags rpmParseDSFlags | ( | const char * | str,
|  | size_t | len
| ) |  |

Convert a string to the sense flags.

Parameters

  str | the string
  len | length of the string

Returns
  flags, zero for unknwon relations

## ◆ rpmSanitizeDSFlags()

rpmsenseFlags rpmSanitizeDSFlags | ( | rpmTagVal | tagN,
|  | rpmsenseFlags | Flags
| ) |  |

Return only those flags allowed for given type of dependencies.

Parameters

  tagN | type of dependency
  Flags | flags

Returns
  flags filtered to allowed bits