Main Page   Modules   Data Structures   File List   Data Fields   Globals   Related Pages  

build/pack.c File Reference

Assemble components of an RPM package. More...

#include "system.h"
#include <rpmio_internal.h>
#include <rpmbuild.h>
#include "rpmps.h"
#include "cpio.h"
#include "fsm.h"
#include "psm.h"
#include "rpmfi.h"
#include "rpmts.h"
#include "buildio.h"
#include "legacy.h"
#include "signature.h"
#include "rpmlead.h"
#include "debug.h"

Go to the source code of this file.

Defines

#define _RPMFI_INTERNAL
#define RPMPKGVERSION_MIN   30004
#define RPMPKGVERSION_MAX   40003

Functions

int genSourceRpmName (Spec spec)
int cpio_doio (FD_t fdo, Header h, CSA_t csa, const char *fmodeMacro)
int cpio_copy (FD_t fdo, CSA_t csa)
StringBuf addFileToTagAux (Spec spec, const char *file, StringBuf sb)
int addFileToTag (Spec spec, const char *file, Header h, int tag)
int addFileToArrayTag (Spec spec, const char *file, Header h, int tag)
int processScriptFiles (Spec spec, Package pkg)
int readRPM (const char *fileName, Spec *specp, struct rpmlead *lead, Header *sigs, CSA_t csa)
 Read rpm package components from file. More...

int rpmLeadVersion (void)
int writeRPM (Header *hdrp, const char *fileName, int type, CSA_t csa, char *passPhrase, const char **cookie)
 Write rpm package to file. More...

int packageBinaries (Spec spec)
int packageSources (Spec spec)

Variables

int rpmpkg_version = -1
int_32 copyTags []


Detailed Description

Assemble components of an RPM package.

Definition in file pack.c.


Define Documentation

#define _RPMFI_INTERNAL
 

Definition at line 17 of file pack.c.

#define RPMPKGVERSION_MAX   40003
 

Definition at line 381 of file pack.c.

Referenced by rpmLeadVersion.

#define RPMPKGVERSION_MIN   30004
 

Definition at line 380 of file pack.c.

Referenced by rpmLeadVersion.


Function Documentation

int addFileToArrayTag Spec    spec,
const char *    file,
Header    h,
int    tag
[static]
 

Definition at line 193 of file pack.c.

References addFileToTagAux, freeStringBuf, getStringBuf, headerAddOrAppendEntry, newStringBuf, and RPM_STRING_ARRAY_TYPE.

Referenced by processScriptFiles.

int addFileToTag Spec    spec,
const char *    file,
Header    h,
int    tag
[static]
 

Definition at line 169 of file pack.c.

References addFileToTagAux, appendLineStringBuf, freeStringBuf, getStringBuf, headerAddEntry, headerRemoveEntry, HGE_t, newStringBuf, and RPM_STRING_TYPE.

Referenced by processScriptFiles.

StringBuf addFileToTagAux Spec    spec,
const char *    file,
StringBuf    sb
[static]
 

Definition at line 131 of file pack.c.

References _, _free, appendStringBuf, expandMacros, Fclose, fdGetFp, Ferror, Fopen, freeStringBuf, and rpmGetPath.

Referenced by addFileToArrayTag, and addFileToTag.

int cpio_copy FD_t    fdo,
CSA_t    csa
[static]
 

Definition at line 106 of file pack.c.

References _, Ferror, Fread, Fstrerror, and Fwrite.

Referenced by writeRPM.

int cpio_doio FD_t    fdo,
Header    h,
CSA_t    csa,
const char *    fmodeMacro
[static]
 

Todo:
Create transaction set *much* earlier.

Definition at line 56 of file pack.c.

References _, _free, Fclose, fdDup, Fdopen, Fflush, Fileno, rpmExpand, rpmfi, rpmts, rpmtsCreate, rpmtsFree, and xstrdup.

Referenced by writeRPM.

int genSourceRpmName Spec    spec [inline, static]
 

Definition at line 37 of file pack.c.

References headerNVR, and xstrdup.

Referenced by packageBinaries, and packageSources.

int processScriptFiles Spec    spec,
Package    pkg
[static]
 

Definition at line 212 of file pack.c.

References _, addFileToArrayTag, addFileToTag, TriggerFileEntry::fileName, headerAddOrAppendEntry, TriggerFileEntry::next, TriggerFileEntry::prog, RPM_STRING_ARRAY_TYPE, RPMTAG_POSTIN, RPMTAG_POSTUN, RPMTAG_PREIN, RPMTAG_PREUN, RPMTAG_TRIGGERSCRIPTPROG, RPMTAG_TRIGGERSCRIPTS, RPMTAG_VERIFYSCRIPT, and TriggerFileEntry::script.

Referenced by packageBinaries.

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 283 of file pack.c.

References _, cpioSourceArchive_s::cpioFdIn, Fclose, fdDup, Ferror, Fopen, Fread, freeSpec, Fseek, Fstrerror, PackageStruct::header, headerFree, newPackage, newSpec, SpecStruct::packages, rpmRC, RPMRC_FAIL, RPMRC_NOKEY, RPMRC_NOTFOUND, RPMRC_NOTTRUSTED, RPMRC_OK, rpmReadPackageFile, rpmts, rpmtsCreate, rpmtsFree, and SEEK_SET.

Referenced by rewriteRPM.

int rpmLeadVersion void    [static]
 

Definition at line 385 of file pack.c.

References rpmExpandNumeric, rpmpkg_version, RPMPKGVERSION_MAX, and RPMPKGVERSION_MIN.

Referenced by writeRPM.

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 407 of file pack.c.

References _, _free, 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_YES, headerAddEntry, headerFree, headerLink, headerMergeLegacySigs, headerNVR, headerRead, headerReload, headerWrite, HGE_t, int_32, cpioSourceArchive_s::lead, makeTempFile, PGPHASHALGO_SHA1, providePackageNVR, RPM_INT32_TYPE, RPM_STRING_TYPE, rpmAddSignature, rpmExpand, rpmFreeSignature, rpmGetArchInfo, rpmGetOsInfo, RPMLEAD_BINARY, RPMLEAD_SOURCE, rpmLeadVersion, rpmlibNeedsFeature, RPMLOOKUPSIG_QUERY, rpmLookupSignatureType, rpmNewSignature, RPMRC_OK, RPMSIGTYPE_HEADERSIG, RPMTAG_ARCHIVESIZE, RPMTAG_COOKIE, RPMTAG_HEADERIMMUTABLE, RPMTAG_HEADERSIGNATURES, RPMTAG_PAYLOADCOMPRESSOR, RPMTAG_PAYLOADFLAGS, RPMTAG_PAYLOADFORMAT, rpmWriteSignature, SEEK_SET, Unlink, writeLead, and xstrdup.

Referenced by packageBinaries, packageSources, and rewriteRPM.


Variable Documentation

int_32 copyTags[] [static]
 

Initial value:

Definition at line 719 of file pack.c.

Referenced by packageBinaries.

int rpmpkg_version = -1 [static]
 

Definition at line 383 of file pack.c.

Referenced by rpmLeadVersion.


Generated on Tue Sep 17 15:56:48 2002 for rpm by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002