rpm
5.4.15
|
Assemble components of an RPM package. More...
#include "system.h"
#include <rpmio_internal.h>
#include <rpmcb.h>
#include <argv.h>
#include <rpmtypes.h>
#include <rpmtag.h>
#include <pkgio.h>
#include "signature.h"
#include <rpmbuild.h>
#include "rpmfi.h"
#include "fsm.h"
#include <rpmversion.h>
#include "buildio.h"
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | _RPMFI_INTERNAL /* XXX fi->fsm */ |
#define | _RPMEVR_INTERNAL /* XXX RPMSENSE_ANY */ |
#define | _RPMTAG_INTERNAL |
Functions | |
static rpmRC | cpio_doio (FD_t fdo, Header h, CSA_t csa, const char *payload_format, const char *fmodeMacro) |
static rpmRC | cpio_copy (FD_t fdo, CSA_t csa) |
static rpmiob | addFileToTagAux (Spec spec, const char *file, rpmiob iob) |
static int | addFileToTag (Spec spec, const char *file, Header h, rpmTag tag) |
static int | addFileToArrayTag (Spec spec, const char *file, Header h, rpmTag tag) |
rpmRC | processScriptFiles (Spec spec, Package pkg) |
Append files (if any) to scriptlet tags. More... | |
void | providePackageNVR (Header h) |
Retrofit an explicit Provides: N = E:V-R dependency into package headers. More... | |
static unsigned char | nibble (char c) |
Convert hex to binary nibble. More... | |
rpmRC | writeRPM (Header *hdrp, unsigned char **pkgidp, const char *fn, CSA_t csa, char *passPhrase, const char **cookie, void *_dig) |
Write rpm package to file. More... | |
static int | rpmlibMarkers (Header h) |
static rpmRC | checkPackages (const char *pkgcheck) |
rpmRC | packageBinaries (Spec spec) |
Generate binary package(s). More... | |
rpmRC | packageSources (Spec spec) |
Generate source package. More... | |
Variables | |
static rpmTag | copyTags [] |
Assemble components of an RPM package.
Definition in file pack.c.
Definition at line 188 of file pack.c.
References addFileToTagAux(), alloca(), _HE_s::append, rpmDataType_u::argv, _HE_s::c, headerPut(), _HE_s::p, RPM_STRING_ARRAY_TYPE, rpmiobFree(), rpmiobNew(), rpmiobStr(), _HE_s::t, and _HE_s::tag.
Referenced by processScriptFiles().
Definition at line 157 of file pack.c.
References _free(), addFileToTagAux(), alloca(), _HE_s::c, headerDel(), headerGet(), headerPut(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_TYPE, rpmiobAppend(), rpmiobFree(), rpmiobNew(), rpmiobStr(), rpmDataType_u::str, _HE_s::t, and _HE_s::tag.
Referenced by processScriptFiles().
Definition at line 120 of file pack.c.
References _, _free(), expandMacros(), Fclose(), fdGetFp(), Ferror(), Fopen(), Spec_s::macros, rpmGetPath(), rpmiobAppend(), rpmiobFree(), rpmlog(), and RPMLOG_ERR.
Referenced by addFileToArrayTag(), and addFileToTag().
|
static |
Definition at line 1154 of file pack.c.
References _, fail, rpmExpandNumeric(), rpmlog(), RPMLOG_ERR, RPMLOG_NOTICE, RPMRC_FAIL, and RPMRC_OK.
Referenced by packageBinaries(), and packageSources().
Definition at line 95 of file pack.c.
References _, cpioSourceArchive_s::cpioArchiveSize, cpioSourceArchive_s::cpioFdIn, Ferror(), Fread(), Fstrerror(), Fwrite(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, and RPMRC_OK.
Referenced by writeRPM().
|
static |
Definition at line 40 of file pack.c.
References _, _free(), cpioSourceArchive_s::cpioArchiveSize, Fclose(), fdDup(), Fdopen(), Fflush(), fi, cpioSourceArchive_s::fi, Fileno(), fsmSetup(), fsmTeardown(), IOSM_PKGBUILD, iosmStrerror(), rpmExpand(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, rpmtsCreate(), rpmtsFree(), ts, and xstrdup().
Referenced by writeRPM().
|
static |
Convert hex to binary nibble.
c | hex character |
Definition at line 628 of file pack.c.
Referenced by writeRPM().
Generate binary package(s).
spec | spec file control structure |
Definition at line 1174 of file pack.c.
References _, _free(), _rpmbuildFlags, alloca(), argvAdd(), argvCount(), argvFree(), _HE_s::c, checkPackages(), Spec_s::cookie, Spec_s::dig, errno, fdFree(), fdNew(), Package_s::fi, Package_s::fileList, Package_s::header, headerCopyTags(), headerGet(), headerPut(), headerSprintf(), i, Package_s::next, _HE_s::p, Spec_s::packages, Spec_s::passPhrase, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_STRING_TYPE, rpmExpand(), rpmfiFree(), rpmfiLink(), rpmGetPath(), rpmHeaderFormats, rpmioMkpath(), rpmlibMarkers(), rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMTAG_COOKIE, RPMTAG_NVRA, RPMTAG_OPTFLAGS, RPMTAG_SOURCEPKGID, Spec_s::sourcePkgId, Stat(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, writeRPM(), and xcalloc().
Referenced by buildSpec().
Generate source package.
spec | spec file control structure |
Definition at line 1326 of file pack.c.
References _free(), alloca(), rpmDataType_u::argv, argvCount(), argvFree(), _HE_s::c, checkPackages(), Spec_s::cookie, Spec_s::dig, fdFree(), fdNew(), Spec_s::fi, headerPut(), _HE_s::p, Spec_s::passPhrase, RPM_STRING_ARRAY_TYPE, RPM_UINT32_TYPE, rpmExpand(), rpmfiFree(), rpmfiLink(), rpmGetMacroEntries(), rpmGetPath(), rpmioMkpath(), rpmlibMarkers(), RPMRC_FAIL, RPMRC_OK, RPMSCRIPT_MAX, RPMTAG_BUILDMACROS, RPMTAG_SCRIPTMETRICS, RPMTAG_SCRIPTSTATES, RPMTAG_SOURCEPACKAGE, Spec_s::smetrics, Spec_s::sourceHeader, Spec_s::sourcePkgId, Spec_s::sourceRpmName, Spec_s::sstates, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, and writeRPM().
Referenced by buildSpec().
Append files (if any) to scriptlet tags.
spec | spec file control structure |
pkg | package control structure |
Definition at line 214 of file pack.c.
References _, addFileToArrayTag(), addFileToTag(), alloca(), _HE_s::append, rpmDataType_u::argv, _HE_s::c, TriggerFileEntry::fileName, Package_s::header, headerPut(), TriggerFileEntry::next, _HE_s::p, Package_s::postInFile, Package_s::postTransFile, Package_s::postUnFile, Package_s::preInFile, Package_s::preTransFile, Package_s::preUnFile, TriggerFileEntry::prog, RPM_STRING_ARRAY_TYPE, rpmlog(), RPMLOG_ERR, RPMRC_FAIL, RPMRC_OK, RPMTAG_POSTIN, RPMTAG_POSTTRANS, RPMTAG_POSTUN, RPMTAG_PREIN, RPMTAG_PRETRANS, RPMTAG_PREUN, RPMTAG_SANITYCHECK, RPMTAG_TRIGGERSCRIPTPROG, RPMTAG_TRIGGERSCRIPTS, RPMTAG_VERIFYSCRIPT, Package_s::sanityCheckFile, TriggerFileEntry::script, _HE_s::t, _HE_s::tag, Package_s::triggerFiles, and Package_s::verifyFile.
Referenced by processBinaryFiles().
void providePackageNVR | ( | Header | h | ) |
Retrofit an explicit Provides: N = E:V-R dependency into package headers.
Up to rpm 3.0.4, packages implicitly provided their own name-version-release.
h | header |
Definition at line 454 of file pack.c.
References _free(), alloca(), _HE_s::append, rpmDataType_u::argv, _HE_s::c, headerGet(), headerNEVRA(), headerPut(), i, _HE_s::p, rpmDataType_u::ptr, RPM_STRING_ARRAY_TYPE, RPM_UINT32_TYPE, RPMSENSE_EQUAL, RPMTAG_DISTEPOCH, RPMTAG_EPOCH, RPMTAG_PROVIDEFLAGS, RPMTAG_PROVIDENAME, RPMTAG_PROVIDEVERSION, stpcpy(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, and rpmDataType_u::ui32p.
Referenced by processBinaryFiles().
|
static |
Definition at line 1094 of file pack.c.
References _free(), _rpmbuildFlags, alloca(), buildHost(), _HE_s::c, getBuildTime(), headerPut(), _HE_s::p, rpmDataType_u::ptr, RPM_STRING_TYPE, RPM_UINT32_TYPE, rpmlibTimestamp(), rpmlibVendor(), rpmlibVersion(), RPMTAG_BUILDHOST, RPMTAG_BUILDTIME, RPMTAG_RPMLIBTIMESTAMP, RPMTAG_RPMLIBVENDOR, RPMTAG_RPMLIBVERSION, RPMTAG_RPMVERSION, rpmDataType_u::str, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, VERSION, and xstrdup().
Referenced by packageBinaries(), and packageSources().
rpmRC writeRPM | ( | Header * | hdrp, |
unsigned char ** | pkgidp, | ||
const char * | fileName, | ||
CSA_t | csa, | ||
char * | passPhrase, | ||
const char ** | cookie, | ||
void * | _dig | ||
) |
Write rpm package to file.
*hdrp | header to write (final header is returned). |
*pkgidp | header+payload MD5 of package (NULL to disable). |
fileName | file name of package |
csa | |
passPhrase |
cookie | generated cookie (i.e build host/time) |
_dig | DSA keypair for auto-signing (or NULL) |
Definition at line 640 of file pack.c.
References _, _free(), alloca(), _HE_s::append, rpmDataType_u::argv, b, buildHost(), _HE_s::c, cpio_copy(), cpio_doio(), cpioSourceArchive_s::cpioArchiveSize, cpioSourceArchive_s::cpioFdIn, _FD_s::digests, Fclose(), fdFiniDigest(), fdInitDigest(), Ferror(), Fflush(), cpioSourceArchive_s::fi, Fileno(), Fopen(), Fread(), Fstrerror(), Fwrite(), getBuildTime(), headerFree(), headerGet(), headerIsEntry(), headerLink(), headerMergeLegacySigs(), headerNEVRA(), headerNew(), headerPut(), headerReload(), headerUnload(), _FD_s::ndigests, nibble(), _HE_s::p, PGPARMOR_PUBKEY, pgpArmorWrap(), pgpExportSignature(), pgpGetPubkey(), pgpGetSignature(), PGPHASHALGO_SHA1, PGPPUBKEYALGO_DSA, PGPPUBKEYALGO_ECDSA, PGPPUBKEYALGO_RSA, rpmDataType_u::ptr, RPM_BIN_TYPE, RPM_STRING_ARRAY_TYPE, RPM_STRING_TYPE, RPM_UINT32_TYPE, rpmAddSignature(), rpmDigestDup(), rpmExpand(), rpmlibNeedsFeature(), rpmlog(), RPMLOG_ERR, RPMLOG_NOTICE, rpmpkgRead(), rpmpkgSizeof(), rpmpkgWrite(), RPMRC_FAIL, RPMRC_OK, RPMSIGTAG_DSA, RPMSIGTAG_ECDSA, RPMSIGTAG_GPG, RPMSIGTAG_MD5, RPMSIGTAG_PADDING, RPMSIGTAG_PAYLOADSIZE, RPMSIGTAG_RSA, RPMSIGTAG_SHA1, RPMSIGTAG_SIZE, RPMTAG_ARCH, RPMTAG_COOKIE, RPMTAG_HEADERIMMUTABLE, RPMTAG_HEADERSIGNATURES, RPMTAG_PAYLOADCOMPRESSOR, RPMTAG_PAYLOADFLAGS, RPMTAG_PAYLOADFORMAT, RPMTAG_PUBKEYS, RPMTAG_SOURCERPM, rpmTempFile(), rpmDataType_u::str, _HE_s::t, _HE_s::tag, rpmDataType_u::ui32p, rpmDataType_u::ui8p, Unlink(), and xstrdup().
Referenced by packageBinaries(), and packageSources().
|
static |