// The build repository
struct pakfire_repo* repo;
+ // A list of all built packages
+ struct pakfire_packagelist* packages;
+
// Buildroot
char buildroot[PATH_MAX];
goto ERROR;
}
-#ifdef ENABLE_DEBUG
- char* dump = pakfire_package_dump(pkg, PAKFIRE_PKG_DUMP_LONG);
- if (dump) {
- DEBUG(build->pakfire, "%s\n", dump);
- free(dump);
- }
-#endif
-
// Cleanup all packaged files
r = pakfire_packager_cleanup(packager);
if (r)
return r;
}
+static int pakfire_build_package_dump(struct pakfire* pakfire,
+ struct pakfire_package* pkg, void* p) {
+ char* dump = pakfire_package_dump(pkg, PAKFIRE_PKG_DUMP_LONG);
+ if (!dump)
+ return 1;
+
+ INFO(pakfire, "%s\n", dump);
+ free(dump);
+
+ return 0;
+}
+
static int pakfire_build_packages(struct pakfire_build* build,
struct pakfire_parser* makefile) {
DEBUG(build->pakfire, "Creating packages...");
if (r)
goto ERROR;
+ // Fetch all packages
+ r = pakfire_repo_create_packagelist(build->repo, &build->packages);
+ if (r)
+ goto ERROR;
+
+ // Dump them all
+ r = pakfire_packagelist_walk(build->packages, pakfire_build_package_dump, NULL);
+ if (r)
+ goto ERROR;
+
// Success
r = 0;
}
static void pakfire_build_free(struct pakfire_build* build) {
+ if (build->packages)
+ pakfire_packagelist_unref(build->packages);
+
if (build->repo) {
pakfire_repo_clean(build->repo, PAKFIRE_REPO_CLEAN_FLAGS_DESTROY);
pakfire_repo_unref(build->repo);