rpm  4.8.1
Macros | Typedefs | Enumerations | Functions | Variables
rpmds.h File Reference

Structure(s) used for dependency tag sets. More...

#include <time.h>
#include <rpm/rpmtypes.h>
#include <rpm/rpmps.h>
Include dependency graph for rpmds.h:

Go to the source code of this file.

Macros

#define RPMSENSE_SENSEMASK   15 /* Mask to get senses, ie serial, */
 
#define RPMSENSE_TRIGGER   (RPMSENSE_TRIGGERPREIN | RPMSENSE_TRIGGERIN | RPMSENSE_TRIGGERUN | RPMSENSE_TRIGGERPOSTUN)
 
#define _ALL_REQUIRES_MASK
 
#define _notpre(_x)   ((_x) & ~RPMSENSE_PREREQ)
 
#define _INSTALL_ONLY_MASK   _notpre(RPMSENSE_SCRIPT_PRE|RPMSENSE_SCRIPT_POST|RPMSENSE_RPMLIB|RPMSENSE_KEYRING)
 
#define _ERASE_ONLY_MASK   _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)
 
#define isLegacyPreReq(_x)   (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)
 
#define isInstallPreReq(_x)   ((_x) & _INSTALL_ONLY_MASK)
 
#define isErasePreReq(_x)   ((_x) & _ERASE_ONLY_MASK)
 

Typedefs

typedef enum rpmsenseFlags_e rpmsenseFlags
 Dependency Attributes. More...
 

Enumerations

