2.4.100 -> 2.5
- handle files with spaces (put double quotes around them)
+ - new rpmrc setting, buildshell, can be used to set shell
+ used for build scripts (default is /bin/sh)
2.4.99 -> 2.4.100:
- fixed handling of --rebuild and --recompile
char *scriptName;
int pid;
int status;
+ char *buildShell;
switch (what) {
case RPMBUILD_PREP:
rpmMessage(RPMMESS_NORMAL, "Executing: %s\n", name);
if (!(pid = fork())) {
- execl("/bin/sh", "/bin/sh", "-e", scriptName, scriptName, NULL);
+ buildShell = rpmGetVar(RPMVAR_BUILDSHELL);
+ execl(buildShell, buildShell, "-e", scriptName, scriptName, NULL);
rpmError(RPMERR_SCRIPT, "Exec of %s failed (%s)",
scriptName, name);
FREE(scriptName);
#define RPMVAR_GZIPBIN 36
#define RPMVAR_RPMFILENAME 37
#define RPMVAR_PROVIDES 38
+#define RPMVAR_BUILDSHELL 39
-#define RPMVAR_NUM 39 /* number of RPMVAR entries */
+#define RPMVAR_NUM 40 /* number of RPMVAR entries */
char * rpmGetVar(int var);
int rpmGetBooleanVar(int var);
static struct rpmOption optionTable[] = {
{ "builddir", RPMVAR_BUILDDIR, 0, 0 },
{ "buildroot", RPMVAR_BUILDROOT, 0, 0 },
+ { "buildshell", RPMVAR_BUILDSHELL, 0, 0 },
{ "dbpath", RPMVAR_DBPATH, 0, 1 },
{ "defaultdocdir", RPMVAR_DEFAULTDOCDIR, 0, 0 },
{ "distribution", RPMVAR_DISTRIBUTION, 0, 0 },
rpmSetVar(RPMVAR_SIGTYPE, "none");
rpmSetVar(RPMVAR_DEFAULTDOCDIR, "/usr/doc");
rpmSetVar(RPMVAR_TOPDIR, "/usr/src/redhat");
+ rpmSetVar(RPMVAR_BUILDSHELL, "/bin/sh");
}
int rpmReadRC(char * file) {