Dependency Set API.
(un)Installing packages:

How to compare dependencies. More...

Collaboration diagram for 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 | rpmdsIsWeak (rpmds ds)
| Return whether dependency is weak. More...
int | rpmdsIsReverse (rpmds ds)
| Return whether dependency is reversed. 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...
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

How to compare dependencies.

## 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)

## rpmdsIsReverse()

int rpmdsIsReverse | ( | rpmds | ds | ) |

Return whether dependency is reversed.

Parameters

  ds | dependency set

Returns
  1 if reversed, 0 if not

## rpmdsIsWeak()

int rpmdsIsWeak | ( | rpmds | ds | ) |

Return whether dependency is weak.

Parameters

  ds | dependency set

Returns
  1 if weak, 0 if not

## 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

## 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 unknown 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