check build prerequisites before building from specfile.

CVS patchset: 3010
CVS date: 1999/04/17 14:23:42
This commit is contained in:
jbj 1999-04-17 14:23:42 +00:00
parent 68b321a44f
commit ba617e479d
12 changed files with 238 additions and 174 deletions

View File

@ -4,6 +4,8 @@
- remove inconsistent use of __P((...)) throughout.
- non-static inline functions caused IRIX cc pain.
- CPIOERR_CHECK_ERRNO masking caused AIX cc warnings.
- solaris 2.6+ needs statvfs.
- check build prerequisites before building from specfile.
2.93 -> 2.94
- fix: segfault while parsing target string.

76
build.c
View File

@ -3,11 +3,56 @@
#include "build/rpmbuild.h"
#include "popt/popt.h"
#include "build.h"
#include "install.h"
static int buildForTarget(const char *arg, int buildAmount, const char *passPhrase,
const char *buildRoot, int fromTarball, int test, char *cookie,
int force)
static int checkSpec(Header h)
{
char *rootdir = NULL;
rpmdb db = NULL;
int mode = O_RDONLY;
rpmTransactionSet ts;
struct rpmDependencyConflict * conflicts;
int numConflicts;
int rc;
if (!headerIsEntry(h, RPMTAG_REQUIREFLAGS))
return 0;
if (rpmdbOpen(rootdir, &db, mode, 0644)) {
const char *dn;
dn = rpmGetPath( (rootdir ? rootdir : ""), "%{_dbpath}", NULL);
rpmMessage(RPMMESS_ERROR, _("cannot open %s/packages.rpm\n"), dn);
xfree(dn);
exit(EXIT_FAILURE);
}
ts = rpmtransCreateSet(db, rootdir);
rc = rpmtransAddPackage(ts, h, NULL, NULL, 0, NULL);
rc = rpmdepCheck(ts, &conflicts, &numConflicts);
if (rc == 0 && conflicts) {
rpmMessage(RPMMESS_ERROR, _("failed build prerequisites:\n"));
printDepProblems(stderr, conflicts, numConflicts);
rpmdepFreeConflicts(conflicts, numConflicts);
rc = 1;
}
if (ts)
rpmtransFree(ts);
if (db)
rpmdbClose(db);
return rc;
}
static int buildForTarget(const char *arg, struct rpmBuildArguments *ba,
const char *passPhrase, int fromTarball, char *cookie,
int force, int nodeps)
{
int buildAmount = ba->buildAmount;
const char *buildRoot = ba->buildRootOverride;
int test = ba->noBuild;
FILE *f;
const char * specfile;
@ -140,6 +185,7 @@ static int buildForTarget(const char *arg, int buildAmount, const char *passPhra
s++;
}
/* Parse the spec file */
#define _anyarch(_f) \
(((_f)&(RPMBUILD_PREP|RPMBUILD_BUILD|RPMBUILD_INSTALL|RPMBUILD_PACKAGEBINARY)) == 0)
if (parseSpec(&spec, specfile, buildRoot, 0, passPhrase, cookie,
@ -148,6 +194,15 @@ static int buildForTarget(const char *arg, int buildAmount, const char *passPhra
}
#undef _anyarch
/* Assemble source header from parsed components */
initSourceHeader(spec);
/* Check build prerequisites */
if (!nodeps && checkSpec(spec->sourceHeader)) {
freeSpec(spec);
return 1;
}
if (buildSpec(spec, buildAmount, test)) {
freeSpec(spec);
return 1;
@ -160,16 +215,17 @@ static int buildForTarget(const char *arg, int buildAmount, const char *passPhra
return res;
}
int build(const char *arg, int buildAmount, const char *passPhrase,
const char *buildRoot, int fromTarball, int test, char *cookie,
const char * rcfile, char *targets, int force)
int build(const char *arg, struct rpmBuildArguments *ba, const char *passPhrase,
int fromTarball, char *cookie, const char * rcfile, int force,
int nodeps)
{
char *t, *te;
int rc;
char *targets = ba->targets;
if (targets == NULL) {
rc = buildForTarget(arg, buildAmount, passPhrase, buildRoot,
fromTarball, test, cookie, force);
rc = buildForTarget(arg, ba, passPhrase, fromTarball, cookie,
force, nodeps);
return rc;
}
@ -187,8 +243,8 @@ int build(const char *arg, int buildAmount, const char *passPhrase,
printf("Building for target %s\n", target);
rpmReadConfigFiles(rcfile, target);
rc = buildForTarget(arg, buildAmount, passPhrase, buildRoot,
fromTarball, test, cookie, force);
rc = buildForTarget(arg, ba, passPhrase, fromTarball, cookie,
force, nodeps);
if (rc)
return rc;

View File

@ -9,7 +9,7 @@ extern struct poptOption rpmBuildPoptTable[];
struct rpmBuildArguments {
int buildAmount;
char *buildRootOverride;
const char *buildRootOverride;
char *targets;
int useCatalog;
int noLang;
@ -18,9 +18,9 @@ struct rpmBuildArguments {
char buildChar;
};
int build(const char *arg, int buildAmount, const char *passPhrase,
const char *buildRoot, int fromTarball, int test, char *cookie,
const char * rcfile, char * buildplatforms, int force);
int build(const char *arg, struct rpmBuildArguments *ba, const char *passPhrase,
int fromTarball, char *cookie, const char * rcfile, int force,
int nodeps);
#ifdef __cplusplus
}

View File

@ -153,15 +153,13 @@ int buildSpec(Spec spec, int what, int test)
if (!spec->inBuildArchitectures && spec->buildArchitectureCount) {
/* When iterating over buildArchitectures, do the source */
/* packaging on the first run, and skip RMSOURCE altogether */
x = 0;
while (x < spec->buildArchitectureCount) {
for (x = 0; x < spec->buildArchitectureCount; x++) {
if ((rc = buildSpec(spec->buildArchitectureSpecs[x],
(what & ~RPMBUILD_RMSOURCE) |
(x ? 0 : (what & RPMBUILD_PACKAGESOURCE)),
test))) {
return rc;
}
x++;
}
} else {
if (what & RPMBUILD_PREP) {

View File

@ -1227,21 +1227,13 @@ static int processPackageFiles(Spec spec, Package pkg,
return fl.processingFailed;
}
int processSourceFiles(Spec spec)
void initSourceHeader(Spec spec)
{
struct Source *srcPtr;
StringBuf sourceFiles;
int x, isSpec = 1;
struct FileList fl;
char *s, **files, **fp, *fn;
HeaderIterator hi;
int tag, type, count;
Package pkg;
void * ptr;
sourceFiles = newStringBuf();
spec->sourceHeader = headerNew();
/* Only specific tags are added to the source package header */
hi = headerInitIterator(spec->packages->header);
while (headerNextIterator(hi, &tag, &type, &ptr, &count)) {
@ -1276,6 +1268,35 @@ int processSourceFiles(Spec spec)
}
headerFreeIterator(hi);
/* Add the build restrictions */
hi = headerInitIterator(spec->buildRestrictions);
while (headerNextIterator(hi, &tag, &type, &ptr, &count)) {
headerAddEntry(spec->sourceHeader, tag, type, ptr, count);
if (type == RPM_STRING_ARRAY_TYPE || type == RPM_I18NSTRING_TYPE)
FREE(ptr);
}
headerFreeIterator(hi);
if (spec->buildArchitectureCount) {
headerAddEntry(spec->sourceHeader, RPMTAG_BUILDARCHS,
RPM_STRING_ARRAY_TYPE,
spec->buildArchitectures, spec->buildArchitectureCount);
}
}
int processSourceFiles(Spec spec)
{
struct Source *srcPtr;
StringBuf sourceFiles;
int x, isSpec = 1;
struct FileList fl;
char *s, **files, **fp, *fn;
Package pkg;
sourceFiles = newStringBuf();
/* XXX This is where the source header used to be initialized. */
/* Construct the file list and source entries */
appendLineStringBuf(sourceFiles, spec->specFile);
for (srcPtr = spec->sources; srcPtr != NULL; srcPtr = srcPtr->next) {

View File

@ -41,9 +41,6 @@ static int genSourceRpmName(Spec spec)
int packageSources(Spec spec)
{
CSA_t csabuf, *csa = &csabuf;
HeaderIterator iter;
int_32 tag, type, count;
char **ptr;
int rc;
/* Add some cruft */
@ -61,20 +58,6 @@ int packageSources(Spec spec)
genSourceRpmName(spec);
/* Add the build restrictions */
iter = headerInitIterator(spec->buildRestrictions);
while (headerNextIterator(iter, &tag, &type, (void **)&ptr, &count)) {
headerAddEntry(spec->sourceHeader, tag, type, ptr, count);
if (type == RPM_STRING_ARRAY_TYPE || type == RPM_I18NSTRING_TYPE)
FREE(ptr);
}
headerFreeIterator(iter);
if (spec->buildArchitectureCount) {
headerAddEntry(spec->sourceHeader, RPMTAG_BUILDARCHS,
RPM_STRING_ARRAY_TYPE,
spec->buildArchitectures, spec->buildArchitectureCount);
}
FREE(spec->cookie);
/* XXX this should be %_srpmdir */

View File

@ -136,6 +136,7 @@ int addReqProv(Spec spec, Header h,
/* from build/files.h */
int processBinaryFiles(Spec spec, int installSpecialDoc, int test);
void initSourceHeader(Spec spec);
int processSourceFiles(Spec spec);
/* global entry points */

View File

@ -7,8 +7,6 @@
#include "ftp.h"
static void printHash(const unsigned long amount, const unsigned long total);
static void printDepProblems(FILE * f, struct rpmDependencyConflict * conflicts,
int numConflicts);
static void * showProgress(const Header h, const rpmCallbackType what,
const unsigned long amount,
const unsigned long total,
@ -490,7 +488,7 @@ void printDepFlags(FILE * f, const char * version, int flags) {
fprintf(f, " %s", version);
}
static void printDepProblems(FILE * f, struct rpmDependencyConflict * conflicts,
void printDepProblems(FILE * f, struct rpmDependencyConflict * conflicts,
int numConflicts) {
int i;

View File

@ -20,6 +20,8 @@ int doSourceInstall(const char * prefix, const char * arg, const char ** specFil
int doUninstall(const char * rootdir, const char ** argv, int uninstallFlags,
int interfaceFlags);
void printDepFlags(FILE * f, const char * version, int flags);
void printDepProblems(FILE * f, struct rpmDependencyConflict * conflicts,
int numConflicts);
#endif

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 1999-04-16 19:17-0400\n"
"POT-Creation-Date: 1999-04-17 10:16-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -14,86 +14,95 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: ../build.c:39 ../build.c:52
#: ../build.c:25 ../install.c:221 ../install.c:377
#, c-format
msgid "cannot open %s/packages.rpm\n"
msgstr ""
#: ../build.c:35
msgid "failed build prerequisites:\n"
msgstr ""
#: ../build.c:84 ../build.c:97
#, c-format
msgid "Failed to open tar pipe: %s\n"
msgstr ""
#. Give up
#: ../build.c:60
#: ../build.c:105
#, c-format
msgid "Failed to read spec file from %s\n"
msgstr ""
#: ../build.c:85
#: ../build.c:130
#, c-format
msgid "Failed to rename %s to %s: %s\n"
msgstr ""
#: ../build.c:123
#: ../build.c:168
#, c-format
msgid "File is not a regular file: %s\n"
msgstr ""
#: ../build.c:128
#: ../build.c:173
#, c-format
msgid "Unable to open spec file: %s\n"
msgstr ""
#: ../build.c:136
#: ../build.c:181
#, c-format
msgid "File contains non-printable characters(%c): %s\n"
msgstr ""
#: ../build.c:229
#: ../build.c:285
msgid "buildroot already specified"
msgstr ""
#: ../build.c:235
#: ../build.c:291
msgid "--buildarch has been obsoleted. Use the --target option instead.\n"
msgstr ""
#: ../build.c:239
#: ../build.c:295
msgid "--buildos has been obsoleted. Use the --target option instead.\n"
msgstr ""
#: ../build.c:260
#: ../build.c:316
msgid "override build architecture"
msgstr ""
#: ../build.c:262
#: ../build.c:318
msgid "override build operating system"
msgstr ""
#: ../build.c:264
#: ../build.c:320
msgid "override build root"
msgstr ""
#: ../build.c:266 ../rpm.c:454
#: ../build.c:322 ../rpm.c:454
msgid "remove build tree when done"
msgstr ""
#: ../build.c:268
#: ../build.c:324
msgid "do not execute any stages of the build"
msgstr ""
#: ../build.c:270
#: ../build.c:326
msgid "do not accept I18N msgstr's from specfile"
msgstr ""
#: ../build.c:272
#: ../build.c:328
msgid "remove sources and specfile when done"
msgstr ""
#: ../build.c:274 ../rpm.c:452
#: ../build.c:330 ../rpm.c:452
msgid "skip straight to specified stage (only for c,i)"
msgstr ""
#: ../build.c:276
#: ../build.c:332
msgid "override target platform"
msgstr ""
#: ../build.c:278
#: ../build.c:334
msgid "lookup I18N strings in specfile catalog"
msgstr ""
@ -130,7 +139,7 @@ msgstr ""
msgid "Couldn't write header/archive to temp file"
msgstr ""
#: ../build/pack.c:347 ../checksig.c:91
#: ../build/pack.c:330 ../checksig.c:91
#, c-format
msgid "Generating signature: %d\n"
msgstr ""
@ -263,122 +272,117 @@ msgstr ""
msgid "Unknown or unexpected error"
msgstr ""
#: ../install.c:129
#: ../install.c:127
msgid "counting packages to install\n"
msgstr ""
#: ../install.c:133
#: ../install.c:131
#, c-format
msgid "found %d packages\n"
msgstr ""
#: ../install.c:142
#: ../install.c:140
msgid "looking for packages to download\n"
msgstr ""
#: ../install.c:153
#: ../install.c:151
#, c-format
msgid "Retrieving %s\n"
msgstr ""
#: ../install.c:162
#: ../install.c:160
#, c-format
msgid " ... as %s\n"
msgstr ""
#: ../install.c:166
#: ../install.c:164
#, c-format
msgid "skipping %s - transfer failed - %s\n"
msgstr ""
#: ../install.c:183
#: ../install.c:181
#, c-format
msgid "retrieved %d packages\n"
msgstr ""
#: ../install.c:192 ../install.c:329
#: ../install.c:190 ../install.c:327
#, c-format
msgid "cannot open file %s\n"
msgstr ""
#: ../install.c:204 ../lib/query.c:540
#: ../install.c:202 ../lib/query.c:540
#, c-format
msgid "%s does not appear to be a RPM package\n"
msgstr ""
#: ../install.c:208 ../install.c:466
#: ../install.c:206 ../install.c:464
#, c-format
msgid "%s cannot be installed\n"
msgstr ""
#: ../install.c:223 ../install.c:379
#, c-format
msgid "cannot open %s/packages.rpm\n"
msgstr ""
#: ../install.c:244
#: ../install.c:242
#, c-format
msgid "package %s is not relocateable\n"
msgstr ""
#: ../install.c:256
#: ../install.c:254
#, c-format
msgid "error reading from file %s\n"
msgstr ""
#: ../install.c:259
#: ../install.c:257
#, c-format
msgid "file %s requires a newer version of RPM\n"
msgstr ""
#: ../install.c:274
#: ../install.c:272
#, c-format
msgid "found %d source and %d binary packages\n"
msgstr ""
#: ../install.c:284
#: ../install.c:282
msgid "failed dependencies:\n"
msgstr ""
#: ../install.c:302
#: ../install.c:300
msgid "installing binary packages\n"
msgstr ""
#: ../install.c:390 ../lib/query.c:685 ../verify.c:243
#: ../install.c:388 ../lib/query.c:685 ../verify.c:243
#, c-format
msgid "package %s is not installed\n"
msgstr ""
#: ../install.c:394
#: ../install.c:392
#, c-format
msgid "searching for package %s\n"
msgstr ""
#: ../install.c:403
#: ../install.c:401
#, c-format
msgid "\"%s\" specifies multiple packages\n"
msgstr ""
#: ../install.c:429
#: ../install.c:427
msgid "removing these packages would break dependencies:\n"
msgstr ""
#: ../install.c:456
#: ../install.c:454
#, c-format
msgid "cannot open %s\n"
msgstr ""
#: ../install.c:461
#: ../install.c:459
#, c-format
msgid "Installing %s\n"
msgstr ""
#: ../install.c:505
#: ../install.c:503
#, c-format
msgid " is needed by %s-%s-%s\n"
msgstr ""
#: ../install.c:508
#: ../install.c:506
#, c-format
msgid " conflicts with %s-%s-%s\n"
msgstr ""
@ -1310,129 +1314,129 @@ msgid ""
"verification"
msgstr ""
#: ../rpm.c:1031
#: ../rpm.c:1032
msgid ""
"--nodeps may only be specified during package installation, erasure, and "
"verification"
"--nodeps may only be specified during package building, installation, "
"erasure, and verification"
msgstr ""
#: ../rpm.c:1035
#: ../rpm.c:1036
msgid "--nofiles may only be specified during package verification"
msgstr ""
#: ../rpm.c:1040
#: ../rpm.c:1041
msgid ""
"--test may only be specified during package installation, erasure, and "
"building"
msgstr ""
#: ../rpm.c:1045
#: ../rpm.c:1046
msgid ""
"--root (-r) may only be specified during installation, erasure, querying, "
"and database rebuilds"
msgstr ""
#: ../rpm.c:1050
#: ../rpm.c:1051
msgid "arguments to --root (-r) must begin with a /"
msgstr ""
#: ../rpm.c:1054
#: ../rpm.c:1055
msgid "--clean may only be used with -b and -t"
msgstr ""
#: ../rpm.c:1057
#: ../rpm.c:1058
msgid "--rmsource may only be used with -b and -t"
msgstr ""
#: ../rpm.c:1060
#: ../rpm.c:1061
msgid "--short-circuit may only be used during package building"
msgstr ""
#: ../rpm.c:1064
#: ../rpm.c:1065
msgid "--short-circuit may only be used with -bc, -bi, -bs, -tc -ti, or -ts"
msgstr ""
#: ../rpm.c:1070
#: ../rpm.c:1071
msgid "--oldpackage may only be used during upgrades"
msgstr ""
#: ../rpm.c:1075
#: ../rpm.c:1076
msgid ""
"ftp options can only be used during package queries, installs, and upgrades"
msgstr ""
#: ../rpm.c:1081
#: ../rpm.c:1082
msgid ""
"http options can only be used during package queries, installs, and upgrades"
msgstr ""
#: ../rpm.c:1085
#: ../rpm.c:1086
msgid "--nopgp may only be used during signature checking"
msgstr ""
#: ../rpm.c:1088
#: ../rpm.c:1089
msgid "--nogpg may only be used during signature checking"
msgstr ""
#: ../rpm.c:1091
#: ../rpm.c:1092
msgid ""
"--nomd5 may only be used during signature checking and package verification"
msgstr ""
#: ../rpm.c:1117
#: ../rpm.c:1118
#, c-format
msgid "cannot access file %s\n"
msgstr ""
#: ../rpm.c:1134
#: ../rpm.c:1135
msgid "pgp not found: "
msgstr ""
#: ../rpm.c:1137
#: ../rpm.c:1138
msgid "Use `%%_signature pgp5' instead of `%%_signature pgp' in macro file.\n"
msgstr ""
#: ../rpm.c:1144
#: ../rpm.c:1145
msgid "pgp version 5 not found: "
msgstr ""
#: ../rpm.c:1147
#: ../rpm.c:1148
msgid "Use `%%_signature pgp' instead of `%%_signature pgp5' in macro file.\n"
msgstr ""
#: ../rpm.c:1154
#: ../rpm.c:1155
msgid "Pass phrase check failed\n"
msgstr ""
#: ../rpm.c:1157
#: ../rpm.c:1158
msgid "Pass phrase is good.\n"
msgstr ""
#: ../rpm.c:1164
#: ../rpm.c:1165
msgid "Invalid %%_signature spec in macro file.\n"
msgstr ""
#: ../rpm.c:1169
#: ../rpm.c:1170
msgid "--sign may only be used during package building"
msgstr ""
#: ../rpm.c:1186
#: ../rpm.c:1187
msgid "exec failed\n"
msgstr ""
#: ../rpm.c:1205
#: ../rpm.c:1206
msgid "unexpected arguments to --querytags "
msgstr ""
#: ../rpm.c:1216
#: ../rpm.c:1217
msgid "no packages given for signature check"
msgstr ""
#: ../rpm.c:1224
#: ../rpm.c:1225
msgid "no packages given for signing"
msgstr ""
#: ../rpm.c:1233
#: ../rpm.c:1234
msgid "no packages files given for rebuild"
msgstr ""
@ -1444,23 +1448,23 @@ msgstr ""
msgid "no tar files given for build"
msgstr ""
#: ../rpm.c:1305
#: ../rpm.c:1304
msgid "no packages given for uninstall"
msgstr ""
#: ../rpm.c:1354
#: ../rpm.c:1353
msgid "no packages given for install"
msgstr ""
#: ../rpm.c:1376
#: ../rpm.c:1375
msgid "extra arguments given for query of all packages"
msgstr ""
#: ../rpm.c:1382
#: ../rpm.c:1381
msgid "no arguments given for query"
msgstr ""
#: ../rpm.c:1400
#: ../rpm.c:1399
msgid "no arguments given for verify"
msgstr ""
@ -1550,7 +1554,7 @@ msgstr ""
msgid "error looking for package %s\n"
msgstr ""
#: ../build/build.c:81 ../build/pack.c:265
#: ../build/build.c:81 ../build/pack.c:248
msgid "Unable to open temp file"
msgstr ""
@ -1721,65 +1725,65 @@ msgstr ""
msgid "Could not open %%files file: %s"
msgstr ""
#: ../build/files.c:1097 ../build/pack.c:450
#: ../build/files.c:1097 ../build/pack.c:433
#, c-format
msgid "line: %s"
msgstr ""
#: ../build/files.c:1365 ../build/parsePrep.c:31
#: ../build/files.c:1386 ../build/parsePrep.c:31
#, c-format
msgid "Bad owner/group: %s"
msgstr ""
#: ../build/files.c:1419
#: ../build/files.c:1440
#, c-format
msgid "Couldn't exec %s"
msgstr ""
#: ../build/files.c:1423
#: ../build/files.c:1444
#, c-format
msgid "Couldn't fork %s"
msgstr ""
#: ../build/files.c:1473
#: ../build/files.c:1494
#, c-format
msgid "%s failed"
msgstr ""
#: ../build/files.c:1477
#: ../build/files.c:1498
#, c-format
msgid "failed to write all data to %s"
msgstr ""
#: ../build/files.c:1511
#: ../build/files.c:1532
msgid "Finding provides...\n"
msgstr ""
#: ../build/files.c:1518
#: ../build/files.c:1539
msgid "Failed to find provides"
msgstr ""
#: ../build/files.c:1537
#: ../build/files.c:1558
msgid "Finding requires...\n"
msgstr ""
#: ../build/files.c:1544
#: ../build/files.c:1565
msgid "Failed to find requires"
msgstr ""
#: ../build/files.c:1578
#: ../build/files.c:1599
msgid "Provides:"
msgstr ""
#: ../build/files.c:1593
#: ../build/files.c:1614
msgid "Prereqs:"
msgstr ""
#: ../build/files.c:1605
#: ../build/files.c:1626
msgid "Requires:"
msgstr ""
#: ../build/files.c:1629
#: ../build/files.c:1650
#, c-format
msgid "Processing files: %s\n"
msgstr ""
@ -1797,96 +1801,96 @@ msgstr ""
msgid "Could not canonicalize hostname: %s\n"
msgstr ""
#: ../build/pack.c:151
#: ../build/pack.c:134
#, c-format
msgid "Could not generate output filename for package %s: %s\n"
msgstr ""
#: ../build/pack.c:184
#: ../build/pack.c:167
#, c-format
msgid "readRPM: open %s: %s\n"
msgstr ""
#: ../build/pack.c:194
#: ../build/pack.c:177
#, c-format
msgid "readRPM: read %s: %s\n"
msgstr ""
#: ../build/pack.c:214
#: ../build/pack.c:197
#, c-format
msgid "readRPM: %s is not an RPM package\n"
msgstr ""
#: ../build/pack.c:220
#: ../build/pack.c:203
#, c-format
msgid "readRPM: reading header from %s\n"
msgstr ""
#: ../build/pack.c:276
#: ../build/pack.c:259
msgid "Bad CSA data"
msgstr ""
#: ../build/pack.c:299
#: ../build/pack.c:282
#, c-format
msgid "Could not open %s\n"
msgstr ""
#: ../build/pack.c:331 ../build/pack.c:374
#: ../build/pack.c:314 ../build/pack.c:357
#, c-format
msgid "Unable to write package: %s"
msgstr ""
#: ../build/pack.c:364
#: ../build/pack.c:347
#, c-format
msgid "Unable to read sigtarget: %s"
msgstr ""
#: ../build/pack.c:389
#: ../build/pack.c:372
#, c-format
msgid "Wrote: %s\n"
msgstr ""
#: ../build/pack.c:404
#: ../build/pack.c:387
#, c-format
msgid "create archive failed on file %s: %s"
msgstr ""
#: ../build/pack.c:420
#: ../build/pack.c:403
#, c-format
msgid "cpio_copy write failed: %s"
msgstr ""
#: ../build/pack.c:427
#: ../build/pack.c:410
#, c-format
msgid "cpio_copy read failed: %s"
msgstr ""
#: ../build/pack.c:506
#: ../build/pack.c:489
#, c-format
msgid "Could not open PreIn file: %s"
msgstr ""
#: ../build/pack.c:513
#: ../build/pack.c:496
#, c-format
msgid "Could not open PreUn file: %s"
msgstr ""
#: ../build/pack.c:520
#: ../build/pack.c:503
#, c-format
msgid "Could not open PostIn file: %s"
msgstr ""
#: ../build/pack.c:527
#: ../build/pack.c:510
#, c-format
msgid "Could not open PostUn file: %s"
msgstr ""
#: ../build/pack.c:535
#: ../build/pack.c:518
#, c-format
msgid "Could not open VerifyScript file: %s"
msgstr ""
#: ../build/pack.c:551
#: ../build/pack.c:534
#, c-format
msgid "Could not open Trigger script file: %s"
msgstr ""

13
rpm.c
View File

@ -611,7 +611,7 @@ int main(int argc, char ** argv) {
if (queryArgs.queryFormat) free(queryArgs.queryFormat);
memset(&queryArgs, 0, sizeof(queryArgs));
if (buildArgs.buildRootOverride) free(buildArgs.buildRootOverride);
if (buildArgs.buildRootOverride) xfree(buildArgs.buildRootOverride);
if (buildArgs.targets) free(buildArgs.targets);
memset(&buildArgs, 0, sizeof(buildArgs));
buildArgs.buildChar = ' ';
@ -1027,9 +1027,10 @@ int main(int argc, char ** argv) {
"installation, erasure, and verification"));
if (bigMode != MODE_INSTALL && bigMode != MODE_UNINSTALL &&
bigMode != MODE_BUILD && bigMode != MODE_TARBUILD &&
bigMode != MODE_VERIFY && noDeps)
argerror(_("--nodeps may only be specified during package "
"installation, erasure, and verification"));
"building, installation, erasure, and verification"));
if (bigMode != MODE_VERIFY && noFiles)
argerror(_("--nofiles may only be specified during package "
@ -1244,8 +1245,7 @@ int main(int argc, char ** argv) {
if (doSourceInstall("/", pkg, &specFile, &cookie))
exit(EXIT_FAILURE);
if (build(specFile, buildArgs.buildAmount, passPhrase, buildArgs.buildRootOverride,
0, buildArgs.noBuild, cookie, rcfile, buildArgs.targets, force)) {
if (build(specFile, &buildArgs, passPhrase, 0, cookie, rcfile, force, noDeps)) {
exit(EXIT_FAILURE);
}
free(cookie);
@ -1293,9 +1293,8 @@ int main(int argc, char ** argv) {
}
while ((pkg = poptGetArg(optCon)))
if (build(pkg, buildArgs.buildAmount, passPhrase, buildArgs.buildRootOverride,
bigMode == MODE_TARBUILD, buildArgs.noBuild, NULL,
rcfile, buildArgs.targets, force)) {
if (build(pkg, &buildArgs, passPhrase, bigMode == MODE_TARBUILD,
NULL, rcfile, force, noDeps)) {
exit(EXIT_FAILURE);
}
break;

View File

@ -2,7 +2,7 @@ Summary: The Red Hat package management system.
Name: rpm
%define version 2.95
Version: %{version}
Release: 7
Release: 8
Group: System Environment/Base
Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-2.5.x/rpm-%{version}.tar.gz
Copyright: GPL