Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

RPMTRANS.


Files

file  depends.h
 Structures used for dependency checking.
file  psm.c
 Package state machine to handle a package from a transaction set.
file  psm.h
 Package state machine to handle a package from a transaction set.
file  rpmlib.h
file  rpmvercmp.c
file  transaction.c
file  fprint.h
 Identify a file name path by a unique "finger print".

RPMTS

typedef psm_sPSM_t
typedef transactionFileInfo_sTFI_t
typedef rpmTransactionSet_srpmTransactionSet
typedef enum rpmtransFlags_e rpmtransFlags
enum  rpmtransFlags_e {
  RPMTRANS_FLAG_NONE = 0, RPMTRANS_FLAG_TEST = (1 << 0), RPMTRANS_FLAG_BUILD_PROBS = (1 << 1), RPMTRANS_FLAG_NOSCRIPTS = (1 << 2),
  RPMTRANS_FLAG_JUSTDB = (1 << 3), RPMTRANS_FLAG_NOTRIGGERS = (1 << 4), RPMTRANS_FLAG_NODOCS = (1 << 5), RPMTRANS_FLAG_ALLFILES = (1 << 6),
  RPMTRANS_FLAG_KEEPOBSOLETE = (1 << 7), RPMTRANS_FLAG_MULTILIB = (1 << 8), RPMTRANS_FLAG_DIRSTASH = (1 << 9), RPMTRANS_FLAG_REPACKAGE = (1 << 10),
  RPMTRANS_FLAG_PKGCOMMIT = (1 << 11), RPMTRANS_FLAG_PKGUNDO = (1 << 12), RPMTRANS_FLAG_COMMIT = (1 << 13), RPMTRANS_FLAG_UNDO = (1 << 14),
  RPMTRANS_FLAG_REVERSE = (1 << 15), RPMTRANS_FLAG_NOTRIGGERPREIN = (1 << 16), RPMTRANS_FLAG_NOPRE = (1 << 17), RPMTRANS_FLAG_NOPOST = (1 << 18),
  RPMTRANS_FLAG_NOTRIGGERIN = (1 << 19), RPMTRANS_FLAG_NOTRIGGERUN = (1 << 20), RPMTRANS_FLAG_NOPREUN = (1 << 21), RPMTRANS_FLAG_NOPOSTUN = (1 << 22),
  RPMTRANS_FLAG_NOTRIGGERPOSTUN = (1 << 23), RPMTRANS_FLAG_NOPAYLOAD = (1 << 24), RPMTRANS_FLAG_APPLYONLY = (1 << 25), RPMTRANS_FLAG_CHAINSAW = (1 << 26),
  RPMTRANS_FLAG_NOMD5 = (1 << 27)
}
rpmTransactionSet rpmtransCreateSet (rpmdb rpmdb, const char *rootDir)
int rpmtransAddPackage (rpmTransactionSet ts, Header h, FD_t fd, const void *key, int upgrade, rpmRelocation *relocs)
void rpmtransAvailablePackage (rpmTransactionSet ts, Header h, const void *key)
int rpmtransRemovePackage (rpmTransactionSet ts, int dboffset)
rpmTransactionSet rpmtransFree (rpmTransactionSet ts)
void rpmtransSetScriptFd (rpmTransactionSet ts, FD_t fd)
int rpmtransGetKeys (const rpmTransactionSet ts, const void ***ep, int *nep)
int rpmdepCheck (rpmTransactionSet ts, rpmDependencyConflict *conflicts, int *numConflicts)
int rpmdepOrder (rpmTransactionSet ts)
rpmDependencyConflict rpmdepFreeConflicts (rpmDependencyConflict conflicts, int numConflicts)
int rpmGetRpmlibProvides (const char ***provNames, int **provFlags, const char ***provVersions)
int rpmvercmp (const char *a, const char *b)
int rpmRangesOverlap (const char *AName, const char *AEVR, int AFlags, const char *BName, const char *BEVR, int BFlags)
int rpmCheckRpmlibProvides (const char *keyName, const char *keyEVR, int keyFlags)
int rpmRunTransactions (rpmTransactionSet ts, rpmCallbackFunction notify, rpmCallbackData notifyData, rpmProblemSet okProbs, rpmProblemSet *newProbs, rpmtransFlags transFlags, rpmprobFilterFlags ignoreSet)

