// Fetch configfiles from makefile
r = pakfire_parser_get_filelist(makefile, namespace, "configfiles", &configfiles, NULL);
+ if (r < 0)
+ goto ERROR;
// If configfiles is not set, there is nothing to do
if (!configfiles)
- return 0;
+ goto ERROR;
- r = pakfire_filelist_walk(filelist, __pakfire_build_package_mark_config_files,
- configfiles, 0);
+ // Walk through the filelist
+ r = pakfire_filelist_walk(filelist, __pakfire_build_package_mark_config_files, configfiles, 0);
+ if (r < 0)
+ goto ERROR;
- // Cleanup
- if (configfiles) {
- for (char** configfile = configfiles; *configfile; configfile++)
- free(*configfile);
- free(configfiles);
- }
+ERROR:
+ if (configfiles)
+ pakfire_strings_free(configfiles);
return r;
}
// Fetch filelist from makefile
r = pakfire_parser_get_filelist(makefile, namespace, "files", &includes, &excludes);
+ if (r < 0)
+ goto ERROR;
// No files to package?
if (!includes && !excludes)
- return 0;
+ goto ERROR;
// Allocate a new filelist
r = pakfire_filelist_create(&filelist, build->pakfire);
// Scan for files
r = pakfire_filelist_scan(filelist, build->buildroot,
(const char**)includes, (const char**)excludes, PAKFIRE_FILELIST_EXTENDED_MATCHING);
- if (r)
+ if (r < 0)
goto ERROR;
CTX_DEBUG(build->ctx, "%zu file(s) found\n", pakfire_filelist_length(filelist));
ERROR:
if (filelist)
pakfire_filelist_unref(filelist);
- if (includes) {
- for (char** include = includes; *include; include++)
- free(*include);
- free(includes);
- }
- if (excludes) {
- for (char** exclude = excludes; *exclude; exclude++)
- free(*exclude);
- free(excludes);
- }
+ if (includes)
+ pakfire_strings_free(includes);
+ if (excludes)
+ pakfire_strings_free(excludes);
return r;
}
// Create a new transaction
r = pakfire_transaction_create(&transaction, build->pakfire, 0);
- if (r)
+ if (r < 0)
goto ERROR;
// Add all packages
r = pakfire_packagelist_walk(build->packages, pakfire_build_install_package, transaction);
+ if (r < 0)
+ goto ERROR;
// Solve the request
r = pakfire_transaction_solve(transaction, PAKFIRE_SOLVE_SHOW_SOLUTIONS, &problems);