#include <rpm/rpmfileutil.h>
#include "build/buildio.h"
+#include "rpmio/rpmlua.h"
#include "debug.h"
sprintf(buf, "%sURL%d",
(flag & RPMBUILD_ISPATCH) ? "PATCH" : "SOURCE", num);
addMacro(spec->macros, buf, NULL, p->fullSource, RMIL_SPEC);
+#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);
+ }
+#endif
body = _free(body);
}
spec->macros = rpmGlobalMacroContext;
+#ifdef WITH_LUA
+ {
+ /* make sure patches and sources tables always exist */
+ rpmlua lua = NULL; /* global state */
+ rpmluaPushTable(lua, "patches");
+ rpmluaPushTable(lua, "sources");
+ rpmluaPop(lua);
+ rpmluaPop(lua);
+ }
+#endif
return spec;
}
spec->passPhrase = _free(spec->passPhrase);
spec->cookie = _constfree(spec->cookie);
+#ifdef WITH_LUA
+ rpmlua lua = NULL; /* global state */
+ rpmluaDelVar(lua, "patches");
+ rpmluaDelVar(lua, "sources");
+#endif
+
spec->sources = freeSources(spec->sources);
spec->packages = freePackages(spec->packages);
%{-C:${_mydir}}%{!-C:.}/configure %{_target_platform} --prefix=%{_prefix} --exec-prefix=%{_exec_prefix} --bindir=%{_bindir} --sbindir=%{_sbindir} --sysconfdir=%{_sysconfdir} --datadir=%{_datadir} --includedir=%{_includedir} --libdir=%{_libdir} --libexecdir=%{_libexecdir} --localstatedir=%{_localstatedir} --sharedstatedir=%{_sharedstatedir} --mandir=%{_mandir} --infodir=%{_infodir} %* ; \
%{-C:cd ${_mydir}; unset _mydir}
+%patches %{lua: for i, p in ipairs(patches) do print(p.." ") end}
+%sources %{lua: for i, s in ipairs(sources) do print(s.." ") end}
+
#------------------------------------------------------------------------------
# Useful perl macros (from Artur Frysiak <wiget@t17.ds.pwr.wroc.pl>)
#