Typedef Documentation

typedef struct psm_s* PSM_t
 

Package state machine data.

Definition at line 1232 of file rpmlib.h.

typedef struct rpmTransactionSet_s* rpmTransactionSet
 

The RPM Transaction Set. Transaction sets are inherently unordered! RPM may reorder transaction sets to reduce errors. In general, installs/upgrades are done before strict removals, and prerequisite ordering is done on installs/upgrades.

Definition at line 1244 of file rpmlib.h.

typedef enum rpmtransFlags_e rpmtransFlags
 

Bit(s) to control rpmRunTransactions() operation.

typedef struct transactionFileInfo_s* TFI_t
 

Definition at line 1236 of file rpmlib.h.


Enumeration Type Documentation

enum rpmtransFlags_e
 

Bit(s) to control rpmRunTransactions() operation.

Enumeration values:
RPMTRANS_FLAG_NONE 
RPMTRANS_FLAG_TEST  from --test
RPMTRANS_FLAG_BUILD_PROBS 
Todo:
Document.
RPMTRANS_FLAG_NOSCRIPTS  from --noscripts
RPMTRANS_FLAG_JUSTDB  from --justdb
RPMTRANS_FLAG_NOTRIGGERS  from --notriggers
RPMTRANS_FLAG_NODOCS  from --excludedocs
RPMTRANS_FLAG_ALLFILES  from --allfiles
RPMTRANS_FLAG_KEEPOBSOLETE 
Todo:
Document.
RPMTRANS_FLAG_MULTILIB 
Todo:
Document.
RPMTRANS_FLAG_DIRSTASH  from --dirstash
RPMTRANS_FLAG_REPACKAGE  from --repackage
RPMTRANS_FLAG_PKGCOMMIT 
RPMTRANS_FLAG_PKGUNDO 
RPMTRANS_FLAG_COMMIT 
RPMTRANS_FLAG_UNDO 
RPMTRANS_FLAG_REVERSE 
RPMTRANS_FLAG_NOTRIGGERPREIN  from --notriggerprein
RPMTRANS_FLAG_NOPRE  from --nopre
RPMTRANS_FLAG_NOPOST  from --nopost
RPMTRANS_FLAG_NOTRIGGERIN  from --notriggerin
RPMTRANS_FLAG_NOTRIGGERUN  from --notriggerun
RPMTRANS_FLAG_NOPREUN  from --nopreun
RPMTRANS_FLAG_NOPOSTUN  from --nopostun
RPMTRANS_FLAG_NOTRIGGERPOSTUN  from --notriggerpostun
RPMTRANS_FLAG_NOPAYLOAD 
RPMTRANS_FLAG_APPLYONLY 
RPMTRANS_FLAG_CHAINSAW 
RPMTRANS_FLAG_NOMD5  from --nomd5

Definition at line 1381 of file rpmlib.h.


Function Documentation

int rpmCheckRpmlibProvides const char *  keyName,
const char *  keyEVR,
int  keyFlags
 

Check dependency against internal rpmlib feature provides.

Parameters:
keyName dependency name string
keyEVR dependency [epoch:]version[-release] string
keyFlags dependency logical range qualifiers
Returns:
1 if dependency overlaps, 0 otherwise

Definition at line 57 of file rpmlibprov.c.

References rpmlibProvides_s::featureEVR, rpmlibProvides_s::featureFlags, rpmlibProvides_s::featureName, rpmlibProvides, and rpmRangesOverlap().

Referenced by unsatisfiedDepend().

int rpmdepCheck rpmTransactionSet  ts,
rpmDependencyConflict conflicts,
int *  numConflicts
 

Check that all dependencies can be resolved.

Parameters:
ts transaction set
Return values:
conflicts dependency problems
numConflicts no. of dependency problems
Returns:
0 on success

Definition at line 2256 of file depends.c.

