# RPMRC.

## Files

file | rpmlib.h

| In Memoriam: Steve Taylor <staylor@redhat.com> was here, now he's not.

## Variables

const char * | macrofiles
| List of macro files to read when configuring rpm.

## RPMRC

enum | rpm_machtable_e { RPM_MACHTABLE_INSTARCH = 0, RPM_MACHTABLE_INSTOS = 1, RPM_MACHTABLE_BUILDARCH = 2, RPM_MACHTABLE_BUILDOS = 3 }
| Build and install arch/os table identifiers. More...
int | rpmReadConfigFiles (const char *file, const char *target)
| Read macro configuration file(s) for a target.
void | rpmGetArchInfo (const char **name, int *num)
| Return current arch name and/or number.
void | rpmGetOsInfo (const char **name, int *num)
| Return current os name and/or number.
int | rpmMachineScore (int type, const char *name)
| Return arch/os score of a name.
int | rpmShowRC (FILE *fp)
| Display current rpmrc (and macro) configuration.
void | rpmSetTables (int archTable, int osTable)
void | rpmFreeRpmrc (void)
| Destroy rpmrc arch/os compatibility tables.

## Enumeration Type Documentation

enum rpm_machtable_e

Build and install arch/os table identifiers.

Todo:
  Eliminate from API.

Enumerator:

  RPM_MACHTABLE_INSTARCH | Install platform architecture.
  RPM_MACHTABLE_INSTOS | Install platform operating system.
  RPM_MACHTABLE_BUILDARCH | Build platform architecture.
  RPM_MACHTABLE_BUILDOS | Build platform operating system.

Definition at line 62 of file rpmlib.h.

## Function Documentation

void rpmFreeRpmrc | ( | void |  | ) |

Destroy rpmrc arch/os compatibility tables.

Todo:
  Eliminate from API.

Referenced by build(), and main().

void rpmGetArchInfo | ( | const char ** | name,
|  | int * | num |
| ) |  |  |

Return current arch name and/or number.

Todo:
  Generalize to extract arch component from target_platform macro.

Return values:

  | name | address of arch name (or NULL)
  | num | address of arch number (or NULL)

void rpmGetOsInfo | ( | const char ** | name,
|  | int * | num |
| ) |  |  |

Return current os name and/or number.

Todo:
  Generalize to extract os component from target_platform macro.

Return values:

  | name | address of os name (or NULL)
  | num | address of os number (or NULL)

int rpmMachineScore | ( | int | type,
|  | const char * | name |
| ) |  |  |

Return arch/os score of a name.

An arch/os score measures the "nearness" of a name to the currently running (or defined) platform arch/os. For example, the score of arch "i586" on an i686 platform is (usually) 2. The arch/os score is used to select one of several otherwise identical packages using the arch/os tags from the header as hints of the intended platform for the package.

Todo:
  Rewrite to use RE's against config.guess target platform output.

Parameters:

  | type | any of the RPM_MACHTABLE_* constants
  | name | name

Returns:
  arch score (0 is no match, lower is preferred)

int rpmReadConfigFiles | ( | const char * | file,
|  | const char * | target |
| ) |  |  |

Read macro configuration file(s) for a target.

Parameters:

  | file | colon separated files to read (NULL uses default)
  | target | target platform (NULL uses default)

Returns:
  0 on success, -1 on error

Referenced by build(), and main().

void rpmSetTables | ( | int | archTable,
|  | int | osTable |
| ) |  |  |

Deprecated:
  Use addMacro to set _target_* macros.

Todo:
  Eliminate from API. #

Note:
  Only used by build code.

Parameters:

  | archTable |
  | osTable |

Referenced by buildForTarget().

int rpmShowRC | ( | FILE * | fp | ) |

Display current rpmrc (and macro) configuration.

Parameters:

  | fp | output file handle

Returns:
  0 always

## Variable Documentation

const char* macrofiles

List of macro files to read when configuring rpm.

This is a colon separated list of files. URI's are permitted as well, identified by the token '://', so file paths must not begin with '//'.