libcap: new package
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Tue, 2 Mar 2010 21:47:13 +0000 (22:47 +0100)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Fri, 9 Apr 2010 09:03:54 +0000 (11:03 +0200)
Needed as a dependency of cdrkit, which contains genisomage, useful
for generating ISO9660 filesystem images.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/libcap/Config.in [new file with mode: 0644]
package/libcap/libcap-2.19-build-system.patch [new file with mode: 0644]
package/libcap/libcap.mk [new file with mode: 0644]

index a742063101d70fe48e1fa5018a085476b6a83247..f3f42139cb97c1fd7bd735b87ca810bf7e6e511b 100644 (file)
@@ -295,6 +295,7 @@ source "package/libupnp/Config.in"
 endmenu
 
 menu "Other"
+source "package/libcap/Config.in"
 source "package/libdaemon/Config.in"
 source "package/libelf/Config.in"
 source "package/libevent/Config.in"
diff --git a/package/libcap/Config.in b/package/libcap/Config.in
new file mode 100644 (file)
index 0000000..f1fc8fa
--- /dev/null
@@ -0,0 +1,10 @@
+config BR2_PACKAGE_LIBCAP
+       bool "libcap"
+       help
+        This library implements the user-space interfaces to the
+        POSIX 1003.1e capabilities available in Linux kernels. These
+        capabilities are a partitioning of the all powerful root
+        privilege into a set of distinct privileges.
+
+        http://sites.google.com/site/fullycapable/
+
diff --git a/package/libcap/libcap-2.19-build-system.patch b/package/libcap/libcap-2.19-build-system.patch
new file mode 100644 (file)
index 0000000..42a5518
--- /dev/null
@@ -0,0 +1,55 @@
+---
+ Make.Rules      |   15 ++++++++-------
+ libcap/Makefile |    2 +-
+ 2 files changed, 9 insertions(+), 8 deletions(-)
+
+Index: libcap-2.19/Make.Rules
+===================================================================
+--- libcap-2.19.orig/Make.Rules
++++ libcap-2.19/Make.Rules
+@@ -45,24 +45,25 @@
+ KERNEL_HEADERS := $(topdir)/libcap/include
+ IPATH += -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
+-CC := gcc
+-CFLAGS := -O2
+-BUILD_CC := $(CC)
+-BUILD_CFLAGS := $(CFLAGS) $(IPATH)
+-AR := ar
+-RANLIB := ranlib
++CC ?= gcc
++CFLAGS ?= -O2
++CC_FOR_BUILD ?= $(CC)
++CFLAGS_FOR_BUILD ?= $(CFLAGS)
++AR ?= ar
++RANLIB ?= ranlib
+ DEBUG = -g #-DDEBUG
+ WARNINGS=-fPIC -Wall -Wwrite-strings \
+         -Wpointer-arith -Wcast-qual -Wcast-align \
+         -Wstrict-prototypes -Wmissing-prototypes \
+         -Wnested-externs -Winline -Wshadow
+ LD=$(CC) -Wl,-x -shared
+-LDFLAGS := #-g
++LDFLAGS ?= #-g
+ SYSTEM_HEADERS = /usr/include
+ INCS=$(topdir)/libcap/include/sys/capability.h
+ LDFLAGS += -L$(topdir)/libcap
+ CFLAGS += -Dlinux $(WARNINGS) $(DEBUG) $(IPATH)
++CFLAGS_FOR_BUILD += $(IPATH)
+ PAM_CAP := $(shell if [ -f /usr/include/security/pam_modules.h ]; then echo yes ; else echo no ; fi)
+ INDENT := $(shell if [ -n "$(which indent 2>/dev/null)" ]; then echo "| indent -kr" ; fi)
+ DYNAMIC := $(shell if [ ! -d "$(topdir)/.git" ]; then echo yes; fi)
+Index: libcap-2.19/libcap/Makefile
+===================================================================
+--- libcap-2.19.orig/libcap/Makefile
++++ libcap-2.19/libcap/Makefile
+@@ -33,7 +33,7 @@
+ endif
+ _makenames: _makenames.c cap_names.list.h
+-      $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@
++      $(CC_FOR_BUILD) $(CFLAGS_FOR_BUILD) $< -o $@
+ cap_names.h: _makenames
+       ./_makenames > cap_names.h
diff --git a/package/libcap/libcap.mk b/package/libcap/libcap.mk
new file mode 100644 (file)
index 0000000..3ea5e51
--- /dev/null
@@ -0,0 +1,27 @@
+LIBCAP_VERSION=2.19
+LIBCAP_SOURCE=libcap-$(LIBCAP_VERSION).tar.bz2
+LIBCAP_SITE=http://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/
+LIBCAP_INSTALL_STAGING=YES
+
+define LIBCAP_BUILD_CMDS
+ $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE) -C $(@D) LIBATTR=no
+endef
+
+define LIBCAP_INSTALL_STAGING_CMDS
+ $(TARGET_MAKE_ENV) $(MAKE) -C $(@D) LIBATTR=no DESTDIR=$(STAGING_DIR) install
+endef
+
+define LIBCAP_INSTALL_TARGET_CMDS
+ install -D $(STAGING_DIR)/usr/lib/libcap.so.* $(TARGET_DIR)/usr/lib
+endef
+
+define HOST_LIBCAP_BUILD_CMDS
+ $(HOST_MAKE_ENV) $(HOST_CONFIGURE_OPTS) $(MAKE) -C $(@D) LIBATTR=no
+endef
+
+define HOST_LIBCAP_INSTALL_CMDS
+ $(HOST_MAKE_ENV) $(MAKE) -C $(@D) LIBATTR=no DESTDIR=$(HOST_DIR) install
+endef
+
+$(eval $(call GENTARGETS,package,libcap))
+$(eval $(call GENTARGETS,package,libcap,host))