References _cacheDependsRC, _free(), rpmTransactionSet_s::addedPackages, problemsSet_s::alloced, alMakeIndex(), rpmTransactionSet_s::availablePackages, checkDependentConflicts(), checkDependentPackages(), checkPackageDeps(), availablePackage::h, headerNVR(), availableList_s::list, availablePackage::multiLib, availablePackage::name, problemsSet_s::num, rpmTransactionSet_s::numRemovedPackages, problemsSet_s::problems, availablePackage::provides, availablePackage::providesCount, availablePackage::release, rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rpmdb, rpmdbAppendIterator(), rpmdbCloseDBI(), rpmdbFreeIterator(), RPMDBI_DEPENDS, RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), RPMMESS_DEBUG, rpmMessage, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_PROVIDENAME, availableList_s::size, stpcpy(), availablePackage::version, xcalloc(), and xrealloc().

Referenced by checkSpec(), rpmErase(), rpmInstall(), rpmRollback(), rpmtransDepCheck(), and verifyDependencies().

rpmDependencyConflict rpmdepFreeConflicts rpmDependencyConflict  conflicts,
int  numConflicts
 

Destroy dependency conflicts storage.

Parameters:
conflicts dependency problems
numConflicts no. of dependency problems NULL always

Definition at line 936 of file depends.c.

References _free(), rpmDependencyConflict_s::byHeader, rpmDependencyConflict_s::byName, rpmDependencyConflict_s::byRelease, rpmDependencyConflict_s::byVersion, headerFree(), rpmDependencyConflict_s::needsName, rpmDependencyConflict_s::needsVersion, and rpmDependencyConflict_s::suggestedPackages.

Referenced by checkSpec(), rpmErase(), rpmInstall(), rpmRollback(), rpmtransDepCheck(), and verifyDependencies().

int rpmdepOrder rpmTransactionSet  ts  ) 
 

Determine package order in a transaction set according to dependencies.

Order packages, returning error if circular dependencies cannot be eliminated by removing PreReq's from the loop(s). Only dependencies from added or removed packages are used to determine ordering using a topological sort (Knuth vol. 1, p. 262). Use rpmdepCheck() to verify that all dependencies can be resolved.

The final order ends up as installed packages followed by removed packages, with packages removed for upgrades immediately following the new package to be installed.

The operation would be easier if we could sort the addedPackages array in the transaction set, but we store indexes into the array in various places.

Parameters:
ts transaction set
Returns:
0 if packages are successfully ordered, 1 otherwise

Definition at line 1914 of file depends.c.

References _, _free(), transactionElement_s::addedIndex, rpmTransactionSet_s::addedPackages, addQ(), addRelation(), orderListIndex::alIndex, alloca(), alMakeIndex(), rpmTransactionSet_s::availablePackages, availablePackage::degree, transactionElement_s::dependsOnIndex, availablePackage::depth, isErasePreReq, isInstallPreReq, isLegacyPreReq, availableList_s::list, markLoop(), availablePackage::name, availablePackage::npreds, rpmTransactionSet_s::order, rpmTransactionSet_s::orderAlloced, rpmTransactionSet_s::orderCount, orderListIndexCmp(), orderListIndex::orIndex, availablePackage::parent, availablePackage::release, transactionElement_s::removed, availablePackage::requireFlags, availablePackage::requiresCount, RPMMESS_DEBUG, rpmMessage, RPMTRANS_FLAG_CHAINSAW, availableList_s::size, rpmTransactionSet_s::transFlags, availablePackage::tree, availablePackage::tsi, tsortInfo_s::tsi_next, tsortInfo_s::tsi_pkg, tsortInfo_s::tsi_qcnt, tsortInfo_s::tsi_reqx, transactionElement_s::type, transactionElement_s::u, availablePackage::version, xmalloc(), and zapRelation().

Referenced by rpmInstall(), rpmRollback(), and rpmtransOrder().

int rpmGetRpmlibProvides const char ***  provNames,
int **  provFlags,
const char ***  provVersions
 

Return copy of rpmlib internal provides.

Return values:
address of array of rpmlib internal provide names
address of array of rpmlib internal provide flags
address of array of rpmlib internal provide versions
Returns:
no. of entries

Definition at line 73 of file rpmlibprov.c.

References _free(), rpmlibProvides_s::featureEVR, rpmlibProvides_s::featureFlags, rpmlibProvides_s::featureName, rpmlibProvides, and xcalloc().

