fix: make a copy of retrieved header before loading.
handle out-of-sync hardlinks as sub-state, don't save the file name. fix: on build, was broke, add --fsmdebug as well. CVS patchset: 4537 CVS date: 2001/02/09 20:58:37
This commit is contained in:
parent
2f9fa168c8
commit
d991f23281
146
lib/cpio.c
146
lib/cpio.c
|
@ -19,10 +19,6 @@
|
|||
/*@access TFI_t @*/
|
||||
/*@access FSM_t @*/
|
||||
|
||||
#define CPIO_NEWC_MAGIC "070701"
|
||||
#define CPIO_CRC_MAGIC "070702"
|
||||
#define CPIO_TRAILER "TRAILER!!!"
|
||||
|
||||
#define alloca_strdup(_s) strcpy(alloca(strlen(_s)+1), (_s))
|
||||
|
||||
static /*@null@*/ void * _free(/*@only@*/ /*@null@*/ const void * this) {
|
||||
|
@ -37,7 +33,6 @@ int _fsm_debug = 0;
|
|||
*/
|
||||
struct hardLink {
|
||||
/*@owned@*/ struct hardLink * next;
|
||||
/*@owned@*/ const char ** files; /* nlink of these, used by install */
|
||||
/*@owned@*/ const char ** nsuffix;
|
||||
/*@owned@*/ int * filex;
|
||||
dev_t dev;
|
||||
|
@ -215,10 +210,14 @@ static /*@null@*/ void * dnlFreeIterator(/*@only@*//*@null@*/ const void * this)
|
|||
return _free(this);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
static inline int dnlCount(const DNLI_t dnli) {
|
||||
return (dnli ? dnli->fi->dc : 0);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
static inline int dnlIndex(const DNLI_t dnli) {
|
||||
return (dnli ? dnli->isave : -1);
|
||||
}
|
||||
|
@ -360,6 +359,8 @@ static int mapFind(void * this, const char * fsmPath) {
|
|||
static int saveHardLink(FSM_t fsm)
|
||||
{
|
||||
struct stat * st = &fsm->sb;
|
||||
int rc = 0;
|
||||
int ix = -1;
|
||||
int j;
|
||||
|
||||
/* Find hard link set. */
|
||||
|
@ -368,7 +369,7 @@ static int saveHardLink(FSM_t fsm)
|
|||
break;
|
||||
}
|
||||
|
||||
/* New har link encountered, add new set. */
|
||||
/* New hard link encountered, add new link to set. */
|
||||
if (fsm->li == NULL) {
|
||||
fsm->li = xcalloc(1, sizeof(*fsm->li));
|
||||
fsm->li->next = NULL;
|
||||
|
@ -381,7 +382,6 @@ static int saveHardLink(FSM_t fsm)
|
|||
fsm->li->filex = xcalloc(st->st_nlink, sizeof(fsm->li->filex[0]));
|
||||
memset(fsm->li->filex, -1, (st->st_nlink * sizeof(fsm->li->filex[0])));
|
||||
fsm->li->nsuffix = xcalloc(st->st_nlink, sizeof(*fsm->li->nsuffix));
|
||||
fsm->li->files = xcalloc(st->st_nlink, sizeof(*fsm->li->files));
|
||||
|
||||
if (fsm->goal == FSM_PKGBUILD)
|
||||
fsm->li->linksLeft = st->st_nlink;
|
||||
|
@ -394,7 +394,6 @@ static int saveHardLink(FSM_t fsm)
|
|||
|
||||
if (fsm->goal == FSM_PKGBUILD) --fsm->li->linksLeft;
|
||||
fsm->li->filex[fsm->li->linksLeft] = fsm->ix;
|
||||
fsm->li->files[fsm->li->linksLeft] = xstrdup(fsm->path);
|
||||
/*@-observertrans@*/
|
||||
fsm->li->nsuffix[fsm->li->linksLeft] = fsm->nsuffix;
|
||||
/*@=observertrans@*/
|
||||
|
@ -417,23 +416,23 @@ fprintf(stderr, "*** %p link[%d:%d] %d filex %d %s\n", fsm->li, fsm->li->linksLe
|
|||
{ TFI_t fi = fsmGetFi(fsm);
|
||||
|
||||
for (j = fsm->li->linksLeft - 1; j >= 0; j--) {
|
||||
int i;
|
||||
i = fsm->li->filex[j];
|
||||
if (i < 0 || XFA_SKIPPING(fi->actions[i]))
|
||||
ix = fsm->li->filex[j];
|
||||
if (ix < 0 || XFA_SKIPPING(fi->actions[ix]))
|
||||
continue;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Are all links skipped or not encountered yet? */
|
||||
if (j < 0)
|
||||
if (ix < 0 || j < 0)
|
||||
return 1; /* XXX W2DO? */
|
||||
|
||||
/* Save the non-skipped file name and map index. */
|
||||
fsm->li->linkIndex = j;
|
||||
fsm->path = _free(fsm->path);
|
||||
fsm->path = xstrdup(fsm->li->files[j]);
|
||||
return 0;
|
||||
fsm->ix = ix;
|
||||
rc = fsmStage(fsm, FSM_MAP);
|
||||
return rc;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -443,15 +442,6 @@ fprintf(stderr, "*** %p link[%d:%d] %d filex %d %s\n", fsm->li, fsm->li->linksLe
|
|||
static /*@null@*/ void * freeHardLink(/*@only@*/ /*@null@*/ struct hardLink * li)
|
||||
{
|
||||
if (li) {
|
||||
if (li->files) {
|
||||
int i;
|
||||
for (i = 0; i < li->nlink; i++) {
|
||||
/*@-unqualifiedtrans@*/
|
||||
li->files[i] = _free(li->files[i]);
|
||||
/*@=unqualifiedtrans@*/
|
||||
}
|
||||
}
|
||||
li->files = _free(li->files);
|
||||
li->nsuffix = _free(li->nsuffix); /* XXX elements are shared */
|
||||
li->filex = _free(li->filex);
|
||||
}
|
||||
|
@ -731,8 +721,6 @@ fprintf(stderr, "*** %s:%s %s\n", fiTypeString(fi), fileActionString(fsm->action
|
|||
break;
|
||||
|
||||
case FA_CREATE:
|
||||
if (_fsm_debug && !(fsm->goal == FSM_PKGINSTALL || fsm->goal == FSM_PKGCOMMIT))
|
||||
fprintf(stderr, "*** %s:%s %s\n", fiTypeString(fi), fileActionString(fsm->action), (fsm->path ? fsm->path : ""));
|
||||
assert(fi->type == TR_ADDED);
|
||||
break;
|
||||
|
||||
|
@ -1001,33 +989,37 @@ static int writeLinkedFile(FSM_t fsm)
|
|||
/*@modifies fsm @*/
|
||||
{
|
||||
const char * path = fsm->path;
|
||||
int rc = 0;
|
||||
const char * nsuffix = fsm->nsuffix;
|
||||
int iterIndex = fsm->ix;
|
||||
int ec = 0;
|
||||
int rc;
|
||||
int i;
|
||||
|
||||
fsm->path = NULL;
|
||||
fsm->nsuffix = NULL;
|
||||
fsm->ix = -1;
|
||||
|
||||
for (i = fsm->li->nlink - 1; i >= 0; i--) {
|
||||
if (fsm->li->filex[i] < 0) continue;
|
||||
if (fsm->li->files[i] == NULL) continue;
|
||||
|
||||
fsm->path = fsm->li->files[i];
|
||||
fsm->li->filex[i] = -1;
|
||||
fsm->li->files[i] = NULL;
|
||||
fsm->ix = fsm->li->filex[i];
|
||||
rc = fsmStage(fsm, FSM_MAP);
|
||||
|
||||
/* Write data after last link. */
|
||||
rc = writeFile(fsm, (i == 0));
|
||||
if (rc) break;
|
||||
if (rc && fsm->failedFile && *fsm->failedFile == NULL) {
|
||||
ec = rc;
|
||||
*fsm->failedFile = xstrdup(fsm->path);
|
||||
}
|
||||
|
||||
#ifdef DYING
|
||||
/*@-unqualifiedtrans@*/
|
||||
fsm->li->files[i] = _free(fsm->li->files[i]);
|
||||
/*@=unqualifiedtrans@*/
|
||||
#endif
|
||||
fsm->path = _free(fsm->path);
|
||||
fsm->li->filex[i] = -1;
|
||||
}
|
||||
|
||||
if (rc && fsm->failedFile && *fsm->failedFile == NULL)
|
||||
*fsm->failedFile = xstrdup(fsm->path);
|
||||
|
||||
fsm->ix = iterIndex;
|
||||
fsm->nsuffix = nsuffix;
|
||||
fsm->path = path;
|
||||
return rc;
|
||||
return ec;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1036,40 +1028,47 @@ static int fsmMakeLinks(FSM_t fsm)
|
|||
{
|
||||
const char * path = fsm->path;
|
||||
const char * opath = fsm->opath;
|
||||
int rc = 0;
|
||||
const char * nsuffix = fsm->nsuffix;
|
||||
int iterIndex = fsm->ix;
|
||||
int ec = 0;
|
||||
int rc;
|
||||
int i;
|
||||
|
||||
fsm->opath = fsm->li->files[fsm->li->createdPath];
|
||||
fsm->path = NULL;
|
||||
fsm->opath = NULL;
|
||||
fsm->nsuffix = NULL;
|
||||
fsm->ix = -1;
|
||||
|
||||
fsm->ix = fsm->li->filex[fsm->li->createdPath];
|
||||
rc = fsmStage(fsm, FSM_MAP);
|
||||
fsm->opath = fsm->path;
|
||||
fsm->path = NULL;
|
||||
for (i = 0; i < fsm->li->nlink; i++) {
|
||||
if (fsm->li->filex[i] < 0) continue;
|
||||
if (fsm->li->files[i] == NULL) continue;
|
||||
if (i == fsm->li->createdPath) continue;
|
||||
|
||||
fsm->path = fsm->li->files[i];
|
||||
fsm->ix = fsm->li->filex[i];
|
||||
rc = fsmStage(fsm, FSM_MAP);
|
||||
rc = fsmStage(fsm, FSM_VERIFY);
|
||||
if (!rc) continue;
|
||||
if (rc != CPIOERR_LSTAT_FAILED) break;
|
||||
|
||||
/* XXX link(fsm->opath, fsm->path) */
|
||||
rc = fsmStage(fsm, FSM_LINK);
|
||||
if (rc) break;
|
||||
|
||||
#ifdef DYING /* XXX late commit needs to rename. */
|
||||
/*@-unqualifiedtrans@*/
|
||||
fsm->li->files[i] = _free(fsm->li->files[i]);
|
||||
/*@=unqualifiedtrans@*/
|
||||
#endif
|
||||
if (rc && fsm->failedFile && *fsm->failedFile == NULL) {
|
||||
ec = rc;
|
||||
*fsm->failedFile = xstrdup(fsm->path);
|
||||
}
|
||||
|
||||
fsm->li->linksLeft--;
|
||||
}
|
||||
fsm->opath = _free(fsm->opath);
|
||||
|
||||
if (rc && fsm->failedFile && *fsm->failedFile == NULL)
|
||||
*fsm->failedFile = xstrdup(fsm->path);
|
||||
|
||||
fsm->ix = iterIndex;
|
||||
fsm->nsuffix = nsuffix;
|
||||
fsm->path = path;
|
||||
fsm->opath = opath;
|
||||
|
||||
return rc;
|
||||
return ec;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1094,13 +1093,11 @@ static int fsmCommitLinks(FSM_t fsm)
|
|||
|
||||
for (i = 0; i < fsm->li->nlink; i++) {
|
||||
if (fsm->li->filex[i] < 0) continue;
|
||||
if (fsm->li->files[i] == NULL) continue;
|
||||
fsm->ix = fsm->li->filex[i];
|
||||
rc = fsmStage(fsm, FSM_MAP);
|
||||
rc = fsmStage(fsm, FSM_COMMIT);
|
||||
fsm->path = _free(fsm->path);
|
||||
fsm->li->filex[i] = -1;
|
||||
fsm->li->files[i] = _free(fsm->li->files[i]);
|
||||
}
|
||||
|
||||
fsm->ix = iterIndex;
|
||||
|
@ -1277,14 +1274,6 @@ int fsmStage(FSM_t fsm, fileStage stage)
|
|||
fsm->nsuffix = NULL;
|
||||
|
||||
if (fsm->goal == FSM_PKGINSTALL) {
|
||||
#ifdef DYING
|
||||
/* Detect and create directories not explicitly in package. */
|
||||
if (!fsm->mkdirsdone) {
|
||||
rc = fsmStage(fsm, FSM_MKDIRS);
|
||||
fsm->mkdirsdone = 1;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* Read next header from payload, checking for end-of-payload. */
|
||||
rc = fsmStage(fsm, FSM_NEXT);
|
||||
}
|
||||
|
@ -1499,16 +1488,19 @@ int fsmStage(FSM_t fsm, fileStage stage)
|
|||
if (fsm->osuffix)
|
||||
fsm->path = fsmFsPath(fsm, st, NULL, NULL);
|
||||
rc = fsmStage(fsm, FSM_VERIFY);
|
||||
|
||||
if (rc == 0 && fsm->osuffix) {
|
||||
const char * opath = fsm->opath;
|
||||
fsm->opath = fsm->path;
|
||||
fsm->path = fsmFsPath(fsm, st, NULL, fsm->osuffix);
|
||||
rc = fsmStage(fsm, FSM_RENAME);
|
||||
if (!rc)
|
||||
rpmMessage(RPMMESS_WARNING, _("%s saved as %s\n"), fsm->opath, fsm->path);
|
||||
if (!rc)
|
||||
rpmMessage(RPMMESS_WARNING,
|
||||
_("%s saved as %s\n"), fsm->opath, fsm->path);
|
||||
fsm->path = _free(fsm->path);
|
||||
fsm->opath = opath;
|
||||
}
|
||||
|
||||
fsm->path = path;
|
||||
if (rc != CPIOERR_LSTAT_FAILED) return rc;
|
||||
rc = expandRegular(fsm);
|
||||
|
@ -1551,7 +1543,10 @@ rpmMessage(RPMMESS_WARNING, _("%s saved as %s\n"), fsm->opath, fsm->path);
|
|||
rc = fsmStage(fsm, FSM_MKFIFO);
|
||||
st->st_mode = st_mode; /* XXX restore st->st_mode */
|
||||
}
|
||||
} else if (S_ISCHR(st->st_mode) || S_ISBLK(st->st_mode) || S_ISSOCK(st->st_mode)) {
|
||||
} else if (S_ISCHR(st->st_mode) ||
|
||||
S_ISBLK(st->st_mode) ||
|
||||
S_ISSOCK(st->st_mode))
|
||||
{
|
||||
rc = fsmStage(fsm, FSM_VERIFY);
|
||||
if (rc == CPIOERR_LSTAT_FAILED)
|
||||
rc = fsmStage(fsm, FSM_MKNOD);
|
||||
|
@ -1708,13 +1703,18 @@ rpmMessage(RPMMESS_WARNING, _("%s saved as %s\n"), fsm->opath, fsm->path);
|
|||
while ((fsm->li = fsm->links) != NULL) {
|
||||
fsm->links = fsm->li->next;
|
||||
fsm->li->next = NULL;
|
||||
if (fsm->goal == FSM_PKGINSTALL && fsm->commit && fsm->li->linksLeft) {
|
||||
if (fsm->goal == FSM_PKGINSTALL && fsm->commit && fsm->li->linksLeft)
|
||||
{
|
||||
for (i = 0 ; i < fsm->li->linksLeft; i++) {
|
||||
if (fsm->li->filex[i] < 0) continue;
|
||||
rc = CPIOERR_MISSING_HARDLINK;
|
||||
if (!(fsm->li->files && fsm->li->files[i])) continue;
|
||||
if (fsm->failedFile && *fsm->failedFile == NULL)
|
||||
*fsm->failedFile = xstrdup(fsm->li->files[i]);
|
||||
if (fsm->failedFile && *fsm->failedFile == NULL) {
|
||||
fsm->ix = fsm->li->filex[i];
|
||||
if (!fsmStage(fsm, FSM_MAP)) {
|
||||
*fsm->failedFile = fsm->path;
|
||||
fsm->path = NULL;
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -65,6 +65,10 @@ typedef enum cpioMapFlags_e {
|
|||
CPIO_MULTILIB = (1 << 31) /* internal, only for building. */
|
||||
} cpioMapFlags;
|
||||
|
||||
#define CPIO_NEWC_MAGIC "070701"
|
||||
#define CPIO_CRC_MAGIC "070702"
|
||||
#define CPIO_TRAILER "TRAILER!!!"
|
||||
|
||||
/** \ingroup payload
|
||||
* Cpio archive header information.
|
||||
*/
|
||||
|
|
19
lib/header.c
19
lib/header.c
|
@ -566,6 +566,25 @@ assert(rdlen == dl);
|
|||
return h;
|
||||
}
|
||||
|
||||
Header headerCopyLoad(void *uh)
|
||||
{
|
||||
int_32 *ei = (int_32 *) uh;
|
||||
int_32 il = ntohl(ei[0]); /* index length */
|
||||
int_32 dl = ntohl(ei[1]); /* data length */
|
||||
int pvlen = sizeof(il) + sizeof(dl) +
|
||||
(il * sizeof(struct entryInfo)) + dl;
|
||||
void * nuh = memcpy(xmalloc(pvlen), uh, pvlen);
|
||||
Header h;
|
||||
|
||||
h = headerLoad(nuh);
|
||||
if (h == NULL) {
|
||||
free(nuh);
|
||||
return h;
|
||||
}
|
||||
h->region_allocated = 1;
|
||||
return h;
|
||||
}
|
||||
|
||||
static /*@only@*/ void * doHeaderUnload(Header h, /*@out@*/ int * lengthPtr)
|
||||
/*@modifies h, *lengthPtr @*/
|
||||
{
|
||||
|
|
|
@ -210,6 +210,13 @@ unsigned int headerSizeof(Header h, enum hMagic magicp)
|
|||
*/
|
||||
Header headerLoad(/*@kept@*/ void *p) /*@*/;
|
||||
|
||||
/** \ingroup header
|
||||
* Make a copy and convert header to in-memory representation.
|
||||
* @param p on-disk header (with offsets)
|
||||
* @return header
|
||||
*/
|
||||
Header headerCopyLoad(void *p) /*@*/;
|
||||
|
||||
/** \ingroup header
|
||||
* Convert header to on-disk representation.
|
||||
* @param h header (with pointers)
|
||||
|
|
|
@ -44,6 +44,7 @@ struct rpmBuildArguments rpmBTArgs;
|
|||
#define POPT_TS 0x7473
|
||||
|
||||
extern int _noDirTokens;
|
||||
extern int _fsm_debug;
|
||||
static int force = 0;
|
||||
int noLang = 0;
|
||||
static int noBuild = 0;
|
||||
|
@ -174,6 +175,8 @@ struct poptOption rpmBuildPoptTable[] = {
|
|||
N_("generate headers compatible with rpm4 packaging"), NULL},
|
||||
{ "force", '\0', POPT_ARGFLAG_DOC_HIDDEN, &force, POPT_FORCE,
|
||||
N_("ignore ExcludeArch: directives from spec file"), NULL},
|
||||
{ "fsmdebug", '\0', (POPT_ARG_VAL|POPT_ARGFLAG_DOC_HIDDEN), &_fsm_debug, -1,
|
||||
N_("debug file state machine"), NULL},
|
||||
{ "nobuild", '\0', 0, &noBuild, POPT_NOBUILD,
|
||||
N_("do not execute any stages of the build"), NULL },
|
||||
{ "nodeps", '\0', 0, &noDeps, POPT_NODEPS,
|
||||
|
|
|
@ -25,7 +25,7 @@ typedef /*@abstract@*/ struct fsm_s * FSM_t;
|
|||
#define _fd(_a) ((_a) | (FSM_INTERNAL | FSM_DEAD))
|
||||
typedef enum fileStage_e {
|
||||
FSM_UNKNOWN = 0,
|
||||
FSM_INIT = _fd(1),
|
||||
FSM_INIT = _fi(1),
|
||||
FSM_PRE = _fd(2),
|
||||
FSM_PROCESS = _fv(3),
|
||||
FSM_POST = _fd(4),
|
||||
|
@ -39,14 +39,14 @@ typedef enum fileStage_e {
|
|||
FSM_PKGUNDO = _fd(11),
|
||||
|
||||
FSM_CREATE = _fd(17),
|
||||
FSM_MAP = _fd(18),
|
||||
FSM_MAP = _fi(18),
|
||||
FSM_MKDIRS = _fi(19),
|
||||
FSM_RMDIRS = _fi(20),
|
||||
FSM_MKLINKS = _fi(21),
|
||||
FSM_NOTIFY = _fd(22),
|
||||
FSM_DESTROY = _fd(23),
|
||||
FSM_VERIFY = _fd(24),
|
||||
FSM_COMMIT = _fd(25),
|
||||
FSM_COMMIT = _fi(25),
|
||||
|
||||
FSM_UNLINK = _fs(33),
|
||||
FSM_RENAME = _fs(34),
|
||||
|
|
|
@ -1383,7 +1383,7 @@ top:
|
|||
mi->mi_h = NULL;
|
||||
}
|
||||
|
||||
mi->mi_h = headerLoad(uh);
|
||||
mi->mi_h = headerCopyLoad(uh);
|
||||
|
||||
if (mi->mi_release) {
|
||||
const char *release;
|
||||
|
|
|
@ -45,8 +45,7 @@ int removeBinaryPackage(const rpmTransactionSet ts, TFI_t fi)
|
|||
rpmdbFreeIterator(mi);
|
||||
return 2;
|
||||
}
|
||||
/* XXX was headerLink but iterators destroy dbh data. */
|
||||
h = headerCopy(h);
|
||||
h = headerLink(h);
|
||||
rpmdbFreeIterator(mi);
|
||||
}
|
||||
|
||||
|
|
132
po/rpm.pot
132
po/rpm.pot
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2001-02-08 17:41-0500\n"
|
||||
"POT-Creation-Date: 2001-02-09 15:54-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"
|
||||
|
@ -503,7 +503,7 @@ msgid ""
|
|||
"options as -q"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:180 lib/verify.c:56 rpm.c:393 rpm.c:435 rpm.c:470 rpmqv.c:263
|
||||
#: lib/poptBT.c:183 lib/verify.c:56 rpm.c:393 rpm.c:435 rpm.c:470 rpmqv.c:263
|
||||
#: rpmqv.c:533 rpmqv.c:581 rpmqv.c:615
|
||||
msgid "do not verify package dependencies"
|
||||
msgstr ""
|
||||
|
@ -697,15 +697,15 @@ msgstr ""
|
|||
msgid "bin/src package (prep, compile, install, package)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:191 rpm.c:496
|
||||
#: lib/poptBT.c:194 rpm.c:496
|
||||
msgid "skip straight to specified stage (only for c,i)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:172 rpm.c:498
|
||||
#: lib/poptBT.c:173 rpm.c:498
|
||||
msgid "remove build tree when done"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:187 rpm.c:500
|
||||
#: lib/poptBT.c:190 rpm.c:500
|
||||
msgid "remove sources when done"
|
||||
msgstr ""
|
||||
|
||||
|
@ -713,7 +713,7 @@ msgstr ""
|
|||
msgid "remove spec file when done"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:193 rpm.c:504 rpmqv.c:201
|
||||
#: lib/poptBT.c:196 rpm.c:504 rpmqv.c:201
|
||||
msgid "generate PGP/GPG signature"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1169,7 +1169,7 @@ msgstr ""
|
|||
msgid "generate headers compatible with (legacy) rpm[23] packaging"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:174 rpmqv.c:188
|
||||
#: lib/poptBT.c:175 rpmqv.c:188
|
||||
msgid "generate headers compatible with rpm4 packaging"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2185,41 +2185,41 @@ msgstr ""
|
|||
msgid "line %d: Bad %s number: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:285
|
||||
#: lib/cpio.c:284
|
||||
msgid "========= Directories not explictly included in package:\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:287
|
||||
#: lib/cpio.c:286
|
||||
#, c-format
|
||||
msgid "%9d %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:1408
|
||||
#: lib/cpio.c:1397
|
||||
#, c-format
|
||||
msgid "%s directory created with perms %04o.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:1508 lib/cpio.c:1620
|
||||
#: lib/cpio.c:1499 lib/cpio.c:1615
|
||||
#, c-format
|
||||
msgid "%s saved as %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:1645
|
||||
#: lib/cpio.c:1640
|
||||
#, c-format
|
||||
msgid "%s rmdir of %s failed: Directory not empty\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:1650
|
||||
#: lib/cpio.c:1645
|
||||
#, c-format
|
||||
msgid "%s rmdir of %s failed: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:1659
|
||||
#: lib/cpio.c:1654
|
||||
#, c-format
|
||||
msgid "%s unlink of %s failed: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/cpio.c:1676
|
||||
#: lib/cpio.c:1671
|
||||
#, c-format
|
||||
msgid "%s created as %s\n"
|
||||
msgstr ""
|
||||
|
@ -2498,7 +2498,7 @@ msgid ""
|
|||
msgstr ""
|
||||
|
||||
#: lib/formats.c:86 lib/formats.c:112 lib/formats.c:141 lib/formats.c:182
|
||||
#: lib/header.c:2532 lib/header.c:2549 lib/header.c:2569
|
||||
#: lib/header.c:2551 lib/header.c:2568 lib/header.c:2588
|
||||
msgid "(not a number)"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2536,88 +2536,88 @@ msgstr ""
|
|||
msgid "dataLength() RPM_STRING_TYPE count must be 1.\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/header.c:207 lib/header.c:1017 lib/install.c:236
|
||||
#: lib/header.c:207 lib/header.c:1036 lib/install.c:236
|
||||
#, c-format
|
||||
msgid "Data type %d not supported\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/header.c:1440
|
||||
#: lib/header.c:1459
|
||||
#, c-format
|
||||
msgid "Bad count for headerAddEntry(): %d\n"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:1885
|
||||
#: lib/header.c:1904
|
||||
#, c-format
|
||||
msgid "missing { after %"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:1915
|
||||
#: lib/header.c:1934
|
||||
msgid "missing } after %{"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:1929
|
||||
#: lib/header.c:1948
|
||||
msgid "empty tag format"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:1941
|
||||
#: lib/header.c:1960
|
||||
msgid "empty tag name"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:1958
|
||||
#: lib/header.c:1977
|
||||
msgid "unknown tag"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:1985
|
||||
#: lib/header.c:2004
|
||||
msgid "] expected at end of array"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2003
|
||||
#: lib/header.c:2022
|
||||
msgid "unexpected ]"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2007
|
||||
#: lib/header.c:2026
|
||||
msgid "unexpected }"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2067
|
||||
#: lib/header.c:2086
|
||||
msgid "? expected in expression"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2076
|
||||
#: lib/header.c:2095
|
||||
msgid "{ expected after ? in expression"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2089 lib/header.c:2130
|
||||
#: lib/header.c:2108 lib/header.c:2149
|
||||
msgid "} expected in expression"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2099
|
||||
#: lib/header.c:2118
|
||||
msgid ": expected following ? subexpression"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2115
|
||||
#: lib/header.c:2134
|
||||
msgid "{ expected after : in expression"
|
||||
msgstr ""
|
||||
|
||||
#. @-observertrans@
|
||||
#: lib/header.c:2140
|
||||
#: lib/header.c:2159
|
||||
msgid "| expected at end of expression"
|
||||
msgstr ""
|
||||
|
||||
#: lib/header.c:2311
|
||||
#: lib/header.c:2330
|
||||
msgid "(unknown type)"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2672,7 +2672,7 @@ msgstr ""
|
|||
msgid "%s: %s-%s-%s has %d files, test = %d\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:797 lib/install.c:879 lib/uninstall.c:70 lib/uninstall.c:92
|
||||
#: lib/install.c:797 lib/install.c:879 lib/uninstall.c:69 lib/uninstall.c:91
|
||||
#, c-format
|
||||
msgid "%s: running %s script(s) (if any)\n"
|
||||
msgstr ""
|
||||
|
@ -2695,123 +2695,127 @@ msgid ""
|
|||
"only packaging with major numbers <= 4 is supported by this version of RPM\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:94
|
||||
#: lib/poptBT.c:95
|
||||
#, c-format
|
||||
msgid "buildroot already specified, ignoring %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:119
|
||||
#: lib/poptBT.c:120
|
||||
#, c-format
|
||||
msgid "build through %prep (unpack sources and apply patches) from <specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:120 lib/poptBT.c:123 lib/poptBT.c:126 lib/poptBT.c:129
|
||||
#: lib/poptBT.c:132 lib/poptBT.c:135 lib/poptBT.c:138
|
||||
#: lib/poptBT.c:121 lib/poptBT.c:124 lib/poptBT.c:127 lib/poptBT.c:130
|
||||
#: lib/poptBT.c:133 lib/poptBT.c:136 lib/poptBT.c:139
|
||||
msgid "<specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:122
|
||||
#: lib/poptBT.c:123
|
||||
msgid "build through %build (%prep, then compile) from <specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:125
|
||||
#: lib/poptBT.c:126
|
||||
msgid "build through %install (%prep, %build, then install) from <specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:128
|
||||
#: lib/poptBT.c:129
|
||||
#, c-format
|
||||
msgid "verify %files section from <specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:131
|
||||
#: lib/poptBT.c:132
|
||||
msgid "build source and binary packages from <specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:134
|
||||
#: lib/poptBT.c:135
|
||||
msgid "build binary package only from <specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:137
|
||||
#: lib/poptBT.c:138
|
||||
msgid "build source package only from <specfile>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:141
|
||||
#: lib/poptBT.c:142
|
||||
#, c-format
|
||||
msgid "build through %prep (unpack sources and apply patches) from <tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:142 lib/poptBT.c:145 lib/poptBT.c:148 lib/poptBT.c:151
|
||||
#: lib/poptBT.c:154 lib/poptBT.c:157 lib/poptBT.c:160
|
||||
#: lib/poptBT.c:143 lib/poptBT.c:146 lib/poptBT.c:149 lib/poptBT.c:152
|
||||
#: lib/poptBT.c:155 lib/poptBT.c:158 lib/poptBT.c:161
|
||||
msgid "<tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:144
|
||||
#: lib/poptBT.c:145
|
||||
msgid "build through %build (%prep, then compile) from <tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:147
|
||||
#: lib/poptBT.c:148
|
||||
msgid "build through %install (%prep, %build, then install) from <tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:150
|
||||
#: lib/poptBT.c:151
|
||||
#, c-format
|
||||
msgid "verify %files section from <tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:153
|
||||
#: lib/poptBT.c:154
|
||||
msgid "build source and binary packages from <tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:156
|
||||
#: lib/poptBT.c:157
|
||||
msgid "build binary package only from <tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:159
|
||||
#: lib/poptBT.c:160
|
||||
msgid "build source package only from <tarball>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:163
|
||||
#: lib/poptBT.c:164
|
||||
msgid "build binary package from <source package>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:164 lib/poptBT.c:167
|
||||
#: lib/poptBT.c:165 lib/poptBT.c:168
|
||||
msgid "<source package>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:166
|
||||
#: lib/poptBT.c:167
|
||||
msgid ""
|
||||
"build through %install (%prep, %build, then install) from <source package>"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:170
|
||||
#: lib/poptBT.c:171
|
||||
msgid "override build root"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:176
|
||||
#: lib/poptBT.c:177
|
||||
msgid "ignore ExcludeArch: directives from spec file"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:178
|
||||
#: lib/poptBT.c:179
|
||||
msgid "debug file state machine"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:181
|
||||
msgid "do not execute any stages of the build"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:182
|
||||
#: lib/poptBT.c:185
|
||||
msgid "generate package header(s) compatible with (legacy) rpm[23] packaging"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:185
|
||||
#: lib/poptBT.c:188
|
||||
msgid "do not accept i18N msgstr's from specfile"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:189
|
||||
#: lib/poptBT.c:192
|
||||
msgid "remove specfile when done"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:195
|
||||
#: lib/poptBT.c:198
|
||||
msgid "override target platform"
|
||||
msgstr ""
|
||||
|
||||
#: lib/poptBT.c:197
|
||||
#: lib/poptBT.c:200
|
||||
msgid "lookup i18N strings in specfile catalog"
|
||||
msgstr ""
|
||||
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 2001-01-16 08:53-0500\n"
|
||||
"POT-Creation-Date: 2001-02-09 10:46-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"
|
||||
|
|
|
@ -367,7 +367,6 @@ static int findPackagesWithRelocatedFiles(struct pkgSet *psp,
|
|||
DEBUG (("Found file in %s: %s%s\n", name,
|
||||
availDirs[availDirIndexes[i]], availFiles[i]))
|
||||
(*pip)->selected = 1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
free(availFiles);
|
||||
|
|
|
@ -25,11 +25,11 @@
|
|||
#define rpmDecreaseVerbosity() \
|
||||
((void)rpmlogSetMask(((rpmlogSetMask(0) & 0xff) >> 1)))
|
||||
#define rpmIsNormal() \
|
||||
(rpmlogSetMask(0) & RPMLOG_MASK( RPMMESS_NORMAL ))
|
||||
(rpmlogSetMask(0) >= RPMLOG_MASK( RPMMESS_NORMAL ))
|
||||
#define rpmIsVerbose() \
|
||||
(rpmlogSetMask(0) & RPMLOG_MASK( RPMMESS_VERBOSE ))
|
||||
(rpmlogSetMask(0) >= RPMLOG_MASK( RPMMESS_VERBOSE ))
|
||||
#define rpmIsDebug() \
|
||||
(rpmlogSetMask(0) & RPMLOG_MASK( RPMMESS_DEBUG ))
|
||||
(rpmlogSetMask(0) >= RPMLOG_MASK( RPMMESS_DEBUG ))
|
||||
|
||||
/**
|
||||
*/
|
||||
|
|
8
rpmqv.c
8
rpmqv.c
|
@ -1234,8 +1234,8 @@ int main(int argc, const char ** argv)
|
|||
case MODE_REBUILD:
|
||||
case MODE_RECOMPILE:
|
||||
{ const char * pkg;
|
||||
if (rpmIsNormal())
|
||||
rpmSetVerbosity(RPMMESS_VERBOSE);
|
||||
while (!rpmIsVerbose())
|
||||
rpmIncreaseVerbosity();
|
||||
|
||||
if (!poptPeekArg(optCon))
|
||||
argerror(_("no packages files given for rebuild"));
|
||||
|
@ -1272,8 +1272,8 @@ int main(int argc, const char ** argv)
|
|||
case MODE_BUILD:
|
||||
case MODE_TARBUILD:
|
||||
{ const char * pkg;
|
||||
if (rpmIsNormal())
|
||||
rpmSetVerbosity(RPMMESS_VERBOSE);
|
||||
while (!rpmIsVerbose())
|
||||
rpmIncreaseVerbosity();
|
||||
|
||||
switch (ba->buildChar) {
|
||||
case 'a':
|
||||
|
|
Loading…
Reference in New Issue