- 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:
parent
082ccecf35
commit
c74cc1df1c
3
CHANGES
3
CHANGES
|
@ -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
20
build.c
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
41
build/pack.c
41
build/pack.c
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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, ¯o, 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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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);
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
242
lib/depends.c
242
lib/depends.c
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
14
lib/fs.c
14
lib/fs.c
|
@ -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;
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
18
lib/query.c
18
lib/query.c
|
@ -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);
|
||||
|
|
336
lib/rpmdb.c
336
lib/rpmdb.c
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
70
lib/rpmlib.h
70
lib/rpmlib.h
|
@ -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)
|
||||
|
|
39
lib/rpmrc.c
39
lib/rpmrc.c
|
@ -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);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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) &&
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
885
po/eu_ES.po
885
po/eu_ES.po
File diff suppressed because it is too large
Load Diff
1252
po/pt_BR.po
1252
po/pt_BR.po
File diff suppressed because it is too large
Load Diff
885
po/rpm.pot
885
po/rpm.pot
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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...]"
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
|
@ -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 ""
|
||||
|
|
7
rpm.spec
7
rpm.spec
|
@ -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.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
|
@ -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 */
|
||||
|
|
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue