# File Classification API.

## Files

file | rpmfc.h
| Structures and methods for build-time file classification.

## Typedefs

typedef struct rpmfc_s * | rpmfc
typedef enum FCOLOR_e | FCOLOR_t
typedef struct rpmfcTokens_s * | rpmfcToken

## Enumerations

enum

FCOLOR_e {
RPMFC_BLACK = 0, RPMFC_ELF32 = (1 << 0), RPMFC_ELF64 = (1 << 1), RPMFC_ELFMIPSN32 = (1 << 2),
RPMFC_PKGCONFIG = (1 << 8), RPMFC_LIBTOOL = (1 << 9), RPMFC_BOURNE = (1 << 10), RPMFC_MONO = (1 << 11),
RPMFC_SCRIPT = (1 << 12), RPMFC_STATIC = (1 << 13), RPMFC_NOTSTRIPPED = (1 << 14), RPMFC_DIRECTORY = (1 << 16),
RPMFC_SYMLINK = (2 << 16), RPMFC_DEVICE = (3 << 16), RPMFC_LIBRARY = (4 << 16), RPMFC_FONT = (5 << 16),
RPMFC_IMAGE = (6 << 16), RPMFC_MANPAGE = (7 << 16), RPMFC_TEXT = (8 << 16), RPMFC_DOCUMENT = (9 << 16),
RPMFC_ARCHIVE = (1 << 20), RPMFC_COMPRESSED = (1 << 21), RPMFC_MODULE = (1 << 22), RPMFC_EXECUTABLE = (1 << 23),
RPMFC_PERL = (1 << 24), RPMFC_JAVA = (1 << 25), RPMFC_PYTHON = (1 << 26), RPMFC_PHP = (1 << 27),
RPMFC_TCL = (1 << 28), RPMFC_WHITE = (1 << 29), RPMFC_INCLUDE = (1 << 30), RPMFC_ERROR = (1 << 31)
}

## Functions

int | rpmfcExec (ARGV_const_t av, StringBuf sb_stdin, StringBuf *sb_stdoutp, int failnonzero)
| Return helper output.
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.
rpmRC | rpmfcClassify (rpmfc fc, ARGV_t argv, rpm_mode_t *fmode)
| Build file class dictionary and mappings.
rpmRC | rpmfcApply (rpmfc fc)
| Build file/package dependency dictionary and mappings.
rpmRC | rpmfcGenerateDepends (const rpmSpec spec, Package pkg)
| Generate package dependencies.
rpmds | rpmfcProvides (rpmfc fc)
| Retrieve file classification provides.
rpmds | rpmfcRequires (rpmfc fc)
| Retrieve file classification requires.

## Typedef Documentation

typedef enum FCOLOR_e FCOLOR_t

Definition at line 76 of file rpmfc.h.

typedef struct rpmfc_s* rpmfc

Definition at line 24 of file rpmfc.h.

typedef struct rpmfcTokens_s* rpmfcToken

Definition at line 80 of file rpmfc.h.

## Enumeration Type Documentation

enum FCOLOR_e

Enumerator:

  RPMFC_BLACK |
  RPMFC_ELF32 |
  RPMFC_ELF64 |
  RPMFC_ELFMIPSN32 |
  RPMFC_PKGCONFIG |
  RPMFC_LIBTOOL |
  RPMFC_BOURNE |
  RPMFC_MONO |
  RPMFC_SCRIPT |
  RPMFC_STATIC |
  RPMFC_NOTSTRIPPED |
  RPMFC_DIRECTORY |
  RPMFC_SYMLINK |
  RPMFC_DEVICE |
  RPMFC_LIBRARY |
  RPMFC_FONT |
  RPMFC_IMAGE |
  RPMFC_MANPAGE |
  RPMFC_TEXT |
  RPMFC_DOCUMENT |
  RPMFC_ARCHIVE |
  RPMFC_COMPRESSED |
  RPMFC_MODULE |
  RPMFC_EXECUTABLE |
  RPMFC_PERL |
  RPMFC_JAVA |
  RPMFC_PYTHON |
  RPMFC_PHP |
  RPMFC_TCL |
  RPMFC_WHITE |
  RPMFC_INCLUDE |
  RPMFC_ERROR |

Definition at line 28 of file rpmfc.h.

## Function Documentation

rpmRC rpmfcApply | ( | rpmfc | fc | ) |

Build file/package dependency dictionary and mappings.

Parameters:

  | fc | file classifier

Returns:
  RPMRC_OK on success

rpmRC rpmfcClassify | ( | rpmfc | fc,
|  | ARGV_t | argv,
|  | rpm_mode_t * | fmode |
| ) |  |  |

Build file class dictionary and mappings.

Parameters:

  | fc | file classifier
  | argv | files to classify
  | fmode | files mode_t array (or NULL)

Returns:
  RPMRC_OK on success

int rpmfcColoring | ( | const char * | fmstr | ) |

Return file color given file(1) string.

Parameters:

  | fmstr | file(1) string

Returns:
  file color

int rpmfcExec | ( | ARGV_const_t | av,
|  | StringBuf | sb_stdin,
|  | StringBuf * | sb_stdoutp,
|  | int | failnonzero |
| ) |  |  |

Return helper output.

Parameters:

  | av | helper argv (with possible macros)
  | sb_stdin | helper input

Return values:

  | *sb_stdoutp | helper output

Parameters:

  | failnonzero | IS non-zero helper exit status a failure?

rpmfc rpmfcFree | ( | rpmfc | fc | ) |

Destroy a file classifier.

Parameters:

  | fc | file classifier

Returns:
  NULL always

rpmRC rpmfcGenerateDepends | ( | const rpmSpec | spec,
|  | Package | pkg |
| ) |  |  |

Generate package dependencies.

Parameters:

  | spec | spec file control
  | pkg | package control

Returns:
  RPMRC_OK on success

rpmfc rpmfcNew | ( | void |  | ) |

Create a file classifier.

Returns:
  new file classifier

void rpmfcPrint | ( | const char * | msg,
|  | rpmfc | fc,
|  | FILE * | fp |
| ) |  |  |

Print results of file classification.

Todo:
  Remove debugging routine.

Parameters:

  | msg | message prefix (NULL for none)
  | fc | file classifier
  | fp | output file handle (NULL for stderr)

rpmds rpmfcProvides | ( | rpmfc | fc | ) |

Retrieve file classification provides.

Parameters:

  | fc | file classifier

Returns:
  rpmds dependency set of fc provides

rpmds rpmfcRequires | ( | rpmfc | fc | ) |

Retrieve file classification requires.

Parameters:

  | fc | file classifier

Returns:
  rpmds dependency set of fc requires