RPM Package Manager, CVS Repository http://rpm5.org/cvs/ ____________________________________________________________________________
Server: rpm5.org Name: Jeff Johnson Root: /v/rpm/cvs Email: j...@rpm5.org Module: rpm Date: 20-Aug-2009 18:42:47 Branch: HEAD Handle: 2009082016424700 Modified files: rpm/build spec.c Log: - rpm.org: Avoid adding Lua sources/patches twice when recursing (ticket #82). Summary: Revision Changes Path 2.204 +12 -11 rpm/build/spec.c ____________________________________________________________________________ patch -p0 <<'@@ .' Index: rpm/build/spec.c ============================================================================ $ cvs diff -u -r2.203 -r2.204 spec.c --- rpm/build/spec.c 1 Jun 2009 13:40:28 -0000 2.203 +++ rpm/build/spec.c 20 Aug 2009 16:42:47 -0000 2.204 @@ -464,19 +464,20 @@ (flag & RPMFILE_PATCH) ? "PATCH" : "SOURCE", num); addMacro(spec->macros, buf, NULL, p->fullSource, RMIL_SPEC); #ifdef WITH_LUA - { rpmlua lua = NULL; /* global state */ - const char * what = (flag & RPMFILE_PATCH) ? "patches" : "sources"; - rpmluav var = rpmluavNew(); - - rpmluaPushTable(lua, what); - rpmluavSetListMode(var, 1); - rpmluavSetValue(var, RPMLUAV_STRING, body); - rpmluaSetVar(lua, var); + if (!spec->recursing) { + rpmlua lua = NULL; /* global state */ + const char * what = (flag & RPMFILE_PATCH) ? "patches" : "sources"; + rpmluav var = rpmluavNew(); + + rpmluaPushTable(lua, what); + rpmluavSetListMode(var, 1); + rpmluavSetValue(var, RPMLUAV_STRING, body); + rpmluaSetVar(lua, var); /*...@-moduncon@*/ - var = (rpmluav) rpmluavFree(var); + var = (rpmluav) rpmluavFree(var); /*...@=moduncon@*/ - rpmluaPop(lua); - } + rpmluaPop(lua); + } #endif body = _free(body); } @@ . ______________________________________________________________________ RPM Package Manager http://rpm5.org CVS Sources Repository rpm-cvs@rpm5.org