"\n" \
"exit 0\n"
-static int pakfire_build_has_flag(struct pakfire_build* build, int flag) {
+static int pakfire_build_has_flag(pakfire_build* build, int flag) {
return build->flags & flag;
}
-static double pakfire_build_duration(struct pakfire_build* build) {
+static double pakfire_build_duration(pakfire_build* build) {
struct timespec now;
int r;
static int pakfire_build_output_callback(pakfire_ctx* ctx, void* data,
const enum pakfire_jail_output_stream stream, const char* line, size_t length) {
- struct pakfire_build* build = data;
+ pakfire_build* build = data;
// Get the runtime of the build
const double t = pakfire_build_duration(build);
FILE* f = NULL;
int r;
- struct pakfire_build* build = (struct pakfire_build*)p;
+ pakfire_build* build = (pakfire_build*)p;
// Skip processing the installed repository
if (pakfire_repo_is_installed_repo(repo))
This function enables the local repository so that it can be accessed by
a pakfire instance running inside the chroot.
*/
-static int pakfire_build_enable_repos(struct pakfire_build* build) {
+static int pakfire_build_enable_repos(pakfire_build* build) {
return pakfire_repo_walk(build->pakfire, __pakfire_build_setup_repo, build);
}
-static int pakfire_build_read_script(struct pakfire_build* build,
+static int pakfire_build_read_script(pakfire_build* build,
const char* filename, char** buffer, size_t* length) {
char path[PATH_MAX];
FILE* f = NULL;
}
static int pakfire_build_run_script(
- struct pakfire_build* build,
+ pakfire_build* build,
const char* filename,
const char* args[],
pakfire_jail_input_callback input_callback, void* input_data,
}
struct pakfire_find_deps_ctx {
- struct pakfire_build* build;
+ pakfire_build* build;
struct pakfire_package* pkg;
struct pakfire_filelist* filelist;
};
static int pakfire_build_process_pkgconfig_provides(pakfire_ctx* ctx, void* data,
const enum pakfire_jail_output_stream stream, const char* line, const size_t length) {
struct pakfire_find_deps_ctx* deps = data;
- struct pakfire_build* self = deps->build;
+ pakfire_build* self = deps->build;
switch (stream) {
// Process any output
static int pakfire_build_process_pkgconfig_requires(pakfire_ctx* ctx, void* data,
const enum pakfire_jail_output_stream stream, const char* line, const size_t length) {
struct pakfire_find_deps_ctx* deps = data;
- struct pakfire_build* self = deps->build;
+ pakfire_build* self = deps->build;
switch (stream) {
// Process any output
return 0;
}
-static int pakfire_build_find_perl_deps(struct pakfire_build* build,
+static int pakfire_build_find_perl_deps(pakfire_build* build,
struct pakfire_package* pkg, struct pakfire_filelist* filelist) {
struct pakfire_filelist* perlfiles = NULL;
const char* args[] = {
return r;
}
-static int pakfire_build_find_dependencies(struct pakfire_build* build,
+static int pakfire_build_find_dependencies(pakfire_build* build,
struct pakfire_parser* makefile, const char* namespace,
struct pakfire_package* pkg, struct pakfire_filelist* filelist) {
char* filter_provides = NULL;
return 0;
}
-static int pakfire_build_package_mark_config_files(struct pakfire_build* build,
+static int pakfire_build_package_mark_config_files(pakfire_build* build,
struct pakfire_filelist* filelist, struct pakfire_parser* makefile, const char* namespace) {
char** configfiles = NULL;
int r;
return r;
}
-static int pakfire_build_package_add_files(struct pakfire_build* build,
+static int pakfire_build_package_add_files(pakfire_build* build,
struct pakfire_parser* makefile, const char* buildroot, const char* namespace,
struct pakfire_package* pkg, struct pakfire_packager* packager) {
struct pakfire_filelist* filelist = NULL;
static int pakfire_build_process_scriptlet_dep(pakfire_ctx* ctx, void* data,
const enum pakfire_jail_output_stream stream, const char* line, const size_t length) {
struct pakfire_find_deps_ctx* deps = data;
- struct pakfire_build* self = deps->build;
+ pakfire_build* self = deps->build;
char command[PATH_MAX];
char path[PATH_MAX];
int r;
return 0;
}
-static int pakfire_build_add_scriptlet_requires(struct pakfire_build* build,
+static int pakfire_build_add_scriptlet_requires(pakfire_build* build,
struct pakfire_package* pkg, struct pakfire_scriptlet* scriptlet) {
struct pakfire_input_buffer buffer = {};
int r;
pakfire_jail_send_buffer, &buffer, pakfire_build_process_scriptlet_dep, &ctx);
}
-static int pakfire_build_package_add_scriptlet(struct pakfire_build* build,
+static int pakfire_build_package_add_scriptlet(pakfire_build* build,
struct pakfire_package* pkg, struct pakfire_packager* packager,
const char* type, const char* data) {
struct pakfire_scriptlet* scriptlet = NULL;
return r;
}
-static int pakfire_build_package_add_scriptlets(struct pakfire_build* build,
+static int pakfire_build_package_add_scriptlets(pakfire_build* build,
struct pakfire_parser* makefile, const char* namespace,
struct pakfire_package* pkg, struct pakfire_packager* packager) {
char name[NAME_MAX];
return 0;
}
-static int pakfire_build_package(struct pakfire_build* build, struct pakfire_parser* makefile,
+static int pakfire_build_package(pakfire_build* build, struct pakfire_parser* makefile,
const char* buildroot, const char* namespace) {
pakfire_archive* archive = NULL;
struct pakfire_package* pkg = NULL;
static int pakfire_build_package_dump(pakfire_ctx* ctx,
struct pakfire_package* pkg, void* p) {
- struct pakfire_build* build = p;
+ pakfire_build* build = p;
char* dump = pakfire_package_dump(pkg, PAKFIRE_PKG_DUMP_LONG);
if (!dump)
return 0;
}
-static int pakfire_build_packages(struct pakfire_build* build,
+static int pakfire_build_packages(pakfire_build* build,
struct pakfire_parser* makefile) {
INFO(build->ctx, "Creating packages...");
int r = 1;
return r;
}
-static int pakfire_build_stage(struct pakfire_build* build,
+static int pakfire_build_stage(pakfire_build* build,
struct pakfire_parser* makefile, const char* stage) {
struct pakfire_env* env = NULL;
char* script = NULL;
PAKFIRE_BUILD_SHOW_PROGRESS = (1 << 2),
};
-struct pakfire_build_post_process_state {
- struct pakfire_build* build;
+typedef struct pakfire_build_post_process_state {
+ pakfire_build* build;
// Filelist with files to remove
struct pakfire_filelist* removees;
-};
+} pakfire_build_post_process_state;
/*
This helper function takes a callback which is expected to add any files
to the given filelist which will optionally be all removed after.
*/
-static int pakfire_build_post_process_files(struct pakfire_build* build,
+static int pakfire_build_post_process_files(pakfire_build* build,
struct pakfire_filelist* filelist, const char* description,
pakfire_filelist_walk_callback callback, int flags) {
struct pakfire_filelist* removees = NULL;
if (r)
goto ERROR;
- struct pakfire_build_post_process_state state = {
+ pakfire_build_post_process_state state = {
.build = build,
.removees = removees,
};
static int __pakfire_build_remove_static_libraries(
pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
- const struct pakfire_build_post_process_state* state = data;
+ const pakfire_build_post_process_state* state = data;
char path[PATH_MAX];
int r;
}
static int pakfire_build_post_remove_static_libraries(
- struct pakfire_build* build, struct pakfire_filelist* filelist) {
+ pakfire_build* build, struct pakfire_filelist* filelist) {
return pakfire_build_post_process_files(build, filelist,
"Removing static libaries...",
__pakfire_build_remove_static_libraries,
static int __pakfire_build_remove_libtool_archives(
pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
- const struct pakfire_build_post_process_state* state = data;
+ const pakfire_build_post_process_state* state = data;
// Find all libtool archive files
if (pakfire_file_matches(file, "**.la"))
}
static int pakfire_build_post_remove_libtool_archives(
- struct pakfire_build* build, struct pakfire_filelist* filelist) {
+ pakfire_build* build, struct pakfire_filelist* filelist) {
return pakfire_build_post_process_files(build, filelist,
"Removing libtool archives...",
__pakfire_build_remove_libtool_archives,
static int __pakfire_build_check_broken_symlinks(
pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
- const struct pakfire_build_post_process_state* state = data;
+ const pakfire_build_post_process_state* state = data;
int r;
// Ignore anything that isn't a symlink
}
static int pakfire_build_post_check_broken_symlinks(
- struct pakfire_build* build, struct pakfire_filelist* filelist) {
+ pakfire_build* build, struct pakfire_filelist* filelist) {
return pakfire_build_post_process_files(build, filelist,
"Broken symlinks have been found:",
__pakfire_build_check_broken_symlinks,
static int pakfire_build_check_buildroot(
pakfire_ctx* ctx, struct pakfire_file* file, void* data) {
- const struct pakfire_build_post_process_state* state = data;
+ const pakfire_build_post_process_state* state = data;
int r;
// Skip Python byte-code files
File Issues
*/
-static int pakfire_build_run_post_build_checks(struct pakfire_build* build) {
+static int pakfire_build_run_post_build_checks(pakfire_build* build) {
struct pakfire_filelist* filelist = NULL;
int r;
NULL,
};
-static int pakfire_build_run_post_build_scripts(struct pakfire_build* build) {
+static int pakfire_build_run_post_build_scripts(pakfire_build* build) {
// Set default arguments for build scripts
const char* args[] = {
build->buildroot,
return 0;
}
-static int pakfire_build_strip(struct pakfire_build* build) {
+static int pakfire_build_strip(pakfire_build* build) {
struct pakfire_stripper* stripper = NULL;
int r;
return r;
}
-static void pakfire_build_free(struct pakfire_build* build) {
+static void pakfire_build_free(pakfire_build* build) {
if (build->repo) {
pakfire_repo_clean(build->repo, PAKFIRE_REPO_CLEAN_FLAGS_DESTROY);
pakfire_repo_unref(build->repo);
free(build);
}
-static int pakfire_build_parse_id(struct pakfire_build* build, const char* id) {
+static int pakfire_build_parse_id(pakfire_build* build, const char* id) {
int r;
// Try parsing the Build ID
/*
Sets up a new cgroup for this build
*/
-static int pakfire_build_setup_cgroup(struct pakfire_build* build) {
+static int pakfire_build_setup_cgroup(pakfire_build* build) {
struct pakfire_config* config = NULL;
char path[PATH_MAX];
int r;
/*
Sets up a new jail for this build
*/
-static int pakfire_build_setup_jail(struct pakfire_build* build) {
+static int pakfire_build_setup_jail(pakfire_build* build) {
int r;
// Create a new jail
/*
Sets up the ccache for this build
*/
-static int pakfire_build_setup_ccache(struct pakfire_build* build) {
+static int pakfire_build_setup_ccache(pakfire_build* build) {
int r;
// Check if we want a ccache
return 0;
}
-static int pakfire_build_setup_repo(struct pakfire_build* build) {
+static int pakfire_build_setup_repo(pakfire_build* build) {
char path[PATH_MAX] = PAKFIRE_TMP_DIR "/pakfire-build-repo.XXXXXX";
char url[PATH_MAX];
int r;
return r;
}
-static int pakfire_build_set_time_start(struct pakfire_build* build) {
+static int pakfire_build_set_time_start(pakfire_build* build) {
int r;
// Fetch current time
}
static int pakfire_build_setup_pakfire(
- struct pakfire_build* build, struct pakfire_config* config, const char* arch) {
+ pakfire_build* build, struct pakfire_config* config, const char* arch) {
int flags = PAKFIRE_FLAGS_BUILD;
int r;
build environment. That will save us lots of path conversions because the
path will always be the same, both inside and outside of the jail.
*/
-static int pakfire_build_setup_buildroot(struct pakfire_build* build) {
+static int pakfire_build_setup_buildroot(pakfire_build* build) {
char path[PATH_MAX] = PAKFIRE_TMP_DIR "/pakfire-buildroot.XXXXXX";
const char* buildroot = NULL;
int r;
return 0;
}
-int pakfire_build_create(struct pakfire_build** build, pakfire_ctx* ctx,
+int pakfire_build_create(pakfire_build** build, pakfire_ctx* ctx,
struct pakfire_config* config, const char* arch, const char* id, int flags) {
int r;
// Allocate build object
- struct pakfire_build* b = calloc(1, sizeof(*b));
+ pakfire_build* b = calloc(1, sizeof(*b));
if (!b)
return 1;
return r;
}
-struct pakfire_build* pakfire_build_ref(struct pakfire_build* build) {
+pakfire_build* pakfire_build_ref(pakfire_build* build) {
++build->nrefs;
return build;
}
-struct pakfire_build* pakfire_build_unref(struct pakfire_build* build) {
+pakfire_build* pakfire_build_unref(pakfire_build* build) {
if (--build->nrefs > 0)
return build;
}
int pakfire_build_set_ccache_path(
- struct pakfire_build* build, const char* path) {
+ pakfire_build* build, const char* path) {
// Check if this can be called
if (pakfire_build_has_flag(build, PAKFIRE_BUILD_DISABLE_CCACHE))
return -EPERM;
return pakfire_string_set(build->ccache_path, path);
}
-static int pakfire_build_read_makefile(struct pakfire_build* build,
+static int pakfire_build_read_makefile(pakfire_build* build,
struct pakfire_parser** parser, struct pakfire_package* package) {
char path[PATH_MAX];
int r;
return r;
}
-static int pakfire_build_perform(struct pakfire_build* build,
+static int pakfire_build_perform(pakfire_build* build,
struct pakfire_parser* makefile) {
int r;
return 0;
}
-static int pakfire_build_check_unpackaged_files(struct pakfire_build* build) {
+static int pakfire_build_check_unpackaged_files(pakfire_build* build) {
struct pakfire_filelist* filelist = NULL;
int r;
PAKFIRE_JOB_INSTALL, pkg, PAKFIRE_JOB_ESSENTIAL);
}
-static int pakfire_build_install_test(struct pakfire_build* build) {
+static int pakfire_build_install_test(pakfire_build* build) {
struct pakfire_transaction* transaction = NULL;
char* problems = NULL;
int r;
return r;
}
-static int pakfire_build_post_check(struct pakfire_build* build) {
+static int pakfire_build_post_check(pakfire_build* build) {
int r;
// Check for unpackaged files
return 0;
}
-static int pakfire_build_init(struct pakfire_build* build,
+static int pakfire_build_init(pakfire_build* build,
struct pakfire_package* package, const char** packages) {
struct pakfire_transaction* transaction = NULL;
char* problems = NULL;
return pakfire_archive_lint(archive, NULL, NULL);
}
-static int pakfire_build_lint(struct pakfire_build* build) {
+static int pakfire_build_lint(pakfire_build* build) {
int r;
// Lint all packages
return r;
}
-struct pakfire_build_result {
- struct pakfire_build* build;
+typedef struct pakfire_build_result {
+ pakfire_build* build;
// Callback
pakfire_build_result_callback callback;
void* data;
-};
+} pakfire_build_result;
-static int pakfire_build_result(pakfire_ctx* ctx, struct pakfire_package* pkg,
+static int __pakfire_build_result(pakfire_ctx* ctx, struct pakfire_package* pkg,
pakfire_archive* archive, void* data) {
- const struct pakfire_build_result* result = data;
- struct pakfire_build* build = result->build;
+ const pakfire_build_result* result = data;
+ pakfire_build* build = result->build;
int r;
// Call the callback
return 0;
}
-int pakfire_build_exec(struct pakfire_build* build, const char* path,
+int pakfire_build_exec(pakfire_build* build, const char* path,
pakfire_build_result_callback result_callback, void* data) {
struct pakfire_package* package = NULL;
struct pakfire_parser* makefile = NULL;
// Call the result callback (if any)
if (result_callback) {
- struct pakfire_build_result result = {
+ pakfire_build_result result = {
.build = build,
.callback = result_callback,
.data = data,
};
- r = pakfire_repo_walk_archives(build->repo, pakfire_build_result, &result, 0);
+ r = pakfire_repo_walk_archives(build->repo, __pakfire_build_result, &result, 0);
if (r < 0)
goto ERROR;
}
return r;
}
-static int pakfire_build_mkimage_install_deps(struct pakfire_build* build,
+static int pakfire_build_mkimage_install_deps(pakfire_build* build,
const char* type) {
struct pakfire_transaction* transaction = NULL;
char requires[NAME_MAX];
return r;
}
-static int pakfire_build_collect_packages(struct pakfire_build* build, const char* path) {
+static int pakfire_build_collect_packages(pakfire_build* build, const char* path) {
struct pakfire_transaction* transaction = NULL;
char* problems = NULL;
char* p = NULL;
return r;
}
-int pakfire_build_mkimage(struct pakfire_build* build,
+int pakfire_build_mkimage(pakfire_build* build,
const char* type, FILE* f) {
FILE* t = NULL;
char packagesdir[PATH_MAX];
/*
Drops the user into a shell
*/
-int pakfire_build_shell(struct pakfire_build* build, const char* argv[], const char** packages) {
+int pakfire_build_shell(pakfire_build* build, const char* argv[], const char** packages) {
int r;
// Initialize the build environment