int rpmRangesOverlap const char *  AName,
const char *  AEVR,
int  AFlags,
const char *  BName,
const char *  BEVR,
int  BFlags
 

Compare two versioned dependency ranges, looking for overlap.

Parameters:
AName 1st dependncy name string
AEVR 1st dependency [epoch:]version[-release] string
AFlags 1st dependency logical range qualifiers
BName 2nd dependncy name string
BEVR 2nd dependency [epoch:]version[-release] string
BFlags 2nd dependency logical range qualifiers
Returns:
1 if dependencies overlap, 0 otherwise

Definition at line 529 of file depends.c.

References _, _free(), parseEVR(), printDepend(), RPMMESS_DEBUG, rpmMessage, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMSENSE_SENSEMASK, rpmvercmp(), and xstrdup().

Referenced by alAllSatisfiesDepend(), headerMatchesDepFlags(), rangeMatchesDepFlags(), and rpmCheckRpmlibProvides().

int rpmRunTransactions rpmTransactionSet  ts,
rpmCallbackFunction  notify,
rpmCallbackData  notifyData,
rpmProblemSet  okProbs,
rpmProblemSet newProbs,
rpmtransFlags  transFlags,
rpmprobFilterFlags  ignoreSet
 

Process all packages in transaction set.

Parameters:
ts transaction set
notify progress callback
notifyData progress callback private data
okProbs previously known problems (or NULL)
Return values:
newProbs address to return unfiltered problems (or NULL)
Parameters:
transFlags bits to control rpmRunTransactions()
ignoreSet bits to filter problem types
Returns:
0 on success, -1 on error, >0 with newProbs set

Definition at line 1516 of file transaction.c.

References _free(), _noTransScripts, _noTransTriggers, transactionFileInfo_s::actions, transactionElement_s::addedIndex, rpmTransactionSet_s::addedPackages, adj_fs_blocks, transactionFileInfo_s::ap, archOkay(), diskspaceInfo::bavail, diskspaceInfo::bneeded, transactionFileInfo_s::bnl, diskspaceInfo::bsize, rpmTransactionSet_s::chrootDone, rpmTransactionSet_s::currDir, currentDirectory(), dbiFreeIndexSet(), dbiIndexRecordFileNumber(), dbiIndexRecordOffset(), dbiIndexSetCount(), transactionElement_s::dboffset, transactionElement_s::dependsOnIndex, diskspaceInfo::dev, rpmTransactionSet_s::di, transactionFileInfo_s::dil, transactionFileInfo_s::dnl, ensureOlder(), transactionFileInfo_s::fc, availablePackage::fd, availablePackage::filesCount, rpmTransactionSet_s::filesystemCount, rpmTransactionSet_s::filesystems, rpmTransactionSet_s::flEntries, rpmTransactionSet_s::flList, fpCacheCreate(), fpCacheFree(), fpEqual(), fpHashFunction(), fpLookupList(), transactionFileInfo_s::fps, freeFl(), availablePackage::h, transactionFileInfo_s::h, handleInstInstalledFiles(), handleOverlappedFiles(), handleRmvdInstalledFiles(), headerFree(), headerGetEntry(), headerLink(), htAddEntry(), htCreate(), htFree(), diskspaceInfo::iavail, rpmTransactionSet_s::id, rpmTransactionSet_s::ignoreSet, diskspaceInfo::ineeded, sharedFileInfo::isRemoved, availablePackage::key, availableList_s::list, loadFi(), transactionFileInfo_s::magic, availablePackage::multiLib, availablePackage::name, rpmTransactionSet_s::notify, NOTIFY, rpmTransactionSet_s::notifyData, rpmProblemSet_s::numProblems, rpmTransactionSet_s::numRemovedPackages, rpmTransactionSet_s::order, rpmTransactionSet_s::orderCount, osOkay(), sharedFileInfo::otherFileNum, sharedFileInfo::otherPkg, sharedFileInfo::pkgFileNum, rpmTransactionSet_s::probs, psAppend(), psCreate(), PSM_PKGERASE, PSM_PKGINSTALL, PSM_PKGSAVE, psmStage(), psTrim(), transactionFileInfo_s::record, availablePackage::release, relocateFileList(), transactionElement_s::removed, rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rootDir, RPMCALLBACK_INST_CLOSE_FILE, RPMCALLBACK_INST_OPEN_FILE, RPMCALLBACK_TRANS_PROGRESS, RPMCALLBACK_TRANS_START, RPMCALLBACK_TRANS_STOP, rpmTransactionSet_s::rpmdb, rpmdbAppendIterator(), rpmdbFindFpList(), rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), rpmdbSetIteratorRE(), rpmdbSync(), rpmGetFilesystemList(), RPMMIRE_DEFAULT, RPMPROB_BADARCH, RPMPROB_BADOS, RPMPROB_DISKNODES, RPMPROB_DISKSPACE, RPMPROB_FILTER_DISKSPACE, RPMPROB_FILTER_IGNOREARCH, RPMPROB_FILTER_IGNOREOS, RPMPROB_FILTER_OLDPACKAGE, RPMPROB_FILTER_REPLACENEWFILES, RPMPROB_FILTER_REPLACEOLDFILES, RPMPROB_FILTER_REPLACEPKG, RPMPROB_PKG_INSTALLED, RPMRC_BADSIZE, RPMRC_OK, rpmReadPackageHeader(), RPMTAG_BASENAMES, RPMTAG_NAME, RPMTAG_RELEASE, RPMTAG_VERSION, RPMTRANS_FLAG_BUILD_PROBS, RPMTRANS_FLAG_DIRSTASH, RPMTRANS_FLAG_JUSTDB, RPMTRANS_FLAG_MULTILIB, RPMTRANS_FLAG_NOSCRIPTS, RPMTRANS_FLAG_NOTRIGGERS, RPMTRANS_FLAG_REPACKAGE, sharedCmp(), availableList_s::size, skipFiles(), TFIMAGIC, rpmTransactionSet_s::transFlags, tsFreeIterator(), tsGetAlp(), tsGetOc(), tsInitIterator(), tsNextIterator(), transactionFileInfo_s::type, transactionElement_s::type, transactionElement_s::u, availablePackage::version, xcalloc(), XFA_SKIPPING, and xmalloc().

