macros.in: Add buildsubdir and scriptlet template macros.
build/build.c: Rewrite to use scriptlet templates. build/files.c: Rename variables to prepare for (possibly) URL's in %files. build/myftw.c: Use Lstat. build/parsePreamble.c: Permit URL's in BuildRoot tag if not from spec file. build/parseSpec.c: ditto build/parsePrep.c: Add buildsubdir macro. lib/macro.c: Add url2path (nickname u2p) and verbose macro primitives. lib/url.c: urlPath returns "" if url is NULL (rpmGenPath memory corruption). CVS patchset: 3430 CVS date: 1999/11/19 18:19:41
This commit is contained in:
parent
1f6614e61e
commit
c6d768583e
244
build/build.c
244
build/build.c
|
@ -35,136 +35,232 @@ static void doRmSource(Spec spec)
|
|||
* The _preScript string is expanded to export values to a script environment.
|
||||
*/
|
||||
|
||||
static char *_preScriptEnvironment = "%{_preScriptEnvironment}";
|
||||
|
||||
static char *_preScriptChdir =
|
||||
"umask 022\n"
|
||||
"cd %{_builddir}\n"
|
||||
;
|
||||
|
||||
int doScript(Spec spec, int what, const char *name, StringBuf sb, int test)
|
||||
{
|
||||
const char * rootURL = spec->rootURL;
|
||||
const char * rootDir;
|
||||
const char *scriptName = NULL;
|
||||
const char * buildURL = rpmGenPath(rootURL, "%{_builddir}", "");
|
||||
#ifdef DYING
|
||||
const char * buildDir;
|
||||
const char * buildSubdir;
|
||||
const char * buildScript;
|
||||
const char * remsh = rpmGetPath("%{?_remsh:%{_remsh}}", NULL);
|
||||
const char * remchroot = rpmGetPath("%{?_remchroot:%{_remchroot}}", NULL);
|
||||
const char * buildShell =
|
||||
rpmGetPath("%{?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}", NULL);
|
||||
const char * buildEnv = rpmExpand("%{_preScriptEnvironment}", NULL);
|
||||
#else
|
||||
const char * buildScript;
|
||||
const char * buildCmd = NULL;
|
||||
const char * buildTemplate = NULL;
|
||||
const char * buildPost = NULL;
|
||||
const char * mTemplate = NULL;
|
||||
const char * mPost = NULL;
|
||||
int argc = 0;
|
||||
const char **argv = NULL;
|
||||
#endif
|
||||
FILE * fp = NULL;
|
||||
urlinfo u = NULL;
|
||||
|
||||
FD_t fd;
|
||||
FD_t xfd;
|
||||
const char *scriptName;
|
||||
int pid;
|
||||
int child;
|
||||
int status;
|
||||
char buf[BUFSIZ];
|
||||
FILE * fp = NULL;
|
||||
int rc;
|
||||
|
||||
switch (what) {
|
||||
case RPMBUILD_PREP:
|
||||
name = "%prep";
|
||||
sb = spec->prep;
|
||||
mTemplate = "%{__spec_prep_template}";
|
||||
mPost = "%{__spec_prep_post}";
|
||||
break;
|
||||
case RPMBUILD_BUILD:
|
||||
name = "%build";
|
||||
sb = spec->build;
|
||||
mTemplate = "%{__spec_build_template}";
|
||||
mPost = "%{__spec_build_post}";
|
||||
break;
|
||||
case RPMBUILD_INSTALL:
|
||||
name = "%install";
|
||||
sb = spec->install;
|
||||
mTemplate = "%{__spec_install_template}";
|
||||
mPost = "%{__spec_install_post}";
|
||||
break;
|
||||
case RPMBUILD_CLEAN:
|
||||
name = "%clean";
|
||||
sb = spec->clean;
|
||||
mTemplate = "%{__spec_clean_template}";
|
||||
mPost = "%{__spec_clean_post}";
|
||||
break;
|
||||
case RPMBUILD_RMBUILD:
|
||||
name = "--clean";
|
||||
mTemplate = "%{__spec_clean_template}";
|
||||
mPost = "%{__spec_clean_post}";
|
||||
break;
|
||||
case RPMBUILD_STRINGBUF:
|
||||
default:
|
||||
mTemplate = "%{___build_template}";
|
||||
mPost = "%{___build_post}";
|
||||
break;
|
||||
}
|
||||
|
||||
if ((what != RPMBUILD_RMBUILD) && sb == NULL)
|
||||
return 0;
|
||||
|
||||
if (makeTempFile(spec->rootdir, &scriptName, &fd)) {
|
||||
Fclose(fd);
|
||||
FREE(scriptName);
|
||||
rpmError(RPMERR_SCRIPT, _("Unable to open temp file"));
|
||||
return RPMERR_SCRIPT;
|
||||
if ((what != RPMBUILD_RMBUILD) && sb == NULL) {
|
||||
rc = 0;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
if (makeTempFile(rootURL, &scriptName, &fd)) {
|
||||
Fclose(fd);
|
||||
rpmError(RPMERR_SCRIPT, _("Unable to open temp file"));
|
||||
rc = RPMERR_SCRIPT;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
#ifdef HAVE_FCHMOD
|
||||
(void)fchmod(Fileno(fd), 0600); /* XXX fubar on ufdio */
|
||||
#endif
|
||||
#ifdef DYING
|
||||
/* XXX FIXME: build/build.c Fdopen assertion failure, makeTempFile uses fdio */
|
||||
xfd = Fdopen(fd, "w.fdio");
|
||||
#else
|
||||
xfd = Fdopen(fd, "w.fpio");
|
||||
#endif
|
||||
fp = fdGetFp(fd);
|
||||
|
||||
strcpy(buf, _preScriptEnvironment);
|
||||
expandMacros(spec, spec->macros, buf, sizeof(buf));
|
||||
strcat(buf, "\n");
|
||||
fputs(buf, fp);
|
||||
|
||||
fprintf(fp, rpmIsVerbose() ? "set -x\n\n" : "exec > /dev/null\n\n");
|
||||
|
||||
/* XXX umask 022; cd %{_builddir} */
|
||||
strcpy(buf, _preScriptChdir);
|
||||
expandMacros(spec, spec->macros, buf, sizeof(buf));
|
||||
fputs(buf, fp);
|
||||
|
||||
if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD) {
|
||||
if (spec->buildSubdir)
|
||||
fprintf(fp, "cd %s\n", spec->buildSubdir);
|
||||
switch (rootut) {
|
||||
case URL_IS_PATH:
|
||||
case URL_IS_UNKNOWN:
|
||||
(void)fchmod(Fileno(fd), 0600); /* XXX fubar on ufdio */
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (fdGetFp(fd) == NULL)
|
||||
xfd = Fdopen(fd, "w.fpio");
|
||||
else
|
||||
xfd = fd;
|
||||
if ((fp = fdGetFp(xfd)) == NULL) {
|
||||
rc = RPMERR_SCRIPT;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
(void) urlPath(rootURL, &rootDir);
|
||||
if (*rootDir == '\0') rootDir = "/";
|
||||
#ifdef DYING
|
||||
(void) urlPath(buildURL, &buildDir);
|
||||
(void) urlPath(spec->buildSubdir, &buildSubdir);
|
||||
#endif
|
||||
|
||||
(void) urlPath(scriptName, &buildScript);
|
||||
|
||||
buildTemplate = rpmExpand(mTemplate, NULL);
|
||||
buildPost = rpmExpand(mPost, NULL);
|
||||
#ifdef DYING
|
||||
fprintf(fp, "#!%s\n", buildShell);
|
||||
fputs(buildEnv, fp);
|
||||
fputs("\n", fp);
|
||||
|
||||
fprintf(fp, rpmIsVerbose()
|
||||
? "set -x\n\n"
|
||||
: "exec > /dev/null\n\n");
|
||||
|
||||
fprintf(fp, "umask 022\ncd %s\n", buildDir);
|
||||
#else
|
||||
fputs(buildTemplate, fp);
|
||||
#endif
|
||||
|
||||
if (what != RPMBUILD_PREP && what != RPMBUILD_RMBUILD && spec->buildSubdir)
|
||||
fprintf(fp, "cd %s\n", spec->buildSubdir);
|
||||
|
||||
if (what == RPMBUILD_RMBUILD) {
|
||||
if (spec->buildSubdir)
|
||||
fprintf(fp, "rm -rf %s\n", spec->buildSubdir);
|
||||
} else
|
||||
fprintf(fp, "%s", getStringBuf(sb));
|
||||
|
||||
#ifdef DYING
|
||||
fprintf(fp, "\nexit 0\n");
|
||||
#else
|
||||
fputs(buildPost, fp);
|
||||
#endif
|
||||
|
||||
Fclose(xfd);
|
||||
|
||||
if (test) {
|
||||
FREE(scriptName);
|
||||
return 0;
|
||||
rc = 0;
|
||||
goto exit;
|
||||
}
|
||||
|
||||
rpmMessage(RPMMESS_NORMAL, _("Executing: %s\n"), name);
|
||||
if (!(pid = fork())) {
|
||||
const char *buildShell = rpmGetPath("%{_buildshell}", NULL);
|
||||
if (buildURL && buildURL[0] != '/' && (urlSplit(buildURL, &u) != 0)) {
|
||||
rc = RPMERR_SCRIPT;
|
||||
goto exit;
|
||||
}
|
||||
if (u)
|
||||
addMacro(spec->macros, "_build_hostname", NULL, u->path, RMIL_SPEC);
|
||||
|
||||
if (spec->rootdir)
|
||||
Chroot(spec->rootdir);
|
||||
chdir("/");
|
||||
buildCmd = rpmExpand("%{___build_cmd}", " ", buildScript, NULL);
|
||||
poptParseArgvString(buildCmd, &argc, &argv);
|
||||
|
||||
switch (urlIsURL(scriptName)) {
|
||||
case URL_IS_PATH:
|
||||
scriptName += sizeof("file://") - 1;
|
||||
scriptName = strchr(scriptName, '/');
|
||||
/*@fallthrough@*/
|
||||
case URL_IS_UNKNOWN:
|
||||
execl(buildShell, buildShell, "-e", scriptName, scriptName, NULL);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
rpmMessage(RPMMESS_NORMAL, _("Executing(%s): %s\n"), name, buildCmd);
|
||||
if (!(child = fork())) {
|
||||
|
||||
#ifdef DYING
|
||||
fprintf(stderr, "*** root %s buildDir %s script %s remsh %s \n", rootDir, buildDir, scriptName, remsh);
|
||||
|
||||
if (u == NULL || *remsh == '\0') {
|
||||
fprintf(stderr, "*** LOCAL %s %s -e %s %s\n", buildShell, buildShell, buildScript, buildScript);
|
||||
if (rootURL) {
|
||||
if (!(rootDir[0] == '/' && rootDir[1] == '\0')) {
|
||||
chroot(rootDir);
|
||||
chdir("/");
|
||||
}
|
||||
}
|
||||
errno = 0;
|
||||
execl(buildShell, buildShell, "-e", buildScript, buildScript, NULL);
|
||||
} else {
|
||||
if (*remchroot == '\0') {
|
||||
fprintf(stderr, "*** REMSH %s %s %s -e %s %s\n", remsh, u->host, buildShell, buildScript, buildScript);
|
||||
errno = 0;
|
||||
execl(remsh, remsh, u->host, buildShell, "-e", buildScript, buildScript, NULL);
|
||||
} else {
|
||||
fprintf(stderr, "*** REMCHROOT %s %s %s %s -e %s %s\n", remsh, u->host, remchroot, buildShell, buildScript, buildScript);
|
||||
errno = 0;
|
||||
execl(remsh, remsh, u->host, remchroot, buildShell, "-e", buildScript, buildScript, NULL);
|
||||
}
|
||||
}
|
||||
#else
|
||||
execvp(argv[0], (char *const *)argv);
|
||||
#endif
|
||||
|
||||
rpmError(RPMERR_SCRIPT, _("Exec of %s failed (%s): %s"), scriptName, name, strerror(errno));
|
||||
|
||||
rpmError(RPMERR_SCRIPT, _("Exec of %s failed (%s)"), scriptName, name);
|
||||
_exit(-1);
|
||||
}
|
||||
|
||||
(void)wait(&status);
|
||||
if (! WIFEXITED(status) || WEXITSTATUS(status)) {
|
||||
rc = waitpid(child, &status, 0);
|
||||
|
||||
if (!WIFEXITED(status) || WEXITSTATUS(status)) {
|
||||
rpmError(RPMERR_SCRIPT, _("Bad exit status from %s (%s)"),
|
||||
scriptName, name);
|
||||
#if HACK
|
||||
Unlink(scriptName);
|
||||
#endif
|
||||
FREE(scriptName);
|
||||
return RPMERR_SCRIPT;
|
||||
rc = RPMERR_SCRIPT;
|
||||
} else
|
||||
rc = 0;
|
||||
|
||||
exit:
|
||||
if (scriptName) {
|
||||
if (!rc)
|
||||
Unlink(scriptName);
|
||||
xfree(scriptName);
|
||||
}
|
||||
#ifdef DYING
|
||||
FREE(buildShell);
|
||||
FREE(buildEnv);
|
||||
FREE(remsh);
|
||||
FREE(remchroot);
|
||||
#else
|
||||
if (u)
|
||||
delMacro(spec->macros, "_build_hostname");
|
||||
FREE(argv);
|
||||
FREE(buildCmd);
|
||||
FREE(buildTemplate);
|
||||
#endif
|
||||
FREE(buildURL);
|
||||
|
||||
Unlink(scriptName);
|
||||
FREE(scriptName);
|
||||
|
||||
return 0;
|
||||
return rc;
|
||||
}
|
||||
|
||||
int buildSpec(Spec spec, int what, int test)
|
||||
|
|
|
@ -50,7 +50,7 @@ typedef struct {
|
|||
} AttrRec;
|
||||
|
||||
struct FileList {
|
||||
const char *buildRoot;
|
||||
const char *buildURL;
|
||||
const char *prefix;
|
||||
|
||||
int fileCount;
|
||||
|
@ -929,14 +929,14 @@ static int addFile(struct FileList *fl, const char *diskName, struct stat *statp
|
|||
const char *fileGname;
|
||||
char *lang;
|
||||
|
||||
/* Path may have prepended buildroot, so locate the original filename. */
|
||||
/* Path may have prepended buildURL, so locate the original filename. */
|
||||
{ const char *s;
|
||||
char c;
|
||||
|
||||
if ((s = fl->buildRoot) != NULL) {
|
||||
if ((s = fl->buildURL) != NULL) {
|
||||
c = '\0';
|
||||
while (*s) {
|
||||
if (c == '/')
|
||||
if (c == '/' && !(s[0] == '/' && s[1] == ':'))
|
||||
while(*s && *s == '/') s++;
|
||||
if (*s) {
|
||||
fileName++;
|
||||
|
@ -977,7 +977,7 @@ static int addFile(struct FileList *fl, const char *diskName, struct stat *statp
|
|||
/* instead of lstat(), which causes it to follow symlinks! */
|
||||
/* It also has better callback support. */
|
||||
|
||||
fl->inFtw = 1; /* Flag to indicate file has buildRoot prefixed */
|
||||
fl->inFtw = 1; /* Flag to indicate file has buildURL prefixed */
|
||||
fl->isDir = 1; /* Keep it from following myftw() again */
|
||||
myftw(diskName, 16, (myftwFunc) addFile, fl);
|
||||
fl->isDir = 0;
|
||||
|
@ -1100,16 +1100,16 @@ static int processBinaryFile(/*@unused@*/Package pkg, struct FileList *fl,
|
|||
|
||||
/* Copy file name or glob pattern removing multiple "/" chars. */
|
||||
{ const char *s;
|
||||
char c, *t = alloca((fl->buildRoot ? strlen(fl->buildRoot) : 0) +
|
||||
char c, *t = alloca((fl->buildURL ? strlen(fl->buildURL) : 0) +
|
||||
strlen(fileName) + 1);
|
||||
|
||||
fn = t;
|
||||
*t = c = '\0';
|
||||
|
||||
/* With a buildroot, prepend the buildroot now. */
|
||||
if ((s = fl->buildRoot) != NULL) {
|
||||
/* With a buildroot, prepend the buildURL now. */
|
||||
if ((s = fl->buildURL) != NULL) {
|
||||
while (*s) {
|
||||
if (c == '/')
|
||||
if (c == '/' && !(s[0] == '/' && s[1] == ':'))
|
||||
while(*s && *s == '/') s++;
|
||||
if (*s)
|
||||
*t++ = c = *s++;
|
||||
|
@ -1119,7 +1119,7 @@ static int processBinaryFile(/*@unused@*/Package pkg, struct FileList *fl,
|
|||
}
|
||||
if ((s = fileName) != NULL) {
|
||||
while (*s) {
|
||||
if (c == '/')
|
||||
if (c == '/' && !(s[0] == '/' && s[1] == ':'))
|
||||
while(*s && *s == '/') s++;
|
||||
if (*s)
|
||||
*t++ = c = *s++;
|
||||
|
@ -1198,8 +1198,8 @@ static int processPackageFiles(Spec spec, Package pkg,
|
|||
|
||||
/* Init the file list structure */
|
||||
|
||||
/* XXX spec->buildRoot == NULL, then xstrdup("") is returned */
|
||||
fl.buildRoot = rpmGetPath(spec->buildRoot, NULL);
|
||||
/* XXX spec->buildURL == NULL, then xstrdup("") is returned */
|
||||
fl.buildURL = rpmGenPath(spec->rootURL, spec->buildURL, NULL);
|
||||
|
||||
if (headerGetEntry(pkg->header, RPMTAG_DEFAULTPREFIX,
|
||||
NULL, (void **)&fl.prefix, NULL)) {
|
||||
|
@ -1333,7 +1333,7 @@ static int processPackageFiles(Spec spec, Package pkg,
|
|||
}
|
||||
|
||||
/* Clean up */
|
||||
FREE(fl.buildRoot);
|
||||
FREE(fl.buildURL);
|
||||
FREE(fl.prefix);
|
||||
|
||||
freeAttrRec(&fl.cur_ar);
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/* Modified ftw() -- uses lstat() instead of stat() */
|
||||
/* Modified ftw() -- uses Lstat() instead of stat() */
|
||||
|
||||
/* Copyright (C) 1992, 1994, 1995 Free Software Foundation, Inc.
|
||||
This file is part of the GNU C Library.
|
||||
|
@ -21,6 +21,8 @@ Cambridge, MA 02139, USA. */
|
|||
|
||||
#include "system.h"
|
||||
|
||||
#include <rpmio.h>
|
||||
|
||||
#ifndef NAMLEN
|
||||
#define NAMLEN(a) strlen((a)->d_name)
|
||||
#endif
|
||||
|
@ -84,7 +86,7 @@ myftw_dir (DIR **dirs, int level, int descriptors,
|
|||
dir[len] = '/';
|
||||
memcpy ((void *) (dir + len + 1), (void *) entry->d_name, d_namlen);
|
||||
|
||||
if (lstat (dir, &s) < 0)
|
||||
if (Lstat (dir, &s) < 0)
|
||||
{
|
||||
/* Following POSIX.1 2.4 ENOENT is returned if the file cannot
|
||||
* be stat'ed. This can happen for a file returned by readdir
|
||||
|
@ -182,7 +184,7 @@ int myftw (const char *dir,
|
|||
while (i-- > 0)
|
||||
dirs[i] = NULL;
|
||||
|
||||
if (lstat (dir, &s) < 0)
|
||||
if (Lstat (dir, &s) < 0)
|
||||
{
|
||||
/* Following POSIX.1 2.4 ENOENT is returned if the file cannot
|
||||
* be stat'ed. This can happen for a file returned by readdir
|
||||
|
|
16
build/pack.c
16
build/pack.c
|
@ -245,9 +245,6 @@ int writeRPM(Header h, const char *fileName, int type,
|
|||
char buf[BUFSIZ];
|
||||
Header sig;
|
||||
struct rpmlead lead;
|
||||
#ifdef DYING
|
||||
int fdno;
|
||||
#endif
|
||||
|
||||
if (Fileno(csa->cpioFdIn) < 0) {
|
||||
csa->cpioArchiveSize = 0;
|
||||
|
@ -271,11 +268,6 @@ int writeRPM(Header h, const char *fileName, int type,
|
|||
return RPMERR_CREATE;
|
||||
}
|
||||
|
||||
#ifdef DYING
|
||||
fd = fdLink(fd, "persist"); /* XXX keep fd from being freed */
|
||||
fdno = Fileno(fd); /* XXX HACK HACK HACK to keep fdno open */
|
||||
#endif
|
||||
|
||||
if (headerWrite(fd, h, HEADER_MAGIC_YES)) {
|
||||
rc = RPMERR_NOSPACE;
|
||||
} else { /* Write the archive and get the size */
|
||||
|
@ -289,10 +281,6 @@ int writeRPM(Header h, const char *fileName, int type,
|
|||
}
|
||||
}
|
||||
|
||||
#ifdef DYING
|
||||
fdSetFdno(fd, fdno); /* XXX HACK HACK HACK to keep fdno open */
|
||||
#endif
|
||||
|
||||
if (rc != 0) {
|
||||
Fclose(fd);
|
||||
unlink(sigtarget);
|
||||
|
@ -434,11 +422,7 @@ static int cpio_doio(FD_t fdo, CSA_t * csa, const char * fmode)
|
|||
const char *failedFile = NULL;
|
||||
|
||||
(void) Fflush(fdo);
|
||||
#ifndef DYING
|
||||
cfd = Fdopen(fdDup(Fileno(fdo)), fmode);
|
||||
#else
|
||||
cfd = Fdopen(fdo, fmode);
|
||||
#endif
|
||||
rc = cpioBuildArchive(cfd, csa->cpioList, csa->cpioCount, NULL, NULL,
|
||||
&csa->cpioArchiveSize, &failedFile);
|
||||
if (rc) {
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "system.h"
|
||||
|
||||
#include <rpmbuild.h>
|
||||
#include <rpmurl.h>
|
||||
|
||||
static int_32 copyTagsDuringParse[] = {
|
||||
RPMTAG_EPOCH,
|
||||
|
@ -229,9 +230,6 @@ static int readIcon(Header h, const char *file)
|
|||
{
|
||||
const char *fn = NULL;
|
||||
char *icon;
|
||||
#ifdef DYING
|
||||
struct stat statbuf;
|
||||
#endif
|
||||
FD_t fd;
|
||||
int rc = 0;
|
||||
off_t size;
|
||||
|
@ -240,14 +238,6 @@ static int readIcon(Header h, const char *file)
|
|||
/* XXX use rpmGenPath(rootdir, "%{_sourcedir}/", file) for icon path. */
|
||||
fn = rpmGetPath("%{_sourcedir}/", file, NULL);
|
||||
|
||||
#ifdef DYING
|
||||
if (Stat(fn, &statbuf)) {
|
||||
rpmError(RPMERR_BADSPEC, _("Unable to stat icon: %s"), fn);
|
||||
rc = RPMERR_BADSPEC;
|
||||
goto exit;
|
||||
}
|
||||
#endif
|
||||
|
||||
fd = Fopen(fn, "r.ufdio");
|
||||
if (fd == NULL || Ferror(fd)) {
|
||||
rpmError(RPMERR_BADSPEC, _("Unable to open icon %s: %s"),
|
||||
|
@ -330,8 +320,8 @@ if (multiToken) { \
|
|||
|
||||
extern int noLang; /* XXX FIXME: pass as arg */
|
||||
|
||||
static int handlePreambleTag(Spec spec, Package pkg, int tag, char *macro,
|
||||
char *lang)
|
||||
static int handlePreambleTag(Spec spec, Package pkg, int tag, const char *macro,
|
||||
const char *lang)
|
||||
{
|
||||
char *field = spec->line;
|
||||
char *end;
|
||||
|
@ -406,28 +396,38 @@ static int handlePreambleTag(Spec spec, Package pkg, int tag, char *macro,
|
|||
break;
|
||||
case RPMTAG_BUILDROOT:
|
||||
SINGLE_TOKEN_ONLY;
|
||||
if (spec->buildRoot == NULL) {
|
||||
/* XXX use rpmGenPath(rootdir, "%{buildroot}/", file) for buildroot path. */
|
||||
const char *buildroot = rpmGetPath("%{buildroot}", NULL);
|
||||
/* XXX FIXME make sure that buildroot has path, add urlbuildroot. */
|
||||
if (buildroot && *buildroot != '%') {
|
||||
spec->buildRoot = xstrdup(cleanFileName(buildroot));
|
||||
{ const char * buildRoot = NULL;
|
||||
const char * buildURL = spec->buildURL;
|
||||
|
||||
if (buildURL == NULL) {
|
||||
|
||||
buildURL = rpmGenPath(spec->rootURL, "%{?buildroot:%{buildroot}}", NULL);
|
||||
|
||||
if (strcmp(spec->rootURL, buildURL)) {
|
||||
spec->buildURL = buildURL;
|
||||
macro = NULL;
|
||||
} else {
|
||||
spec->buildRoot = xstrdup(cleanFileName(field));
|
||||
const char * specURL = field;
|
||||
|
||||
(void) urlPath(specURL, (const char **)&field);
|
||||
|
||||
xfree(buildURL);
|
||||
buildURL = rpmGenPath(NULL, specURL, NULL);
|
||||
spec->buildURL = buildURL;
|
||||
}
|
||||
xfree(buildroot);
|
||||
} else {
|
||||
macro = NULL;
|
||||
}
|
||||
if (!strcmp(spec->buildRoot, "/")) {
|
||||
(void) urlPath(buildURL, &buildRoot);
|
||||
if (*buildRoot == '\0') buildRoot = "/";
|
||||
if (!strcmp(buildRoot, "/")) {
|
||||
rpmError(RPMERR_BADSPEC,
|
||||
_("line %d: BuildRoot can not be \"/\": %s"),
|
||||
spec->lineNum, spec->line);
|
||||
return RPMERR_BADSPEC;
|
||||
}
|
||||
spec->gotBuildRoot = 1;
|
||||
break;
|
||||
spec->gotBuildURL = 1;
|
||||
} break;
|
||||
case RPMTAG_PREFIXES:
|
||||
addOrAppendListEntry(pkg->header, tag, field);
|
||||
headerGetEntry(pkg->header, tag, NULL, (void **)&array, &num);
|
||||
|
@ -735,7 +735,7 @@ int parsePreamble(Spec spec, int initialPackage)
|
|||
|
||||
/* Do some final processing on the header */
|
||||
|
||||
if (!spec->gotBuildRoot && spec->buildRoot) {
|
||||
if (!spec->gotBuildURL && spec->buildURL) {
|
||||
rpmError(RPMERR_BADSPEC, _("Spec file can't use BuildRoot"));
|
||||
return RPMERR_BADSPEC;
|
||||
}
|
||||
|
|
|
@ -200,7 +200,6 @@ static int checkOwners(const char *file)
|
|||
|
||||
static int doSetupMacro(Spec spec, char *line)
|
||||
{
|
||||
char *version, *name;
|
||||
char buf[BUFSIZ];
|
||||
StringBuf before;
|
||||
StringBuf after;
|
||||
|
@ -264,19 +263,18 @@ static int doSetupMacro(Spec spec, char *line)
|
|||
if (dirName) {
|
||||
spec->buildSubdir = xstrdup(dirName);
|
||||
} else {
|
||||
headerGetEntry(spec->packages->header, RPMTAG_VERSION, NULL,
|
||||
(void **) &version, NULL);
|
||||
headerGetEntry(spec->packages->header, RPMTAG_NAME, NULL,
|
||||
(void **) &name, NULL);
|
||||
const char *name, *version;
|
||||
headerNVR(spec->packages->header, &name, &version, NULL);
|
||||
sprintf(buf, "%s-%s", name, version);
|
||||
spec->buildSubdir = xstrdup(buf);
|
||||
}
|
||||
addMacro(spec->macros, "buildsubdir", NULL, spec->buildSubdir, RMIL_SPEC);
|
||||
|
||||
free(argv);
|
||||
poptFreeContext(optCon);
|
||||
|
||||
/* cd to the build dir */
|
||||
{ const char * buildURL = rpmGenPath(spec->rootdir, "%{_builddir}", "");
|
||||
{ const char * buildURL = rpmGenPath(spec->rootURL, "%{_builddir}", "");
|
||||
const char *buildDir;
|
||||
|
||||
(void) urlPath(buildURL, &buildDir);
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
#include "system.h"
|
||||
|
||||
#include "rpmbuild.h"
|
||||
#include <rpmbuild.h>
|
||||
#include <rpmurl.h>
|
||||
|
||||
static struct PartRec {
|
||||
int part;
|
||||
|
@ -326,8 +327,8 @@ void closeSpec(Spec spec)
|
|||
|
||||
int noLang = 0; /* XXX FIXME: pass as arg */
|
||||
|
||||
int parseSpec(Spec *specp, const char *specFile, const char *rootdir,
|
||||
const char *buildRoot, int inBuildArch, const char *passPhrase,
|
||||
int parseSpec(Spec *specp, const char *specFile, const char *rootURL,
|
||||
const char *buildURL, int inBuildArch, const char *passPhrase,
|
||||
char *cookie, int anyarch, int force)
|
||||
{
|
||||
int parsePart = PART_PREAMBLE;
|
||||
|
@ -345,9 +346,11 @@ int parseSpec(Spec *specp, const char *specFile, const char *rootdir,
|
|||
spec->fileStack->fileName = xstrdup(specFile);
|
||||
|
||||
spec->specFile = xstrdup(specFile);
|
||||
if (buildRoot) {
|
||||
spec->gotBuildRoot = 1;
|
||||
spec->buildRoot = xstrdup(buildRoot);
|
||||
if (buildURL) {
|
||||
const char * buildRoot;
|
||||
spec->gotBuildURL = 1;
|
||||
spec->buildURL = xstrdup(buildURL);
|
||||
(void) urlPath(buildURL, &buildRoot);
|
||||
addMacro(spec->macros, "buildroot", NULL, buildRoot, RMIL_SPEC);
|
||||
}
|
||||
addMacro(NULL, "_docdir", NULL, "%{_defaultdocdir}", RMIL_SPEC);
|
||||
|
@ -355,8 +358,8 @@ int parseSpec(Spec *specp, const char *specFile, const char *rootdir,
|
|||
spec->anyarch = anyarch;
|
||||
spec->force = force;
|
||||
|
||||
if (rootdir && strcmp(rootdir, "/"))
|
||||
spec->rootdir = xstrdup(rootdir);
|
||||
if (rootURL)
|
||||
spec->rootURL = xstrdup(rootURL);
|
||||
if (passPhrase)
|
||||
spec->passPhrase = xstrdup(passPhrase);
|
||||
if (cookie)
|
||||
|
@ -435,7 +438,7 @@ int parseSpec(Spec *specp, const char *specFile, const char *rootdir,
|
|||
saveArch = xstrdup(saveArch);
|
||||
rpmSetMachine(spec->buildArchitectures[x], NULL);
|
||||
if (parseSpec(&(spec->buildArchitectureSpecs[index]),
|
||||
specFile, spec->rootdir, buildRoot, 1,
|
||||
specFile, spec->rootURL, buildURL, 1,
|
||||
passPhrase, cookie, anyarch, force)) {
|
||||
spec->buildArchitectureCount = index;
|
||||
freeSpec(spec);
|
||||
|
|
|
@ -97,8 +97,8 @@ struct SpecStruct {
|
|||
int force;
|
||||
int anyarch;
|
||||
|
||||
int gotBuildRoot;
|
||||
/*@only@*/ const char *buildRoot;
|
||||
int gotBuildURL;
|
||||
/*@only@*/ const char *buildURL;
|
||||
/*@only@*/ const char *buildSubdir;
|
||||
|
||||
char *passPhrase;
|
||||
|
@ -115,7 +115,7 @@ struct SpecStruct {
|
|||
|
||||
/*@dependent@*/ struct MacroContext *macros;
|
||||
|
||||
/*@only@*/ const char *rootdir;
|
||||
/*@only@*/ const char *rootURL;
|
||||
/*@only@*/ StringBuf prep;
|
||||
/*@only@*/ StringBuf build;
|
||||
/*@only@*/ StringBuf install;
|
||||
|
|
|
@ -413,7 +413,7 @@ Spec newSpec(void)
|
|||
spec->readStack->next = NULL;
|
||||
spec->readStack->reading = 1;
|
||||
|
||||
spec->rootdir = NULL;
|
||||
spec->rootURL = NULL;
|
||||
spec->prep = NULL;
|
||||
spec->build = NULL;
|
||||
spec->install = NULL;
|
||||
|
@ -429,8 +429,8 @@ Spec newSpec(void)
|
|||
spec->sourceCpioCount = 0;
|
||||
spec->sourceCpioList = NULL;
|
||||
|
||||
spec->gotBuildRoot = 0;
|
||||
spec->buildRoot = NULL;
|
||||
spec->gotBuildURL = 0;
|
||||
spec->buildURL = NULL;
|
||||
spec->buildSubdir = NULL;
|
||||
|
||||
spec->passPhrase = NULL;
|
||||
|
@ -464,7 +464,7 @@ void freeSpec(/*@only@*/ Spec spec)
|
|||
freeStringBuf(spec->install); spec->install = NULL;
|
||||
freeStringBuf(spec->clean); spec->clean = NULL;
|
||||
|
||||
FREE(spec->buildRoot);
|
||||
FREE(spec->buildURL);
|
||||
FREE(spec->buildSubdir);
|
||||
FREE(spec->specFile);
|
||||
FREE(spec->sourceRpmName);
|
||||
|
|
10
configure.in
10
configure.in
|
@ -155,21 +155,19 @@ dnl
|
|||
dnl Find some common programs
|
||||
dnl
|
||||
AC_PATH_PROG(BZIP2BIN, bzip2, /usr/bin/bzip2, $MYPATH)
|
||||
|
||||
AC_PATH_PROG(__CAT, cat, /bin/cat, $MYPATH)
|
||||
AC_PATH_PROG(__CHGRP, chgrp, /bin/chgrp, $MYPATH)
|
||||
AC_PATH_PROG(__CHMOD, chmod, /bin/chmod, $MYPATH)
|
||||
AC_PATH_PROG(__CHOWN, chown, /bin/chown, $MYPATH)
|
||||
AC_PATH_PROG(__CP, cp, /bin/cp, $MYPATH)
|
||||
AC_PATH_PROG(__CPIO, cpio, /bin/cpio, $MYPATH)
|
||||
|
||||
AC_PATH_PROG(GZIPBIN, gzip, /bin/gzip, $MYPATH)
|
||||
dnl Solaris prefers /usr/xpg4/bin/id
|
||||
AC_PATH_PROG(__ID, id, /usr/bin/id, $MYPATH)
|
||||
AC_PATH_PROG(__INSTALL, install, /usr/bin/install, $MYPATH)
|
||||
AC_PATH_PROG(__MAKE, make, /usr/bin/make, $MYPATH)
|
||||
AC_PATH_PROG(__MKDIR, mkdir, /bin/mkdir, $MYPATH)
|
||||
AC_PATH_PROG(__MV, mv, /bin/mv, $MYPATH)
|
||||
|
||||
AC_PATH_PROG(__PATCH, patch, /usr/bin/patch, $MYPATH)
|
||||
AC_MSG_CHECKING(old version of patch)
|
||||
PATCHVERSION=`patch --version 2>&1`
|
||||
|
@ -183,7 +181,13 @@ dnl Solaris prefers /usr/xpg4/bin/id
|
|||
|
||||
AC_PATH_PROG(PGPBIN, pgp, /usr/bin/pgp, $MYPATH)
|
||||
AC_PATH_PROG(__RM, rm, /bin/rm, $MYPATH)
|
||||
AC_PATH_PROG(__RSH, rsh, /usr/bin/rsh, $MYPATH)
|
||||
AC_PATH_PROG(__SSH, ssh, /usr/bin/ssh, $MYPATH)
|
||||
AC_PATH_PROG(__TAR, tar, /bin/tar, $MYPATH)
|
||||
|
||||
AC_PATH_PROG(__OBJCOPY, objcopy, /usr/bin/objcopy, $MYPATH)
|
||||
AC_PATH_PROG(__OBJDUMP, objdump, /usr/bin/objdump, $MYPATH)
|
||||
AC_PATH_PROG(__STRIP, strip, /usr/bin/strip, $MYPATH)
|
||||
fi
|
||||
|
||||
addlib() {
|
||||
|
|
|
@ -26,13 +26,13 @@ unsigned int dbiIndexRecordFileNumber(dbiIndexSet set, int recno) {
|
|||
dbiIndex * dbiOpenIndex(const char * urlfn, int flags, int perms, DBTYPE type) {
|
||||
dbiIndex * dbi;
|
||||
const char * filename;
|
||||
int urltype = urlPath(urlfn, &filename);
|
||||
|
||||
(void) urlPath(urlfn, &filename);
|
||||
dbi = xmalloc(sizeof(*dbi));
|
||||
dbi->db = dbopen(filename, flags, perms, type, NULL);
|
||||
if (!dbi->db) {
|
||||
if (*filename == '\0' ||
|
||||
(dbi->db = dbopen(filename, flags, perms, type, NULL)) == NULL) {
|
||||
free(dbi);
|
||||
rpmError(RPMERR_DBOPEN, _("cannot open file %s: %s"), filename,
|
||||
rpmError(RPMERR_DBOPEN, _("cannot open file %s: %s"), urlfn,
|
||||
strerror(errno));
|
||||
return NULL;
|
||||
}
|
||||
|
|
|
@ -349,11 +349,7 @@ static int installArchive(FD_t fd, struct fileInfo * files,
|
|||
notifyData);
|
||||
|
||||
(void) Fflush(fd);
|
||||
#ifndef DYING
|
||||
cfd = Fdopen(fdDup(Fileno(fd)), "r.gzdio");
|
||||
#else
|
||||
cfd = Fdopen(fd, "r.gzdio");
|
||||
#endif
|
||||
rc = cpioInstallArchive(cfd, map, mappedFiles,
|
||||
((notify && archiveSize) || specFile) ? callback : NULL,
|
||||
&info, &failedFile);
|
||||
|
|
15
lib/macro.c
15
lib/macro.c
|
@ -785,7 +785,7 @@ doOutput(MacroBuf *mb, int waserror, const char *msg, size_t msglen)
|
|||
}
|
||||
|
||||
static void
|
||||
doFoo(MacroBuf *mb, const char *f, size_t fn, const char *g, size_t glen)
|
||||
doFoo(MacroBuf *mb, int negate, const char *f, size_t fn, const char *g, size_t glen)
|
||||
{
|
||||
char buf[BUFSIZ], *b = NULL, *be;
|
||||
int c;
|
||||
|
@ -811,6 +811,14 @@ doFoo(MacroBuf *mb, const char *f, size_t fn, const char *g, size_t glen)
|
|||
b++;
|
||||
} else if (STREQ("expand", f, fn)) {
|
||||
b = buf;
|
||||
} else if (STREQ("verbose", f, fn)) {
|
||||
if (negate)
|
||||
b = (rpmIsVerbose() ? NULL : buf);
|
||||
else
|
||||
b = (rpmIsVerbose() ? buf : NULL);
|
||||
} else if (STREQ("url2path", f, fn) || STREQ("u2p", f, fn)) {
|
||||
(void)urlPath(buf, (const char **)&b);
|
||||
if (*b == '\0') b = "/";
|
||||
} else if (STREQ("uncompress", f, fn)) {
|
||||
int compressed = 1;
|
||||
for (b = buf; (c = *b) && isblank(c);)
|
||||
|
@ -1061,11 +1069,14 @@ expandMacro(MacroBuf *mb)
|
|||
if (STREQ("basename", f, fn) ||
|
||||
STREQ("suffix", f, fn) ||
|
||||
STREQ("expand", f, fn) ||
|
||||
STREQ("verbose", f, fn) ||
|
||||
STREQ("uncompress", f, fn) ||
|
||||
STREQ("url2path", f, fn) ||
|
||||
STREQ("u2p", f, fn) ||
|
||||
STREQ("S", f, fn) ||
|
||||
STREQ("P", f, fn) ||
|
||||
STREQ("F", f, fn)) {
|
||||
doFoo(mb, f, fn, g, gn);
|
||||
doFoo(mb, negate, f, fn, g, gn);
|
||||
s = se;
|
||||
continue;
|
||||
}
|
||||
|
|
26
lib/misc.c
26
lib/misc.c
|
@ -53,6 +53,7 @@ int rpmfileexists(const char * urlfn) {
|
|||
int urltype = urlPath(urlfn, &fn);
|
||||
struct stat buf;
|
||||
|
||||
if (*fn == '\0') fn = "/";
|
||||
switch (urltype) {
|
||||
case URL_IS_FTP: /* XXX WRONG WRONG WRONG */
|
||||
case URL_IS_HTTP: /* XXX WRONG WRONG WRONG */
|
||||
|
@ -355,16 +356,14 @@ char * gidToGname(gid_t gid) {
|
|||
}
|
||||
|
||||
int makeTempFile(const char * prefix, const char ** fnptr, FD_t * fdptr) {
|
||||
const char * tempfn;
|
||||
const char * tfn;
|
||||
const char * tempfn = NULL;
|
||||
const char * tfn = NULL;
|
||||
int temput;
|
||||
FD_t fd;
|
||||
int ran;
|
||||
|
||||
if (!prefix) prefix = "";
|
||||
|
||||
tfn = NULL;
|
||||
|
||||
/* XXX should probably use mktemp here */
|
||||
srand(time(NULL));
|
||||
ran = rand() % 100000;
|
||||
|
@ -375,15 +374,17 @@ int makeTempFile(const char * prefix, const char ** fnptr, FD_t * fdptr) {
|
|||
char tfnbuf[64];
|
||||
#ifndef NOTYET
|
||||
sprintf(tfnbuf, "rpm-tmp.%d", ran++);
|
||||
if (tfn) xfree(tfn);
|
||||
if (tempfn) xfree(tempfn);
|
||||
tempfn = rpmGenPath(prefix, "%{_tmppath}/", tfnbuf);
|
||||
#else
|
||||
strcpy(tfnbuf, "rpm-tmp.XXXXXX");
|
||||
if (tfn) xfree(tfn);
|
||||
if (tempfn) xfree(tempfn);
|
||||
tempfn = rpmGenPath(prefix, "%{_tmppath}/", mktemp(tfnbuf));
|
||||
#endif
|
||||
|
||||
temput = urlPath(tempfn, &tfn);
|
||||
if (*tfn == '\0') goto errxit;
|
||||
|
||||
switch (temput) {
|
||||
case URL_IS_HTTP:
|
||||
case URL_IS_DASH:
|
||||
|
@ -393,12 +394,7 @@ int makeTempFile(const char * prefix, const char ** fnptr, FD_t * fdptr) {
|
|||
break;
|
||||
}
|
||||
|
||||
/* XXX FIXME: build/build.c Fdopen assertion failure, makeTempFile uses fdio */
|
||||
#ifdef DYING
|
||||
fd = fdio->open(tfn, (O_CREAT|O_RDWR|O_EXCL), 0700);
|
||||
#else
|
||||
fd = Fopen(tfn, "w+x.ufdio");
|
||||
#endif
|
||||
fd = Fopen(tempfn, "w+x.ufdio");
|
||||
} while ((fd == NULL || Ferror(fd)) && errno == EEXIST);
|
||||
|
||||
switch(temput) {
|
||||
|
@ -427,15 +423,15 @@ int makeTempFile(const char * prefix, const char ** fnptr, FD_t * fdptr) {
|
|||
}
|
||||
|
||||
if (fnptr)
|
||||
*fnptr = tfn;
|
||||
else
|
||||
*fnptr = tempfn;
|
||||
else if (tempfn)
|
||||
xfree(tempfn);
|
||||
*fdptr = fd;
|
||||
|
||||
return 0;
|
||||
|
||||
errxit:
|
||||
xfree(tempfn);
|
||||
if (tempfn) xfree(tempfn);
|
||||
return 1;
|
||||
}
|
||||
|
||||
|
|
19
lib/url.c
19
lib/url.c
|
@ -309,17 +309,12 @@ urltype urlIsURL(const char * url) {
|
|||
return URL_IS_UNKNOWN;
|
||||
}
|
||||
|
||||
/* Return path portion of url (or pointer to NUL if url == NULL) */
|
||||
int urlPath(const char * url, const char ** pathp)
|
||||
{
|
||||
const char *path;
|
||||
int urltype;
|
||||
|
||||
if (url == NULL) { /* XXX paranoia */
|
||||
if (pathp)
|
||||
*pathp = xstrdup("/");
|
||||
return URL_IS_UNKNOWN;
|
||||
}
|
||||
|
||||
path = url;
|
||||
urltype = urlIsURL(url);
|
||||
switch (urltype) {
|
||||
|
@ -338,8 +333,8 @@ int urlPath(const char * url, const char ** pathp)
|
|||
path = "";
|
||||
break;
|
||||
}
|
||||
if (path == NULL)
|
||||
path = "/";
|
||||
if (path == NULL) /* XXX gotta return something */
|
||||
path = "";
|
||||
if (pathp)
|
||||
*pathp = path;
|
||||
return urltype;
|
||||
|
@ -370,14 +365,6 @@ int urlSplit(const char * url, urlinfo *uret)
|
|||
while (1) {
|
||||
/* Point to end of next item */
|
||||
while (*se && *se != '/') se++;
|
||||
#ifdef DYING
|
||||
if (*se == '\0') {
|
||||
/* XXX can't find path */
|
||||
if (myurl) free(myurl);
|
||||
u = urlFree(u, "urlSplit (error #2)");
|
||||
return -1;
|
||||
}
|
||||
#endif
|
||||
/* Item was service. Save service and go for the rest ...*/
|
||||
if (*se && (se != s) && se[-1] == ':' && se[0] == '/' && se[1] == '/') {
|
||||
se[-1] = '\0';
|
||||
|
|
210
macros.in
210
macros.in
|
@ -1,4 +1,4 @@
|
|||
# $Id: macros.in,v 1.37 1999/09/29 23:29:57 jbj Exp $
|
||||
# $Id: macros.in,v 1.38 1999/11/19 18:19:41 jbj Exp $
|
||||
#==============================================================================
|
||||
# Macro naming conventions (preliminary):
|
||||
#
|
||||
|
@ -22,9 +22,9 @@
|
|||
%_var @varprefix@
|
||||
|
||||
#==============================================================================
|
||||
# ---- path macros
|
||||
# XXX The use of which here is overly simple (read: dumb).
|
||||
# ---- Generally useful path macros.
|
||||
#
|
||||
%__awk @AWK@
|
||||
%__bzip2 %{_bzip2bin}
|
||||
%__cat @__CAT@
|
||||
%__chgrp @__CHGRP@
|
||||
|
@ -34,17 +34,33 @@
|
|||
%__cpio @__CPIO@
|
||||
%__gzip %{_gzipbin}
|
||||
%__id @__ID@
|
||||
%__install %(which install)
|
||||
%__install @__INSTALL@
|
||||
%__ln_s @LN_S@
|
||||
%__make @__MAKE@
|
||||
%__mkdir @__MKDIR@
|
||||
%__mkdir_p @MKDIR_P@
|
||||
%__mv @__MV@
|
||||
%__patch @__PATCH@
|
||||
%__ranlib %(which ranlib)
|
||||
%__pgp %{_pgpbin}
|
||||
%__rm @__RM@
|
||||
%__strip %(which strip)
|
||||
%__rsh @__RSH@
|
||||
%__ssh @__SSH@
|
||||
%__tar @__TAR@
|
||||
|
||||
# XXX avoid weird failures from which if tools are not installed
|
||||
#==============================================================================
|
||||
# ---- Build system path macros.
|
||||
#
|
||||
%__ar @AR@
|
||||
%__cc @CC@
|
||||
%__cpp @CPP@
|
||||
%__ld @LD@
|
||||
%__nm @NM@
|
||||
%__objcopy @__OBJCOPY@
|
||||
%__objdump @__OBJDUMP@
|
||||
%__ranlib @RANLIB@
|
||||
%__strip @__STRIP@
|
||||
|
||||
# XXX avoid failures if tools are not installed when rpm is built.
|
||||
%__libtoolize libtoolize
|
||||
%__aclocal aclocal
|
||||
%__autoheader autoheader
|
||||
|
@ -90,11 +106,11 @@
|
|||
#
|
||||
#==============================================================================
|
||||
# ---- Optional rpmrc macros.
|
||||
# Macros that used to be initialized as a side effect of rpmrc and/or
|
||||
# spec file parsing but were not set in the distributed configuration
|
||||
# /usr/lib/rpm/rpmrc file.
|
||||
# Macros that are initialized as a side effect of rpmrc and/or spec
|
||||
# file parsing.
|
||||
#
|
||||
#%buildroot
|
||||
#%buildsubdir
|
||||
#%distribution
|
||||
#%_excludedocs
|
||||
#%_ftpport
|
||||
|
@ -127,25 +143,165 @@
|
|||
#%optflags -O2
|
||||
|
||||
#==============================================================================
|
||||
# ---- script environment macros.
|
||||
# Macro(s) that establish the environment for running a script.
|
||||
# ---- Scriptlet template templates.
|
||||
# Global defaults for building scriptlet templates.
|
||||
#
|
||||
# XXX legacy configuration.
|
||||
%_preScriptEnvironment \
|
||||
RPM_SOURCE_DIR=\"%{_sourcedir}\"\
|
||||
RPM_BUILD_DIR=\"%{_builddir}\"\
|
||||
RPM_OPT_FLAGS=\"%{optflags}\"\
|
||||
RPM_ARCH=\"%{_arch}\"\
|
||||
RPM_OS=\"%{_os}\"\
|
||||
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\
|
||||
RPM_DOC_DIR=\"%{_docdir}\"\
|
||||
export RPM_DOC_DIR\
|
||||
RPM_PACKAGE_NAME=\"%{name}\"\
|
||||
RPM_PACKAGE_VERSION=\"%{version}\"\
|
||||
RPM_PACKAGE_RELEASE=\"%{release}\"\
|
||||
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
|
||||
%{?buildroot:RPM_BUILD_ROOT=\"%{buildroot}\"\
|
||||
export RPM_BUILD_ROOT\
|
||||
}
|
||||
RPM_SOURCE_DIR=\"%{_sourcedir}\"\
|
||||
RPM_BUILD_DIR=\"%{_builddir}\"\
|
||||
RPM_OPT_FLAGS=\"%{optflags}\"\
|
||||
RPM_ARCH=\"%{_arch}\"\
|
||||
RPM_OS=\"%{_os}\"\
|
||||
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\
|
||||
RPM_DOC_DIR=\"%{_docdir}\"\
|
||||
export RPM_DOC_DIR\
|
||||
RPM_PACKAGE_NAME=\"%{name}\"\
|
||||
RPM_PACKAGE_VERSION=\"%{version}\"\
|
||||
RPM_PACKAGE_RELEASE=\"%{release}\"\
|
||||
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
|
||||
%{?buildroot:RPM_BUILD_ROOT=\"%{buildroot}\"\
|
||||
export RPM_BUILD_ROOT}
|
||||
|
||||
%___build_shell %{?_buildshell:%{_buildshell}}%{!?_buildshell:/bin/sh}
|
||||
%___build_args -e
|
||||
%___build_cmd %{?_sudo:%{_sudo} }%{?_remsh:%{_remsh} %{_build_hostname}}%{?_remsudo:%{_remsudo} }%{?_remchroot:%{_remchroot} }%{___build_shell} %{___build_args}
|
||||
%___build_pre \
|
||||
RPM_SOURCE_DIR=\"%{u2p:%{_sourcedir}}\"\
|
||||
RPM_BUILD_DIR=\"%{u2p:%{_builddir}}\"\
|
||||
RPM_OPT_FLAGS=\"%{optflags}\"\
|
||||
RPM_ARCH=\"%{_arch}\"\
|
||||
RPM_OS=\"%{_os}\"\
|
||||
export RPM_SOURCE_DIR RPM_BUILD_DIR RPM_OPT_FLAGS RPM_ARCH RPM_OS\
|
||||
RPM_DOC_DIR=\"%{_docdir}\"\
|
||||
export RPM_DOC_DIR\
|
||||
RPM_PACKAGE_NAME=\"%{name}\"\
|
||||
RPM_PACKAGE_VERSION=\"%{version}\"\
|
||||
RPM_PACKAGE_RELEASE=\"%{release}\"\
|
||||
export RPM_PACKAGE_NAME RPM_PACKAGE_VERSION RPM_PACKAGE_RELEASE\
|
||||
%{?buildroot:RPM_BUILD_ROOT=\"%{u2p:%{buildroot}}\"\
|
||||
export RPM_BUILD_ROOT}\
|
||||
\
|
||||
%{verbose:set -x}%{!verbose:exec > /dev/null}\
|
||||
umask 022\
|
||||
cd %{u2p:%{_builddir}}\
|
||||
|
||||
|
||||
#%___build_body %{nil}
|
||||
%___build_post exit 0
|
||||
|
||||
%___build_template #!%{___build_shell}\
|
||||
%{___build_pre}\
|
||||
%{nil}
|
||||
|
||||
#%{___build_body}\
|
||||
#%{___build_post}\
|
||||
#%{nil}
|
||||
|
||||
#==============================================================================
|
||||
# ---- Scriptlet templates.
|
||||
# Macro(s) that expand to a command and script that is executed.
|
||||
# CAVEAT: All macro expansions must fit in a BUFSIZ (8192 byte) buffer.
|
||||
#
|
||||
%__spec_prep_shell %{___build_shell}
|
||||
%__spec_prep_args %{___build_args}
|
||||
%__spec_prep_cmd %{___build_cmd}
|
||||
%__spec_prep_pre %{___build_pre}
|
||||
%__spec_prep_body %{___build_body}
|
||||
%__spec_prep_post %{___build_post}
|
||||
%__spec_prep_template #!%{__spec_prep_shell}\
|
||||
%{__spec_prep_pre}\
|
||||
%{nil}
|
||||
|
||||
#%{__spec_prep_body}\
|
||||
#%{__spec_prep_post}\
|
||||
#%{nil}
|
||||
|
||||
%__spec_build_shell %{___build_shell}
|
||||
%__spec_build_args %{___build_args}
|
||||
%__spec_build_cmd %{___build_cmd}
|
||||
%__spec_build_pre %{___build_pre}
|
||||
%__spec_build_body %{___build_body}
|
||||
%__spec_build_post %{___build_post}
|
||||
%__spec_build_template #!%{__spec_build_shell}\
|
||||
%{__spec_build_pre}\
|
||||
%{nil}
|
||||
|
||||
#%{__spec_build_body}\
|
||||
#%{__spec_build_post}\
|
||||
#%{nil}
|
||||
|
||||
%__spec_install_shell %{___build_shell}
|
||||
%__spec_install_args %{___build_args}
|
||||
%__spec_install_cmd %{___build_cmd}
|
||||
%__spec_install_pre %{___build_pre}
|
||||
%__spec_install_body %{___build_body}
|
||||
%__spec_install_post %{___build_post}
|
||||
%__spec_install_template #!%{__spec_install_shell}\
|
||||
%{__spec_install_pre}\
|
||||
%{nil}
|
||||
|
||||
#%{__spec_install_body}\
|
||||
#%{__spec_install_post}\
|
||||
#%{nil}
|
||||
|
||||
#%__spec_autodep_shell %{___build_shell}
|
||||
#%__spec_autodep_args %{___build_args}
|
||||
#%__spec_autodep_cmd %{___build_cmd}
|
||||
#%__spec_autodep_pre %{___build_pre}
|
||||
#%__spec_autodep_body %{___build_body}
|
||||
#%__spec_autodep_post %{___build_post}
|
||||
#%__spec_autodep_template #!%{__spec_autodep_shell}\
|
||||
#%{__spec_autodep_pre}\
|
||||
#%{nil}
|
||||
|
||||
#%{__spec_autodep_body}\
|
||||
#%{__spec_autodep_post}\
|
||||
#%{nil}
|
||||
|
||||
%__spec_clean_shell %{___build_shell}
|
||||
%__spec_clean_args %{___build_args}
|
||||
%__spec_clean_cmd %{___build_cmd}
|
||||
%__spec_clean_pre %{___build_pre}
|
||||
%__spec_clean_body %{___build_body}
|
||||
%__spec_clean_post %{___build_post}
|
||||
%__spec_clean_template #!%{__spec_clean_shell}\
|
||||
%{__spec_clean_pre}\
|
||||
%{nil}
|
||||
|
||||
#%{__spec_clean_body}\
|
||||
#%{__spec_clean_post}\
|
||||
#%{nil}
|
||||
|
||||
%__spec_rmbuild_shell %{___build_shell}
|
||||
%__spec_rmbuild_args %{___build_args}
|
||||
%__spec_rmbuild_cmd %{___build_cmd}
|
||||
%__spec_rmbuild_pre %{___build_pre}
|
||||
%__spec_rmbuild_body %{___build_body}
|
||||
%__spec_rmbuild_post %{___build_post}
|
||||
%__spec_rmbuild_template #!%{__spec_rmbuild_shell}\
|
||||
%{__spec_rmbuild_pre}\
|
||||
%{nil}
|
||||
|
||||
#%{__spec_rmbuild_body}\
|
||||
#%{__spec_rmbuild_post}\
|
||||
#%{nil}
|
||||
|
||||
# XXX We don't expand pre/post install scriptlets (yet).
|
||||
#%__spec_pre_pre %{nil}
|
||||
#%__spec_pre_post %{nil}
|
||||
#%__spec_post_pre %{nil}
|
||||
#%__spec_post_post %{nil}
|
||||
#%__spec_preun_pre %{nil}
|
||||
#%__spec_preun_post %{nil}
|
||||
#%__spec_postun_pre %{nil}
|
||||
#%__spec_postun_post %{nil}
|
||||
#%__spec_triggerpostun_pre %{nil}
|
||||
#%__spec_triggerpostun_post %{nil}
|
||||
#%__spec_triggerun_pre %{nil}
|
||||
#%__spec_triggerun_post %{nil}
|
||||
#%__spec_triggerin_pre %{nil}
|
||||
#%__spec_triggerin_post %{nil}
|
||||
|
||||
#==============================================================================
|
||||
# ---- configure macros.
|
||||
|
|
179
po/rpm.pot
179
po/rpm.pot
|
@ -6,7 +6,7 @@
|
|||
msgid ""
|
||||
msgstr ""
|
||||
"Project-Id-Version: PACKAGE VERSION\n"
|
||||
"POT-Creation-Date: 1999-11-18 12:30-0500\n"
|
||||
"POT-Creation-Date: 1999-11-19 12:50-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"
|
||||
|
@ -1234,21 +1234,21 @@ msgstr ""
|
|||
msgid "cannot re-open payload: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: build/build.c:85 build/pack.c:270
|
||||
#: build/build.c:116 build/pack.c:267
|
||||
msgid "Unable to open temp file"
|
||||
msgstr ""
|
||||
|
||||
#: build/build.c:129
|
||||
#: build/build.c:198
|
||||
#, c-format
|
||||
msgid "Executing: %s\n"
|
||||
msgid "Executing(%s): %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: build/build.c:149
|
||||
#: build/build.c:229
|
||||
#, c-format
|
||||
msgid "Exec of %s failed (%s)"
|
||||
msgid "Exec of %s failed (%s): %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/build.c:155
|
||||
#: build/build.c:237
|
||||
#, c-format
|
||||
msgid "Bad exit status from %s (%s)"
|
||||
msgstr ""
|
||||
|
@ -1416,7 +1416,7 @@ msgstr ""
|
|||
msgid "Could not open %%files file %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/files.c:1191 build/pack.c:496
|
||||
#: build/files.c:1191 build/pack.c:480
|
||||
#, c-format
|
||||
msgid "line: %s"
|
||||
msgstr ""
|
||||
|
@ -1505,86 +1505,86 @@ msgstr ""
|
|||
msgid "readRPM: reading header from %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:287
|
||||
#: build/pack.c:279
|
||||
msgid "Bad CSA data"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:326
|
||||
#: build/pack.c:314
|
||||
#, c-format
|
||||
msgid "Could not open %s: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:359
|
||||
#: build/pack.c:347
|
||||
#, c-format
|
||||
msgid "Unable to write package: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:374
|
||||
#: build/pack.c:362
|
||||
#, c-format
|
||||
msgid "Generating signature: %d\n"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:390
|
||||
#: build/pack.c:378
|
||||
#, c-format
|
||||
msgid "Unable to open sigtarget %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:400
|
||||
#: build/pack.c:388
|
||||
#, c-format
|
||||
msgid "Unable to read sigtarget %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:410
|
||||
#: build/pack.c:398
|
||||
#, c-format
|
||||
msgid "Unable to write package %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:425
|
||||
#: build/pack.c:413
|
||||
#, c-format
|
||||
msgid "Wrote: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:445
|
||||
#: build/pack.c:429
|
||||
#, c-format
|
||||
msgid "create archive failed on file %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:464
|
||||
#: build/pack.c:448
|
||||
#, c-format
|
||||
msgid "cpio_copy write failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:471
|
||||
#: build/pack.c:455
|
||||
#, c-format
|
||||
msgid "cpio_copy read failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:552
|
||||
#: build/pack.c:536
|
||||
#, c-format
|
||||
msgid "Could not open PreIn file: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:559
|
||||
#: build/pack.c:543
|
||||
#, c-format
|
||||
msgid "Could not open PreUn file: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:566
|
||||
#: build/pack.c:550
|
||||
#, c-format
|
||||
msgid "Could not open PostIn file: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:573
|
||||
#: build/pack.c:557
|
||||
#, c-format
|
||||
msgid "Could not open PostUn file: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:581
|
||||
#: build/pack.c:565
|
||||
#, c-format
|
||||
msgid "Could not open VerifyScript file: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/pack.c:597
|
||||
#: build/pack.c:581
|
||||
#, c-format
|
||||
msgid "Could not open Trigger script file: %s"
|
||||
msgstr ""
|
||||
|
@ -1650,68 +1650,63 @@ msgstr ""
|
|||
msgid "line %d: Second %%files list"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:141
|
||||
#: build/parsePreamble.c:142
|
||||
#, c-format
|
||||
msgid "Architecture is excluded: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:146
|
||||
#: build/parsePreamble.c:147
|
||||
#, c-format
|
||||
msgid "Architecture is not included: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:151
|
||||
#: build/parsePreamble.c:152
|
||||
#, c-format
|
||||
msgid "OS is excluded: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:156
|
||||
#: build/parsePreamble.c:157
|
||||
#, c-format
|
||||
msgid "OS is not included: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:170
|
||||
#: build/parsePreamble.c:171
|
||||
#, c-format
|
||||
msgid "%s field must be present in package: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:195
|
||||
#: build/parsePreamble.c:196
|
||||
#, c-format
|
||||
msgid "Duplicate %s entries in package: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:245
|
||||
#, c-format
|
||||
msgid "Unable to stat icon: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:253
|
||||
#: build/parsePreamble.c:243
|
||||
#, c-format
|
||||
msgid "Unable to open icon %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:271
|
||||
#: build/parsePreamble.c:261
|
||||
#, c-format
|
||||
msgid "Unable to read icon %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:284
|
||||
#: build/parsePreamble.c:274
|
||||
#, c-format
|
||||
msgid "Unknown icon type: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:347
|
||||
#: build/parsePreamble.c:337
|
||||
#, c-format
|
||||
msgid "line %d: Malformed tag: %s"
|
||||
msgstr ""
|
||||
|
||||
#. Empty field
|
||||
#: build/parsePreamble.c:355
|
||||
#: build/parsePreamble.c:345
|
||||
#, c-format
|
||||
msgid "line %d: Empty tag: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePreamble.c:378 build/parsePreamble.c:385
|
||||
#: build/parsePreamble.c:368 build/parsePreamble.c:375
|
||||
#, c-format
|
||||
msgid "line %d: Illegal char '-' in %s: %s"
|
||||
msgstr ""
|
||||
|
@ -1785,43 +1780,43 @@ msgstr ""
|
|||
msgid "Couldn't download nosource %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:220
|
||||
#: build/parsePrep.c:219
|
||||
msgid "Error parsing %%setup: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:235
|
||||
#: build/parsePrep.c:234
|
||||
msgid "line %d: Bad arg to %%setup %c: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:253
|
||||
#: build/parsePrep.c:252
|
||||
msgid "line %d: Bad %%setup option %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:381
|
||||
#: build/parsePrep.c:379
|
||||
msgid "line %d: Need arg to %%patch -b: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:389
|
||||
#: build/parsePrep.c:387
|
||||
msgid "line %d: Need arg to %%patch -z: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:401
|
||||
#: build/parsePrep.c:399
|
||||
msgid "line %d: Need arg to %%patch -p: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:407
|
||||
#: build/parsePrep.c:405
|
||||
msgid "line %d: Bad arg to %%patch -p: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:414
|
||||
#: build/parsePrep.c:412
|
||||
msgid "Too many patches!"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:418
|
||||
#: build/parsePrep.c:416
|
||||
msgid "line %d: Bad arg to %%patch: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parsePrep.c:454
|
||||
#: build/parsePrep.c:452
|
||||
msgid "line %d: second %%prep"
|
||||
msgstr ""
|
||||
|
||||
|
@ -1871,50 +1866,50 @@ msgstr ""
|
|||
msgid "line %d: Second %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parseSpec.c:126
|
||||
#: build/parseSpec.c:127
|
||||
#, c-format
|
||||
msgid "line %d: %s"
|
||||
msgstr ""
|
||||
|
||||
#. XXX Fstrerror
|
||||
#: build/parseSpec.c:175
|
||||
#: build/parseSpec.c:176
|
||||
#, c-format
|
||||
msgid "Unable to open %s: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: build/parseSpec.c:187
|
||||
#: build/parseSpec.c:188
|
||||
msgid "Unclosed %%if"
|
||||
msgstr ""
|
||||
|
||||
#: build/parseSpec.c:246
|
||||
#: build/parseSpec.c:247
|
||||
#, c-format
|
||||
msgid "%s:%d: parseExpressionBoolean returns %d"
|
||||
msgstr ""
|
||||
|
||||
#. Got an else with no %if !
|
||||
#: build/parseSpec.c:254
|
||||
#: build/parseSpec.c:255
|
||||
msgid "%s:%d: Got a %%else with no if"
|
||||
msgstr ""
|
||||
|
||||
#. Got an end with no %if !
|
||||
#: build/parseSpec.c:265
|
||||
#: build/parseSpec.c:266
|
||||
msgid "%s:%d: Got a %%endif with no if"
|
||||
msgstr ""
|
||||
|
||||
#: build/parseSpec.c:279 build/parseSpec.c:288
|
||||
#: build/parseSpec.c:280 build/parseSpec.c:289
|
||||
msgid "malformed %%include statement"
|
||||
msgstr ""
|
||||
|
||||
#: build/parseSpec.c:369
|
||||
#: build/parseSpec.c:372
|
||||
#, c-format
|
||||
msgid "Timecheck value must be an integer: %s"
|
||||
msgstr ""
|
||||
|
||||
#: build/parseSpec.c:452
|
||||
#: build/parseSpec.c:455
|
||||
msgid "No buildable architectures"
|
||||
msgstr ""
|
||||
|
||||
#: build/parseSpec.c:499
|
||||
#: build/parseSpec.c:502
|
||||
msgid "Package has no %%description: %s"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2226,86 +2221,86 @@ msgstr ""
|
|||
|
||||
#. this would probably be a good place to check if disk space
|
||||
#. was used up - if so, we should return a different error
|
||||
#: lib/install.c:366
|
||||
#: lib/install.c:362
|
||||
#, c-format
|
||||
msgid "unpacking of archive failed%s%s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:367
|
||||
#: lib/install.c:363
|
||||
msgid " on file "
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:410
|
||||
#: lib/install.c:406
|
||||
msgid "installing a source package\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:421
|
||||
#: lib/install.c:417
|
||||
#, c-format
|
||||
msgid "cannot create %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:429 lib/install.c:451
|
||||
#: lib/install.c:425 lib/install.c:447
|
||||
#, c-format
|
||||
msgid "cannot write to %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:433
|
||||
#: lib/install.c:429
|
||||
#, c-format
|
||||
msgid "sources in: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:444
|
||||
#: lib/install.c:440
|
||||
#, c-format
|
||||
msgid "cannot create %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:455
|
||||
#: lib/install.c:451
|
||||
#, c-format
|
||||
msgid "spec file in: %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:489 lib/install.c:517
|
||||
#: lib/install.c:485 lib/install.c:513
|
||||
msgid "source package contains no .spec file"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:539
|
||||
#: lib/install.c:535
|
||||
#, c-format
|
||||
msgid "renaming %s to %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:541 lib/install.c:820 lib/uninstall.c:27
|
||||
#: lib/install.c:537 lib/install.c:816 lib/uninstall.c:27
|
||||
#, c-format
|
||||
msgid "rename of %s to %s failed: %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:632
|
||||
#: lib/install.c:628
|
||||
msgid "source package expected, binary found"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:689
|
||||
#: lib/install.c:685
|
||||
#, c-format
|
||||
msgid "package: %s-%s-%s files test = %d\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:750
|
||||
#: lib/install.c:746
|
||||
msgid "stopping install as we're running --test\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:755
|
||||
#: lib/install.c:751
|
||||
msgid "running preinstall script (if any)\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:780
|
||||
#: lib/install.c:776
|
||||
#, c-format
|
||||
msgid "warning: %s created as %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:816
|
||||
#: lib/install.c:812
|
||||
#, c-format
|
||||
msgid "warning: %s saved as %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/install.c:890
|
||||
#: lib/install.c:886
|
||||
msgid "running postinstall scripts (if any)\n"
|
||||
msgstr ""
|
||||
|
||||
|
@ -2363,35 +2358,35 @@ msgstr ""
|
|||
msgid "Unknown option %c in %s(%s)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/macro.c:882
|
||||
#: lib/macro.c:890
|
||||
#, c-format
|
||||
msgid "Recursion depth(%d) greater than max(%d)"
|
||||
msgstr ""
|
||||
|
||||
#: lib/macro.c:948 lib/macro.c:964
|
||||
#: lib/macro.c:956 lib/macro.c:972
|
||||
#, c-format
|
||||
msgid "Unterminated %c: %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/macro.c:1004
|
||||
#: lib/macro.c:1012
|
||||
msgid "A %% is followed by an unparseable macro"
|
||||
msgstr ""
|
||||
|
||||
#: lib/macro.c:1127
|
||||
#: lib/macro.c:1138
|
||||
msgid "Macro %%%.*s not found, skipping"
|
||||
msgstr ""
|
||||
|
||||
#: lib/macro.c:1208
|
||||
#: lib/macro.c:1219
|
||||
msgid "Target buffer overflow"
|
||||
msgstr ""
|
||||
|
||||
#. XXX Fstrerror
|
||||
#: lib/macro.c:1363 lib/macro.c:1368
|
||||
#: lib/macro.c:1374 lib/macro.c:1379
|
||||
#, c-format
|
||||
msgid "File %s: %s"
|
||||
msgstr ""
|
||||
|
||||
#: lib/macro.c:1371
|
||||
#: lib/macro.c:1382
|
||||
#, c-format
|
||||
msgid "File %s is smaller than %d bytes"
|
||||
msgstr ""
|
||||
|
@ -2412,7 +2407,7 @@ msgstr ""
|
|||
msgid "internal error (rpm bug?): "
|
||||
msgstr ""
|
||||
|
||||
#: lib/misc.c:409 lib/misc.c:414 lib/misc.c:420
|
||||
#: lib/misc.c:405 lib/misc.c:410 lib/misc.c:416
|
||||
#, c-format
|
||||
msgid "error creating temporary file %s"
|
||||
msgstr ""
|
||||
|
@ -2843,7 +2838,7 @@ msgstr ""
|
|||
msgid "opening database mode 0x%x in %s\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/rpmdb.c:155 lib/url.c:457
|
||||
#: lib/rpmdb.c:155 lib/url.c:444
|
||||
#, c-format
|
||||
msgid "failed to open %s: %s\n"
|
||||
msgstr ""
|
||||
|
@ -3089,7 +3084,7 @@ msgstr ""
|
|||
msgid "Unknown or unexpected error"
|
||||
msgstr ""
|
||||
|
||||
#: lib/rpmio.c:1243
|
||||
#: lib/rpmio.c:1232
|
||||
#, c-format
|
||||
msgid "logging into %s as %s, pw %s\n"
|
||||
msgstr ""
|
||||
|
@ -3413,12 +3408,12 @@ msgstr ""
|
|||
msgid "error: %sport must be a number\n"
|
||||
msgstr ""
|
||||
|
||||
#: lib/url.c:421
|
||||
#: lib/url.c:408
|
||||
msgid "url port must be a number\n"
|
||||
msgstr ""
|
||||
|
||||
#. XXX Fstrerror
|
||||
#: lib/url.c:480
|
||||
#: lib/url.c:467
|
||||
#, c-format
|
||||
msgid "failed to create %s: %s\n"
|
||||
msgstr ""
|
||||
|
|
|
@ -785,7 +785,7 @@ doOutput(MacroBuf *mb, int waserror, const char *msg, size_t msglen)
|
|||
}
|
||||
|
||||
static void
|
||||
doFoo(MacroBuf *mb, const char *f, size_t fn, const char *g, size_t glen)
|
||||
doFoo(MacroBuf *mb, int negate, const char *f, size_t fn, const char *g, size_t glen)
|
||||
{
|
||||
char buf[BUFSIZ], *b = NULL, *be;
|
||||
int c;
|
||||
|
@ -811,6 +811,14 @@ doFoo(MacroBuf *mb, const char *f, size_t fn, const char *g, size_t glen)
|
|||
b++;
|
||||
} else if (STREQ("expand", f, fn)) {
|
||||
b = buf;
|
||||
} else if (STREQ("verbose", f, fn)) {
|
||||
if (negate)
|
||||
b = (rpmIsVerbose() ? NULL : buf);
|
||||
else
|
||||
b = (rpmIsVerbose() ? buf : NULL);
|
||||
} else if (STREQ("url2path", f, fn) || STREQ("u2p", f, fn)) {
|
||||
(void)urlPath(buf, (const char **)&b);
|
||||
if (*b == '\0') b = "/";
|
||||
} else if (STREQ("uncompress", f, fn)) {
|
||||
int compressed = 1;
|
||||
for (b = buf; (c = *b) && isblank(c);)
|
||||
|
@ -1061,11 +1069,14 @@ expandMacro(MacroBuf *mb)
|
|||
if (STREQ("basename", f, fn) ||
|
||||
STREQ("suffix", f, fn) ||
|
||||
STREQ("expand", f, fn) ||
|
||||
STREQ("verbose", f, fn) ||
|
||||
STREQ("uncompress", f, fn) ||
|
||||
STREQ("url2path", f, fn) ||
|
||||
STREQ("u2p", f, fn) ||
|
||||
STREQ("S", f, fn) ||
|
||||
STREQ("P", f, fn) ||
|
||||
STREQ("F", f, fn)) {
|
||||
doFoo(mb, f, fn, g, gn);
|
||||
doFoo(mb, negate, f, fn, g, gn);
|
||||
s = se;
|
||||
continue;
|
||||
}
|
||||
|
|
|
@ -134,11 +134,17 @@ __CHOWN = @__CHOWN@
|
|||
__CP = @__CP@
|
||||
__CPIO = @__CPIO@
|
||||
__ID = @__ID@
|
||||
__INSTALL = @__INSTALL@
|
||||
__MAKE = @__MAKE@
|
||||
__MKDIR = @__MKDIR@
|
||||
__MV = @__MV@
|
||||
__OBJCOPY = @__OBJCOPY@
|
||||
__OBJDUMP = @__OBJDUMP@
|
||||
__PATCH = @__PATCH@
|
||||
__RM = @__RM@
|
||||
__RSH = @__RSH@
|
||||
__SSH = @__SSH@
|
||||
__STRIP = @__STRIP@
|
||||
__TAR = @__TAR@
|
||||
l = @l@
|
||||
testdir = @testdir@
|
||||
|
|
Loading…
Reference in New Issue