#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) |
Definition in file upgrade.c.
#define DEBUG | ( | x | ) |
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] |
static void errorFunction | ( | void | ) | [static] |
Definition at line 185 of file upgrade.c.
Referenced by findUpgradePackages(), and unmarkPackagesAlreadyInstalled().
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 | |||
) |
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().
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().