[Rpm-maint] [PATCH] Expand $HOME by hand in the default for %_topdir

Adam Jackson ajax at redhat.com
Mon Jan 12 19:58:22 UTC 2009


Doing it as %(echo $HOME) means you'll fork a subshell every time you
need the value of %_topdir, which is just wasteful.

Signed-off-by: Adam Jackson <ajax at redhat.com>
---
 lib/rpmrc.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/lib/rpmrc.c b/lib/rpmrc.c
index 03d5dd1..9425a35 100644
--- a/lib/rpmrc.c
+++ b/lib/rpmrc.c
@@ -450,6 +450,7 @@ export RPM_BUILD_ROOT\n}\
 static void setDefaults(void)
 {
     const char *confdir = rpmConfigDir();
+    chat *topdir;
     defrcfiles = rstrscat(NULL, confdir, "/rpmrc", ":",
 				confdir, "/" RPMCANONVENDOR "/rpmrc", ":",
 				SYSCONFDIR "/rpmrc", ":",
@@ -473,8 +474,11 @@ static void setDefaults(void)
 
     addMacro(NULL, "_preScriptEnvironment",NULL, prescriptenviron,RMIL_DEFAULT);
 
+    topdir = rstrscat(NULL, getenv("HOME"), "/rpmbuild");
     addMacroDefault("_topdir",
-		"/usr/src/packages",		"%(echo $HOME)/rpmbuild");
+		"/usr/src/packages",		topdir);
+    xfree(topdir);
+
     addMacroDefault("_tmppath",
 		LOCALSTATEDIR "/tmp",		"%{_var}/tmp");
     addMacroDefault("_dbpath",
-- 
1.6.1



More information about the Rpm-maint mailing list