diff options
Diffstat (limited to 'sys-libs/libcap')
-rw-r--r-- | sys-libs/libcap/Manifest | 15 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.20-ignore-RAISE_SETFCAP-install-failures.patch | 29 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.21-include.patch | 10 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.22-no-perl.patch | 54 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.24-build-system-fixes.patch | 163 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.24-setcap-errno.patch | 45 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.25-build-system-fixes.patch | 153 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.25-gperf.patch | 20 | ||||
-rw-r--r-- | sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch | 33 | ||||
-rw-r--r-- | sys-libs/libcap/libcap-2.24-r2.ebuild | 72 | ||||
-rw-r--r-- | sys-libs/libcap/libcap-2.25.ebuild | 77 | ||||
-rw-r--r-- | sys-libs/libcap/metadata.xml | 8 |
12 files changed, 679 insertions, 0 deletions
diff --git a/sys-libs/libcap/Manifest b/sys-libs/libcap/Manifest new file mode 100644 index 000000000000..5326ea16f42a --- /dev/null +++ b/sys-libs/libcap/Manifest @@ -0,0 +1,15 @@ +AUX libcap-2.20-ignore-RAISE_SETFCAP-install-failures.patch 840 SHA256 29be1427227f9b045151bd02597192bff1c6761c649014b0fd1384f08e010616 SHA512 59936147919f3a8959d87831583df96ab3e1883e58b746f6542cc6430434d2a93c07e79ff7e9fdf9698626aa42e60c6c57981025e46923be76ff2d65720d606c WHIRLPOOL c721054ac8538b748367b9a17971d3021831fdaf49260a2290484a506638ee8598946f001272e014937abb99569b17b0a3f9daed31ea426b6ce74f9a09460867 +AUX libcap-2.21-include.patch 290 SHA256 60038e5f67928edbf7e1b43b8799d5a92cff40dd7c3678135c793ed434c29305 SHA512 6f4867c64121e1294824a2dc1ac02578c9900cd051aea41d0920f1f65e162e3acec86a42f7e4fa6ee1dff08554fe25bd740951e9dc8a11bf79471229f268cffd WHIRLPOOL c3233cf04efc380c274bbd2860576f68494a16e4b0a2827284a692b560650379e33497532b347c2e8aa5019d229f8ceb6be3e0a990e21eae5d459134115aafd1 +AUX libcap-2.22-no-perl.patch 2360 SHA256 4eca873685da1aec0d06e9d7681c285166f9ad7e7cb14c65da6e05cbb135e9ef SHA512 8c49d829cbae15f28ded70b96bc0715819b13183136d90b64b7b6bfbd85c262f0161d89450579e9b58961c724b34816919d111f839e3f5a7a68427ffe441881d WHIRLPOOL 1da9b5b8b54c38bf45117653122ee6dc55949c21c39152d18d2dc0c721d4b906f777a8734d184d18b2c7a25b2aa06aa68d1ccc4409b16915aeb8d9b014951759 +AUX libcap-2.24-build-system-fixes.patch 4943 SHA256 c3d77ae406d13def200f520f6063b3783ae0dae46e740ad78ab189f8a6168210 SHA512 84283f0652f87a8c1f598413d03e8f3aeeb140b322519051df1873933d6d3ac738757e1c7c91ea6efc51548d224149b84d6a1fab0301a655eb609b183bc9e7ba WHIRLPOOL 1697c9223a59f10c5472b0286fa19a9a6c4b9dee16314f785164731043b4207f122b916bef7d596cb94e46eaf4eb7d376129cbedbcc7d317f1b49f17875d11d2 +AUX libcap-2.24-setcap-errno.patch 1491 SHA256 397462a3e207944a7ab2837a06794b225c29ad45e630de69e02df64225106586 SHA512 367037d6c42d07c359e9ee397cbc7431ea05c3d34deea93db1473394decb9f61a2c9de186652fc3a12fb615406ec1a2f4d76eb63c4410c6a2b5f435ece5b05ef WHIRLPOOL 07ce9f884251aad17fd9f7a3fef11e8193b66f3dcd9b58fb4aad755237cd7e4ad28e55a8d5434c65c5e56cc0a92af45f7bf677f0dc451276f46dcffe046a2ee1 +AUX libcap-2.25-build-system-fixes.patch 4705 SHA256 577368c8f23c3de76ba8fe580c4f89f3d23642f00e727547b25b8a9eae8e16af SHA512 c99df67dfdceefeea3c3033a38e94a93cd7a9c4ed6e74f42c3b7198d66deee4b5d4aa91c540a48b12749ce3285c0ac3f11d0ecc33b913c3f0169578ae28745da WHIRLPOOL 5f3a9cb1be9163a7692dafdd3ddc1e18d7152a06e773b0cd260faf3671155fe11225de4dfadb11a41a4d3eb739e69880230ce9f1bafe528d2b4e003ac9ce41d3 +AUX libcap-2.25-gperf.patch 620 SHA256 313ceed1d85424aa5f2143501e1d39e3ff8a3ad83b1f3813266ab158db902324 SHA512 1fd325160ebcf96f8a8f58e7f453241d15d2c968752cc050b52871536840f8ebbbfe1fa2bd03c19f86859e9739eb0059d30f157d2fa3a076da4a895fc32182e6 WHIRLPOOL 5adf5e901329188e91c6e5ae29dc0da61861408b5f3f04a46fd6b0b5d82ab7ae8d31cc8fe88734dd13a0df7a36deadd7f41b4babcef72e62f661aae37e89abae +AUX libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch 988 SHA256 fd18c5bb8cfd2f5b35b11d71d6170f0bff680aca313757bb3d8c201f137453d7 SHA512 ba573ce68858c1370f3d25ad03678a534e6f3052076694d09e795d1febf2f3d76a6a170658b71d9e31105521fd5d22dd72095585a5402286dba424937064b389 WHIRLPOOL 3d3d564cd1d066ac695a34c5d7ab4a5da30212e370492cface41581760bb47c5e113db5b8fda7eeb1bb645c01eb2f12a61b640d07ddba0754a883fb7dfe2aa8d +DIST libcap-2.24.tar.xz 63412 SHA256 cee4568f78dc851d726fc93f25f4ed91cc223b1fe8259daa4a77158d174e6c65 SHA512 c062bab936d651a50efa66dcfa51ab3ce4b0881195d23bb32142b5c8044d30e0e2152f3497844ce90c04f909aeffe2d41203efff41972e38758dcca7b653884b WHIRLPOOL bb7a9d8d3b999ad289962ebdc8b9eff87e25bd744a86ee4717e999738cb5a556a51826d0f0cbfc628629948fa8355d5d972208910d6c1c99bdf66a673b6f1cc8 +DIST libcap-2.25.tar.xz 63672 SHA256 693c8ac51e983ee678205571ef272439d83afe62dd8e424ea14ad9790bc35162 SHA512 c3ab491885292adc171cde542b96f1295e84132febb50112a46575c3bde3a3eb6fcf733f7a756b4b656e013c0abb5ed6571db24799f8c0b23d8f759f992864f9 WHIRLPOOL 294a399224997bb3e6187103f364dee2d64f5ab633068361c56fcb4a496abf24d0283b35d4c48df193d36f9372540a3afe853627429ba7f7caba7e9826e1a13d +EBUILD libcap-2.24-r2.ebuild 1849 SHA256 ca4f76b966bfd23f822ce50299569e3946bc5be5cfc9adc731f3eb724f5602d7 SHA512 bcc666cb5493e71c9060144a87289cdbb8cdf7a9ee98de6d44619a54881a0b4585e50c8edd24596a419a9e79c67e8ecd0eb215fcb68bd2b7305e704d346dd1e1 WHIRLPOOL 0653cc83acef8d600bc834a52a36c8a8fe4d229db312fc4b85352171fd3564d4e021ea919c5c5dd8e80fa6e227029770fc166f80d6e0a0da7456046e1610f8fe +EBUILD libcap-2.25.ebuild 1993 SHA256 15384016d977aacb418668811fe8f53704cb5f40485d43918868617d3ecd02d4 SHA512 f06c3222c4138950a7acbf1ff51dec492e383a8f6155a6e00477df63fb56f71138e49754bdb4fc4c7644d4acfc379d26504de926b8419cda8b8ac14c1efafb9d WHIRLPOOL 21177d62ce59b62963e2258e3c2bb36605bba96cb67cd21ac7db0b0f38b33210c7ef92474442675a566f8b194a38bb528e2d10c3c8c6f08ddbb7876988e9eb76 +MISC ChangeLog 6561 SHA256 eeaaba458412aa89795d59c4dac7b01914e38a3332e1f0e1790ccad7e2888de6 SHA512 edff5c5b9b1aea5bc80c069ed80dd4e46fedc6dc622444063bf651dbdf344423af62de1a9edb1782d38898c64b227b680830125f0cf6423cd31d0803b48ba6bd WHIRLPOOL 5b31ca3c4715d89f9553680f8fd16bb778c3cca175883c3c3dd14156583eaa13da3c065b5234b478018a18b198188c440ff3b57999db0a88bd4a865c109ee94d +MISC ChangeLog-2015 19662 SHA256 b0af676d62d97ad4f30806040c14cc2fc4a8b55cac6b4840bc05866ccaf0204e SHA512 f39e403217fe2cde0c5e67501505e142726af4c662cca86561f8d5b737e5c8c5148f3ec73f33638e7aeabc3bd4aab93663bb814ba0db8a8e2a5ed1b993fe3334 WHIRLPOOL 37c17ae1a701eec386716a6902bef89ddf2ce61ad2a2d87f674dcc83ba1e67c579950ed2c0380f571c803b41a94fd9a42d9975b5e8299d81b421c06cf879c0f3 +MISC metadata.xml 253 SHA256 d82c33ef453113a5c1ebe250dcba373c22934a69b0a86c6ab15a5ca589c25b91 SHA512 54a9069aeb4165d2dff3d473c8001bc51613aac9dff3f7f5e9971a9891a737a31511ffa11cbd523febe581ac1d9de2bdf2f40410f0c4239138f2ccca3ef15555 WHIRLPOOL e5aee23acff864609953a1e4de768f0e4aef704b44c53c021f28573e1ca5c99f1a46d92935ecec2449f7b4419a36d8373127d0ecfa8d7bae72d835e1839eb3f8 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-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/files/libcap-2.25-build-system-fixes.patch b/sys-libs/libcap/files/libcap-2.25-build-system-fixes.patch new file mode 100644 index 000000000000..c33fffda8d91 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.25-build-system-fixes.patch @@ -0,0 +1,153 @@ +From d5a0c023a7f3deefd471d7b97ef4fa40ed374645 Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Wed, 10 Feb 2016 09:47:27 +0100 +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> + +Forward ported from libcap-2.24 to libcap-2.25 + +Signed-off-by: Lars Wendler <polynomial-c@gentoo.org> +--- + Make.Rules | 26 ++++++++++++++------------ + libcap/Makefile | 7 ++++--- + pam_cap/Makefile | 8 +++++--- + progs/Makefile | 2 +- + 4 files changed, 24 insertions(+), 19 deletions(-) + +diff --git a/Make.Rules b/Make.Rules +index 8347b26..d7196ef 100644 +--- a/Make.Rules ++++ b/Make.Rules +@@ -45,28 +45,30 @@ MINOR=25 + + # 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 + BUILD_GPERF := $(shell which gperf >/dev/null 2>/dev/null && echo yes) + +-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 d189777..b99740f 100644 +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -17,6 +17,7 @@ OBJS=$(addsuffix .o, $(FILES)) + MAJLIBNAME=$(LIBNAME).$(VERSION) + MINLIBNAME=$(MAJLIBNAME).$(MINOR) + GPERF_OUTPUT = _caps_output.gperf ++CFLAGS += -fPIC + + all: $(MINLIBNAME) $(STALIBNAME) libcap.pc + +@@ -35,7 +36,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 +@@ -57,10 +58,10 @@ $(MINLIBNAME): $(OBJS) + 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 c094a24..b9f0d3f 100644 +--- a/progs/Makefile ++++ b/progs/Makefile +@@ -19,7 +19,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.7.1 + diff --git a/sys-libs/libcap/files/libcap-2.25-gperf.patch b/sys-libs/libcap/files/libcap-2.25-gperf.patch new file mode 100644 index 000000000000..86e930f6a446 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.25-gperf.patch @@ -0,0 +1,20 @@ +update gperf call to work with gperf-3.1 + +https://bugs.gentoo.org/604802 + +--- a/libcap/Makefile ++++ b/libcap/Makefile +@@ -44,11 +44,12 @@ + ./_makenames > cap_names.h + + $(GPERF_OUTPUT): cap_names.list.h +- (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"; \ ++ (printf "%b" "struct __cap_token_s { const char *name; int index; };\n%%\n"; \ + $(SED) -e 's:["{}]::g' -e 's:,$$::' $<) | \ + gperf \ + --ignore-case \ + --language=ANSI-C \ ++ --includes \ + --readonly \ + --null-strings \ + --global-table \ diff --git a/sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch b/sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch new file mode 100644 index 000000000000..0f737361a4d1 --- /dev/null +++ b/sys-libs/libcap/files/libcap-2.25-ignore-RAISE_SETFCAP-install-failures.patch @@ -0,0 +1,33 @@ +From 8dfcdcfdcb9c462a05566aa8d3c6eca871f0ddbf Mon Sep 17 00:00:00 2001 +From: Mike Frysinger <vapier@gentoo.org> +Date: Wed, 10 Feb 2016 09:52:45 +0100 +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> + +Forward ported from libcap-2.20 to libcap-2.25 + +Signed-off-by: Lars Wendler <polynomial-c@gentoo.org> +--- + progs/Makefile | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/progs/Makefile b/progs/Makefile +index c094a24..4a6db38 100644 +--- a/progs/Makefile ++++ b/progs/Makefile +@@ -27,7 +27,7 @@ install: all + install -m 0755 $$p $(FAKEROOT)$(SBINDIR) ; \ + done + ifeq ($(RAISE_SETFCAP),yes) +- $(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap ++ -$(FAKEROOT)$(SBINDIR)/setcap cap_setfcap=i $(FAKEROOT)$(SBINDIR)/setcap + endif + + clean: +-- +2.7.1 + 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..5575faa355ce --- /dev/null +++ b/sys-libs/libcap/libcap-2.24-r2.ebuild @@ -0,0 +1,72 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +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 ~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}" + + 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.25.ebuild b/sys-libs/libcap/libcap-2.25.ebuild new file mode 100644 index 000000000000..feb60b9a4b62 --- /dev/null +++ b/sys-libs/libcap/libcap-2.25.ebuild @@ -0,0 +1,77 @@ +# Copyright 1999-2017 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +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 ~x86-linux" +IUSE="pam static-libs" + +# While the build system optionally uses gperf, we don't DEPEND on it because +# the build automatically falls back when it's unavailable. #604802 +RDEPEND=">=sys-apps/attr-2.4.47-r1[${MULTILIB_USEDEP}] + pam? ( virtual/pam )" +DEPEND="${RDEPEND} + sys-kernel/linux-headers" + +PATCHES=( + "${FILESDIR}"/${PN}-2.25-build-system-fixes.patch + "${FILESDIR}"/${PN}-2.22-no-perl.patch + "${FILESDIR}"/${PN}-2.25-ignore-RAISE_SETFCAP-install-failures.patch + "${FILESDIR}"/${PN}-2.21-include.patch + "${FILESDIR}"/${PN}-2.25-gperf.patch +) + +src_prepare() { + epatch "${PATCHES[@]}" + 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}" + + 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..56c124413057 --- /dev/null +++ b/sys-libs/libcap/metadata.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> +<maintainer type="project"> + <email>base-system@gentoo.org</email> + <name>Gentoo Base System</name> +</maintainer> +</pkgmetadata> |