summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGluzskiy Alexandr <sss@sss.chaoslab.ru>2018-07-04 23:45:31 +0300
committerGluzskiy Alexandr <sss@sss.chaoslab.ru>2018-07-04 23:45:31 +0300
commitc8163ac0565a4e0eccadfc20719b79c30f26f844 (patch)
treed26fbeeeee42efc7022568fc0c24451b918a5941
parent92e028d7358c5b8eee30a3a85afdbf9640c466b2 (diff)
libcgroup with gentoo tweaks added
-rw-r--r--packages/dev-libs/libcgroup/files/libcgroup-0.41-reorder-headers.patch28
-rw-r--r--packages/dev-libs/libcgroup/files/libcgroup-0.41-replace_DECLS.patch225
-rw-r--r--packages/dev-libs/libcgroup/files/libcgroup-0.41-replace_INLCUDES.patch74
-rw-r--r--packages/dev-libs/libcgroup/libcgroup-0.41-r1.exheres-06
-rw-r--r--packages/dev-libs/libcgroup/libcgroup.exlib75
5 files changed, 408 insertions, 0 deletions
diff --git a/packages/dev-libs/libcgroup/files/libcgroup-0.41-reorder-headers.patch b/packages/dev-libs/libcgroup/files/libcgroup-0.41-reorder-headers.patch
new file mode 100644
index 0000000..78a3d09
--- /dev/null
+++ b/packages/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 <blueness@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/packages/dev-libs/libcgroup/files/libcgroup-0.41-replace_DECLS.patch b/packages/dev-libs/libcgroup/files/libcgroup-0.41-replace_DECLS.patch
new file mode 100644
index 0000000..7701093
--- /dev/null
+++ b/packages/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 <blueness@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/packages/dev-libs/libcgroup/files/libcgroup-0.41-replace_INLCUDES.patch b/packages/dev-libs/libcgroup/files/libcgroup-0.41-replace_INLCUDES.patch
new file mode 100644
index 0000000..191de87
--- /dev/null
+++ b/packages/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 <blueness@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/packages/dev-libs/libcgroup/libcgroup-0.41-r1.exheres-0 b/packages/dev-libs/libcgroup/libcgroup-0.41-r1.exheres-0
new file mode 100644
index 0000000..5f816dc
--- /dev/null
+++ b/packages/dev-libs/libcgroup/libcgroup-0.41-r1.exheres-0
@@ -0,0 +1,6 @@
+# Copyright 2010-2017 Wulf C. Krueger <philantrop@exherbo.org>
+# Distributed under the terms of the GNU General Public License v2
+
+require libcgroup
+
+PLATFORMS="~amd64 ~x86"
diff --git a/packages/dev-libs/libcgroup/libcgroup.exlib b/packages/dev-libs/libcgroup/libcgroup.exlib
new file mode 100644
index 0000000..89338d0
--- /dev/null
+++ b/packages/dev-libs/libcgroup/libcgroup.exlib
@@ -0,0 +1,75 @@
+# Copyright 2010-2017 Wulf C. Krueger <philantrop@exherbo.org>
+# Copyright 1999-2018 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+require sourceforge [ project="libcg" ]
+require autotools [ supported_autoconf=[ 2.5 ] supported_automake=[ 1.13 ] ]
+
+export_exlib_phases pkg_postinst src_prepare
+
+SUMMARY="libcg is a library that abstracts the control group file system in Linux"
+DESCRIPTION="
+libcgroup aims to provide programmers easily usable APIs to use the control group
+file system. It should satisfy the following requirements:
+- Provide a programmable interface for cgroups
+- Provide persistent configuration across reboots
+- Provide a programmable interface for manipulating configurations
+"
+
+#BUGS_TO="philantrop@exherbo.org"
+
+UPSTREAM_DOCUMENTATION="${HOMEPAGE}/html/index.html [[ lang = en ]]"
+
+LICENCES="LGPL-2.1"
+SLOT="0"
+MYOPTIONS=""
+
+DEPENDENCIES="
+ build+run:
+ sys-libs/pam
+"
+
+# The tests since 0.38 want to mess directly with /sys *and* expect libcgroup to
+# be already installed. Last checked: 0.41
+RESTRICT="test"
+
+DEFAULT_SRC_CONFIGURE_PARAMS=(
+ --enable-cgred-socket=/run/cgred.sock
+ --enable-daemon
+ --enable-pam
+ --enable-shared
+ --enable-static
+ --enable-tools
+)
+
+DEFAULT_SRC_CONFIGURE_PARAMS=( --enable-opaque-hierarchy=name=systemd )
+
+DEFAULT_SRC_PREPARE_PATCHES=(
+ "${FILES}"/${PNV}-replace_DECLS.patch
+ "${FILES}"/${PNV}-replace_INLCUDES.patch
+ "${FILES}"/${PNV}-reorder-headers.patch
+)
+
+libcgroup_src_prepare() {
+ # Change rules file location
+ edo sed -e 's:/etc/cgrules.conf:/etc/cgroup/cgrules.conf:' \
+ -i src/libcgroup-internal.h
+ edo sed -e 's:/etc/cgconfig.conf:/etc/cgroup/cgconfig.conf:' \
+ -i src/libcgroup-internal.h
+ edo sed -e 's:\(pam_cgroup_la_LDFLAGS.*\):\1\ -avoid-version:' \
+ -i src/pam/Makefile.am
+ edo sed -e 's#/var/run#/run#g' -i configure.in || die "sed failed"
+ autotools_src_prepare
+}
+
+libcgroup_pkg_postinst() {
+ default
+
+ local cruft=( /etc/rc.d/init.d/cgconfig /etc/rc.d/init.d/cgred )
+ for file in ${cruft[@]}; do
+ if test -f "${file}" ; then
+ nonfatal edo rm "${file}" || ewarn "removing ${file} failed"
+ fi
+ done
+}
+