commit: bb869aa04de2430f54c61d229d6e1ae80c2c065f Author: Aric Belsito <lluixhi <AT> gmail <DOT> com> AuthorDate: Sun Jan 8 21:01:24 2017 +0000 Commit: Aric Belsito <lluixhi <AT> gmail <DOT> com> CommitDate: Sun Jan 8 21:01:24 2017 +0000 URL: https://gitweb.gentoo.org/proj/musl.git/commit/?id=bb869aa0
dev-libs/libcgroup: Use sys-libs/musl-fts Only change from the in-tree version dev-libs/libcgroup/Manifest | 1 + dev-libs/libcgroup/files/cgconfig.confd-r1 | 7 + dev-libs/libcgroup/files/cgconfig.initd-r1 | 53 +++++ dev-libs/libcgroup/files/cgred.confd-r2 | 5 + dev-libs/libcgroup/files/cgred.initd-r1 | 24 +++ .../files/libcgroup-0.41-reorder-headers.patch | 28 +++ .../files/libcgroup-0.41-replace_DECLS.patch | 225 +++++++++++++++++++++ .../files/libcgroup-0.41-replace_INLCUDES.patch | 74 +++++++ dev-libs/libcgroup/libcgroup-0.41-r4.ebuild | 93 +++++++++ dev-libs/libcgroup/metadata.xml | 19 ++ 10 files changed, 529 insertions(+) diff --git a/dev-libs/libcgroup/Manifest b/dev-libs/libcgroup/Manifest new file mode 100644 index 0000000..62dae46 --- /dev/null +++ b/dev-libs/libcgroup/Manifest @@ -0,0 +1 @@ +DIST libcgroup-0.41.tar.bz2 500120 SHA256 e4e38bdc7ef70645ce33740ddcca051248d56b53283c0dc6d404e17706f6fb51 SHA512 1aedb02cd2ce3bc2e2a328a247a92976ad0978ca4d3aee4eb671fbcc6bb270348efc78dcf84f27fc500f8bfb9bb57c7d6e4d429ef2bc69e4e5118b7cd895a6bd WHIRLPOOL 3941ec9362dd7da1c5d1b9eaf2b44303982a04d460ab92946201b1fe952c2f94e19950e9a08104c262eb982d8e64bcf290f1b95115aaba11d8b1457b715a3646 diff --git a/dev-libs/libcgroup/files/cgconfig.confd-r1 b/dev-libs/libcgroup/files/cgconfig.confd-r1 new file mode 100644 index 0000000..334958e --- /dev/null +++ b/dev-libs/libcgroup/files/cgconfig.confd-r1 @@ -0,0 +1,7 @@ +# /etc/conf.d/cgconfig: config file for /etc/init.d/cgconfig + +# Configuration file location +CG_CONFIGFILE=/etc/cgroup/cgconfig.conf + +# Enable calssifying pid according to rules if necessary +CG_CLASSIFY=No diff --git a/dev-libs/libcgroup/files/cgconfig.initd-r1 b/dev-libs/libcgroup/files/cgconfig.initd-r1 new file mode 100644 index 0000000..0615259 --- /dev/null +++ b/dev-libs/libcgroup/files/cgconfig.initd-r1 @@ -0,0 +1,53 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +CGCONFIGPARSER="/usr/sbin/cgconfigparser" +CGCLASSIFY="/usr/sbin/cgclassify" +: ${CG_CONFIGFILE:=/etc/cgroup/cgconfig.conf} +description="Control Group Configuration Service" + +start() +{ + ebegin "Setting up CGroups" + ${CGCONFIGPARSER} --load=${CG_CONFIGFILE} >/dev/null 2>&1 + eend "$?" +} + +start_post() +{ + # Classify PID according to the rules if requested + yesno "${CG_CLASSIFY}" || return 0 + ebegin "Classifying PID to CGroups" + local pid + for pid in $(ps --no-headers -eL o tid); do + ${CGCLASSIFY} ${pid} + done + eend "$?" +} + +stop() +{ + cgconfig_umount +} + +cgconfig_umount() +{ + local ctrl eq mnt_pnt mnt_pts + + while read ctrl eq mnt_pnt; do + case "${ctrl}" in + (\#*) continue ;; + (mount*) mnt_pts=true;; + (\}*) mnt_pts= ;; + (*) + [ -n "${mnt_pts}" ] || continue + mnt_pnt="${mnt_pnt%;}" + ebegin "Unmounting ${mnt_pnt}" + umount "${mnt_pnt}" + eend "$?" + ;; + esac + done < "${CG_CONFIGFILE}" +} diff --git a/dev-libs/libcgroup/files/cgred.confd-r2 b/dev-libs/libcgroup/files/cgred.confd-r2 new file mode 100644 index 0000000..cdc7a7c --- /dev/null +++ b/dev-libs/libcgroup/files/cgred.confd-r2 @@ -0,0 +1,5 @@ +# /etc/conf.d/cgred.conf: config file for /etc/init.d/cgred + +# Options to pass to cgrulesengd; +# See the cgrulesengd(8) man page for more info. +CGRED_OPTS="-n" diff --git a/dev-libs/libcgroup/files/cgred.initd-r1 b/dev-libs/libcgroup/files/cgred.initd-r1 new file mode 100644 index 0000000..6bc7ef5 --- /dev/null +++ b/dev-libs/libcgroup/files/cgred.initd-r1 @@ -0,0 +1,24 @@ +#!/sbin/openrc-run +# Copyright 1999-2015 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +command="/usr/sbin/cgrulesengd" +command_args="${CGRED_OPTS}" +command_background="1" +pidfile="/var/run/cgred.pid" +description="CGroups Rules Engine Daemon" +extra_started_commands="reload" + +depend() +{ + need cgconfig + use logger +} + +reload() +{ + ebegin "Reloading CGroup Rules Engine Daemon" + kill -USR2 $(cat "${pidfile}") + eend $? +} diff --git a/dev-libs/libcgroup/files/libcgroup-0.41-reorder-headers.patch b/dev-libs/libcgroup/files/libcgroup-0.41-reorder-headers.patch new file mode 100644 index 0000000..78a3d09 --- /dev/null +++ b/dev-libs/libcgroup/files/libcgroup-0.41-reorder-headers.patch @@ -0,0 +1,28 @@ +libcgroup-internal.h: reorder the header stacking. + +`man 3 fts` not only specifies the headers to be included, but +also the order. <fts.h> must be included after <sys/types.h> +and <sys/stats.h>. On glibc and uClibc systems, an incorrect +order does not pose a problem, but on musl this leads to undefine +types such as dev_t and friends. + +Signed-off-by: Anthony G. Basile <bluen...@gentoo.org> + +diff -Naur libcgroup-0.41.orig/src/libcgroup-internal.h libcgroup-0.41/src/libcgroup-internal.h +--- libcgroup-0.41.orig/src/libcgroup-internal.h 2015-07-13 21:08:26.740965713 -0400 ++++ libcgroup-0.41/src/libcgroup-internal.h 2015-07-13 21:09:40.774962164 -0400 +@@ -21,12 +21,12 @@ + #endif + + #include "config.h" +-#include <fts.h> + #include <libcgroup.h> + #include <limits.h> + #include <pthread.h> +-#include <sys/stat.h> + #include <sys/types.h> ++#include <sys/stat.h> ++#include <fts.h> + #include <setjmp.h> + + /* Maximum number of mount points/controllers */ diff --git a/dev-libs/libcgroup/files/libcgroup-0.41-replace_DECLS.patch b/dev-libs/libcgroup/files/libcgroup-0.41-replace_DECLS.patch new file mode 100644 index 0000000..7701093 --- /dev/null +++ b/dev-libs/libcgroup/files/libcgroup-0.41-replace_DECLS.patch @@ -0,0 +1,225 @@ +Replace __BEGIN_DECLS and __END_DECLS with extern "C". + +The macros __BEGIN_DECLS and __END_DECLS are a GNU-ism found in +glibc and uClibc, but not musl. We replace them by the more general +extern "C" { ... } block exposed only if we have __cplusplus. + +Signed-off-by: Anthony G. Basile <bluen...@gentoo.org> + +diff -Naur libcgroup-0.41.orig/include/libcgroup/config.h libcgroup-0.41/include/libcgroup/config.h +--- libcgroup-0.41.orig/include/libcgroup/config.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/include/libcgroup/config.h 2015-07-11 23:19:20.451977284 +0000 +@@ -9,7 +9,9 @@ + #include <features.h> + #endif + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** + * @defgroup group_config 5. Configuration +@@ -107,6 +109,8 @@ + * @} + * @} + */ +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /*_LIBCGROUP_CONFIG_H*/ +diff -Naur libcgroup-0.41.orig/include/libcgroup/error.h libcgroup-0.41/include/libcgroup/error.h +--- libcgroup-0.41.orig/include/libcgroup/error.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/include/libcgroup/error.h 2015-07-11 23:19:34.253977328 +0000 +@@ -9,7 +9,9 @@ + #include <features.h> + #endif + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** + * @defgroup group_errors 6. Error handling +@@ -99,6 +101,8 @@ + * @} + * @} + */ +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* _LIBCGROUP_INIT_H */ +diff -Naur libcgroup-0.41.orig/include/libcgroup/groups.h libcgroup-0.41/include/libcgroup/groups.h +--- libcgroup-0.41.orig/include/libcgroup/groups.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/include/libcgroup/groups.h 2015-07-11 23:19:40.305977347 +0000 +@@ -11,7 +11,9 @@ + #include <stdbool.h> + #endif + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** + * Flags for cgroup_delete_cgroup_ext(). +@@ -577,6 +579,8 @@ + */ + + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* _LIBCGROUP_GROUPS_H */ +diff -Naur libcgroup-0.41.orig/include/libcgroup/init.h libcgroup-0.41/include/libcgroup/init.h +--- libcgroup-0.41.orig/include/libcgroup/init.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/include/libcgroup/init.h 2015-07-11 23:19:46.369977366 +0000 +@@ -9,7 +9,9 @@ + #include <features.h> + #endif + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** + * @defgroup group_init 1. Initialization +@@ -58,6 +60,8 @@ + * @} + * @} + */ +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* _LIBCGROUP_INIT_H */ +diff -Naur libcgroup-0.41.orig/include/libcgroup/iterators.h libcgroup-0.41/include/libcgroup/iterators.h +--- libcgroup-0.41.orig/include/libcgroup/iterators.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/include/libcgroup/iterators.h 2015-07-11 23:19:53.353977388 +0000 +@@ -11,7 +11,9 @@ + #include <features.h> + #endif + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** + * @defgroup group_iterators 3. Iterators +@@ -423,6 +425,8 @@ + * @} + */ + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* _LIBCGROUP_ITERATORS_H */ +diff -Naur libcgroup-0.41.orig/include/libcgroup/log.h libcgroup-0.41/include/libcgroup/log.h +--- libcgroup-0.41.orig/include/libcgroup/log.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/include/libcgroup/log.h 2015-07-11 23:19:58.922977406 +0000 +@@ -11,7 +11,9 @@ + + #include <stdarg.h> + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** + * @defgroup group_log 7. Logging +@@ -142,6 +144,8 @@ + * @} + * @} + */ +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* _LIBCGROUP_LOG_H */ +diff -Naur libcgroup-0.41.orig/include/libcgroup/tasks.h libcgroup-0.41/include/libcgroup/tasks.h +--- libcgroup-0.41.orig/include/libcgroup/tasks.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/include/libcgroup/tasks.h 2015-07-11 23:20:03.329977420 +0000 +@@ -12,7 +12,9 @@ + #include <stdbool.h> + #endif + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + /** Flags for cgroup_change_cgroup_uid_gid(). */ + enum cgflags { +@@ -204,6 +206,8 @@ + * @} + * @} + */ +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* _LIBCGROUP_TASKS_H */ +diff -Naur libcgroup-0.41.orig/src/daemon/cgrulesengd.h libcgroup-0.41/src/daemon/cgrulesengd.h +--- libcgroup-0.41.orig/src/daemon/cgrulesengd.h 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/src/daemon/cgrulesengd.h 2015-07-11 23:20:34.282977519 +0000 +@@ -17,7 +17,9 @@ + + #include <features.h> + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + #include "config.h" + #include "libcgroup.h" +@@ -119,7 +121,9 @@ + */ + void cgre_catch_term(int signum); + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif /* _CGRULESENGD_H */ + +diff -Naur libcgroup-0.41.orig/src/libcgroup-internal.h libcgroup-0.41/src/libcgroup-internal.h +--- libcgroup-0.41.orig/src/libcgroup-internal.h 2015-07-11 23:16:37.497976764 +0000 ++++ libcgroup-0.41/src/libcgroup-internal.h 2015-07-11 23:20:22.299977481 +0000 +@@ -16,7 +16,9 @@ + + #define __LIBCG_INTERNAL + +-__BEGIN_DECLS ++#ifdef __cplusplus ++extern "C" { ++#endif + + #include "config.h" + #include <fts.h> +@@ -279,6 +281,8 @@ + */ + int cg_chmod_path(const char *path, mode_t mode, int owner_is_umask); + +-__END_DECLS ++#ifdef __cplusplus ++} ++#endif + + #endif diff --git a/dev-libs/libcgroup/files/libcgroup-0.41-replace_INLCUDES.patch b/dev-libs/libcgroup/files/libcgroup-0.41-replace_INLCUDES.patch new file mode 100644 index 0000000..191de87 --- /dev/null +++ b/dev-libs/libcgroup/files/libcgroup-0.41-replace_INLCUDES.patch @@ -0,0 +1,74 @@ +Replace INCLUDES with AM_CPPFLAGS in Makefile.am + +We replace the deprecated INCLUDES with AM_CPPFLAGS in all +Makefile.am's. + +Signed-off-by: Anthony G. Basile <bluen...@gentoo.org> + +diff -Naur libcgroup-0.41.orig/src/Makefile.am libcgroup-0.41/src/Makefile.am +--- libcgroup-0.41.orig/src/Makefile.am 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/src/Makefile.am 2015-07-13 14:36:38.922428040 +0000 +@@ -9,7 +9,7 @@ + + CLEANFILES = lex.c parse.c parse.h + +-INCLUDES = -I$(top_srcdir)/include ++AM_CPPFLAGS = -I$(top_srcdir)/include + lib_LTLIBRARIES = libcgroup.la + libcgroup_la_SOURCES = parse.h parse.y lex.l api.c config.c libcgroup-internal.h libcgroup.map wrapper.c log.c + libcgroup_la_LIBADD = -lpthread +diff -Naur libcgroup-0.41.orig/src/bindings/Makefile.am libcgroup-0.41/src/bindings/Makefile.am +--- libcgroup-0.41.orig/src/bindings/Makefile.am 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/src/bindings/Makefile.am 2015-07-13 14:37:12.267428146 +0000 +@@ -1,5 +1,5 @@ + SUBDIRS = . +-INCLUDES = -I$(top_srcdir)/include ++AM_CPPFLAGS = -I$(top_srcdir)/include + + lib_LTLIBRARIES = _libcgroup.la + _libcgroup_la_SOURCES = libcgroup.c +@@ -11,5 +11,5 @@ + + libcgroup.c: libcgroup.p $(top_srcdir)/include/libcgroup.h + cp libcgroup.p libcgroup.i +- $(CC) $(INCLUDES) -DSWIG -E $(top_srcdir)/include/libcgroup.h >> libcgroup.i ++ $(CC) $(CPPFLAGS) -DSWIG -E $(top_srcdir)/include/libcgroup.h >> libcgroup.i + $(SWIG) -python -o libcgroup.c libcgroup.i +diff -Naur libcgroup-0.41.orig/src/daemon/Makefile.am libcgroup-0.41/src/daemon/Makefile.am +--- libcgroup-0.41.orig/src/daemon/Makefile.am 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/src/daemon/Makefile.am 2015-07-13 14:36:55.781428093 +0000 +@@ -1,4 +1,4 @@ +-INCLUDES = -I $(top_srcdir)/include ++AM_CPPFLAGS = -I $(top_srcdir)/include + + if WITH_DAEMON + +diff -Naur libcgroup-0.41.orig/src/pam/Makefile.am libcgroup-0.41/src/pam/Makefile.am +--- libcgroup-0.41.orig/src/pam/Makefile.am 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/src/pam/Makefile.am 2015-07-13 14:36:28.768428007 +0000 +@@ -1,4 +1,4 @@ +-INCLUDES = -I $(top_srcdir)/include ++AM_CPPFLAGS = -I $(top_srcdir)/include + + if WITH_PAM + +diff -Naur libcgroup-0.41.orig/src/tools/Makefile.am libcgroup-0.41/src/tools/Makefile.am +--- libcgroup-0.41.orig/src/tools/Makefile.am 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/src/tools/Makefile.am 2015-07-13 14:36:19.098427976 +0000 +@@ -1,4 +1,4 @@ +-INCLUDES = -I$(top_srcdir)/src -I$(top_srcdir)/include ++AM_CPPFLAGS = -I$(top_srcdir)/src -I$(top_srcdir)/include + LDADD = $(top_builddir)/src/.libs/libcgroup.la + + if WITH_TOOLS +diff -Naur libcgroup-0.41.orig/tests/Makefile.am libcgroup-0.41/tests/Makefile.am +--- libcgroup-0.41.orig/tests/Makefile.am 2014-01-13 14:05:56.000000000 +0000 ++++ libcgroup-0.41/tests/Makefile.am 2015-07-13 14:37:23.146428181 +0000 +@@ -1,6 +1,6 @@ + SUBDIRS = tools + +-INCLUDES = -I$(top_srcdir)/include ++AM_CPPFLAGS = -I$(top_srcdir)/include + LDADD = $(top_builddir)/src/.libs/libcgroup.la + + # compile the tests, but do not install them diff --git a/dev-libs/libcgroup/libcgroup-0.41-r4.ebuild b/dev-libs/libcgroup/libcgroup-0.41-r4.ebuild new file mode 100644 index 0000000..d4e31fe --- /dev/null +++ b/dev-libs/libcgroup/libcgroup-0.41-r4.ebuild @@ -0,0 +1,93 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 +# $Id$ + +EAPI="5" + +inherit autotools eutils flag-o-matic linux-info pam + +DESCRIPTION="Tools and libraries to configure and manage kernel control groups" +HOMEPAGE="http://libcg.sourceforge.net/" +SRC_URI="mirror://sourceforge/project/libcg/${PN}/v${PV}/${P}.tar.bz2" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="amd64 ~ppc ~ppc64 ~x86" +IUSE="+daemon elibc_musl pam static-libs +tools" + +RDEPEND="pam? ( virtual/pam )" + +DEPEND=" + ${RDEPEND} + sys-devel/bison + sys-devel/flex + elibc_musl? ( sys-libs/musl-fts ) + " +REQUIRED_USE="daemon? ( tools )" + +DOCS=(README_daemon README README_systemd INSTALL) +pkg_setup() { + local CONFIG_CHECK="~CGROUPS" + if use daemon; then + CONFIG_CHECK="${CONFIG_CHECK} ~CONNECTOR ~PROC_EVENTS" + fi + linux-info_pkg_setup +} + +src_prepare() { + epatch "${FILESDIR}"/${P}-replace_DECLS.patch + epatch "${FILESDIR}"/${P}-replace_INLCUDES.patch + epatch "${FILESDIR}"/${P}-reorder-headers.patch + + # Change rules file location + sed -e 's:/etc/cgrules.conf:/etc/cgroup/cgrules.conf:' \ + -i src/libcgroup-internal.h || die "sed failed" + sed -e 's:/etc/cgconfig.conf:/etc/cgroup/cgconfig.conf:' \ + -i src/libcgroup-internal.h || die "sed failed" + sed -e 's:\(pam_cgroup_la_LDFLAGS.*\):\1\ -avoid-version:' \ + -i src/pam/Makefile.am || die "sed failed" + sed -e 's#/var/run#/run#g' -i configure.in || die "sed failed" + + eautoreconf +} + +src_configure() { + local my_conf + + if use pam; then + my_conf=" --enable-pam-module-dir=$(getpam_mod_dir) " + fi + + use elibc_musl && append-ldflags "-lfts" + econf \ + $(use_enable static-libs static) \ + $(use_enable daemon) \ + $(use_enable pam) \ + $(use_enable tools) \ + ${my_conf} +} + +src_test() { + # Use mount cgroup to build directory + # sandbox restricted to trivial build, + # possible kill Diego tanderbox ;) + true +} + +src_install() { + default + prune_libtool_files --all + + insinto /etc/cgroup + doins samples/*.conf || die + + if use tools; then + newconfd "${FILESDIR}"/cgconfig.confd-r1 cgconfig || die + newinitd "${FILESDIR}"/cgconfig.initd-r1 cgconfig || die + fi + + if use daemon; then + newconfd "${FILESDIR}"/cgred.confd-r2 cgred || die + newinitd "${FILESDIR}"/cgred.initd-r1 cgred || die + fi +} diff --git a/dev-libs/libcgroup/metadata.xml b/dev-libs/libcgroup/metadata.xml new file mode 100644 index 0000000..c35d422 --- /dev/null +++ b/dev-libs/libcgroup/metadata.xml @@ -0,0 +1,19 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>bluen...@gentoo.org</email> + <name>Anthony G. Basile</name> + </maintainer> + <longdescription> + This package provides configuration and command-line tools, as well as a + rules processing daemon for working with kernel control groups. + </longdescription> + <use> + <flag name="daemon">Install the configuration tools and init/config files.</flag> + <flag name="tools">Install the cgroup rules processing daemon and init/config files.</flag> + </use> + <upstream> + <remote-id type="sourceforge">libcg</remote-id> + </upstream> +</pkgmetadata>