libcap-ng: add package libcap-ng

Signed-off-by: Lucian Cristian <lucian.cristian@gmail.com>
This commit is contained in:
Lucian Cristian 2020-05-16 15:28:52 +03:00
parent 04575c258e
commit 16ecc549f1
4 changed files with 157 additions and 0 deletions

90
libs/libcap-ng/Makefile Normal file
View File

@ -0,0 +1,90 @@
#
# Copyright (C) 2020 Lucian Cristian
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=libcap-ng
PKG_VERSION:=0.7.10
PKG_RELEASE:=1
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://people.redhat.com/sgrubb/libcap-ng
PKG_HASH:=a84ca7b4e0444283ed269b7a29f5b6187f647c82e2b876636b49b9a744f0ffbf
PKG_MAINTAINER:=Lucian CRISTIAN <lucian.cristian@gmail.com>
PKG_LICENSE:=GPL-2.0-or-later LGPL-2.1-or-later
PKG_LICENSE_FILES:=License
PKG_INSTALL:=1
PKG_BUILD_PARALLEL:=1
PKG_FIXUP:=autoreconf
include $(INCLUDE_DIR)/package.mk
define Package/libcap-ng/Default
TITLE:=POSIX capabilities library
SECTION:=libs
CATEGORY:=Libraries
URL:=https://people.redhat.com/sgrubb/libcap-ng/index.html
endef
define Package/libcap-ng/description/Default
POSIX capabilities library
endef
define Package/libcap-ng
$(call Package/libcap-ng/Default)
TITLE += library
endef
define Package/libcap-ng-bin
$(call Package/libcap-ng/Default)
TITLE += binaries
DEPENDS += libcap-ng
endef
define Package/libcap-ng-bin/description
$(call Package/libcap-ng/description/Default)
.
This package contains the libcap-ng utilities.
endef
TARGET_LDFLAGS += -Wl,--gc-sections,--as-needed $(FPIC)
TARGET_CFLAGS += -flto
CONFIGURE_VARS += \
ac_cv_prog_swig_found=no
CONFIGURE_ARGS += \
--prefix=/usr \
--without-python \
--without-python3
define Build/InstallDev
$(INSTALL_DIR) $(1)/usr/include
$(CP) $(PKG_INSTALL_DIR)/usr/include/*.h $(1)/usr/include/
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libcap-ng.{so*,a} $(1)/usr/lib/
$(INSTALL_DIR) $(1)/usr/lib/pkgconfig
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/lib/pkgconfig/libcap-ng.pc $(1)/usr/lib/pkgconfig/
$(INSTALL_DIR) $(1)/usr/share/aclocal
$(INSTALL_DATA) $(PKG_INSTALL_DIR)/usr/share/aclocal/cap-ng.m4\
$(1)/usr/share/aclocal
endef
define Package/libcap-ng/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libcap-ng.so* $(1)/usr/lib/
endef
define Package/libcap-ng-bin/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/* $(1)/usr/sbin/
endef
$(eval $(call BuildPackage,libcap-ng))
$(eval $(call BuildPackage,libcap-ng-bin))

View File

@ -0,0 +1,30 @@
From 2c855b76362d1027abea967ac253cae8a7c160c3 Mon Sep 17 00:00:00 2001
From: Trevor Woerner <twoerner@gmail.com>
Date: Wed, 6 May 2020 17:38:05 -0400
Subject: [PATCH] configure.ac: add library if header found (#10)
If the pthread.h header is found, make sure library containing
"pthread_atfork" is added to the list of libraries against which to link.
On some hosts (e.g. openSUSE 15.1) "-lpthread" needs to be explicitly added
in order for the code to compile correctly.
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
---
configure.ac | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/configure.ac b/configure.ac
index 9d6aca3..4fbe4d3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -56,7 +56,9 @@ AC_CHECK_HEADERS(sys/xattr.h, [], [
AC_CHECK_HEADERS(attr/xattr.h, [], [AC_MSG_WARN(attr/xattr.h not found, disabling file system capabilities.)])
])
AC_CHECK_HEADERS(linux/securebits.h, [], [])
-AC_CHECK_HEADERS(pthread.h, [], [AC_MSG_WARN(pthread.h not found, disabling pthread_atfork.)])
+AC_CHECK_HEADERS(pthread.h,
+ [AC_SEARCH_LIBS(pthread_atfork, pthread)],
+ [AC_MSG_WARN(pthread.h not found, disabling pthread_atfork.)])
AC_C_CONST
AC_C_INLINE

View File

@ -0,0 +1,11 @@
diff -ru libcap-ng-0.7.4.orig/src/cap-ng.c libcap-ng-0.7.4/src/cap-ng.c
--- libcap-ng-0.7.4.orig/src/cap-ng.c 2014-04-24 15:41:43.000000000 -0300
+++ libcap-ng-0.7.4/src/cap-ng.c 2015-04-15 08:45:10.783335463 -0300
@@ -34,6 +34,7 @@
#include <stdarg.h>
#include <errno.h>
#include <fcntl.h>
+#include <endian.h>
#include <byteswap.h>
#ifdef HAVE_SYSCALL_H
#include <sys/syscall.h>

View File

@ -0,0 +1,26 @@
From 9b5597dc780a9da292f9142899a992cfc6ca081d Mon Sep 17 00:00:00 2001
From: Fabrice Fontaine <fontaine.fabrice@gmail.com>
Date: Thu, 7 May 2020 00:19:18 +0200
Subject: [PATCH] src/cap-ng.c: fix build without threads (#13)
Put pthread_atfork under #ifdef HAVE_PTHREAD_H block
Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
---
src/cap-ng.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/src/cap-ng.c b/src/cap-ng.c
index 35fcd7a..97a3dbd 100644
--- a/src/cap-ng.c
+++ b/src/cap-ng.c
@@ -166,7 +166,9 @@ static void deinit(void)
static void init_lib(void) __attribute__ ((constructor));
static void init_lib(void)
{
+#ifdef HAVE_PTHREAD_H
pthread_atfork(NULL, NULL, deinit);
+#endif
}
static void init(void)