- fix: extra newline in many error messages (#23947).

- fix: rpm -Va with db1 needs per-iterator, not per-index, offset.
- add install/remove transaction id tags.

CVS patchset: 4441
CVS date: 2001/01/15 23:09:42
This commit is contained in:
jbj 2001-01-15 23:09:42 +00:00
parent 082ccecf35
commit c74cc1df1c
99 changed files with 18690 additions and 16882 deletions

View File

@ -103,6 +103,9 @@
- fix: don't hang on build error.
- fix: remove "error: " prefix from signature verification message.
- hack: permit installer to determine package ordering using 1000003 tag.
- fix: extra newline in many error messages (#23947).
- fix: rpm -Va with db1 needs per-iterator, not per-index, offset.
- add install/remove transaction id tags.
3.0.6 -> 4.0
- use DIRNAMES/BASENAMES/DIRINDICES not FILENAMES in packages and db.

20
build.c
View File

@ -62,7 +62,8 @@ static int isSpecFile(const char *specfile)
fd = Fopen(specfile, "r.ufdio");
if (fd == NULL || Ferror(fd)) {
rpmError(RPMERR_OPEN, _("Unable to open spec file %s: %s\n"), specfile, Fstrerror(fd));
rpmError(RPMERR_OPEN, _("Unable to open spec file %s: %s\n"),
specfile, Fstrerror(fd));
return 0;
}
count = Fread(buf, sizeof(buf[0]), sizeof(buf), fd);
@ -126,7 +127,7 @@ static int buildForTarget(const char *arg, struct rpmBuildArguments *ba,
sprintf(cmd, "%s < %s | tar xOvf - Specfile 2>&1 > %s",
zcmds[res & 0x3], arg, tmpSpecFile);
if (!(fp = popen(cmd, "r"))) {
rpmError(RPMERR_POPEN, _("Failed to open tar pipe: %m"));
rpmError(RPMERR_POPEN, _("Failed to open tar pipe: %m\n"));
free((void *)specDir);
free((void *)tmpSpecFile);
return 1;
@ -138,14 +139,15 @@ static int buildForTarget(const char *arg, struct rpmBuildArguments *ba,
sprintf(cmd, "%s < %s | tar xOvf - \\*.spec 2>&1 > %s",
zcmds[res & 0x3], arg, tmpSpecFile);
if (!(fp = popen(cmd, "r"))) {
rpmError(RPMERR_POPEN, _("Failed to open tar pipe: %m"));
rpmError(RPMERR_POPEN, _("Failed to open tar pipe: %m\n"));
free((void *)specDir);
free((void *)tmpSpecFile);
return 1;
}
if (!fgets(buf, sizeof(buf) - 1, fp)) {
/* Give up */
rpmError(RPMERR_READ, _("Failed to read spec file from %s"), arg);
rpmError(RPMERR_READ, _("Failed to read spec file from %s\n"),
arg);
unlink(tmpSpecFile);
free((void *)specDir);
free((void *)tmpSpecFile);
@ -172,7 +174,7 @@ static int buildForTarget(const char *arg, struct rpmBuildArguments *ba,
free((void *)specDir);
if (res) {
rpmError(RPMERR_RENAME, _("Failed to rename %s to %s: %m"),
rpmError(RPMERR_RENAME, _("Failed to rename %s to %s: %m\n"),
tmpSpecFile, s);
unlink(tmpSpecFile);
free((void *)tmpSpecFile);
@ -211,12 +213,12 @@ static int buildForTarget(const char *arg, struct rpmBuildArguments *ba,
if (specut != URL_IS_DASH) {
struct stat st;
if (Stat(specURL, &st) < 0) {
rpmError(RPMERR_STAT, _("failed to stat %s: %m"), specURL);
rpmError(RPMERR_STAT, _("failed to stat %s: %m\n"), specURL);
rc = 1;
goto exit;
}
if (! S_ISREG(st.st_mode)) {
rpmError(RPMERR_NOTREG, _("File %s is not a regular file."),
rpmError(RPMERR_NOTREG, _("File %s is not a regular file.\n"),
specURL);
rc = 1;
goto exit;
@ -224,8 +226,8 @@ static int buildForTarget(const char *arg, struct rpmBuildArguments *ba,
/* Try to verify that the file is actually a specfile */
if (!isSpecFile(specURL)) {
rpmError(RPMERR_BADSPEC, _("File %s does not appear to be a specfile."),
specURL);
rpmError(RPMERR_BADSPEC,
_("File %s does not appear to be a specfile.\n"), specURL);
rc = 1;
goto exit;
}

View File

@ -111,7 +111,7 @@ int doScript(Spec spec, int what, const char *name, StringBuf sb, int test)
}
if (makeTempFile(rootURL, &scriptName, &fd) || fd == NULL || Ferror(fd)) {
rpmError(RPMERR_SCRIPT, _("Unable to open temp file."));
rpmError(RPMERR_SCRIPT, _("Unable to open temp file.\n"));
rc = RPMERR_SCRIPT;
goto exit;
}
@ -196,7 +196,8 @@ fprintf(stderr, "*** addMacros\n");
errno = 0;
execvp(argv[0], (char *const *)argv);
rpmError(RPMERR_SCRIPT, _("Exec of %s failed (%s): %s"), scriptName, name, strerror(errno));
rpmError(RPMERR_SCRIPT, _("Exec of %s failed (%s): %s\n"),
scriptName, name, strerror(errno));
_exit(-1);
}
@ -204,7 +205,7 @@ fprintf(stderr, "*** addMacros\n");
rc = waitpid(child, &status, 0);
if (!WIFEXITED(status) || WEXITSTATUS(status)) {
rpmError(RPMERR_SCRIPT, _("Bad exit status from %s (%s)"),
rpmError(RPMERR_SCRIPT, _("Bad exit status from %s (%s)\n"),
scriptName, name);
rc = RPMERR_SCRIPT;
} else

View File

@ -212,7 +212,7 @@ static int rdToken(ParseState state)
token = TOK_EQ;
p++;
} else {
rpmError(RPMERR_BADSPEC, _("syntax error while parsing =="));
rpmError(RPMERR_BADSPEC, _("syntax error while parsing ==\n"));
return -1;
}
break;
@ -242,7 +242,7 @@ static int rdToken(ParseState state)
token = TOK_LOGICAL_AND;
p++;
} else {
rpmError(RPMERR_BADSPEC, _("syntax error while parsing &&"));
rpmError(RPMERR_BADSPEC, _("syntax error while parsing &&\n"));
return -1;
}
break;
@ -251,7 +251,7 @@ static int rdToken(ParseState state)
token = TOK_LOGICAL_OR;
p++;
} else {
rpmError(RPMERR_BADSPEC, _("syntax error while parsing ||"));
rpmError(RPMERR_BADSPEC, _("syntax error while parsing ||\n"));
return -1;
}
break;
@ -291,7 +291,7 @@ static int rdToken(ParseState state)
v = valueMakeString( rpmExpand(temp, NULL) );
} else {
rpmError(RPMERR_BADSPEC, _("parse error in expression"));
rpmError(RPMERR_BADSPEC, _("parse error in expression\n"));
return -1;
}
}
@ -323,7 +323,7 @@ static Value doPrimary(ParseState state)
return NULL;
v = doLogical(state);
if (state->nextToken != TOK_CLOSE_P) {
rpmError(RPMERR_BADSPEC, _("unmatched ("));
rpmError(RPMERR_BADSPEC, _("unmatched (\n"));
return NULL;
}
break;
@ -353,7 +353,7 @@ static Value doPrimary(ParseState state)
return NULL;
if (! valueIsInteger(v)) {
rpmError(RPMERR_BADSPEC, _("- only on numbers"));
rpmError(RPMERR_BADSPEC, _("- only on numbers\n"));
return NULL;
}
@ -369,7 +369,7 @@ static Value doPrimary(ParseState state)
return NULL;
if (! valueIsInteger(v)) {
rpmError(RPMERR_BADSPEC, _("! only on numbers"));
rpmError(RPMERR_BADSPEC, _("! only on numbers\n"));
return NULL;
}
@ -411,7 +411,7 @@ static Value doMultiplyDivide(ParseState state)
return NULL;
if (! valueSameType(v1, v2)) {
rpmError(RPMERR_BADSPEC, _("types must match"));
rpmError(RPMERR_BADSPEC, _("types must match\n"));
return NULL;
}
@ -424,7 +424,7 @@ static Value doMultiplyDivide(ParseState state)
else
v1 = valueMakeInteger(i1 / i2);
} else {
rpmError(RPMERR_BADSPEC, _("* / not suported for strings"));
rpmError(RPMERR_BADSPEC, _("* / not suported for strings\n"));
return NULL;
}
}
@ -459,7 +459,7 @@ static Value doAddSubtract(ParseState state)
return NULL;
if (! valueSameType(v1, v2)) {
rpmError(RPMERR_BADSPEC, _("types must match"));
rpmError(RPMERR_BADSPEC, _("types must match\n"));
return NULL;
}
@ -475,7 +475,7 @@ static Value doAddSubtract(ParseState state)
char *copy;
if (op == TOK_MINUS) {
rpmError(RPMERR_BADSPEC, _("- not suported for strings"));
rpmError(RPMERR_BADSPEC, _("- not suported for strings\n"));
return NULL;
}
@ -517,7 +517,7 @@ static Value doRelational(ParseState state)
return NULL;
if (! valueSameType(v1, v2)) {
rpmError(RPMERR_BADSPEC, _("types must match"));
rpmError(RPMERR_BADSPEC, _("types must match\n"));
return NULL;
}
@ -609,7 +609,7 @@ static Value doLogical(ParseState state)
return NULL;
if (! valueSameType(v1, v2)) {
rpmError(RPMERR_BADSPEC, _("types must match"));
rpmError(RPMERR_BADSPEC, _("types must match\n"));
return NULL;
}
@ -622,7 +622,7 @@ static Value doLogical(ParseState state)
else
v1 = valueMakeInteger(i1 || i2);
} else {
rpmError(RPMERR_BADSPEC, _("&& and || not suported for strings"));
rpmError(RPMERR_BADSPEC, _("&& and || not suported for strings\n"));
return NULL;
}
}
@ -655,7 +655,7 @@ int parseExpressionBoolean(Spec spec, const char *expr)
/* If the next token is not TOK_EOF, we have a syntax error. */
if (state.nextToken != TOK_EOF) {
rpmError(RPMERR_BADSPEC, _("syntax error in expression"));
rpmError(RPMERR_BADSPEC, _("syntax error in expression\n"));
free(state.str);
return -1;
}
@ -702,7 +702,7 @@ char * parseExpressionString(Spec spec, const char *expr)
/* If the next token is not TOK_EOF, we have a syntax error. */
if (state.nextToken != TOK_EOF) {
rpmError(RPMERR_BADSPEC, _("syntax error in expression"));
rpmError(RPMERR_BADSPEC, _("syntax error in expression\n"));
free(state.str);
return NULL;
}

View File

@ -273,7 +273,7 @@ static int parseForVerify(char *buf, struct FileList *fl)
SKIPSPACE(pe);
if (*pe != '(') {
rpmError(RPMERR_BADSPEC, _("Missing '(' in %s %s"), name, pe);
rpmError(RPMERR_BADSPEC, _("Missing '(' in %s %s\n"), name, pe);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -284,7 +284,7 @@ static int parseForVerify(char *buf, struct FileList *fl)
;
if (*pe == '\0') {
rpmError(RPMERR_BADSPEC, _("Missing ')' in %s(%s"), name, p);
rpmError(RPMERR_BADSPEC, _("Missing ')' in %s(%s\n"), name, p);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -322,7 +322,7 @@ static int parseForVerify(char *buf, struct FileList *fl)
if (!strcmp(p, "not")) {
not ^= 1;
} else {
rpmError(RPMERR_BADSPEC, _("Invalid %s token: %s"), name, p);
rpmError(RPMERR_BADSPEC, _("Invalid %s token: %s\n"), name, p);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -357,7 +357,7 @@ static int parseForAttr(char *buf, struct FileList *fl)
SKIPSPACE(pe);
if (*pe != '(') {
rpmError(RPMERR_BADSPEC, _("Missing '(' in %s %s"), name, pe);
rpmError(RPMERR_BADSPEC, _("Missing '(' in %s %s\n"), name, pe);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -373,7 +373,7 @@ static int parseForAttr(char *buf, struct FileList *fl)
SKIPSPACE(q);
if (*q) {
rpmError(RPMERR_BADSPEC,
_("Non-white space follows %s(): %s"), name, q);
_("Non-white space follows %s(): %s\n"), name, q);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -411,7 +411,7 @@ static int parseForAttr(char *buf, struct FileList *fl)
}
if (!(ar->ar_fmodestr && ar->ar_user && ar->ar_group) || *p != '\0') {
rpmError(RPMERR_BADSPEC, _("Bad syntax: %s(%s)"), name, q);
rpmError(RPMERR_BADSPEC, _("Bad syntax: %s(%s)\n"), name, q);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -421,7 +421,7 @@ static int parseForAttr(char *buf, struct FileList *fl)
unsigned int ui;
x = sscanf(ar->ar_fmodestr, "%o", &ui);
if ((x == 0) || (ar->ar_fmode & ~MYALLPERMS)) {
rpmError(RPMERR_BADSPEC, _("Bad mode spec: %s(%s)"), name, q);
rpmError(RPMERR_BADSPEC, _("Bad mode spec: %s(%s)\n"), name, q);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -433,7 +433,7 @@ static int parseForAttr(char *buf, struct FileList *fl)
unsigned int ui;
x = sscanf(ar->ar_dmodestr, "%o", &ui);
if ((x == 0) || (ar->ar_dmode & ~MYALLPERMS)) {
rpmError(RPMERR_BADSPEC, _("Bad dirmode spec: %s(%s)"), name, q);
rpmError(RPMERR_BADSPEC, _("Bad dirmode spec: %s(%s)\n"), name, q);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -476,7 +476,7 @@ static int parseForConfig(char *buf, struct FileList *fl)
;
if (*pe == '\0') {
rpmError(RPMERR_BADSPEC, _("Missing ')' in %s(%s"), name, p);
rpmError(RPMERR_BADSPEC, _("Missing ')' in %s(%s\n"), name, p);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -501,7 +501,7 @@ static int parseForConfig(char *buf, struct FileList *fl)
} else if (!strcmp(p, "noreplace")) {
fl->currentFlags |= RPMFILE_NOREPLACE;
} else {
rpmError(RPMERR_BADSPEC, _("Invalid %s token: %s"), name, p);
rpmError(RPMERR_BADSPEC, _("Invalid %s token: %s\n"), name, p);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -524,7 +524,7 @@ static int parseForLang(char *buf, struct FileList *fl)
SKIPSPACE(pe);
if (*pe != '(') {
rpmError(RPMERR_BADSPEC, _("Missing '(' in %s %s"), name, pe);
rpmError(RPMERR_BADSPEC, _("Missing '(' in %s %s\n"), name, pe);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -535,7 +535,7 @@ static int parseForLang(char *buf, struct FileList *fl)
;
if (*pe == '\0') {
rpmError(RPMERR_BADSPEC, _("Missing ')' in %s(%s"), name, p);
rpmError(RPMERR_BADSPEC, _("Missing ')' in %s(%s\n"), name, p);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -561,7 +561,8 @@ static int parseForLang(char *buf, struct FileList *fl)
/* Sanity check on locale lengths */
if (np < 1 || (np == 1 && *p != 'C') || np >= 32) {
rpmError(RPMERR_BADSPEC, _("Unusual locale length: \"%.*s\" in %%lang(%s)"),
rpmError(RPMERR_BADSPEC,
_("Unusual locale length: \"%.*s\" in %%lang(%s)\n"),
(int)np, p, q);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
@ -571,7 +572,7 @@ static int parseForLang(char *buf, struct FileList *fl)
for (i = 0; i < fl->nLangs; i++) {
if (strncmp(fl->currentLangs[i], p, np))
continue;
rpmError(RPMERR_BADSPEC, _("Duplicate locale %.*s in %%lang(%s)"),
rpmError(RPMERR_BADSPEC, _("Duplicate locale %.*s in %%lang(%s)\n"),
(int)np, p, q);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
@ -703,13 +704,13 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char *buf,
if (!strcmp(s, "%docdir")) {
s = strtokWithQuotes(NULL, " \t\n");
if (fl->docDirCount == MAXDOCDIR) {
rpmError(RPMERR_INTERNAL, _("Hit limit for %%docdir"));
rpmError(RPMERR_INTERNAL, _("Hit limit for %%docdir\n"));
fl->processingFailed = 1;
res = 1;
}
fl->docDirs[fl->docDirCount++] = xstrdup(s);
if (strtokWithQuotes(NULL, " \t\n")) {
rpmError(RPMERR_INTERNAL, _("Only one arg for %%docdir"));
rpmError(RPMERR_INTERNAL, _("Only one arg for %%docdir\n"));
fl->processingFailed = 1;
res = 1;
}
@ -737,7 +738,8 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char *buf,
if (*fileName) {
/* We already got a file -- error */
rpmError(RPMERR_BADSPEC, _("Two files on one line: %s"), *fileName);
rpmError(RPMERR_BADSPEC, _("Two files on one line: %s\n"),
*fileName);
fl->processingFailed = 1;
res = 1;
}
@ -750,7 +752,7 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char *buf,
} else {
/* not in %doc, does not begin with / -- error */
rpmError(RPMERR_BADSPEC,
_("File must begin with \"/\": %s"), s);
_("File must begin with \"/\": %s\n"), s);
fl->processingFailed = 1;
res = 1;
}
@ -762,7 +764,7 @@ static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char *buf,
if (specialDoc) {
if (*fileName || (fl->currentFlags & ~(RPMFILE_DOC))) {
rpmError(RPMERR_BADSPEC,
_("Can't mix special %%doc with other forms: %s"),
_("Can't mix special %%doc with other forms: %s\n"),
*fileName);
fl->processingFailed = 1;
res = 1;
@ -856,7 +858,8 @@ static void genCpioListAndHeader(struct FileList *fl,
for (flp = fl->fileList, count = fl->fileListRecsUsed; count > 0; flp++, count--) {
if ((count > 1) && !strcmp(flp->fileURL, flp[1].fileURL)) {
rpmError(RPMERR_BADSPEC, _("File listed twice: %s"), flp->fileURL);
rpmError(RPMERR_BADSPEC, _("File listed twice: %s\n"),
flp->fileURL);
fl->processingFailed = 1;
}
@ -965,7 +968,8 @@ static void genCpioListAndHeader(struct FileList *fl,
if (buf[0] == '/' && strcmp(buildRoot, "/") &&
!strncmp(buf, buildRoot, strlen(buildRoot))) {
rpmError(RPMERR_BADSPEC, _("Symlink points to BuildRoot: %s -> %s"),
rpmError(RPMERR_BADSPEC,
_("Symlink points to BuildRoot: %s -> %s\n"),
flp->fileURL, buf);
fl->processingFailed = 1;
}
@ -1059,7 +1063,7 @@ static int addFile(struct FileList *fl, const char * diskURL, struct stat *statp
prefixTest++;
}
if (*prefixPtr || (*prefixTest && *prefixTest != '/')) {
rpmError(RPMERR_BADSPEC, _("File doesn't match prefix (%s): %s"),
rpmError(RPMERR_BADSPEC, _("File doesn't match prefix (%s): %s\n"),
fl->prefix, fileURL);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
@ -1069,7 +1073,7 @@ static int addFile(struct FileList *fl, const char * diskURL, struct stat *statp
if (statp == NULL) {
statp = &statbuf;
if (Lstat(diskURL, statp)) {
rpmError(RPMERR_BADSPEC, _("File not found: %s"), diskURL);
rpmError(RPMERR_BADSPEC, _("File not found: %s\n"), diskURL);
fl->processingFailed = 1;
return RPMERR_BADSPEC;
}
@ -1200,7 +1204,8 @@ static int processBinaryFile(/*@unused@*/Package pkg, struct FileList *fl,
{ const char * fileName;
(void) urlPath(fileURL, &fileName);
if (*fileName != '/') {
rpmError(RPMERR_BADSPEC, _("File needs leading \"/\": %s"), fileName);
rpmError(RPMERR_BADSPEC, _("File needs leading \"/\": %s\n"),
fileName);
rc = 1;
goto exit;
}
@ -1229,7 +1234,8 @@ static int processBinaryFile(/*@unused@*/Package pkg, struct FileList *fl,
}
free((void *)argv);
} else {
rpmError(RPMERR_BADSPEC, _("File not found by glob: %s"), diskURL);
rpmError(RPMERR_BADSPEC, _("File not found by glob: %s\n"),
diskURL);
rc = 1;
}
} else {
@ -1283,7 +1289,7 @@ static int processPackageFiles(Spec spec, Package pkg,
if (fd == NULL || Ferror(fd)) {
rpmError(RPMERR_BADFILENAME,
_("Could not open %%files file %s: %s"),
_("Could not open %%files file %s: %s\n"),
ffn, Fstrerror(fd));
return RPMERR_BADFILENAME;
}
@ -1292,7 +1298,7 @@ static int processPackageFiles(Spec spec, Package pkg,
while (fgets(buf, sizeof(buf), (FILE *)fdGetFp(fd))) {
handleComments(buf);
if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
rpmError(RPMERR_BADSPEC, _("line: %s"), buf);
rpmError(RPMERR_BADSPEC, _("line: %s\n"), buf);
return RPMERR_BADSPEC;
}
appendStringBuf(pkg->fileList, buf);
@ -1618,7 +1624,7 @@ int processSourceFiles(Spec spec)
flp->verifyFlags = RPMVERIFY_ALL;
if (Stat(diskURL, &flp->fl_st)) {
rpmError(RPMERR_BADSPEC, _("Bad file: %s: %s"),
rpmError(RPMERR_BADSPEC, _("Bad file: %s: %s\n"),
diskURL, strerror(errno));
fl.processingFailed = 1;
}
@ -1630,7 +1636,7 @@ int processSourceFiles(Spec spec)
fl.totalFileSize += flp->fl_size;
if (! (flp->uname && flp->gname)) {
rpmError(RPMERR_BADSPEC, _("Bad owner/group: %s"), diskURL);
rpmError(RPMERR_BADSPEC, _("Bad owner/group: %s\n"), diskURL);
fl.processingFailed = 1;
}
@ -1687,12 +1693,12 @@ static StringBuf getOutputFrom(char *dir, char *argv[],
execvp(argv[0], argv);
/* XXX this error message is probably not seen. */
rpmError(RPMERR_EXEC, _("Couldn't exec %s: %s"),
rpmError(RPMERR_EXEC, _("Couldn't exec %s: %s\n"),
argv[0], strerror(errno));
_exit(RPMERR_EXEC);
}
if (progPID < 0) {
rpmError(RPMERR_FORK, _("Couldn't fork %s: %s"),
rpmError(RPMERR_FORK, _("Couldn't fork %s: %s\n"),
argv[0], strerror(errno));
return NULL;
}
@ -1774,11 +1780,11 @@ top:
/* Collect status from prog */
(void)waitpid(progPID, &status, 0);
if (failNonZero && (!WIFEXITED(status) || WEXITSTATUS(status))) {
rpmError(RPMERR_EXEC, _("%s failed"), argv[0]);
rpmError(RPMERR_EXEC, _("%s failed\n"), argv[0]);
return NULL;
}
if (writeBytesLeft) {
rpmError(RPMERR_EXEC, _("failed to write all data to %s"), argv[0]);
rpmError(RPMERR_EXEC, _("failed to write all data to %s\n"), argv[0]);
return NULL;
}
return readBuff;
@ -1931,7 +1937,7 @@ static int generateDepends(Spec spec, Package pkg,
if (readBuf == NULL) {
rc = RPMERR_EXEC;
rpmError(rc, _("Failed to find %s:"), dm->msg);
rpmError(rc, _("Failed to find %s:\n"), dm->msg);
break;
}
@ -1945,7 +1951,7 @@ static int generateDepends(Spec spec, Package pkg,
freeStringBuf(readBuf);
if (rc) {
rpmError(rc, _("Failed to find %s:"), dm->msg);
rpmError(rc, _("Failed to find %s:\n"), dm->msg);
break;
}
}

View File

@ -49,7 +49,7 @@ static int cpio_doio(FD_t fdo, CSA_t * csa, const char * fmodeMacro)
rc = cpioBuildArchive(cfd, csa->cpioList, csa->cpioCount, NULL, NULL,
&csa->cpioArchiveSize, &failedFile);
if (rc) {
rpmError(RPMERR_CPIO, _("create archive failed on file %s: %s"),
rpmError(RPMERR_CPIO, _("create archive failed on file %s: %s\n"),
failedFile, cpioStrerror(rc));
rc = 1;
}
@ -71,14 +71,14 @@ static int cpio_copy(FD_t fdo, CSA_t *csa)
while((nb = Fread(buf, sizeof(buf[0]), sizeof(buf), csa->cpioFdIn)) > 0) {
if (Fwrite(buf, sizeof(buf[0]), nb, fdo) != nb) {
rpmError(RPMERR_CPIO, _("cpio_copy write failed: %s"),
rpmError(RPMERR_CPIO, _("cpio_copy write failed: %s\n"),
Fstrerror(fdo));
return 1;
}
csa->cpioArchiveSize += nb;
}
if (Ferror(csa->cpioFdIn)) {
rpmError(RPMERR_CPIO, _("cpio_copy read failed: %s"),
rpmError(RPMERR_CPIO, _("cpio_copy read failed: %s\n"),
Fstrerror(csa->cpioFdIn));
return 1;
}
@ -105,7 +105,7 @@ static StringBuf addFileToTagAux(Spec spec, const char *file, StringBuf sb)
while (fgets(buf, sizeof(buf), (FILE *)fdGetFp(fd))) {
/* XXX display fn in error msg */
if (expandMacros(spec, spec->macros, buf, sizeof(buf))) {
rpmError(RPMERR_BADSPEC, _("line: %s"), buf);
rpmError(RPMERR_BADSPEC, _("line: %s\n"), buf);
return NULL;
}
appendStringBuf(sb, buf);
@ -162,28 +162,28 @@ static int processScriptFiles(Spec spec, Package pkg)
if (pkg->preInFile) {
if (addFileToTag(spec, pkg->preInFile, pkg->header, RPMTAG_PREIN)) {
rpmError(RPMERR_BADFILENAME,
_("Could not open PreIn file: %s"), pkg->preInFile);
_("Could not open PreIn file: %s\n"), pkg->preInFile);
return RPMERR_BADFILENAME;
}
}
if (pkg->preUnFile) {
if (addFileToTag(spec, pkg->preUnFile, pkg->header, RPMTAG_PREUN)) {
rpmError(RPMERR_BADFILENAME,
_("Could not open PreUn file: %s"), pkg->preUnFile);
_("Could not open PreUn file: %s\n"), pkg->preUnFile);
return RPMERR_BADFILENAME;
}
}
if (pkg->postInFile) {
if (addFileToTag(spec, pkg->postInFile, pkg->header, RPMTAG_POSTIN)) {
rpmError(RPMERR_BADFILENAME,
_("Could not open PostIn file: %s"), pkg->postInFile);
_("Could not open PostIn file: %s\n"), pkg->postInFile);
return RPMERR_BADFILENAME;
}
}
if (pkg->postUnFile) {
if (addFileToTag(spec, pkg->postUnFile, pkg->header, RPMTAG_POSTUN)) {
rpmError(RPMERR_BADFILENAME,
_("Could not open PostUn file: %s"), pkg->postUnFile);
_("Could not open PostUn file: %s\n"), pkg->postUnFile);
return RPMERR_BADFILENAME;
}
}
@ -191,7 +191,7 @@ static int processScriptFiles(Spec spec, Package pkg)
if (addFileToTag(spec, pkg->verifyFile, pkg->header,
RPMTAG_VERIFYSCRIPT)) {
rpmError(RPMERR_BADFILENAME,
_("Could not open VerifyScript file: %s"), pkg->verifyFile);
_("Could not open VerifyScript file: %s\n"), pkg->verifyFile);
return RPMERR_BADFILENAME;
}
}
@ -206,7 +206,7 @@ static int processScriptFiles(Spec spec, Package pkg)
if (addFileToArrayTag(spec, p->fileName, pkg->header,
RPMTAG_TRIGGERSCRIPTS)) {
rpmError(RPMERR_BADFILENAME,
_("Could not open Trigger script file: %s"),
_("Could not open Trigger script file: %s\n"),
p->fileName);
return RPMERR_BADFILENAME;
}
@ -264,12 +264,13 @@ int readRPM(const char *fileName, Spec *specp, struct rpmlead *lead, Header *sig
switch (rc) {
case 1:
rpmError(RPMERR_BADMAGIC, _("readRPM: %s is not an RPM package\n"),
fileName);
fileName);
return RPMERR_BADMAGIC;
case 0:
break;
default:
rpmError(RPMERR_BADMAGIC, _("readRPM: reading header from %s\n"), fileName);
rpmError(RPMERR_BADMAGIC, _("readRPM: reading header from %s\n"),
fileName);
return RPMERR_BADMAGIC;
/*@notreached@*/ break;
}
@ -366,7 +367,7 @@ int writeRPM(Header *hdrp, const char *fileName, int type,
* archive (after compression) can be added to the header.
*/
if (makeTempFile(NULL, &sigtarget, &fd)) {
rpmError(RPMERR_CREATE, _("Unable to open temp file."));
rpmError(RPMERR_CREATE, _("Unable to open temp file.\n"));
return RPMERR_CREATE;
}
@ -378,7 +379,7 @@ int writeRPM(Header *hdrp, const char *fileName, int type,
} else if (Fileno(csa->cpioFdIn) >= 0) {
rc = cpio_copy(fd, csa);
} else {
rpmError(RPMERR_CREATE, _("Bad CSA data"));
rpmError(RPMERR_CREATE, _("Bad CSA data\n"));
rc = RPMERR_BADARG;
}
}
@ -466,7 +467,7 @@ int writeRPM(Header *hdrp, const char *fileName, int type,
}
if (writeLead(fd, &lead)) {
rpmError(RPMERR_NOSPACE, _("Unable to write package: %s"),
rpmError(RPMERR_NOSPACE, _("Unable to write package: %s\n"),
Fstrerror(fd));
rc = RPMERR_NOSPACE;
goto exit;
@ -481,7 +482,7 @@ int writeRPM(Header *hdrp, const char *fileName, int type,
/* Append the header and archive */
ifd = Fopen(sigtarget, "r.ufdio");
if (ifd == NULL || Ferror(ifd)) {
rpmError(RPMERR_READ, _("Unable to open sigtarget %s: %s"),
rpmError(RPMERR_READ, _("Unable to open sigtarget %s: %s\n"),
sigtarget, Fstrerror(ifd));
rc = RPMERR_READ;
goto exit;
@ -491,7 +492,7 @@ int writeRPM(Header *hdrp, const char *fileName, int type,
{ Header nh = headerRead(ifd, HEADER_MAGIC_YES);
if (nh == NULL) {
rpmError(RPMERR_READ, _("Unable to read header from %s: %s"),
rpmError(RPMERR_READ, _("Unable to read header from %s: %s\n"),
sigtarget, Fstrerror(ifd));
rc = RPMERR_READ;
goto exit;
@ -505,7 +506,7 @@ int writeRPM(Header *hdrp, const char *fileName, int type,
headerFree(nh);
if (rc) {
rpmError(RPMERR_NOSPACE, _("Unable to write header to %s: %s"),
rpmError(RPMERR_NOSPACE, _("Unable to write header to %s: %s\n"),
fileName, Fstrerror(fd));
rc = RPMERR_NOSPACE;
goto exit;
@ -515,13 +516,13 @@ int writeRPM(Header *hdrp, const char *fileName, int type,
/* Write the payload into the package. */
while ((count = Fread(buf, sizeof(buf[0]), sizeof(buf), ifd)) > 0) {
if (count == -1) {
rpmError(RPMERR_READ, _("Unable to read payload from %s: %s"),
rpmError(RPMERR_READ, _("Unable to read payload from %s: %s\n"),
sigtarget, Fstrerror(ifd));
rc = RPMERR_READ;
goto exit;
}
if (Fwrite(buf, sizeof(buf[0]), count, fd) < 0) {
rpmError(RPMERR_NOSPACE, _("Unable to write payload to %s: %s"),
rpmError(RPMERR_NOSPACE, _("Unable to write payload to %s: %s\n"),
fileName, Fstrerror(fd));
rc = RPMERR_NOSPACE;
goto exit;

View File

@ -25,7 +25,8 @@ int parseBuildInstallClean(Spec spec, rpmParseState parsePart)
}
if (*sbp != NULL) {
rpmError(RPMERR_BADSPEC, _("line %d: second %s"), spec->lineNum, name);
rpmError(RPMERR_BADSPEC, _("line %d: second %s\n"),
spec->lineNum, name);
return RPMERR_BADSPEC;
}

View File

@ -117,7 +117,8 @@ static int addChangelog(Header h, StringBuf sb)
while (*s) {
if (*s != '*') {
rpmError(RPMERR_BADSPEC, _("%%changelog entries must start with *"));
rpmError(RPMERR_BADSPEC,
_("%%changelog entries must start with *\n"));
return RPMERR_BADSPEC;
}
@ -125,7 +126,7 @@ static int addChangelog(Header h, StringBuf sb)
date = s;
while(*s && *s != '\n') s++;
if (! *s) {
rpmError(RPMERR_BADSPEC, _("incomplete %%changelog entry"));
rpmError(RPMERR_BADSPEC, _("incomplete %%changelog entry\n"));
return RPMERR_BADSPEC;
}
*s = '\0';
@ -140,12 +141,12 @@ static int addChangelog(Header h, StringBuf sb)
}
SKIPSPACE(date);
if (dateToTimet(date, &time)) {
rpmError(RPMERR_BADSPEC, _("bad date in %%changelog: %s"), date);
rpmError(RPMERR_BADSPEC, _("bad date in %%changelog: %s\n"), date);
return RPMERR_BADSPEC;
}
if (lastTime && lastTime < time) {
rpmError(RPMERR_BADSPEC,
_("%%changelog not in decending chronological order"));
_("%%changelog not in decending chronological order\n"));
return RPMERR_BADSPEC;
}
lastTime = time;
@ -153,7 +154,7 @@ static int addChangelog(Header h, StringBuf sb)
/* skip space to the name */
SKIPSPACE(s);
if (! *s) {
rpmError(RPMERR_BADSPEC, _("missing name in %%changelog"));
rpmError(RPMERR_BADSPEC, _("missing name in %%changelog\n"));
return RPMERR_BADSPEC;
}
@ -164,14 +165,14 @@ static int addChangelog(Header h, StringBuf sb)
*s-- = '\0';
}
if (s == name) {
rpmError(RPMERR_BADSPEC, _("missing name in %%changelog"));
rpmError(RPMERR_BADSPEC, _("missing name in %%changelog\n"));
return RPMERR_BADSPEC;
}
/* text */
SKIPSPACE(text);
if (! *text) {
rpmError(RPMERR_BADSPEC, _("no description in %%changelog"));
rpmError(RPMERR_BADSPEC, _("no description in %%changelog\n"));
return RPMERR_BADSPEC;
}

View File

@ -36,7 +36,7 @@ int parseDescription(Spec spec)
lang = RPMBUILD_DEFAULT_LANG;
if ((rc = poptParseArgvString(spec->line, &argc, &argv))) {
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %%description: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %%description: %s\n"),
spec->lineNum, poptStrerror(rc));
return RPMERR_BADSPEC;
}
@ -49,7 +49,7 @@ int parseDescription(Spec spec)
}
if (arg < -1) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad option %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad option %s: %s\n"),
spec->lineNum,
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
spec->line);
@ -62,7 +62,7 @@ int parseDescription(Spec spec)
if (name == NULL)
name = poptGetArg(optCon);
if (poptPeekArg(optCon)) {
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s\n"),
spec->lineNum,
spec->line);
FREE(argv);
@ -72,7 +72,7 @@ int parseDescription(Spec spec)
}
if (lookupPackage(spec, name, flag, &pkg)) {
rpmError(RPMERR_BADSPEC, _("line %d: Package does not exist: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Package does not exist: %s\n"),
spec->lineNum, spec->line);
FREE(argv);
poptFreeContext(optCon);
@ -84,7 +84,8 @@ int parseDescription(Spec spec)
#if 0
if (headerIsEntry(pkg->header, RPMTAG_DESCRIPTION)) {
rpmError(RPMERR_BADSPEC, _("line %d: Second description"), spec->lineNum);
rpmError(RPMERR_BADSPEC, _("line %d: Second description\n"),
spec->lineNum);
FREE(argv);
poptFreeContext(optCon);
return RPMERR_BADSPEC;

View File

@ -30,7 +30,7 @@ int parseFiles(Spec spec)
name = file = NULL;
if ((rc = poptParseArgvString(spec->line, &argc, &argv))) {
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %%files: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %%files: %s\n"),
spec->lineNum, poptStrerror(rc));
rc = RPMERR_BADSPEC;
goto exit;
@ -44,7 +44,7 @@ int parseFiles(Spec spec)
}
if (arg < -1) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad option %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad option %s: %s\n"),
spec->lineNum,
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
spec->line);
@ -56,7 +56,7 @@ int parseFiles(Spec spec)
if (name == NULL)
name = poptGetArg(optCon);
if (poptPeekArg(optCon)) {
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s\n"),
spec->lineNum,
spec->line);
rc = RPMERR_BADSPEC;
@ -65,14 +65,14 @@ int parseFiles(Spec spec)
}
if (lookupPackage(spec, name, flag, &pkg)) {
rpmError(RPMERR_BADSPEC, _("line %d: Package does not exist: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Package does not exist: %s\n"),
spec->lineNum, spec->line);
rc = RPMERR_BADSPEC;
goto exit;
}
if (pkg->fileList != NULL) {
rpmError(RPMERR_BADSPEC, _("line %d: Second %%files list"),
rpmError(RPMERR_BADSPEC, _("line %d: Second %%files list\n"),
spec->lineNum);
rc = RPMERR_BADSPEC;
goto exit;

View File

@ -208,22 +208,22 @@ static int checkForValidArchitectures(Spec spec)
if (isMemberInEntry(spec->buildRestrictions,
arch, RPMTAG_EXCLUDEARCH) == 1) {
rpmError(RPMERR_BADSPEC, _("Architecture is excluded: %s"), arch);
rpmError(RPMERR_BADSPEC, _("Architecture is excluded: %s\n"), arch);
return RPMERR_BADSPEC;
}
if (isMemberInEntry(spec->buildRestrictions,
arch, RPMTAG_EXCLUSIVEARCH) == 0) {
rpmError(RPMERR_BADSPEC, _("Architecture is not included: %s"), arch);
rpmError(RPMERR_BADSPEC, _("Architecture is not included: %s\n"), arch);
return RPMERR_BADSPEC;
}
if (isMemberInEntry(spec->buildRestrictions,
os, RPMTAG_EXCLUDEOS) == 1) {
rpmError(RPMERR_BADSPEC, _("OS is excluded: %s"), os);
rpmError(RPMERR_BADSPEC, _("OS is excluded: %s\n"), os);
return RPMERR_BADSPEC;
}
if (isMemberInEntry(spec->buildRestrictions,
os, RPMTAG_EXCLUSIVEOS) == 0) {
rpmError(RPMERR_BADSPEC, _("OS is not included: %s"), os);
rpmError(RPMERR_BADSPEC, _("OS is not included: %s\n"), os);
return RPMERR_BADSPEC;
}
@ -239,8 +239,9 @@ static int checkForRequired(Header h, const char *name)
for (p = requiredTags; *p != 0; p++) {
if (!headerIsEntry(h, *p)) {
rpmError(RPMERR_BADSPEC, _("%s field must be present in package: %s"),
tagName(*p), name);
rpmError(RPMERR_BADSPEC,
_("%s field must be present in package: %s\n"),
tagName(*p), name);
res = 1;
}
}
@ -266,7 +267,7 @@ static int checkForDuplicates(Header h, const char *name)
{
if (tag != lastTag)
continue;
rpmError(RPMERR_BADSPEC, _("Duplicate %s entries in package: %s"),
rpmError(RPMERR_BADSPEC, _("Duplicate %s entries in package: %s\n"),
tagName(tag), name);
res = 1;
}
@ -320,7 +321,7 @@ static int readIcon(Header h, const char *file)
fd = Fopen(fn, "r.ufdio");
if (fd == NULL || Ferror(fd)) {
rpmError(RPMERR_BADSPEC, _("Unable to open icon %s: %s"),
rpmError(RPMERR_BADSPEC, _("Unable to open icon %s: %s\n"),
fn, Fstrerror(fd));
rc = RPMERR_BADSPEC;
goto exit;
@ -338,7 +339,7 @@ static int readIcon(Header h, const char *file)
nb = Fread(icon, sizeof(char), iconsize, fd);
if (Ferror(fd) || (size >= 0 && nb != size)) {
rpmError(RPMERR_BADSPEC, _("Unable to read icon %s: %s"),
rpmError(RPMERR_BADSPEC, _("Unable to read icon %s: %s\n"),
fn, Fstrerror(fd));
rc = RPMERR_BADSPEC;
}
@ -351,7 +352,7 @@ static int readIcon(Header h, const char *file)
} else if (! strncmp(icon, "/* XPM", sizeof("/* XPM")-1)) {
headerAddEntry(h, RPMTAG_XPM, RPM_BIN_TYPE, icon, iconsize);
} else {
rpmError(RPMERR_BADSPEC, _("Unknown icon type: %s"), file);
rpmError(RPMERR_BADSPEC, _("Unknown icon type: %s\n"), file);
rc = RPMERR_BADSPEC;
goto exit;
}
@ -393,7 +394,7 @@ stashSt(Spec spec, Header h, int tag, const char *lang)
#define SINGLE_TOKEN_ONLY \
if (multiToken) { \
rpmError(RPMERR_BADSPEC, _("line %d: Tag takes single token only: %s"), \
rpmError(RPMERR_BADSPEC, _("line %d: Tag takes single token only: %s\n"), \
spec->lineNum, spec->line); \
return RPMERR_BADSPEC; \
}
@ -418,7 +419,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
while ((*field) && (*field != ':'))
field++;
if (*field != ':') {
rpmError(RPMERR_BADSPEC, _("line %d: Malformed tag: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Malformed tag: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -426,7 +427,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
SKIPSPACE(field);
if (!*field) {
/* Empty field */
rpmError(RPMERR_BADSPEC, _("line %d: Empty tag: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Empty tag: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -448,14 +449,14 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
/* These macros are for backward compatibility */
if (tag == RPMTAG_VERSION) {
if (strchr(field, '-') != NULL) {
rpmError(RPMERR_BADSPEC, _("line %d: Illegal char '-' in %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Illegal char '-' in %s: %s\n"),
spec->lineNum, "version", spec->line);
return RPMERR_BADSPEC;
}
addMacro(spec->macros, "PACKAGE_VERSION", NULL, field, RMIL_OLDSPEC);
} else if (tag == RPMTAG_RELEASE) {
if (strchr(field, '-') != NULL) {
rpmError(RPMERR_BADSPEC, _("line %d: Illegal char '-' in %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Illegal char '-' in %s: %s\n"),
spec->lineNum, "release", spec->line);
return RPMERR_BADSPEC;
}
@ -512,7 +513,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
if (*buildRoot == '\0') buildRoot = "/";
if (!strcmp(buildRoot, "/")) {
rpmError(RPMERR_BADSPEC,
_("BuildRoot can not be \"/\": %s"), spec->buildRootURL);
_("BuildRoot can not be \"/\": %s\n"), spec->buildRootURL);
free((void *)buildRootURL);
return RPMERR_BADSPEC;
}
@ -525,7 +526,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
len = strlen(array[num]);
if (array[num][len - 1] == '/' && len > 1) {
rpmError(RPMERR_BADSPEC,
_("line %d: Prefixes must not end with \"/\": %s"),
_("line %d: Prefixes must not end with \"/\": %s\n"),
spec->lineNum, spec->line);
FREE(array);
return RPMERR_BADSPEC;
@ -537,7 +538,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
SINGLE_TOKEN_ONLY;
if (field[0] != '/') {
rpmError(RPMERR_BADSPEC,
_("line %d: Docdir must begin with '/': %s"),
_("line %d: Docdir must begin with '/': %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -549,7 +550,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
SINGLE_TOKEN_ONLY;
if (parseNum(field, &num)) {
rpmError(RPMERR_BADSPEC,
_("line %d: Epoch/Serial field must be a number: %s"),
_("line %d: Epoch/Serial field must be a number: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -589,7 +590,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
case RPMTAG_BUILDREQUIRES:
if ((rc = parseBits(lang, buildScriptBits, &tagflags))) {
rpmError(RPMERR_BADSPEC,
_("line %d: Bad %s: qualifiers: %s"),
_("line %d: Bad %s: qualifiers: %s\n"),
spec->lineNum, tagName(tag), spec->line);
return rc;
}
@ -600,7 +601,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
case RPMTAG_PREREQ:
if ((rc = parseBits(lang, installScriptBits, &tagflags))) {
rpmError(RPMERR_BADSPEC,
_("line %d: Bad %s: qualifiers: %s"),
_("line %d: Bad %s: qualifiers: %s\n"),
spec->lineNum, tagName(tag), spec->line);
return rc;
}
@ -626,7 +627,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
&(spec->buildArchitectureCount),
&(spec->buildArchitectures)))) {
rpmError(RPMERR_BADSPEC,
_("line %d: Bad BuildArchitecture format: %s"),
_("line %d: Bad BuildArchitecture format: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -635,7 +636,7 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
break;
default:
rpmError(RPMERR_INTERNAL, _("Internal error: Bogus tag %d"), tag);
rpmError(RPMERR_INTERNAL, _("Internal error: Bogus tag %d\n"), tag);
return RPMERR_INTERNAL;
}
@ -779,13 +780,14 @@ int parsePreamble(Spec spec, int initialPackage)
if (! initialPackage) {
/* There is one option to %package: <pkg> or -n <pkg> */
if (parseSimplePart(spec->line, &name, &flag)) {
rpmError(RPMERR_BADSPEC, _("Bad package specification: %s"),
spec->line);
rpmError(RPMERR_BADSPEC, _("Bad package specification: %s\n"),
spec->line);
return RPMERR_BADSPEC;
}
if (!lookupPackage(spec, name, flag, NULL)) {
rpmError(RPMERR_BADSPEC, _("Package already exists: %s"), spec->line);
rpmError(RPMERR_BADSPEC, _("Package already exists: %s\n"),
spec->line);
return RPMERR_BADSPEC;
}
@ -810,8 +812,8 @@ int parsePreamble(Spec spec, int initialPackage)
SKIPSPACE(linep);
if (*linep) {
if (findPreambleTag(spec, &tag, &macro, lang)) {
rpmError(RPMERR_BADSPEC, _("line %d: Unknown tag: %s"),
spec->lineNum, spec->line);
rpmError(RPMERR_BADSPEC, _("line %d: Unknown tag: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
if (handlePreambleTag(spec, pkg, tag, macro, lang))
@ -832,7 +834,7 @@ int parsePreamble(Spec spec, int initialPackage)
/* Do some final processing on the header */
if (!spec->gotBuildRootURL && spec->buildRootURL) {
rpmError(RPMERR_BADSPEC, _("Spec file can't use BuildRoot"));
rpmError(RPMERR_BADSPEC, _("Spec file can't use BuildRoot\n"));
return RPMERR_BADSPEC;
}

View File

@ -34,11 +34,12 @@ static int checkOwners(const char *urlfn)
struct stat sb;
if (Lstat(urlfn, &sb)) {
rpmError(RPMERR_BADSPEC, _("Bad source: %s: %s"), urlfn, strerror(errno));
rpmError(RPMERR_BADSPEC, _("Bad source: %s: %s\n"),
urlfn, strerror(errno));
return RPMERR_BADSPEC;
}
if (!getUname(sb.st_uid) || !getGname(sb.st_gid)) {
rpmError(RPMERR_BADSPEC, _("Bad owner/group: %s"), urlfn);
rpmError(RPMERR_BADSPEC, _("Bad owner/group: %s\n"), urlfn);
return RPMERR_BADSPEC;
}
@ -71,7 +72,7 @@ static int checkOwners(const char *urlfn)
}
}
if (sp == NULL) {
rpmError(RPMERR_BADSPEC, _("No patch number %d"), c);
rpmError(RPMERR_BADSPEC, _("No patch number %d\n"), c);
return NULL;
}
@ -161,7 +162,7 @@ static int checkOwners(const char *urlfn)
}
}
if (sp == NULL) {
rpmError(RPMERR_BADSPEC, _("No source number %d"), c);
rpmError(RPMERR_BADSPEC, _("No source number %d\n"), c);
return NULL;
}
@ -180,8 +181,9 @@ static int checkOwners(const char *urlfn)
if (Lstat(urlfn, &st) != 0 && errno == ENOENT &&
urlIsUrl(sp->fullSource) != URL_IS_UNKNOWN) {
if ((rc = urlGetFile(sp->fullSource, urlfn)) != 0) {
rpmError(RPMERR_BADFILENAME, _("Couldn't download nosource %s: %s"),
sp->fullSource, ftpStrerror(rc));
rpmError(RPMERR_BADFILENAME,
_("Couldn't download nosource %s: %s\n"),
sp->fullSource, ftpStrerror(rc));
return NULL;
}
}
@ -274,7 +276,7 @@ static int doSetupMacro(Spec spec, char *line)
dirName = NULL;
if ((rc = poptParseArgvString(line, &argc, &argv))) {
rpmError(RPMERR_BADSPEC, _("Error parsing %%setup: %s"),
rpmError(RPMERR_BADSPEC, _("Error parsing %%setup: %s\n"),
poptStrerror(rc));
return RPMERR_BADSPEC;
}
@ -289,7 +291,7 @@ static int doSetupMacro(Spec spec, char *line)
/* We only parse -a and -b here */
if (parseNum(optArg, &num)) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad arg to %%setup %c: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad arg to %%setup %c: %s\n"),
spec->lineNum, num, optArg);
free(argv);
freeStringBuf(before);
@ -307,7 +309,7 @@ static int doSetupMacro(Spec spec, char *line)
}
if (arg < -1) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad %%setup option %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad %%setup option %s: %s\n"),
spec->lineNum,
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
poptStrerror(arg));
@ -440,16 +442,18 @@ static int doPatchMacro(Spec spec, char *line)
/* orig suffix */
opt_b = strtok(NULL, " \t\n");
if (! opt_b) {
rpmError(RPMERR_BADSPEC, _("line %d: Need arg to %%patch -b: %s"),
spec->lineNum, spec->line);
rpmError(RPMERR_BADSPEC,
_("line %d: Need arg to %%patch -b: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
} else if (!strcmp(s, "-z")) {
/* orig suffix */
opt_b = strtok(NULL, " \t\n");
if (! opt_b) {
rpmError(RPMERR_BADSPEC, _("line %d: Need arg to %%patch -z: %s"),
spec->lineNum, spec->line);
rpmError(RPMERR_BADSPEC,
_("line %d: Need arg to %%patch -z: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
} else if (!strncmp(s, "-p", sizeof("-p")-1)) {
@ -460,24 +464,25 @@ static int doPatchMacro(Spec spec, char *line)
s = strtok(NULL, " \t\n");
if (s == NULL) {
rpmError(RPMERR_BADSPEC,
_("line %d: Need arg to %%patch -p: %s"),
_("line %d: Need arg to %%patch -p: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
}
if (parseNum(s, &opt_p)) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad arg to %%patch -p: %s"),
spec->lineNum, spec->line);
rpmError(RPMERR_BADSPEC,
_("line %d: Bad arg to %%patch -p: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
} else {
/* Must be a patch num */
if (patch_index == 1024) {
rpmError(RPMERR_BADSPEC, _("Too many patches!"));
rpmError(RPMERR_BADSPEC, _("Too many patches!\n"));
return RPMERR_BADSPEC;
}
if (parseNum(s, &(patch_nums[patch_index]))) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad arg to %%patch: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad arg to %%patch: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -513,7 +518,7 @@ int parsePrep(Spec spec)
char **lines, **saveLines;
if (spec->prep != NULL) {
rpmError(RPMERR_BADSPEC, _("line %d: second %%prep"), spec->lineNum);
rpmError(RPMERR_BADSPEC, _("line %d: second %%prep\n"), spec->lineNum);
return RPMERR_BADSPEC;
}

View File

@ -97,7 +97,7 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, int tag,
/* Tokens must begin with alphanumeric, _, or / */
if (!(isalnum(r[0]) || r[0] == '_' || r[0] == '/')) {
rpmError(RPMERR_BADSPEC,
_("line %d: Dependency tokens must begin with alpha-numeric, '_' or '/': %s"),
_("line %d: Dependency tokens must begin with alpha-numeric, '_' or '/': %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -108,7 +108,7 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, int tag,
case RPMTAG_CONFLICTFLAGS:
case RPMTAG_BUILDCONFLICTS:
if (r[0] == '/') {
rpmError(RPMERR_BADSPEC,_("line %d: File name not permitted: %s"),
rpmError(RPMERR_BADSPEC,_("line %d: File name not permitted: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -140,7 +140,7 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, int tag,
if (r[0] == '/') {
rpmError(RPMERR_BADSPEC,
_("line %d: Versioned file name not permitted: %s"),
_("line %d: Versioned file name not permitted: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -170,7 +170,7 @@ int parseRCPOT(Spec spec, Package pkg, const char *field, int tag,
if (flags & RPMSENSE_SENSEMASK) {
if (*v == '\0' || ve == v) {
rpmError(RPMERR_BADSPEC, _("line %d: Version required: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Version required: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}

View File

@ -150,7 +150,7 @@ int parseScript(Spec spec, int parsePart)
/* break line into two */
p = strstr(spec->line, "--");
if (!p) {
rpmError(RPMERR_BADSPEC, _("line %d: triggers must have --: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: triggers must have --: %s\n"),
spec->lineNum, spec->line);
return RPMERR_BADSPEC;
}
@ -160,7 +160,7 @@ int parseScript(Spec spec, int parsePart)
}
if ((rc = poptParseArgvString(spec->line, &argc, &argv))) {
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %s: %s\n"),
spec->lineNum, partname, poptStrerror(rc));
return RPMERR_BADSPEC;
}
@ -172,7 +172,7 @@ int parseScript(Spec spec, int parsePart)
if (prog[0] != '/') {
rpmError(RPMERR_BADSPEC,
_("line %d: script program must begin "
"with \'/\': %s"), spec->lineNum, prog);
"with \'/\': %s\n"), spec->lineNum, prog);
rc = RPMERR_BADSPEC;
goto exit;
}
@ -184,7 +184,7 @@ int parseScript(Spec spec, int parsePart)
}
if (arg < -1) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad option %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad option %s: %s\n"),
spec->lineNum,
poptBadOption(optCon, POPT_BADOPTION_NOALIAS),
spec->line);
@ -196,7 +196,7 @@ int parseScript(Spec spec, int parsePart)
if (name == NULL)
name = poptGetArg(optCon);
if (poptPeekArg(optCon)) {
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Too many names: %s\n"),
spec->lineNum,
spec->line);
rc = RPMERR_BADSPEC;
@ -205,7 +205,7 @@ int parseScript(Spec spec, int parsePart)
}
if (lookupPackage(spec, name, flag, &pkg)) {
rpmError(RPMERR_BADSPEC, _("line %d: Package does not exist: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Package does not exist: %s\n"),
spec->lineNum, spec->line);
rc = RPMERR_BADSPEC;
goto exit;
@ -213,7 +213,7 @@ int parseScript(Spec spec, int parsePart)
if (tag != RPMTAG_TRIGGERSCRIPTS) {
if (headerIsEntry(pkg->header, progtag)) {
rpmError(RPMERR_BADSPEC, _("line %d: Second %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Second %s\n"),
spec->lineNum, partname);
rc = RPMERR_BADSPEC;
goto exit;
@ -221,7 +221,7 @@ int parseScript(Spec spec, int parsePart)
}
if ((rc = poptParseArgvString(prog, &progArgc, &progArgv))) {
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %s: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Error parsing %s: %s\n"),
spec->lineNum, partname, poptStrerror(rc));
rc = RPMERR_BADSPEC;
goto exit;

View File

@ -133,7 +133,8 @@ static int copyNextLine(Spec spec, OFI_t *ofi, int strip)
/* Don't expand macros (eg. %define) in false branch of %if clause */
if (spec->readStack->reading &&
expandMacros(spec, spec->macros, spec->lbuf, sizeof(spec->lbuf))) {
rpmError(RPMERR_BADSPEC, _("line %d: %s"), spec->lineNum, spec->lbuf);
rpmError(RPMERR_BADSPEC, _("line %d: %s\n"),
spec->lineNum, spec->lbuf);
return RPMERR_BADSPEC;
}
spec->nextline = spec->lbuf;
@ -193,7 +194,7 @@ retry:
if (!fgets(ofi->readBuf, BUFSIZ, fdGetFp(ofi->fd))) {
/* EOF */
if (spec->readStack->next) {
rpmError(RPMERR_UNMATCHEDIF, _("Unclosed %%if"));
rpmError(RPMERR_UNMATCHEDIF, _("Unclosed %%if\n"));
return RPMERR_UNMATCHEDIF;
}
@ -264,16 +265,18 @@ retry:
s += 3;
match = parseExpressionBoolean(spec, s);
if (match < 0) {
rpmError(RPMERR_UNMATCHEDIF, _("%s:%d: parseExpressionBoolean returns %d"),
ofi->fileName, ofi->lineNum, match);
rpmError(RPMERR_UNMATCHEDIF,
_("%s:%d: parseExpressionBoolean returns %d\n"),
ofi->fileName, ofi->lineNum, match);
return RPMERR_BADSPEC;
}
} else if (! strncmp("%else", s, sizeof("%else")-1)) {
s += 5;
if (! spec->readStack->next) {
/* Got an else with no %if ! */
rpmError(RPMERR_UNMATCHEDIF, _("%s:%d: Got a %%else with no if"),
ofi->fileName, ofi->lineNum);
rpmError(RPMERR_UNMATCHEDIF,
_("%s:%d: Got a %%else with no %%if\n"),
ofi->fileName, ofi->lineNum);
return RPMERR_UNMATCHEDIF;
}
spec->readStack->reading =
@ -283,8 +286,9 @@ retry:
s += 6;
if (! spec->readStack->next) {
/* Got an end with no %if ! */
rpmError(RPMERR_UNMATCHEDIF, _("%s:%d: Got a %%endif with no if"),
ofi->fileName, ofi->lineNum);
rpmError(RPMERR_UNMATCHEDIF,
_("%s:%d: Got a %%endif with no %%if\n"),
ofi->fileName, ofi->lineNum);
return RPMERR_UNMATCHEDIF;
}
rl = spec->readStack;
@ -297,7 +301,7 @@ retry:
s += 8;
fileName = s;
if (! isspace(*fileName)) {
rpmError(RPMERR_BADSPEC, _("malformed %%include statement"));
rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
return RPMERR_BADSPEC;
}
SKIPSPACE(fileName);
@ -306,7 +310,7 @@ retry:
p = endFileName;
SKIPSPACE(p);
if (*p != '\0') {
rpmError(RPMERR_BADSPEC, _("malformed %%include statement"));
rpmError(RPMERR_BADSPEC, _("malformed %%include statement\n"));
return RPMERR_BADSPEC;
}
*endFileName = '\0';
@ -379,7 +383,7 @@ int parseSpec(Spec *specp, const char *specFile, const char *rootURL,
if (*buildRoot == '\0') buildRoot = "/";
if (!strcmp(buildRoot, "/")) {
rpmError(RPMERR_BADSPEC,
_("BuildRoot can not be \"/\": %s"), buildRootURL);
_("BuildRoot can not be \"/\": %s\n"), buildRootURL);
return RPMERR_BADSPEC;
}
spec->gotBuildRootURL = 1;
@ -443,6 +447,7 @@ fprintf(stderr, "*** PS buildRootURL(%s) %p macro set to %s\n", spec->buildRootU
break;
case PART_NONE: /* XXX avoid gcc whining */
case PART_LAST:
case PART_BUILDARCHITECTURES:
break;
}
@ -485,7 +490,7 @@ fprintf(stderr, "*** PS buildRootURL(%s) %p macro set to %s\n", spec->buildRootU
spec->buildArchitectureCount = index;
if (! index) {
freeSpec(spec);
rpmError(RPMERR_BADSPEC, _("No buildable architectures"));
rpmError(RPMERR_BADSPEC, _("No buildable architectures\n"));
return RPMERR_BADSPEC;
}
@ -540,7 +545,8 @@ fprintf(stderr, "*** PS buildRootURL(%s) %p macro set to %s\n", spec->buildRootU
if (!headerIsEntry(pkg->header, RPMTAG_DESCRIPTION)) {
const char * name;
headerNVR(pkg->header, &name, NULL, NULL);
rpmError(RPMERR_BADSPEC, _("Package has no %%description: %s"), name);
rpmError(RPMERR_BADSPEC, _("Package has no %%description: %s\n"),
name);
freeSpec(spec);
return RPMERR_BADSPEC;
}

View File

@ -225,13 +225,13 @@ int parseNoSource(Spec spec, const char *field, int tag)
if (*fe) fe++;
if (parseNum(f, &num)) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad number: %s"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad number: %s\n"),
spec->lineNum, f);
return RPMERR_BADSPEC;
}
if (! (p = findSource(spec, num, flag))) {
rpmError(RPMERR_BADSPEC, _("line %d: Bad no%s number: %d"),
rpmError(RPMERR_BADSPEC, _("line %d: Bad no%s number: %d\n"),
spec->lineNum, name, num);
return RPMERR_BADSPEC;
}

View File

@ -38,12 +38,12 @@ int convertDB(void)
int i, j;
if (rpmfileexists("/var/lib/rpm/packages.rpm")) {
rpmError(RPMERR_NOCREATEDB, _("RPM database already exists"));
rpmError(RPMERR_NOCREATEDB, _("RPM database already exists\n"));
return 0;
}
if (oldrpmdbOpen(&olddb)) {
rpmError(RPMERR_OLDDBMISSING, _("Old db is missing"));
rpmError(RPMERR_OLDDBMISSING, _("Old db is missing\n"));
return 0;
}
@ -54,13 +54,13 @@ int convertDB(void)
unlink("/var/lib/rpm/fileindex.rpm");
if (rpmdbOpen("", &db, O_RDWR | O_CREAT, 0644)) {
rpmError(RPMERR_DBOPEN, _("failed to create RPM database /var/lib/rpm"));
rpmError(RPMERR_DBOPEN, _("failed to create RPM database /var/lib/rpm\n"));
return 0;
}
packageLabels = oldrpmdbGetAllLabels(&olddb);
if (!packageLabels) {
rpmError(RPMERR_OLDDBCORRUPT, _("Old db is corrupt"));
rpmError(RPMERR_OLDDBCORRUPT, _("Old db is corrupt\n"));
rpmdbClose(db);
unlink("/var/lib/rpm/packages.rpm");
oldrpmdbClose(&olddb);

View File

@ -418,7 +418,7 @@ static int db1open(rpmdb rpmdb, int rpmtag, dbiIndex * dbip)
urlfn = rpmGenPath(rpmdb->db_root, rpmdb->db_home, base);
(void) urlPath(urlfn, &fn);
if (!(fn && *fn != '\0')) {
rpmError(RPMERR_DBOPEN, _("bad db file %s"), urlfn);
rpmError(RPMERR_DBOPEN, _("bad db file %s\n"), urlfn);
rc = EFAULT;
goto exit;
}
@ -446,7 +446,7 @@ static int db1open(rpmdb rpmdb, int rpmtag, dbiIndex * dbip)
if (Fcntl(pkgs, F_SETLK, (void *) &l)) {
rc = errno; /* XXX check errno validity */
rpmError(RPMERR_FLOCK, _("cannot get %s lock on database"),
rpmError(RPMERR_FLOCK, _("cannot get %s lock on database\n"),
((dbi->dbi_mode & O_RDWR) ? _("exclusive") : _("shared")));
goto exit;
}

View File

@ -134,7 +134,7 @@ static void alFreeIndex(struct availableList * al)
static void alCreate(struct availableList * al)
/*@modifies *al @*/
{
al->alloced = 5;
al->alloced = al->delta;
al->size = 0;
al->list = xcalloc(al->alloced, sizeof(*al->list));
@ -247,7 +247,7 @@ static /*@exposed@*/ struct availablePackage * alAddPackage(struct availableList
uint_32 * pp = NULL;
if (al->size == al->alloced) {
al->alloced += 5;
al->alloced += al->delta;
al->list = xrealloc(al->list, sizeof(*al->list) * al->alloced);
}
@ -651,7 +651,6 @@ static int rangeMatchesDepFlags (Header h, const char *reqName, const char * req
return result;
}
/* XXX FIXME: eliminate when obsoletes is correctly implemented */
int headerMatchesDepFlags(Header h,
const char * reqName, const char * reqEVR, int reqFlags)
{
@ -677,23 +676,25 @@ int headerMatchesDepFlags(Header h,
(void) stpcpy( stpcpy( stpcpy(p, version) , "-") , release);
return rpmRangesOverlap(name, pkgEVR, pkgFlags, reqName, reqEVR, reqFlags);
}
rpmTransactionSet rpmtransCreateSet(rpmdb rpmdb, const char * rootDir)
{
rpmTransactionSet rpmdep;
rpmTransactionSet ts;
int rootLen;
if (!rootDir) rootDir = "";
rpmdep = xcalloc(1, sizeof(*rpmdep));
rpmdep->rpmdb = rpmdb;
rpmdep->scriptFd = NULL;
rpmdep->numRemovedPackages = 0;
rpmdep->allocedRemovedPackages = 5;
rpmdep->removedPackages = xcalloc(rpmdep->allocedRemovedPackages,
sizeof(*rpmdep->removedPackages));
ts = xcalloc(1, sizeof(*ts));
ts->rpmdb = rpmdb;
ts->scriptFd = NULL;
ts->id = 0;
ts->delta = 5;
ts->numRemovedPackages = 0;
ts->allocedRemovedPackages = ts->delta;
ts->removedPackages = xcalloc(ts->allocedRemovedPackages,
sizeof(*ts->removedPackages));
/* This canonicalizes the root */
rootLen = strlen(rootDir);
@ -706,49 +707,50 @@ rpmTransactionSet rpmtransCreateSet(rpmdb rpmdb, const char * rootDir)
rootDir = t;
}
rpmdep->rootDir = xstrdup(rootDir);
rpmdep->currDir = NULL;
rpmdep->chrootDone = 0;
ts->rootDir = xstrdup(rootDir);
ts->currDir = NULL;
ts->chrootDone = 0;
alCreate(&rpmdep->addedPackages);
alCreate(&rpmdep->availablePackages);
ts->addedPackages.delta = ts->delta;
alCreate(&ts->addedPackages);
ts->availablePackages.delta = ts->delta;
alCreate(&ts->availablePackages);
rpmdep->orderAlloced = 5;
rpmdep->orderCount = 0;
rpmdep->order = xcalloc(rpmdep->orderAlloced, sizeof(*rpmdep->order));
ts->orderAlloced = ts->delta;
ts->orderCount = 0;
ts->order = xcalloc(ts->orderAlloced, sizeof(*ts->order));
return rpmdep;
return ts;
}
/**
* Add removed package instance to ordered transaction set.
* @param rpmdep rpm transaction set
* @param ts transaction set
* @param dboffset rpm database instance
* @param depends installed package of pair (or -1 on erase)
*/
static void removePackage(rpmTransactionSet rpmdep, int dboffset, int depends)
/*@modifies rpmdep @*/
static void removePackage(rpmTransactionSet ts, int dboffset, int depends)
/*@modifies ts @*/
{
if (rpmdep->numRemovedPackages == rpmdep->allocedRemovedPackages) {
rpmdep->allocedRemovedPackages += 5;
rpmdep->removedPackages = xrealloc(rpmdep->removedPackages,
sizeof(int *) * rpmdep->allocedRemovedPackages);
if (ts->numRemovedPackages == ts->allocedRemovedPackages) {
ts->allocedRemovedPackages += ts->delta;
ts->removedPackages = xrealloc(ts->removedPackages,
sizeof(int *) * ts->allocedRemovedPackages);
}
rpmdep->removedPackages[rpmdep->numRemovedPackages++] = dboffset;
ts->removedPackages[ts->numRemovedPackages++] = dboffset;
if (rpmdep->orderCount == rpmdep->orderAlloced) {
rpmdep->orderAlloced += 5;
rpmdep->order = xrealloc(rpmdep->order,
sizeof(*rpmdep->order) * rpmdep->orderAlloced);
if (ts->orderCount == ts->orderAlloced) {
ts->orderAlloced += ts->delta;
ts->order = xrealloc(ts->order, sizeof(*ts->order) * ts->orderAlloced);
}
rpmdep->order[rpmdep->orderCount].type = TR_REMOVED;
rpmdep->order[rpmdep->orderCount].u.removed.dboffset = dboffset;
rpmdep->order[rpmdep->orderCount++].u.removed.dependsOnIndex = depends;
ts->order[ts->orderCount].type = TR_REMOVED;
ts->order[ts->orderCount].u.removed.dboffset = dboffset;
ts->order[ts->orderCount++].u.removed.dependsOnIndex = depends;
}
int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd,
int rpmtransAddPackage(rpmTransactionSet ts, Header h, FD_t fd,
const void * key, int upgrade, rpmRelocation * relocs)
{
/* this is an install followed by uninstalls */
@ -766,27 +768,26 @@ int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd,
makes it difficult to generate a return code based on the number of
packages which failed. */
if (rpmdep->orderCount == rpmdep->orderAlloced) {
rpmdep->orderAlloced += 5;
rpmdep->order = xrealloc(rpmdep->order,
sizeof(*rpmdep->order) * rpmdep->orderAlloced);
if (ts->orderCount == ts->orderAlloced) {
ts->orderAlloced += ts->delta;
ts->order = xrealloc(ts->order, sizeof(*ts->order) * ts->orderAlloced);
}
rpmdep->order[rpmdep->orderCount].type = TR_ADDED;
alNum = alAddPackage(&rpmdep->addedPackages, h, key, fd, relocs) -
rpmdep->addedPackages.list;
rpmdep->order[rpmdep->orderCount++].u.addedIndex = alNum;
ts->order[ts->orderCount].type = TR_ADDED;
alNum = alAddPackage(&ts->addedPackages, h, key, fd, relocs) -
ts->addedPackages.list;
ts->order[ts->orderCount++].u.addedIndex = alNum;
if (!upgrade || rpmdep->rpmdb == NULL) return 0;
if (!upgrade || ts->rpmdb == NULL) return 0;
headerNVR(h, &name, NULL, NULL);
{ rpmdbMatchIterator mi;
Header h2;
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMTAG_NAME, name, 0);
mi = rpmdbInitIterator(ts->rpmdb, RPMTAG_NAME, name, 0);
while((h2 = rpmdbNextIterator(mi)) != NULL) {
if (rpmVersionCompare(h, h2))
removePackage(rpmdep, rpmdbGetIteratorOffset(mi), alNum);
removePackage(ts, rpmdbGetIteratorOffset(mi), alNum);
else {
uint_32 *p, multiLibMask = 0, oldmultiLibMask = 0;
@ -796,7 +797,7 @@ int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd,
multiLibMask = *p;
if (oldmultiLibMask && multiLibMask
&& !(oldmultiLibMask & multiLibMask)) {
rpmdep->addedPackages.list[alNum].multiLib = multiLibMask;
ts->addedPackages.list[alNum].multiLib = multiLibMask;
}
}
}
@ -820,10 +821,10 @@ int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd,
{ rpmdbMatchIterator mi;
Header h2;
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMTAG_NAME, obsoletes[j], 0);
mi = rpmdbInitIterator(ts->rpmdb, RPMTAG_NAME, obsoletes[j], 0);
rpmdbPruneIterator(mi,
rpmdep->removedPackages, rpmdep->numRemovedPackages, 1);
ts->removedPackages, ts->numRemovedPackages, 1);
while((h2 = rpmdbNextIterator(mi)) != NULL) {
/*
@ -834,7 +835,7 @@ int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd,
headerMatchesDepFlags(h2,
obsoletes[j], obsoletesEVR[j], obsoletesFlags[j]))
{
removePackage(rpmdep, rpmdbGetIteratorOffset(mi), alNum);
removePackage(ts, rpmdbGetIteratorOffset(mi), alNum);
}
}
rpmdbFreeIterator(mi);
@ -848,37 +849,37 @@ int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd,
return 0;
}
void rpmtransAvailablePackage(rpmTransactionSet rpmdep, Header h,
void rpmtransAvailablePackage(rpmTransactionSet ts, Header h,
const void * key)
{
struct availablePackage * al;
al = alAddPackage(&rpmdep->availablePackages, h, key, NULL, NULL);
al = alAddPackage(&ts->availablePackages, h, key, NULL, NULL);
}
void rpmtransRemovePackage(rpmTransactionSet rpmdep, int dboffset)
void rpmtransRemovePackage(rpmTransactionSet ts, int dboffset)
{
removePackage(rpmdep, dboffset, -1);
removePackage(ts, dboffset, -1);
}
void rpmtransFree(rpmTransactionSet rpmdep)
void rpmtransFree(rpmTransactionSet ts)
{
struct availableList * addedPackages = &rpmdep->addedPackages;
struct availableList * availablePackages = &rpmdep->availablePackages;
struct availableList * addedPackages = &ts->addedPackages;
struct availableList * availablePackages = &ts->availablePackages;
alFree(addedPackages);
alFree(availablePackages);
if (rpmdep->removedPackages)
free(rpmdep->removedPackages);
if (rpmdep->order)
free(rpmdep->order);
if (rpmdep->scriptFd)
rpmdep->scriptFd = fdFree(rpmdep->scriptFd, "rpmtransSetScriptFd (rpmtransFree");
if (rpmdep->rootDir)
free((void *)rpmdep->rootDir);
if (rpmdep->currDir)
free((void *)rpmdep->currDir);
if (ts->removedPackages)
free(ts->removedPackages);
if (ts->order)
free(ts->order);
if (ts->scriptFd)
ts->scriptFd = fdFree(ts->scriptFd, "rpmtransSetScriptFd (rpmtransFree");
if (ts->rootDir)
free((void *)ts->rootDir);
if (ts->currDir)
free((void *)ts->currDir);
free(rpmdep);
free(ts);
}
void rpmdepFreeConflicts(struct rpmDependencyConflict * conflicts,
@ -888,11 +889,11 @@ void rpmdepFreeConflicts(struct rpmDependencyConflict * conflicts,
for (i = 0; i < numConflicts; i++) {
headerFree(conflicts[i].byHeader);
free(conflicts[i].byName);
free(conflicts[i].byVersion);
free(conflicts[i].byRelease);
free(conflicts[i].needsName);
free(conflicts[i].needsVersion);
free((void *)conflicts[i].byName);
free((void *)conflicts[i].byVersion);
free((void *)conflicts[i].byRelease);
free((void *)conflicts[i].needsName);
free((void *)conflicts[i].needsVersion);
}
free(conflicts);
@ -1026,7 +1027,7 @@ alFileSatisfiesDepend(struct availableList * al,
* @retval suggestion possible package to resolve dependency
* @return 0 if satisfied, 1 if not satisfied, 2 if error
*/
static int unsatisfiedDepend(rpmTransactionSet rpmdep,
static int unsatisfiedDepend(rpmTransactionSet ts,
const char * keyType, const char * keyDepend,
const char * keyName, const char * keyEVR, int keyFlags,
/*@out@*/ struct availablePackage ** suggestion)
@ -1043,7 +1044,7 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep,
*/
if (_cacheDependsRC) {
dbiIndex dbi;
dbi = dbiOpen(rpmdep->rpmdb, RPMDBI_DEPENDS, 0);
dbi = dbiOpen(ts->rpmdb, RPMDBI_DEPENDS, 0);
if (dbi == NULL)
_cacheDependsRC = 0;
else {
@ -1099,19 +1100,19 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep,
goto unsatisfied;
}
if (alSatisfiesDepend(&rpmdep->addedPackages, keyType, keyDepend, keyName, keyEVR, keyFlags)) {
if (alSatisfiesDepend(&ts->addedPackages, keyType, keyDepend, keyName, keyEVR, keyFlags)) {
goto exit;
}
/* XXX only the installer does not have the database open here. */
if (rpmdep->rpmdb != NULL) {
if (ts->rpmdb != NULL) {
if (*keyName == '/') {
/* keyFlags better be 0! */
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMTAG_BASENAMES, keyName, 0);
mi = rpmdbInitIterator(ts->rpmdb, RPMTAG_BASENAMES, keyName, 0);
rpmdbPruneIterator(mi,
rpmdep->removedPackages, rpmdep->numRemovedPackages, 1);
ts->removedPackages, ts->numRemovedPackages, 1);
while ((h = rpmdbNextIterator(mi)) != NULL) {
rpmMessage(RPMMESS_DEBUG, _("%s: %-45s YES (db files)\n"),
@ -1122,9 +1123,9 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep,
rpmdbFreeIterator(mi);
}
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMTAG_PROVIDENAME, keyName, 0);
mi = rpmdbInitIterator(ts->rpmdb, RPMTAG_PROVIDENAME, keyName, 0);
rpmdbPruneIterator(mi,
rpmdep->removedPackages, rpmdep->numRemovedPackages, 1);
ts->removedPackages, ts->numRemovedPackages, 1);
while ((h = rpmdbNextIterator(mi)) != NULL) {
if (rangeMatchesDepFlags(h, keyName, keyEVR, keyFlags)) {
rpmMessage(RPMMESS_DEBUG, _("%s: %-45s YES (db provides)\n"),
@ -1136,9 +1137,9 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep,
rpmdbFreeIterator(mi);
#ifndef DYING
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMTAG_NAME, keyName, 0);
mi = rpmdbInitIterator(ts->rpmdb, RPMTAG_NAME, keyName, 0);
rpmdbPruneIterator(mi,
rpmdep->removedPackages, rpmdep->numRemovedPackages, 1);
ts->removedPackages, ts->numRemovedPackages, 1);
while ((h = rpmdbNextIterator(mi)) != NULL) {
if (rangeMatchesDepFlags(h, keyName, keyEVR, keyFlags)) {
rpmMessage(RPMMESS_DEBUG, _("%s: %-45s YES (db package)\n"),
@ -1153,7 +1154,7 @@ static int unsatisfiedDepend(rpmTransactionSet rpmdep,
}
if (suggestion)
*suggestion = alSatisfiesDepend(&rpmdep->availablePackages, NULL, NULL,
*suggestion = alSatisfiesDepend(&ts->availablePackages, NULL, NULL,
keyName, keyEVR, keyFlags);
unsatisfied:
@ -1166,7 +1167,7 @@ exit:
*/
if (_cacheDependsRC) {
dbiIndex dbi;
dbi = dbiOpen(rpmdep->rpmdb, RPMDBI_DEPENDS, 0);
dbi = dbiOpen(ts->rpmdb, RPMDBI_DEPENDS, 0);
if (dbi == NULL) {
_cacheDependsRC = 0;
} else {
@ -1186,7 +1187,7 @@ exit:
return rc;
}
static int checkPackageDeps(rpmTransactionSet rpmdep, struct problemsSet * psp,
static int checkPackageDeps(rpmTransactionSet ts, struct problemsSet * psp,
Header h, const char * keyName, uint_32 multiLib)
{
const char * name, * version, * release;
@ -1229,7 +1230,7 @@ static int checkPackageDeps(rpmTransactionSet rpmdep, struct problemsSet * psp,
keyDepend = printDepend("R", requires[i], requiresEVR[i], requireFlags[i]);
rc = unsatisfiedDepend(rpmdep, " Requires", keyDepend,
rc = unsatisfiedDepend(ts, " Requires", keyDepend,
requires[i], requiresEVR[i], requireFlags[i], &suggestion);
switch (rc) {
@ -1297,7 +1298,7 @@ static int checkPackageDeps(rpmTransactionSet rpmdep, struct problemsSet * psp,
keyDepend = printDepend("C", conflicts[i], conflictsEVR[i], conflictFlags[i]);
rc = unsatisfiedDepend(rpmdep, "Conflicts", keyDepend,
rc = unsatisfiedDepend(ts, "Conflicts", keyDepend,
conflicts[i], conflictsEVR[i], conflictFlags[i], NULL);
/* 1 == unsatisfied, 0 == satsisfied */
@ -1345,16 +1346,15 @@ static int checkPackageDeps(rpmTransactionSet rpmdep, struct problemsSet * psp,
* Adding: check name/provides key against each conflict match,
* Erasing: check name/provides/filename key against each requiredby match.
*/
static int checkPackageSet(rpmTransactionSet rpmdep, struct problemsSet * psp,
static int checkPackageSet(rpmTransactionSet ts, struct problemsSet * psp,
const char * key, /*@only@*/ rpmdbMatchIterator mi)
{
Header h;
int rc = 0;
rpmdbPruneIterator(mi,
rpmdep->removedPackages, rpmdep->numRemovedPackages, 1);
rpmdbPruneIterator(mi, ts->removedPackages, ts->numRemovedPackages, 1);
while ((h = rpmdbNextIterator(mi)) != NULL) {
if (checkPackageDeps(rpmdep, psp, h, key, 0)) {
if (checkPackageDeps(ts, psp, h, key, 0)) {
rc = 1;
break;
}
@ -1367,26 +1367,26 @@ static int checkPackageSet(rpmTransactionSet rpmdep, struct problemsSet * psp,
/**
* Erasing: check name/provides/filename key against requiredby matches.
*/
static int checkDependentPackages(rpmTransactionSet rpmdep,
static int checkDependentPackages(rpmTransactionSet ts,
struct problemsSet * psp, const char * key)
{
rpmdbMatchIterator mi;
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMTAG_REQUIRENAME, key, 0);
return checkPackageSet(rpmdep, psp, key, mi);
mi = rpmdbInitIterator(ts->rpmdb, RPMTAG_REQUIRENAME, key, 0);
return checkPackageSet(ts, psp, key, mi);
}
/**
* Adding: check name/provides key against conflicts matches.
*/
static int checkDependentConflicts(rpmTransactionSet rpmdep,
static int checkDependentConflicts(rpmTransactionSet ts,
struct problemsSet * psp, const char * key)
{
int rc = 0;
if (rpmdep->rpmdb) { /* XXX is this necessary? */
if (ts->rpmdb) { /* XXX is this necessary? */
rpmdbMatchIterator mi;
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMTAG_CONFLICTNAME, key, 0);
rc = checkPackageSet(rpmdep, psp, key, mi);
mi = rpmdbInitIterator(ts->rpmdb, RPMTAG_CONFLICTNAME, key, 0);
rc = checkPackageSet(ts, psp, key, mi);
}
return rc;
@ -2077,20 +2077,20 @@ zapRelation(struct availablePackage * q, struct availablePackage * p,
/**
* Record next "q <- p" relation (i.e. "p" requires "q").
* @param rpmdep rpm transaction set
* @param ts transaction set
* @param p predecessor (i.e. package that "Requires: q")
* @param selected boolean package selected array
* @param j relation index
* @return 0 always
*/
static inline int addRelation( const rpmTransactionSet rpmdep,
static inline int addRelation( const rpmTransactionSet ts,
struct availablePackage * p, unsigned char * selected, int j)
{
struct availablePackage * q;
struct tsortInfo * tsi;
int matchNum;
q = alSatisfiesDepend(&rpmdep->addedPackages, NULL, NULL,
q = alSatisfiesDepend(&ts->addedPackages, NULL, NULL,
p->requires[j], p->requiresEVR[j], p->requireFlags[j]);
/* Ordering depends only on added package relations. */
@ -2109,7 +2109,7 @@ static inline int addRelation( const rpmTransactionSet rpmdep,
/* Avoid redundant relations. */
/* XXX FIXME: add control bit. */
matchNum = q - rpmdep->addedPackages.list;
matchNum = q - ts->addedPackages.list;
if (selected[matchNum])
return 0;
selected[matchNum] = 1;
@ -2486,10 +2486,10 @@ rescan:
return 0;
}
int rpmdepCheck(rpmTransactionSet rpmdep,
int rpmdepCheck(rpmTransactionSet ts,
struct rpmDependencyConflict ** conflicts, int * numConflicts)
{
int npkgs = rpmdep->addedPackages.size;
int npkgs = ts->addedPackages.size;
struct availablePackage * p;
int i, j;
int rc;
@ -2504,24 +2504,23 @@ int rpmdepCheck(rpmTransactionSet rpmdep,
*conflicts = NULL;
*numConflicts = 0;
qsort(rpmdep->removedPackages, rpmdep->numRemovedPackages,
sizeof(int), intcmp);
qsort(ts->removedPackages, ts->numRemovedPackages, sizeof(int), intcmp);
alMakeIndex(&rpmdep->addedPackages);
alMakeIndex(&rpmdep->availablePackages);
alMakeIndex(&ts->addedPackages);
alMakeIndex(&ts->availablePackages);
/* Look at all of the added packages and make sure their dependencies
* are satisfied.
*/
for (i = 0, p = rpmdep->addedPackages.list; i < npkgs; i++, p++)
for (i = 0, p = ts->addedPackages.list; i < npkgs; i++, p++)
{
rc = checkPackageDeps(rpmdep, &ps, p->h, NULL, p->multiLib);
rc = checkPackageDeps(ts, &ps, p->h, NULL, p->multiLib);
if (rc)
goto exit;
/* Adding: check name against conflicts matches. */
rc = checkDependentConflicts(rpmdep, &ps, p->name);
rc = checkDependentConflicts(ts, &ps, p->name);
if (rc)
goto exit;
@ -2531,7 +2530,7 @@ int rpmdepCheck(rpmTransactionSet rpmdep,
rc = 0;
for (j = 0; j < p->providesCount; j++) {
/* Adding: check provides key against conflicts matches. */
if (checkDependentConflicts(rpmdep, &ps, p->provides[j])) {
if (checkDependentConflicts(ts, &ps, p->provides[j])) {
rc = 1;
break;
}
@ -2541,17 +2540,16 @@ int rpmdepCheck(rpmTransactionSet rpmdep,
}
/* now look at the removed packages and make sure they aren't critical */
if (rpmdep->numRemovedPackages > 0) {
mi = rpmdbInitIterator(rpmdep->rpmdb, RPMDBI_PACKAGES, NULL, 0);
rpmdbAppendIterator(mi, rpmdep->removedPackages,
rpmdep->numRemovedPackages);
if (ts->numRemovedPackages > 0) {
mi = rpmdbInitIterator(ts->rpmdb, RPMDBI_PACKAGES, NULL, 0);
rpmdbAppendIterator(mi, ts->removedPackages, ts->numRemovedPackages);
while ((h = rpmdbNextIterator(mi)) != NULL) {
{ const char * name;
headerNVR(h, &name, NULL, NULL);
/* Erasing: check name against requiredby matches. */
rc = checkDependentPackages(rpmdep, &ps, name);
rc = checkDependentPackages(ts, &ps, name);
if (rc)
goto exit;
}
@ -2564,7 +2562,7 @@ int rpmdepCheck(rpmTransactionSet rpmdep,
rc = 0;
for (j = 0; j < providesCount; j++) {
/* Erasing: check provides against requiredby matches. */
if (checkDependentPackages(rpmdep, &ps, provides[j])) {
if (checkDependentPackages(ts, &ps, provides[j])) {
rc = 1;
break;
}
@ -2599,7 +2597,7 @@ int rpmdepCheck(rpmTransactionSet rpmdep,
*fileName = '\0';
(void) stpcpy( stpcpy(fileName, dirNames[dirIndexes[j]]) , baseNames[j]);
/* Erasing: check filename against requiredby matches. */
if (checkDependentPackages(rpmdep, &ps, fileName)) {
if (checkDependentPackages(ts, &ps, fileName)) {
rc = 1;
break;
}

View File

@ -94,8 +94,9 @@ struct dirInfo {
struct availableList {
/*@owned@*/ /*@null@*/ struct availablePackage * list; /*!< Set of packages. */
struct availableIndex index; /*!< Set of available items. */
int size;
int alloced;
int delta; /*!< Delta for pkg list reallocation. */
int size; /*!< No. of pkgs in list. */
int alloced; /*!< No. of pkgs allocated for list. */
int numDirs; /*!< No. of directories. */
/*@owned@*/ struct dirInfo * dirs; /*!< Set of directories. */
};
@ -130,21 +131,28 @@ struct rpmTransactionSet_s {
/*@only@*/ int * removedPackages; /*!< Set of packages being removed. */
int numRemovedPackages; /*!< No. removed rpmdb instances. */
int allocedRemovedPackages; /*!< Size of removed packages array. */
struct availableList addedPackages; /*!< Set of packages being installed. */
struct availableList availablePackages; /*!< Universe of possible packages to install. */
/*@only@*/ struct transactionElement * order; /*!< Packages sorted by dependencies. */
int orderCount;
int orderAlloced;
int chrootDone;
/*@only@*/ const char * rootDir; /*!< Path to top of install tree. */
/*@only@*/ const char * currDir; /*!< Current working directory. */
/*@null@*/ FD_t scriptFd;
struct availableList addedPackages;/*!< Set of packages being installed. */
struct availableList availablePackages;
/*!< Universe of possible packages. */
/*@only@*/ struct transactionElement * order;
/*!< Packages sorted by dependencies. */
int orderCount; /*!< No. of transaction elements. */
int orderAlloced; /*!< No. of allocated transaction elements. */
int chrootDone; /*!< Has chroot(2) been been done? */
/*@only@*/ const char * rootDir;/*!< Path to top of install tree. */
/*@only@*/ const char * currDir;/*!< Current working directory. */
/*@null@*/ FD_t scriptFd; /*!< Scriptlet stdout/stderr. */
int delta; /*!< Delta for reallocation. */
int id; /*!< Transaction id. */
};
/**
* Problems encountered while checking dependencies.
*/
struct problemsSet {
struct rpmDependencyConflict * problems;
int num;
int alloced;
struct rpmDependencyConflict * problems; /*!< Problems encountered. */
int num; /*!< No. of problems found. */
int alloced; /*!< No. of problems allocated. */
};
#ifdef __cplusplus
@ -152,7 +160,18 @@ extern "C" {
#endif
/* XXX lib/uninstall.c */
int headerMatchesDepFlags(Header h, const char *reqName, const char * reqInfo, int reqFlags);
/**
* Compare package name-version-release from header with dependency, looking
* for overlap.
* @deprecated Remove from API when obsoletes is correctly eliminated.
* @param h header
* @param reqName dependency name
* @param reqEVR dependency [epoch:]version[-release]
* @param reqFlags dependency logical range qualifiers
* @return 1 if dependency overlaps, 0 otherwise
*/
int headerMatchesDepFlags(Header h,
const char *reqName, const char * reqEVR, int reqFlags);
#ifdef __cplusplus
}

View File

@ -66,7 +66,7 @@ static int getFilesystemList(void)
num = mntctl(MCTL_QUERY, sizeof(size), (char *) &size);
if (num < 0) {
rpmError(RPMERR_MTAB, _("mntctl() failed to return fugger size: %s"),
rpmError(RPMERR_MTAB, _("mntctl() failed to return size: %s\n"),
strerror(errno));
return 1;
}
@ -81,7 +81,7 @@ static int getFilesystemList(void)
buf = alloca(size);
num = mntctl(MCTL_QUERY, size, buf);
if ( num <= 0 ) {
rpmError(RPMERR_MTAB, "mntctl() failed to return mount points: %s",
rpmError(RPMERR_MTAB, _("mntctl() failed to return mount points: %s\n"),
strerror(errno));
return 1;
}
@ -101,7 +101,7 @@ static int getFilesystemList(void)
filesystems[i].mntPoint = fsnames[i] = fsn;
if (stat(filesystems[i].mntPoint, &sb)) {
rpmError(RPMERR_STAT, _("failed to stat %s: %s"), fsnames[i],
rpmError(RPMERR_STAT, _("failed to stat %s: %s\n"), fsnames[i],
strerror(errno));
freeFilesystems();
@ -149,7 +149,7 @@ static int getFilesystemList(void)
# if GETMNTENT_ONE || GETMNTENT_TWO
mtab = fopen(MOUNTED, "r");
if (!mtab) {
rpmError(RPMERR_MTAB, _("failed to open %s: %s"), MOUNTED,
rpmError(RPMERR_MTAB, _("failed to open %s: %s\n"), MOUNTED,
strerror(errno));
return 1;
}
@ -181,7 +181,7 @@ static int getFilesystemList(void)
# endif
if (stat(mntdir, &sb)) {
rpmError(RPMERR_STAT, "failed to stat %s: %s", mntdir,
rpmError(RPMERR_STAT, _("failed to stat %s: %s\n"), mntdir,
strerror(errno));
freeFilesystems();
@ -284,7 +284,7 @@ int rpmGetFilesystemUsage(const char ** fileList, int_32 * fssizes, int numFiles
chptr = dirName + strlen(dirName) - 1;
while (stat(dirName, &sb)) {
if (errno != ENOENT) {
rpmError(RPMERR_STAT, _("failed to stat %s: %s"), buf,
rpmError(RPMERR_STAT, _("failed to stat %s: %s\n"), buf,
strerror(errno));
free((void *)sourceDir);
free(usages);
@ -306,7 +306,7 @@ int rpmGetFilesystemUsage(const char ** fileList, int_32 * fssizes, int numFiles
if (j == numFilesystems) {
rpmError(RPMERR_BADDEV,
_("file %s is on an unknown device"), buf);
_("file %s is on an unknown device\n"), buf);
free((void *)sourceDir);
free(usages);
return 1;

View File

@ -648,7 +648,7 @@ static int installArchive(FD_t fd, struct fileInfo * files, int fileCount,
/* this would probably be a good place to check if disk space
was used up - if so, we should return a different error */
errno = saveerrno; /* XXX FIXME: Fclose with libio destroys errno */
rpmError(RPMERR_CPIO, _("unpacking of archive failed%s%s: %s"),
rpmError(RPMERR_CPIO, _("unpacking of archive failed%s%s: %s\n"),
(failedFile != NULL ? _(" on file ") : ""),
(failedFile != NULL ? failedFile : ""),
cpioStrerror(rc));
@ -718,13 +718,14 @@ static int installSources(Header h, const char * rootDir, FD_t fd,
break;
}
if (rc < 0) {
rpmError(RPMERR_CREATE, _("cannot create sourcedir %s"), realSourceDir);
rpmError(RPMERR_CREATE, _("cannot create sourcedir %s\n"),
realSourceDir);
rc = 2;
goto exit;
}
}
if ((rc = Access(realSourceDir, W_OK))) {
rpmError(RPMERR_CREATE, _("cannot write to %s"), realSourceDir);
rpmError(RPMERR_CREATE, _("cannot write to %s\n"), realSourceDir);
rc = 2;
goto exit;
}
@ -748,13 +749,14 @@ static int installSources(Header h, const char * rootDir, FD_t fd,
break;
}
if (rc < 0) {
rpmError(RPMERR_CREATE, _("cannot create specdir %s"), realSpecDir);
rpmError(RPMERR_CREATE, _("cannot create specdir %s\n"),
realSpecDir);
rc = 2;
goto exit;
}
}
if ((rc = Access(realSpecDir, W_OK))) {
rpmError(RPMERR_CREATE, _("cannot write to %s"), realSpecDir);
rpmError(RPMERR_CREATE, _("cannot write to %s\n"), realSpecDir);
rc = 2;
goto exit;
}
@ -790,7 +792,8 @@ static int installSources(Header h, const char * rootDir, FD_t fd,
files[i].relativePath = t;
specFileIndex = i;
} else {
rpmError(RPMERR_NOSPEC, _("source package contains no .spec file"));
rpmError(RPMERR_NOSPEC,
_("source package contains no .spec file\n"));
rc = 2;
goto exit;
}
@ -818,7 +821,8 @@ static int installSources(Header h, const char * rootDir, FD_t fd,
if (specFileIndex == -1) {
if (specFile == NULL) {
rpmError(RPMERR_NOSPEC, _("source package contains no .spec file"));
rpmError(RPMERR_NOSPEC,
_("source package contains no .spec file\n"));
rc = 1;
goto exit;
}
@ -838,7 +842,7 @@ static int installSources(Header h, const char * rootDir, FD_t fd,
rpmMessage(RPMMESS_DEBUG,
_("renaming %s to %s\n"), instSpecFile, correctSpecFile);
if ((rc = Rename(instSpecFile, correctSpecFile))) {
rpmError(RPMERR_RENAME, _("rename of %s to %s failed: %s"),
rpmError(RPMERR_RENAME, _("rename of %s to %s failed: %s\n"),
instSpecFile, correctSpecFile, strerror(errno));
rc = 2;
goto exit;
@ -928,7 +932,7 @@ int rpmInstallSourcePackage(const char * rootDir, FD_t fd,
if (rc) return rc;
if (!isSource) {
rpmError(RPMERR_NOTSRPM, _("source package expected, binary found"));
rpmError(RPMERR_NOTSRPM, _("source package expected, binary found\n"));
return 2;
}
@ -1028,7 +1032,9 @@ int installBinaryPackage(const rpmTransactionSet ts, FD_t fd, Header h,
if (rc) {
rc = 2;
rpmError(RPMERR_SCRIPT, _("skipping %s-%s-%s install, %%pre scriptlet failed rc %d\n"), name, version, release, rc);
rpmError(RPMERR_SCRIPT,
_("skipping %s-%s-%s install, %%pre scriptlet failed rc %d\n"),
name, version, release, rc);
goto exit;
}
@ -1100,7 +1106,7 @@ int installBinaryPackage(const rpmTransactionSet ts, FD_t fd, Header h,
files[i].relativePath, newpath);
if (rename(files[i].relativePath, newpath)) {
rpmError(RPMERR_RENAME, _("rename of %s to %s failed: %s"),
rpmError(RPMERR_RENAME, _("rename of %s to %s failed: %s\n"),
files[i].relativePath, newpath, strerror(errno));
rc = 2;
goto exit;
@ -1165,7 +1171,7 @@ int installBinaryPackage(const rpmTransactionSet ts, FD_t fd, Header h,
/* if this package has already been installed, remove it from the database
before adding the new one */
if (otherOffset)
rpmdbRemove(ts->rpmdb, otherOffset);
rpmdbRemove(ts->rpmdb, ts->id, otherOffset);
if (transFlags & RPMTRANS_FLAG_MULTILIB) {
uint_32 multiLib, * newMultiLib, * p;
@ -1185,7 +1191,7 @@ int installBinaryPackage(const rpmTransactionSet ts, FD_t fd, Header h,
}
}
if (rpmdbAdd(ts->rpmdb, h)) {
if (rpmdbAdd(ts->rpmdb, ts->id, h)) {
rc = 2;
goto exit;
}

View File

@ -325,18 +325,18 @@ int makeTempFile(const char * prefix, const char ** fnptr, FD_t * fdptr)
case URL_IS_PATH:
case URL_IS_UNKNOWN:
if (!stat(tfn, &sb) && S_ISLNK(sb.st_mode)) {
rpmError(RPMERR_SCRIPT, _("error creating temporary file %s"), tfn);
rpmError(RPMERR_SCRIPT, _("error creating temporary file %s\n"), tfn);
goto errxit;
}
if (sb.st_nlink != 1) {
rpmError(RPMERR_SCRIPT, _("error creating temporary file %s"), tfn);
rpmError(RPMERR_SCRIPT, _("error creating temporary file %s\n"), tfn);
goto errxit;
}
if (fstat(Fileno(fd), &sb2) == 0) {
if (sb2.st_ino != sb.st_ino || sb2.st_dev != sb.st_dev) {
rpmError(RPMERR_SCRIPT, _("error creating temporary file %s"), tfn);
rpmError(RPMERR_SCRIPT, _("error creating temporary file %s\n"), tfn);
goto errxit;
}
}

View File

@ -85,7 +85,7 @@ static int readPackageHeaders(FD_t fd, /*@out@*/ struct rpmlead * leadPtr,
switch (lead->major) {
case 1:
rpmError(RPMERR_NEWPACKAGE,
_("packaging version 1 is not supported by this version of RPM"));
_("packaging version 1 is not supported by this version of RPM\n"));
return 2;
/*@notreached@*/ break;
case 2:
@ -141,7 +141,7 @@ static int readPackageHeaders(FD_t fd, /*@out@*/ struct rpmlead * leadPtr,
default:
rpmError(RPMERR_NEWPACKAGE, _("only packaging with major numbers <= 4 "
"is supported by this version of RPM"));
"is supported by this version of RPM\n"));
return 2;
/*@notreached@*/ break;
}

View File

@ -313,7 +313,7 @@ int showQueryPackage(QVA_t *qva, /*@unused@*/rpmdb rpmdb, Header h)
te += strlen(te);
} else {
rpmError(RPMERR_INTERNAL,
_("package has neither file owner or id lists"));
_("package has neither file owner or id lists\n"));
}
sprintf(te, " %s %s %u ",
@ -358,7 +358,7 @@ int showQueryPackage(QVA_t *qva, /*@unused@*/rpmdb rpmdb, Header h)
te += strlen(te);
} else {
rpmError(RPMERR_INTERNAL,
_("package has neither file owner or id lists"));
_("package has neither file owner or id lists\n"));
}
free(filespec);
@ -621,7 +621,7 @@ int rpmQueryVerify(QVA_t *qva, rpmQVSources source, const char * arg,
/* RPMDBI_PACKAGES */
mi = rpmdbInitIterator(rpmdb, RPMDBI_PACKAGES, NULL, 0);
if (mi == NULL) {
rpmError(RPMERR_QUERY, _("no packages\n"));
rpmError(RPMERR_QUERYINFO, _("no packages\n"));
retcode = 1;
} else {
retcode = showMatches(qva, mi, showPackage);
@ -631,7 +631,7 @@ int rpmQueryVerify(QVA_t *qva, rpmQVSources source, const char * arg,
case RPMQV_GROUP:
mi = rpmdbInitIterator(rpmdb, RPMTAG_GROUP, arg, 0);
if (mi == NULL) {
rpmError(RPMERR_QUERY,
rpmError(RPMERR_QUERYINFO,
_("group %s does not contain any packages\n"), arg);
retcode = 1;
} else {
@ -642,7 +642,7 @@ int rpmQueryVerify(QVA_t *qva, rpmQVSources source, const char * arg,
case RPMQV_TRIGGEREDBY:
mi = rpmdbInitIterator(rpmdb, RPMTAG_TRIGGERNAME, arg, 0);
if (mi == NULL) {
rpmError(RPMERR_QUERY, _("no package triggers %s\n"), arg);
rpmError(RPMERR_QUERYINFO, _("no package triggers %s\n"), arg);
retcode = 1;
} else {
retcode = showMatches(qva, mi, showPackage);
@ -652,7 +652,7 @@ int rpmQueryVerify(QVA_t *qva, rpmQVSources source, const char * arg,
case RPMQV_WHATREQUIRES:
mi = rpmdbInitIterator(rpmdb, RPMTAG_REQUIRENAME, arg, 0);
if (mi == NULL) {
rpmError(RPMERR_QUERY, _("no package requires %s\n"), arg);
rpmError(RPMERR_QUERYINFO, _("no package requires %s\n"), arg);
retcode = 1;
} else {
retcode = showMatches(qva, mi, showPackage);
@ -663,7 +663,7 @@ int rpmQueryVerify(QVA_t *qva, rpmQVSources source, const char * arg,
if (arg[0] != '/') {
mi = rpmdbInitIterator(rpmdb, RPMTAG_PROVIDENAME, arg, 0);
if (mi == NULL) {
rpmError(RPMERR_QUERY, _("no package provides %s\n"), arg);
rpmError(RPMERR_QUERYINFO, _("no package provides %s\n"), arg);
retcode = 1;
} else {
retcode = showMatches(qva, mi, showPackage);
@ -697,7 +697,7 @@ int rpmQueryVerify(QVA_t *qva, rpmQVSources source, const char * arg,
_("file %s: %s\n"), fn, strerror(myerrno));
break;
case 0:
rpmError(RPMERR_QUERY,
rpmError(RPMERR_QUERYINFO,
_("file %s is not owned by any package\n"), fn);
break;
}
@ -743,7 +743,7 @@ int rpmQueryVerify(QVA_t *qva, rpmQVSources source, const char * arg,
/* XXX HACK to get rpmdbFindByLabel out of the API */
mi = rpmdbInitIterator(rpmdb, RPMDBI_LABEL, arg, 0);
if (mi == NULL) {
rpmError(RPMERR_QUERY, _("package %s is not installed\n"), arg);
rpmError(RPMERR_QUERYINFO, _("package %s is not installed\n"), arg);
retcode = 1;
} else {
retcode = showMatches(qva, mi, showPackage);

View File

@ -241,9 +241,6 @@ dbiIndex dbiOpen(rpmdb rpmdb, int rpmtag, /*@unused@*/ unsigned int flags)
dbiIndex dbi = NULL;
int _dbapi, _dbapi_rebuild, _dbapi_wanted;
int rc = 0;
#ifdef DYING
static int _printed = 0;
#endif
dbix = dbiTagToDbix(rpmtag);
if (dbix < 0 || dbix >= dbiTagsMax)
@ -262,15 +259,6 @@ dbiIndex dbiOpen(rpmdb rpmdb, int rpmtag, /*@unused@*/ unsigned int flags)
default:
_dbapi = _dbapi_wanted;
if (_dbapi < 0 || _dbapi >= 4 || mydbvecs[_dbapi] == NULL) {
#ifdef DYING
if (!_printed++)
fprintf(stderr, _("\n\
--> This version of rpm was not compiled with support for \"%%_dbapi %d\".\n\
Please verify the setting of the macro %%_dbapi using \"rpm --showrc\"\n\
and configure \"%%_dbapi 3\" (e.g. create and/or edit /etc/rpm/macros).\n\
\n\
"), _dbapi_wanted);
#endif
return NULL;
}
errno = 0;
@ -280,7 +268,7 @@ dbiIndex dbiOpen(rpmdb rpmdb, int rpmtag, /*@unused@*/ unsigned int flags)
static int _printed[32];
if (!_printed[dbix & 0x1f]++)
rpmError(RPMERR_DBOPEN,
_("cannot open %s index using db%d - %s (%d)"),
_("cannot open %s index using db%d - %s (%d)\n"),
tagName(rpmtag), _dbapi,
(rc > 0 ? strerror(rc) : ""), rc);
_dbapi = -1;
@ -300,7 +288,7 @@ dbiIndex dbiOpen(rpmdb rpmdb, int rpmtag, /*@unused@*/ unsigned int flags)
if (_dbapi <= 0) {
static int _printed[32];
if (!_printed[dbix & 0x1f]++)
rpmError(RPMERR_DBOPEN, _("cannot open %s index"),
rpmError(RPMERR_DBOPEN, _("cannot open %s index\n"),
tagName(rpmtag));
rc = 1;
goto exit;
@ -313,29 +301,11 @@ dbiIndex dbiOpen(rpmdb rpmdb, int rpmtag, /*@unused@*/ unsigned int flags)
/* Require conversion. */
if (rc && _dbapi_wanted >= 0 && _dbapi != _dbapi_wanted && _dbapi_wanted == _dbapi_rebuild) {
rc = (_rebuildinprogress ? 0 : 1);
#ifdef DYING
if (rc && !_printed++)
fprintf(stderr, _("\n\
--> The rpm database cannot be opened in db%d format.\n\
If you have just upgraded the rpm package you need to convert\n\
your database to db%d format by running \"rpm --rebuilddb\" as root.\n\
\n\
"), _dbapi_wanted, (_dbapi_rebuild > 0 ? _dbapi_rebuild : 3));
#endif
goto exit;
}
/* Suggest possible configuration */
if (_dbapi_wanted >= 0 && _dbapi != _dbapi_wanted) {
#ifdef DYING
if (!_printed++)
fprintf(stderr, _("\n\
--> The configured %%_dbapi was db%d, but the rpm database is db%d format.\n\
Please verify the setting of the macro %%_dbapi using \"rpm --showrc\"\n\
and configure \"%%_dbapi %d\" (e.g. create and/or edit /etc/rpm/macros).\n\
\n\
"), _dbapi_wanted, _dbapi, _dbapi);
#endif
rc = 1;
goto exit;
}
@ -343,18 +313,6 @@ dbiIndex dbiOpen(rpmdb rpmdb, int rpmtag, /*@unused@*/ unsigned int flags)
/* Suggest possible configuration */
if (_dbapi_wanted < 0 && _dbapi != _dbapi_rebuild) {
rc = (_rebuildinprogress ? 0 : 1);
#ifdef DYING
if (rc && !_printed++)
fprintf(stderr, _("\n\
--> The rpm database is in db%d format, not the suggested db%d format.\n\
Please verify the setting of the macros %%_dbapi and %%_dbapi_rebuild\n\
using \"rpm --showrc\", and either run \"rpm --rebuilddb\" as root\n\
to convert your database from db%d to db%d format, or configure\n\
\"%%_dbapi_rebuild %d\" (e.g. create and/or edit /etc/rpm/macros).\n\
\n\
"), _dbapi, (_dbapi_rebuild > 0 ? _dbapi_rebuild : 3),
_dbapi, (_dbapi_rebuild > 0 ? _dbapi_rebuild : 3), _dbapi);
#endif
goto exit;
}
@ -401,8 +359,8 @@ union _dbswap {
* @param setp address of items retrieved from index database
* @return -1 error, 0 success, 1 not found
*/
static int dbiSearch(dbiIndex dbi, DBC * dbcursor, const char * keyp, size_t keylen,
dbiIndexSet * setp)
static int dbiSearch(dbiIndex dbi, DBC * dbcursor,
const void * keyp, size_t keylen, dbiIndexSet * setp)
{
void * datap;
size_t datalen;
@ -414,7 +372,8 @@ static int dbiSearch(dbiIndex dbi, DBC * dbcursor, const char * keyp, size_t key
rc = dbiGet(dbi, dbcursor, (void **)&keyp, &keylen, &datap, &datalen, 0);
if (rc > 0) {
rpmError(RPMERR_DBGETINDEX, _("error(%d) getting \"%s\" records from %s index"),
rpmError(RPMERR_DBGETINDEX,
_("error(%d) getting \"%s\" records from %s index\n"),
rc, keyp, tagName(dbi->dbi_rpmtag));
} else
if (rc == 0 && setp) {
@ -479,9 +438,9 @@ static int dbiSearch(dbiIndex dbi, DBC * dbcursor, const char * keyp, size_t key
* @return 0 success, 1 not found
*/
/*@-compmempass@*/
static int dbiUpdateIndex(dbiIndex dbi, DBC * dbcursor, const char * keyp, dbiIndexSet set)
static int dbiUpdateIndex(dbiIndex dbi, DBC * dbcursor,
const void * keyp, size_t keylen, dbiIndexSet set)
{
size_t keylen = strlen(keyp);
void * datap;
size_t datalen;
int rc;
@ -532,7 +491,8 @@ static int dbiUpdateIndex(dbiIndex dbi, DBC * dbcursor, const char * keyp, dbiIn
rc = dbiPut(dbi, dbcursor, keyp, keylen, datap, datalen, 0);
if (rc) {
rpmError(RPMERR_DBPUTINDEX, _("error(%d) storing record %s into %s"),
rpmError(RPMERR_DBPUTINDEX,
_("error(%d) storing record %s into %s\n"),
rc, keyp, tagName(dbi->dbi_rpmtag));
}
@ -541,7 +501,8 @@ static int dbiUpdateIndex(dbiIndex dbi, DBC * dbcursor, const char * keyp, dbiIn
rc = dbiDel(dbi, dbcursor, keyp, keylen, 0);
if (rc) {
rpmError(RPMERR_DBPUTINDEX, _("error(%d) removing record %s from %s"),
rpmError(RPMERR_DBPUTINDEX,
_("error(%d) removing record %s from %s\n"),
rc, keyp, tagName(dbi->dbi_rpmtag));
}
@ -776,7 +737,7 @@ static /*@only@*/ rpmdb newRpmdb(const char * root, const char * home,
if (rpmdb->db_home) {
rpmdb->db_home = rpmGetPath(rpmdb->db_home, NULL);
if (!(rpmdb->db_home && rpmdb->db_home[0] != '%')) {
rpmError(RPMERR_DBOPEN, _("no dbpath has been set"));
rpmError(RPMERR_DBOPEN, _("no dbpath has been set\n"));
goto errxit;
}
}
@ -876,7 +837,7 @@ static int openDatabase(const char * prefix, const char * dbpath, int _dbapi,
const char * akey = keyp;
if (strchr(akey, '/')) {
rpmError(RPMERR_OLDDB, _("old format database is present; "
"use --rebuilddb to generate a new format database"));
"use --rebuilddb to generate a new format database\n"));
rc |= 1;
}
}
@ -911,7 +872,8 @@ int rpmdbInit (const char * prefix, int perms)
int _dbapi = rpmExpandNumeric("%{_dbapi}");
int rc;
rc = openDatabase(prefix, NULL, _dbapi, &rpmdb, (O_CREAT | O_RDWR), perms, RPMDB_FLAG_JUSTCHECK);
rc = openDatabase(prefix, NULL, _dbapi, &rpmdb, (O_CREAT | O_RDWR),
perms, RPMDB_FLAG_JUSTCHECK);
if (rpmdb) {
rpmdbOpenAll(rpmdb);
rpmdbClose(rpmdb);
@ -920,31 +882,6 @@ int rpmdbInit (const char * prefix, int perms)
return rc;
}
#ifdef DYING
static Header rpmdbGetRecord(rpmdb rpmdb, unsigned int offset)
{
dbiIndex dbi;
DBC * dbcursor = NULL;
void * uh;
size_t uhlen;
void * keyp = &offset;
size_t keylen = sizeof(offset);
int rc;
int xx;
dbi = dbiOpen(rpmdb, RPMDBI_PACKAGES, 0);
if (dbi == NULL)
return NULL;
xx = dbiCopen(dbi, &dbcursor, 0);
rc = dbiGet(dbi, dbcursor, &keyp, &keylen, &uh, &uhlen, 0);
xx = dbiCclose(dbi, dbcursor, 0);
dbcursor = NULL;
if (rc)
return NULL;
return headerLoad(uh);
}
#endif
static int rpmdbFindByFile(rpmdb rpmdb, const char * filespec,
/*@out@*/ dbiIndexSet * matches)
{
@ -1001,9 +938,6 @@ static int rpmdbFindByFile(rpmdb rpmdb, const char * filespec,
unsigned int prevoff;
Header h;
#ifdef DYING
h = rpmdbGetRecord(rpmdb, offset);
#else
{ rpmdbMatchIterator mi;
mi = rpmdbInitIterator(rpmdb, RPMDBI_PACKAGES, &offset, sizeof(offset));
h = rpmdbNextIterator(mi);
@ -1011,7 +945,6 @@ static int rpmdbFindByFile(rpmdb rpmdb, const char * filespec,
h = headerLink(h);
rpmdbFreeIterator(mi);
}
#endif
if (h == NULL) {
i++;
@ -1087,7 +1020,7 @@ int rpmdbCountPackages(rpmdb rpmdb, const char * name)
if (rc == 0) /* success */
rc = dbiIndexSetCount(matches);
else if (rc > 0) /* error */
rpmError(RPMERR_DBCORRUPT, _("error(%d) counting packages"), rc);
rpmError(RPMERR_DBCORRUPT, _("error(%d) counting packages\n"), rc);
else /* not found */
rc = 0;
@ -1134,9 +1067,6 @@ static int dbiFindMatches(dbiIndex dbi, DBC * dbcursor,
if (recoff == 0)
continue;
#ifdef DYING
h = rpmdbGetRecord(dbi->dbi_rpmdb, recoff);
#else
{ rpmdbMatchIterator mi;
mi = rpmdbInitIterator(dbi->dbi_rpmdb, RPMDBI_PACKAGES, &recoff, sizeof(recoff));
h = rpmdbNextIterator(mi);
@ -1144,9 +1074,9 @@ static int dbiFindMatches(dbiIndex dbi, DBC * dbcursor,
h = headerLink(h);
rpmdbFreeIterator(mi);
}
#endif
if (h == NULL) {
rpmError(RPMERR_DBCORRUPT, _("%s: cannot read header at 0x%x"),
rpmError(RPMERR_DBCORRUPT, _("%s: cannot read header at 0x%x\n"),
"findMatches", recoff);
rc = 2;
goto exit;
@ -1396,7 +1326,8 @@ Header XrpmdbNextIterator(rpmdbMatchIterator mi, const char * f, unsigned l)
/* XXX cursors need to be per-iterator, not per-dbi. Get a cursor now. */
if (mi->mi_dbc == NULL) {
xx = XdbiCopen(dbi, &mi->mi_dbc, 1, f, l);
}
}
dbi->dbi_lastoffset = mi->mi_prevoffset;
top:
/* XXX skip over instances with 0 join key */
@ -1578,11 +1509,11 @@ rpmdbMatchIterator rpmdbInitIterator(rpmdb rpmdb, int rpmtag,
#if 0
assert(dbi->dbi_rmw == NULL); /* db3: avoid "lost" cursors */
assert(dbi->dbi_lastoffset == 0); /* db0: avoid "lost" cursors */
#else
if (dbi->dbi_rmw)
fprintf(stderr, "*** RMW %s %p\n", tagName(rpmtag), dbi->dbi_rmw);
#endif
assert(dbi->dbi_lastoffset == 0); /* db0: avoid "lost" cursors */
dbi->dbi_lastoffset = 0; /* db0: rewind to beginning */
@ -1646,8 +1577,8 @@ fprintf(stderr, "*** RMW %s %p\n", tagName(rpmtag), dbi->dbi_rmw);
return mi;
}
static INLINE int removeIndexEntry(dbiIndex dbi, DBC * dbcursor, const char * keyp,
dbiIndexItem rec)
static INLINE int removeIndexEntry(dbiIndex dbi, DBC * dbcursor,
const void * keyp, size_t keylen, dbiIndexItem rec)
{
dbiIndexSet set = NULL;
int rc;
@ -1660,7 +1591,7 @@ static INLINE int removeIndexEntry(dbiIndex dbi, DBC * dbcursor, const char * ke
rc = 1; /* error message already generated from dbindex.c */
else { /* success */
if (!dbiPruneSet(set, rec, 1, sizeof(*rec), 1) &&
dbiUpdateIndex(dbi, dbcursor, keyp, set))
dbiUpdateIndex(dbi, dbcursor, keyp, keylen, set))
rc = 1;
}
@ -1673,28 +1604,30 @@ static INLINE int removeIndexEntry(dbiIndex dbi, DBC * dbcursor, const char * ke
}
/* XXX install.c uninstall.c */
int rpmdbRemove(rpmdb rpmdb, unsigned int hdrNum)
int rpmdbRemove(rpmdb rpmdb, int rid, unsigned int hdrNum)
{
Header h;
sigset_t signalMask;
#ifdef DYING
h = rpmdbGetRecord(rpmdb, hdrNum);
#else
{ rpmdbMatchIterator mi;
mi = rpmdbInitIterator(rpmdb, RPMDBI_PACKAGES, &hdrNum, sizeof(hdrNum));
h = rpmdbNextIterator(mi);
if (h)
h = headerLink(h);
rpmdbFreeIterator(mi);
}
#endif
{ rpmdbMatchIterator mi;
mi = rpmdbInitIterator(rpmdb, RPMDBI_PACKAGES, &hdrNum, sizeof(hdrNum));
h = rpmdbNextIterator(mi);
if (h)
h = headerLink(h);
rpmdbFreeIterator(mi);
}
if (h == NULL) {
rpmError(RPMERR_DBCORRUPT, _("%s: cannot read header at 0x%x"),
rpmError(RPMERR_DBCORRUPT, _("%s: cannot read header at 0x%x\n"),
"rpmdbRemove", hdrNum);
return 1;
}
/* Add remove transaction id to header. */
if (rid > 0) {
int_32 tid = rid;
headerAddEntry(h, RPMTAG_REMOVETID, RPM_INT32_TYPE, &tid, 1);
}
{ const char *n, *v, *r;
headerNVR(h, &n, &v, &r);
rpmMessage(RPMMESS_DEBUG, " --- %10d %s-%s-%s\n", hdrNum, n, v, r);
@ -1741,13 +1674,8 @@ int rpmdbRemove(rpmdb rpmdb, unsigned int hdrNum)
}
if (!headerGetEntry(h, rpmtag, &rpmtype,
(void **) &rpmvals, &rpmcnt)) {
#if 0
rpmMessage(RPMMESS_DEBUG, _("removing 0 %s entries.\n"),
tagName(rpmtag));
#endif
(void **) &rpmvals, &rpmcnt))
continue;
}
dbi = dbiOpen(rpmdb, rpmtag, 0);
xx = dbiCopen(dbi, &dbcursor, 0);
@ -1769,16 +1697,49 @@ int rpmdbRemove(rpmdb rpmdb, unsigned int hdrNum)
}
for (i = 0; i < rpmcnt; i++) {
#if 0
rpmMessage(RPMMESS_DEBUG, ("%6d %s\n"), i, rpmvals[i]);
#endif
const void * valp;
size_t vallen;
/* Identify value pointer and length. */
switch (rpmtype) {
case RPM_CHAR_TYPE:
case RPM_INT8_TYPE:
vallen = 1;
valp = rpmvals + i;
break;
case RPM_INT16_TYPE:
vallen = sizeof(int_16);
valp = rpmvals + i;
break;
case RPM_INT32_TYPE:
vallen = sizeof(int_32);
valp = rpmvals + i;
break;
case RPM_BIN_TYPE:
vallen = rpmcnt;
valp = rpmvals;
rpmcnt = 1; /* XXX break out of loop. */
break;
case RPM_STRING_TYPE:
vallen = strlen((char *)rpmvals);
valp = rpmvals;
rpmcnt = 1; /* XXX break out of loop. */
break;
case RPM_STRING_ARRAY_TYPE:
case RPM_I18NSTRING_TYPE:
default:
vallen = strlen(rpmvals[i]);
valp = rpmvals[i];
break;
}
/*
* This is almost right, but, if there are duplicate tag
* values, there will be duplicate attempts to remove
* the header instance. It's easier to just ignore errors
* than to do things correctly.
*/
xx = removeIndexEntry(dbi, dbcursor, rpmvals[i], rec);
xx = removeIndexEntry(dbi, dbcursor, valp, vallen, rec);
}
xx = dbiCclose(dbi, dbcursor, 0);
@ -1788,13 +1749,8 @@ int rpmdbRemove(rpmdb rpmdb, unsigned int hdrNum)
if (!dbi->dbi_no_dbsync)
xx = dbiSync(dbi, 0);
switch (rpmtype) {
case RPM_STRING_ARRAY_TYPE:
case RPM_I18NSTRING_TYPE:
free((void *)rpmvals);
rpmvals = NULL;
break;
}
headerFreeData(rpmvals, rpmtype);
rpmvals = NULL;
rpmtype = 0;
rpmcnt = 0;
}
@ -1812,12 +1768,13 @@ int rpmdbRemove(rpmdb rpmdb, unsigned int hdrNum)
return 0;
}
static INLINE int addIndexEntry(dbiIndex dbi, DBC * dbcursor, const char *index, dbiIndexItem rec)
static INLINE int addIndexEntry(dbiIndex dbi, DBC * dbcursor,
const void * keyp, size_t keylen, dbiIndexItem rec)
{
dbiIndexSet set = NULL;
int rc;
rc = dbiSearch(dbi, dbcursor, index, 0, &set);
rc = dbiSearch(dbi, dbcursor, keyp, keylen, &set);
if (rc > 0) {
rc = 1; /* error */
@ -1827,7 +1784,7 @@ static INLINE int addIndexEntry(dbiIndex dbi, DBC * dbcursor, const char *index,
set = xcalloc(1, sizeof(*set));
}
dbiAppendSet(set, rec, 1, sizeof(*rec), 0);
if (dbiUpdateIndex(dbi, dbcursor, index, set))
if (dbiUpdateIndex(dbi, dbcursor, keyp, keylen, set))
rc = 1;
}
@ -1840,7 +1797,7 @@ static INLINE int addIndexEntry(dbiIndex dbi, DBC * dbcursor, const char *index,
}
/* XXX install.c */
int rpmdbAdd(rpmdb rpmdb, Header h)
int rpmdbAdd(rpmdb rpmdb, int iid, Header h)
{
sigset_t signalMask;
const char ** baseNames;
@ -1852,6 +1809,12 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
int rc = 0;
int xx;
if (iid > 0) {
int_32 tid = iid;
headerRemoveEntry(h, RPMTAG_REMOVETID);
headerAddEntry(h, RPMTAG_INSTALLTID, RPM_INT32_TYPE, &tid, 1);
}
/*
* If old style filename tags is requested, the basenames need to be
* retrieved early, and the header needs to be converted before
@ -1905,7 +1868,8 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
}
if (rc) {
rpmError(RPMERR_DBCORRUPT, _("error(%d) allocating new package instance"), rc);
rpmError(RPMERR_DBCORRUPT,
_("error(%d) allocating new package instance\n"), rc);
goto exit;
}
@ -1915,7 +1879,6 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
for (dbix = 0; dbix < dbiTagsMax; dbix++) {
DBC * dbcursor = NULL;
const char *av[1];
const char **rpmvals = NULL;
int rpmtype = 0;
int rpmcnt = 0;
@ -1966,13 +1929,8 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
}
if (rpmcnt <= 0) {
if (rpmtag != RPMTAG_GROUP) {
#if 0
rpmMessage(RPMMESS_DEBUG, _("adding 0 %s entries.\n"),
tagName(rpmtag));
#endif
if (rpmtag != RPMTAG_GROUP)
continue;
}
/* XXX preserve legacy behavior */
rpmtype = RPM_STRING_TYPE;
@ -1983,25 +1941,42 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
dbi = dbiOpen(rpmdb, rpmtag, 0);
xx = dbiCopen(dbi, &dbcursor, 0);
if (rpmtype == RPM_STRING_TYPE) {
rpmMessage(RPMMESS_DEBUG, _("adding \"%s\" to %s index.\n"),
(const char *)rpmvals, tagName(dbi->dbi_rpmtag));
/* XXX force uniform headerGetEntry return */
av[0] = (const char *) rpmvals;
rpmvals = av;
rpmcnt = 1;
} else {
rpmMessage(RPMMESS_DEBUG, _("adding %d entries to %s index.\n"),
rpmcnt, tagName(dbi->dbi_rpmtag));
{ const char * s = NULL;
int nelem = rpmcnt;
switch (rpmtype) {
case RPM_CHAR_TYPE:
case RPM_INT8_TYPE:
case RPM_INT16_TYPE:
case RPM_INT32_TYPE:
default:
break;
case RPM_BIN_TYPE:
nelem = 1;
break;
case RPM_I18NSTRING_TYPE:
case RPM_STRING_TYPE:
s = (char *)rpmvals;
break;
case RPM_STRING_ARRAY_TYPE:
if (rpmcnt == 1) s = rpmvals[0];
break;
}
if (s) {
rpmMessage(RPMMESS_DEBUG,
_("adding \"%s\" to %s index.\n"),
s, tagName(dbi->dbi_rpmtag));
} else {
rpmMessage(RPMMESS_DEBUG,
_("adding %d entries to %s index.\n"),
nelem, tagName(dbi->dbi_rpmtag));
}
}
for (i = 0; i < rpmcnt; i++) {
#if 0
rpmMessage(RPMMESS_DEBUG, ("%6d %s\n"), i, rpmvals[i]);
#endif
const void * valp;
size_t vallen;
/*
* Include the tagNum in all indices. rpm-3.0.4 and earlier
@ -2010,10 +1985,8 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
switch (dbi->dbi_rpmtag) {
case RPMTAG_REQUIRENAME:
/* Filter out install prerequisites. */
if (requireFlags && isInstallPreReq(requireFlags[i])) {
rpmMessage(RPMMESS_DEBUG, ("%6d %s (install prerequisite) skipped\n"), i, rpmvals[i]);
if (requireFlags && isInstallPreReq(requireFlags[i]))
continue;
}
rec->tagNum = i;
break;
case RPMTAG_TRIGGERNAME:
@ -2032,7 +2005,41 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
break;
}
rc += addIndexEntry(dbi, dbcursor, rpmvals[i], rec);
/* Identify value pointer and length. */
switch (rpmtype) {
case RPM_CHAR_TYPE:
case RPM_INT8_TYPE:
vallen = 1;
valp = rpmvals + i;
break;
case RPM_INT16_TYPE:
vallen = sizeof(int_16);
valp = rpmvals + i;
break;
case RPM_INT32_TYPE:
vallen = sizeof(int_32);
valp = rpmvals + i;
break;
case RPM_BIN_TYPE:
vallen = rpmcnt;
valp = rpmvals;
rpmcnt = 1; /* XXX break out of loop. */
break;
case RPM_I18NSTRING_TYPE:
case RPM_STRING_TYPE:
vallen = strlen((char *)rpmvals);
valp = rpmvals;
rpmcnt = 1; /* XXX break out of loop. */
break;
case RPM_STRING_ARRAY_TYPE:
default:
vallen = strlen(rpmvals[i]);
valp = rpmvals[i];
break;
}
rc += addIndexEntry(dbi, dbcursor, valp, vallen, rec);
}
xx = dbiCclose(dbi, dbcursor, 0);
dbcursor = NULL;
@ -2041,13 +2048,8 @@ int rpmdbAdd(rpmdb rpmdb, Header h)
if (!dbi->dbi_no_dbsync)
xx = dbiSync(dbi, 0);
switch (rpmtype) {
case RPM_STRING_ARRAY_TYPE:
case RPM_I18NSTRING_TYPE:
free((void *)rpmvals);
rpmvals = NULL;
break;
}
headerFreeData(rpmvals, rpmtype);
rpmvals = NULL;
rpmtype = 0;
rpmcnt = 0;
}
@ -2394,7 +2396,7 @@ int rpmdbRebuild(const char * rootdir)
rootdbpath, newrootdbpath);
if (!access(newrootdbpath, F_OK)) {
rpmError(RPMERR_MKDIR, _("temporary database %s already exists"),
rpmError(RPMERR_MKDIR, _("temporary database %s already exists\n"),
newrootdbpath);
rc = 1;
goto exit;
@ -2402,7 +2404,7 @@ int rpmdbRebuild(const char * rootdir)
rpmMessage(RPMMESS_DEBUG, _("creating directory %s\n"), newrootdbpath);
if (Mkdir(newrootdbpath, 0755)) {
rpmError(RPMERR_MKDIR, _("error creating directory %s: %s"),
rpmError(RPMERR_MKDIR, _("creating directory %s: %s\n"),
newrootdbpath, strerror(errno));
rc = 1;
goto exit;
@ -2443,7 +2445,7 @@ int rpmdbRebuild(const char * rootdir)
headerIsEntry(h, RPMTAG_BUILDTIME)))
{
rpmError(RPMERR_INTERNAL,
_("record number %d in database is bad -- skipping."),
_("record number %d in database is bad -- skipping.\n"),
_RECNUM);
continue;
}
@ -2473,14 +2475,14 @@ int rpmdbRebuild(const char * rootdir)
/* Deleted entries are eliminated in legacy headers by copy. */
{ Header nh = (headerIsEntry(h, RPMTAG_HEADERIMAGE)
? headerCopy(h) : NULL);
rc = rpmdbAdd(newdb, (nh ? nh : h));
rc = rpmdbAdd(newdb, -1, (nh ? nh : h));
if (nh)
headerFree(nh);
}
if (rc) {
rpmError(RPMERR_INTERNAL,
_("cannot add record originally at %d"), _RECNUM);
_("cannot add record originally at %d\n"), _RECNUM);
failed = 1;
break;
}

View File

@ -45,7 +45,7 @@ int writeLead(FD_t fd, struct rpmlead *lead)
int readLead(FD_t fd, struct rpmlead *lead)
{
if (timedRead(fd, (char *)lead, sizeof(*lead)) != sizeof(*lead)) {
rpmError(RPMERR_READ, _("read failed: %s (%d)"), Fstrerror(fd),
rpmError(RPMERR_READ, _("read failed: %s (%d)\n"), Fstrerror(fd),
errno);
return 1;
}

View File

@ -290,6 +290,8 @@ typedef enum rpmTag_e {
RPMTAG_PAYLOADCOMPRESSOR = 1125,
RPMTAG_PAYLOADFLAGS = 1126,
RPMTAG_MULTILIBS = 1127,
RPMTAG_INSTALLTID = 1128,
RPMTAG_REMOVETID = 1129,
RPMTAG_FIRSTFREE_TAG /*!< internal */
} rpmTag;
@ -675,7 +677,7 @@ Header XrpmdbNextIterator(rpmdbMatchIterator mi, const char * f, unsigned int l)
* Return database iterator.
* @param rpmdb rpm database
* @param rpmtag rpm tag
* @param keyp key data (NULL for sequential acess)
* @param keyp key data (NULL for sequential access)
* @param keylen key data length (0 will use strlen(keyp))
* @return NULL on failure
*/
@ -683,21 +685,23 @@ Header XrpmdbNextIterator(rpmdbMatchIterator mi, const char * f, unsigned int l)
rpmdb rpmdb, int rpmtag,
const void * key, size_t keylen);
/** \ingroup rpmdb
* Add package header to rpm database and indices.
* @param rpmdb rpm database
* @param iid install transaction id (or -1 to skip)
* @param h header
* @return 0 on success
*/
int rpmdbAdd(rpmdb rpmdb, int iid, Header h); /*@modifies h @*/
/** \ingroup rpmdb
* Remove package header from rpm database and indices.
* @param rpmdb rpm database
* @param rid remove transaction id (or -1 to skip)
* @param offset location in Packages dbi
* @return 0 on success
*/
int rpmdbRemove(rpmdb db, unsigned int offset);
/** \ingroup rpmdb
* Add package header to rpm database and indices.
* @param rpmdb rpm database
* @param rpmtag rpm tag
* @return 0 on success
*/
int rpmdbAdd(rpmdb rpmdb, Header dbentry);
int rpmdbRemove(rpmdb db, int rid, unsigned int offset);
/** \ingroup rpmdb
* Rebuild database indices from package headers.
@ -757,19 +761,19 @@ void printDepFlags(FILE *fp, const char *version, int flags)
/**
*/
struct rpmDependencyConflict {
char * byName;
char * byVersion;
char * byRelease;
const char * byName;
const char * byVersion;
const char * byRelease;
Header byHeader;
/* these needs fields are misnamed -- they are used for the package
which isn't needed as well */
char * needsName;
char * needsVersion;
const char * needsName;
const char * needsVersion;
int needsFlags;
/*@observer@*/ /*@null@*/ const void * suggestedPackage; /* NULL if none */
enum {
RPMDEP_SENSE_REQUIRES,
RPMDEP_SENSE_CONFLICTS
RPMDEP_SENSE_REQUIRES, /*!< requirement not satisfied. */
RPMDEP_SENSE_CONFLICTS /*!< conflict was found. */
} sense;
} ;
@ -853,7 +857,7 @@ typedef /*@abstract@*/ struct rpmTransactionSet_s * rpmTransactionSet;
* Create an empty transaction set.
* @param rpmdb rpm database (may be NULL if database is not accessed)
* @param rootdir path to top of install tree
* @return rpm transaction set
* @return transaction set
*/
/*@only@*/ rpmTransactionSet rpmtransCreateSet(rpmdb rpmdb,
const char * rootdir);
@ -866,7 +870,7 @@ typedef /*@abstract@*/ struct rpmTransactionSet_s * rpmTransactionSet;
* used, otherwise fd is only needed (and only opened) for actual package
* installation.
*
* @param rpmdep rpm transaction set
* @param ts transaction set
* @param h package header
* @param fd package file handle
* @param key package private data
@ -874,35 +878,35 @@ typedef /*@abstract@*/ struct rpmTransactionSet_s * rpmTransactionSet;
* @param relocs package file relocations
* @return 0 on success, 1 on I/O error, 2 needs capabilities
*/
int rpmtransAddPackage(rpmTransactionSet rpmdep, Header h, FD_t fd,
int rpmtransAddPackage(rpmTransactionSet ts, Header h, FD_t fd,
/*@owned@*/ const void * key, int update,
rpmRelocation * relocs);
/** \ingroup rpmtrans
* Add package to universe of possible packages to install in transaction set.
* @param rpmdep rpm transaction set
* @param ts transaction set
* @param h header
* @param key package private data
*/
void rpmtransAvailablePackage(rpmTransactionSet rpmdep, Header h,
void rpmtransAvailablePackage(rpmTransactionSet ts, Header h,
/*@owned@*/ const void * key);
/** \ingroup rpmtrans
* Add package to be removed to unordered transaction set.
* @param rpmdep rpm transaction set
* @param ts transaction set
* @param dboffset rpm database instance
*/
void rpmtransRemovePackage(rpmTransactionSet rpmdep, int dboffset);
void rpmtransRemovePackage(rpmTransactionSet ts, int dboffset);
/** \ingroup rpmtrans
* Destroy transaction set.
* @param rpmdep rpm transaction set
* @param ts transaction set
*/
void rpmtransFree( /*@only@*/ rpmTransactionSet rpmdep);
void rpmtransFree( /*@only@*/ rpmTransactionSet ts);
/** \ingroup rpmtrans
* Save file handle to be used as stderr when running package scripts.
* @param ts rpm transaction set
* @param ts transaction set
* @param fd file handle
*/
void rpmtransSetScriptFd(rpmTransactionSet ts, FD_t fd)
@ -911,7 +915,7 @@ void rpmtransSetScriptFd(rpmTransactionSet ts, FD_t fd)
/** \ingroup rpmtrans
* Retrieve keys from ordered transaction set.
* @todo Removed packages have no keys, returned as interleaved NULL pointers.
* @param ts rpm transaction set
* @param ts transaction set
* @retval ep address of returned element array pointer (or NULL)
* @retval nep address of no. of returned elements (or NULL)
* @return 0 always
@ -922,12 +926,12 @@ int rpmtransGetKeys(const rpmTransactionSet ts,
/** \ingroup rpmtrans
* Check that all dependencies can be resolved.
* @param rpmdep rpm transaction set
* @param ts transaction set
* @retval conflicts
* @retval numConflicts
* @return 0 on success
*/
int rpmdepCheck(rpmTransactionSet rpmdep,
int rpmdepCheck(rpmTransactionSet ts,
/*@exposed@*/ /*@out@*/ struct rpmDependencyConflict ** conflicts,
/*@exposed@*/ /*@out@*/ int * numConflicts);
@ -947,10 +951,10 @@ int rpmdepCheck(rpmTransactionSet rpmdep,
* The operation would be easier if we could sort the addedPackages array in the
* transaction set, but we store indexes into the array in various places.
*
* @param rpmdep transaction set
* @param ts transaction set
* @return 0 if packages are successfully ordered, 1 otherwise
*/
int rpmdepOrder(rpmTransactionSet rpmdep) /*@modifies rpmdep @*/;
int rpmdepOrder(rpmTransactionSet ts) /*@modifies ts @*/;
/** \ingroup rpmtrans
* Destroy dependency conflicts storage.
@ -1033,7 +1037,7 @@ typedef enum rpmprobFilterFlags_e {
/** \ingroup rpmtrans
* Process all packages in transaction set.
* @param ts rpm transaction set
* @param ts transaction set
* @param notify progress callback
* @param notifyData progress callback private data
* @param okProbs previously known problems (or NULL)

View File

@ -147,10 +147,10 @@ static int machCompatCacheAdd(char * name, const char * fn, int linenum,
chptr = name;
while (*chptr && *chptr != ':') chptr++;
if (!*chptr) {
rpmError(RPMERR_RPMRC, _("missing second ':' at %s:%d"), fn, linenum);
rpmError(RPMERR_RPMRC, _("missing second ':' at %s:%d\n"), fn, linenum);
return 1;
} else if (chptr == name) {
rpmError(RPMERR_RPMRC, _("missing architecture name at %s:%d"), fn,
rpmError(RPMERR_RPMRC, _("missing architecture name at %s:%d\n"), fn,
linenum);
return 1;
}
@ -302,18 +302,19 @@ static int addCanon(struct canonEntry ** table, int * tableLen, char * line,
tshort_name = strtok(NULL, " \t");
s = strtok(NULL, " \t");
if (! (tname && tshort_name && s)) {
rpmError(RPMERR_RPMRC, _("Incomplete data line at %s:%d"), fn, lineNum);
rpmError(RPMERR_RPMRC, _("Incomplete data line at %s:%d\n"),
fn, lineNum);
return RPMERR_RPMRC;
}
if (strtok(NULL, " \t")) {
rpmError(RPMERR_RPMRC, _("Too many args in data line at %s:%d"),
rpmError(RPMERR_RPMRC, _("Too many args in data line at %s:%d\n"),
fn, lineNum);
return RPMERR_RPMRC;
}
tnum = strtoul(s, &s1, 10);
if ((*s1) || (s1 == s) || (tnum == ULONG_MAX)) {
rpmError(RPMERR_RPMRC, _("Bad arch/os number: %s (%s:%d)"), s,
rpmError(RPMERR_RPMRC, _("Bad arch/os number: %s (%s:%d)\n"), s,
fn, lineNum);
return(RPMERR_RPMRC);
}
@ -348,12 +349,12 @@ static int addDefault(struct defaultEntry **table, int *tableLen, char *line,
t->name = strtok(line, ": \t");
t->defName = strtok(NULL, " \t");
if (! (t->name && t->defName)) {
rpmError(RPMERR_RPMRC, _("Incomplete default line at %s:%d"),
rpmError(RPMERR_RPMRC, _("Incomplete default line at %s:%d\n"),
fn, lineNum);
return RPMERR_RPMRC;
}
if (strtok(NULL, " \t")) {
rpmError(RPMERR_RPMRC, _("Too many args in default line at %s:%d"),
rpmError(RPMERR_RPMRC, _("Too many args in default line at %s:%d\n"),
fn, lineNum);
return RPMERR_RPMRC;
}
@ -543,12 +544,12 @@ int rpmReadRC(const char * rcfiles)
/* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */
if (rcfiles == defrcfiles && myrcfiles != r)
continue;
rpmError(RPMERR_RPMRC, _("Cannot expand %s"), r);
rpmError(RPMERR_RPMRC, _("Cannot expand %s\n"), r);
rc = 1;
break;
}
if (strlen(home) > (sizeof(fn) - strlen(r))) {
rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large."),
rpmError(RPMERR_RPMRC, _("Cannot read %s, HOME is too large.\n"),
r);
rc = 1;
break;
@ -565,7 +566,7 @@ int rpmReadRC(const char * rcfiles)
/* XXX Only /usr/lib/rpm/rpmrc must exist in default rcfiles list */
if (rcfiles == defrcfiles && myrcfiles != r)
continue;
rpmError(RPMERR_RPMRC, _("Unable to open %s for reading: %s."),
rpmError(RPMERR_RPMRC, _("Unable to open %s for reading: %s.\n"),
fn, Fstrerror(fd));
rc = 1;
break;
@ -610,7 +611,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
next[0] = '\0';
rc = Fread(next, sizeof(*next), nb, fd);
if (Ferror(fd) || (size > 0 && rc != nb)) { /* XXX Feof(fd) */
rpmError(RPMERR_RPMRC, _("Failed to read %s: %s."), urlfn,
rpmError(RPMERR_RPMRC, _("Failed to read %s: %s.\n"), urlfn,
Fstrerror(fd));
rc = 1;
} else
@ -647,7 +648,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
}
if (*se != ':') {
rpmError(RPMERR_RPMRC, _("missing ':' (found 0x%02x) at %s:%d"),
rpmError(RPMERR_RPMRC, _("missing ':' (found 0x%02x) at %s:%d\n"),
(0xff & *se), urlfn, linenum);
return 1;
}
@ -664,7 +665,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
arch = val = fn = NULL;
if (*se == '\0') {
rpmError(RPMERR_RPMRC, _("missing argument for %s at %s:%d"),
rpmError(RPMERR_RPMRC, _("missing argument for %s at %s:%d\n"),
option->name, urlfn, linenum);
return 1;
}
@ -681,7 +682,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
fn = rpmGetPath(s, NULL);
if (fn == NULL || *fn == '\0') {
rpmError(RPMERR_RPMRC, _("%s expansion failed at %s:%d \"%s\""),
rpmError(RPMERR_RPMRC, _("%s expansion failed at %s:%d \"%s\"\n"),
option->name, urlfn, linenum, s);
if (fn) free((void *)fn);
return 1;
@ -690,7 +691,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
fdinc = Fopen(fn, "r.fpio");
if (fdinc == NULL || Ferror(fdinc)) {
rpmError(RPMERR_RPMRC, _("cannot open %s at %s:%d: %s"),
rpmError(RPMERR_RPMRC, _("cannot open %s at %s:%d: %s\n"),
fn, urlfn, linenum, Fstrerror(fdinc));
rc = 1;
} else {
@ -703,7 +704,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
case RPMVAR_MACROFILES:
fn = rpmGetPath(se, NULL);
if (fn == NULL || *fn == '\0') {
rpmError(RPMERR_RPMRC, _("%s expansion failed at %s:%d \"%s\""),
rpmError(RPMERR_RPMRC, _("%s expansion failed at %s:%d \"%s\"\n"),
option->name, urlfn, linenum, fn);
if (fn) free((void *)fn);
return 1;
@ -730,7 +731,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
while (*se && !isspace(*se)) se++;
if (*se == '\0') {
rpmError(RPMERR_RPMRC,
_("missing architecture for %s at %s:%d"),
_("missing architecture for %s at %s:%d\n"),
option->name, urlfn, linenum);
return 1;
}
@ -738,7 +739,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
while (*se && isspace(*se)) se++;
if (*se == '\0') {
rpmError(RPMERR_RPMRC,
_("missing argument for %s at %s:%d"),
_("missing argument for %s at %s:%d\n"),
option->name, urlfn, linenum);
return 1;
}
@ -797,7 +798,7 @@ static int doReadRC( /*@killref@*/ FD_t fd, const char * urlfn)
}
if (!gotit) {
rpmError(RPMERR_RPMRC, _("bad option '%s' at %s:%d"),
rpmError(RPMERR_RPMRC, _("bad option '%s' at %s:%d\n"),
s, urlfn, linenum);
}
}

View File

@ -159,7 +159,7 @@ int rpmReadSignature(FD_t fd, Header *headerp, short sigType)
case RPMSIG_MD5:
case RPMSIG_MD5_PGP:
rpmError(RPMERR_BADSIGTYPE,
_("Old (internal-only) signature! How did you get that!?"));
_("Old (internal-only) signature! How did you get that!?\n"));
break;
case RPMSIG_HEADERSIG:
/* This is a new style signature */
@ -271,7 +271,7 @@ static int makePGPSignature(const char *file, /*@out@*/void **sig, /*@out@*/int_
break;
}
}
rpmError(RPMERR_EXEC, _("Couldn't exec pgp (%s)"), path);
rpmError(RPMERR_EXEC, _("Couldn't exec pgp (%s)\n"), path);
_exit(RPMERR_EXEC);
}
@ -282,14 +282,14 @@ static int makePGPSignature(const char *file, /*@out@*/void **sig, /*@out@*/int_
(void)waitpid(pid, &status, 0);
if (!WIFEXITED(status) || WEXITSTATUS(status)) {
rpmError(RPMERR_SIGGEN, _("pgp failed"));
rpmError(RPMERR_SIGGEN, _("pgp failed\n"));
return 1;
}
if (stat(sigfile, &st)) {
/* PGP failed to write signature */
unlink(sigfile); /* Just in case */
rpmError(RPMERR_SIGGEN, _("pgp failed to write signature"));
rpmError(RPMERR_SIGGEN, _("pgp failed to write signature\n"));
return 1;
}
@ -305,7 +305,7 @@ static int makePGPSignature(const char *file, /*@out@*/void **sig, /*@out@*/int_
Fclose(fd);
if (rc != *size) {
free(*sig);
rpmError(RPMERR_SIGGEN, _("unable to read the signature"));
rpmError(RPMERR_SIGGEN, _("unable to read the signature\n"));
return 1;
}
}
@ -348,7 +348,7 @@ static int makeGPGSignature(const char *file, /*@out@*/void **sig, /*@out@*/int_
"--batch", "--no-verbose", "--no-armor", "--passphrase-fd", "3",
"-u", name, "-sbo", sigfile, file,
NULL);
rpmError(RPMERR_EXEC, _("Couldn't exec gpg"));
rpmError(RPMERR_EXEC, _("Couldn't exec gpg\n"));
_exit(RPMERR_EXEC);
}
@ -359,14 +359,14 @@ static int makeGPGSignature(const char *file, /*@out@*/void **sig, /*@out@*/int_
(void)waitpid(pid, &status, 0);
if (!WIFEXITED(status) || WEXITSTATUS(status)) {
rpmError(RPMERR_SIGGEN, _("gpg failed"));
rpmError(RPMERR_SIGGEN, _("gpg failed\n"));
return 1;
}
if (stat(sigfile, &st)) {
/* GPG failed to write signature */
unlink(sigfile); /* Just in case */
rpmError(RPMERR_SIGGEN, _("gpg failed to write signature"));
rpmError(RPMERR_SIGGEN, _("gpg failed to write signature\n"));
return 1;
}
@ -382,7 +382,7 @@ static int makeGPGSignature(const char *file, /*@out@*/void **sig, /*@out@*/int_
Fclose(fd);
if (rc != *size) {
free(*sig);
rpmError(RPMERR_SIGGEN, _("unable to read the signature"));
rpmError(RPMERR_SIGGEN, _("unable to read the signature\n"));
return 1;
}
}
@ -499,7 +499,7 @@ verifyPGPSignature(const char *datafile, const void * sig, int count, char *resu
if ((path = rpmDetectPGPVersion(&pgpVer)) == NULL) {
errno = ENOENT;
rpmError(RPMERR_EXEC,
_("Could not run pgp. Use --nopgp to skip PGP checks."));
_("Could not run pgp. Use --nopgp to skip PGP checks.\n"));
_exit(RPMERR_EXEC);
}
@ -560,7 +560,7 @@ verifyPGPSignature(const char *datafile, const void * sig, int count, char *resu
}
rpmError(RPMERR_EXEC,
_("Could not run pgp. Use --nopgp to skip PGP checks."));
_("Could not run pgp. Use --nopgp to skip PGP checks.\n"));
_exit(RPMERR_EXEC);
}
@ -632,7 +632,7 @@ verifyGPGSignature(const char *datafile, const void * sig, int count, char *resu
"--verify", sigfile, datafile,
NULL);
rpmError(RPMERR_EXEC,
_("Could not run gpg. Use --nogpg to skip GPG checks."));
_("Could not run gpg. Use --nogpg to skip GPG checks.\n"));
_exit(RPMERR_EXEC);
}
@ -691,7 +691,7 @@ static int checkPassPhrase(const char *passPhrase, const int sigTag)
"--batch", "--no-verbose", "--passphrase-fd", "3",
"-u", name, "-so", "-",
NULL);
rpmError(RPMERR_EXEC, _("Couldn't exec gpg"));
rpmError(RPMERR_EXEC, _("Couldn't exec gpg\n"));
_exit(RPMERR_EXEC);
} /*@notreached@*/ break;
case RPMSIGTAG_PGP5: /* XXX legacy */
@ -720,11 +720,11 @@ static int checkPassPhrase(const char *passPhrase, const int sigTag)
break;
}
}
rpmError(RPMERR_EXEC, _("Couldn't exec pgp"));
rpmError(RPMERR_EXEC, _("Couldn't exec pgp\n"));
_exit(RPMERR_EXEC);
} /*@notreached@*/ break;
default: /* This case should have been screened out long ago. */
rpmError(RPMERR_SIGGEN, _("Invalid %%_signature spec in macro file"));
rpmError(RPMERR_SIGGEN, _("Invalid %%_signature spec in macro file\n"));
_exit(RPMERR_SIGGEN);
/*@notreached@*/ break;
}
@ -757,7 +757,7 @@ char *rpmGetPassPhrase(const char *prompt, const int sigTag)
}
if (!aok) {
rpmError(RPMERR_SIGGEN,
_("You must set \"%%_gpg_name\" in your macro file"));
_("You must set \"%%_gpg_name\" in your macro file\n"));
return NULL;
}
break;
@ -769,7 +769,7 @@ char *rpmGetPassPhrase(const char *prompt, const int sigTag)
}
if (!aok) {
rpmError(RPMERR_SIGGEN,
_("You must set \"%%_pgp_name\" in your macro file"));
_("You must set \"%%_pgp_name\" in your macro file\n"));
return NULL;
}
break;
@ -777,7 +777,7 @@ char *rpmGetPassPhrase(const char *prompt, const int sigTag)
/* Currently the calling function (rpm.c:main) is checking this and
* doing a better job. This section should never be accessed.
*/
rpmError(RPMERR_SIGGEN, _("Invalid %%_signature spec in macro file"));
rpmError(RPMERR_SIGGEN, _("Invalid %%_signature spec in macro file\n"));
return NULL;
/*@notreached@*/ break;
}

View File

@ -1370,6 +1370,10 @@ int rpmRunTransactions( rpmTransactionSet ts,
free((void *)ts->currDir);
ts->currDir = currentDirectory();
ts->chrootDone = 0;
{ time_t t;
time(&t);
ts->id = t;
}
/* Get available space on mounted file systems. */
if (!(ts->ignoreSet & RPMPROB_FILTER_DISKSPACE) &&

View File

@ -57,7 +57,7 @@ static int removeFile(const char * file, rpmfileAttrs fileAttrs, short mode,
(void)stpcpy(stpcpy(newfile, file), SUFFIX_RPMSAVE);
if (rename(file, newfile)) {
rpmError(RPMERR_RENAME, _("rename of %s to %s failed: %s"),
rpmError(RPMERR_RENAME, _("rename of %s to %s failed: %s\n"),
file, newfile, strerror(errno));
rc = 1;
}
@ -71,11 +71,11 @@ static int removeFile(const char * file, rpmfileAttrs fileAttrs, short mode,
case ENOENT: /* XXX rmdir("/") linux 2.2.x kernel hack */
case ENOTEMPTY:
rpmError(RPMERR_RMDIR,
_("cannot remove %s - directory not empty"),
_("cannot remove %s - directory not empty\n"),
file);
break;
default:
rpmError(RPMERR_RMDIR, _("rmdir of %s failed: %s"),
rpmError(RPMERR_RMDIR, _("rmdir of %s failed: %s\n"),
file, strerror(errno));
break;
}
@ -85,7 +85,7 @@ static int removeFile(const char * file, rpmfileAttrs fileAttrs, short mode,
if (unlink(file)) {
if (errno != ENOENT || !(fileAttrs & RPMFILE_MISSINGOK)) {
rpmError(RPMERR_UNLINK,
_("removal of %s failed: %s"),
_("removal of %s failed: %s\n"),
file, strerror(errno));
}
rc = 1;
@ -165,10 +165,8 @@ int removeBinaryPackage(const rpmTransactionSet ts, unsigned int offset,
int rdlen = (ts->rootDir && !(ts->rootDir[0] == '/' && ts->rootDir[1] == '\0'))
? strlen(ts->rootDir) : 0;
headerGetEntry(h, RPMTAG_DIRINDEXES, NULL, (void **) &dirIndexes,
NULL);
headerGetEntry(h, RPMTAG_DIRNAMES, NULL, (void **) &dirNames,
NULL);
headerGetEntry(h, RPMTAG_DIRINDEXES, NULL, (void **) &dirIndexes, NULL);
headerGetEntry(h, RPMTAG_DIRNAMES, NULL, (void **) &dirNames, NULL);
/* Get buffer for largest possible rootDir + dirname + filename. */
fnmaxlen = 0;
@ -246,7 +244,7 @@ int removeBinaryPackage(const rpmTransactionSet ts, unsigned int offset,
}
if (!(transFlags & RPMTRANS_FLAG_TEST))
rpmdbRemove(ts->rpmdb, offset);
rpmdbRemove(ts->rpmdb, ts->id, offset);
return 0;
}
@ -445,7 +443,7 @@ static int runScript(const rpmTransactionSet ts, Header h,
const char *n, *v, *r;
headerNVR(h, &n, &v, &r);
rpmError(RPMERR_SCRIPT,
_("execution of %s scriptlet from %s-%s-%s failed, exit status %d"),
_("execution of %s scriptlet from %s-%s-%s failed, exit status %d\n"),
sln, n, v, r, WEXITSTATUS(status));
return 1;
}

View File

@ -239,7 +239,7 @@ int rpmVerifyFile(const char * prefix, Header h, int filenum,
*result |= RPMVERIFY_GROUP;
} else {
rpmError(RPMERR_INTERNAL, _("package lacks both user name and id "
"lists (this should never happen)"));
"lists (this should never happen)\n"));
*result |= RPMVERIFY_GROUP;
}
}
@ -257,7 +257,7 @@ int rpmVerifyFile(const char * prefix, Header h, int filenum,
*result |= RPMVERIFY_GROUP;
} else {
rpmError(RPMERR_INTERNAL, _("package lacks both group name and id "
"lists (this should never happen)"));
"lists (this should never happen)\n"));
*result |= RPMVERIFY_GROUP;
}
}

View File

@ -459,7 +459,7 @@ int oldrpmdbGetPackageInfo(struct oldrpmdb * oldrpmdb, struct oldrpmdbLabel labe
rec = gdbm_fetch(oldrpmdb->packages, key);
if (!rec.dptr) {
rpmError(RPMERR_OLDDBCORRUPT, _("package not found in database"));
rpmError(RPMERR_OLDDBCORRUPT, _("package not found in database\n"));
return 1;
}

1314
po/cs.po

File diff suppressed because it is too large Load Diff

1147
po/da.po

File diff suppressed because it is too large Load Diff

1162
po/de.po

File diff suppressed because it is too large Load Diff

885
po/es.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1145
po/fi.po

File diff suppressed because it is too large Load Diff

1227
po/fr.po

File diff suppressed because it is too large Load Diff

885
po/gl.po

File diff suppressed because it is too large Load Diff

885
po/hu.po

File diff suppressed because it is too large Load Diff

885
po/id.po

File diff suppressed because it is too large Load Diff

1100
po/is.po

File diff suppressed because it is too large Load Diff

885
po/it.po

File diff suppressed because it is too large Load Diff

1124
po/ja.po

File diff suppressed because it is too large Load Diff

885
po/ko.po

File diff suppressed because it is too large Load Diff

1208
po/no.po

File diff suppressed because it is too large Load Diff

1172
po/pl.po

File diff suppressed because it is too large Load Diff

1005
po/pt.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

885
po/ro.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

1318
po/ru.po

File diff suppressed because it is too large Load Diff

1148
po/sk.po

File diff suppressed because it is too large Load Diff

1300
po/sl.po

File diff suppressed because it is too large Load Diff

1147
po/sr.po

File diff suppressed because it is too large Load Diff

1316
po/sv.po

File diff suppressed because it is too large Load Diff

1147
po/tr.po

File diff suppressed because it is too large Load Diff

885
po/uk.po

File diff suppressed because it is too large Load Diff

885
po/wa.po

File diff suppressed because it is too large Load Diff

885
po/zh.po

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-08-23 22:24+0100\n"
"Last-Translator: Milan Kerslager <milan.kerslager@spsselib.hiedu.cz>\n"
"Language-Team: Czech <cs@li.org>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Vypí¹e tuto nápovìdu"
@ -16,3 +57,43 @@ msgstr "Vyp
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Vypí¹e krátký návod k pou¾ití"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-03-07 05:17+01:00\n"
"Last-Translator: K. Christiansen <kenneth@gnu.org>\n"
"Language-Team: Danish/Dansk <dansk@klid.dk>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Vis denne hjælpemeddelelse"
@ -16,3 +57,43 @@ msgstr "Vis denne hj
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Vis kortfattet brugsanvisning"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2001-01-01 18:27-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -10,7 +10,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-01-06 20:31+0100\n"
"Last-Translator: Jesús Bravo Álvarez <jba@pobox.com>\n"
"Language-Team: Galician <gpul-traduccion@ceu.fi.udc.es>\n"
@ -18,6 +18,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Amosar esta mensaxe de axuda"
@ -25,3 +66,43 @@ msgstr "Amosar esta mensaxe de axuda"
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Amosar brevemente o xeito de utilización"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-08-03 23:26+0200\n"
"Last-Translator: László Németh <nemeth@qwertynet.hu>\n"
"Language-Team: Hungarian\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8-bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "E súgó megjelenítése"
@ -16,3 +57,43 @@ msgstr "E s
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Rövid használati utasítás megjelenítése"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-06-16 02:12+0000\n"
"Last-Translator: Richard Allen <ra@hp.is>\n"
"Language-Team: is <kde-isl@mmedia.is>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Sýna þessa hjálp"
@ -16,3 +57,43 @@ msgstr "S
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Sýna stuttar notkunarleiðbeiningar"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-06-21 16:11+02:00\n"
"Last-Translator: Kjartan Maraas <kmaraas@online.no>\n"
"Language-Team: Norwegian <no@li.org>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8-bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Vis denne hjelpmeldingen"
@ -16,3 +57,43 @@ msgstr "Vis denne hjelpmeldingen"
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Vis kort bruksmelding"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-06-22 01:02+01:00\n"
"Last-Translator: Pedro Morais <morais@kde.org>\n"
"Language-Team: pt <morais@kde.org>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-latin1\n"
"Content-Transfer-Encoding: none\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Mostrar esta mensagem de ajuda"
@ -16,3 +57,43 @@ msgstr "Mostrar esta mensagem de ajuda"
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Mostrar uma mensagem de utilização sucinta"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-06-14 23:23+EST\n"
"Last-Translator: Cristian Gafton <gafton@redhat.com>\n"
"Language-Team: Romanian <ro@li.org>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr "eroare necunoscuta"
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr "optiunea de tipul (%d) nu este implementata in popt\n"
#: popt.c:893
msgid "missing argument"
msgstr "argument lipsa"
#: popt.c:895
msgid "unknown option"
msgstr "optiune necunoscuta"
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr "recursivitate infinita la optiunile sinonime"
#: popt.c:901
msgid "error in paramter quoting"
msgstr "eroare la insertie parametru"
#: popt.c:903
msgid "invalid numeric value"
msgstr "valoare numarica invalida"
#: popt.c:905
msgid "number too large or too small"
msgstr "numar prea mare sau prea mic"
#: popt.c:909
msgid "unknown error"
msgstr "eroare necuinoscuta"
#: popthelp.c:28
msgid "Show this help message"
msgstr "Afisare mesaj de help"
@ -17,35 +58,42 @@ msgstr "Afisare mesaj de help"
msgid "Display brief usage message"
msgstr "Afisare mesaj sintaxa sumar"
#~ msgid "unknown errno"
#~ msgstr "eroare necunoscuta"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#~ msgid "option type (%d) not implemented in popt\n"
#~ msgstr "optiunea de tipul (%d) nu este implementata in popt\n"
#: popthelp.c:61
msgid "VAL"
msgstr ""
#~ msgid "missing argument"
#~ msgstr "argument lipsa"
#: popthelp.c:62
msgid "INT"
msgstr ""
#~ msgid "unknown option"
#~ msgstr "optiune necunoscuta"
#: popthelp.c:63
msgid "LONG"
msgstr ""
#~ msgid "aliases nested too deeply"
#~ msgstr "recursivitate infinita la optiunile sinonime"
#: popthelp.c:64
msgid "STRING"
msgstr ""
#~ msgid "error in paramter quoting"
#~ msgstr "eroare la insertie parametru"
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#~ msgid "invalid numeric value"
#~ msgstr "valoare numarica invalida"
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#~ msgid "number too large or too small"
#~ msgstr "numar prea mare sau prea mic"
#: popthelp.c:67
msgid "ARG"
msgstr ""
#~ msgid "unknown error"
#~ msgstr "eroare necuinoscuta"
#: popthelp.c:240
msgid "Usage:"
msgstr "Sintaxa:"
#~ msgid "Usage:"
#~ msgstr "Sintaxa:"
#~ msgid "[OPTION...]"
#~ msgstr "[OPTIUNE...]"
#: popthelp.c:259
msgid "[OPTION...]"
msgstr "[OPTIUNE...]"

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-08-13 21:00+0300\n"
"Last-Translator: Leon Kanter <leon@blackcatlinux.com>\n"
"Language-Team: Black Cat Linux Team <blackcat-support@blackcatlinux.com>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "ðÏËÁÚÁÔØ ÜÔÏ ÓÏÏÂÝÅÎÉÅ"
@ -16,3 +57,43 @@ msgstr "
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "ðÏËÁÚÁÔØ ËÒÁÔËÕÀ ÉÎÓÔÒÕËÃÉÀ ÐÏ ÉÓÐÏÌØÚÏ×ÁÎÉÀ"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 1999-08-04 21:40+0200\n"
"Last-Translator: Stanislav Meduna <stano@eunet.sk>\n"
"Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n"
@ -13,6 +13,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Vypísa» túto správu"
@ -20,3 +61,43 @@ msgstr "Vyp
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Zobrazi» struèný návod na pou¾itie"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-09-05 12:30+0200\n"
"Last-Translator: Roman Maurer <roman.maurer@hermes.si>\n"
"Language-Team: Slovenian <sl@li.org>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-2\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Prika¾i to sporoèilo s pomoèjo"
@ -16,3 +57,43 @@ msgstr "Prika
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Prika¾i kratko sporoèilo o uporabi"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-06-20 00:07+0200\n"
"Last-Translator: Christian Rose <menthos@menthos.com>\n"
"Language-Team: Swedish <sv@li.org>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=ISO-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Visa detta hjälpmeddelande"
@ -16,3 +57,43 @@ msgstr "Visa detta hj
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Visa ett kortfattat användningsmeddelande"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 2000-01-06 13:01+0100\n"
"Last-Translator: Görkem Çetin <kabalak@gmx.net>\n"
"Language-Team: Gelecek A.Þ <gorkem@gelecek.com.tr>\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso8859-9\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Bu yardým iletisini gösterir"
@ -16,3 +57,43 @@ msgstr "Bu yard
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Kýsa bir kullaným iletisi göster"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -5,7 +5,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 1999-09-30 16:54+0200\n"
"Last-Translator: Yuri Syrota <rasta@renome.rovno.ua>\n"
"Language-Team: Ukrainian <uk@li.org>\n"
@ -13,6 +13,47 @@ msgstr ""
"Content-Type: text/plain; charset=koi8-u\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "ðÏËÁÚÁÔÉ ÃÀ ÄÏצÄËÕ"
@ -20,3 +61,43 @@ msgstr "
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "ðÏËÁÚÁÔÉ ËÏÒÏÔËÕ ÄÏצÄËÕ ÐÒÏ ×ÉËÏÒÉÓÔÁÎÎÑ"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -9,7 +9,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 1999-03-18 23:11+0100\n"
"Last-Translator: Nobody yet\n"
"Language-Team: walon <linux-wa@chanae.alphanet.ch>\n"
@ -17,6 +17,47 @@ msgstr ""
"Content-Type: text/plain; charset=iso-8859-1\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "Mostrer ci messaedje d' aide chal"
@ -24,3 +65,43 @@ msgstr "Mostrer ci messaedje d' aide chal"
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "Mostre on court messaedje so kmint vos è siervi"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\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,6 +14,47 @@ msgstr ""
"Content-Type: text/plain; charset=CHARSET\n"
"Content-Transfer-Encoding: ENCODING\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr ""
@ -21,3 +62,43 @@ msgstr ""
#: popthelp.c:29
msgid "Display brief usage message"
msgstr ""
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: popt 1.6.1\n"
"POT-Creation-Date: 2001-01-01 17:42-0500\n"
"POT-Creation-Date: 2001-01-15 16:14-0500\n"
"PO-Revision-Date: 1999-11-11 05:04+0800\n"
"Last-Translator: Dillion Chen <dillon.chen@turbolinux.com.cn>\n"
"Language-Team: TLDN\n"
@ -9,6 +9,47 @@ msgstr ""
"Content-Type: text/plain; charset=gb2312\n"
"Content-Transfer-Encoding: 8bit\n"
#: popt.c:29
msgid "unknown errno"
msgstr ""
#: popt.c:758
#, c-format
msgid "option type (%d) not implemented in popt\n"
msgstr ""
#: popt.c:893
msgid "missing argument"
msgstr ""
#: popt.c:895
msgid "unknown option"
msgstr ""
#: popt.c:897
msgid "mutually exclusive logical operations requested"
msgstr ""
#: popt.c:899
msgid "aliases nested too deeply"
msgstr ""
#: popt.c:901
msgid "error in paramter quoting"
msgstr ""
#: popt.c:903
msgid "invalid numeric value"
msgstr ""
#: popt.c:905
msgid "number too large or too small"
msgstr ""
#: popt.c:909
msgid "unknown error"
msgstr ""
#: popthelp.c:28
msgid "Show this help message"
msgstr "显示这条帮助信息"
@ -16,3 +57,43 @@ msgstr "
#: popthelp.c:29
msgid "Display brief usage message"
msgstr "显示简短使用信息"
#: popthelp.c:60
msgid "NONE"
msgstr ""
#: popthelp.c:61
msgid "VAL"
msgstr ""
#: popthelp.c:62
msgid "INT"
msgstr ""
#: popthelp.c:63
msgid "LONG"
msgstr ""
#: popthelp.c:64
msgid "STRING"
msgstr ""
#: popthelp.c:65
msgid "FLOAT"
msgstr ""
#: popthelp.c:66
msgid "DOUBLE"
msgstr ""
#: popthelp.c:67
msgid "ARG"
msgstr ""
#: popthelp.c:240
msgid "Usage:"
msgstr ""
#: popthelp.c:259
msgid "[OPTION...]"
msgstr ""

View File

@ -13,7 +13,7 @@ Summary: The Red Hat package management system.
Name: rpm
%define version 4.0.2
Version: %{version}
Release: 0.25
Release: 0.26
Group: System Environment/Base
Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/rpm-%{version}.tar.gz
Copyright: GPL
@ -309,6 +309,11 @@ fi
%{__prefix}/include/popt.h
%changelog
* Mon Jan 15 2001 Jeff Johnson <jbj@redhat.com>
- fix: extra newline in many error messages (#23947).
- fix: rpm -Va with db1 needs per-iterator, not per-index, offset.
- add install/remove transaction id tags.
* Sat Jan 13 2001 Jeff Johnson <jbj@redhat.com>
- fix the hack.

View File

@ -13,7 +13,7 @@ Summary: The Red Hat package management system.
Name: rpm
%define version @VERSION@
Version: %{version}
Release: 0.25
Release: 0.26
Group: System Environment/Base
Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/rpm-%{version}.tar.gz
Copyright: GPL
@ -309,6 +309,11 @@ fi
%{__prefix}/include/popt.h
%changelog
* Mon Jan 15 2001 Jeff Johnson <jbj@redhat.com>
- fix: extra newline in many error messages (#23947).
- fix: rpm -Va with db1 needs per-iterator, not per-index, offset.
- add install/remove transaction id tags.
* Sat Jan 13 2001 Jeff Johnson <jbj@redhat.com>
- fix the hack.

View File

@ -552,7 +552,8 @@ doDefine(MacroBuf *mb, const char *se, int level, int expandbody)
SKIPBLANK(s, c);
if (c == '{') { /* XXX permit silent {...} grouping */
if ((se = matchchar(s, c, '}')) == NULL) {
rpmError(RPMERR_BADSPEC, _("Macro %%%s has unterminated body"), n);
rpmError(RPMERR_BADSPEC,
_("Macro %%%s has unterminated body\n"), n);
se = s; /* XXX W2DO? */
return se;
}
@ -578,23 +579,25 @@ doDefine(MacroBuf *mb, const char *se, int level, int expandbody)
/* Names must start with alphabetic or _ and be at least 3 chars */
if (!((c = *n) && (isalpha(c) || c == '_') && (ne - n) > 2)) {
rpmError(RPMERR_BADSPEC, _("Macro %%%s has illegal name (%%define)"), n);
rpmError(RPMERR_BADSPEC,
_("Macro %%%s has illegal name (%%define)\n"), n);
return se;
}
/* Options must be terminated with ')' */
if (o && oc != ')') {
rpmError(RPMERR_BADSPEC, _("Macro %%%s has unterminated opts"), n);
rpmError(RPMERR_BADSPEC,
_("Macro %%%s has unterminated opts\n"), n);
return se;
}
if ((be - b) < 1) {
rpmError(RPMERR_BADSPEC, _("Macro %%%s has empty body"), n);
rpmError(RPMERR_BADSPEC, _("Macro %%%s has empty body\n"), n);
return se;
}
if (expandbody && expandU(mb, b, (&buf[sizeof(buf)] - b))) {
rpmError(RPMERR_BADSPEC, _("Macro %%%s failed to expand"), n);
rpmError(RPMERR_BADSPEC, _("Macro %%%s failed to expand\n"), n);
return se;
}
@ -625,7 +628,8 @@ doUndefine(MacroContext *mc, const char *se)
/* Names must start with alphabetic or _ and be at least 3 chars */
if (!((c = *n) && (isalpha(c) || c == '_') && (ne - n) > 2)) {
rpmError(RPMERR_BADSPEC, _("Macro %%%s has illegal name (%%undefine)"), n);
rpmError(RPMERR_BADSPEC,
_("Macro %%%s has illegal name (%%undefine)\n"), n);
return se;
}
@ -718,7 +722,8 @@ freeArgs(MacroBuf *mb)
/* XXX skip test for %# %* %0 */
} else if (!skiptest && me->used <= 0) {
#if NOTYET
rpmError(RPMERR_BADSPEC, _("Macro %%%s (%s) was not used below level %d"),
rpmError(RPMERR_BADSPEC,
_("Macro %%%s (%s) was not used below level %d\n"),
me->name, me->body, me->level);
#endif
}
@ -811,7 +816,7 @@ grabArgs(MacroBuf *mb, const MacroEntry *me, const char *se, char lastc)
/* Define option macros. */
while((c = getopt(argc, (char **)argv, opts)) != -1) {
if (c == '?' || (o = strchr(opts, c)) == NULL) {
rpmError(RPMERR_BADSPEC, _("Unknown option %c in %s(%s)"),
rpmError(RPMERR_BADSPEC, _("Unknown option %c in %s(%s)\n"),
c, me->name, opts);
return se;
}
@ -866,7 +871,7 @@ doOutput(MacroBuf *mb, int waserror, const char *msg, size_t msglen)
buf[msglen] = '\0';
expandU(mb, buf, sizeof(buf));
if (waserror)
rpmError(RPMERR_BADSPEC, "%s", buf);
rpmError(RPMERR_BADSPEC, "%s\n", buf);
else
fprintf(stderr, "%s", buf);
}
@ -990,7 +995,8 @@ expandMacro(MacroBuf *mb)
int chkexist;
if (++mb->depth > max_macro_depth) {
rpmError(RPMERR_BADSPEC, _("Recursion depth(%d) greater than max(%d)"),
rpmError(RPMERR_BADSPEC,
_("Recursion depth(%d) greater than max(%d)\n"),
mb->depth, max_macro_depth);
mb->depth--;
mb->expand_trace = 1;
@ -1056,7 +1062,8 @@ expandMacro(MacroBuf *mb)
break;
case '(': /* %(...) shell escape */
if ((se = matchchar(s, c, ')')) == NULL) {
rpmError(RPMERR_BADSPEC, _("Unterminated %c: %s"), c, s);
rpmError(RPMERR_BADSPEC,
_("Unterminated %c: %s\n"), c, s);
rc = 1;
continue;
}
@ -1072,7 +1079,8 @@ expandMacro(MacroBuf *mb)
/*@notreached@*/ break;
case '{': /* %{...}/%{...:...} substitution */
if ((se = matchchar(s, c, '}')) == NULL) {
rpmError(RPMERR_BADSPEC, _("Unterminated %c: %s"), c, s);
rpmError(RPMERR_BADSPEC,
_("Unterminated %c: %s\n"), c, s);
rc = 1;
continue;
}
@ -1112,7 +1120,8 @@ expandMacro(MacroBuf *mb)
c = '%'; /* XXX only need to save % */
SAVECHAR(mb, c);
#if 0
rpmError(RPMERR_BADSPEC, _("A %% is followed by an unparseable macro"));
rpmError(RPMERR_BADSPEC,
_("A %% is followed by an unparseable macro\n"));
#endif
s = se;
continue;
@ -1238,7 +1247,8 @@ expandMacro(MacroBuf *mb)
c = '%'; /* XXX only need to save % */
SAVECHAR(mb, c);
#else
rpmError(RPMERR_BADSPEC, _("Macro %%%.*s not found, skipping"), fn, f);
rpmError(RPMERR_BADSPEC,
_("Macro %%%.*s not found, skipping\n"), fn, f);
s = se;
#endif
continue;
@ -1309,7 +1319,7 @@ expandMacros(void *spec, MacroContext *mc, char *s, size_t slen)
rc = expandMacro(mb);
if (mb->nb <= 0)
rpmError(RPMERR_BADSPEC, _("Target buffer overflow"));
rpmError(RPMERR_BADSPEC, _("Target buffer overflow\n"));
tbuf[slen] = '\0'; /* XXX just in case */
strncpy(s, tbuf, (slen - mb->nb + 1));
@ -1489,16 +1499,16 @@ int isCompressed(const char *file, rpmCompressedMagic *compressed)
fd = Fopen(file, "r.ufdio");
if (fd == NULL || Ferror(fd)) {
/* XXX Fstrerror */
rpmError(RPMERR_BADSPEC, _("File %s: %s"), file, Fstrerror(fd));
rpmError(RPMERR_BADSPEC, _("File %s: %s\n"), file, Fstrerror(fd));
if (fd) Fclose(fd);
return 1;
}
nb = Fread(magic, sizeof(char), sizeof(magic), fd);
if (nb < 0) {
rpmError(RPMERR_BADSPEC, _("File %s: %s"), file, Fstrerror(fd));
rpmError(RPMERR_BADSPEC, _("File %s: %s\n"), file, Fstrerror(fd));
rc = 1;
} else if (nb < sizeof(magic)) {
rpmError(RPMERR_BADSPEC, _("File %s is smaller than %u bytes"),
rpmError(RPMERR_BADSPEC, _("File %s is smaller than %u bytes\n"),
file, (unsigned)sizeof(magic));
rc = 0;
}

View File

@ -87,6 +87,7 @@ typedef enum rpmerrCode_e {
RPMERR_FREAD = _em(134), /*!< */
RPMERR_READLEAD = _em(135), /*!< */
RPMERR_WRITELEAD = _em(136), /*!< */
RPMERR_QUERYINFO = _en(137), /*!< */
RPMERR_BADSIGTYPE = _em(200), /*!< Unknown signature type */
RPMERR_SIGGEN = _em(201), /*!< Error generating signature */

View File

@ -151,8 +151,6 @@ static void vrpmlog (unsigned code, const char *fmt, va_list ap)
fputs(_(rpmlogMsgPrefix[pri]), msgout);
fputs(msg, msgout);
if (pri == RPMLOG_ERR) /* XXX Legacy rpmError behavior appends newline. */
fputs("\n", msgout);
fflush(msgout);
if (pri <= RPMLOG_CRIT)
exit(EXIT_FAILURE);