]> git.ipfire.org Git - pakfire.git/blobdiff - python/src/_pakfiremodule.c
Create an extra namespace for build environments and private network.
[pakfire.git] / python / src / _pakfiremodule.c
index 4c94c5a9b276db332ea47c74a6e5b3e241a07112..c208634919ffe1e8ba609d91274c71b961af250a 100644 (file)
 #                                                                             #
 #############################################################################*/
 
+#ifndef _GNU_SOURCE
+#define _GNU_SOURCE
+#endif
+
 #include <Python.h>
 
 #include <locale.h>
+#include <sched.h>
 #include <sys/personality.h>
 
 #include "capabilities.h"
@@ -43,6 +48,7 @@ static PyMethodDef pakfireModuleMethods[] = {
        {"set_capabilities", (PyCFunction)set_capabilities, METH_VARARGS, NULL},
        {"personality", (PyCFunction)_personality, METH_VARARGS, NULL},
        {"sync", (PyCFunction)_sync, METH_NOARGS, NULL},
+       {"unshare", (PyCFunction)_unshare, METH_VARARGS, NULL},
        { NULL, NULL, 0, NULL }
 };
 
@@ -275,6 +281,13 @@ void init_pakfire(void) {
        PyDict_SetItemString(d, "PERSONALITY_LINUX",   Py_BuildValue("i", PER_LINUX));
        PyDict_SetItemString(d, "PERSONALITY_LINUX32", Py_BuildValue("i", PER_LINUX32));
 
+       // Namespace stuff
+       PyDict_SetItemString(d, "SCHED_CLONE_NEWIPC", Py_BuildValue("i", CLONE_NEWIPC));
+       PyDict_SetItemString(d, "SCHED_CLONE_NEWPID", Py_BuildValue("i", CLONE_NEWPID));
+       PyDict_SetItemString(d, "SCHED_CLONE_NEWNET", Py_BuildValue("i", CLONE_NEWNET));
+       PyDict_SetItemString(d, "SCHED_CLONE_NEWNS",  Py_BuildValue("i", CLONE_NEWNS));
+       PyDict_SetItemString(d, "SCHED_CLONE_NEWUTS", Py_BuildValue("i", CLONE_NEWUTS));
+
        // Add constants for relations
        PyDict_SetItemString(d, "REL_EQ", Py_BuildValue("i", REL_EQ));
        PyDict_SetItemString(d, "REL_LT", Py_BuildValue("i", REL_LT));