summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjbj <devnull@localhost>1999-10-04 17:29:58 +0000
committerjbj <devnull@localhost>1999-10-04 17:29:58 +0000
commit767f75648fb05790ddb3200cba8ddf730a136dd2 (patch)
treeb3e346c70c209a7bd8dbf7929dda3ac38d02ed7b
parent9336fba9832d8ebf9e325b15f96961f2ca92507c (diff)
downloadrpm-767f75648fb05790ddb3200cba8ddf730a136dd2.tar.gz
rpm-767f75648fb05790ddb3200cba8ddf730a136dd2.tar.bz2
rpm-767f75648fb05790ddb3200cba8ddf730a136dd2.zip
fix: non-GNU globs burp on repeated '/' in patterns.
CVS patchset: 3365 CVS date: 1999/10/04 17:29:58
-rw-r--r--CHANGES1
-rw-r--r--build/files.c213
-rw-r--r--build/rpmspec.h2
-rw-r--r--po/cs.po18
-rw-r--r--po/de.po18
-rw-r--r--po/fi.po18
-rw-r--r--po/fr.po26
-rw-r--r--po/pl.po22
-rw-r--r--po/pt_BR.po28
-rw-r--r--po/rpm.pot77
-rw-r--r--po/ru.po22
-rw-r--r--po/sk.po22
-rw-r--r--po/sr.po18
-rw-r--r--po/sv.po26
-rw-r--r--po/tr.po18
15 files changed, 289 insertions, 240 deletions
diff --git a/CHANGES b/CHANGES
index 3955a1b12..5f9598ae8 100644
--- a/CHANGES
+++ b/CHANGES
@@ -66,6 +66,7 @@
- create binary rpm directory (e.g. .../%{_target_cpu}) on the fly.
- updated pl/rpm.8 (PLD team).
- new find req/prov scripts for non-linux platforms (Tim Mooney).
+ - fix: non-GNU globs burp on repeated '/' in patterns.
3.0.1 -> 3.0.2
- eliminate armv4 entries from rpmrc (Andrew E. Mileski).
diff --git a/build/files.c b/build/files.c
index 21193738f..050c8f15f 100644
--- a/build/files.c
+++ b/build/files.c
@@ -47,8 +47,6 @@ typedef struct {
mode_t ar_dmode;
} AttrRec;
-static AttrRec empty_ar = { NULL, NULL, NULL, NULL, 0, 0 };
-
struct FileList {
const char *buildRoot;
const char *prefix;
@@ -68,7 +66,7 @@ struct FileList {
AttrRec def_ar;
int defVerifyFlags;
int nLangs;
- const char **currentLangs;
+ /*@only@*/ const char **currentLangs;
/* Hard coded limit of MAXDOCDIR docdirs. */
/* If you break it you are doing something wrong. */
@@ -80,7 +78,18 @@ struct FileList {
int fileListRecsUsed;
};
-static void freeAttrRec(AttrRec *ar) {
+static void nullAttrRec(/*@out@*/AttrRec *ar)
+{
+ ar->ar_fmodestr = NULL;
+ ar->ar_dmodestr = NULL;
+ ar->ar_user = NULL;
+ ar->ar_group = NULL;
+ ar->ar_fmode = 0;
+ ar->ar_dmode = 0;
+}
+
+static void freeAttrRec(AttrRec *ar)
+{
FREE(ar->ar_fmodestr);
FREE(ar->ar_dmodestr);
FREE(ar->ar_user);
@@ -88,19 +97,17 @@ static void freeAttrRec(AttrRec *ar) {
/* XXX doesn't free ar (yet) */
}
-static void dupAttrRec(AttrRec *oar, AttrRec *nar) {
+static void dupAttrRec(AttrRec *oar, /*@out@*/ AttrRec *nar)
+{
if (oar == nar) /* XXX pathological paranoia */
return;
freeAttrRec(nar);
- *nar = *oar; /* structure assignment */
- if (nar->ar_fmodestr)
- nar->ar_fmodestr = xstrdup(nar->ar_fmodestr);
- if (nar->ar_dmodestr)
- nar->ar_dmodestr = xstrdup(nar->ar_dmodestr);
- if (nar->ar_user)
- nar->ar_user = xstrdup(nar->ar_user);
- if (nar->ar_group)
- nar->ar_group = xstrdup(nar->ar_group);
+ nar->ar_fmodestr = (oar->ar_fmodestr ? xstrdup(oar->ar_fmodestr) : NULL);
+ nar->ar_dmodestr = (oar->ar_dmodestr ? xstrdup(oar->ar_dmodestr) : NULL);
+ nar->ar_user = (oar->ar_user ? xstrdup(oar->ar_user) : NULL);
+ nar->ar_group = (oar->ar_group ? xstrdup(oar->ar_group) : NULL);
+ nar->ar_fmode = oar->ar_fmode;
+ nar->ar_dmode = oar->ar_dmode;
}
#if 0
@@ -146,11 +153,6 @@ static int myGlobPatternP (const char *pattern)
return (0);
}
-static int glob_error(const char *foo, int bar)
-{
- return 1;
-}
-
/* strtokWithQuotes() modified from glibc strtok() */
/* Copyright (C) 1991, 1996 Free Software Foundation, Inc.
This file is part of the GNU C Library.
@@ -375,7 +377,7 @@ static int parseForAttr(char *buf, struct FileList *fl)
while (p <= pe)
*p++ = ' ';
- *ar = empty_ar; /* structure assignment */
+ nullAttrRec(ar);
p = q; SKIPWHITE(p);
if (*p) {
@@ -577,7 +579,7 @@ static int parseForLang(char *buf, struct FileList *fl)
return 0;
}
-static int parseForRegexLang(const char *fileName, char **lang)
+static int parseForRegexLang(const char *fileName, /*@out@*/char **lang)
{
static int initialized = 0;
static int hasRegex = 0;
@@ -631,7 +633,7 @@ VFA_t virtualFileAttributes[] = {
{ NULL, 0 }
};
-static int parseForSimple(Spec spec, Package pkg, char *buf,
+static int parseForSimple(/*@unused@*/Spec spec, Package pkg, char *buf,
struct FileList *fl, const char **fileName)
{
char *s, *t;
@@ -908,10 +910,9 @@ static void freeFileList(FileListRec *fileList, int count)
FREE(fileList);
}
-static int addFile(struct FileList *fl, const char *name, struct stat *statp)
+static int addFile(struct FileList *fl, const char *diskName, struct stat *statp)
{
- char fileName[BUFSIZ];
- char diskName[BUFSIZ];
+ const char *fileName = diskName;
struct stat statbuf;
mode_t fileMode;
uid_t fileUid;
@@ -919,25 +920,21 @@ static int addFile(struct FileList *fl, const char *name, struct stat *statp)
char *fileUname, *fileGname;
char *lang;
- strcpy(fileName, cleanFileName(name));
-
- if (fl->inFtw) {
- /* Any buildRoot is already prepended */
- strcpy(diskName, fileName);
- if (fl->buildRoot) {
- strcpy(fileName, diskName + strlen(fl->buildRoot));
- /* Special case for "/" */
- if (*fileName == '\0') {
- fileName[0] = '/';
- fileName[1] = '\0';
+ /* Path may have prepended buildroot, so locate the original filename. */
+ { const char *s;
+ char c;
+
+ if ((s = fl->buildRoot) != NULL) {
+ c = '\0';
+ while (*s) {
+ if (c == '/')
+ while(*s && *s == '/') s++;
+ if (*s) {
+ fileName++;
+ c = *s++;
+ }
}
}
- } else {
- if (fl->buildRoot) {
- sprintf(diskName, "%s%s", fl->buildRoot, fileName);
- } else {
- strcpy(diskName, fileName);
- }
}
/* If we are using a prefix, validate the file */
@@ -957,7 +954,7 @@ static int addFile(struct FileList *fl, const char *name, struct stat *statp)
}
}
- if (! statp) {
+ if (statp == NULL) {
statp = &statbuf;
if (lstat(diskName, statp)) {
rpmError(RPMERR_BADSPEC, _("File not found: %s"), diskName);
@@ -1017,7 +1014,7 @@ static int addFile(struct FileList *fl, const char *name, struct stat *statp)
}
#endif
- rpmMessage(RPMMESS_DEBUG, _("File %4d: 0%o %s.%s\t %s\n"), fl->fileCount,
+ rpmMessage(RPMMESS_DEBUG, _("File %4d: %07o %s.%s\t %s\n"), fl->fileCount,
fileMode, fileUname, fileGname, fileName);
/* Add to the file list */
@@ -1073,44 +1070,78 @@ static int addFile(struct FileList *fl, const char *name, struct stat *statp)
return 0;
}
-static int processBinaryFile(Package pkg, struct FileList *fl, const char *fileName)
+static int glob_error(/*@unused@*/const char *foo, /*@unused@*/int bar)
+{
+ return 1;
+}
+
+static int processBinaryFile(/*@unused@*/Package pkg, struct FileList *fl,
+ const char *fileName)
{
- char fullname[BUFSIZ];
- glob_t glob_result;
- int x, offset, rc = 0;
+ int doGlob = myGlobPatternP(fileName);
+ const char *fn;
+ int rc = 0;
- /* check that file starts with leading "/" */
+ /* Check that file starts with leading "/" */
if (*fileName != '/') {
rpmError(RPMERR_BADSPEC, _("File needs leading \"/\": %s"), fileName);
- fl->processingFailed = 1;
- return 1;
+ rc = 1;
+ goto exit;
}
- if (myGlobPatternP(fileName)) {
- if (fl->buildRoot) {
- sprintf(fullname, "%s%s", fl->buildRoot, fileName);
- offset = strlen(fl->buildRoot);
- } else {
- strcpy(fullname, fileName);
- offset = 0;
+ /* Copy file name or glob pattern removing multiple "/" chars. */
+ { const char *s;
+ char c, *t = alloca((fl->buildRoot ? strlen(fl->buildRoot) : 0) +
+ strlen(fileName) + 1);
+
+ fn = t;
+ *t = c = '\0';
+
+ /* With a buildroot, prepend the buildroot now. */
+ if ((s = fl->buildRoot) != NULL) {
+ while (*s) {
+ if (c == '/')
+ while(*s && *s == '/') s++;
+ if (*s)
+ *t++ = c = *s++;
+ }
+ while (t > fn && t[-1] == '/') t--;
+ *t = '\0';
}
+ if ((s = fileName) != NULL) {
+ while (*s) {
+ if (c == '/')
+ while(*s && *s == '/') s++;
+ if (*s)
+ *t++ = c = *s++;
+ }
+ while (t > fn && t[-1] == '/') t--;
+ *t = '\0';
+ }
+ }
+
+ if (doGlob) {
+ glob_t glob_result;
+ int i;
- if (glob(fullname, 0, glob_error, &glob_result) ||
+ glob_result.gl_pathc = 0;
+ glob_result.gl_pathv = NULL;
+ if (glob(fn, 0, glob_error, &glob_result) ||
(glob_result.gl_pathc < 1)) {
- rpmError(RPMERR_BADSPEC, _("File not found: %s"), fullname);
- fl->processingFailed = 1;
- globfree(&glob_result);
- return 1;
+ rpmError(RPMERR_BADSPEC, _("File not found by glob: %s"), fn);
+ rc = 1;
}
- for (x = 0; x < glob_result.gl_pathc; x++) {
- rc = addFile(fl, &(glob_result.gl_pathv[x][offset]), NULL);
- }
+ for (i = 0; rc == 0 && i < glob_result.gl_pathc; i++)
+ rc = addFile(fl, &(glob_result.gl_pathv[i][0]), NULL);
globfree(&glob_result);
} else {
- rc = addFile(fl, fileName, NULL);
+ rc = addFile(fl, fn, NULL);
}
+exit:
+ if (rc)
+ fl->processingFailed = 1;
return rc;
}
@@ -1122,16 +1153,17 @@ static int processPackageFiles(Spec spec, Package pkg,
const char *fileName;
char buf[BUFSIZ];
FILE *f;
- AttrRec specialDocAttrRec = empty_ar; /* structure assignment */
+ AttrRec specialDocAttrRec;
char *specialDoc = NULL;
+ nullAttrRec(&specialDocAttrRec);
pkg->cpioList = NULL;
pkg->cpioCount = 0;
if (pkg->fileFile) {
const char *ffn;
- /* XXX FIXME: add %{_buildsubdir} and use rpmGetPath() */
+ /* XXX FIXME: add %{_buildsubdir} */
ffn = rpmGetPath("%{_builddir}/",
(spec->buildSubdir ? spec->buildSubdir : "") ,
"/", pkg->fileFile, NULL);
@@ -1171,15 +1203,20 @@ static int processPackageFiles(Spec spec, Package pkg,
fl.processingFailed = 0;
fl.passedSpecialDoc = 0;
+ fl.isSpecialDoc = 0;
+
+ fl.isDir = 0;
+ fl.inFtw = 0;
+ fl.currentFlags = 0;
+ fl.currentVerifyFlags = 0;
- fl.cur_ar = empty_ar; /* structure assignment */
- fl.def_ar = empty_ar; /* structure assignment */
+ nullAttrRec(&fl.cur_ar);
+ nullAttrRec(&fl.def_ar);
+ fl.defVerifyFlags = RPMVERIFY_ALL;
fl.nLangs = 0;
fl.currentLangs = NULL;
- fl.defVerifyFlags = RPMVERIFY_ALL;
-
fl.docDirCount = 0;
fl.docDirs[fl.docDirCount++] = xstrdup("/usr/doc");
fl.docDirs[fl.docDirCount++] = xstrdup("/usr/man");
@@ -1207,8 +1244,8 @@ static int processPackageFiles(Spec spec, Package pkg,
/* Reset for a new line in %files */
fl.isDir = 0;
fl.inFtw = 0;
- fl.currentVerifyFlags = fl.defVerifyFlags;
fl.currentFlags = 0;
+ fl.currentVerifyFlags = fl.defVerifyFlags;
fl.isSpecialDoc = 0;
/* XXX should reset to %deflang value */
@@ -1501,7 +1538,9 @@ static StringBuf getOutputFrom(char *dir, char *argv[],
oldhandler = signal(SIGPIPE, SIG_IGN);
+ toProg[0] = toProg[1] = 0;
pipe(toProg);
+ fromProg[0] = fromProg[1] = 0;
pipe(fromProg);
if (!(progPID = fork())) {
@@ -1653,6 +1692,7 @@ static int generateDepends(Spec spec, Package pkg,
StringBuf readBuf;
DepMsg_t *dm;
char *myargv[4];
+ int failnonzero = 0;
int rc = 0;
if (cpioCount <= 0)
@@ -1670,7 +1710,7 @@ static int generateDepends(Spec spec, Package pkg,
}
for (dm = depMsgs; dm->msg != NULL; dm++) {
- int i, tag, failnonzero;
+ int i, tag;
tag = (dm->ftag > 0) ? dm->ftag : dm->ntag;
@@ -1687,14 +1727,16 @@ static int generateDepends(Spec spec, Package pkg,
break;
default:
continue;
- break;
+ /*@notreached@*/ break;
}
/* Get the script name to run */
myargv[0] = rpmExpand(dm->argv[0], NULL);
- if (!(myargv[0] && *myargv[0] != '%'))
+ if (!(myargv[0] && *myargv[0] != '%')) {
+ free(myargv[0]);
continue;
+ }
rpmMessage(RPMMESS_NORMAL, _("Finding %s: (using %s)...\n"),
dm->msg, myargv[0]);
@@ -1829,21 +1871,20 @@ static void printDeps(Header h)
int processBinaryFiles(Spec spec, int installSpecialDoc, int test)
{
Package pkg;
- int res, rc;
- char *name;
+ int res = 0;
- res = 0;
for (pkg = spec->packages; pkg != NULL; pkg = pkg->next) {
- if (pkg->fileList == NULL) {
+ const char *n, *v, *r;
+ int rc;
+
+ if (pkg->fileList == NULL)
continue;
- }
- headerGetEntry(pkg->header, RPMTAG_NAME, NULL, (void **)&name, NULL);
- rpmMessage(RPMMESS_NORMAL, _("Processing files: %s\n"), name);
+ headerNVR(pkg->header, &n, &v, &r);
+ rpmMessage(RPMMESS_NORMAL, _("Processing files: %s-%s-%s\n"), n, v, r);
- if ((rc = processPackageFiles(spec, pkg, installSpecialDoc, test))) {
+ if ((rc = processPackageFiles(spec, pkg, installSpecialDoc, test)))
res = rc;
- }
generateDepends(spec, pkg, pkg->cpioList, pkg->cpioCount);
printDeps(pkg->header);
diff --git a/build/rpmspec.h b/build/rpmspec.h
index a9b32ea9d..379aead8e 100644
--- a/build/rpmspec.h
+++ b/build/rpmspec.h
@@ -124,7 +124,7 @@ struct SpecStruct {
};
struct PackageStruct {
- /*@only@*/ Header header;
+ /*@refcounted@*/ Header header;
int cpioCount;
/*@only@*/ struct cpioFileMapping *cpioList;
diff --git a/po/cs.po b/po/cs.po
index 92c6002eb..40d9e5793 100644
--- a/po/cs.po
+++ b/po/cs.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"PO-Revision-Date: 1998-10-10 10:10+0200\n"
"Last-Translator: Pavel Makovec <pavelm@terminal.cz>\n"
"Language-Team: Czech <pavelm@terminal.cz>\n"
@@ -1518,35 +1518,35 @@ msgstr ""
#: build/files.c:1522
#, fuzzy, c-format
-msgid "Couldn't exec %s"
+msgid "Couldn't exec %s: %s"
msgstr "Nelze spustit pgp"
-#: build/files.c:1526
+#: build/files.c:1527
#, fuzzy, c-format
-msgid "Couldn't fork %s"
+msgid "Couldn't fork %s: %s"
msgstr "Nelze naèíst cílpodpisu"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "chyba pgp"
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "%s nelze vytvoøit\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "%s nelze vytvoøit\n"
-#: build/files.c:1840
+#: build/files.c:1842
#, fuzzy, c-format
msgid "Processing files: %s\n"
msgstr "soubor %s: %s\n"
diff --git a/po/de.po b/po/de.po
index 02f2ad3dc..55ae48d16 100644
--- a/po/de.po
+++ b/po/de.po
@@ -37,7 +37,7 @@
msgid ""
msgstr ""
"Project-Id-Version: rpm 2.5.2\n"
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"PO-Revision-Date: 1998-08-03 18:02+02:00\n"
"Last-Translator: Karl Eichwalder <ke@SuSE.DE>\n"
"Language-Team: German <de@li.org>\n"
@@ -1597,38 +1597,38 @@ msgstr ""
#: build/files.c:1522
#, fuzzy, c-format
-msgid "Couldn't exec %s"
+msgid "Couldn't exec %s: %s"
msgstr "Konnte pgp nicht durchführen"
-#: build/files.c:1526
+#: build/files.c:1527
#, fuzzy, c-format
-msgid "Couldn't fork %s"
+msgid "Couldn't fork %s: %s"
msgstr "Konnte Signatur-Ziel (»sigtarget«) nicht lesen"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "pgp fehlgeschlagen"
# , c-format
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "anlegen von %s fehlgeschlagen\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
# , c-format
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "anlegen von %s fehlgeschlagen\n"
# , c-format
-#: build/files.c:1840
+#: build/files.c:1842
#, fuzzy, c-format
msgid "Processing files: %s\n"
msgstr "Öffnen von %s fehlgeschlagen: %s"
diff --git a/po/fi.po b/po/fi.po
index 4c802f797..af497f05a 100644
--- a/po/fi.po
+++ b/po/fi.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"Last-Translator: Raimo Koski <rkoski@pp.weppi.fi>\n"
"Language-Team: Finnish <linux@sot.com>\n"
"Content-Type: text/plain; charset=\n"
@@ -1556,35 +1556,35 @@ msgstr ""
#: build/files.c:1522
#, fuzzy, c-format
-msgid "Couldn't exec %s"
+msgid "Couldn't exec %s: %s"
msgstr "En voinut ajaa pgp:tä"
-#: build/files.c:1526
+#: build/files.c:1527
#, fuzzy, c-format
-msgid "Couldn't fork %s"
+msgid "Couldn't fork %s: %s"
msgstr "En voinut ajaa pgp:tä"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "pgp epäonnistui"
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "%s:n luonti epäonnistui\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "%s:n luonti epäonnistui\n"
-#: build/files.c:1840
+#: build/files.c:1842
#, fuzzy, c-format
msgid "Processing files: %s\n"
msgstr "en voinut avata %s: %s"
diff --git a/po/fr.po b/po/fr.po
index 94d298820..371fca63d 100644
--- a/po/fr.po
+++ b/po/fr.po
@@ -1,5 +1,5 @@
msgid ""
-msgstr "POT-Creation-Date: 1999-09-30 13:16-0400\n"
+msgstr "POT-Creation-Date: 1999-10-01 10:51-0400\n"
#: build.c:23 lib/rpminstall.c:222 lib/rpminstall.c:382
#, c-format
@@ -1558,36 +1558,36 @@ msgid "Bad owner/group: %s"
msgstr ""
#: build/files.c:1522
-#, c-format
-msgid "Couldn't exec %s"
-msgstr ""
+#, fuzzy, c-format
+msgid "Couldn't exec %s: %s"
+msgstr "impossible d'ouvrir: %s\n"
-#: build/files.c:1526
-#, c-format
-msgid "Couldn't fork %s"
-msgstr ""
+#: build/files.c:1527
+#, fuzzy, c-format
+msgid "Couldn't fork %s: %s"
+msgstr "impossible d'ouvrir: %s\n"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "La construction a échoué.\n"
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "impossible d'ouvrir: %s\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "impossible d'ouvrir: %s\n"
-#: build/files.c:1840
+#: build/files.c:1842
#, c-format
msgid "Processing files: %s\n"
msgstr ""
diff --git a/po/pl.po b/po/pl.po
index 1cd8083c1..c589dd322 100644
--- a/po/pl.po
+++ b/po/pl.po
@@ -8,7 +8,7 @@
msgid ""
msgstr ""
"Project-Id-Version: rpm-3.0.2\n"
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"PO-Revision-Date: 1999-05-25 17:00+0100\n"
"Last-Translator: Pawe³ Dziekoñski <pdziekonski@mml.ch.pwr.wroc.pl>\n"
"Language-Team: Polish <pl@li.org>\n"
@@ -1476,36 +1476,36 @@ msgid "Bad owner/group: %s"
msgstr "B³êdny u¿ytkownik/grupa: %s"
#: build/files.c:1522
-#, c-format
-msgid "Couldn't exec %s"
+#, fuzzy, c-format
+msgid "Couldn't exec %s: %s"
msgstr "Nie mo¿na uruchomiæ %s"
-#: build/files.c:1526
-#, c-format
-msgid "Couldn't fork %s"
+#: build/files.c:1527
+#, fuzzy, c-format
+msgid "Couldn't fork %s: %s"
msgstr "Nie mo¿na wykonaæ fork na %s"
-#: build/files.c:1607
+#: build/files.c:1609
#, c-format
msgid "%s failed"
msgstr "%s nie powiod³o siê"
-#: build/files.c:1611
+#: build/files.c:1613
#, c-format
msgid "failed to write all data to %s"
msgstr "zapisanie wszystkich danych do %s nie powiod³o siê"
-#: build/files.c:1697
+#: build/files.c:1699
#, fuzzy, c-format
msgid "Finding %s: (using %s)...\n"
msgstr "Wyszukiwanie wymaganych zasobów...\n"
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "Wyszukiwanie nie powiod³o siê"
-#: build/files.c:1840
+#: build/files.c:1842
#, c-format
msgid "Processing files: %s\n"
msgstr "Przetwarzanie plików: %s\n"
diff --git a/po/pt_BR.po b/po/pt_BR.po
index 1bf22653f..d56052051 100644
--- a/po/pt_BR.po
+++ b/po/pt_BR.po
@@ -2,7 +2,7 @@
# Revised by Arnaldo Carvalho de Melo <acme@conectiva.com.br>, 1998.
#
msgid ""
-msgstr "POT-Creation-Date: 1999-09-30 13:16-0400\n"
+msgstr "POT-Creation-Date: 1999-10-01 10:51-0400\n"
#: build.c:23 lib/rpminstall.c:222 lib/rpminstall.c:382
#, c-format
@@ -1591,39 +1591,41 @@ msgstr ""
msgid "Bad owner/group: %s"
msgstr ""
+# , c-format
#: build/files.c:1522
-#, c-format
-msgid "Couldn't exec %s"
-msgstr ""
+#, fuzzy, c-format
+msgid "Couldn't exec %s: %s"
+msgstr "Não consegui ler o arquivo spec de %s\n"
-#: build/files.c:1526
-#, c-format
-msgid "Couldn't fork %s"
-msgstr ""
+# , c-format
+#: build/files.c:1527
+#, fuzzy, c-format
+msgid "Couldn't fork %s: %s"
+msgstr "Não consegui ler o arquivo spec de %s\n"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "Construção falhou.\n"
# , c-format
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "Não consegui abrir o pipe tar: %s\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
# , c-format
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "Não consegui abrir o pipe tar: %s\n"
-#: build/files.c:1840
+#: build/files.c:1842
#, c-format
msgid "Processing files: %s\n"
msgstr ""
diff --git a/po/rpm.pot b/po/rpm.pot
index 292b84d4d..42358dfb1 100644
--- a/po/rpm.pot
+++ b/po/rpm.pot
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-04 13:09-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1296,154 +1296,159 @@ msgstr ""
msgid "syntax error in expression"
msgstr ""
-#: build/files.c:224
+#: build/files.c:226
#, c-format
msgid "TIMECHECK failure: %s\n"
msgstr ""
-#: build/files.c:267 build/files.c:349 build/files.c:512
+#: build/files.c:269 build/files.c:351 build/files.c:514
#, c-format
msgid "Missing '(' in %s %s"
msgstr ""
-#: build/files.c:278 build/files.c:466 build/files.c:523
+#: build/files.c:280 build/files.c:468 build/files.c:525
#, c-format
msgid "Missing ')' in %s(%s"
msgstr ""
-#: build/files.c:316 build/files.c:491
+#: build/files.c:318 build/files.c:493
#, c-format
msgid "Invalid %s token: %s"
msgstr ""
-#: build/files.c:365
+#: build/files.c:367
#, c-format
msgid "Non-white space follows %s(): %s"
msgstr ""
-#: build/files.c:403
+#: build/files.c:405
#, c-format
msgid "Bad syntax: %s(%s)"
msgstr ""
-#: build/files.c:413
+#: build/files.c:415
#, c-format
msgid "Bad mode spec: %s(%s)"
msgstr ""
-#: build/files.c:425
+#: build/files.c:427
#, c-format
msgid "Bad dirmode spec: %s(%s)"
msgstr ""
-#: build/files.c:549
+#: build/files.c:551
msgid "Unusual locale length: \"%.*s\" in %%lang(%s)"
msgstr ""
-#: build/files.c:559
+#: build/files.c:561
msgid "Duplicate locale %.*s in %%lang(%s)"
msgstr ""
-#: build/files.c:651
+#: build/files.c:653
msgid "Hit limit for %%docdir"
msgstr ""
-#: build/files.c:657
+#: build/files.c:659
msgid "Only one arg for %%docdir"
msgstr ""
#. We already got a file -- error
-#: build/files.c:682
+#: build/files.c:684
#, c-format
msgid "Two files on one line: %s"
msgstr ""
-#: build/files.c:695
+#: build/files.c:697
#, c-format
msgid "File must begin with \"/\": %s"
msgstr ""
-#: build/files.c:707
+#: build/files.c:709
msgid "Can't mix special %%doc with other forms: %s"
msgstr ""
-#: build/files.c:793
+#: build/files.c:795
#, c-format
msgid "File listed twice: %s"
msgstr ""
-#: build/files.c:953
+#: build/files.c:950
#, c-format
msgid "File doesn't match prefix (%s): %s"
msgstr ""
-#: build/files.c:963 build/files.c:1100
+#: build/files.c:960
#, c-format
msgid "File not found: %s"
msgstr ""
-#: build/files.c:1006
+#: build/files.c:1003
#, c-format
msgid "Bad owner/group: %s\n"
msgstr ""
-#: build/files.c:1020
+#: build/files.c:1017
#, c-format
-msgid "File %4d: 0%o %s.%s\t %s\n"
+msgid "File %4d: %07o %s.%s\t %s\n"
msgstr ""
-#: build/files.c:1084
+#: build/files.c:1087
#, c-format
msgid "File needs leading \"/\": %s"
msgstr ""
-#: build/files.c:1141
+#: build/files.c:1131
+#, c-format
+msgid "File not found by glob: %s"
+msgstr ""
+
+#: build/files.c:1173
msgid "Could not open %%files file: %s"
msgstr ""
-#: build/files.c:1148 build/pack.c:484
+#: build/files.c:1180 build/pack.c:484
#, c-format
msgid "line: %s"
msgstr ""
-#: build/files.c:1470 build/parsePrep.c:29
+#: build/files.c:1507 build/parsePrep.c:29
#, c-format
msgid "Bad owner/group: %s"
msgstr ""
-#: build/files.c:1522
+#: build/files.c:1561
#, c-format
-msgid "Couldn't exec %s"
+msgid "Couldn't exec %s: %s"
msgstr ""
-#: build/files.c:1526
+#: build/files.c:1566
#, c-format
-msgid "Couldn't fork %s"
+msgid "Couldn't fork %s: %s"
msgstr ""
-#: build/files.c:1607
+#: build/files.c:1648
#, c-format
msgid "%s failed"
msgstr ""
-#: build/files.c:1611
+#: build/files.c:1652
#, c-format
msgid "failed to write all data to %s"
msgstr ""
-#: build/files.c:1697
+#: build/files.c:1741
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1769 build/files.c:1778
#, c-format
msgid "Failed to find %s:"
msgstr ""
-#: build/files.c:1840
+#: build/files.c:1884
#, c-format
-msgid "Processing files: %s\n"
+msgid "Processing files: %s-%s-%s\n"
msgstr ""
#: build/names.c:32 build/names.c:64
diff --git a/po/ru.po b/po/ru.po
index 548a0f7f2..5aae845cf 100644
--- a/po/ru.po
+++ b/po/ru.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=koi8-r\n"
"Content-Transfer-Encoding: 8bit\n"
@@ -1484,36 +1484,36 @@ msgid "Bad owner/group: %s"
msgstr "îÅ×ÅÒÎÁÑ ÐÁÒÁ ÈÏÚÑÉÎ/ÇÒÕÐÐÁ: %s"
#: build/files.c:1522
-#, c-format
-msgid "Couldn't exec %s"
+#, fuzzy, c-format
+msgid "Couldn't exec %s: %s"
msgstr "îÅ ÍÏÇÕ ÉÓÐÏÌÎÉÔØ %s"
-#: build/files.c:1526
-#, c-format
-msgid "Couldn't fork %s"
+#: build/files.c:1527
+#, fuzzy, c-format
+msgid "Couldn't fork %s: %s"
msgstr "îÅ ÍÏÇÕ ÆÏÒËÎÕÔØ %s"
-#: build/files.c:1607
+#: build/files.c:1609
#, c-format
msgid "%s failed"
msgstr "%s ÎÅ ÕÄÁÌÏÓØ"
-#: build/files.c:1611
+#: build/files.c:1613
#, c-format
msgid "failed to write all data to %s"
msgstr "ÚÁÐÉÓØ ×ÓÅÈ ÄÁÎÎÙÈ × %s ÎÅ ÕÄÁÌÁÓØ"
-#: build/files.c:1697
+#: build/files.c:1699
#, fuzzy, c-format
msgid "Finding %s: (using %s)...\n"
msgstr "ïÐÒÅÄÅÌÑÀ ÔÒÅÂÏ×ÁÎÉÑ ÐÁËÅÔÁ...\n"
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "ïÛÉÂËÁ ÏÐÒÅÄÅÌÅÎÉÑ ÓÅÒ×ÉÓÏ×, ÐÒÅÄÏÓÔÁ×ÌÑÅÍÙÈ ÐÁËÅÔÏÍ"
-#: build/files.c:1840
+#: build/files.c:1842
#, c-format
msgid "Processing files: %s\n"
msgstr "ïÂÒÁÂÁÔÙ×ÁÀ ÆÁÊÌÙ: %s\n"
diff --git a/po/sk.po b/po/sk.po
index f23e35ee7..896fe9510 100644
--- a/po/sk.po
+++ b/po/sk.po
@@ -1,7 +1,7 @@
msgid ""
msgstr ""
"Project-Id-Version: rpm 2.93\n"
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"PO-Revision-Date: 1999-04-08 21:37+02:00\n"
"Last-Translator: Stanislav Meduna <stano@eunet.sk>\n"
"Language-Team: Slovak <sk-i18n@rak.isternet.sk>\n"
@@ -1488,36 +1488,36 @@ msgid "Bad owner/group: %s"
msgstr "Chybný vlastník/skupina: %s"
#: build/files.c:1522
-#, c-format
-msgid "Couldn't exec %s"
+#, fuzzy, c-format
+msgid "Couldn't exec %s: %s"
msgstr "Nie je mo¾né spusti» %s"
-#: build/files.c:1526
-#, c-format
-msgid "Couldn't fork %s"
+#: build/files.c:1527
+#, fuzzy, c-format
+msgid "Couldn't fork %s: %s"
msgstr "Nie je mo¾né vytvori» proces %s"
-#: build/files.c:1607
+#: build/files.c:1609
#, c-format
msgid "%s failed"
msgstr "%s zlyhalo"
-#: build/files.c:1611
+#: build/files.c:1613
#, c-format
msgid "failed to write all data to %s"
msgstr "nepodarilo sa zapísa» v¹etky dáta do %s"
-#: build/files.c:1697
+#: build/files.c:1699
#, fuzzy, c-format
msgid "Finding %s: (using %s)...\n"
msgstr "Zis»ujú sa po¾adované vlastnosti...\n"
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "Nepodarilo sa zisti» poskytované vlastnosti"
-#: build/files.c:1840
+#: build/files.c:1842
#, c-format
msgid "Processing files: %s\n"
msgstr "Spracovávajú sa súbory: %s\n"
diff --git a/po/sr.po b/po/sr.po
index fea9d43cc..e5cca0799 100644
--- a/po/sr.po
+++ b/po/sr.po
@@ -1,6 +1,6 @@
msgid ""
msgstr ""
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"Content-Type: text/plain; charset=\n"
"Date: 1998-05-02 21:41:47-0400\n"
"From: Erik Troan <ewt@lacrosse.redhat.com>\n"
@@ -1517,35 +1517,35 @@ msgstr ""
#: build/files.c:1522
#, fuzzy, c-format
-msgid "Couldn't exec %s"
+msgid "Couldn't exec %s: %s"
msgstr "Ne mogu da izvr¹im PGP"
-#: build/files.c:1526
+#: build/files.c:1527
#, fuzzy, c-format
-msgid "Couldn't fork %s"
+msgid "Couldn't fork %s: %s"
msgstr "Ne mogu da proèitam 'sigtarget'"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "PGP omanuo"
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "neuspelo kreiranje %s\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "neuspelo kreiranje %s\n"
-#: build/files.c:1840
+#: build/files.c:1842
#, fuzzy, c-format
msgid "Processing files: %s\n"
msgstr "neuspelo otvaranje %s: %s"
diff --git a/po/sv.po b/po/sv.po
index 14aa7939b..ba65aa5c1 100644
--- a/po/sv.po
+++ b/po/sv.po
@@ -1,5 +1,5 @@
msgid ""
-msgstr "POT-Creation-Date: 1999-09-30 13:16-0400\n"
+msgstr "POT-Creation-Date: 1999-10-01 10:51-0400\n"
#: build.c:23 lib/rpminstall.c:222 lib/rpminstall.c:382
#, c-format
@@ -1572,36 +1572,36 @@ msgid "Bad owner/group: %s"
msgstr ""
#: build/files.c:1522
-#, c-format
-msgid "Couldn't exec %s"
-msgstr ""
+#, fuzzy, c-format
+msgid "Couldn't exec %s: %s"
+msgstr "kan inte öppna: %s\n"
-#: build/files.c:1526
-#, c-format
-msgid "Couldn't fork %s"
-msgstr ""
+#: build/files.c:1527
+#, fuzzy, c-format
+msgid "Couldn't fork %s: %s"
+msgstr "kan inte öppna: %s\n"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "Tillverkningen misslyckades.\n"
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "kan inte öppna: %s\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "kan inte öppna: %s\n"
-#: build/files.c:1840
+#: build/files.c:1842
#, c-format
msgid "Processing files: %s\n"
msgstr ""
diff --git a/po/tr.po b/po/tr.po
index 968b312a5..971782619 100644
--- a/po/tr.po
+++ b/po/tr.po
@@ -6,7 +6,7 @@
msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\n"
-"POT-Creation-Date: 1999-09-30 13:16-0400\n"
+"POT-Creation-Date: 1999-10-01 10:51-0400\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -1553,35 +1553,35 @@ msgstr ""
#: build/files.c:1522
#, fuzzy, c-format
-msgid "Couldn't exec %s"
+msgid "Couldn't exec %s: %s"
msgstr "PGP çalýþtýrýlamadý"
-#: build/files.c:1526
+#: build/files.c:1527
#, fuzzy, c-format
-msgid "Couldn't fork %s"
+msgid "Couldn't fork %s: %s"
msgstr "Ýmza hedefi 'sigtarget' okunamadý"
-#: build/files.c:1607
+#: build/files.c:1609
#, fuzzy, c-format
msgid "%s failed"
msgstr "PGP hata verdi"
-#: build/files.c:1611
+#: build/files.c:1613
#, fuzzy, c-format
msgid "failed to write all data to %s"
msgstr "%s yaratýlamýyor\n"
-#: build/files.c:1697
+#: build/files.c:1699
#, c-format
msgid "Finding %s: (using %s)...\n"
msgstr ""
-#: build/files.c:1725 build/files.c:1734
+#: build/files.c:1727 build/files.c:1736
#, fuzzy, c-format
msgid "Failed to find %s:"
msgstr "%s yaratýlamýyor\n"
-#: build/files.c:1840
+#: build/files.c:1842
#, fuzzy, c-format
msgid "Processing files: %s\n"
msgstr "%s açýlamadý: %s"