Referenced by rpmErase(), rpmInstall(), rpmRollback(), and rpmtransRun().

int rpmtransAddPackage rpmTransactionSet  ts,
Header  h,
FD_t  fd,
const void *  key,
int  upgrade,
rpmRelocation relocs
 

Add package to be installed to unordered transaction set.

If fd is NULL, the callback specified in rpmtransCreateSet() is used to open and close the file descriptor. If Header is NULL, the fd is always used, otherwise fd is only needed (and only opened) for actual package installation.

Parameters:
ts transaction set
h package header
fd package file handle
key package private data
upgrade is package being upgraded?
relocs package file relocations
Returns:
0 on success, 1 on I/O error, 2 needs capabilities

Definition at line 797 of file depends.c.

References transactionElement_s::addedIndex, rpmTransactionSet_s::addedPackages, alAddPackage(), rpmTransactionSet_s::delta, headerIsEntry(), headerMatchesDepFlags(), headerNVR(), availableList_s::list, availablePackage::multiLib, rpmTransactionSet_s::numRemovedPackages, rpmTransactionSet_s::order, rpmTransactionSet_s::orderAlloced, rpmTransactionSet_s::orderCount, rpmTransactionSet_s::removedPackages, removePackage(), rpmTransactionSet_s::rpmdb, rpmdbFreeIterator(), rpmdbGetIteratorOffset(), rpmdbInitIterator(), rpmdbNextIterator(), rpmdbPruneIterator(), RPMTAG_MULTILIBS, RPMTAG_NAME, RPMTAG_OBSOLETEFLAGS, RPMTAG_OBSOLETENAME, RPMTAG_OBSOLETEVERSION, RPMTAG_SOURCEPACKAGE, rpmVersionCompare(), transactionElement_s::type, transactionElement_s::u, and xrealloc().

