}
static int pakfire_job_child(struct pakfire_job* job) {
+ struct pakfire* pakfire = NULL;
+ FILE* conf = NULL;
+ int r;
+
// Fetch our PID
pid_t pid = getpid();
CTX_DEBUG(job->ctx, "Launched job child as PID %d\n", pid);
+ // Map the configuration
+ conf = fmemopen(job->conf, strlen(job->conf), "r");
+ if (!conf) {
+ CTX_ERROR(job->ctx, "Could not map the configuration into memory: %m\n");
+ r = -errno;
+ goto ERROR;
+ }
+
+ // Create a new Pakfire instance
+ r = pakfire_create(&pakfire, job->ctx, NULL, job->arch, conf, PAKFIRE_FLAGS_BUILD);
+ if (r) {
+ CTX_ERROR(job->ctx, "Could not initialize Pakfire: %m\n");
+ r = -errno;
+ goto ERROR;
+ }
+
// XXX TODO
- return 1;
+ for (unsigned int i = 0; i < 5; i++) {
+ printf("WORK\n");
+ sleep(1);
+ }
+
+ERROR:
+ if (pakfire)
+ pakfire_unref(pakfire);
+ if (conf)
+ fclose(conf);
+
+ return r;
}
/*