#include "system.h"#include <signal.h>#include <rpmbuild.h>#include <argv.h>#include <rpmfc.h>#include <rpmns.h>#include <rpmds.h>#include <rpmfi.h>#include <rpmts.h>#include <rpmdb.h>#include "debug.h"Include dependency graph for rpmfc.c:

Go to the source code of this file.
Data Structures | |
| struct | rpmfcApplyTbl_s |
| struct | DepMsg_s |
Defines | |
| #define | _RPMEVR_INTERNAL |
| #define | _RPMFC_INTERNAL |
| #define | _RPMNS_INTERNAL |
| #define | _RPMDS_INTERNAL |
| #define | _suffix(_s, _x) (slen >= sizeof(_x) && !strcmp((_s)+slen-(sizeof(_x)-1), (_x))) |
Typedefs | |
| typedef rpmfcApplyTbl_s * | rpmfcApplyTbl |
| typedef DepMsg_s * | DepMsg_t |
Functions | |
| static int | rpmfcExpandAppend (ARGV_t *argvp, const ARGV_t av) |
| static StringBuf | getOutputFrom (const char *dir, ARGV_t argv, const char *writePtr, int writeBytesLeft, int failNonZero) |
| Return output from helper script. | |
| int | rpmfcExec (ARGV_t av, StringBuf sb_stdin, StringBuf *sb_stdoutp, int failnonzero) |
| Return helper output. | |
| static int | rpmfcSaveArg (ARGV_t *argvp, const char *key) |
| static char * | rpmfcFileDep (char *buf, int ix, rpmds ds) |
| static regex_t * | rpmfcExpandRegexps (const char *str, int *count) |
| static int | rpmfcMatchRegexps (regex_t *regexps, int count, const char *str, char deptype) |
| static regex_t * | rpmfcFreeRegexps (regex_t *regexps, int count) |
| static int | rpmfcHelper (rpmfc fc, unsigned char deptype, const char *nsdep) |
| Run per-interpreter dependency helper. | |
| int | rpmfcColoring (const char *fmstr) |
| Return file color given file(1) string. | |
| void | rpmfcPrint (const char *msg, rpmfc fc, FILE *fp) |
| Print results of file classification. | |
| rpmfc | rpmfcFree (rpmfc fc) |
| Destroy a file classifier. | |
| rpmfc | rpmfcNew (void) |
| Create a file classifier. | |
| static int | rpmfcSCRIPT (rpmfc fc) |
| Extract script dependencies. | |
| static int | rpmfcMergePR (void *context, rpmds ds) |
| Merge provides/requires dependencies into a rpmfc container. | |
| static int | rpmfcMONO (rpmfc fc) |
| Extract .NET dependencies. | |
| static int | rpmfcELF (rpmfc fc) |
| Extract Elf dependencies. | |
| static int | rpmfcFindRequiredPackages (rpmfc fc) |
| int | rpmfcApply (rpmfc fc) |
| Build file/package dependency dictionary and mappings. | |
| int | rpmfcClassify (rpmfc fc, ARGV_t argv, int_16 *fmode) |
| static void | printDeps (Header h) |
| Print dependencies in a header. | |
| static int | rpmfcGenerateDependsHelper (const Spec spec, Package pkg, rpmfi fi) |
| static int | rpmfcGenerateScriptletDeps (const Spec spec, Package pkg) |
| int | rpmfcGenerateDepends (void *specp, void *pkgp) |
| Generate package dependencies. | |
Variables | |
| static struct rpmfcTokens_s | rpmfcTokens [] |
| static struct rpmfcApplyTbl_s | rpmfcApplyTable [] |
| XXX Having two entries for rpmfcSCRIPT may be unnecessary duplication. | |
| static struct DepMsg_s | depMsgs [] |
| static DepMsg_t | DepMsgs = depMsgs |
| static struct DepMsg_s | scriptMsgs [] |
| static DepMsg_t | ScriptMsgs = scriptMsgs |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Referenced by rpmfcClassify(), and rpmInitMacros(). |
|
|
|
|
|
|
|
|
Print dependencies in a header.
Definition at line 1508 of file rpmfc.c. References DepMsg_s::ftag, DepMsg_s::mask, DepMsg_s::msg, DepMsg_s::ntag, rpmdsDNEVR(), rpmdsFlags(), rpmdsFree(), rpmdsInit(), rpmdsNew(), rpmdsNext(), RPMMESS_NORMAL, rpmMessage, and DepMsg_s::xor. Referenced by rpmfcGenerateDepends(). |
|
|
Build file/package dependency dictionary and mappings.
Definition at line 1097 of file rpmfc.c. References _, argiAdd(), argiCount(), argvCount(), rpmfcApplyTbl_s::colormask, rpmfcApplyTbl_s::func, rpmdsFind(), rpmdsFree(), rpmdsSingle(), rpmExpand(), RPMFC_PYTHON, rpmfcExpandRegexps(), rpmfcFindRequiredPackages(), rpmfcFreeRegexps(), RPMMESS_DEBUG, RPMMESS_NORMAL, rpmMessage, RPMTAG_PROVIDENAME, and RPMTAG_REQUIRENAME. Referenced by main(), and rpmfcGenerateDepends(). |
|
||||||||||||||||
|
Definition at line 1257 of file rpmfc.c. References _, _free(), _suffix, argiAdd(), argvAdd(), argvCount(), argvFree(), argvSearch(), errno, RPMERR_EXEC, rpmError, rpmExpand(), RPMFC_INCLUDE, RPMFC_WHITE, rpmfcColoring(), rpmfcSaveArg(), RPMMESS_DEBUG, rpmMessage, S_IFSOCK, setlocale, urlPath(), and xstrdup(). Referenced by main(), and rpmfcGenerateDepends(). |
|
|
Return file color given file(1) string.
Definition at line 622 of file rpmfc.c. References RPMFC_BLACK, RPMFC_INCLUDE, and rpmfcTokens. Referenced by rpmfcClassify(). |
|
|
Extract Elf dependencies.
Definition at line 961 of file rpmfc.c. References rpmdsELF(), RPMELF_FLAG_SKIPPROVIDES, RPMELF_FLAG_SKIPREQUIRES, rpmfcHelper(), and rpmfcMergePR(). |
|
||||||||||||||||||||
|
Return helper output.
Definition at line 209 of file rpmfc.c. References _free(), argvAppend(), argvFree(), freeStringBuf(), getOutputFrom(), getStringBuf(), rpmExpand(), and rpmfcExpandAppend(). Referenced by checkFiles(), rpmfcGenerateDependsHelper(), rpmfcGenerateScriptletDeps(), and rpmfcHelper(). |
|
||||||||||||
|
Definition at line 27 of file rpmfc.c. References argvCount(), rpmExpand(), and xrealloc(). Referenced by rpmfcExec(). |
|
||||||||||||
|
Definition at line 314 of file rpmfc.c. References _, _free(), rpmExpand(), RPMMESS_NORMAL, and rpmMessage. Referenced by rpmfcApply(), and rpmfcFindRequiredPackages(). |
|
||||||||||||||||
|
Definition at line 288 of file rpmfc.c. References rpmdsEVR(), rpmdsFlags(), rpmdsN(), rpmdsTagN(), RPMTAG_PROVIDENAME, and RPMTAG_REQUIRENAME. Referenced by rpmfcHelper(), rpmfcMergePR(), and rpmfcSCRIPT(). |
|
|
Definition at line 994 of file rpmfc.c. References _, argvCount(), headerGetEntry(), rpmdbFreeIterator(), rpmdbGetIteratorCount(), rpmdbNextIterator(), rpmdsFree(), rpmdsMerge(), rpmdsSingle(), rpmfcExpandRegexps(), rpmfcFreeRegexps(), RPMMESS_DEBUG, RPMMESS_NORMAL, rpmMessage, RPMTAG_NAME, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, rpmtsCreate(), rpmtsFree(), and rpmtsInitIterator(). Referenced by rpmfcApply(). |
|
|
Destroy a file classifier.
Definition at line 714 of file rpmfc.c. References _free(), argiFree(), argvFree(), freeStringBuf(), and rpmdsFree(). Referenced by main(), and rpmfcGenerateDepends(). |
|
||||||||||||
|
Definition at line 371 of file rpmfc.c. References _free(). Referenced by rpmfcApply(), and rpmfcFindRequiredPackages(). |
|
||||||||||||
|
||||||||||||||||
|
Definition at line 1554 of file rpmfc.c. References _, _free(), Spec_s::_parseRCPOT, appendLineStringBuf, DepMsg_s::argv, Package_s::autoProv, Package_s::autoReq, freeStringBuf(), DepMsg_s::ftag, getStringBuf(), DepMsg_s::msg, newStringBuf(), DepMsg_s::ntag, RPMERR_EXEC, rpmError, rpmExpand(), rpmfcExec(), rpmfiFN(), rpmfiInit(), rpmfiNext(), RPMMESS_NORMAL, rpmMessage, RPMTAG_PROVIDEFLAGS, and RPMTAG_REQUIREFLAGS. Referenced by rpmfcGenerateDepends(). |
|
||||||||||||
|
Definition at line 1658 of file rpmfc.c. References Spec_s::_parseRCPOT, appendLineStringBuf, DepMsg_s::argv, freeStringBuf(), DepMsg_s::ftag, getStringBuf(), Package_s::header, headerGetEntryMinMemory(), DepMsg_s::mask, DepMsg_s::msg, newStringBuf(), DepMsg_s::ntag, rpmfcExec(), stpcpy(), stripTrailingBlanksStringBuf(), truncStringBuf(), and DepMsg_s::vtag. Referenced by rpmfcGenerateDepends(). |
|
||||||||||||||||
|
Run per-interpreter dependency helper.
Definition at line 387 of file rpmfc.c. References _, appendLineStringBuf, argvCount(), argvFree(), argvSplit(), freeStringBuf(), getStringBuf(), newStringBuf(), rpmdsFree(), rpmdsMerge(), rpmdsSingle(), rpmfcExec(), rpmfcFileDep(), rpmfcMatchRegexps(), rpmfcSaveArg(), RPMMESS_ERROR, rpmMessage, RPMSENSE_EQUAL, RPMSENSE_GREATER, RPMSENSE_LESS, RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, and snprintf(). Referenced by rpmfcELF(), rpmfcMONO(), and rpmfcSCRIPT(). |
|
||||||||||||||||||||
|
Definition at line 356 of file rpmfc.c. References _, RPMMESS_DEBUG, RPMMESS_NORMAL, and rpmMessage. Referenced by rpmfcHelper(), rpmfcMergePR(), and rpmfcSCRIPT(). |
|
||||||||||||
|
Merge provides/requires dependencies into a rpmfc container.
Definition at line 889 of file rpmfc.c. References _rpmfc_debug, rpmdsMerge(), rpmdsTagN(), rpmfcFileDep(), rpmfcMatchRegexps(), rpmfcSaveArg(), RPMTAG_PROVIDENAME, RPMTAG_REQUIRENAME, and tagName(). Referenced by rpmfcELF(). |
|
|
Extract .NET dependencies.
Definition at line 934 of file rpmfc.c. References rpmfcHelper(). |
|
|
Create a file classifier.
Definition at line 739 of file rpmfc.c. References xcalloc(). Referenced by main(), and rpmfcGenerateDepends(). |
|
||||||||||||||||
|
Print results of file classification.
Definition at line 637 of file rpmfc.c. References rpmdsCount(), rpmdsDNEVR(), rpmdsNext(), rpmdsSetIx(), and RPMFC_BLACK. Referenced by main(), and rpmfcGenerateDepends(). |
|
||||||||||||
|
Definition at line 273 of file rpmfc.c. References argvAdd(), argvSearch(), and argvSort(). Referenced by rpmfcClassify(), rpmfcHelper(), rpmfcMergePR(), and rpmfcSCRIPT(). |
|
|
Extract script dependencies.
Definition at line 750 of file rpmfc.c. References rpmdsFree(), rpmdsMerge(), rpmdsSingle(), RPMFC_BOURNE, RPMFC_DESKTOP_FILE, RPMFC_JAVA, RPMFC_LIBTOOL, RPMFC_MODULE, RPMFC_PERL, RPMFC_PHP, RPMFC_PKGCONFIG, RPMFC_PYTHON, rpmfcFileDep(), rpmfcHelper(), rpmfcMatchRegexps(), rpmfcSaveArg(), and RPMTAG_REQUIRENAME. |
|
|
|
|
|
|
|
|
Initial value: {
{ rpmfcELF, RPMFC_ELF },
{ rpmfcSCRIPT, (RPMFC_SCRIPT|RPMFC_PERL|RPMFC_PYTHON|RPMFC_LIBTOOL|RPMFC_PKGCONFIG|RPMFC_BOURNE|RPMFC_JAVA|RPMFC_PHP|RPMFC_DESKTOP_FILE) },
{ rpmfcMONO, RPMFC_MONO },
{ NULL, 0 }
}
|
|
|
Definition at line 518 of file rpmfc.c. Referenced by rpmfcColoring(). |
|
|
|
|
|
Initial value: {
{ "Requires(pre)", { "%{?__scriptlet_requires}", NULL, NULL, NULL },
RPMTAG_PREINPROG, RPMTAG_PREIN, RPMTAG_REQUIREFLAGS,
RPMSENSE_SCRIPT_PRE, 0 },
{ "Requires(post)", { "%{?__scriptlet_requires}", NULL, NULL, NULL },
RPMTAG_POSTINPROG, RPMTAG_POSTIN, RPMTAG_REQUIREFLAGS,
RPMSENSE_SCRIPT_POST, 0 },
{ "Requires(preun)", { "%{?__scriptlet_requires}", NULL, NULL, NULL },
RPMTAG_PREUNPROG, RPMTAG_PREUN, RPMTAG_REQUIREFLAGS,
RPMSENSE_SCRIPT_PREUN, 0 },
{ "Requires(postun)", { "%{?__scriptlet_requires}", NULL, NULL, NULL },
RPMTAG_POSTUNPROG, RPMTAG_POSTUN, RPMTAG_REQUIREFLAGS,
RPMSENSE_SCRIPT_POSTUN, 0 },
{ NULL, { NULL, NULL, NULL, NULL }, 0, 0, 0, 0, 0 }
}
|
1.4.4