enum  rpmsenseFlags_e {
  RPMSENSE_ANY = 0, RPMSENSE_LESS = (1 << 1), RPMSENSE_GREATER = (1 << 2), RPMSENSE_EQUAL = (1 << 3),
  RPMSENSE_PROVIDES = (1 << 4), RPMSENSE_CONFLICTS = (1 << 5), RPMSENSE_PREREQ = (1 << 6), RPMSENSE_OBSOLETES = (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_SCRIPT_PREP = (1 << 20), RPMSENSE_SCRIPT_BUILD = (1 << 21), RPMSENSE_SCRIPT_INSTALL = (1 << 22), RPMSENSE_SCRIPT_CLEAN = (1 << 23),
  RPMSENSE_RPMLIB = (1 << 24), RPMSENSE_TRIGGERPREIN = (1 << 25), RPMSENSE_KEYRING = (1 << 26), RPMSENSE_PATCHES = (1 << 27),
  RPMSENSE_CONFIG = (1 << 28)
}
 Dependency Attributes. More...
 

Functions

rpmds rpmdsUnlink (rpmds ds, const char *msg)
 Unreference a dependency set instance. More...
 
rpmds rpmdsLink (rpmds ds, const char *msg)
 Reference a dependency set instance. More...
 
rpmds rpmdsFree (rpmds ds)
 Destroy a dependency set. More...
 
rpmds rpmdsNew (Header h, rpmTag 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, rpmTag tagN, rpmsenseFlags Flags)
 Create, load and initialize a dependency for this header. More...
 
rpmds rpmdsSingle (rpmTag tagN, const char *N, const char *EVR, rpmsenseFlags Flags)
 Create, load and initialize a dependency set of size 1. 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...
 
const char * rpmdsN (const rpmds ds)
 Return current dependency name. More...
 
const char * rpmdsEVR (const rpmds ds)
 Return current dependency epoch-version-release. More...
 
rpmsenseFlags rpmdsFlags (const rpmds ds)
 Return current dependency flags. More...
 
rpmTag rpmdsTagN (const rpmds ds)
 Return current dependency type. More...
 
time_t rpmdsBT (const rpmds ds)
 Return dependency build time. More...
 
time_t rpmdsSetBT (const rpmds ds, time_t BT)
 Set dependency build time. 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...
 
int32_t rpmdsRefs (const rpmds ds)
 Return current dependency file refs. More...
 
int32_t rpmdsSetRefs (const rpmds ds, int32_t refs)
 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...
 
void rpmdsProblem (rpmps ps, const char *pkgNEVR, const rpmds ds, const fnpyKey *suggestedKeys, int adding)
 Report a Requires: or Conflicts: dependency problem. More...
 
int rpmdsAnyMatchesDep (const Header h, 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...
 
int rpmdsRpmlib (rpmds *dsp, void *tblp)
 Load rpmlib provides into a dependency set. More...
 

Variables

int _rpmds_debug
 
int _rpmds_nopromote
 

Detailed Description

Structure(s) used for dependency tag sets.

Definition in file rpmds.h.

Macro Definition Documentation

◆ _ALL_REQUIRES_MASK

#define _ALL_REQUIRES_MASK
Value:
(\
RPMSENSE_INTERP | \
RPMSENSE_SCRIPT_PRE | \
RPMSENSE_SCRIPT_POST | \
RPMSENSE_SCRIPT_PREUN | \
RPMSENSE_SCRIPT_POSTUN | \
RPMSENSE_SCRIPT_VERIFY | \
RPMSENSE_FIND_REQUIRES | \
RPMSENSE_SCRIPT_PREP | \
RPMSENSE_SCRIPT_BUILD | \
RPMSENSE_SCRIPT_INSTALL | \
RPMSENSE_SCRIPT_CLEAN | \
RPMSENSE_RPMLIB | \
RPMSENSE_KEYRING | \
RPMSENSE_PREREQ)

Definition at line 68 of file rpmds.h.

◆ _ERASE_ONLY_MASK

#define _ERASE_ONLY_MASK   _notpre(RPMSENSE_SCRIPT_PREUN|RPMSENSE_SCRIPT_POSTUN)

Definition at line 87 of file rpmds.h.

◆ _INSTALL_ONLY_MASK

Definition at line 85 of file rpmds.h.

◆ _notpre

#define _notpre (   _x)    ((_x) & ~RPMSENSE_PREREQ)

Definition at line 84 of file rpmds.h.

◆ isErasePreReq

#define isErasePreReq (   _x)    ((_x) & _ERASE_ONLY_MASK)

Definition at line 92 of file rpmds.h.

◆ isInstallPreReq

#define isInstallPreReq (   _x)    ((_x) & _INSTALL_ONLY_MASK)

Definition at line 91 of file rpmds.h.

◆ isLegacyPreReq

#define isLegacyPreReq (   _x)    (((_x) & _ALL_REQUIRES_MASK) == RPMSENSE_PREREQ)

Definition at line 90 of file rpmds.h.

◆ RPMSENSE_SENSEMASK

#define RPMSENSE_SENSEMASK   15 /* Mask to get senses, ie serial, */

Definition at line 62 of file rpmds.h.

◆ RPMSENSE_TRIGGER

Definition at line 65 of file rpmds.h.

Typedef Documentation

◆ rpmsenseFlags

Dependency Attributes.

Enumeration Type Documentation

◆ rpmsenseFlags_e

Dependency Attributes.

Enumerator
RPMSENSE_ANY 
RPMSENSE_LESS 
RPMSENSE_GREATER 
RPMSENSE_EQUAL 
RPMSENSE_PROVIDES 
RPMSENSE_CONFLICTS 
RPMSENSE_PREREQ 
RPMSENSE_OBSOLETES 
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_SCRIPT_PREP 

prep build dependency.

RPMSENSE_SCRIPT_BUILD 

build build dependency.

RPMSENSE_SCRIPT_INSTALL 

install build dependency.

RPMSENSE_SCRIPT_CLEAN 

clean build dependency.

RPMSENSE_RPMLIB 

rpmlib(feature) dependency.

RPMSENSE_TRIGGERPREIN 

triggerprein dependency.

RPMSENSE_KEYRING 
RPMSENSE_PATCHES 
RPMSENSE_CONFIG 

Definition at line 29 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
hheader
reqdependency set
nopromoteDon't promote Epoch: in comparison?
Returns
1 if any dependency overlaps, 0 otherwise

◆ rpmdsBT()

time_t rpmdsBT ( const rpmds  ds)

Return dependency build time.

Parameters
dsdependency set
Returns
dependency build time, 0 on invalid

◆ rpmdsColor()

rpm_color_t rpmdsColor ( const rpmds  ds)

Return current dependency color.

Parameters
dsdependency set
Returns
current dependency color

◆ rpmdsCompare()

int rpmdsCompare ( const rpmds  A,
const rpmds  B 
)

Compare two versioned dependency ranges, looking for overlap.

Parameters
A1st dependency
B2nd dependency
Returns
1 if dependencies overlap, 0 otherwise

◆ rpmdsCount()

int rpmdsCount ( const rpmds  ds)

Return dependency set count.

Parameters
dsdependency set
Returns
current count

◆ rpmdsDNEVR()

const char* rpmdsDNEVR ( const rpmds  ds)

Return current formatted dependency string.

Parameters
dsdependency set
Returns
current dependency DNEVR, NULL on invalid

◆ rpmdsEVR()

const char* rpmdsEVR ( const rpmds  ds)

Return current dependency epoch-version-release.

Parameters
dsdependency 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
dsdependency set to search
odsdependency set element to find.
Returns
dependency index (or -1 if not found)

◆ rpmdsFlags()

rpmsenseFlags rpmdsFlags ( const rpmds  ds)

Return current dependency flags.

Parameters
dsdependency set
Returns
current dependency flags, 0 on invalid

◆ rpmdsFree()

rpmds rpmdsFree ( rpmds  ds)

Destroy a dependency set.

Parameters
dsdependency set
Returns
NULL always

◆ rpmdsInit()

rpmds rpmdsInit ( rpmds  ds)

Initialize dependency set iterator.

Parameters
dsdependency set
Returns
dependency set

◆ rpmdsIx()

int rpmdsIx ( const rpmds  ds)

Return dependency set index.

Parameters
dsdependency set
Returns
current index

◆ rpmdsLink()

rpmds rpmdsLink ( rpmds  ds,
const char *  msg 
)

Reference a dependency set instance.

Parameters
dsdependency set
msg
Returns
new dependency set reference

◆ rpmdsMerge()

int rpmdsMerge ( rpmds dsp,
rpmds  ods 
)

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

Return values
*dsp(merged) dependency set
Parameters
odsdependency set to merge
Returns
(merged) dependency index

◆ rpmdsN()

const char* rpmdsN ( const rpmds  ds)

Return current dependency name.

Parameters
dsdependency set
Returns
current dependency name, NULL on invalid

◆ rpmdsNew()

rpmds rpmdsNew ( Header  h,
rpmTag  tagN,
int  flags 
)

Create and load a dependency set.

Parameters
hheader
tagNtype of dependency
flagsunused
Returns
new dependency set

◆ rpmdsNewDNEVR()

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

Return new formatted dependency string.

Parameters
dspfxformatted dependency string prefix
dsdependency set
Returns
new formatted dependency (malloc'ed)

◆ rpmdsNext()

int rpmdsNext ( rpmds  ds)

Return next dependency set iterator index.

Parameters
dsdependency 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
dsdependency 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
dsdependency set
wherewhere dependency was resolved (or NULL)
rc0 == 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
hheader
reqdependency set
nopromoteDon't promote Epoch: in comparison?
Returns
1 if dependency overlaps, 0 otherwise

◆ rpmdsProblem()

void rpmdsProblem ( rpmps  ps,
const char *  pkgNEVR,
const rpmds  ds,
const fnpyKey suggestedKeys,
int  adding 
)

Report a Requires: or Conflicts: dependency problem.

Parameters
pstransaction set problems
pkgNEVRpackage name/epoch/version/release
dsdependency set
suggestedKeysfilename or python object address
addingdependency problem is from added package set?

◆ rpmdsRefs()

int32_t rpmdsRefs ( const rpmds  ds)

Return current dependency file refs.

Parameters
dsdependency set
Returns
current dependency file refs, -1 on global

◆ rpmdsRpmlib()

int rpmdsRpmlib ( rpmds dsp,
void *  tblp 
)

Load rpmlib provides into a dependency set.

Return values
*dsp(loaded) depedency set
Parameters
tblprpmlib provides table (NULL uses internal table)
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
dsdependency set to search
odsdependency set element to find.
Returns
dependency index (or -1 if not found)

◆ rpmdsSetBT()

time_t rpmdsSetBT ( const rpmds  ds,
time_t  BT 
)

Set dependency build time.

Parameters
dsdependency set
BTbuild time
Returns
dependency build time, 0 on invalid

◆ rpmdsSetColor()

rpm_color_t rpmdsSetColor ( const rpmds  ds,
rpm_color_t  color 
)

Return current dependency color.

Parameters
dsdependency set
colornew dependency color
Returns
previous dependency color

◆ rpmdsSetIx()

int rpmdsSetIx ( rpmds  ds,
int  ix 
)

Set dependency set index.

Parameters
dsdependency set
ixnew index
Returns
current index

◆ rpmdsSetNoPromote()

int rpmdsSetNoPromote ( rpmds  ds,
int  nopromote 
)

Set "Don't promote Epoch:" flag.

Parameters
dsdependency set
nopromoteShould an unspecified Epoch: be treated as Epoch: 0?
Returns
previous "Don't promote Epoch:" flag

◆ rpmdsSetRefs()

int32_t rpmdsSetRefs ( const rpmds  ds,
int32_t  refs 
)

Return current dependency color.

Parameters
dsdependency set
refsnew dependency refs
Returns
previous dependency refs

◆ rpmdsSingle()

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

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

Parameters
tagNtype of dependency
Nname
EVRepoch:version-release
Flagscomparison flags
Returns
new dependency set

◆ rpmdsTagN()

rpmTag rpmdsTagN ( const rpmds  ds)

Return current dependency type.

Parameters
dsdependency set
Returns
current dependency type, 0 on invalid

◆ rpmdsThis()

rpmds rpmdsThis ( Header  h,
rpmTag  tagN,
rpmsenseFlags  Flags 
)

Create, load and initialize a dependency for this header.

Parameters
hheader
tagNtype of dependency
Flagscomparison flags
Returns
new dependency set

◆ rpmdsUnlink()

rpmds rpmdsUnlink ( rpmds  ds,
const char *  msg 
)

Unreference a dependency set instance.

Parameters
dsdependency set
msg
Returns
NULL always

Variable Documentation

◆ _rpmds_debug

int _rpmds_debug

◆ _rpmds_nopromote

int _rpmds_nopromote