python/upgrade.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <glob.h>
#include <dirent.h>
#include <rpmlib.h>
#include "hash.h"
#include "upgrade.h"

Go to the source code of this file.

Defines

#define MAXPKGS   1024
#define USEDEBUG   0
#define DEBUG(x)

Functions

int pkgCompare (void *first, void *second)
static void compareFileList (int availFileCount, char **availBaseNames, char **availDirNames, int *availDirIndexes, int instFileCount, char **instBaseNames, char **instDirNames, int *instDirIndexes, struct hash_table *ht)
static void addLostFiles (rpmdb db, struct pkgSet *psp, struct hash_table *ht)
static int findPackagesWithObsoletes (rpmdb db, struct pkgSet *psp)
static void errorFunction (void)
static int findUpgradePackages (rpmdb db, struct pkgSet *psp, struct hash_table *ht)
static int removeMovedFilesAlreadyHandled (struct pkgSet *psp, struct hash_table *ht)
static int findPackagesWithRelocatedFiles (struct pkgSet *psp, struct hash_table *ht)
static int unmarkPackagesAlreadyInstalled (rpmdb db, struct pkgSet *psp)
static void emptyErrorCallback (void)
int ugFindUpgradePackages (struct pkgSet *psp, char *installRoot)


Detailed Description

Definition in file upgrade.c.


Define Documentation

#define DEBUG (  ) 

Value:

{   \
     if (USEDEBUG)   \
         printf x; \
     }

Definition at line 23 of file upgrade.c.

#define MAXPKGS   1024

Definition at line 19 of file upgrade.c.

#define USEDEBUG   0

Definition at line 21 of file upgrade.c.


Function Documentation

static void addLostFiles ( rpmdb  db,
struct pkgSet psp,
struct hash_table ht 
) [static]

Definition at line 105 of file upgrade.c.

References compareFileList(), packageInfo::h, headerGetEntry(), headerGetEntryMinMemory(), packageInfo::name, name, pkgSet::numPackages, pkgSet::packages, pkgCompare(), rpmdbFreeIterator(), RPMDBI_PACKAGES, rpmdbInitIterator(), rpmdbNextIterator(), RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, and RPMTAG_NAME.

Referenced by ugFindUpgradePackages().

static void compareFileList ( int  availFileCount,
char **  availBaseNames,
char **  availDirNames,
int *  availDirIndexes,
int  instFileCount,
char **  instBaseNames,
char **  instDirNames,
int *  instDirIndexes,
struct hash_table ht 
) [static]

Definition at line 56 of file upgrade.c.

References DEBUG, and htAddToTable().

Referenced by addLostFiles(), and findUpgradePackages().

static void emptyErrorCallback ( void   )  [static]

Definition at line 462 of file upgrade.c.

Referenced by ugFindUpgradePackages().

static void errorFunction ( void   )  [static]

Definition at line 185 of file upgrade.c.

Referenced by findUpgradePackages(), and unmarkPackagesAlreadyInstalled().

static int findPackagesWithObsoletes ( rpmdb  db,
struct pkgSet psp 
) [static]

Definition at line 153 of file upgrade.c.

References headerGetEntryMinMemory(), pkgSet::numPackages, pkgSet::packages, rpmdbCountPackages(), RPMTAG_OBSOLETENAME, and packageInfo::selected.

Referenced by ugFindUpgradePackages().

static int findPackagesWithRelocatedFiles ( struct pkgSet psp,
struct hash_table ht 
) [static]

Definition at line 346 of file upgrade.c.

References DEBUG, packageInfo::h, headerGetEntry(), headerGetEntryMinMemory(), htInTable(), htRemoveFromTable(), name, pkgSet::numPackages, pkgSet::packages, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_FILEMODES, and RPMTAG_NAME.

Referenced by ugFindUpgradePackages().

static int findUpgradePackages ( rpmdb  db,
struct pkgSet psp,
struct hash_table ht 
) [static]

Definition at line 189 of file upgrade.c.

References compareFileList(), DEBUG, errorFunction(), packageInfo::h, headerGetEntry(), headerGetEntryMinMemory(), name, pkgSet::numPackages, pkgSet::packages, rpmdbFreeIterator(), rpmdbInitIterator(), rpmdbNextIterator(), rpmErrorSetCallback, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, RPMTAG_NAME, and rpmVersionCompare().

Referenced by ugFindUpgradePackages().

int pkgCompare ( void *  first,
void *  second 
)

Definition at line 42 of file upgrade.c.

References xstrcasecmp().

Referenced by addLostFiles().

static int removeMovedFilesAlreadyHandled ( struct pkgSet psp,
struct hash_table ht 
) [static]

Definition at line 296 of file upgrade.c.

References DEBUG, packageInfo::h, headerGetEntry(), headerGetEntryMinMemory(), htInTable(), htRemoveFromTable(), name, pkgSet::numPackages, pkgSet::packages, RPMTAG_BASENAMES, RPMTAG_DIRINDEXES, RPMTAG_DIRNAMES, and RPMTAG_NAME.

Referenced by ugFindUpgradePackages().

int ugFindUpgradePackages ( struct pkgSet psp,
char *  installRoot 
)

Definition at line 465 of file upgrade.c.

References addLostFiles(), emptyErrorCallback(), findPackagesWithObsoletes(), findPackagesWithRelocatedFiles(), findUpgradePackages(), htFreeHashTable(), htNewTable(), removeMovedFilesAlreadyHandled(), rpmdbClose(), rpmdbOpen(), rpmErrorSetCallback, RPMMESS_FATALERROR, RPMMESS_NORMAL, rpmSetVerbosity, and unmarkPackagesAlreadyInstalled().

static int unmarkPackagesAlreadyInstalled ( rpmdb  db,
struct pkgSet psp 
) [static]

Definition at line 418 of file upgrade.c.

References DEBUG, errorFunction(), packageInfo::h, headerGetEntry(), name, pkgSet::numPackages, pkgSet::packages, rpmdbFreeIterator(), rpmdbInitIterator(), rpmdbNextIterator(), rpmErrorSetCallback, RPMTAG_NAME, and rpmVersionCompare().

Referenced by ugFindUpgradePackages().


Generated on Wed Nov 15 03:38:13 2006 for rpm by  doxygen 1.4.7