rpmte.c File Reference

Routine(s) to handle an "rpmte" transaction element. More...

`#include "system.h"`
`#include <rpmio.h>`
`#include <rpmiotypes.h>`
`#include <rpmtypes.h>`
`#include <rpmtag.h>`
`#include "rpmds.h"`
`#include "rpmfi.h"`
`#include "rpmte.h"`
`#include "rpmts.h"`
`#include "debug.h"`
Include dependency graph for rpmte.c:

Go to the source code of this file.

## Macros

#define | _RPMTE_INTERNAL

## Functions

void | rpmteCleanDS (rpmte te)
| Destroy dependency set info of transaction element. More...
static void | delTE (rpmte p)
| Destroy transaction element data. More...
static void | addTE (rpmts ts, rpmte p, Header h, fnpyKey key, rpmRelocation relocs)
| Initialize transaction element data from header. More...
static void | rpmteFini (void *_te)
static rpmte | rpmteGetPool (rpmioPool pool)
rpmte | rpmteNew (const rpmts ts, Header h, rpmElementType type, fnpyKey key, rpmRelocation relocs, int dboffset, alKey pkgKey)
unsigned int | rpmteDBInstance (rpmte te)
| Retrieve last instance installed to the database. More...
void | rpmteSetDBInstance (rpmte te, unsigned int instance)
| Set last instance installed to the database. More...
Header | rpmteHeader (rpmte te)
| Retrieve header from transaction element. More...
Header | rpmteSetHeader (rpmte te, Header h)
| Save header into transaction element. More...
rpmElementType | rpmteType (rpmte te)
| Retrieve type of transaction element. More...
const char * | rpmteN (rpmte te)
| Retrieve name string of transaction element. More...
const char * | rpmteE (rpmte te)
| Retrieve epoch string of transaction element. More...
const char * | rpmteV (rpmte te)
| Retrieve version string of transaction element. More...
const char * | rpmteR (rpmte te)
| Retrieve release string of transaction element. More...
const char * | rpmteA (rpmte te)
| Retrieve arch string of transaction element. More...
const char * | rpmteO (rpmte te)
| Retrieve os string of transaction element. More...
int | rpmteIsSource (rpmte te)
| Retrieve isSource attribute of transaction element. More...
rpmuint32_t | rpmteColor (rpmte te)
| Retrieve color bits of transaction element. More...
rpmuint32_t | rpmteSetColor (rpmte te, rpmuint32_t color)
| Set color bits of transaction element. More...
rpmuint32_t | rpmtePkgFileSize (rpmte te)
| Retrieve size in bytes of package file. More...
rpmuint32_t * | rpmteOriginTid (rpmte te)
| Retrieve transaction start time that package was first installed. More...
rpmuint32_t * | rpmteOriginTime (rpmte te)
| Retrieve time that package was first installed. More...
int | rpmteDepth (rpmte te)
| Retrieve dependency tree depth of transaction element. More...
int | rpmteSetDepth (rpmte te, int ndepth)
| Set dependency tree depth of transaction element. More...
int | rpmteBreadth (rpmte te)
| Retrieve dependency tree breadth of transaction element. More...
int | rpmteSetBreadth (rpmte te, int nbreadth)
| Set dependency tree breadth of transaction element. More...
int | rpmteNpreds (rpmte te)
| Retrieve tsort no. More...
int | rpmteSetNpreds (rpmte te, int npreds)
| Set tsort no. More...
int | rpmteTree (rpmte te)
| Retrieve tree index of transaction element. More...
int | rpmteSetTree (rpmte te, int ntree)
| Set tree index of transaction element. More...
rpmte | rpmteParent (rpmte te)
| Retrieve parent transaction element. More...
rpmte | rpmteSetParent (rpmte te, rpmte pte)
| Set parent transaction element. More...
int | rpmteDegree (rpmte te)
| Retrieve number of children of transaction element. More...
int | rpmteSetDegree (rpmte te, int ndegree)
| Set number of children of transaction element. More...
tsortInfo | rpmteTSI (rpmte te)
| Retrieve tsort info for transaction element. More...
void | rpmteFreeTSI (rpmte te)
| Destroy tsort info of transaction element. More...
void | rpmteNewTSI (rpmte te)
| Initialize tsort info of transaction element. More...
alKey | rpmteAddedKey (rpmte te)
alKey | rpmteSetAddedKey (rpmte te, alKey npkgKey)
int | rpmteDBOffset (rpmte te)
| Retrieve rpmdb instance of TR_REMOVED transaction element. More...
const char * | rpmteNEVR (rpmte te)
| Retrieve name-version-release string from transaction element. More...
const char * | rpmteNEVRA (rpmte te)
| Retrieve name-version-release.arch string from transaction element. More...
const char * | rpmtePkgid (rpmte te)
| Retrieve pkgid string from transaction element. More...
const char * | rpmteHdrid (rpmte te)
| Retrieve hdrid string from transaction element. More...
const char * | rpmteSourcerpm (rpmte te)
| Retrieve sourcerpm string from transaction element. More...
FD_t | rpmteFd (rpmte te)
| Retrieve file handle from transaction element. More...
fnpyKey | rpmteKey (rpmte te)
| Retrieve key from transaction element. More...
rpmds | rpmteDS (rpmte te, rpmTag tag)
| Retrieve dependency tag set from transaction element. More...
rpmfi | rpmteFI (rpmte te, rpmTag tag)
| Retrieve file info tag set from transaction element. More...
void | rpmteColorDS (rpmte te, rpmTag tag)
| Calculate transaction element dependency colors/refs from file info. More...
int | rpmteChain (rpmte p, rpmte q, Header oh, const char *msg)
| Chain p <-> q forward/backward transaction element links. More...
int | rpmtsiOc (rpmtsi tsi)
| Return transaction element index. More...
static void | rpmtsiFini (void *_tsi)
static rpmtsi | rpmtsiGetPool (rpmioPool pool)
rpmtsi | XrpmtsiInit (rpmts ts, const char *fn, unsigned int ln)
| Create transaction element iterator. More...
static rpmte | rpmtsiNextElement (rpmtsi tsi)
| Return next transaction element. More...
rpmte | rpmtsiNext (rpmtsi tsi, rpmElementType type)
| Return next transaction element of type. More...

