return pakfire_jail_run(ctx, root, argv, NULL, 0, NULL, NULL);
}
-int pakfire_jail_ldconfig(pakfire_ctx* ctx, pakfire_root* root) {
- const char* argv[] = {
- "/sbin/ldconfig",
- NULL,
- };
-
- return pakfire_jail_run_if_possible(ctx, root, argv);
-}
-
int pakfire_jail_run_systemd_tmpfiles(pakfire_ctx* ctx, pakfire_root* root) {
const char* argv[] = {
"/usr/bin/systemd-tmpfiles",
return r;
}
+static int pakfire_transaction_ldconfig(pakfire_transaction* self, pakfire_jail* jail) {
+ const char* argv[] = {
+ "/sbin/ldconfig",
+ NULL,
+ };
+
+ // Run the command
+ return pakfire_jail_execute_command(jail, argv, NULL, PAKFIRE_JAIL_NOENT_OK);
+}
+
static int pakfire_transaction_extract(pakfire_transaction* transaction,
- pakfire_package* pkg, pakfire_archive* archive) {
+ pakfire_jail* jail, pakfire_package* pkg, pakfire_archive* archive) {
pakfire_filelist* filelist = NULL;
int r;
// Update the runtime linker cache
if (pakfire_filelist_contains(filelist, "*/lib*.so.?"))
- pakfire_jail_ldconfig(transaction->ctx, transaction->root);
+ pakfire_transaction_ldconfig(transaction, jail);
if (filelist)
pakfire_filelist_unref(filelist);
}
static int pakfire_transaction_erase(pakfire_transaction* transaction,
- pakfire_db* db, pakfire_package* pkg) {
+ pakfire_db* db, pakfire_jail* jail, pakfire_package* pkg) {
pakfire_filelist* filelist = NULL;
int r;
goto ERROR;
// Update the runtime linker cache after all files have been removed
- pakfire_jail_ldconfig(transaction->ctx, transaction->root);
+ r = pakfire_transaction_ldconfig(transaction, jail);
ERROR:
pakfire_progress_pop_status(transaction->progress);
if (r)
break;
- r = pakfire_transaction_extract(transaction, pkg, archive);
+ r = pakfire_transaction_extract(transaction, jail, pkg, archive);
if (r)
break;
if (r)
break;
- r = pakfire_transaction_extract(transaction, pkg, archive);
+ r = pakfire_transaction_extract(transaction, jail, pkg, archive);
if (r)
break;
if (r)
break;
- r = pakfire_transaction_erase(transaction, db, pkg);
+ r = pakfire_transaction_erase(transaction, db, jail, pkg);
if (r)
break;
// Erase the package data without running any scripts
case PAKFIRE_STEP_UPGRADED:
case PAKFIRE_STEP_DOWNGRADED:
- r = pakfire_transaction_erase(transaction, db, pkg);
+ r = pakfire_transaction_erase(transaction, db, jail, pkg);
if (r)
break;