commit c0ff7d239011da4824649b3264f8c2ccedabbbc7
Author: Danny Rawlins <monster.romster(a)gmail.com>
Date: Thu Aug 2 00:04:18 2018 +1000
libcap-32: fix build
diff --git a/libcap-32/.md5sum b/libcap-32/.md5sum
deleted file mode 100644
index 457b8d3..0000000
--- a/libcap-32/.md5sum
+++ /dev/null
@@ -1 +0,0 @@
-6666b839e5d46c2ad33fc8aa2ceb5f77 libcap-2.25.tar.xz
diff --git a/libcap-32/.signature b/libcap-32/.signature
index 7f95ae8..18b7648 100644
--- a/libcap-32/.signature
+++ b/libcap-32/.signature
@@ -1,5 +1,6 @@
untrusted comment: verify with /etc/ports/compat-32.pub
-RWSwxGo/zH7eXfGZHyyzcHJrMPtxzxPXCjjq/SFOheuRjNcRxqGntU2CtAH6OvPgCdJm6c4jhb2s3VR8Qc5zGbqhkt2wsSg3TQc=
-SHA256 (Pkgfile) = 588ca4067f5ee2e1a55daa6a5b78422cf247f3d7a3af38a2c00ad464593308ef
+RWSwxGo/zH7eXcJ75eaPuvzqwm1D2/WZT8697vL7kTC8iA4H+wfZpSRllXkPHsK+LXUF5H3OKUYx61qfcNHM4xtCAYfmuwWM9Ao=
+SHA256 (Pkgfile) = aa4486386b4eb6fce7bee27c4b6162659aaba7877441ef8b5bb0a77df6268eda
SHA256 (.footprint) = f73f509f131affbad702db18fb632758ca5407628da843f10027a79e8786ca67
SHA256 (libcap-2.25.tar.xz) = 693c8ac51e983ee678205571ef272439d83afe62dd8e424ea14ad9790bc35162
+SHA256 (libcap-2.25-gperf.patch) = b435d629f4dcd53ba0b230ae6bc42708a155826b5ea350387e70594ee6a04b04
diff --git a/libcap-32/Pkgfile b/libcap-32/Pkgfile
index be471da..0923970 100644
--- a/libcap-32/Pkgfile
+++ b/libcap-32/Pkgfile
@@ -5,12 +5,14 @@
name=libcap-32
version=2.25
-release=1
-source=(https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/libcap-$version.tar.xz)
+release=2
+source=(https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/${name%-*}-$version.tar.xz
+ ${name%-*}-$version-gperf.patch)
build() {
- cd libcap-$version
+ cd ${name%-*}-$version
+ patch -p1 -i $SRC/${name%-*}-$version-gperf.patch
sed -i "/^CFLAGS/s/-O2/$CFLAGS/" Make.Rules
make -C libcap
diff --git a/libcap-32/libcap-2.25-gperf.patch b/libcap-32/libcap-2.25-gperf.patch
new file mode 100644
index 0000000..45007a9
--- /dev/null
+++ b/libcap-32/libcap-2.25-gperf.patch
@@ -0,0 +1,31 @@
+From 13992f56d80c0ee20e08f99b8e8ff37d63e65f9d Mon Sep 17 00:00:00 2001
+From: Mike Gilbert <floppym(a)gentoo.org>
+Date: Mon, 16 Jan 2017 12:09:35 -0500
+Subject: [PATCH] Fix build with gperf-3.1
+
+gperf-3.1 lookup functions take a size_t instead of unsigned int.
+
+To resolve this:
+
+1. Pass --includes to gperf so that size_t is defined.
+2. Remove __cap_lookup_name declaration.
+---
+ libcap/Makefile | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/libcap/Makefile b/libcap/Makefile
+index d189777..634a042 100644
+--- a/libcap/Makefile
++++ b/libcap/Makefile
+@@ -41,7 +41,7 @@ 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) > $@
++ perl -e 'print "struct __cap_token_s { const char *name; int index; };\n%%\n"; while ($$l = <>) { $$l =~ s/[\{\"]//g; $$l =~ s/\}.*// ; print $$l; }' < $< | gperf --ignore-case --language=ANSI-C --includes --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"
+--
+2.11.0
+