#include "system.h"#include <rpmlib.h>#include "rpmal.h"#include "rpmds.h"#include "rpmfi.h"#include "debug.h"Go to the source code of this file.
Data Structures | |
| struct | availablePackage_s | 
| Info about a single package to be installed.  More... | |
| struct | availableIndexEntry_s | 
| A single available item (e.g.  More... | |
| struct | availableIndex_s | 
| Index of all available items.  More... | |
| struct | fileIndexEntry_s | 
| A file to be installed/removed.  More... | |
| struct | dirInfo_s | 
| A directory to be installed/removed.  More... | |
| struct | rpmal_s | 
| Set of available packages, items, and directories.  More... | |
Typedefs | |
| typedef availablePackage_s * | availablePackage | 
| typedef availableIndexEntry_s * | availableIndexEntry | 
| typedef availableIndex_s * | availableIndex | 
| typedef fileIndexEntry_s * | fileIndexEntry | 
| typedef dirInfo_s * | dirInfo | 
Functions | |
| static void | rpmalFreeIndex (rpmal al) | 
| Destroy available item index.   | |
| static alNum | alKey2Num (const rpmal al, alKey pkgKey) | 
| static alKey | alNum2Key (const rpmal al, alNum pkgNum) | 
| rpmal | rpmalCreate (int delta) | 
| Initialize available packckages, items, and directory list.   | |
| rpmal | rpmalFree (rpmal al) | 
| Free available packages, items, and directory members.   | |
| static int | dieCompare (const void *one, const void *two) | 
| Compare two directory info entries by name (qsort/bsearch).   | |
| static int | fieCompare (const void *one, const void *two) | 
| Compare two file info entries by name (qsort/bsearch).   | |
| void | rpmalDel (rpmal al, alKey pkgKey) | 
| Delete package from available list.   | |
| alKey | rpmalAdd (rpmal *alistp, alKey pkgKey, fnpyKey key, rpmds provides, rpmfi fi, uint_32 tscolor) | 
| Add package to available list.   | |
| static int | indexcmp (const void *one, const void *two) | 
| Compare two available index entries by name (qsort/bsearch).   | |
| void | rpmalAddProvides (rpmal al, alKey pkgKey, rpmds provides, uint_32 tscolor) | 
| Add package provides to available list index.   | |
| void | rpmalMakeIndex (rpmal al) | 
| Generate index for available list.   | |
| fnpyKey * | rpmalAllFileSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp) | 
| Check added package file lists for package(s) that provide a file.   | |
| fnpyKey * | rpmalAllSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp) | 
| Check added package file lists for package(s) that have a provide.   | |
| fnpyKey | rpmalSatisfiesDepend (const rpmal al, const rpmds ds, alKey *keyp) | 
| Check added package file lists for first package that has a provide.   | |
Variables | |
| int | _rpmal_debug = 0 | 
Definition in file rpmal.c.
| typedef struct availableIndex_s* availableIndex | 
| typedef struct availableIndexEntry_s* availableIndexEntry | 
| typedef struct availablePackage_s* availablePackage | 
| typedef struct fileIndexEntry_s* fileIndexEntry | 
Definition at line 146 of file rpmal.c.
Referenced by rpmalAdd(), rpmalAddProvides(), rpmalAllSatisfiesDepend(), and rpmalDel().
| static int dieCompare | ( | const void * | one, | |
| const void * | two | |||
| ) |  [static] | 
        
Compare two directory info entries by name (qsort/bsearch).
| one | 1st directory info | |
| two | 2nd directory info | 
Definition at line 241 of file rpmal.c.
References dirInfo_s::dirName, and dirInfo_s::dirNameLen.
Referenced by rpmalAdd(), rpmalAllFileSatisfiesDepend(), and rpmalDel().
| static int fieCompare | ( | const void * | one, | |
| const void * | two | |||
| ) |  [static] | 
        
Compare two file info entries by name (qsort/bsearch).
| one | 1st directory info | |
| two | 2nd directory info | 
Definition at line 266 of file rpmal.c.
References _rpmal_debug, fileIndexEntry_s::baseName, and fileIndexEntry_s::baseNameLen.
Referenced by rpmalAdd(), and rpmalAllFileSatisfiesDepend().
| static int indexcmp | ( | const void * | one, | |
| const void * | two | |||
| ) |  [static] | 
        