Referenced by checkSpec(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmtransAdd(), and verifyDependencies().

void rpmtransAvailablePackage rpmTransactionSet  ts,
Header  h,
const void *  key
 

Add package to universe of possible packages to install in transaction set.

Parameters:
ts transaction set
h header
key package private data

Definition at line 906 of file depends.c.

References alAddPackage(), and rpmTransactionSet_s::availablePackages.

Referenced by rpmtransAdd().

rpmTransactionSet rpmtransCreateSet rpmdb  rpmdb,
const char *  rootDir
 

Create an empty transaction set.

Parameters:
rpmdb rpm database (may be NULL if database is not accessed)
rootdir path to top of install tree
Returns:
transaction set

Definition at line 692 of file depends.c.

References rpmTransactionSet_s::addedPackages, alCreate(), alloca(), rpmTransactionSet_s::allocedRemovedPackages, rpmTransactionSet_s::availablePackages, rpmTransactionSet_s::chrootDone, rpmTransactionSet_s::currDir, availableList_s::delta, rpmTransactionSet_s::delta, rpmTransactionSet_s::di, rpmTransactionSet_s::filesystemCount, rpmTransactionSet_s::filesystems, rpmTransactionSet_s::id, rpmTransactionSet_s::numRemovedPackages, rpmTransactionSet_s::order, rpmTransactionSet_s::orderAlloced, rpmTransactionSet_s::orderCount, rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rootDir, rpmTransactionSet_s::rpmdb, rpmTransactionSet_s::scriptFd, stpcpy(), xcalloc(), and xstrdup().

Referenced by checkSpec(), cpio_doio(), rpmErase(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmtransCreate(), rpmVerifyScript(), and verifyDependencies().

rpmTransactionSet rpmtransFree rpmTransactionSet  ts  ) 
 

Destroy transaction set.

Parameters:
ts transaction set
Returns:
NULL always

Definition at line 917 of file depends.c.

References _free(), rpmTransactionSet_s::addedPackages, alFree(), rpmTransactionSet_s::availablePackages, rpmTransactionSet_s::currDir, rpmTransactionSet_s::di, fdFree, rpmTransactionSet_s::order, rpmTransactionSet_s::removedPackages, rpmTransactionSet_s::rootDir, and rpmTransactionSet_s::scriptFd.

Referenced by checkSpec(), cpio_doio(), rpmErase(), rpmInstall(), rpmInstallSourcePackage(), rpmRollback(), rpmtransDealloc(), rpmVerifyScript(), and verifyDependencies().

int rpmtransGetKeys const rpmTransactionSet  ts,
const void ***  ep,
int *  nep
 

Retrieve keys from ordered transaction set.

Todo:
Removed packages have no keys, returned as interleaved NULL pointers.
Parameters:
ts transaction set
Return values:
ep address of returned element array pointer (or NULL)
nep address of no. of returned elements (or NULL)
Returns:
0 always

Definition at line 92 of file transaction.c.

References transactionElement_s::addedIndex, rpmTransactionSet_s::addedPackages, availablePackage::key, availableList_s::list, rpmTransactionSet_s::order, rpmTransactionSet_s::orderCount, transactionElement_s::type, transactionElement_s::u, and xmalloc().

Referenced by py_rpmtransGetKeys().

int rpmtransRemovePackage rpmTransactionSet  ts,
int  dboffset
 

Add package to be removed to unordered transaction set.

Parameters:
ts transaction set
dboffset rpm database instance
Returns:
0 on success

Definition at line 912 of file depends.c.

References removePackage().

Referenced by rpmErase(), rpmRollback(), and rpmtransRemove().

void rpmtransSetScriptFd rpmTransactionSet  ts,
FD_t  fd
 

Save file handle to be used as stderr when running package scripts.

Parameters:
ts transaction set
fd file handle

Definition at line 87 of file transaction.c.

References fdLink, and rpmTransactionSet_s::scriptFd.

Referenced by rpmtransSetAttr().

int rpmvercmp const char *  a,
const char *  b
 

Segmented string compare for version and/or release.

Parameters:
a 1st string
b 2nd string
Returns:
+1 if a is "newer", 0 if equal, -1 if b is "newer"

Definition at line 15 of file rpmvercmp.c.

Referenced by labelCompare(), rpmRangesOverlap(), and rpmVersionCompare().


Generated on Tue Oct 18 05:42:02 2005 for rpm by  doxygen 1.4.1