Add dup for the "other" gzdopen premature close.
CVS patchset: 2556 CVS date: 1998/11/25 00:42:36
This commit is contained in:
parent
4551a1256f
commit
b2fd4c2d88
150
build/files.c
150
build/files.c
|
@ -13,30 +13,33 @@
|
||||||
#define MAXDOCDIR 1024
|
#define MAXDOCDIR 1024
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
|
struct stat fl_st;
|
||||||
|
#define fl_dev fl_st.st_dev
|
||||||
|
#define fl_ino fl_st.st_ino
|
||||||
|
#define fl_mode fl_st.st_mode
|
||||||
|
#define fl_nlink fl_st.st_nlink /* unused */
|
||||||
|
#define fl_uid fl_st.st_uid
|
||||||
|
#define fl_gid fl_st.st_gid
|
||||||
|
#define fl_rdev fl_st.st_rdev
|
||||||
|
#define fl_size fl_st.st_size
|
||||||
|
#define fl_mtime fl_st.st_mtime
|
||||||
|
|
||||||
const char *diskName; /* get file from here */
|
const char *diskName; /* get file from here */
|
||||||
const char *fileName; /* filename in cpio archive */
|
const char *fileName; /* filename in cpio archive */
|
||||||
mode_t mode;
|
|
||||||
uid_t uid;
|
|
||||||
gid_t gid;
|
|
||||||
dev_t device;
|
|
||||||
ino_t inode;
|
|
||||||
const char *uname;
|
const char *uname;
|
||||||
const char *gname;
|
const char *gname;
|
||||||
int flags;
|
int flags;
|
||||||
int verifyFlags;
|
int verifyFlags;
|
||||||
int size;
|
|
||||||
int mtime;
|
|
||||||
dev_t rdev;
|
|
||||||
const char *lang;
|
const char *lang;
|
||||||
} FileListRec;
|
} FileListRec;
|
||||||
|
|
||||||
struct AttrRec {
|
struct AttrRec {
|
||||||
const char *PmodeString;
|
const char *PmodeString;
|
||||||
int Pmode;
|
|
||||||
const char *PdirmodeString;
|
const char *PdirmodeString;
|
||||||
int Pdirmode;
|
|
||||||
const char *Uname;
|
const char *Uname;
|
||||||
const char *Gname;
|
const char *Gname;
|
||||||
|
mode_t Pmode;
|
||||||
|
mode_t Pdirmode;
|
||||||
};
|
};
|
||||||
|
|
||||||
struct FileList {
|
struct FileList {
|
||||||
|
@ -61,7 +64,7 @@ struct FileList {
|
||||||
|
|
||||||
/* Hard coded limit of MAXDOCDIR docdirs. */
|
/* Hard coded limit of MAXDOCDIR docdirs. */
|
||||||
/* If you break it you are doing something wrong. */
|
/* If you break it you are doing something wrong. */
|
||||||
char *docDirs[MAXDOCDIR];
|
const char *docDirs[MAXDOCDIR];
|
||||||
int docDirCount;
|
int docDirCount;
|
||||||
|
|
||||||
FileListRec *fileList;
|
FileListRec *fileList;
|
||||||
|
@ -75,16 +78,16 @@ static int processPackageFiles(Spec spec, Package pkg,
|
||||||
static void freeFileList(FileListRec *fileList, int count);
|
static void freeFileList(FileListRec *fileList, int count);
|
||||||
static int compareFileListRecs(const void *ap, const void *bp);
|
static int compareFileListRecs(const void *ap, const void *bp);
|
||||||
static int isDoc(struct FileList *fl, const char *fileName);
|
static int isDoc(struct FileList *fl, const char *fileName);
|
||||||
static int processBinaryFile(Package pkg, struct FileList *fl, char *fileName);
|
static int processBinaryFile(Package pkg, struct FileList *fl, const char *fileName);
|
||||||
static int addFile(struct FileList *fl, char *name, struct stat *statp);
|
static int addFile(struct FileList *fl, const char *name, struct stat *statp);
|
||||||
static int parseForSimple(Spec spec, Package pkg, char *buf,
|
static int parseForSimple(Spec spec, Package pkg, char *buf,
|
||||||
struct FileList *fl, char **fileName);
|
struct FileList *fl, const char **fileName);
|
||||||
static int parseForVerify(char *buf, struct FileList *fl);
|
static int parseForVerify(char *buf, struct FileList *fl);
|
||||||
static int parseForLang(char *buf, struct FileList *fl);
|
static int parseForLang(char *buf, struct FileList *fl);
|
||||||
static int parseForAttr(char *buf, struct FileList *fl);
|
static int parseForAttr(char *buf, struct FileList *fl);
|
||||||
static int parseForConfig(char *buf, struct FileList *fl);
|
static int parseForConfig(char *buf, struct FileList *fl);
|
||||||
static int parseForRegexLang(char *fileName, char **lang);
|
static int parseForRegexLang(const char *fileName, char **lang);
|
||||||
static int myGlobPatternP(char *pattern);
|
static int myGlobPatternP(const char *pattern);
|
||||||
static int glob_error(const char *foo, int bar);
|
static int glob_error(const char *foo, int bar);
|
||||||
static void timeCheck(int tc, Header h);
|
static void timeCheck(int tc, Header h);
|
||||||
static void genCpioListAndHeader(struct FileList *fl,
|
static void genCpioListAndHeader(struct FileList *fl,
|
||||||
|
@ -98,9 +101,9 @@ static char *strtokWithQuotes(char *s, char *delim);
|
||||||
*
|
*
|
||||||
* Return nonzero if PATTERN has any special globbing chars in it.
|
* Return nonzero if PATTERN has any special globbing chars in it.
|
||||||
*/
|
*/
|
||||||
static int myGlobPatternP (char *pattern)
|
static int myGlobPatternP (const char *pattern)
|
||||||
{
|
{
|
||||||
register char *p = pattern;
|
register const char *p = pattern;
|
||||||
register char c;
|
register char c;
|
||||||
int open = 0;
|
int open = 0;
|
||||||
|
|
||||||
|
@ -523,7 +526,7 @@ static int parseForLang(char *buf, struct FileList *fl)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int parseForRegexLang(char *fileName, char **lang)
|
static int parseForRegexLang(const char *fileName, char **lang)
|
||||||
{
|
{
|
||||||
static int initialized = 0;
|
static int initialized = 0;
|
||||||
static int hasRegex = 0;
|
static int hasRegex = 0;
|
||||||
|
@ -531,7 +534,8 @@ static int parseForRegexLang(char *fileName, char **lang)
|
||||||
static char buf[BUFSIZ];
|
static char buf[BUFSIZ];
|
||||||
int x;
|
int x;
|
||||||
regmatch_t matches[2];
|
regmatch_t matches[2];
|
||||||
char *patt, *s;
|
const char *patt;
|
||||||
|
const char *s;
|
||||||
|
|
||||||
if (! initialized) {
|
if (! initialized) {
|
||||||
initialized = 1;
|
initialized = 1;
|
||||||
|
@ -545,11 +549,9 @@ static int parseForRegexLang(char *fileName, char **lang)
|
||||||
hasRegex = 1;
|
hasRegex = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (! hasRegex) {
|
if (! hasRegex || regexec(&compiledPatt, fileName, 2, matches, REG_NOTEOL))
|
||||||
return 1;
|
return 1;
|
||||||
}
|
|
||||||
|
|
||||||
if (! regexec(&compiledPatt, fileName, 2, matches, REG_NOTEOL)) {
|
|
||||||
/* Got match */
|
/* Got match */
|
||||||
s = fileName + matches[1].rm_eo - 1;
|
s = fileName + matches[1].rm_eo - 1;
|
||||||
x = matches[1].rm_eo - matches[1].rm_so;
|
x = matches[1].rm_eo - matches[1].rm_so;
|
||||||
|
@ -557,13 +559,11 @@ static int parseForRegexLang(char *fileName, char **lang)
|
||||||
while (x) {
|
while (x) {
|
||||||
buf[--x] = *s--;
|
buf[--x] = *s--;
|
||||||
}
|
}
|
||||||
|
if (lang)
|
||||||
*lang = buf;
|
*lang = buf;
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
typedef struct VFA {
|
typedef struct VFA {
|
||||||
char * attribute;
|
char * attribute;
|
||||||
int flag;
|
int flag;
|
||||||
|
@ -588,7 +588,7 @@ VFA_t virtualFileAttributes[] = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static int parseForSimple(Spec spec, Package pkg, char *buf,
|
static int parseForSimple(Spec spec, Package pkg, char *buf,
|
||||||
struct FileList *fl, char **fileName)
|
struct FileList *fl, const char **fileName)
|
||||||
{
|
{
|
||||||
char *s, *t;
|
char *s, *t;
|
||||||
int res, specialDoc = 0;
|
int res, specialDoc = 0;
|
||||||
|
@ -635,8 +635,7 @@ static int parseForSimple(Spec spec, Package pkg, char *buf,
|
||||||
|
|
||||||
if (*fileName) {
|
if (*fileName) {
|
||||||
/* We already got a file -- error */
|
/* We already got a file -- error */
|
||||||
rpmError(RPMERR_BADSPEC,
|
rpmError(RPMERR_BADSPEC, _("Two files on one line: %s"), *fileName);
|
||||||
_("Two files on one line: %s"), *fileName);
|
|
||||||
fl->processingFailed = 1;
|
fl->processingFailed = 1;
|
||||||
res = 1;
|
res = 1;
|
||||||
}
|
}
|
||||||
|
@ -694,11 +693,8 @@ static int parseForSimple(Spec spec, Package pkg, char *buf,
|
||||||
|
|
||||||
static int compareFileListRecs(const void *ap, const void *bp)
|
static int compareFileListRecs(const void *ap, const void *bp)
|
||||||
{
|
{
|
||||||
const char *a, *b;
|
const char *a = ((FileListRec *)ap)->fileName;
|
||||||
|
const char *b = ((FileListRec *)bp)->fileName;
|
||||||
a = ((FileListRec *)ap)->fileName;
|
|
||||||
b = ((FileListRec *)bp)->fileName;
|
|
||||||
|
|
||||||
return strcmp(a, b);
|
return strcmp(a, b);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -749,9 +745,9 @@ static void genCpioListAndHeader(struct FileList *fl,
|
||||||
if (! (flp->flags & RPMFILE_GHOST)) {
|
if (! (flp->flags & RPMFILE_GHOST)) {
|
||||||
clp->fsPath = strdup(flp->diskName);
|
clp->fsPath = strdup(flp->diskName);
|
||||||
clp->archivePath = strdup(flp->fileName + skipLen);
|
clp->archivePath = strdup(flp->fileName + skipLen);
|
||||||
clp->finalMode = flp->mode;
|
clp->finalMode = flp->fl_mode;
|
||||||
clp->finalUid = flp->uid;
|
clp->finalUid = flp->fl_uid;
|
||||||
clp->finalGid = flp->gid;
|
clp->finalGid = flp->fl_gid;
|
||||||
clp->mapFlags = CPIO_MAP_PATH | CPIO_MAP_MODE |
|
clp->mapFlags = CPIO_MAP_PATH | CPIO_MAP_MODE |
|
||||||
CPIO_MAP_UID | CPIO_MAP_GID;
|
CPIO_MAP_UID | CPIO_MAP_GID;
|
||||||
if (isSrc) {
|
if (isSrc) {
|
||||||
|
@ -765,58 +761,58 @@ static void genCpioListAndHeader(struct FileList *fl,
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILENAMES, RPM_STRING_ARRAY_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILENAMES, RPM_STRING_ARRAY_TYPE,
|
||||||
&(flp->fileName), 1);
|
&(flp->fileName), 1);
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILESIZES, RPM_INT32_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILESIZES, RPM_INT32_TYPE,
|
||||||
&(flp->size), 1);
|
&(flp->fl_size), 1);
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEUSERNAME, RPM_STRING_ARRAY_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEUSERNAME, RPM_STRING_ARRAY_TYPE,
|
||||||
&(flp->uname), 1);
|
&(flp->uname), 1);
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEGROUPNAME, RPM_STRING_ARRAY_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEGROUPNAME, RPM_STRING_ARRAY_TYPE,
|
||||||
&(flp->gname), 1);
|
&(flp->gname), 1);
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEMTIMES, RPM_INT32_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEMTIMES, RPM_INT32_TYPE,
|
||||||
&(flp->mtime), 1);
|
&(flp->fl_mtime), 1);
|
||||||
if (sizeof(flp->mode) != sizeof(uint_16)) {
|
if (sizeof(flp->fl_mode) != sizeof(uint_16)) {
|
||||||
uint_16 pmode = (uint_16)flp->mode;
|
uint_16 pmode = (uint_16)flp->fl_mode;
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEMODES, RPM_INT16_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEMODES, RPM_INT16_TYPE,
|
||||||
&(pmode), 1);
|
&(pmode), 1);
|
||||||
} else {
|
} else {
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEMODES, RPM_INT16_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEMODES, RPM_INT16_TYPE,
|
||||||
&(flp->mode), 1);
|
&(flp->fl_mode), 1);
|
||||||
}
|
}
|
||||||
if (sizeof(flp->rdev) != sizeof(uint_16)) {
|
if (sizeof(flp->fl_rdev) != sizeof(uint_16)) {
|
||||||
uint_16 prdev = (uint_16)flp->rdev;
|
uint_16 prdev = (uint_16)flp->fl_rdev;
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILERDEVS, RPM_INT16_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILERDEVS, RPM_INT16_TYPE,
|
||||||
&(prdev), 1);
|
&(prdev), 1);
|
||||||
} else {
|
} else {
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILERDEVS, RPM_INT16_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILERDEVS, RPM_INT16_TYPE,
|
||||||
&(flp->rdev), 1);
|
&(flp->fl_rdev), 1);
|
||||||
}
|
}
|
||||||
if (sizeof(flp->device) != sizeof(uint_32)) {
|
if (sizeof(flp->fl_dev) != sizeof(uint_32)) {
|
||||||
uint_32 pdevice = (uint_32)flp->device;
|
uint_32 pdevice = (uint_32)flp->fl_dev;
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEDEVICES, RPM_INT32_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEDEVICES, RPM_INT32_TYPE,
|
||||||
&(pdevice), 1);
|
&(pdevice), 1);
|
||||||
} else {
|
} else {
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEDEVICES, RPM_INT32_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEDEVICES, RPM_INT32_TYPE,
|
||||||
&(flp->device), 1);
|
&(flp->fl_dev), 1);
|
||||||
}
|
}
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEINODES, RPM_INT32_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEINODES, RPM_INT32_TYPE,
|
||||||
&(flp->inode), 1);
|
&(flp->fl_ino), 1);
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILELANGS, RPM_STRING_ARRAY_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILELANGS, RPM_STRING_ARRAY_TYPE,
|
||||||
&(flp->lang), 1);
|
&(flp->lang), 1);
|
||||||
|
|
||||||
/* We used to add these, but they should not be needed */
|
/* We used to add these, but they should not be needed */
|
||||||
/* headerAddOrAppendEntry(h, RPMTAG_FILEUIDS,
|
/* headerAddOrAppendEntry(h, RPMTAG_FILEUIDS,
|
||||||
* RPM_INT32_TYPE, &(flp->uid), 1);
|
* RPM_INT32_TYPE, &(flp->fl_uid), 1);
|
||||||
* headerAddOrAppendEntry(h, RPMTAG_FILEGIDS,
|
* headerAddOrAppendEntry(h, RPMTAG_FILEGIDS,
|
||||||
* RPM_INT32_TYPE, &(flp->gid), 1);
|
* RPM_INT32_TYPE, &(flp->fl_gid), 1);
|
||||||
*/
|
*/
|
||||||
|
|
||||||
buf[0] = '\0';
|
buf[0] = '\0';
|
||||||
if (S_ISREG(flp->mode))
|
if (S_ISREG(flp->fl_mode))
|
||||||
mdfile(flp->diskName, buf);
|
mdfile(flp->diskName, buf);
|
||||||
s = buf;
|
s = buf;
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEMD5S, RPM_STRING_ARRAY_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEMD5S, RPM_STRING_ARRAY_TYPE,
|
||||||
&s, 1);
|
&s, 1);
|
||||||
|
|
||||||
buf[0] = '\0';
|
buf[0] = '\0';
|
||||||
if (S_ISLNK(flp->mode))
|
if (S_ISLNK(flp->fl_mode))
|
||||||
buf[readlink(flp->diskName, buf, BUFSIZ)] = '\0';
|
buf[readlink(flp->diskName, buf, BUFSIZ)] = '\0';
|
||||||
s = buf;
|
s = buf;
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILELINKTOS, RPM_STRING_ARRAY_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILELINKTOS, RPM_STRING_ARRAY_TYPE,
|
||||||
|
@ -831,7 +827,7 @@ static void genCpioListAndHeader(struct FileList *fl,
|
||||||
|
|
||||||
if (!isSrc && isDoc(fl, flp->fileName))
|
if (!isSrc && isDoc(fl, flp->fileName))
|
||||||
flp->flags |= RPMFILE_DOC;
|
flp->flags |= RPMFILE_DOC;
|
||||||
if (S_ISDIR(flp->mode))
|
if (S_ISDIR(flp->fl_mode))
|
||||||
flp->flags &= ~(RPMFILE_CONFIG|RPMFILE_DOC);
|
flp->flags &= ~(RPMFILE_CONFIG|RPMFILE_DOC);
|
||||||
|
|
||||||
headerAddOrAppendEntry(h, RPMTAG_FILEFLAGS, RPM_INT32_TYPE,
|
headerAddOrAppendEntry(h, RPMTAG_FILEFLAGS, RPM_INT32_TYPE,
|
||||||
|
@ -851,14 +847,15 @@ static void freeFileList(FileListRec *fileList, int count)
|
||||||
FREE(fileList);
|
FREE(fileList);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int addFile(struct FileList *fl, char *name, struct stat *statp)
|
static int addFile(struct FileList *fl, const char *name, struct stat *statp)
|
||||||
{
|
{
|
||||||
FileListRec *flp;
|
FileListRec *flp;
|
||||||
char fileName[BUFSIZ];
|
char fileName[BUFSIZ];
|
||||||
char diskName[BUFSIZ];
|
char diskName[BUFSIZ];
|
||||||
struct stat statbuf;
|
struct stat statbuf;
|
||||||
int_16 fileMode;
|
mode_t fileMode;
|
||||||
int fileUid, fileGid;
|
uid_t fileUid;
|
||||||
|
gid_t fileGid;
|
||||||
char *fileUname, *fileGname;
|
char *fileUname, *fileGname;
|
||||||
char *lang;
|
char *lang;
|
||||||
|
|
||||||
|
@ -966,11 +963,13 @@ static int addFile(struct FileList *fl, char *name, struct stat *statp)
|
||||||
|
|
||||||
flp = &fl->fileList[fl->fileListRecsUsed];
|
flp = &fl->fileList[fl->fileListRecsUsed];
|
||||||
|
|
||||||
|
flp->fl_st = *statp; /* structure assignment */
|
||||||
|
flp->fl_mode = fileMode;
|
||||||
|
flp->fl_uid = fileUid;
|
||||||
|
flp->fl_gid = fileGid;
|
||||||
|
|
||||||
flp->fileName = strdup(fileName);
|
flp->fileName = strdup(fileName);
|
||||||
flp->diskName = strdup(diskName);
|
flp->diskName = strdup(diskName);
|
||||||
flp->mode = fileMode;
|
|
||||||
flp->uid = fileUid;
|
|
||||||
flp->gid = fileGid;
|
|
||||||
flp->uname = fileUname;
|
flp->uname = fileUname;
|
||||||
flp->gname = fileGname;
|
flp->gname = fileGname;
|
||||||
|
|
||||||
|
@ -985,21 +984,15 @@ static int addFile(struct FileList *fl, char *name, struct stat *statp)
|
||||||
flp->flags = fl->currentFlags;
|
flp->flags = fl->currentFlags;
|
||||||
flp->verifyFlags = fl->currentVerifyFlags;
|
flp->verifyFlags = fl->currentVerifyFlags;
|
||||||
|
|
||||||
flp->size = statp->st_size;
|
fl->totalFileSize += flp->fl_size;
|
||||||
flp->mtime = statp->st_mtime;
|
|
||||||
flp->rdev = statp->st_rdev;
|
|
||||||
flp->device = statp->st_dev;
|
|
||||||
flp->inode = statp->st_ino;
|
|
||||||
|
|
||||||
fl->fileListRecsUsed++;
|
fl->fileListRecsUsed++;
|
||||||
|
|
||||||
fl->totalFileSize += flp->size;
|
|
||||||
fl->fileCount++;
|
fl->fileCount++;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int processBinaryFile(Package pkg, struct FileList *fl, char *fileName)
|
static int processBinaryFile(Package pkg, struct FileList *fl, const char *fileName)
|
||||||
{
|
{
|
||||||
char fullname[BUFSIZ];
|
char fullname[BUFSIZ];
|
||||||
glob_t glob_result;
|
glob_t glob_result;
|
||||||
|
@ -1044,7 +1037,8 @@ static int processPackageFiles(Spec spec, Package pkg,
|
||||||
int installSpecialDoc, int test)
|
int installSpecialDoc, int test)
|
||||||
{
|
{
|
||||||
struct FileList fl;
|
struct FileList fl;
|
||||||
char *s, **files, **fp, *fileName;
|
char *s, **files, **fp;
|
||||||
|
const char *fileName;
|
||||||
char buf[BUFSIZ];
|
char buf[BUFSIZ];
|
||||||
FILE *f;
|
FILE *f;
|
||||||
|
|
||||||
|
@ -1370,23 +1364,13 @@ int processSourceFiles(Spec spec)
|
||||||
flp->fileName = strdup(fn);
|
flp->fileName = strdup(fn);
|
||||||
flp->verifyFlags = RPMVERIFY_ALL;
|
flp->verifyFlags = RPMVERIFY_ALL;
|
||||||
|
|
||||||
{ struct stat sb;
|
stat(s, &flp->fl_st);
|
||||||
stat(s, &sb);
|
|
||||||
flp->mode = sb.st_mode;
|
|
||||||
flp->uid = sb.st_uid;
|
|
||||||
flp->gid = sb.st_gid;
|
|
||||||
flp->size = sb.st_size;
|
|
||||||
flp->mtime = sb.st_mtime;
|
|
||||||
flp->rdev = sb.st_rdev;
|
|
||||||
flp->device = sb.st_dev;
|
|
||||||
flp->inode = sb.st_ino;
|
|
||||||
}
|
|
||||||
|
|
||||||
flp->uname = getUname(flp->uid);
|
flp->uname = getUname(flp->fl_uid);
|
||||||
flp->gname = getGname(flp->gid);
|
flp->gname = getGname(flp->fl_gid);
|
||||||
flp->lang = strdup("");
|
flp->lang = strdup("");
|
||||||
|
|
||||||
fl.totalFileSize += flp->size;
|
fl.totalFileSize += flp->fl_size;
|
||||||
|
|
||||||
if (! (flp->uname && flp->gname)) {
|
if (! (flp->uname && flp->gname)) {
|
||||||
rpmError(RPMERR_BADSPEC, _("Bad owner/group: %s"), s);
|
rpmError(RPMERR_BADSPEC, _("Bad owner/group: %s"), s);
|
||||||
|
|
|
@ -17,10 +17,11 @@ int parseNum(char *line, int *res)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
char *cleanFileName(char *name)
|
char *cleanFileName(const char *name)
|
||||||
{
|
{
|
||||||
static char res[BUFSIZ];
|
static char res[BUFSIZ];
|
||||||
char *copyTo, *copyFrom, copied;
|
char *copyTo, copied;
|
||||||
|
const char *copyFrom;
|
||||||
|
|
||||||
/* Copy to fileName, eliminate duplicate "/" and trailing "/" */
|
/* Copy to fileName, eliminate duplicate "/" and trailing "/" */
|
||||||
copyTo = res;
|
copyTo = res;
|
||||||
|
|
|
@ -44,7 +44,7 @@ Cambridge, MA 02139, USA. */
|
||||||
static int
|
static int
|
||||||
myftw_dir (DIR **dirs, int level, int descriptors,
|
myftw_dir (DIR **dirs, int level, int descriptors,
|
||||||
char *dir, size_t len,
|
char *dir, size_t len,
|
||||||
int (*func) (void *fl, char *name, struct stat *statp),
|
myftwFunc func,
|
||||||
void *fl)
|
void *fl)
|
||||||
{
|
{
|
||||||
int got;
|
int got;
|
||||||
|
@ -163,7 +163,7 @@ myftw_dir (DIR **dirs, int level, int descriptors,
|
||||||
|
|
||||||
int myftw (const char *dir,
|
int myftw (const char *dir,
|
||||||
int descriptors,
|
int descriptors,
|
||||||
int (*func) (void *fl, char *name, struct stat *statp),
|
myftwFunc func,
|
||||||
void *fl)
|
void *fl)
|
||||||
{
|
{
|
||||||
DIR **dirs;
|
DIR **dirs;
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
typedef int (*myftwFunc) (void *fl, char *name, struct stat *statp);
|
typedef int (*myftwFunc) (void *fl, const char *name, struct stat *statp);
|
||||||
|
|
||||||
int myftw (const char *dir,
|
int myftw (const char *dir,
|
||||||
int descriptors,
|
int descriptors,
|
||||||
|
|
|
@ -94,7 +94,7 @@ int isPart(char *line);
|
||||||
/* from build/misc.h */
|
/* from build/misc.h */
|
||||||
|
|
||||||
int parseNum(char *line, /*@out@*/int *res);
|
int parseNum(char *line, /*@out@*/int *res);
|
||||||
char *cleanFileName(char *name);
|
char *cleanFileName(const char *name);
|
||||||
|
|
||||||
/* from build/parse.h */
|
/* from build/parse.h */
|
||||||
|
|
||||||
|
|
|
@ -71,8 +71,8 @@ struct SpecStruct {
|
||||||
int anyarch;
|
int anyarch;
|
||||||
|
|
||||||
int gotBuildRoot;
|
int gotBuildRoot;
|
||||||
/*@only@*/ char *buildRoot;
|
/*@only@*/ const char *buildRoot;
|
||||||
/*@only@*/ char *buildSubdir;
|
/*@only@*/ const char *buildSubdir;
|
||||||
|
|
||||||
char *passPhrase;
|
char *passPhrase;
|
||||||
int timeCheck;
|
int timeCheck;
|
||||||
|
|
|
@ -411,7 +411,8 @@ static void trimChangelog(Header h) {
|
||||||
/* 2 error */
|
/* 2 error */
|
||||||
int rpmInstallPackage(char * rootdir, rpmdb db, FD_t fd,
|
int rpmInstallPackage(char * rootdir, rpmdb db, FD_t fd,
|
||||||
struct rpmRelocation * relocations,
|
struct rpmRelocation * relocations,
|
||||||
int flags, rpmNotifyFunction notify, char * labelFormat) {
|
int flags, rpmNotifyFunction notify, char * labelFormat)
|
||||||
|
{
|
||||||
int rc, isSource, major, minor;
|
int rc, isSource, major, minor;
|
||||||
char * name, * version, * release;
|
char * name, * version, * release;
|
||||||
Header h;
|
Header h;
|
||||||
|
@ -1009,7 +1010,7 @@ static int installArchive(FD_t fd, struct fileInfo * files,
|
||||||
|
|
||||||
{ CFD_t cfdbuf, *cfd = &cfdbuf;
|
{ CFD_t cfdbuf, *cfd = &cfdbuf;
|
||||||
cfd->cpioIoType = cpioIoTypeGzFd;
|
cfd->cpioIoType = cpioIoTypeGzFd;
|
||||||
cfd->cpioGzFd = gzdFdopen(fd, "r"); /* XXX cpioGzFd == fd */
|
cfd->cpioGzFd = gzdFdopen(fdDup(fdFileno(fd)), "r");
|
||||||
rc = cpioInstallArchive(cfd, map, mappedFiles,
|
rc = cpioInstallArchive(cfd, map, mappedFiles,
|
||||||
((notify && archiveSize) || specFile) ?
|
((notify && archiveSize) || specFile) ?
|
||||||
callback : NULL,
|
callback : NULL,
|
||||||
|
|
|
@ -465,7 +465,8 @@ static int runScript(Header h, char * root, int progArgc, char ** progArgv,
|
||||||
if (fdFileno(out) != STDOUT_FILENO)
|
if (fdFileno(out) != STDOUT_FILENO)
|
||||||
dup2(fdFileno(out), STDOUT_FILENO);
|
dup2(fdFileno(out), STDOUT_FILENO);
|
||||||
/* make sure we don't close stdin/stderr/stdout by mistake! */
|
/* make sure we don't close stdin/stderr/stdout by mistake! */
|
||||||
if (fdFileno(out) > STDERR_FILENO && fdFileno(out) != fdFileno(errfd)) fdClose (out);
|
if (fdFileno(out) > STDERR_FILENO && fdFileno(out) != fdFileno(errfd))
|
||||||
|
fdClose (out);
|
||||||
if (fdFileno(errfd) > STDERR_FILENO)
|
if (fdFileno(errfd) > STDERR_FILENO)
|
||||||
fdClose (errfd);
|
fdClose (errfd);
|
||||||
}
|
}
|
||||||
|
|
179
po/rpm.pot
179
po/rpm.pot
|
@ -7,7 +7,7 @@
|
||||||
msgid ""
|
msgid ""
|
||||||
msgstr ""
|
msgstr ""
|
||||||
"Project-Id-Version: PACKAGE VERSION\n"
|
"Project-Id-Version: PACKAGE VERSION\n"
|
||||||
"POT-Creation-Date: 1998-11-24 14:20-0500\n"
|
"POT-Creation-Date: 1998-11-24 19:36-0500\n"
|
||||||
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
|
||||||
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
||||||
"Language-Team: LANGUAGE <LL@li.org>\n"
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
||||||
|
@ -1467,53 +1467,53 @@ msgstr ""
|
||||||
msgid "syntax error in expression"
|
msgid "syntax error in expression"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:202
|
#: ../build/files.c:205
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "TIMECHECK failure: %s\n"
|
msgid "TIMECHECK failure: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:230 ../build/files.c:242 ../build/files.c:315
|
#: ../build/files.c:233 ../build/files.c:245 ../build/files.c:318
|
||||||
#: ../build/files.c:327 ../build/files.c:354
|
#: ../build/files.c:330 ../build/files.c:357
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Bad %s() syntax: %s"
|
msgid "Bad %s() syntax: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:278
|
#: ../build/files.c:281
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Invalid %s token: %s"
|
msgid "Invalid %s token: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:338
|
#: ../build/files.c:341
|
||||||
msgid "No files after %%defattr(): %s"
|
msgid "No files after %%defattr(): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:366
|
#: ../build/files.c:369
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Bad %s() mode spec: %s"
|
msgid "Bad %s() mode spec: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:384
|
#: ../build/files.c:387
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Bad %s() dirmode spec: %s"
|
msgid "Bad %s() dirmode spec: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:439
|
#: ../build/files.c:442
|
||||||
msgid "Bad %%config() syntax: %s"
|
msgid "Bad %%config() syntax: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:457
|
#: ../build/files.c:460
|
||||||
msgid "Invalid %%config token: %s"
|
msgid "Invalid %%config token: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:480 ../build/files.c:492 ../build/files.c:505
|
#: ../build/files.c:483 ../build/files.c:495 ../build/files.c:508
|
||||||
msgid "Bad %%lang() syntax: %s"
|
msgid "Bad %%lang() syntax: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:511
|
#: ../build/files.c:514
|
||||||
msgid "%%lang() entries are 2 characters: %s"
|
msgid "%%lang() entries are 2 characters: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:517
|
#: ../build/files.c:520
|
||||||
msgid "Only one entry in %%lang(): %s"
|
msgid "Only one entry in %%lang(): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -1525,113 +1525,114 @@ msgstr ""
|
||||||
msgid "Only one arg for %%docdir"
|
msgid "Only one arg for %%docdir"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:639
|
#. We already got a file -- error
|
||||||
|
#: ../build/files.c:638
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Two files on one line: %s"
|
msgid "Two files on one line: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:652
|
#: ../build/files.c:651
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "File must begin with \"/\": %s"
|
msgid "File must begin with \"/\": %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:664
|
#: ../build/files.c:663
|
||||||
msgid "Can't mix special %%doc with other forms: %s"
|
msgid "Can't mix special %%doc with other forms: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:744
|
#: ../build/files.c:740
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "File listed twice: %s"
|
msgid "File listed twice: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:896
|
#: ../build/files.c:893
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "File doesn't match prefix (%s): %s"
|
msgid "File doesn't match prefix (%s): %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:906 ../build/files.c:1026
|
#: ../build/files.c:903 ../build/files.c:1019
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "File not found: %s"
|
msgid "File not found: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:953
|
#: ../build/files.c:950
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Bad owner/group: %s\n"
|
msgid "Bad owner/group: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:958
|
#: ../build/files.c:955
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "File %d: %s\n"
|
msgid "File %d: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1010
|
#: ../build/files.c:1003
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "File needs leading \"/\": %s"
|
msgid "File needs leading \"/\": %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1068
|
#: ../build/files.c:1062
|
||||||
msgid "Could not open %%files file: %s"
|
msgid "Could not open %%files file: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1074 ../build/pack.c:451
|
#: ../build/files.c:1068 ../build/pack.c:451
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "line: %s"
|
msgid "line: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1392 ../build/parsePrep.c:40
|
#: ../build/files.c:1376 ../build/parsePrep.c:40
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Bad owner/group: %s"
|
msgid "Bad owner/group: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1446
|
#: ../build/files.c:1430
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Couldn't exec %s"
|
msgid "Couldn't exec %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1450
|
#: ../build/files.c:1434
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Couldn't fork %s"
|
msgid "Couldn't fork %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1500
|
#: ../build/files.c:1484
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s failed"
|
msgid "%s failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1504
|
#: ../build/files.c:1488
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "failed to write all data to %s"
|
msgid "failed to write all data to %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1538
|
#: ../build/files.c:1522
|
||||||
msgid "Finding provides...\n"
|
msgid "Finding provides...\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1545
|
#: ../build/files.c:1529
|
||||||
msgid "Failed to find provides"
|
msgid "Failed to find provides"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1564
|
#: ../build/files.c:1548
|
||||||
msgid "Finding requires...\n"
|
msgid "Finding requires...\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1571
|
#: ../build/files.c:1555
|
||||||
msgid "Failed to find requires"
|
msgid "Failed to find requires"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1605
|
#: ../build/files.c:1589
|
||||||
msgid "Provides:"
|
msgid "Provides:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1620
|
#: ../build/files.c:1604
|
||||||
msgid "Prereqs:"
|
msgid "Prereqs:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1632
|
#: ../build/files.c:1616
|
||||||
msgid "Requires:"
|
msgid "Requires:"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../build/files.c:1656
|
#: ../build/files.c:1640
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "Processing files: %s\n"
|
msgid "Processing files: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -2285,120 +2286,120 @@ msgstr ""
|
||||||
msgid "instchangelog value in rpmrc should be a number, but isn't"
|
msgid "instchangelog value in rpmrc should be a number, but isn't"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:454 ../lib/install.c:735
|
#: ../lib/install.c:455 ../lib/install.c:736
|
||||||
msgid "stopping install as we're running --test\n"
|
msgid "stopping install as we're running --test\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:485
|
#: ../lib/install.c:486
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package %s-%s-%s is for a different architecture"
|
msgid "package %s-%s-%s is for a different architecture"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:492
|
#: ../lib/install.c:493
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package %s-%s-%s is for a different operating system"
|
msgid "package %s-%s-%s is for a different operating system"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:504
|
#: ../lib/install.c:505
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package: %s-%s-%s files test = %d\n"
|
msgid "package: %s-%s-%s files test = %d\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. no matches
|
#. no matches
|
||||||
#: ../lib/install.c:569
|
#: ../lib/install.c:570
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package %s is now obsolete and will be removed\n"
|
msgid "package %s is now obsolete and will be removed\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:680
|
#: ../lib/install.c:681
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "file %s in netshared path\n"
|
msgid "file %s in netshared path\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:697
|
#: ../lib/install.c:698
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s exists - creating with alternate name\n"
|
msgid "%s exists - creating with alternate name\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:702
|
#: ../lib/install.c:703
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s exists - backing up\n"
|
msgid "%s exists - backing up\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:741
|
#: ../lib/install.c:742
|
||||||
msgid "running preinstall script (if any)\n"
|
msgid "running preinstall script (if any)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:772
|
#: ../lib/install.c:773
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "warning: %s created as %s"
|
msgid "warning: %s created as %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:806
|
#: ../lib/install.c:807
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "warning: %s saved as %s"
|
msgid "warning: %s saved as %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:810 ../lib/install.c:1521 ../lib/uninstall.c:597
|
#: ../lib/install.c:811 ../lib/install.c:1522 ../lib/uninstall.c:598
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "rename of %s to %s failed: %s"
|
msgid "rename of %s to %s failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:911
|
#: ../lib/install.c:912
|
||||||
msgid "running postinstall script (if any)\n"
|
msgid "running postinstall script (if any)\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:932
|
#: ../lib/install.c:933
|
||||||
msgid "removing old versions of package\n"
|
msgid "removing old versions of package\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. this would probably be a good place to check if disk space
|
#. this would probably be a good place to check if disk space
|
||||||
#. was used up - if so, we should return a different error
|
#. was used up - if so, we should return a different error
|
||||||
#: ../lib/install.c:1023
|
#: ../lib/install.c:1024
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "unpacking of archive failed on file %s: %d: %s"
|
msgid "unpacking of archive failed on file %s: %d: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1062
|
#: ../lib/install.c:1063
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package %s-%s-%s is already installed"
|
msgid "package %s-%s-%s is already installed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1110
|
#: ../lib/install.c:1111
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s skipped due to missingok flag\n"
|
msgid "%s skipped due to missingok flag\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1128
|
#: ../lib/install.c:1129
|
||||||
msgid "\tfile type on disk is different then package - saving\n"
|
msgid "\tfile type on disk is different then package - saving\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1131
|
#: ../lib/install.c:1132
|
||||||
msgid ""
|
msgid ""
|
||||||
"\tfile type in database is different then disk and package file - saving\n"
|
"\tfile type in database is different then disk and package file - saving\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1135
|
#: ../lib/install.c:1136
|
||||||
msgid "\tfile type changed - replacing\n"
|
msgid "\tfile type changed - replacing\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1139
|
#: ../lib/install.c:1140
|
||||||
msgid "\tcan't check file for changes - replacing\n"
|
msgid "\tcan't check file for changes - replacing\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. assume the file has been removed, don't freak
|
#. assume the file has been removed, don't freak
|
||||||
#: ../lib/install.c:1151 ../lib/install.c:1161
|
#: ../lib/install.c:1152 ../lib/install.c:1162
|
||||||
msgid "\tfile not present - creating"
|
msgid "\tfile not present - creating"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. this config file has never been modified, so
|
#. this config file has never been modified, so
|
||||||
#. just replace it
|
#. just replace it
|
||||||
#: ../lib/install.c:1174
|
#: ../lib/install.c:1175
|
||||||
msgid "\told == current, replacing with new version\n"
|
msgid "\told == current, replacing with new version\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. this file is the same in all versions of this package
|
#. this file is the same in all versions of this package
|
||||||
#: ../lib/install.c:1181
|
#: ../lib/install.c:1182
|
||||||
msgid "\told == new, keeping\n"
|
msgid "\told == new, keeping\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
|
@ -2406,78 +2407,78 @@ msgstr ""
|
||||||
#. the ones in the two packages are different. It would
|
#. the ones in the two packages are different. It would
|
||||||
#. be nice if RPM was smart enough to at least try and
|
#. be nice if RPM was smart enough to at least try and
|
||||||
#. merge the difference ala CVS, but...
|
#. merge the difference ala CVS, but...
|
||||||
#: ../lib/install.c:1189
|
#: ../lib/install.c:1190
|
||||||
msgid "\tfiles changed too much - backing up\n"
|
msgid "\tfiles changed too much - backing up\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1251 ../lib/rpmdb.c:309 ../lib/uninstall.c:118
|
#: ../lib/install.c:1252 ../lib/rpmdb.c:309 ../lib/uninstall.c:118
|
||||||
#: ../lib/uninstall.c:218
|
#: ../lib/uninstall.c:218
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot read header at %d for uninstall"
|
msgid "cannot read header at %d for uninstall"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1264 ../lib/uninstall.c:131
|
#: ../lib/install.c:1265 ../lib/uninstall.c:131
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package %s-%s-%s contain shared files\n"
|
msgid "package %s-%s-%s contain shared files\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1269 ../lib/uninstall.c:136
|
#: ../lib/install.c:1270 ../lib/uninstall.c:136
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package %s contains no files"
|
msgid "package %s contains no files"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1291 ../lib/uninstall.c:159
|
#: ../lib/install.c:1292 ../lib/uninstall.c:159
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "file %s is shared\n"
|
msgid "file %s is shared\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1307
|
#: ../lib/install.c:1308
|
||||||
msgid "\told version already replaced\n"
|
msgid "\told version already replaced\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1310
|
#: ../lib/install.c:1311
|
||||||
msgid "\tother version never installed\n"
|
msgid "\tother version never installed\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1318
|
#: ../lib/install.c:1319
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s conflicts with file from %s-%s-%s"
|
msgid "%s conflicts with file from %s-%s-%s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1337
|
#: ../lib/install.c:1338
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s from %s-%s-%s will be replaced\n"
|
msgid "%s from %s-%s-%s will be replaced\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1401
|
#: ../lib/install.c:1402
|
||||||
msgid "installing a source package\n"
|
msgid "installing a source package\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1417 ../lib/install.c:1422
|
#: ../lib/install.c:1418 ../lib/install.c:1423
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot write to %s"
|
msgid "cannot write to %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1426
|
#: ../lib/install.c:1427
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "sources in: %s\n"
|
msgid "sources in: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1427
|
#: ../lib/install.c:1428
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "spec file in: %s\n"
|
msgid "spec file in: %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1460 ../lib/install.c:1499
|
#: ../lib/install.c:1461 ../lib/install.c:1500
|
||||||
msgid "source package contains no .spec file"
|
msgid "source package contains no .spec file"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1519
|
#: ../lib/install.c:1520
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "renaming %s to %s\n"
|
msgid "renaming %s to %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/install.c:1635
|
#: ../lib/install.c:1636
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "package %s-%s-%s (which is newer) is already installed"
|
msgid "package %s-%s-%s (which is newer) is already installed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
@ -3097,59 +3098,59 @@ msgstr ""
|
||||||
msgid "removing database entry\n"
|
msgid "removing database entry\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:511
|
#: ../lib/uninstall.c:512
|
||||||
msgid "execution of script failed"
|
msgid "execution of script failed"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:556
|
#: ../lib/uninstall.c:557
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s has already been replaced\n"
|
msgid "%s has already been replaced\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#. if it's a config file, we may not want to remove it
|
#. if it's a config file, we may not want to remove it
|
||||||
#: ../lib/uninstall.c:563
|
#: ../lib/uninstall.c:564
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "finding md5sum of %s\n"
|
msgid "finding md5sum of %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:572
|
#: ../lib/uninstall.c:573
|
||||||
msgid " failed - assuming file removed\n"
|
msgid " failed - assuming file removed\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:575
|
#: ../lib/uninstall.c:576
|
||||||
msgid " file changed - will save\n"
|
msgid " file changed - will save\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:579
|
#: ../lib/uninstall.c:580
|
||||||
msgid " file unchanged - will remove\n"
|
msgid " file unchanged - will remove\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:587
|
#: ../lib/uninstall.c:588
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "keeping %s\n"
|
msgid "keeping %s\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:591
|
#: ../lib/uninstall.c:592
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "saving %s as %s.rpmsave\n"
|
msgid "saving %s as %s.rpmsave\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:605
|
#: ../lib/uninstall.c:606
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "%s - removing\n"
|
msgid "%s - removing\n"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:611
|
#: ../lib/uninstall.c:612
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "cannot remove %s - directory not empty"
|
msgid "cannot remove %s - directory not empty"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:614
|
#: ../lib/uninstall.c:615
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "rmdir of %s failed: %s"
|
msgid "rmdir of %s failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
||||||
#: ../lib/uninstall.c:624
|
#: ../lib/uninstall.c:625
|
||||||
#, c-format
|
#, c-format
|
||||||
msgid "removal of %s failed: %s"
|
msgid "removal of %s failed: %s"
|
||||||
msgstr ""
|
msgstr ""
|
||||||
|
|
2
rpm.spec
2
rpm.spec
|
@ -2,7 +2,7 @@ Summary: Red Hat Package Manager
|
||||||
Name: rpm
|
Name: rpm
|
||||||
%define version 2.90
|
%define version 2.90
|
||||||
Version: %{version}
|
Version: %{version}
|
||||||
Release: 1
|
Release: 2
|
||||||
Group: Utilities/System
|
Group: Utilities/System
|
||||||
Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-2.5.x/rpm-%{version}.tar.gz
|
Source: ftp://ftp.rpm.org/pub/rpm/dist/rpm-2.5.x/rpm-%{version}.tar.gz
|
||||||
Copyright: GPL
|
Copyright: GPL
|
||||||
|
|
|
@ -61,7 +61,7 @@ int main(int argc, char **argv)
|
||||||
rc = EXIT_SUCCESS;
|
rc = EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
gzdClose(gzdi);
|
gzdClose(gzdi); /* XXX gzdi == fdi */
|
||||||
|
|
||||||
return rc;
|
return rc;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue