#include "system.h"
#include <stdarg.h>
#include <rpmio_internal.h>
#include <rpmlua.h>
#include <rpmluaext.h>
#include <rpmmacro.h>
#include <rpmcli.h>
#include <rpmds.h>
#include "debug.h"
Go to the source code of this file.
Data Structures | |
struct | machCacheEntry_s |
struct | machCache_s |
struct | machEquivInfo_s |
struct | machEquivTable_s |
struct | defaultEntry_s |
struct | canonEntry_s |
struct | tableType_s |
struct | cpu_vendor_os_gnu |
Defines | |
#define | __power_pc() 0 |
#define | _MIRE_INTERNAL |
#define | OS 0 |
#define | ARCH 1 |
#define | _TOPDIRMACRO "%{_topdir}/" |
Typedefs | |
typedef const char * | cptr_t |
typedef struct machCacheEntry_s * | machCacheEntry |
typedef struct machCache_s * | machCache |
typedef struct machEquivInfo_s * | machEquivInfo |
typedef struct machEquivTable_s * | machEquivTable |
typedef struct defaultEntry_s * | defaultEntry |
typedef struct canonEntry_s * | canonEntry |
typedef struct tableType_s * | tableType |
typedef struct cpu_vendor_os_gnu * | CVOG_t |
Functions | |
static void | rpmRebuildTargetVars (const char **target, const char **canontarget) |
static machCacheEntry | machCacheFindEntry (const machCache cache, const char *key) |
static void | machAddEquiv (machEquivTable table, const char *name, int distance) |
static void | machCacheEntryVisit (machCache cache, machEquivTable table, const char *name, int distance) |
static void | rebuildCompatTables (int type, const char *name) |
static canonEntry | lookupInCanonTable (const char *name, const canonEntry table, int tableLen) |
static const char * | lookupInDefaultTable (const char *name, const defaultEntry table, int tableLen) |
static void | addMacroDefault (const char *macroname, const char *val, const char *body) |
static void | setPathDefault (const char *macroname, const char *subdir) |
static void | setDefaults (void) |
static int | parseCVOG (const char *str, CVOG_t *cvogp) |
static void * | mireFreeAll (miRE mire, int nre) |
Destroy platform patterns. | |
static int | mireAppend (rpmMireMode mode, int tag, const char *pattern, miRE *mi_rep, int *mi_nrep) |
Append pattern to array. | |
static rpmRC | rpmPlatform (const char *platform) |
Read and configure /etc/rpm/platform patterns. | |
int | rpmPlatformScore (const char *platform, void *mi_re, int mi_nre) |
Return score of a platform string. | |
static void | defaultMachine (const char **arch, const char **os) |
void | rpmSetTables (int archTable, int osTable) |
static void | rpmSetMachine (const char *arch, const char *os) |
static void | getMachineInfo (int type, const char **name, int *num) |
void | rpmFreeRpmrc (void) |
static int | rpmReadRC (void) |
Read macro configuration file(s). | |
int | rpmReadConfigFiles (const char *file, const char *target) |
Read macro configuration file(s) for a target. | |
int | rpmShowRC (FILE *fp) |
Display current rpmrc (and macro) configuration. | |
Variables | |
static const char * | configTarget = NULL |
static const char * | platform = SYSCONFIGDIR "/platform" |
void * | platpat = NULL |
int | nplatpat = 0 |
static struct tableType_s | tables [4] |
static cptr_t | current [2] |
static int | currTables [2] = { RPM_MACHTABLE_INSTOS, RPM_MACHTABLE_INSTARCH } |
static int | defaultsInitialized = 0 |
static const char * | ___build_pre |
#define _TOPDIRMACRO "%{_topdir}/" |
Referenced by setPathDefault().
#define ARCH 1 |
Definition at line 95 of file rpmrc.c.
Referenced by rpmFreeRpmrc(), rpmRebuildTargetVars(), rpmSetMachine(), rpmSetTables(), and rpmShowRC().
#define OS 0 |
Definition at line 94 of file rpmrc.c.
Referenced by rpmFreeRpmrc(), rpmRebuildTargetVars(), rpmSetMachine(), rpmSetTables(), and rpmShowRC().
typedef struct canonEntry_s * canonEntry |
typedef struct cpu_vendor_os_gnu * CVOG_t |
typedef struct defaultEntry_s * defaultEntry |
typedef struct machCache_s * machCache |
typedef struct machCacheEntry_s * machCacheEntry |
typedef struct machEquivInfo_s * machEquivInfo |
typedef struct machEquivTable_s * machEquivTable |
typedef struct tableType_s * tableType |
static void addMacroDefault | ( | const char * | macroname, | |
const char * | val, | |||
const char * | body | |||
) | [static] |
Definition at line 234 of file rpmrc.c.
References addMacro(), and RMIL_DEFAULT.
Referenced by setDefaults().
static void defaultMachine | ( | const char ** | arch, | |
const char ** | os | |||
) | [static] |
Definition at line 540 of file rpmrc.c.
References _free(), configTarget, cpu_vendor_os_gnu::cpu, cpu_vendor_os_gnu::os, parseCVOG(), platform, rpmExpand(), rpmPlatform(), RPMRC_OK, and cpu_vendor_os_gnu::str.
Referenced by rpmRebuildTargetVars(), rpmSetMachine(), and rpmSetTables().
static void getMachineInfo | ( | int | type, | |
const char ** | name, | |||
int * | num | |||
) | [static] |
Definition at line 725 of file rpmrc.c.
References current, currTables, lookupInCanonTable(), canonEntry_s::num, and canonEntry_s::short_name.
Referenced by rpmRebuildTargetVars().
static canonEntry lookupInCanonTable | ( | const char * | name, | |
const canonEntry | table, | |||
int | tableLen | |||
) | [static] |
Definition at line 204 of file rpmrc.c.
Referenced by getMachineInfo().
static const char* lookupInDefaultTable | ( | const char * | name, | |
const defaultEntry | table, | |||
int | tableLen | |||
) | [static] |
Definition at line 221 of file rpmrc.c.
References defaultEntry_s::defName.
Referenced by rpmSetMachine().
static void machAddEquiv | ( | machEquivTable | table, | |
const char * | name, | |||
int | distance | |||
) | [static] |
Definition at line 124 of file rpmrc.c.
References machEquivTable_s::count, tableType_s::equiv, machEquivTable_s::list, machEquivInfo_s::name, machEquivInfo_s::score, xmalloc(), xrealloc(), xstrcasecmp(), and xstrdup().
Referenced by machCacheEntryVisit(), and rebuildCompatTables().
static void machCacheEntryVisit | ( | machCache | cache, | |
machEquivTable | table, | |||
const char * | name, | |||
int | distance | |||
) | [static] |
Definition at line 152 of file rpmrc.c.
References machCacheEntry_s::count, machCacheEntry_s::equivs, machAddEquiv(), machCacheFindEntry(), and machCacheEntry_s::visited.
Referenced by rebuildCompatTables().
static machCacheEntry machCacheFindEntry | ( | const machCache | cache, | |
const char * | key | |||
) | [static] |
Definition at line 113 of file rpmrc.c.
References machCache_s::cache, machCacheEntry_s::name, and machCache_s::size.
Referenced by machCacheEntryVisit().
static int mireAppend | ( | rpmMireMode | mode, | |
int | tag, | |||
const char * | pattern, | |||
miRE * | mi_rep, | |||
int * | mi_nrep | |||
) | [static] |
Append pattern to array.
mode | type of pattern match | |
tag | identifier (like an rpmTag) | |
pattern | pattern to compile |
*mi_rep | platform pattern array | |
*mi_nrep | no. of patterns in array |
Definition at line 411 of file rpmrc.c.
References xrealloc().
Referenced by rpmPlatform().
static void* mireFreeAll | ( | miRE | mire, | |
int | nre | |||
) | [static] |
Destroy platform patterns.
mire | platform pattern array | |
nre | no of patterns in array |
Definition at line 388 of file rpmrc.c.
References _free().
Referenced by rpmFreeRpmrc(), and rpmPlatform().
static int parseCVOG | ( | const char * | str, | |
CVOG_t * | cvogp | |||
) | [static] |
Definition at line 329 of file rpmrc.c.
References _free(), cpu_vendor_os_gnu::cpu, cpu_vendor_os_gnu::gnu, cpu_vendor_os_gnu::os, cpu_vendor_os_gnu::str, cpu_vendor_os_gnu::vendor, xcalloc(), and xstrdup().
Referenced by defaultMachine(), and rpmPlatform().
static void rebuildCompatTables | ( | int | type, | |
const char * | name | |||
) | [static] |
Definition at line 173 of file rpmrc.c.
References _free(), machCache_s::cache, tableType_s::cache, machEquivTable_s::count, currTables, tableType_s::equiv, tableType_s::key, machEquivTable_s::list, machAddEquiv(), machCacheEntryVisit(), machEquivInfo_s::name, machCache_s::size, and machCacheEntry_s::visited.
Referenced by rpmSetMachine(), and rpmSetTables().
static rpmRC rpmPlatform | ( | const char * | platform | ) | [static] |
Read and configure /etc/rpm/platform patterns.
platform | path to platform patterns |
Definition at line 437 of file rpmrc.c.
References _free(), addMacro(), cpu_vendor_os_gnu::cpu, cpu_vendor_os_gnu::gnu, mireAppend(), mireFreeAll(), nplatpat, cpu_vendor_os_gnu::os, parseCVOG(), platpat, rpmExpand(), rpmioSlurp(), RPMRC_FAIL, RPMRC_OK, cpu_vendor_os_gnu::str, cpu_vendor_os_gnu::vendor, and xisspace().
Referenced by defaultMachine().
static void rpmRebuildTargetVars | ( | const char ** | target, | |
const char ** | canontarget | |||
) | [static] |
Definition at line 748 of file rpmrc.c.
References _free(), addMacro(), ARCH, defaultMachine(), delMacro(), getMachineInfo(), OS, RMIL_RPMRC, RPM_MACHTABLE_BUILDARCH, RPM_MACHTABLE_BUILDOS, RPM_MACHTABLE_INSTARCH, RPM_MACHTABLE_INSTOS, rpmSetMachine(), rpmSetTables(), xmalloc(), xstrcasecmp(), xstrdup(), and xtolower().
Referenced by rpmReadConfigFiles().
static void rpmSetMachine | ( | const char * | arch, | |
const char * | os | |||
) | [static] |
Definition at line 684 of file rpmrc.c.
References _free(), ARCH, current, currTables, defaultMachine(), lookupInDefaultTable(), OS, rebuildCompatTables(), and xstrdup().
Referenced by rpmReadConfigFiles(), and rpmRebuildTargetVars().
static void setDefaults | ( | void | ) | [static] |
Definition at line 276 of file rpmrc.c.
References ___build_pre, addMacro(), addMacroDefault(), RMIL_DEFAULT, setPathDefault(), USRPREFIX, and VARPREFIX.
Referenced by rpmReadRC().
static void setPathDefault | ( | const char * | macroname, | |
const char * | subdir | |||
) | [static] |
Definition at line 244 of file rpmrc.c.
References _TOPDIRMACRO, addMacro(), alloca(), body(), and RMIL_DEFAULT.
Referenced by setDefaults().
const char* ___build_pre [static] |
"\n\ RPM_SOURCE_DIR=\"%{_sourcedir}\"\n\ RPM_BUILD_DIR=\"%{_builddir}\"\n\ RPM_OPT_FLAGS=\"%{optflags}\"\n\ RPM_ARCH=\"%{_arch}\"\n\ RPM_OS=\"%{_os}\"\n\ export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\n\ RPM_DOC_DIR=\"%{_docdir}\"\n\ export RPM_DOC_DIR\n\ RPM_PACKAGE_NAME=\"%{name}\"\n\ RPM_PACKAGE_VERSION=\"%{version}\"\n\ RPM_PACKAGE_RELEASE=\"%{release}\"\n\ export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\n\ %{?buildroot:RPM_BUILD_ROOT=\"%{buildroot}\"\n\ export RPM_BUILD_ROOT\n}\ "
Definition at line 259 of file rpmrc.c.
Referenced by setDefaults().
const char* configTarget = NULL [static] |
Definition at line 24 of file rpmrc.c.
Referenced by defaultMachine(), and rpmReadConfigFiles().
Definition at line 98 of file rpmrc.c.
Referenced by getMachineInfo(), rpmFreeRpmrc(), rpmSetMachine(), and rpmShowRC().
int currTables[2] = { RPM_MACHTABLE_INSTOS, RPM_MACHTABLE_INSTARCH } [static] |
Definition at line 101 of file rpmrc.c.
Referenced by getMachineInfo(), rebuildCompatTables(), rpmSetMachine(), and rpmSetTables().
int defaultsInitialized = 0 [static] |
Definition at line 104 of file rpmrc.c.
Referenced by rpmFreeRpmrc(), and rpmReadRC().
int nplatpat = 0 |
Definition at line 31 of file rpmrc.c.
Referenced by rpmFreeRpmrc(), rpmPlatform(), rpmPlatformScore(), and rpmtsAddInstallElement().
const char* platform = SYSCONFIGDIR "/platform" [static] |
Definition at line 27 of file rpmrc.c.
Referenced by archScore(), defaultMachine(), parseSpec(), platformScore(), and rpmtsAddInstallElement().
void* platpat = NULL |
Definition at line 29 of file rpmrc.c.
Referenced by rpmFreeRpmrc(), rpmPlatform(), rpmPlatformScore(), and rpmtsAddInstallElement().
struct tableType_s tables[4] [static] |