## Variables

int | _rpmte_debug = 0
rpmioPool | _rpmtePool
static int | __mydebug = 0
rpmioPool | _rpmtsiPool

## Detailed Description

Routine(s) to handle an "rpmte" transaction element.

Definition in file rpmte.c.

## Macro Definition Documentation

#define _RPMTE_INTERNAL

Definition at line 16 of file rpmte.c.

## Function Documentation

static void addTE | ( | rpmts | ts,
|  | rpmte | p,
|  | Header | h,
|  | fnpyKey | key,
|  | rpmRelocation | relocs
| ) |  |

static

Initialize transaction element data from header.

Parameters

  ts | transaction set
  p | transaction element
  h | header
  key | (TR_ADDED) package retrieval key (e.g. file name)
  relocs | (TR_ADDED) package file relocations

Definition at line 93 of file rpmte.c.

References _free(), alloca(), _HE_s::c, headerGet(), headerIsEntry(), _HE_s::p, rpmDataType_u::ptr, rpmdsNewPRCO(), rpmfiDupeRelocations(), rpmfiNew(), RPMTAG_ARCH, RPMTAG_BASENAMES, RPMTAG_DISTEPOCH, RPMTAG_EPOCH, RPMTAG_HDRID, RPMTAG_NAME, RPMTAG_NVRA, RPMTAG_OS, RPMTAG_PKGID, RPMTAG_PROVIDENAME, RPMTAG_RELEASE, RPMTAG_REQUIRENAME, RPMTAG_SOURCERPM, RPMTAG_VERSION, rpmteColorDS(), rpmtsSetRelocateElement(), rpmDataType_u::str, _HE_s::tag, rpmDataType_u::ui32p, rpmDataType_u::ui8p, xmalloc(), and xstrdup().

Referenced by rpmteNew().

static void delTE | ( | rpmte | p | ) |

static

Destroy transaction element data.

Parameters

  p | transaction element

Definition at line 38 of file rpmte.c.

References _free(), argvFree(), fdFree(), headerFree(), rpmfiFree(), rpmfiFreeRelocations(), and rpmteCleanDS().

Referenced by rpmteFini().

alKey rpmteAddedKey | ( | rpmte | te | ) |

Definition at line 499 of file rpmte.c.

References RPMAL_NOMATCH.

Referenced by addRelation(), rpmte_AddedKey(), rpmtsAddInstallElement(), rpmtsAddObsoletes(), rpmtsAddUpgrades(), rpmtsOrder(), and rpmtsRun().

static void rpmteFini | ( | void * | _te | ) |

static

Definition at line 206 of file rpmte.c.

References delTE().

Referenced by rpmteGetPool().

static rpmte rpmteGetPool | ( | rpmioPool | pool | ) |

static

Definition at line 217 of file rpmte.c.

References _rpmte_debug, _rpmtePool, rpmioGetPool(), rpmioNewPool(), and rpmteFini().

Referenced by rpmteNew().

rpmte rpmteNew | ( | const rpmts | ts,
|  | Header | h,
|  | rpmElementType | type,
|  | fnpyKey | key,
|  | rpmRelocation | relocs,
|  | int | dboffset,
|  | alKey | pkgKey
| ) |  |

Definition at line 231 of file rpmte.c.

References _free(), addTE(), alloca(), headerGet(), _HE_s::p, rpmDataType_u::ptr, RPMTAG_SIGSIZE, rpmteGetPool(), _HE_s::tag, TR_ADDED, TR_REMOVED, and rpmDataType_u::ui32p.

Referenced by removePackage(), and rpmtsAddInstallElement().

alKey rpmteSetAddedKey | ( | rpmte | te,
|  | alKey | npkgKey
| ) |  |

Definition at line 504 of file rpmte.c.

References RPMAL_NOMATCH.

Referenced by rpmtsAddInstallElement(), and rpmtsOrder().

static void rpmtsiFini | ( | void * | _tsi | ) |

static

Definition at line 723 of file rpmte.c.

References rpmtsFree().

Referenced by rpmtsiGetPool().

static rpmtsi rpmtsiGetPool | ( | rpmioPool | pool | ) |

static

Definition at line 737 of file rpmte.c.

References _rpmte_debug, _rpmtsiPool, rpmioGetPool(), rpmioNewPool(), and rpmtsiFini().

Referenced by XrpmtsiInit().

static rpmte rpmtsiNextElement | ( | rpmtsi | tsi | ) |

static

Return next transaction element.

Parameters

  tsi | transaction element iterator

Returns
  transaction element, NULL on termination

Definition at line 771 of file rpmte.c.

References rpmtsElement(), and rpmtsNElements().

Referenced by rpmtsiNext().

## Variable Documentation

int __mydebug = 0

static

Definition at line 642 of file rpmte.c.

int _rpmte_debug = 0

Definition at line 23 of file rpmte.c.

Referenced by rpmte_Debug(), rpmteGetPool(), and rpmtsiGetPool().

rpmioPool _rpmtePool

Definition at line 215 of file rpmte.c.

Referenced by rpmteGetPool().

rpmioPool _rpmtsiPool

Definition at line 735 of file rpmte.c.

Referenced by rpmtsiGetPool().