libcap: fix build with gperf 3.1

This commit is contained in:
Juergen Daubert 2017-02-14 17:05:53 +01:00
parent 69e96c98f6
commit 31555a29ed
4 changed files with 40 additions and 5 deletions

View File

@ -1 +1,2 @@
82ae7790afc71abb2241d9ae3deea713 libcap-2.25-gperf.patch
6666b839e5d46c2ad33fc8aa2ceb5f77 libcap-2.25.tar.xz

View File

@ -1,5 +1,6 @@
untrusted comment: verify with /etc/ports/core.pub
RWRJc1FUaeVeqhRjNlFCV4+4h70l//ggK3ENJABoDaVxAQZ04OotYRBVfDl0t8h+ilVBXqb11eAjMQr0jrULRH7IjE0gWg/NgQE=
SHA256 (Pkgfile) = fba0a01a748dfee9218616fd250b38abc0fd26b36c73420ffd07d2e38b3749c6
RWRJc1FUaeVeqjHOuGScypAwBYxoohhYPKOy7VuiClGAlHa7IVvDScr38f24/CdKUOtjzk5tVCeLcO6TiVB8OfTj55I3bqJaswc=
SHA256 (Pkgfile) = 009646b7b626a9e547d9e4d7d599ecab5a614aa3d9af28d49656d1ec47468582
SHA256 (.footprint) = 05ee56643778445bd4dc126d33f0ebfd578ec85a45000ae7786420a9bda40d60
SHA256 (libcap-2.25.tar.xz) = 693c8ac51e983ee678205571ef272439d83afe62dd8e424ea14ad9790bc35162
SHA256 (libcap-2.25-gperf.patch) = b435d629f4dcd53ba0b230ae6bc42708a155826b5ea350387e70594ee6a04b04

View File

@ -5,12 +5,14 @@
name=libcap
version=2.25
release=1
source=(https://www.kernel.org/pub/linux/libs/security/linux-privs/libcap2/$name-$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

View File

@ -0,0 +1,31 @@
From 13992f56d80c0ee20e08f99b8e8ff37d63e65f9d Mon Sep 17 00:00:00 2001
From: Mike Gilbert <floppym@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