summaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorPanu Matilainen <pmatilai@redhat.com>2009-08-17 12:07:48 +0300
committerPanu Matilainen <pmatilai@redhat.com>2009-08-17 12:07:48 +0300
commitd8cde273e5523364df4f4f9ae7ad3374cf02e549 (patch)
tree65ad6ce822d294222754d252de2c05cbde2da065 /build
parent3fc58248d23d6f720942e5cbf4f92db246a802f0 (diff)
downloadlibrpm-tizen-d8cde273e5523364df4f4f9ae7ad3374cf02e549.tar.gz
librpm-tizen-d8cde273e5523364df4f4f9ae7ad3374cf02e549.tar.bz2
librpm-tizen-d8cde273e5523364df4f4f9ae7ad3374cf02e549.zip
Avoid adding Lua sources and patches twice when recursing (ticket #82)
- parseSpec() operates on newly created empty spec structures even when "recursing" but the lua variables are global and need recursion protection to avoid adding multiple times
Diffstat (limited to 'build')
-rw-r--r--build/spec.c20
1 files changed, 10 insertions, 10 deletions
diff --git a/build/spec.c b/build/spec.c
index ca9710761..19974ef55 100644
--- a/build/spec.c
+++ b/build/spec.c
@@ -346,16 +346,16 @@ int addSource(rpmSpec spec, Package pkg, const char *field, rpmTag tag)
addMacro(spec->macros, buf, NULL, p->fullSource, RMIL_SPEC);
free(buf);
#ifdef WITH_LUA
- {
- rpmlua lua = NULL; /* global state */
- const char * what = (flag & RPMBUILD_ISPATCH) ? "patches" : "sources";
- rpmluaPushTable(lua, what);
- rpmluav var = rpmluavNew();
- rpmluavSetListMode(var, 1);
- rpmluavSetValue(var, RPMLUAV_STRING, body);
- rpmluaSetVar(lua, var);
- var = rpmluavFree(var);
- rpmluaPop(lua);
+ if (!spec->recursing) {
+ rpmlua lua = NULL; /* global state */
+ const char * what = (flag & RPMBUILD_ISPATCH) ? "patches" : "sources";
+ rpmluaPushTable(lua, what);
+ rpmluav var = rpmluavNew();
+ rpmluavSetListMode(var, 1);
+ rpmluavSetValue(var, RPMLUAV_STRING, body);
+ rpmluaSetVar(lua, var);
+ var = rpmluavFree(var);
+ rpmluaPop(lua);
}
#endif
body = _free(body);