]> git.ipfire.org Git - people/ms/pakfire.git/commitdiff
jail: Export in libpakfire
authorMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 Aug 2022 10:27:47 +0000 (10:27 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Wed, 3 Aug 2022 10:30:33 +0000 (10:30 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/libpakfire/include/pakfire/jail.h
src/libpakfire/jail.c
src/libpakfire/libpakfire.sym

index e5060925a8fc7849404c9bb4285003d314f0eb60..9edd5b42663291b167732300c785edaa299119ab 100644 (file)
@@ -21,8 +21,6 @@
 #ifndef PAKFIRE_JAIL_H
 #define PAKFIRE_JAIL_H
 
-#ifdef PAKFIRE_PRIVATE
-
 #include <pakfire/pakfire.h>
 
 struct pakfire_jail;
@@ -54,6 +52,8 @@ int pakfire_jail_exec(struct pakfire_jail* jail, const char* argv[], char*** out
 int pakfire_jail_exec_script(struct pakfire_jail* jail,
        const char* script, const size_t size, const char* args[], char*** output);
 
+#ifdef PAKFIRE_PRIVATE
+
 // Convenience functions
 int pakfire_jail_run(struct pakfire* pakfire, const char* argv[], int flags, char*** output);
 int pakfire_jail_run_script(struct pakfire* pakfire,
@@ -62,6 +62,6 @@ int pakfire_jail_run_script(struct pakfire* pakfire,
 int pakfire_jail_shell(struct pakfire* pakfire);
 int pakfire_jail_ldconfig(struct pakfire* pakfire);
 
-#endif
+#endif /* PAKFIRE_PRIVATE */
 
 #endif /* PAKFIRE_JAIL_H */
index a5fdee074bafe5eeac57e53bc3228a43a7829985..999baf4ac1ad1777bc317ae43c61bd606c4cd223 100644 (file)
@@ -42,6 +42,7 @@
 #include <pakfire/logging.h>
 #include <pakfire/mount.h>
 #include <pakfire/pakfire.h>
+#include <pakfire/private.h>
 #include <pakfire/util.h>
 
 #define BUFFER_SIZE      1024 * 64
@@ -156,7 +157,8 @@ static int pakfire_jail_setup_interactive_env(struct pakfire_jail* jail) {
        return 0;
 }
 
-int pakfire_jail_create(struct pakfire_jail** jail, struct pakfire* pakfire, int flags) {
+PAKFIRE_EXPORT int pakfire_jail_create(struct pakfire_jail** jail,
+               struct pakfire* pakfire, int flags) {
        int r;
 
        // Allocate a new jail
@@ -204,13 +206,13 @@ ERROR:
        return r;
 }
 
-struct pakfire_jail* pakfire_jail_ref(struct pakfire_jail* jail) {
+PAKFIRE_EXPORT struct pakfire_jail* pakfire_jail_ref(struct pakfire_jail* jail) {
        ++jail->nrefs;
 
        return jail;
 }
 
-struct pakfire_jail* pakfire_jail_unref(struct pakfire_jail* jail) {
+PAKFIRE_EXPORT struct pakfire_jail* pakfire_jail_unref(struct pakfire_jail* jail) {
        if (--jail->nrefs > 0)
                return jail;
 
@@ -255,7 +257,8 @@ static int pakfire_jail_find_env(struct pakfire_jail* jail, const char* key) {
 }
 
 // Returns the value of an environment variable or NULL
-const char* pakfire_jail_get_env(struct pakfire_jail* jail, const char* key) {
+PAKFIRE_EXPORT const char* pakfire_jail_get_env(struct pakfire_jail* jail,
+               const char* key) {
        int i = pakfire_jail_find_env(jail, key);
        if (i < 0)
                return NULL;
@@ -264,7 +267,8 @@ const char* pakfire_jail_get_env(struct pakfire_jail* jail, const char* key) {
 }
 
 // Sets an environment variable
-int pakfire_jail_set_env(struct pakfire_jail* jail, const char* key, const char* value) {
+PAKFIRE_EXPORT int pakfire_jail_set_env(struct pakfire_jail* jail,
+               const char* key, const char* value) {
        // Find the index where to write this value to
        int i = pakfire_jail_find_env(jail, key);
        if (i < 0)
@@ -289,7 +293,7 @@ int pakfire_jail_set_env(struct pakfire_jail* jail, const char* key, const char*
 }
 
 // Imports an environment
-int pakfire_jail_import_env(struct pakfire_jail* jail, const char* env[]) {
+PAKFIRE_EXPORT int pakfire_jail_import_env(struct pakfire_jail* jail, const char* env[]) {
        if (!env)
                return 0;
 
@@ -321,7 +325,7 @@ int pakfire_jail_import_env(struct pakfire_jail* jail, const char* env[]) {
 
 // Logging
 
-int pakfire_jail_set_log_callback(struct pakfire_jail* jail,
+PAKFIRE_EXPORT int pakfire_jail_set_log_callback(struct pakfire_jail* jail,
                pakfire_jail_log_callback callback, void* data) {
        jail->log_callback = callback;
        jail->log_data = data;
@@ -1128,7 +1132,8 @@ ERROR:
        return exit;
 }
 
-int pakfire_jail_exec(struct pakfire_jail* jail, const char* argv[], char*** output) {
+PAKFIRE_EXPORT int pakfire_jail_exec(struct pakfire_jail* jail,
+               const char* argv[], char*** output) {
        int r;
 
        // Store logging callback
@@ -1148,7 +1153,7 @@ int pakfire_jail_exec(struct pakfire_jail* jail, const char* argv[], char*** out
        return r;
 }
 
-int pakfire_jail_exec_script(struct pakfire_jail* jail,
+PAKFIRE_EXPORT int pakfire_jail_exec_script(struct pakfire_jail* jail,
                const char* script, const size_t size, const char* args[], char*** output) {
        char path[PATH_MAX];
        const char** argv = NULL;
index 2efa4df105c599a4f587e2a0af53fe3cf5a673cb..0ffe357879ea2f1b04dbc3411e4b7fc8bcf1bef7 100644 (file)
@@ -133,6 +133,17 @@ global:
        pakfire_key_ref;
        pakfire_key_unref;
 
+       # jail
+       pakfire_jail_create;
+       pakfire_jail_exec;
+       pakfire_jail_exec_script;
+       pakfire_jail_get_env;
+       pakfire_jail_import_env;
+       pakfire_jail_ref;
+       pakfire_jail_set_env;
+       pakfire_jail_set_log_callback;
+       pakfire_jail_unref;
+
        # log
        pakfire_log_get_priority;
        pakfire_log_set_function;