diff -Nur libcap-1.10/libcap/include/sys/capability.h libcap-1.10-python/libcap/include/sys/capability.h --- libcap-1.10/libcap/include/sys/capability.h 1999-11-18 07:19:21.000000000 +0100 +++ libcap-1.10-python/libcap/include/sys/capability.h 2002-07-26 12:46:56.000000000 +0200 @@ -15,13 +15,25 @@ extern "C" { #endif +#ifdef SWIG +%module libcap +#endif + /* * This file complements the kernel file by providing prototype * information for the user library. */ +#ifdef SWIG +%{ +#include +#include +#include "libcap.h" +%} +#else #include #include +#endif /* * POSIX capability types @@ -73,10 +85,12 @@ int cap_clear(cap_t); /* libcap/cap_file.c */ +#ifndef SWIG cap_t cap_get_fd(int); cap_t cap_get_file(const char *); int cap_set_fd(int, cap_t); int cap_set_file(const char *, cap_t); +#endif /* libcap/cap_proc.c */ cap_t cap_get_proc(void); @@ -96,6 +110,7 @@ * if the following _POSIX_SOURCE is _undefined_ */ +#ifndef SWIG #if !defined(_POSIX_SOURCE) extern int capset(cap_user_header_t header, cap_user_data_t data); @@ -105,6 +120,7 @@ extern char const *_cap_names[]; #endif /* !defined(_POSIX_SOURCE) */ +#endif #ifdef __cplusplus } Binary files libcap-1.10/libcap/libcapmodule.so and libcap-1.10-python/libcap/libcapmodule.so differ Binary files libcap-1.10/libcap/libcap_wrap.o and libcap-1.10-python/libcap/libcap_wrap.o differ diff -Nur libcap-1.10/libcap/Makefile libcap-1.10-python/libcap/Makefile --- libcap-1.10/libcap/Makefile 1999-04-18 00:16:31.000000000 +0200 +++ libcap-1.10-python/libcap/Makefile 2002-07-26 14:07:48.000000000 +0200 @@ -30,6 +30,7 @@ # Library version # LIBNAME=libcap.so +PYTHONMODNAME=libcapmodule.so # FILES=cap_alloc cap_proc cap_extint cap_flag cap_text cap_sys @@ -42,7 +43,11 @@ MAJLIBNAME=$(LIBNAME).$(VERSION) MINLIBNAME=$(MAJLIBNAME).$(MINOR) +ifdef PYTHON +all: $(MINLIBNAME) $(PYTHONMODNAME) +else all: $(MINLIBNAME) +endif _makenames: _makenames.c cap_names.sed $(CC) $(CFLAGS) $(LDFLAGS) $< -o $@ @@ -60,6 +65,12 @@ ln -sf $(MINLIBNAME) $(MAJLIBNAME) ln -sf $(MAJLIBNAME) $(LIBNAME) +libcap_wrap.c: include/sys/capability.h + swig -python -o libcap_wrap.c include/sys/capability.h + +$(PYTHONMODNAME): $(OBJS) libcap_wrap.o + $(LD) -x -shared -o $@ libcap_wrap.o $(OBJS) + %.o: %.c $(INCLS) $(CC) $(CFLAGS) -c $< -o $@ @@ -71,10 +82,14 @@ ln -sf $(MINLIBNAME) $(LIBDIR)/$(MAJLIBNAME) ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME) -/sbin/ldconfig +ifdef PYTHON + mkdir -p $(PYTHONMODDIR) + install -m 0644 $(PYTHONMODNAME) $(PYTHONMODDIR)/$(PYTHONMODNAME) +endif clean: $(LOCALCLEAN) rm -f $(OBJS) $(LIBNAME)* - rm -f cap_names.h cap_names.sed _makenames + rm -f cap_names.h cap_names.sed _makenames libcap_wrap.c cd include/sys && $(LOCALCLEAN) diff -Nur libcap-1.10/Make.Rules libcap-1.10-python/Make.Rules --- libcap-1.10/Make.Rules 1999-11-18 07:06:02.000000000 +0100 +++ libcap-1.10-python/Make.Rules 2002-07-26 14:03:26.000000000 +0200 @@ -33,6 +33,7 @@ SBINDIR=$(FAKEROOT)$(exec_prefix)/sbin INCDIR=$(FAKEROOT)$(inc_prefix)/include LIBDIR=$(FAKEROOT)$(lib_prefix)/lib +PYTHONMODDIR=$(FAKEROOT)$(prefix)/lib/python/site-packages # common defines for libcap (suitable for 2.2.1+ Linux kernels) VERSION=1