summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobin H. Johnson <robbat2@gentoo.org>2015-08-08 13:49:04 -0700
committerRobin H. Johnson <robbat2@gentoo.org>2015-08-08 17:38:18 -0700
commit56bd759df1d0c750a065b8c845e93d5dfa6b549d (patch)
tree3f91093cdb475e565ae857f1c5a7fd339e2d781e /sys-libs/libcap
downloadgentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.gz
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.tar.bz2
gentoo-56bd759df1d0c750a065b8c845e93d5dfa6b549d.zip
proj/gentoo: Initial commit
This commit represents a new era for Gentoo: Storing the gentoo-x86 tree in Git, as converted from CVS. This commit is the start of the NEW history. Any historical data is intended to be grafted onto this point. Creation process: 1. Take final CVS checkout snapshot 2. Remove ALL ChangeLog* files 3. Transform all Manifests to thin 4. Remove empty Manifests 5. Convert all stale $Header$/$Id$ CVS keywords to non-expanded Git $Id$ 5.1. Do not touch files with -kb/-ko keyword flags. Signed-off-by: Robin H. Johnson <robbat2@gentoo.org> X-Thanks: Alec Warner <antarus@gentoo.org> - did the GSoC 2006 migration tests X-Thanks: Robin H. Johnson <robbat2@gentoo.org> - infra guy, herding this project X-Thanks: Nguyen Thai Ngoc Duy <pclouds@gentoo.org> - Former Gentoo developer, wrote Git features for the migration X-Thanks: Brian Harring <ferringb@gentoo.org> - wrote much python to improve cvs2svn X-Thanks: Rich Freeman <rich0@gentoo.org> - validation scripts X-Thanks: Patrick Lauer <patrick@gentoo.org> - Gentoo dev, running new 2014 work in migration X-Thanks: Michał Górny <mgorny@gentoo.org> - scripts, QA, nagging X-Thanks: All of other Gentoo developers - many ideas and lots of paint on the bikeshed
Diffstat (limited to 'sys-libs/libcap')
-rw-r--r--sys-libs/libcap/Manifest6
-rw-r--r--sys-libs/libcap/files/2.16/0001-build-system-fixes.patch154
-rw-r--r--sys-libs/libcap/files/libcap-2.20-build-system-fixes.patch162
-rw-r--r--sys-libs/libcap/files/libcap-2.20-ignore-RAISE_SETFCAP-install-failures.patch29
-rw-r--r--sys-libs/libcap/files/libcap-2.21-include.patch10
-rw-r--r--sys-libs/libcap/files/libcap-2.22-build-system-fixes.patch171
-rw-r--r--sys-libs/libcap/files/libcap-2.22-no-perl.patch54
-rw-r--r--sys-libs/libcap/files/libcap-2.24-build-system-fixes.patch163
-rw-r--r--sys-libs/libcap/files/libcap-2.24-setcap-errno.patch45
-rw-r--r--sys-libs/libcap/libcap-2.17.ebuild48
-rw-r--r--sys-libs/libcap/libcap-2.19.ebuild47
-rw-r--r--sys-libs/libcap/libcap-2.20.ebuild47
-rw-r--r--sys-libs/libcap/libcap-2.21.ebuild48
-rw-r--r--sys-libs/libcap/libcap-2.22-r1.ebuild52
-rw-r--r--sys-libs/libcap/libcap-2.22-r2.ebuild69
-rw-r--r--sys-libs/libcap/libcap-2.22.ebuild51
-rw-r--r--sys-libs/libcap/libcap-2.24-r1.ebuild72
-rw-r--r--sys-libs/libcap/libcap-2.24-r2.ebuild73
-rw-r--r--sys-libs/libcap/libcap-2.24.ebuild71
-rw-r--r--sys-libs/libcap/metadata.xml5
20 files changed, 1377 insertions, 0 deletions
diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest
new file mode 100644
index 000000000000..fa1d8b6fa387
--- /dev/null
+++ b/sys-libs/libcap/Manifest
@@ -0,0 +1,6 @@
+DIST libcap-2.17.tar.bz2 48899 SHA256 2cab109eed9bd944408c13efed910091479d8770cf9aa1bec4f9b26d9302f5b0 SHA512 f8c79889359f92c9f714b4fe602454f0e0ae7c78bf2fa2ddf849a1cda05a8ef7d993c69f7662cbb8939e42da6a43b401e9199d5aa9de220eafcede9a06f727b5 WHIRLPOOL dc6cb019ec32c529600eb8198098b69157b2ebf279e0b003a003e906aedda07ebac355cdcbbebde222aa1ab9a2d22be34b2b216b0c1249134404a736a540bea4
+DIST libcap-2.19.tar.bz2 53099 SHA256 ed1693e344054a398e68a7cc840892e3d1a880562743bdf28fd918649aa5a4ce SHA512 1453e3014fdff57c01e3dca5a4b5d1754e641ecb4011296a39d0d088ee1fe371e13f851ae2c6c29e7f0d7bfeeeb4c2a11d112da6ed4600f5d489788faaee9fb2 WHIRLPOOL 2b6ee718d91902617dda3cb7beaa3bf29e785dc635f33af635ab74245259dd0d81f8da1cc5bd38bbed8ff85752536b2596941c4da581a29d7380d039218fbd49
+DIST libcap-2.20.tar.bz2 53629 SHA256 20e7c1ea4d3d5c410efb3a6ff138dc417912fae316d883460dcd58d9803a9220 SHA512 3ab62d1a563d1f380485b4cb6ba77e9a4c8806b9d6b115c0bc9bad8c1e251bb4906a8b2cc21b07c0c274811e2f6d2aa3840696babb9348dcdf25eae166214810 WHIRLPOOL eb84e9fad6056d02e482e582fc26bcbeac456da7d0daeb1ad43f54056afd814bdeef231acd3037eab44eb3a5d7a4c23c7638a73ca7ee706a1c75e739edbc36a3
+DIST libcap-2.21.tar.bz2 54360 SHA256 9e1615bb331786eb6cb3968ca27153bcfac8a16cf8db9253b8407faa53b3f011 SHA512 71398dacc4dc3b896233d6c991f07b0913253512961195c597cd4f6714c316df2ae1954da1bf60c7d6011e67dcefda7f7effd6cd37be6e215a29fc7d81eaad2e WHIRLPOOL c5fff6a9a6e6c4c1b186422891d38f5dffab8b40f62ee54625359bb7980d4de8557979f78c459b9c4545496e8649cecc32983d2581d17e4b7349c85e882d7950
+DIST libcap-2.22.tar.bz2 60051 SHA256 73ebbd4877b5f69dd28b72098e510c5b318bc480f8201c4061ac98b78c04050f SHA512 d4e070cfed7dbf416c949e79fbfbfcde2da4705d4f55527b18482c9959b80fea2841bf70f317fa5e620e13a75a8e5da69f94304b8e54195f2d0492f14d342339 WHIRLPOOL 000e3c76e83366423efc0e935c6191496c0e9bf1cc559babdbeea74c8c81009e883985c5f1c739b4fb1744522e09bda253f6012b7e52284f291eabeaf20f6a88
+DIST libcap-2.24.tar.xz 63412 SHA256 cee4568f78dc851d726fc93f25f4ed91cc223b1fe8259daa4a77158d174e6c65 SHA512 c062bab936d651a50efa66dcfa51ab3ce4b0881195d23bb32142b5c8044d30e0e2152f3497844ce90c04f909aeffe2d41203efff41972e38758dcca7b653884b WHIRLPOOL bb7a9d8d3b999ad289962ebdc8b9eff87e25bd744a86ee4717e999738cb5a556a51826d0f0cbfc628629948fa8355d5d972208910d6c1c99bdf66a673b6f1cc8
diff --git a/sys-libs/libcap/files/2.16/0001-build-system-fixes.patch b/sys-libs/libcap/files/2.16/0001-build-system-fixes.patch
new file mode 100644
index 000000000000..e82975ba8f90
--- /dev/null
+++ b/sys-libs/libcap/files/2.16/0001-build-system-fixes.patch
@@ -0,0 +1,154 @@
+From 7ee197885e113878aedab58bdda80302e42aff4c Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 16 Nov 2008 09:10:31 -0500
+Subject: [PATCH] build system fixes
+
+This touches up the homebrewed build system to work much better "out of the
+box" for people. Specifically:
+ - allow toolchain vars to be set via environment
+ - CC / BUILD_CC / AR / RANLIB
+ - CFLAGS / CPPFLAGS / LDFLAGS
+ - split CPPFLAGS out of CFLAGS
+ - break -fPIC out of global CFLAGS and only use where needed
+ - use LDLIBS for libraries, not LDFLAGS
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Make.Rules | 28 ++++++++++++++--------------
+ libcap/Makefile | 11 ++++++-----
+ pam_cap/Makefile | 6 +++---
+ progs/Makefile | 2 +-
+ 4 files changed, 24 insertions(+), 23 deletions(-)
+
+diff --git a/Make.Rules b/Make.Rules
+index 6e63a5b..32cb5ea 100644
+--- a/Make.Rules
++++ b/Make.Rules
+@@ -42,27 +42,27 @@ MINOR=16
+
+ # Compilation specifics
+
+-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
+-DEBUG = -g #-DDEBUG
+-WARNINGS=-fPIC -Wall -Wwrite-strings \
++CC ?= gcc
++BUILD_CC ?= $(CC)
++AR ?= ar
++RANLIB ?= ranlib
++CFLAGS ?= -O2
++BUILD_CFLAGS ?= -O2 -pipe
++WARNINGS=-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
++KERNEL_HEADERS = $(topdir)/libcap/include
++LIBCAP_CPPFLAGS = -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
++CPPFLAGS += $(LIBCAP_CPPFLAGS)
++BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS)
+ INCS=$(topdir)/libcap/include/sys/capability.h
+ LDFLAGS += -L$(topdir)/libcap
+-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG) $(IPATH)
++CPPFLAGS += -Dlinux
++CFLAGS += $(WARNINGS)
+ 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)
+diff --git a/libcap/Makefile b/libcap/Makefile
+index 8a61752..cf99523 100644
+--- a/libcap/Makefile
++++ b/libcap/Makefile
+@@ -16,7 +16,7 @@ FILES=cap_alloc cap_proc cap_extint cap_flag cap_text
+ # no support).
+ ifeq ($(LIBATTR),yes)
+ FILES += cap_file
+-LDFLAGS += -lattr
++LDLIBS += -lattr
+ endif
+
+ INCLS=libcap.h cap_names.h $(INCS)
+@@ -24,6 +24,7 @@ OBJS=$(addsuffix .o, $(FILES))
+ MAJLIBNAME=$(LIBNAME).$(VERSION)
+ MINLIBNAME=$(MAJLIBNAME).$(MINOR)
+ GPERF_OUTPUT = _caps_output.gperf
++CFLAGS += -fPIC
+
+ all: $(MINLIBNAME) $(STALIBNAME)
+
+@@ -33,7 +34,7 @@ INCLUDE_GPERF_OUTPUT = -include $(GPERF_OUTPUT)
+ endif
+
+ _makenames: _makenames.c cap_names.list.h
+- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@
++ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
+
+ cap_names.h: _makenames
+ ./_makenames > cap_names.h
+@@ -50,15 +51,15 @@ $(STALIBNAME): $(OBJS)
+ $(RANLIB) $@
+
+ $(MINLIBNAME): $(OBJS)
+- $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^
++ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^ $(LDLIBS)
+ ln -sf $(MINLIBNAME) $(MAJLIBNAME)
+ ln -sf $(MAJLIBNAME) $(LIBNAME)
+
+ %.o: %.c $(INCLS)
+- $(CC) $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS)
+- $(CC) $(CFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(INCDIR)/sys
+diff --git a/pam_cap/Makefile b/pam_cap/Makefile
+index eae88ed..bef59d2 100644
+--- a/pam_cap/Makefile
++++ b/pam_cap/Makefile
+@@ -14,13 +14,13 @@ install: all
+ install -m 0755 pam_cap.so $(LIBDIR)/security
+
+ pam_cap.so: pam_cap.o
+- $(LD) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
++ $(LD) $(CFLAGS) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS) -lpam
+
+ pam_cap.o: pam_cap.c
+- $(CC) $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ testcompile: test.c pam_cap.o
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
+
+ clean:
+ rm -f *.o *.so testcompile *~
+diff --git a/progs/Makefile b/progs/Makefile
+index a1542dc..612cf86 100644
+--- a/progs/Makefile
++++ b/progs/Makefile
+@@ -22,7 +22,7 @@ $(BUILD): %: %.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
+
+ %.o: %.c $(INCS)
+- $(CC) $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(SBINDIR)
+--
+1.6.0.4
+
diff --git a/sys-libs/libcap/files/libcap-2.20-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.20-build-system-fixes.patch
new file mode 100644
index 000000000000..c7273df39a8c
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.20-build-system-fixes.patch
@@ -0,0 +1,162 @@
+From 5540f3c2a3bd70ebc8140b74ac5a0aecdbc53234 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 16 Nov 2008 09:10:31 -0500
+Subject: [PATCH] build system fixes
+
+This touches up the homebrewed build system to work much better "out of the
+box" for people. Specifically:
+ - allow toolchain vars to be set via environment
+ - CC / BUILD_CC / AR / RANLIB
+ - CFLAGS / CPPFLAGS / LDFLAGS
+ - split CPPFLAGS out of CFLAGS
+ - break -fPIC out of global CFLAGS and only use where needed
+ - use LDLIBS for libraries, not LDFLAGS
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Make.Rules | 25 +++++++++++++------------
+ libcap/Makefile | 11 ++++++-----
+ pam_cap/Makefile | 8 +++++---
+ progs/Makefile | 2 +-
+ 4 files changed, 25 insertions(+), 21 deletions(-)
+
+diff --git a/Make.Rules b/Make.Rules
+index 011aa14..6e432a6 100644
+--- a/Make.Rules
++++ b/Make.Rules
+@@ -44,27 +44,28 @@ MINOR=19
+
+ # Compilation specifics
+
+-KERNEL_HEADERS := $(topdir)/libcap/include
+-IPATH += -fPIC -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
++BUILD_CC ?= $(CC)
++BUILD_CFLAGS ?= $(CFLAGS)
++AR ?= ar
++RANLIB ?= ranlib
+ DEBUG = -g #-DDEBUG
+ WARNINGS=-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
++KERNEL_HEADERS = $(topdir)/libcap/include
++LIBCAP_CPPFLAGS = -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
++CPPFLAGS += $(LIBCAP_CPPFLAGS)
++BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS)
+ INCS=$(topdir)/libcap/include/sys/capability.h
+ LDFLAGS += -L$(topdir)/libcap
+-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG)
++CPPFLAGS += -Dlinux
++CFLAGS += $(WARNINGS) $(DEBUG)
+ 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)
+diff --git a/libcap/Makefile b/libcap/Makefile
+index 4762c60..cf99523 100644
+--- a/libcap/Makefile
++++ b/libcap/Makefile
+@@ -16,7 +16,7 @@ FILES=cap_alloc cap_proc cap_extint cap_flag cap_text
+ # no support).
+ ifeq ($(LIBATTR),yes)
+ FILES += cap_file
+-LDFLAGS += -lattr
++LDLIBS += -lattr
+ endif
+
+ INCLS=libcap.h cap_names.h $(INCS)
+@@ -24,6 +24,7 @@ OBJS=$(addsuffix .o, $(FILES))
+ MAJLIBNAME=$(LIBNAME).$(VERSION)
+ MINLIBNAME=$(MAJLIBNAME).$(MINOR)
+ GPERF_OUTPUT = _caps_output.gperf
++CFLAGS += -fPIC
+
+ all: $(MINLIBNAME) $(STALIBNAME)
+
+@@ -33,7 +34,7 @@ INCLUDE_GPERF_OUTPUT = -include $(GPERF_OUTPUT)
+ endif
+
+ _makenames: _makenames.c cap_names.list.h
+- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@
++ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
+
+ cap_names.h: _makenames
+ ./_makenames > cap_names.h
+@@ -50,15 +51,15 @@ $(STALIBNAME): $(OBJS)
+ $(RANLIB) $@
+
+ $(MINLIBNAME): $(OBJS)
+- $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^
++ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^ $(LDLIBS)
+ ln -sf $(MINLIBNAME) $(MAJLIBNAME)
+ ln -sf $(MAJLIBNAME) $(LIBNAME)
+
+ %.o: %.c $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(INCDIR)/sys
+diff --git a/pam_cap/Makefile b/pam_cap/Makefile
+index 9ca5bef..bdae933 100644
+--- a/pam_cap/Makefile
++++ b/pam_cap/Makefile
+@@ -9,6 +9,8 @@ include ../Make.Rules
+ # written (and you know why it fails), email me and explain why. Thanks!
+ LDLIBS += -L../libcap -lcap
+
++CFLAGS += -fPIC
++
+ all: pam_cap.so
+ $(MAKE) testcompile
+
+@@ -17,13 +19,13 @@ install: all
+ install -m 0755 pam_cap.so $(LIBDIR)/security
+
+ pam_cap.so: pam_cap.o
+- $(LD) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
++ $(LD) $(CFLAGS) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
+
+ pam_cap.o: pam_cap.c
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ testcompile: test.c pam_cap.o
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
+
+ clean:
+ rm -f *.o *.so testcompile *~
+diff --git a/progs/Makefile b/progs/Makefile
+index ef51dc6..c261f57 100644
+--- a/progs/Makefile
++++ b/progs/Makefile
+@@ -22,7 +22,7 @@ $(BUILD): %: %.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
+
+ %.o: %.c $(INCS)
+- $(CC) $(IPATH) $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(SBINDIR)
+--
+1.7.4.rc2
+
diff --git a/sys-libs/libcap/files/libcap-2.20-ignore-RAISE_SETFCAP-install-failures.patch b/sys-libs/libcap/files/libcap-2.20-ignore-RAISE_SETFCAP-install-failures.patch
new file mode 100644
index 000000000000..1bc4d63ebb1a
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.20-ignore-RAISE_SETFCAP-install-failures.patch
@@ -0,0 +1,29 @@
+From f2020ee4ee4b2f245637c77e81d62ab6d1db3c6c Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Tue, 25 Jan 2011 15:52:31 -0500
+Subject: [PATCH] ignore RAISE_SETFCAP install failures
+
+While the new RAISE_SETFCAP feature is nifty, its failure to run (often
+due to the fs not supporting it) shouldn't impair the default install.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ progs/Makefile | 2 +-
+ 1 files changed, 1 insertions(+), 1 deletions(-)
+
+diff --git a/progs/Makefile b/progs/Makefile
+index c261f57..9e1a84d 100644
+--- a/progs/Makefile
++++ b/progs/Makefile
+@@ -30,7 +30,7 @@ install: all
+ install -m 0755 $$p $(SBINDIR) ; \
+ done
+ ifeq ($(RAISE_SETFCAP),yes)
+- $(SBINDIR)/setcap cap_setfcap=i $(SBINDIR)/setcap
++ -$(SBINDIR)/setcap cap_setfcap=i $(SBINDIR)/setcap
+ endif
+
+ clean:
+--
+1.7.4.rc2
+
diff --git a/sys-libs/libcap/files/libcap-2.21-include.patch b/sys-libs/libcap/files/libcap-2.21-include.patch
new file mode 100644
index 000000000000..2a534246ee01
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.21-include.patch
@@ -0,0 +1,10 @@
+--- libcap/libcap.h.org 2011-06-15 07:25:58.912480899 +0200
++++ libcap/libcap.h 2011-06-15 07:26:16.421329661 +0200
+@@ -13,6 +13,7 @@
+ #include <stdlib.h>
+ #include <string.h>
+ #include <sys/capability.h>
++#include <sys/prctl.h> /* prctl() */
+
+ #ifndef __u8
+ #define __u8 unsigned char
diff --git a/sys-libs/libcap/files/libcap-2.22-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.22-build-system-fixes.patch
new file mode 100644
index 000000000000..888c0897652b
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.22-build-system-fixes.patch
@@ -0,0 +1,171 @@
+From 5540f3c2a3bd70ebc8140b74ac5a0aecdbc53234 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 16 Nov 2008 09:10:31 -0500
+Subject: [PATCH] build system fixes
+
+This touches up the homebrewed build system to work much better "out of the
+box" for people. Specifically:
+ - allow toolchain vars to be set via environment
+ - CC / BUILD_CC / AR / RANLIB
+ - CFLAGS / CPPFLAGS / LDFLAGS
+ - split CPPFLAGS out of CFLAGS
+ - break -fPIC out of global CFLAGS and only use where needed
+ - use LDLIBS for libraries, not LDFLAGS
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Make.Rules | 25 +++++++++++++------------
+ libcap/Makefile | 11 ++++++-----
+ pam_cap/Makefile | 8 +++++---
+ progs/Makefile | 2 +-
+ 4 files changed, 25 insertions(+), 21 deletions(-)
+
+diff --git a/Make.Rules b/Make.Rules
+index 011aa14..6e432a6 100644
+--- a/Make.Rules
++++ b/Make.Rules
+@@ -44,27 +44,28 @@ MINOR=19
+
+ # Compilation specifics
+
+-KERNEL_HEADERS := $(topdir)/libcap/include
+-IPATH += -fPIC -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
+-
+-CC := gcc
+-CFLAGS := -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+-BUILD_CC := $(CC)
+-BUILD_CFLAGS := $(CFLAGS) $(IPATH)
+-AR := ar
+-RANLIB := ranlib
++CC ?= gcc
++CFLAGS ?= -O2
++BUILD_CC ?= $(CC)
++BUILD_CFLAGS ?= $(CFLAGS)
++AR ?= ar
++RANLIB ?= ranlib
+ DEBUG = -g #-DDEBUG
+ WARNINGS=-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
++KERNEL_HEADERS = $(topdir)/libcap/include
++LIBCAP_CPPFLAGS = -I$(topdir)/libcap/include -I$(KERNEL_HEADERS)
++CPPFLAGS += $(LIBCAP_CPPFLAGS) -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
++BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS)
+ INCS=$(topdir)/libcap/include/sys/capability.h
+ LDFLAGS += -L$(topdir)/libcap
+-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG)
++CPPFLAGS += -Dlinux
++CFLAGS += $(WARNINGS) $(DEBUG)
+ 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)
+diff --git a/libcap/Makefile b/libcap/Makefile
+index 4762c60..cf99523 100644
+--- a/libcap/Makefile
++++ b/libcap/Makefile
+@@ -16,7 +16,7 @@ FILES=cap_alloc cap_proc cap_extint cap_flag cap_text
+ # no support).
+ ifeq ($(LIBATTR),yes)
+ FILES += cap_file
+-LDFLAGS += -lattr
++LDLIBS += -lattr
+ endif
+
+ INCLS=libcap.h cap_names.h $(INCS)
+@@ -24,6 +24,7 @@ OBJS=$(addsuffix .o, $(FILES))
+ MAJLIBNAME=$(LIBNAME).$(VERSION)
+ MINLIBNAME=$(MAJLIBNAME).$(MINOR)
+ GPERF_OUTPUT = _caps_output.gperf
++CFLAGS += -fPIC
+
+ all: $(MINLIBNAME) $(STALIBNAME)
+
+@@ -33,7 +34,7 @@ INCLUDE_GPERF_OUTPUT = -include $(GPERF_OUTPUT)
+ endif
+
+ _makenames: _makenames.c cap_names.list.h
+- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@
++ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
+
+ cap_names.h: _makenames
+ ./_makenames > cap_names.h
+@@ -50,15 +51,15 @@ $(STALIBNAME): $(OBJS)
+ $(RANLIB) $@
+
+ $(MINLIBNAME): $(OBJS)
+- $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^
++ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^ $(LDLIBS)
+ ln -sf $(MINLIBNAME) $(MAJLIBNAME)
+ ln -sf $(MAJLIBNAME) $(LIBNAME)
+
+ %.o: %.c $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(INCDIR)/sys
+@@ -77,7 +77,7 @@ install: all
+ install -m 0644 include/sys/capability.h $(INCDIR)/sys
+ mkdir -p -m 0755 $(LIBDIR)
+ install -m 0644 $(STALIBNAME) $(LIBDIR)/$(STALIBNAME)
+- install -m 0644 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME)
++ install -m 0755 $(MINLIBNAME) $(LIBDIR)/$(MINLIBNAME)
+ ln -sf $(MINLIBNAME) $(LIBDIR)/$(MAJLIBNAME)
+ ln -sf $(MAJLIBNAME) $(LIBDIR)/$(LIBNAME)
+ ifeq ($(FAKEROOT),)
+diff --git a/pam_cap/Makefile b/pam_cap/Makefile
+index 9ca5bef..bdae933 100644
+--- a/pam_cap/Makefile
++++ b/pam_cap/Makefile
+@@ -9,6 +9,8 @@ include ../Make.Rules
+ # written (and you know why it fails), email me and explain why. Thanks!
+ LDLIBS += -L../libcap -lcap
+
++CFLAGS += -fPIC
++
+ all: pam_cap.so
+ $(MAKE) testcompile
+
+@@ -17,13 +19,13 @@ install: all
+ install -m 0755 pam_cap.so $(LIBDIR)/security
+
+ pam_cap.so: pam_cap.o
+- $(LD) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
++ $(LD) $(CFLAGS) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
+
+ pam_cap.o: pam_cap.c
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ testcompile: test.c pam_cap.o
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
+
+ clean:
+ rm -f *.o *.so testcompile *~
+diff --git a/progs/Makefile b/progs/Makefile
+index ef51dc6..c261f57 100644
+--- a/progs/Makefile
++++ b/progs/Makefile
+@@ -22,7 +22,7 @@ $(BUILD): %: %.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
+
+ %.o: %.c $(INCS)
+- $(CC) $(IPATH) $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(SBINDIR)
+--
+1.7.4.rc2
+
diff --git a/sys-libs/libcap/files/libcap-2.22-no-perl.patch b/sys-libs/libcap/files/libcap-2.22-no-perl.patch
new file mode 100644
index 000000000000..9c29e7efbf38
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.22-no-perl.patch
@@ -0,0 +1,54 @@
+From fdd0f3b207785711663f48e0dd3414d90d1f2e86 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sat, 12 Nov 2011 14:24:08 -0500
+Subject: [PATCH] use awk/sed instead of perl for creating header files
+
+More systems should have awk/sed than perl.
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ libcap/Makefile | 20 ++++++++++++++++----
+ 1 files changed, 16 insertions(+), 4 deletions(-)
+
+diff --git a/libcap/Makefile b/libcap/Makefile
+index 4762c60..68845e0 100644
+--- a/libcap/Makefile
++++ b/libcap/Makefile
+@@ -24,6 +24,8 @@ OBJS=$(addsuffix .o, $(FILES))
+ MINLIBNAME=$(MAJLIBNAME).$(MINOR)
+ GPERF_OUTPUT = _caps_output.gperf
+ CFLAGS += -fPIC
++AWK = awk
++SED = sed
+
+ all: $(MINLIBNAME) $(STALIBNAME)
+
+@@ -39,11 +41,21 @@ cap_names.h: _makenames
+ ./_makenames > cap_names.h
+
+ $(GPERF_OUTPUT): cap_names.list.h
+- perl -e 'print "struct __cap_token_s { const char *name; int index; };\n%{\nconst struct __cap_token_s *__cap_lookup_name(const char *, unsigned int);\n%}\n%%\n"; while ($$l = <>) { $$l =~ s/[\{\"]//g; $$l =~ s/\}.*// ; print $$l; }' < $< | gperf --ignore-case --language=ANSI-C --readonly --null-strings --global-table --hash-function-name=__cap_hash_name --lookup-function-name="__cap_lookup_name" -c -t -m20 $(INDENT) > $@
++ (printf "%b" "struct __cap_token_s { const char *name; int index; };\n%{\nconst struct __cap_token_s *__cap_lookup_name(const char *, unsigned int);\n%}\n%%\n"; \
++ $(SED) -e 's:["{}]::g' -e 's:,$$::' $<) | \
++ gperf \
++ --ignore-case \
++ --language=ANSI-C \
++ --readonly \
++ --null-strings \
++ --global-table \
++ --hash-function-name=__cap_hash_name \
++ --lookup-function-name="__cap_lookup_name" \
++ -c -t -m20 $(INDENT) > $@
+
+-cap_names.list.h: Makefile $(KERNEL_HEADERS)/linux/capability.h
+- @echo "=> making $@ from $(KERNEL_HEADERS)/linux/capability.h"
+- perl -e 'while ($$l=<>) { if ($$l =~ /^\#define[ \t](CAP[_A-Z]+)[ \t]+([0-9]+)\s+$$/) { $$tok=$$1; $$val=$$2; $$tok =~ tr/A-Z/a-z/; print "{\"$$tok\",$$val},\n"; } }' $(KERNEL_HEADERS)/linux/capability.h | fgrep -v 0x > $@
++cap_names.list.h: $(KERNEL_HEADERS)/linux/capability.h Makefile
++ @echo "=> making $@ from $<"
++ $(AWK) '($$0 ~ /^#define[[:space:]]+CAP[_A-Z]+[[:space:]]+[0-9]+[[:space:]]*$$/) { printf "{\"%s\",%s},\n", tolower($$2), $$3 }' $< > $@
+
+ $(STALIBNAME): $(OBJS)
+ $(AR) rcs $@ $^
+--
+1.7.6.1
+
diff --git a/sys-libs/libcap/files/libcap-2.24-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.24-build-system-fixes.patch
new file mode 100644
index 000000000000..64393275bb80
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.24-build-system-fixes.patch
@@ -0,0 +1,163 @@
+From 0485ff3e7f62a331aa4f1e8ec4c2fdcee400e324 Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Sun, 16 Nov 2008 09:10:31 -0500
+Subject: [PATCH] build system fixes
+
+This touches up the homebrewed build system to work much better "out of the
+box" for people. Specifically:
+ - allow toolchain vars to be set via environment
+ - CC / BUILD_CC / AR / RANLIB
+ - CFLAGS / CPPFLAGS / LDFLAGS
+ - split CPPFLAGS out of CFLAGS
+ - break -fPIC out of global CFLAGS and only use where needed
+ - use LDLIBS for libraries, not LDFLAGS
+
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ Make.Rules | 26 ++++++++++++++------------
+ libcap/Makefile | 11 ++++++-----
+ pam_cap/Makefile | 8 +++++---
+ progs/Makefile | 2 +-
+ 4 files changed, 26 insertions(+), 21 deletions(-)
+
+diff --git a/Make.Rules b/Make.Rules
+index 18b7cf7..5364c46 100644
+--- a/Make.Rules
++++ b/Make.Rules
+@@ -45,27 +45,29 @@ MINOR=24
+
+ # Compilation specifics
+
+-KERNEL_HEADERS := $(topdir)/libcap/include/uapi
+-IPATH += -fPIC -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include
+-
+-CC := gcc
+-CFLAGS := -O2 -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
+-BUILD_CC := $(CC)
+-BUILD_CFLAGS := $(CFLAGS) $(IPATH)
+-AR := ar
+-RANLIB := ranlib
++CC ?= gcc
++CFLAGS ?= -O2
++BUILD_CC ?= $(CC)
++BUILD_CFLAGS ?= $(CFLAGS)
++AR ?= ar
++RANLIB ?= ranlib
+ DEBUG = -g #-DDEBUG
+ WARNINGS=-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
++KERNEL_HEADERS = $(topdir)/libcap/include/uapi
++LIBCAP_CPPFLAGS = -I$(KERNEL_HEADERS) -I$(topdir)/libcap/include
++LIBCAP_CPPFLAGS += -D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64
++CPPFLAGS += $(LIBCAP_CPPFLAGS)
++BUILD_CPPFLAGS += $(LIBCAP_CPPFLAGS)
+ INCS=$(topdir)/libcap/include/sys/capability.h
+ LDFLAGS += -L$(topdir)/libcap
+-CFLAGS += -Dlinux $(WARNINGS) $(DEBUG)
++CPPFLAGS += -Dlinux
++CFLAGS += $(WARNINGS) $(DEBUG)
+ 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)
+diff --git a/libcap/Makefile b/libcap/Makefile
+index 0ccd2e7..6b446ea 100644
+--- a/libcap/Makefile
++++ b/libcap/Makefile
+@@ -16,7 +16,7 @@ FILES=cap_alloc cap_proc cap_extint cap_flag cap_text
+ # no support).
+ ifeq ($(LIBATTR),yes)
+ FILES += cap_file
+-LDFLAGS += -lattr
++LDLIBS += -lattr
+ DEPS = -lattr
+ endif
+
+@@ -25,6 +25,7 @@ OBJS=$(addsuffix .o, $(FILES))
+ MAJLIBNAME=$(LIBNAME).$(VERSION)
+ MINLIBNAME=$(MAJLIBNAME).$(MINOR)
+ GPERF_OUTPUT = _caps_output.gperf
++CFLAGS += -fPIC
+
+ all: $(MINLIBNAME) $(STALIBNAME) libcap.pc
+
+@@ -43,7 +44,7 @@ libcap.pc: libcap.pc.in
+ $< >$@
+
+ _makenames: _makenames.c cap_names.list.h
+- $(BUILD_CC) $(BUILD_CFLAGS) $< -o $@
++ $(BUILD_CC) $(BUILD_CFLAGS) $(BUILD_CPPFLAGS) $< -o $@
+
+ cap_names.h: _makenames
+ ./_makenames > cap_names.h
+@@ -60,15 +61,15 @@ $(STALIBNAME): $(OBJS)
+ $(RANLIB) $@
+
+ $(MINLIBNAME): $(OBJS)
+- $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^
++ $(LD) $(CFLAGS) $(LDFLAGS) -Wl,-soname,$(MAJLIBNAME) -o $@ $^ $(LDLIBS)
+ ln -sf $(MINLIBNAME) $(MAJLIBNAME)
+ ln -sf $(MAJLIBNAME) $(LIBNAME)
+
+ %.o: %.c $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ cap_text.o: cap_text.c $(USE_GPERF_OUTPUT) $(INCLS)
+- $(CC) $(CFLAGS) $(IPATH) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(INCLUDE_GPERF_OUTPUT) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(FAKEROOT)$(INCDIR)/sys
+diff --git a/pam_cap/Makefile b/pam_cap/Makefile
+index cc32fb6..6f07b6b 100644
+--- a/pam_cap/Makefile
++++ b/pam_cap/Makefile
+@@ -9,6 +9,8 @@ include ../Make.Rules
+ # written (and you know why it fails), email me and explain why. Thanks!
+ LDLIBS += -L../libcap -lcap
+
++CFLAGS += -fPIC
++
+ all: pam_cap.so
+ $(MAKE) testcompile
+
+@@ -17,13 +19,13 @@ install: all
+ install -m 0755 pam_cap.so $(FAKEROOT)$(LIBDIR)/security
+
+ pam_cap.so: pam_cap.o
+- $(LD) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
++ $(LD) $(CFLAGS) $(LDFLAGS) -o pam_cap.so $< $(LDLIBS)
+
+ pam_cap.o: pam_cap.c
+- $(CC) $(CFLAGS) $(IPATH) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ testcompile: test.c pam_cap.o
+- $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
++ $(CC) $(CFLAGS) $(CPPFLAGS) $(LDFLAGS) -o $@ $+ -lpam -ldl $(LDLIBS)
+
+ clean:
+ rm -f *.o *.so testcompile *~
+diff --git a/progs/Makefile b/progs/Makefile
+index 778149e..8f4e2e6 100644
+--- a/progs/Makefile
++++ b/progs/Makefile
+@@ -22,7 +22,7 @@ $(BUILD): %: %.o
+ $(CC) $(CFLAGS) $(LDFLAGS) -o $@ $< $(LDLIBS)
+
+ %.o: %.c $(INCS)
+- $(CC) $(IPATH) $(CFLAGS) -c $< -o $@
++ $(CC) $(CFLAGS) $(CPPFLAGS) -c $< -o $@
+
+ install: all
+ mkdir -p -m 0755 $(FAKEROOT)$(SBINDIR)
+--
+2.4.1
+
diff --git a/sys-libs/libcap/files/libcap-2.24-setcap-errno.patch b/sys-libs/libcap/files/libcap-2.24-setcap-errno.patch
new file mode 100644
index 000000000000..08513f643e65
--- /dev/null
+++ b/sys-libs/libcap/files/libcap-2.24-setcap-errno.patch
@@ -0,0 +1,45 @@
+From 62b190c09d5652c58679dffd7f09e4aceb4c7daa Mon Sep 17 00:00:00 2001
+From: Mike Frysinger <vapier@gentoo.org>
+Date: Mon, 13 Jul 2015 01:59:14 -0400
+Subject: [PATCH] setcap: fix errno display
+
+The commit 056ffb0bd25d91ffbcb83c521fc4d3d9904ec4d4 broke the display of
+the final error message because it would do more operations that would
+clobber errno. Example:
+(libcap-2.22) sudo setcap cap_ipc_lock=ep /proc/filesystems | head -1
+Failed to set capabilities on file `/proc/filesystems' (Operation not supported)
+(libcap-2.23) sudo setcap cap_ipc_lock=ep /proc/filesystems | head -1
+Failed to set capabilities on file `/proc/filesystems' (Invalid argument)
+
+Save the original errno value and use that for the final display instead.
+
+URL: https://bugs.gentoo.org/551672
+Signed-off-by: Mike Frysinger <vapier@gentoo.org>
+---
+ progs/setcap.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/progs/setcap.c b/progs/setcap.c
+index 83090ae..7304343 100644
+--- a/progs/setcap.c
++++ b/progs/setcap.c
+@@ -171,6 +171,7 @@ int main(int argc, char **argv)
+ retval = cap_set_file(*++argv, cap_d);
+ if (retval != 0) {
+ int explained = 0;
++ int oerrno = errno;
+ #ifdef linux
+ cap_value_t cap;
+ cap_flag_value_t per_state;
+@@ -193,7 +194,7 @@ int main(int argc, char **argv)
+
+ fprintf(stderr,
+ "Failed to set capabilities on file `%s' (%s)\n",
+- argv[0], strerror(errno));
++ argv[0], strerror(oerrno));
+ if (!explained) {
+ usage();
+ }
+--
+2.4.4
+
diff --git a/sys-libs/libcap/libcap-2.17.ebuild b/sys-libs/libcap/libcap-2.17.ebuild
new file mode 100644
index 000000000000..a0b7be8d5b33
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.17.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils multilib toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap${PV:0:1}/${P}.tar.bz2"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+IUSE="pam"
+
+RDEPEND="sys-apps/attr
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ cd "${S}"
+ epatch "${FILESDIR}"/2.16/*.patch
+ sed -i -e '/cap_setfcap.*morgan/s:^:#:' pam_cap/capability.conf
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=$(use pam && echo yes || echo no):" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=$(get_libdir):" \
+ Make.Rules
+}
+
+src_compile() {
+ tc-export BUILD_CC CC AR RANLIB
+ emake || die
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ gen_usr_ldscript libcap.so
+ mv "${D}"/$(get_libdir)/libcap.a "${D}"/usr/$(get_libdir)/ || die
+
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.19.ebuild b/sys-libs/libcap/libcap-2.19.ebuild
new file mode 100644
index 000000000000..4b7398e189ab
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.19.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2010 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+inherit eutils multilib toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap${PV:0:1}/${P}.tar.bz2"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="pam"
+
+RDEPEND="sys-apps/attr
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_unpack() {
+ unpack ${P}.tar.bz2
+ cd "${S}"
+ epatch "${FILESDIR}"/2.16/*.patch
+ sed -i -e '/cap_setfcap.*morgan/s:^:#:' pam_cap/capability.conf
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=$(use pam && echo yes || echo no):" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=/usr/$(get_libdir):" \
+ Make.Rules
+}
+
+src_compile() {
+ tc-export BUILD_CC CC AR RANLIB
+ emake || die
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ gen_usr_ldscript -a cap
+
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.20.ebuild b/sys-libs/libcap/libcap-2.20.ebuild
new file mode 100644
index 000000000000..ee69ae865c9b
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.20.ebuild
@@ -0,0 +1,47 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils multilib toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap${PV:0:1}/${P}.tar.bz2"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="pam"
+
+RDEPEND="sys-apps/attr
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.20-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=$(use pam && echo yes || echo no):" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=/usr/$(get_libdir):" \
+ Make.Rules
+}
+
+src_compile() {
+ tc-export BUILD_CC CC AR RANLIB
+ emake || die
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ gen_usr_ldscript -a cap
+
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.21.ebuild b/sys-libs/libcap/libcap-2.21.ebuild
new file mode 100644
index 000000000000..db473d79e670
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.21.ebuild
@@ -0,0 +1,48 @@
+# Copyright 1999-2011 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils multilib toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap${PV:0:1}/${P}.tar.bz2"
+
+LICENSE="GPL-2 BSD"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86"
+IUSE="pam"
+
+RDEPEND="sys-apps/attr
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.20-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ epatch "${FILESDIR}"/${PN}-2.21-include.patch
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=$(use pam && echo yes || echo no):" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=/usr/$(get_libdir):" \
+ Make.Rules
+}
+
+src_compile() {
+ tc-export BUILD_CC CC AR RANLIB
+ emake || die
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ gen_usr_ldscript -a cap
+
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.22-r1.ebuild b/sys-libs/libcap/libcap-2.22-r1.ebuild
new file mode 100644
index 000000000000..78148cac115c
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.22-r1.ebuild
@@ -0,0 +1,52 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+# it's available under either of the licenses
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux"
+IUSE="pam"
+
+RDEPEND="sys-apps/attr
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.22-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.22-no-perl.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ epatch "${FILESDIR}"/${PN}-2.21-include.patch
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=$(usex pam):" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=/usr/$(get_libdir):" \
+ Make.Rules
+}
+
+src_configure() {
+ tc-export_build_env BUILD_CC
+ tc-export CC AR RANLIB
+}
+
+src_install() {
+ # no configure, needs explicit install line #444724#c3
+ emake install DESTDIR="${ED}"
+
+ gen_usr_ldscript -a cap
+
+ rm -rf "${ED}"/usr/$(get_libdir)/security
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.22-r2.ebuild b/sys-libs/libcap/libcap-2.22-r2.ebuild
new file mode 100644
index 000000000000..b5e8e317c1e8
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.22-r2.ebuild
@@ -0,0 +1,69 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib multilib-minimal toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+# it's available under either of the licenses
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux"
+IUSE="pam"
+
+RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}]
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.22-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.22-no-perl.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ epatch "${FILESDIR}"/${PN}-2.21-include.patch
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ if multilib_is_native_abi && use pam; then
+ pam=yes
+ else
+ pam=no
+ fi
+
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=${pam}:" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=/usr/$(get_libdir):" \
+ Make.Rules
+}
+
+multilib_src_compile() {
+ tc-export_build_env BUILD_CC
+ tc-export AR CC RANLIB
+
+ default
+}
+
+multilib_src_install() {
+ # no configure, needs explicit install line #444724#c3
+ emake install DESTDIR="${ED}"
+
+ multilib_is_native_abi && gen_usr_ldscript -a cap
+
+ rm -rf "${ED}"/usr/$(get_libdir)/security
+ if multilib_is_native_abi && use pam; then
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.22.ebuild b/sys-libs/libcap/libcap-2.22.ebuild
new file mode 100644
index 000000000000..2b22021becfc
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.22.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="2"
+
+inherit eutils multilib toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://gentoo/${P}.tar.bz2"
+
+# it's available under either of the licenses
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="alpha amd64 arm arm64 hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86"
+IUSE="pam"
+
+RDEPEND="sys-apps/attr
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.22-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.22-no-perl.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ epatch "${FILESDIR}"/${PN}-2.21-include.patch
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=$(usex pam):" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=/usr/$(get_libdir):" \
+ Make.Rules
+}
+
+src_configure() {
+ tc-export_build_env BUILD_CC
+ tc-export CC AR RANLIB
+}
+
+src_install() {
+ emake install DESTDIR="${D}" || die
+
+ gen_usr_ldscript -a cap
+
+ rm -rf "${D}"/usr/$(get_libdir)/security
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.24-r1.ebuild b/sys-libs/libcap/libcap-2.24-r1.ebuild
new file mode 100644
index 000000000000..3d8e7ad4c61a
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.24-r1.ebuild
@@ -0,0 +1,72 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib multilib-minimal toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap2/${P}.tar.xz"
+
+# it's available under either of the licenses
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux"
+IUSE="pam static-libs"
+
+RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}]
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.24-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.22-no-perl.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ epatch "${FILESDIR}"/${PN}-2.21-include.patch
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local pam
+ if multilib_is_native_abi && use pam; then
+ pam=yes
+ else
+ pam=no
+ fi
+
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=${pam}:" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e '/^lib_prefix=/s:=.*:=$(prefix):' \
+ -e "/^lib=/s:=.*:=$(get_libdir):" \
+ Make.Rules
+}
+
+multilib_src_compile() {
+ tc-export_build_env BUILD_CC
+ tc-export AR CC RANLIB
+
+ default
+}
+
+multilib_src_install() {
+ # no configure, needs explicit install line #444724#c3
+ emake install DESTDIR="${ED}"
+
+ multilib_is_native_abi && gen_usr_ldscript -a cap
+ use static-libs || rm "${ED}"/usr/$(get_libdir)/libcap.a
+
+ rm -rf "${ED}"/usr/$(get_libdir)/security
+ if multilib_is_native_abi && use pam; then
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.24-r2.ebuild b/sys-libs/libcap/libcap-2.24-r2.ebuild
new file mode 100644
index 000000000000..7a58eea5d87a
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.24-r2.ebuild
@@ -0,0 +1,73 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib multilib-minimal toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap2/${P}.tar.xz"
+
+# it's available under either of the licenses
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux"
+IUSE="pam static-libs"
+
+RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}]
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.24-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.22-no-perl.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ epatch "${FILESDIR}"/${PN}-2.21-include.patch
+ epatch "${FILESDIR}"/${PN}-2.24-setcap-errno.patch #551672
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local pam
+ if multilib_is_native_abi && use pam; then
+ pam=yes
+ else
+ pam=no
+ fi
+
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=${pam}:" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e '/^lib_prefix=/s:=.*:=$(prefix):' \
+ -e "/^lib=/s:=.*:=$(get_libdir):" \
+ Make.Rules
+}
+
+multilib_src_compile() {
+ tc-export_build_env BUILD_CC
+ tc-export AR CC RANLIB
+
+ default
+}
+
+multilib_src_install() {
+ # no configure, needs explicit install line #444724#c3
+ emake install DESTDIR="${ED}"
+
+ multilib_is_native_abi && gen_usr_ldscript -a cap
+ use static-libs || rm "${ED}"/usr/$(get_libdir)/libcap.a
+
+ rm -rf "${ED}"/usr/$(get_libdir)/security
+ if multilib_is_native_abi && use pam; then
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/libcap-2.24.ebuild b/sys-libs/libcap/libcap-2.24.ebuild
new file mode 100644
index 000000000000..35fd27743763
--- /dev/null
+++ b/sys-libs/libcap/libcap-2.24.ebuild
@@ -0,0 +1,71 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="4"
+
+inherit eutils multilib multilib-minimal toolchain-funcs pam
+
+DESCRIPTION="POSIX 1003.1e capabilities"
+HOMEPAGE="http://www.friedhoff.org/posixfilecaps.html"
+SRC_URI="mirror://kernel/linux/libs/security/linux-privs/libcap2/${P}.tar.xz"
+
+# it's available under either of the licenses
+LICENSE="|| ( GPL-2 BSD )"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~x86 ~amd64-linux ~arm-linux ~ia64-linux ~x86-linux"
+IUSE="pam static-libs"
+
+RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}]
+ pam? ( virtual/pam )"
+DEPEND="${RDEPEND}
+ sys-kernel/linux-headers"
+
+src_prepare() {
+ epatch "${FILESDIR}"/${PN}-2.24-build-system-fixes.patch
+ epatch "${FILESDIR}"/${PN}-2.22-no-perl.patch
+ epatch "${FILESDIR}"/${PN}-2.20-ignore-RAISE_SETFCAP-install-failures.patch
+ epatch "${FILESDIR}"/${PN}-2.21-include.patch
+
+ multilib_copy_sources
+}
+
+multilib_src_configure() {
+ local pam
+ if multilib_is_native_abi && use pam; then
+ pam=yes
+ else
+ pam=no
+ fi
+
+ sed -i \
+ -e "/^PAM_CAP/s:=.*:=${pam}:" \
+ -e '/^DYNAMIC/s:=.*:=yes:' \
+ -e "/^lib=/s:=.*:=/usr/$(get_libdir):" \
+ Make.Rules
+}
+
+multilib_src_compile() {
+ tc-export_build_env BUILD_CC
+ tc-export AR CC RANLIB
+
+ default
+}
+
+multilib_src_install() {
+ # no configure, needs explicit install line #444724#c3
+ emake install DESTDIR="${ED}"
+
+ multilib_is_native_abi && gen_usr_ldscript -a cap
+ use static-libs || rm "${ED}"/usr/$(get_libdir)/libcap.a
+
+ rm -rf "${ED}"/usr/$(get_libdir)/security
+ if multilib_is_native_abi && use pam; then
+ dopammod pam_cap/pam_cap.so
+ dopamsecurity '' pam_cap/capability.conf
+ fi
+}
+
+multilib_src_install_all() {
+ dodoc CHANGELOG README doc/capability.notes
+}
diff --git a/sys-libs/libcap/metadata.xml b/sys-libs/libcap/metadata.xml
new file mode 100644
index 000000000000..96a2d586367d
--- /dev/null
+++ b/sys-libs/libcap/metadata.xml
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+<herd>base-system</herd>
+</pkgmetadata>