rpm: Dependency Set API.

rpm 4.10.0

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

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
rpmds | rpmdsLink (rpmds ds)
| Reference a dependency set instance.
rpmds | rpmdsFree (rpmds ds)
| Destroy a dependency set.
rpmds | rpmdsNew (Header h, rpmTagVal tagN, int flags)
| Create and load a dependency set.
char * | rpmdsNewDNEVR (const char *dspfx, const rpmds ds)
| Return new formatted dependency string.
rpmds | rpmdsThis (Header h, rpmTagVal tagN, rpmsenseFlags Flags)
| Create, load and initialize a dependency for this header.
rpmds | rpmdsSingle (rpmTagVal tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
| Create, load and initialize a dependency set of size 1.
rpmds | rpmdsCurrent (rpmds ds)
| Return a new dependency set of size 1 from the current iteration index.
int | rpmdsCount (const rpmds ds)
| Return dependency set count.
int | rpmdsIx (const rpmds ds)
| Return dependency set index.
int | rpmdsSetIx (rpmds ds, int ix)
| Set dependency set index.
const char * | rpmdsDNEVR (const rpmds ds)
| Return current formatted dependency string.
const char * | rpmdsN (const rpmds ds)
| Return current dependency name.
const char * | rpmdsEVR (const rpmds ds)
| Return current dependency epoch-version-release.
rpmsenseFlags | rpmdsFlags (const rpmds ds)
| Return current dependency flags.
rpmTagVal | rpmdsTagN (const rpmds ds)
| Return current dependency type.
unsigned int | rpmdsInstance (rpmds ds)
| Return dependency header instance, ie whether the dependency comes from an installed header or not.
int | rpmdsNoPromote (const rpmds ds)
| Return current "Don't promote Epoch:" flag.
int | rpmdsSetNoPromote (rpmds ds, int nopromote)
| Set "Don't promote Epoch:" flag.
rpm_color_t | rpmdsColor (const rpmds ds)
| Return current dependency color.
rpm_color_t | rpmdsSetColor (const rpmds ds, rpm_color_t color)
| Return current dependency color.
void | rpmdsNotify (rpmds ds, const char *where, int rc)
| Notify of results of dependency match.
int | rpmdsNext (rpmds ds)
| Return next dependency set iterator index.
rpmds | rpmdsInit (rpmds ds)
| Initialize dependency set iterator.
int | rpmdsFind (rpmds ds, const rpmds ods)
| Find a dependency set element using binary search.
int | rpmdsMerge (rpmds *dsp, rpmds ods)
| Merge a dependency set maintaining (N,EVR,Flags) sorted order.
int | rpmdsSearch (rpmds ds, rpmds ods)
| Search a sorted dependency set for an element that overlaps.
int | rpmdsCompare (const rpmds A, const rpmds B)
| Compare two versioned dependency ranges, looking for overlap.
int | rpmdsAnyMatchesDep (const Header h, const rpmds req, int nopromote)
| Compare package provides dependencies from header with a single dependency.
int | rpmdsMatchesDep (const Header h, int ix, const rpmds req, int nopromote)
| Compare package provides dependencies from header with a single dependency.
int | rpmdsNVRMatchesDep (const Header h, const rpmds req, int nopromote)
| Compare package name-version-release from header with a single dependency.

## Enumeration Type Documentation

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

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

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

Return current dependency color.

Parameters:

  ds | dependency set

Returns:
  current dependency color

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

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

Return dependency set count.

Parameters:

  ds | dependency set

Returns:
  current count

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

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

Return current formatted dependency string.

Parameters:

  ds | dependency set

Returns:
  current dependency DNEVR, NULL on invalid

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

Return current dependency epoch-version-release.

Parameters:

  ds | dependency set

Returns:
  current dependency EVR, NULL on invalid

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)

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

Return current dependency flags.

Parameters:

  ds | dependency set

Returns:
  current dependency flags, 0 on invalid

rpmds rpmdsFree | ( | rpmds | ds | ) |

Destroy a dependency set.

Parameters:

  ds | dependency set

Returns:
  NULL always

rpmds rpmdsInit | ( | rpmds | ds | ) |

Initialize dependency set iterator.

Parameters:

  ds | dependency set

Returns:
  dependency set

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)

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

Return dependency set index.

Parameters:

  ds | dependency set

Returns:
  current index

rpmds rpmdsLink | ( | rpmds | ds | ) |

Reference a dependency set instance.

Parameters:

  ds | dependency set

Returns:
  new dependency set reference

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

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:
  (merged) dependency index

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

Return current dependency name.

Parameters:

  ds | dependency set

Returns:
  current dependency name, NULL on invalid

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

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)

int rpmdsNext | ( | rpmds | ds | ) |

Return next dependency set iterator index.

Parameters:

  ds | dependency set

Returns:
  dependency set iterator index, -1 on termination

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

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

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

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)

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

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

Set dependency set index.

Parameters:

  ds | dependency set
  ix | new index

Returns:
  current index

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

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

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

Return current dependency type.

Parameters:

  ds | dependency set

Returns:
  current dependency type, 0 on invalid

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