# build/buildio.h File Reference

Routines to read and write packages. More...

`#include "psm.h"`
`#include "rpmbuild.h"`

Go to the source code of this file.

## Data Structures

struct | cpioSourceArchive_s

## Typedefs

typedef cpioSourceArchive_s * | CSA_t

## Functions

int | readRPM (const char *fileName, Spec *specp, struct rpmlead *lead, Header *sigs, CSA_t csa)
| Read rpm package components from file.
int | writeRPM (Header *hdrp, const char *fileName, int type, CSA_t csa, char *passPhrase, const char **cookie)
| Write rpm package to file.

## Detailed Description

Routines to read and write packages.

Deprecated:
  this information will move elsewhere eventually.

Todo:
  Eliminate, merge into rpmlib.

Definition in file buildio.h.

## Typedef Documentation

typedef struct cpioSourceArchive_s * CSA_t

## Function Documentation

int readRPM | ( | const char * | fileName,
|  | Spec * | specp,
|  | struct rpmlead * | lead,
|  | Header * | sigs,
|  | CSA_t | csa
| ) |

Read rpm package components from file.

Parameters:

  | filename | file name of package (or NULL to use stdin)

Return values:

  | specp | spec structure to carry package header (or NULL)
  | lead | package lead
  | sigs | package signature

Parameters:

  | csa |

Returns:
  0 on success

Definition at line 277 of file pack.c.

References _, cpioSourceArchive_s::cpioFdIn, Fclose(), fdDup(), Ferror(), Fopen(), Fread(), freeSpec(), Fseek(), Fstrerror(), PackageStruct::header, headerFree(), newPackage(), newSpec(), SpecStruct::packages, RPMERR_BADMAGIC, RPMERR_FSEEK, rpmError, RPMRC_BADMAGIC, RPMRC_BADSIZE, RPMRC_FAIL, RPMRC_OK, RPMRC_SHORTREAD, rpmReadPackageInfo(), and SEEK_SET.

Referenced by rewriteRPM().

int writeRPM | ( | Header * | hdrp,
|  | const char * | fileName,
|  | int | type,
|  | CSA_t | csa,
|  | char * | passPhrase,
|  | const char ** | cookie
| ) |

Write rpm package to file.

Warning:
  The first argument (header) is now passed by reference in order to return a reloaded contiguous header to the caller.

Return values:

  | hdrp | header to write (final header is returned).

Parameters:

  | filename | file name of package
  | type | RPMLEAD_SOURCE/RPMLEAD_BINARY
  | csa |
  | passPhrase |

Return values:

  | cookie | generated cookie (i.e build host/time)

Returns:
  0 on success

Definition at line 385 of file pack.c.

References _, _free(), rpmlead::archnum, buildHost(), cpio_copy(), cpio_doio(), cpioSourceArchive_s::cpioArchiveSize, cpioSourceArchive_s::cpioFdIn, cpioSourceArchive_s::cpioList, Fclose(), fdFiniDigest(), fdInitDigest(), Ferror(), Fflush(), Fileno(), Fopen(), Fread(), Fseek(), Fstrerror(), Fwrite(), getBuildTime(), header_magic, HEADER_MAGIC_NO, HEADER_MAGIC_YES, headerAddEntry(), headerFree(), headerGetEntryMinMemory(), headerLink(), headerMergeLegacySigs(), headerNVR(), headerRead(), headerReload(), headerWrite(), cpioSourceArchive_s::lead, makeTempFile(), name, rpmlead::osnum, PGPHASHALGO_SHA1, providePackageNVR(), RPM_INT32_TYPE, RPM_STRING_TYPE, rpmAddSignature(), RPMERR_BADARG, RPMERR_CREATE, RPMERR_FSEEK, RPMERR_NOSPACE, RPMERR_READ, RPMERR_RELOAD, rpmError, rpmExpand(), rpmFreeSignature(), rpmGetArchInfo(), rpmGetOsInfo(), RPMLEAD_BINARY, RPMLEAD_SOURCE, rpmLeadVersion(), rpmlibNeedsFeature(), RPMLOOKUPSIG_QUERY, rpmLookupSignatureType(), RPMMESS_NORMAL, rpmMessage, rpmNewSignature(), RPMSIGTAG_MD5, RPMSIGTAG_SIZE, RPMSIGTYPE_HEADERSIG, RPMTAG_ARCHIVESIZE, RPMTAG_COOKIE, RPMTAG_HEADERIMMUTABLE, RPMTAG_HEADERSIGNATURES, RPMTAG_PAYLOADCOMPRESSOR, RPMTAG_PAYLOADFLAGS, RPMTAG_PAYLOADFORMAT, RPMTAG_SHA1HEADER, rpmWriteSignature(), SEEK_SET, Unlink(), writeLead(), and xstrdup().

Referenced by packageBinaries(), packageSources(), and rewriteRPM().