Compare two available index entries by name (qsort/bsearch).
| one | 1st available index entry | |
| two | 2nd available index entry | 
Definition at line 609 of file rpmal.c.
References availableIndexEntry_s::entry, and availableIndexEntry_s::entryLen.
Referenced by rpmalAllSatisfiesDepend(), and rpmalMakeIndex().
| alKey rpmalAdd | ( | rpmal * | alistp, | |
| alKey | pkgKey, | |||
| fnpyKey | key, | |||
| rpmds | provides, | |||
| rpmfi | fi, | |||
| uint_32 | tscolor | |||
| ) | 
Add package to available list.
| alistp | address of available list | |
| pkgKey | package key, RPMAL_NOMATCH to force an append | |
| key | associated file name/python object | |
| provides | provides dependency set | |
| fi | file info set | |
| tscolor | transaction color bits | 
Definition at line 419 of file rpmal.c.
References _rpmal_debug, alKey2Num(), alloca(), rpmal_s::alloced, rpmal_s::delta, die(), dieCompare(), rpmal_s::dirs, availablePackage_s::fi, fieCompare(), availablePackage_s::key, rpmal_s::list, next, rpmal_s::numDirs, availablePackage_s::provides, RPMAL_NOMATCH, rpmalCreate(), rpmalDel(), rpmalFreeIndex(), rpmdsLink, rpmfiBN(), rpmfiDC(), rpmfiDN(), rpmfiDX(), rpmfiFC(), rpmfiFColor(), rpmfiFN(), rpmfiInit(), rpmfiLink, rpmfiNext(), rpmfiSetDX(), rpmfiUnlink, availableIndex_s::size, rpmal_s::size, availablePackage_s::tscolor, xrealloc(), and xstrdup().
Referenced by rpmal_Add(), rpmtsAddAvailableElement(), and rpmtsAddInstallElement().
Add package provides to available list index.
| al | available list | |
| pkgKey | package key | |
| provides | added package provides | |
| tscolor | transaction color bits | 
Definition at line 625 of file rpmal.c.
References alKey2Num(), availableIndexEntry_s::entry, availableIndexEntry_s::entryIx, availableIndexEntry_s::entryLen, rpmal_s::index, availableIndex_s::index, availableIndex_s::k, availableIndexEntry_s::pkgKey, rpmdsColor(), rpmdsInit(), rpmdsIx(), rpmdsN(), rpmdsNext(), rpmal_s::size, availableIndex_s::size, and availableIndexEntry_s::type.
Referenced by rpmal_AddProvides(), and rpmalMakeIndex().
Check added package file lists for package(s) that provide a file.
| al | available list | |
| ds | dependency set | 
| keyp | added package key pointer (or NULL) | 
Definition at line 696 of file rpmal.c.
References _, _free(), _rpmal_debug, alloca(), alNum2Key(), fileIndexEntry_s::baseName, die(), dieCompare(), dirName, rpmal_s::dirs, fileIndexEntry_s::ficolor, fieCompare(), availablePackage_s::key, rpmal_s::list, rpmal_s::numDirs, fileIndexEntry_s::pkgNum, RPMAL_NOMATCH, rpmdsN(), rpmdsNotify(), availablePackage_s::tscolor, xrealloc(), and xstrdup().
Referenced by rpmalAllSatisfiesDepend().
Check added package file lists for package(s) that have a provide.
| al | available list | |
| ds | dependency set | 
| keyp | added package key pointer (or NULL) | 
Definition at line 797 of file rpmal.c.
References _, _free(), alKey2Num(), alloca(), rpmal_s::index, availableIndex_s::index, indexcmp(), availablePackage_s::key, rpmal_s::list, match(), availablePackage_s::provides, RPMAL_NOMATCH, rpmalAllFileSatisfiesDepend(), rpmdsCompare(), rpmdsN(), rpmdsNext(), rpmdsNotify(), rpmdsSetIx(), availableIndex_s::size, and xrealloc().
Referenced by checkPackageDeps(), rpmalSatisfiesDepend(), and rpmtsAvailable().
| rpmal rpmalCreate | ( | int | delta | ) | 
Initialize available packckages, items, and directory list.
| delta | no. of entries to add on each realloc | 
Definition at line 187 of file rpmal.c.
References availableIndex_s::index, availableIndex_s::size, and xcalloc().
Referenced by rpmalAdd().
Delete package from available list.
| al | available list | |
| pkgKey | package key | 
Definition at line 297 of file rpmal.c.
References _free(), _rpmal_debug, alKey2Num(), alloca(), die(), dieCompare(), rpmal_s::dirs, availablePackage_s::fi, rpmal_s::list, rpmal_s::numDirs, rpmfiDC(), rpmfiDN(), rpmfiFC(), rpmfiSetDX(), and xrealloc().
Referenced by rpmal_Del(), and rpmalAdd().
Free available packages, items, and directory members.
| al | available list | 
Definition at line 205 of file rpmal.c.
References _free(), rpmal_s::alloced, die(), rpmal_s::dirs, availablePackage_s::fi, rpmal_s::list, rpmal_s::numDirs, availablePackage_s::provides, rpmalFreeIndex(), rpmdsFree(), rpmfiFree(), and rpmal_s::size.
Referenced by rpmal_dealloc(), rpmtsClean(), and rpmtsFree().
| static void rpmalFreeIndex | ( | rpmal | al | ) |  [static] | 
        
Destroy available item index.
| al | available list | 
Definition at line 123 of file rpmal.c.
References _free(), availableIndex_s::index, rpmal_s::index, and availableIndex_s::size.
Referenced by rpmalAdd(), and rpmalFree().
| void rpmalMakeIndex | ( | rpmal | al | ) | 
Generate index for available list.
| al | available list | 
Definition at line 666 of file rpmal.c.
References rpmal_s::index, availableIndex_s::index, indexcmp(), availableIndex_s::k, rpmal_s::list, availablePackage_s::provides, rpmalAddProvides(), rpmdsCount(), availableIndex_s::size, rpmal_s::size, availablePackage_s::tscolor, and xrealloc().
Referenced by rpmal_MakeIndex(), rpmts_Check(), rpmtsCheck(), rpmtsOrder(), and unsatisfiedDepend().
Check added package file lists for first package that has a provide.
| al | available list | |
| ds | dependency set | 
| keyp | added package key pointer (or NULL) | 
Definition at line 885 of file rpmal.c.
References rpmalAllSatisfiesDepend().
Referenced by addRelation(), and unsatisfiedDepend().
| int _rpmal_debug = 0 | 
 1.5.2