From: mdw Date: Fri, 24 Jun 2005 11:52:23 +0000 (+0000) Subject: Add build system. Fix import. X-Git-Url: https://git.distorted.org.uk/~mdw/checkpath-python/commitdiff_plain/ab147f752ccf1e2ed765ed025e3d0c6cc899e05a Add build system. Fix import. --- diff --git a/MANIFEST.in b/MANIFEST.in new file mode 100644 index 0000000..409b7fd --- /dev/null +++ b/MANIFEST.in @@ -0,0 +1 @@ +include Makefile MANIFEST MANIFEST.in checkpath.pyx diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..e414f7b --- /dev/null +++ b/Makefile @@ -0,0 +1,24 @@ +## Makefile + +PYTHON = python +PYREXC = pyrexc +prefix = /usr/local + +all: setup.py checkpath.c + $(PYTHON) setup.py build + +clean: setup.py + $(PYTHON) setup.py clean + rm -rf build checkpath.c + +checkpath.c: checkpath.pyx + pyrexc -o $@.new checkpath.pyx + mv $@.new $@ + +dist: setup.py checkpath.c + $(PYTHON) setup.py sdist + +install: setup.py checkpath.c + $(PYTHON) setup.py install --prefix $(prefix) + +.PHONY: all clean dist install diff --git a/checkpath.c b/checkpath.c deleted file mode 100644 index cc3afe3..0000000 --- a/checkpath.c +++ /dev/null @@ -1,1002 +0,0 @@ -/* Generated by Pyrex 0.9.3 on Thu Jun 9 16:58:27 2005 */ - -#include "Python.h" -#include "structmember.h" -#ifndef PY_LONG_LONG - #define PY_LONG_LONG LONG_LONG -#endif -#include "checkpath.h" - - -typedef struct {PyObject **p; char *s;} __Pyx_InternTabEntry; /*proto*/ -typedef struct {PyObject **p; char *s; long n;} __Pyx_StringTabEntry; /*proto*/ -static PyObject *__Pyx_UnpackItem(PyObject *, int); /*proto*/ -static int __Pyx_EndUnpack(PyObject *, int); /*proto*/ -static int __Pyx_PrintItem(PyObject *); /*proto*/ -static int __Pyx_PrintNewline(void); /*proto*/ -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb); /*proto*/ -static void __Pyx_ReRaise(void); /*proto*/ -static PyObject *__Pyx_Import(PyObject *name, PyObject *from_list); /*proto*/ -static PyObject *__Pyx_GetExcValue(void); /*proto*/ -static int __Pyx_ArgTypeTest(PyObject *obj, PyTypeObject *type, int none_allowed, char *name); /*proto*/ -static int __Pyx_TypeTest(PyObject *obj, PyTypeObject *type); /*proto*/ -static int __Pyx_GetStarArgs(PyObject **args, PyObject **kwds, char *kwd_list[], int nargs, PyObject **args2, PyObject **kwds2); /*proto*/ -static void __Pyx_WriteUnraisable(char *name); /*proto*/ -static void __Pyx_AddTraceback(char *funcname); /*proto*/ -static PyTypeObject *__Pyx_ImportType(char *module_name, char *class_name, long size); /*proto*/ -static int __Pyx_SetVtable(PyObject *dict, void *vtable); /*proto*/ -static int __Pyx_GetVtable(PyObject *dict, void *vtabptr); /*proto*/ -static PyObject *__Pyx_CreateClass(PyObject *bases, PyObject *dict, PyObject *name, char *modname); /*proto*/ -static int __Pyx_InternStrings(__Pyx_InternTabEntry *t); /*proto*/ -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t); /*proto*/ -static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name); /*proto*/ - -static PyObject *__pyx_m; -static PyObject *__pyx_b; -static int __pyx_lineno; -static char *__pyx_filename; -staticforward char **__pyx_f; - -/* Declarations from checkpath */ - -staticforward PyTypeObject __pyx_type_9checkpath_CheckPath; - -struct __pyx_obj_9checkpath_CheckPath { - PyObject_HEAD - struct checkpath cp; -}; - -static PyTypeObject *__pyx_ptype_9checkpath_CheckPath = 0; -static void (__pyx_f_9checkpath_cp_report(unsigned int ,int ,char (*),char (*),void (*))); /*proto*/ - -/* Implementation of checkpath */ - -static PyObject *__pyx_n_ERROR; -static PyObject *__pyx_n_WRWORLD; -static PyObject *__pyx_n_WRGRP; -static PyObject *__pyx_n_WROTHGRP; -static PyObject *__pyx_n_WROTHUSR; -static PyObject *__pyx_n_PROBLEMS; -static PyObject *__pyx_n_SYMLINK; -static PyObject *__pyx_n_REPORT; -static PyObject *__pyx_n_STICKYOK; - -static PyObject *__pyx_n_report; - -static char (__pyx_k1[]) = ""; - -static void __pyx_f_9checkpath_cp_report(unsigned int __pyx_v_what,int __pyx_v_verb,char (*__pyx_v_path),char (*__pyx_v_msg),void (*__pyx_v_arg)) { - PyObject *__pyx_v_cp; - PyObject *__pyx_1 = 0; - int __pyx_2; - PyObject *__pyx_3 = 0; - PyObject *__pyx_4 = 0; - PyObject *__pyx_5 = 0; - PyObject *__pyx_6 = 0; - PyObject *__pyx_7 = 0; - __pyx_v_cp = Py_None; Py_INCREF(__pyx_v_cp); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":44 */ - __pyx_1 = (PyObject *)__pyx_v_arg; - Py_INCREF(__pyx_1); - Py_DECREF(__pyx_v_cp); - __pyx_v_cp = __pyx_1; - __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":45 */ - __pyx_2 = (__pyx_v_msg == 0); - if (__pyx_2) { - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":46 */ - __pyx_v_msg = __pyx_k1; - goto __pyx_L2; - } - __pyx_L2:; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":47 */ - __pyx_1 = PyObject_GetAttr(__pyx_v_cp, __pyx_n_report); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;} - __pyx_3 = PyInt_FromLong(__pyx_v_what); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;} - __pyx_4 = PyInt_FromLong(__pyx_v_verb); if (!__pyx_4) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;} - __pyx_5 = PyString_FromString(__pyx_v_path); if (!__pyx_5) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;} - __pyx_6 = PyString_FromString(__pyx_v_msg); if (!__pyx_6) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;} - __pyx_7 = PyTuple_New(4); if (!__pyx_7) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;} - PyTuple_SET_ITEM(__pyx_7, 0, __pyx_3); - PyTuple_SET_ITEM(__pyx_7, 1, __pyx_4); - PyTuple_SET_ITEM(__pyx_7, 2, __pyx_5); - PyTuple_SET_ITEM(__pyx_7, 3, __pyx_6); - __pyx_3 = 0; - __pyx_4 = 0; - __pyx_5 = 0; - __pyx_6 = 0; - __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_7); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 47; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - Py_DECREF(__pyx_7); __pyx_7 = 0; - Py_DECREF(__pyx_3); __pyx_3 = 0; - - goto __pyx_L0; - __pyx_L1:; - Py_XDECREF(__pyx_1); - Py_XDECREF(__pyx_3); - Py_XDECREF(__pyx_4); - Py_XDECREF(__pyx_5); - Py_XDECREF(__pyx_6); - Py_XDECREF(__pyx_7); - __Pyx_WriteUnraisable("checkpath.cp_report"); - __pyx_L0:; - Py_DECREF(__pyx_v_cp); -} - -static int __pyx_f_9checkpath_9CheckPath___init__(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static int __pyx_f_9checkpath_9CheckPath___init__(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds) { - int __pyx_r; - static char *__pyx_argnames[] = {0}; - if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return -1; - Py_INCREF(__pyx_v_me); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":52 */ - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_uid = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":53 */ - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_gids = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":54 */ - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_verbose = 1; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":55 */ - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_what = CP_PROBLEMS; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":56 */ - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_report = __pyx_f_9checkpath_cp_report; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":57 */ - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_arg = ((void (*))__pyx_v_me); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":58 */ - checkpath_setids((&((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp)); - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1:; - __Pyx_AddTraceback("checkpath.CheckPath.__init__"); - __pyx_r = -1; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - return __pyx_r; -} - -static PyObject *__pyx_f_9checkpath_9CheckPath_setids(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_f_9checkpath_9CheckPath_setids(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_r; - static char *__pyx_argnames[] = {0}; - if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "", __pyx_argnames)) return 0; - Py_INCREF(__pyx_v_me); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":60 */ - checkpath_setids((&((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp)); - - __pyx_r = Py_None; Py_INCREF(__pyx_r); - goto __pyx_L0; - __pyx_L1:; - __Pyx_AddTraceback("checkpath.CheckPath.setids"); - __pyx_r = 0; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - return __pyx_r; -} - -static PyObject *__pyx_f_9checkpath_9CheckPath_3uid___get__(PyObject *__pyx_v_me); /*proto*/ -static PyObject *__pyx_f_9checkpath_9CheckPath_3uid___get__(PyObject *__pyx_v_me) { - PyObject *__pyx_r; - PyObject *__pyx_1 = 0; - Py_INCREF(__pyx_v_me); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":63 */ - __pyx_1 = PyInt_FromLong(((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_uid); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 63; goto __pyx_L1;} - __pyx_r = __pyx_1; - __pyx_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; Py_INCREF(__pyx_r); - goto __pyx_L0; - __pyx_L1:; - Py_XDECREF(__pyx_1); - __Pyx_AddTraceback("checkpath.CheckPath.uid.__get__"); - __pyx_r = 0; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - return __pyx_r; -} - -static int __pyx_f_9checkpath_9CheckPath_3uid___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val); /*proto*/ -static int __pyx_f_9checkpath_9CheckPath_3uid___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val) { - int __pyx_r; - uid_t __pyx_1; - Py_INCREF(__pyx_v_me); - Py_INCREF(__pyx_v_val); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":65 */ - __pyx_1 = PyInt_AsLong(__pyx_v_val); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 65; goto __pyx_L1;} - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_uid = __pyx_1; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1:; - __Pyx_AddTraceback("checkpath.CheckPath.uid.__set__"); - __pyx_r = -1; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - Py_DECREF(__pyx_v_val); - return __pyx_r; -} - -static PyObject *__pyx_f_9checkpath_9CheckPath_4gids___get__(PyObject *__pyx_v_me); /*proto*/ -static PyObject *__pyx_f_9checkpath_9CheckPath_4gids___get__(PyObject *__pyx_v_me) { - PyObject *__pyx_v_g; - PyObject *__pyx_v_i; - PyObject *__pyx_r; - PyObject *__pyx_1 = 0; - long __pyx_2; - int __pyx_3; - int __pyx_4; - Py_INCREF(__pyx_v_me); - __pyx_v_g = Py_None; Py_INCREF(__pyx_v_g); - __pyx_v_i = Py_None; Py_INCREF(__pyx_v_i); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":68 */ - __pyx_1 = PyList_New(0); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 68; goto __pyx_L1;} - Py_DECREF(__pyx_v_g); - __pyx_v_g = __pyx_1; - __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":69 */ - __pyx_3 = ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_gids; - for (__pyx_2 = 0; __pyx_2 < __pyx_3; ++__pyx_2) { - __pyx_1 = PyInt_FromLong(__pyx_2); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 69; goto __pyx_L1;} - Py_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_1; - __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":70 */ - __pyx_4 = PyInt_AsLong(__pyx_v_i); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; goto __pyx_L1;} - __pyx_1 = PyInt_FromLong((((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_gid[__pyx_4])); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; goto __pyx_L1;} - if (PyObject_SetItem(__pyx_v_g, __pyx_v_i, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 70; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - __pyx_L2:; - } - __pyx_L3:; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":71 */ - Py_INCREF(__pyx_v_g); - __pyx_r = __pyx_v_g; - goto __pyx_L0; - - __pyx_r = Py_None; Py_INCREF(__pyx_r); - goto __pyx_L0; - __pyx_L1:; - Py_XDECREF(__pyx_1); - __Pyx_AddTraceback("checkpath.CheckPath.gids.__get__"); - __pyx_r = 0; - __pyx_L0:; - Py_DECREF(__pyx_v_g); - Py_DECREF(__pyx_v_i); - Py_DECREF(__pyx_v_me); - return __pyx_r; -} - -static PyObject *__pyx_n_len; -static PyObject *__pyx_n_TypeError; - -static PyObject *__pyx_k2p; - -static char (__pyx_k2[]) = "too many groups"; - -static int __pyx_f_9checkpath_9CheckPath_4gids___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val); /*proto*/ -static int __pyx_f_9checkpath_9CheckPath_4gids___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val) { - PyObject *__pyx_v_i; - int __pyx_r; - PyObject *__pyx_1 = 0; - PyObject *__pyx_2 = 0; - PyObject *__pyx_3 = 0; - int __pyx_4; - long __pyx_5; - long __pyx_6; - gid_t __pyx_7; - Py_INCREF(__pyx_v_me); - Py_INCREF(__pyx_v_val); - __pyx_v_i = Py_None; Py_INCREF(__pyx_v_i); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":73 */ - __pyx_1 = __Pyx_GetName(__pyx_b, __pyx_n_len); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;} - __pyx_2 = PyTuple_New(1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;} - Py_INCREF(__pyx_v_val); - PyTuple_SET_ITEM(__pyx_2, 0, __pyx_v_val); - __pyx_3 = PyObject_CallObject(__pyx_1, __pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - Py_DECREF(__pyx_2); __pyx_2 = 0; - __pyx_1 = PyInt_FromLong((NGROUPS_MAX + 1)); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;} - if (PyObject_Cmp(__pyx_3, __pyx_1, &__pyx_4) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 73; goto __pyx_L1;} - __pyx_4 = __pyx_4 >= 0; - Py_DECREF(__pyx_3); __pyx_3 = 0; - Py_DECREF(__pyx_1); __pyx_1 = 0; - if (__pyx_4) { - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":74 */ - __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_TypeError); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; goto __pyx_L1;} - __Pyx_Raise(__pyx_2, __pyx_k2p, 0); - Py_DECREF(__pyx_2); __pyx_2 = 0; - {__pyx_filename = __pyx_f[0]; __pyx_lineno = 74; goto __pyx_L1;} - goto __pyx_L2; - } - __pyx_L2:; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":75 */ - __pyx_3 = __Pyx_GetName(__pyx_b, __pyx_n_len); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} - __pyx_1 = PyTuple_New(1); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} - Py_INCREF(__pyx_v_val); - PyTuple_SET_ITEM(__pyx_1, 0, __pyx_v_val); - __pyx_2 = PyObject_CallObject(__pyx_3, __pyx_1); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} - Py_DECREF(__pyx_3); __pyx_3 = 0; - Py_DECREF(__pyx_1); __pyx_1 = 0; - __pyx_6 = PyInt_AsLong(__pyx_2); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} - Py_DECREF(__pyx_2); __pyx_2 = 0; - for (__pyx_5 = 0; __pyx_5 < __pyx_6; ++__pyx_5) { - __pyx_3 = PyInt_FromLong(__pyx_5); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 75; goto __pyx_L1;} - Py_DECREF(__pyx_v_i); - __pyx_v_i = __pyx_3; - __pyx_3 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":76 */ - __pyx_1 = PyObject_GetItem(__pyx_v_val, __pyx_v_i); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; goto __pyx_L1;} - __pyx_7 = PyInt_AsLong(__pyx_1); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - __pyx_4 = PyInt_AsLong(__pyx_v_i); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 76; goto __pyx_L1;} - (((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_gid[__pyx_4]) = __pyx_7; - __pyx_L3:; - } - __pyx_L4:; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":77 */ - __pyx_2 = __Pyx_GetName(__pyx_b, __pyx_n_len); if (!__pyx_2) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} - __pyx_3 = PyTuple_New(1); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} - Py_INCREF(__pyx_v_val); - PyTuple_SET_ITEM(__pyx_3, 0, __pyx_v_val); - __pyx_1 = PyObject_CallObject(__pyx_2, __pyx_3); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} - Py_DECREF(__pyx_2); __pyx_2 = 0; - Py_DECREF(__pyx_3); __pyx_3 = 0; - __pyx_4 = PyInt_AsLong(__pyx_1); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 77; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_gids = __pyx_4; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1:; - Py_XDECREF(__pyx_1); - Py_XDECREF(__pyx_2); - Py_XDECREF(__pyx_3); - __Pyx_AddTraceback("checkpath.CheckPath.gids.__set__"); - __pyx_r = -1; - __pyx_L0:; - Py_DECREF(__pyx_v_i); - Py_DECREF(__pyx_v_me); - Py_DECREF(__pyx_v_val); - return __pyx_r; -} - -static PyObject *__pyx_f_9checkpath_9CheckPath_7verbose___get__(PyObject *__pyx_v_me); /*proto*/ -static PyObject *__pyx_f_9checkpath_9CheckPath_7verbose___get__(PyObject *__pyx_v_me) { - PyObject *__pyx_r; - PyObject *__pyx_1 = 0; - Py_INCREF(__pyx_v_me); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":80 */ - __pyx_1 = PyInt_FromLong(((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_verbose); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 80; goto __pyx_L1;} - __pyx_r = __pyx_1; - __pyx_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; Py_INCREF(__pyx_r); - goto __pyx_L0; - __pyx_L1:; - Py_XDECREF(__pyx_1); - __Pyx_AddTraceback("checkpath.CheckPath.verbose.__get__"); - __pyx_r = 0; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - return __pyx_r; -} - -static int __pyx_f_9checkpath_9CheckPath_7verbose___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val); /*proto*/ -static int __pyx_f_9checkpath_9CheckPath_7verbose___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val) { - int __pyx_r; - int __pyx_1; - Py_INCREF(__pyx_v_me); - Py_INCREF(__pyx_v_val); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":82 */ - __pyx_1 = PyInt_AsLong(__pyx_v_val); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 82; goto __pyx_L1;} - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_verbose = __pyx_1; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1:; - __Pyx_AddTraceback("checkpath.CheckPath.verbose.__set__"); - __pyx_r = -1; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - Py_DECREF(__pyx_v_val); - return __pyx_r; -} - -static PyObject *__pyx_f_9checkpath_9CheckPath_4what___get__(PyObject *__pyx_v_me); /*proto*/ -static PyObject *__pyx_f_9checkpath_9CheckPath_4what___get__(PyObject *__pyx_v_me) { - PyObject *__pyx_r; - PyObject *__pyx_1 = 0; - Py_INCREF(__pyx_v_me); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":85 */ - __pyx_1 = PyInt_FromLong(((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_what); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 85; goto __pyx_L1;} - __pyx_r = __pyx_1; - __pyx_1 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; Py_INCREF(__pyx_r); - goto __pyx_L0; - __pyx_L1:; - Py_XDECREF(__pyx_1); - __Pyx_AddTraceback("checkpath.CheckPath.what.__get__"); - __pyx_r = 0; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - return __pyx_r; -} - -static int __pyx_f_9checkpath_9CheckPath_4what___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val); /*proto*/ -static int __pyx_f_9checkpath_9CheckPath_4what___set__(PyObject *__pyx_v_me, PyObject *__pyx_v_val) { - int __pyx_r; - unsigned int __pyx_1; - Py_INCREF(__pyx_v_me); - Py_INCREF(__pyx_v_val); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":87 */ - __pyx_1 = PyInt_AsLong(__pyx_v_val); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 87; goto __pyx_L1;} - ((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp.cp_what = __pyx_1; - - __pyx_r = 0; - goto __pyx_L0; - __pyx_L1:; - __Pyx_AddTraceback("checkpath.CheckPath.what.__set__"); - __pyx_r = -1; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - Py_DECREF(__pyx_v_val); - return __pyx_r; -} - -static PyObject *__pyx_f_9checkpath_9CheckPath_check(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_f_9checkpath_9CheckPath_check(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_path = 0; - PyObject *__pyx_r; - char (*__pyx_1); - int __pyx_2; - PyObject *__pyx_3 = 0; - static char *__pyx_argnames[] = {"path",0}; - if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "O", __pyx_argnames, &__pyx_v_path)) return 0; - Py_INCREF(__pyx_v_me); - Py_INCREF(__pyx_v_path); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":89 */ - __pyx_1 = PyString_AsString(__pyx_v_path); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;} - __pyx_2 = checkpath(__pyx_1,(&((struct __pyx_obj_9checkpath_CheckPath *)__pyx_v_me)->cp)); if (PyErr_Occurred()) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;} - __pyx_3 = PyInt_FromLong(__pyx_2); if (!__pyx_3) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 89; goto __pyx_L1;} - __pyx_r = __pyx_3; - __pyx_3 = 0; - goto __pyx_L0; - - __pyx_r = Py_None; Py_INCREF(__pyx_r); - goto __pyx_L0; - __pyx_L1:; - Py_XDECREF(__pyx_3); - __Pyx_AddTraceback("checkpath.CheckPath.check"); - __pyx_r = 0; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - Py_DECREF(__pyx_v_path); - return __pyx_r; -} - -static PyObject *__pyx_f_9checkpath_9CheckPath_report(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/ -static PyObject *__pyx_f_9checkpath_9CheckPath_report(PyObject *__pyx_v_me, PyObject *__pyx_args, PyObject *__pyx_kwds) { - PyObject *__pyx_v_what = 0; - PyObject *__pyx_v_verb = 0; - PyObject *__pyx_v_path = 0; - PyObject *__pyx_v_msg = 0; - PyObject *__pyx_r; - static char *__pyx_argnames[] = {"what","verb","path","msg",0}; - if (!PyArg_ParseTupleAndKeywords(__pyx_args, __pyx_kwds, "OOOO", __pyx_argnames, &__pyx_v_what, &__pyx_v_verb, &__pyx_v_path, &__pyx_v_msg)) return 0; - Py_INCREF(__pyx_v_me); - Py_INCREF(__pyx_v_what); - Py_INCREF(__pyx_v_verb); - Py_INCREF(__pyx_v_path); - Py_INCREF(__pyx_v_msg); - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":91 */ - - __pyx_r = Py_None; Py_INCREF(__pyx_r); - goto __pyx_L0; - __pyx_L1:; - __Pyx_AddTraceback("checkpath.CheckPath.report"); - __pyx_r = 0; - __pyx_L0:; - Py_DECREF(__pyx_v_me); - Py_DECREF(__pyx_v_what); - Py_DECREF(__pyx_v_verb); - Py_DECREF(__pyx_v_path); - Py_DECREF(__pyx_v_msg); - return __pyx_r; -} - -static __Pyx_InternTabEntry __pyx_intern_tab[] = { - {&__pyx_n_ERROR, "ERROR"}, - {&__pyx_n_PROBLEMS, "PROBLEMS"}, - {&__pyx_n_REPORT, "REPORT"}, - {&__pyx_n_STICKYOK, "STICKYOK"}, - {&__pyx_n_SYMLINK, "SYMLINK"}, - {&__pyx_n_TypeError, "TypeError"}, - {&__pyx_n_WRGRP, "WRGRP"}, - {&__pyx_n_WROTHGRP, "WROTHGRP"}, - {&__pyx_n_WROTHUSR, "WROTHUSR"}, - {&__pyx_n_WRWORLD, "WRWORLD"}, - {&__pyx_n_len, "len"}, - {&__pyx_n_report, "report"}, - {0, 0} -}; - -static __Pyx_StringTabEntry __pyx_string_tab[] = { - {&__pyx_k2p, __pyx_k2, sizeof(__pyx_k2)}, - {0, 0, 0} -}; - -static PyObject *__pyx_tp_new_9checkpath_CheckPath(PyTypeObject *t, PyObject *a, PyObject *k) { - PyObject *o = (*t->tp_alloc)(t, 0); - struct __pyx_obj_9checkpath_CheckPath *p = (struct __pyx_obj_9checkpath_CheckPath *)o; - return o; -} - -static void __pyx_tp_dealloc_9checkpath_CheckPath(PyObject *o) { - struct __pyx_obj_9checkpath_CheckPath *p = (struct __pyx_obj_9checkpath_CheckPath *)o; - (*o->ob_type->tp_free)(o); -} - -static int __pyx_tp_traverse_9checkpath_CheckPath(PyObject *o, visitproc v, void *a) { - int e; - struct __pyx_obj_9checkpath_CheckPath *p = (struct __pyx_obj_9checkpath_CheckPath *)o; - return 0; -} - -static int __pyx_tp_clear_9checkpath_CheckPath(PyObject *o) { - struct __pyx_obj_9checkpath_CheckPath *p = (struct __pyx_obj_9checkpath_CheckPath *)o; - return 0; -} - -static PyObject *__pyx_getprop_9checkpath_9CheckPath_uid(PyObject *o, void *x) { - return __pyx_f_9checkpath_9CheckPath_3uid___get__(o); -} - -static int __pyx_setprop_9checkpath_9CheckPath_uid(PyObject *o, PyObject *v, void *x) { - if (v) { - return __pyx_f_9checkpath_9CheckPath_3uid___set__(o, v); - } - else { - PyErr_SetString(PyExc_NotImplementedError, "__del__"); - return -1; - } -} - -static PyObject *__pyx_getprop_9checkpath_9CheckPath_gids(PyObject *o, void *x) { - return __pyx_f_9checkpath_9CheckPath_4gids___get__(o); -} - -static int __pyx_setprop_9checkpath_9CheckPath_gids(PyObject *o, PyObject *v, void *x) { - if (v) { - return __pyx_f_9checkpath_9CheckPath_4gids___set__(o, v); - } - else { - PyErr_SetString(PyExc_NotImplementedError, "__del__"); - return -1; - } -} - -static PyObject *__pyx_getprop_9checkpath_9CheckPath_verbose(PyObject *o, void *x) { - return __pyx_f_9checkpath_9CheckPath_7verbose___get__(o); -} - -static int __pyx_setprop_9checkpath_9CheckPath_verbose(PyObject *o, PyObject *v, void *x) { - if (v) { - return __pyx_f_9checkpath_9CheckPath_7verbose___set__(o, v); - } - else { - PyErr_SetString(PyExc_NotImplementedError, "__del__"); - return -1; - } -} - -static PyObject *__pyx_getprop_9checkpath_9CheckPath_what(PyObject *o, void *x) { - return __pyx_f_9checkpath_9CheckPath_4what___get__(o); -} - -static int __pyx_setprop_9checkpath_9CheckPath_what(PyObject *o, PyObject *v, void *x) { - if (v) { - return __pyx_f_9checkpath_9CheckPath_4what___set__(o, v); - } - else { - PyErr_SetString(PyExc_NotImplementedError, "__del__"); - return -1; - } -} - -static struct PyMethodDef __pyx_methods_9checkpath_CheckPath[] = { - {"setids", (PyCFunction)__pyx_f_9checkpath_9CheckPath_setids, METH_VARARGS|METH_KEYWORDS, 0}, - {"check", (PyCFunction)__pyx_f_9checkpath_9CheckPath_check, METH_VARARGS|METH_KEYWORDS, 0}, - {"report", (PyCFunction)__pyx_f_9checkpath_9CheckPath_report, METH_VARARGS|METH_KEYWORDS, 0}, - {0, 0, 0, 0} -}; - -static struct PyGetSetDef __pyx_getsets_9checkpath_CheckPath[] = { - {"uid", __pyx_getprop_9checkpath_9CheckPath_uid, __pyx_setprop_9checkpath_9CheckPath_uid, 0, 0}, - {"gids", __pyx_getprop_9checkpath_9CheckPath_gids, __pyx_setprop_9checkpath_9CheckPath_gids, 0, 0}, - {"verbose", __pyx_getprop_9checkpath_9CheckPath_verbose, __pyx_setprop_9checkpath_9CheckPath_verbose, 0, 0}, - {"what", __pyx_getprop_9checkpath_9CheckPath_what, __pyx_setprop_9checkpath_9CheckPath_what, 0, 0}, - {0, 0, 0, 0, 0} -}; - -static PyNumberMethods __pyx_tp_as_number_CheckPath = { - 0, /*nb_add*/ - 0, /*nb_subtract*/ - 0, /*nb_multiply*/ - 0, /*nb_divide*/ - 0, /*nb_remainder*/ - 0, /*nb_divmod*/ - 0, /*nb_power*/ - 0, /*nb_negative*/ - 0, /*nb_positive*/ - 0, /*nb_absolute*/ - 0, /*nb_nonzero*/ - 0, /*nb_invert*/ - 0, /*nb_lshift*/ - 0, /*nb_rshift*/ - 0, /*nb_and*/ - 0, /*nb_xor*/ - 0, /*nb_or*/ - 0, /*nb_coerce*/ - 0, /*nb_int*/ - 0, /*nb_long*/ - 0, /*nb_float*/ - 0, /*nb_oct*/ - 0, /*nb_hex*/ - 0, /*nb_inplace_add*/ - 0, /*nb_inplace_subtract*/ - 0, /*nb_inplace_multiply*/ - 0, /*nb_inplace_divide*/ - 0, /*nb_inplace_remainder*/ - 0, /*nb_inplace_power*/ - 0, /*nb_inplace_lshift*/ - 0, /*nb_inplace_rshift*/ - 0, /*nb_inplace_and*/ - 0, /*nb_inplace_xor*/ - 0, /*nb_inplace_or*/ - 0, /*nb_floor_divide*/ - 0, /*nb_true_divide*/ - 0, /*nb_inplace_floor_divide*/ - 0, /*nb_inplace_true_divide*/ -}; - -static PySequenceMethods __pyx_tp_as_sequence_CheckPath = { - 0, /*sq_length*/ - 0, /*sq_concat*/ - 0, /*sq_repeat*/ - 0, /*sq_item*/ - 0, /*sq_slice*/ - 0, /*sq_ass_item*/ - 0, /*sq_ass_slice*/ - 0, /*sq_contains*/ - 0, /*sq_inplace_concat*/ - 0, /*sq_inplace_repeat*/ -}; - -static PyMappingMethods __pyx_tp_as_mapping_CheckPath = { - 0, /*mp_length*/ - 0, /*mp_subscript*/ - 0, /*mp_ass_subscript*/ -}; - -static PyBufferProcs __pyx_tp_as_buffer_CheckPath = { - 0, /*bf_getreadbuffer*/ - 0, /*bf_getwritebuffer*/ - 0, /*bf_getsegcount*/ - 0, /*bf_getcharbuffer*/ -}; - -statichere PyTypeObject __pyx_type_9checkpath_CheckPath = { - PyObject_HEAD_INIT(0) - 0, /*ob_size*/ - "checkpath.CheckPath", /*tp_name*/ - sizeof(struct __pyx_obj_9checkpath_CheckPath), /*tp_basicsize*/ - 0, /*tp_itemsize*/ - __pyx_tp_dealloc_9checkpath_CheckPath, /*tp_dealloc*/ - 0, /*tp_print*/ - 0, /*tp_getattr*/ - 0, /*tp_setattr*/ - 0, /*tp_compare*/ - 0, /*tp_repr*/ - &__pyx_tp_as_number_CheckPath, /*tp_as_number*/ - &__pyx_tp_as_sequence_CheckPath, /*tp_as_sequence*/ - &__pyx_tp_as_mapping_CheckPath, /*tp_as_mapping*/ - 0, /*tp_hash*/ - 0, /*tp_call*/ - 0, /*tp_str*/ - 0, /*tp_getattro*/ - 0, /*tp_setattro*/ - &__pyx_tp_as_buffer_CheckPath, /*tp_as_buffer*/ - Py_TPFLAGS_DEFAULT|Py_TPFLAGS_CHECKTYPES|Py_TPFLAGS_BASETYPE, /*tp_flags*/ - 0, /*tp_doc*/ - __pyx_tp_traverse_9checkpath_CheckPath, /*tp_traverse*/ - __pyx_tp_clear_9checkpath_CheckPath, /*tp_clear*/ - 0, /*tp_richcompare*/ - 0, /*tp_weaklistoffset*/ - 0, /*tp_iter*/ - 0, /*tp_iternext*/ - __pyx_methods_9checkpath_CheckPath, /*tp_methods*/ - 0, /*tp_members*/ - __pyx_getsets_9checkpath_CheckPath, /*tp_getset*/ - 0, /*tp_base*/ - 0, /*tp_dict*/ - 0, /*tp_descr_get*/ - 0, /*tp_descr_set*/ - 0, /*tp_dictoffset*/ - __pyx_f_9checkpath_9CheckPath___init__, /*tp_init*/ - 0, /*tp_alloc*/ - __pyx_tp_new_9checkpath_CheckPath, /*tp_new*/ - 0, /*tp_free*/ - 0, /*tp_is_gc*/ - 0, /*tp_bases*/ - 0, /*tp_mro*/ - 0, /*tp_cache*/ - 0, /*tp_subclasses*/ - 0, /*tp_weaklist*/ -}; - -static struct PyMethodDef __pyx_methods[] = { - {0, 0, 0, 0} -}; - -DL_EXPORT(void) initcheckpath(void); /*proto*/ -DL_EXPORT(void) initcheckpath(void) { - PyObject *__pyx_1 = 0; - __pyx_m = Py_InitModule4("checkpath", __pyx_methods, 0, 0, PYTHON_API_VERSION); - if (!__pyx_m) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;}; - __pyx_b = PyImport_AddModule("__builtin__"); - if (!__pyx_b) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;}; - if (PyObject_SetAttrString(__pyx_m, "__builtins__", __pyx_b) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;}; - if (__Pyx_InternStrings(__pyx_intern_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;}; - if (__Pyx_InitStrings(__pyx_string_tab) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 3; goto __pyx_L1;}; - if (PyType_Ready(&__pyx_type_9checkpath_CheckPath) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; goto __pyx_L1;} - if (PyObject_SetAttrString(__pyx_m, "CheckPath", (PyObject *)&__pyx_type_9checkpath_CheckPath) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 49; goto __pyx_L1;} - __pyx_ptype_9checkpath_CheckPath = &__pyx_type_9checkpath_CheckPath; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":31 */ - __pyx_1 = PyInt_FromLong(CP_ERROR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_ERROR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 31; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":32 */ - __pyx_1 = PyInt_FromLong(CP_WRWORLD); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_WRWORLD, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 32; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":33 */ - __pyx_1 = PyInt_FromLong(CP_WRGRP); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_WRGRP, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 33; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":34 */ - __pyx_1 = PyInt_FromLong(CP_WROTHGRP); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_WROTHGRP, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 34; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":35 */ - __pyx_1 = PyInt_FromLong(CP_WROTHUSR); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_WROTHUSR, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 35; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":36 */ - __pyx_1 = PyInt_FromLong(CP_PROBLEMS); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_PROBLEMS, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 36; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":37 */ - __pyx_1 = PyInt_FromLong(CP_SYMLINK); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_SYMLINK, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 37; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":38 */ - __pyx_1 = PyInt_FromLong(CP_REPORT); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_REPORT, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 38; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":39 */ - __pyx_1 = PyInt_FromLong(CP_STICKYOK); if (!__pyx_1) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;} - if (PyObject_SetAttr(__pyx_m, __pyx_n_STICKYOK, __pyx_1) < 0) {__pyx_filename = __pyx_f[0]; __pyx_lineno = 39; goto __pyx_L1;} - Py_DECREF(__pyx_1); __pyx_1 = 0; - - /* "/home/mdw/src/chkpath-python/checkpath.pyx":90 */ - return; - __pyx_L1:; - Py_XDECREF(__pyx_1); - __Pyx_AddTraceback("checkpath"); -} - -static char *__pyx_filenames[] = { - "checkpath.pyx", -}; -statichere char **__pyx_f = __pyx_filenames; - -/* Runtime support code */ - -static void __Pyx_WriteUnraisable(char *name) { - PyObject *old_exc, *old_val, *old_tb; - PyObject *ctx; - PyErr_Fetch(&old_exc, &old_val, &old_tb); - ctx = PyString_FromString(name); - PyErr_Restore(old_exc, old_val, old_tb); - if (!ctx) - ctx = Py_None; - PyErr_WriteUnraisable(ctx); -} - -static PyObject *__Pyx_GetName(PyObject *dict, PyObject *name) { - PyObject *result; - result = PyObject_GetAttr(dict, name); - if (!result) - PyErr_SetObject(PyExc_NameError, name); - return result; -} - -static void __Pyx_Raise(PyObject *type, PyObject *value, PyObject *tb) { - Py_XINCREF(type); - Py_XINCREF(value); - Py_XINCREF(tb); - /* First, check the traceback argument, replacing None with NULL. */ - if (tb == Py_None) { - Py_DECREF(tb); - tb = 0; - } - else if (tb != NULL && !PyTraceBack_Check(tb)) { - PyErr_SetString(PyExc_TypeError, - "raise: arg 3 must be a traceback or None"); - goto raise_error; - } - /* Next, replace a missing value with None */ - if (value == NULL) { - value = Py_None; - Py_INCREF(value); - } - /* Next, repeatedly, replace a tuple exception with its first item */ - while (PyTuple_Check(type) && PyTuple_Size(type) > 0) { - PyObject *tmp = type; - type = PyTuple_GET_ITEM(type, 0); - Py_INCREF(type); - Py_DECREF(tmp); - } - if (PyString_Check(type)) - ; - else if (PyClass_Check(type)) - ; /*PyErr_NormalizeException(&type, &value, &tb);*/ - else if (PyInstance_Check(type)) { - /* Raising an instance. The value should be a dummy. */ - if (value != Py_None) { - PyErr_SetString(PyExc_TypeError, - "instance exception may not have a separate value"); - goto raise_error; - } - else { - /* Normalize to raise , */ - Py_DECREF(value); - value = type; - type = (PyObject*) ((PyInstanceObject*)type)->in_class; - Py_INCREF(type); - } - } - else { - /* Not something you can raise. You get an exception - anyway, just not what you specified :-) */ - PyErr_Format(PyExc_TypeError, - "exceptions must be strings, classes, or " - "instances, not %s", type->ob_type->tp_name); - goto raise_error; - } - PyErr_Restore(type, value, tb); - return; -raise_error: - Py_XDECREF(value); - Py_XDECREF(type); - Py_XDECREF(tb); - return; -} - -static int __Pyx_InternStrings(__Pyx_InternTabEntry *t) { - while (t->p) { - *t->p = PyString_InternFromString(t->s); - if (!*t->p) - return -1; - ++t; - } - return 0; -} - -static int __Pyx_InitStrings(__Pyx_StringTabEntry *t) { - while (t->p) { - *t->p = PyString_FromStringAndSize(t->s, t->n - 1); - if (!*t->p) - return -1; - ++t; - } - return 0; -} - -#include "compile.h" -#include "frameobject.h" -#include "traceback.h" - -static void __Pyx_AddTraceback(char *funcname) { - PyObject *py_srcfile = 0; - PyObject *py_funcname = 0; - PyObject *py_globals = 0; - PyObject *empty_tuple = 0; - PyObject *empty_string = 0; - PyCodeObject *py_code = 0; - PyFrameObject *py_frame = 0; - - py_srcfile = PyString_FromString(__pyx_filename); - if (!py_srcfile) goto bad; - py_funcname = PyString_FromString(funcname); - if (!py_funcname) goto bad; - py_globals = PyModule_GetDict(__pyx_m); - if (!py_globals) goto bad; - empty_tuple = PyTuple_New(0); - if (!empty_tuple) goto bad; - empty_string = PyString_FromString(""); - if (!empty_string) goto bad; - py_code = PyCode_New( - 0, /*int argcount,*/ - 0, /*int nlocals,*/ - 0, /*int stacksize,*/ - 0, /*int flags,*/ - empty_string, /*PyObject *code,*/ - empty_tuple, /*PyObject *consts,*/ - empty_tuple, /*PyObject *names,*/ - empty_tuple, /*PyObject *varnames,*/ - empty_tuple, /*PyObject *freevars,*/ - empty_tuple, /*PyObject *cellvars,*/ - py_srcfile, /*PyObject *filename,*/ - py_funcname, /*PyObject *name,*/ - __pyx_lineno, /*int firstlineno,*/ - empty_string /*PyObject *lnotab*/ - ); - if (!py_code) goto bad; - py_frame = PyFrame_New( - PyThreadState_Get(), /*PyThreadState *tstate,*/ - py_code, /*PyCodeObject *code,*/ - py_globals, /*PyObject *globals,*/ - 0 /*PyObject *locals*/ - ); - if (!py_frame) goto bad; - py_frame->f_lineno = __pyx_lineno; - PyTraceBack_Here(py_frame); -bad: - Py_XDECREF(py_srcfile); - Py_XDECREF(py_funcname); - Py_XDECREF(empty_tuple); - Py_XDECREF(empty_string); - Py_XDECREF(py_code); - Py_XDECREF(py_frame); -} diff --git a/checkpath.pyx~ b/checkpath.pyx~ deleted file mode 100644 index 46ead15..0000000 --- a/checkpath.pyx~ +++ /dev/null @@ -1,14 +0,0 @@ -cdef extern from "checkpath.h": - struct checkpath: - ctypedef int uid_t - ctypedef int gid_t - uid_t cp_uid - gid_t cp_gid[] - int cp_gids - int cp_verbose - unsigned cp_what - void (*cp_report)(unsigned, int, char *, char *, void *) - void *cp_arg - int checkpath(char *path, checkpath *cp) - void checkpath_setids(checkpath *cp) - diff --git a/checkpath.so b/checkpath.so deleted file mode 100755 index 2ee1b2c..0000000 Binary files a/checkpath.so and /dev/null differ diff --git a/setup.py b/setup.py new file mode 100644 index 0000000..5ae8c34 --- /dev/null +++ b/setup.py @@ -0,0 +1,67 @@ +#! /usr/bin/python + +from distutils.core import setup, Extension +from os import * +from errno import * + +incdirs = [] +libdirs = [] +libs = [] + +def progoutput(cmd): + p = popen(cmd) + out = p.readline() + if p.read() != '': raise 'extra junk from %s' % cmd + p.close() + return out.rstrip('\n') + +def libconfig(lib, ver): + config = lib + '-config' + if system('%s --check %s' % (config, ver)): + raise '%s version %s not found' % (lib, ver) + version = progoutput('%s --version' % config) + for i in progoutput('%s --cflags' % config).split(): + if i[:2] == '-I': incdirs.append(i[2:]) + else: raise 'strange cflags item %s' % i + for i in progoutput('%s --libs' % config).split(): + if i[:2] == '-L': libdirs.append(i[2:]) + elif i[:2] == '-l': libs.append(i[2:]) + else: raise 'strange libs item %s' % i + +def uniquify(l): + u = {} + o = [] + for i in l: + if i not in u: + o.append(i) + u[i] = 1 + return o + +libconfig('mLib', '2.0.3') +libconfig('checkpath', '1.1.0') + +class SubprocessFailure (Exception): + def __init__(me, file, rc): + me.args = (file, rc) + me.file = file + me.rc = rc + def __str__(me): + if WIFEXITED(me.rc): + return '%s failed (rc = %d)' % (me.file, WEXITSTATUS(me.rc)) + elif WIFSIGNALED(me.rc): + return '%s died (signal %d)' % (me.file, WTERMSIG(me.rc)) + else: + return '%s died inexplicably' % (me.file) + +chk = Extension('checkpath', + ['checkpath.c'], + include_dirs = uniquify(incdirs), + library_dirs = uniquify(libdirs), + libraries = uniquify(libs)) +setup(name = 'CheckPath', + version = '1.1.0', + description = 'Checking paths for security', + author = 'Straylight/Edgeware', + author_email = 'mdw@nsict.org', + license = 'GNU General Public License', + ext_modules = [chk]) diff --git a/test.py b/test.py deleted file mode 100644 index 9eb2d8d..0000000 --- a/test.py +++ /dev/null @@ -1,12 +0,0 @@ -import checkpath as CP - -class VerboseCheck (CP.CheckPath): - def __init__(me): - CP.CheckPath.__init__(me) - me.what |= CP.REPORT - def report(me, what, verb, path, msg): - print msg - -cp = VerboseCheck() -cp.check('/home/mdw') - diff --git a/test.py~ b/test.py~ deleted file mode 100644 index f0f882a..0000000 --- a/test.py~ +++ /dev/null @@ -1,5 +0,0 @@ -import checkpath as CP - -cp = CP.CheckPath() -cp.check('/home/mdw') -