aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAric Belsito <lluixhi@gmail.com>2016-12-22 16:04:37 -0800
committerAric Belsito <lluixhi@gmail.com>2016-12-22 16:04:37 -0800
commit76e3234807fd775433555137a464105d1a027c3e (patch)
treefd709ac7581bcff5444ac3ef18372e7d85bdc649 /sys-libs
parentmedia-libs/alsa-lib: Add most recent version (diff)
downloadmusl-76e3234807fd775433555137a464105d1a027c3e.tar.gz
musl-76e3234807fd775433555137a464105d1a027c3e.tar.bz2
musl-76e3234807fd775433555137a464105d1a027c3e.zip
sys-libs/libsepol: Add most recent version
All of the headers contain the <sys/cdefs.h> glibc-specific C++ compatibility hack.
Diffstat (limited to 'sys-libs')
-rw-r--r--sys-libs/libsepol/Manifest4
-rw-r--r--sys-libs/libsepol/files/libsepol-2.6-cdefs.patch968
-rw-r--r--sys-libs/libsepol/libsepol-2.6.ebuild51
-rw-r--r--sys-libs/libsepol/metadata.xml12
4 files changed, 1035 insertions, 0 deletions
diff --git a/sys-libs/libsepol/Manifest b/sys-libs/libsepol/Manifest
new file mode 100644
index 00000000..3653bb7b
--- /dev/null
+++ b/sys-libs/libsepol/Manifest
@@ -0,0 +1,4 @@
+AUX libsepol-2.6-cdefs.patch 25998 SHA256 4b78dbbc32c51e967e452c241f1162b8acfbdde6831876bac2aaa35644d3b275 SHA512 452937699a223b518b83a3b966c78fb0f8064d1ef4fcf6dd1c364be15775b045f7f2b564936eca258f46501b37af338d4cc896416f2207fb57593c2983b920b6 WHIRLPOOL 1524e9a88412282d755ed108b23a1eb1fbd6d294fd13b3487155f294db0f881a64788c449d2e2abb1d6422512c3c206e86e7ce96b3b1899056042902ea19f11c
+DIST libsepol-2.6.tar.gz 442549 SHA256 d856d6506054f52abeaa3543ea2f2344595a3dc05d0d873ed7f724f7a16b1874 SHA512 17d007857634e3d581fcc9bafcbb75674a06e382bb258c2c6b3656c141d71493699c42b78c8e1917c628476aeb8ead73bb86e8ccf43d7ce59aa0b7884bea132a WHIRLPOOL c02b9dc9dcf13ce3f200293695565dec4a220f7a6b29c76121ba5a4f8c05fb347a034763f417927ed7b1952a4989a7738c9327dc47cd976410db695fd6e662ae
+EBUILD libsepol-2.6.ebuild 1207 SHA256 3106914d6045ef0090a379ef4618b2a6b5e442e0c95ed04a646fa367baf36dec SHA512 d8f00a2987c3527edb5e8d7cb9ece724d6fa57621015718c14fee0d98e80d09f3e8f27094a0a328039c6b8cbfc5f4cf3f3e2f310b1d36e101eb82b6b0a1db716 WHIRLPOOL 2fdd0f9ffc97fa67e015bff7f116ee5c302a3bd54d22146b0e21b975c31de94b287fa8648195b0ca5a818c156a46167854426b95c0e1b7b53aa34ece129ce1d6
+MISC metadata.xml 428 SHA256 786c53bd0eee5b2d84990b9fc63ef2ef1ca8d0455f48f912a4b3e76c84b6c99f SHA512 14093ec1e86ac7b7521ab02ace725347013e11628e22cf3ed5362cfe7f30a180374ab00747b58ae251afbb3fabbeb4e328bda798e512bfac9bad643206835192 WHIRLPOOL ccaea270553624ba0a42e06d15d001b78c384df8708dadbc26f064d049feb9808993d1353ecf3a8a69200d490de54e34d8a0db9d0b397ea02207c1f4e9d24aa1
diff --git a/sys-libs/libsepol/files/libsepol-2.6-cdefs.patch b/sys-libs/libsepol/files/libsepol-2.6-cdefs.patch
new file mode 100644
index 00000000..2a8fd3f6
--- /dev/null
+++ b/sys-libs/libsepol/files/libsepol-2.6-cdefs.patch
@@ -0,0 +1,968 @@
+diff -Naur libsepol-2.6.orig/include/sepol/boolean_record.h libsepol-2.6/include/sepol/boolean_record.h
+--- libsepol-2.6.orig/include/sepol/boolean_record.h 2016-12-22 15:42:47.275594342 -0800
++++ libsepol-2.6/include/sepol/boolean_record.h 2016-12-22 15:43:40.570149391 -0800
+@@ -3,9 +3,10 @@
+
+ #include <stddef.h>
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_bool;
+ struct sepol_bool_key;
+@@ -51,5 +52,7 @@
+
+ extern void sepol_bool_free(sepol_bool_t * boolean);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/booleans.h libsepol-2.6/include/sepol/booleans.h
+--- libsepol-2.6.orig/include/sepol/booleans.h 2016-12-22 15:42:47.275594342 -0800
++++ libsepol-2.6/include/sepol/booleans.h 2016-12-22 15:44:28.793651565 -0800
+@@ -5,9 +5,10 @@
+ #include <sepol/policydb.h>
+ #include <sepol/boolean_record.h>
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /*--------------compatibility--------------*/
+
+@@ -59,5 +60,7 @@
+ int (*fn) (const sepol_bool_t * boolean,
+ void *fn_arg), void *arg);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/context.h libsepol-2.6/include/sepol/context.h
+--- libsepol-2.6.orig/include/sepol/context.h 2016-12-22 15:42:47.275594342 -0800
++++ libsepol-2.6/include/sepol/context.h 2016-12-22 15:44:51.699890093 -0800
+@@ -4,9 +4,10 @@
+ #include <sepol/context_record.h>
+ #include <sepol/policydb.h>
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* -- Deprecated -- */
+
+@@ -26,5 +27,7 @@
+ extern int sepol_mls_check(sepol_handle_t * handle,
+ const sepol_policydb_t * policydb, const char *mls);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/context_record.h libsepol-2.6/include/sepol/context_record.h
+--- libsepol-2.6.orig/include/sepol/context_record.h 2016-12-22 15:42:47.275594342 -0800
++++ libsepol-2.6/include/sepol/context_record.h 2016-12-22 15:45:07.533054968 -0800
+@@ -2,9 +2,10 @@
+ #define _SEPOL_CONTEXT_RECORD_H_
+
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_context;
+ typedef struct sepol_context sepol_context_t;
+@@ -53,5 +54,7 @@
+ extern int sepol_context_to_string(sepol_handle_t * handle,
+ const sepol_context_t * con, char **str_ptr);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/debug.h libsepol-2.6/include/sepol/debug.h
+--- libsepol-2.6.orig/include/sepol/debug.h 2016-12-22 15:42:47.275594342 -0800
++++ libsepol-2.6/include/sepol/debug.h 2016-12-22 15:45:29.799286831 -0800
+@@ -2,9 +2,10 @@
+ #define _SEPOL_DEBUG_H_
+
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* Deprecated */
+ extern void sepol_debug(int on);
+@@ -35,5 +36,7 @@
+ const char *fmt, ...),
+ void *msg_callback_arg);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/errcodes.h libsepol-2.6/include/sepol/errcodes.h
+--- libsepol-2.6.orig/include/sepol/errcodes.h 2016-12-22 15:42:47.275594342 -0800
++++ libsepol-2.6/include/sepol/errcodes.h 2016-12-22 15:45:52.376521934 -0800
+@@ -4,9 +4,10 @@
+ #define __sepol_errno_h__
+
+ #include <errno.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ #define SEPOL_OK 0
+
+@@ -25,5 +26,7 @@
+ #define SEPOL_EEXIST -EEXIST
+ #define SEPOL_ENOENT -ENOENT
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/handle.h libsepol-2.6/include/sepol/handle.h
+--- libsepol-2.6.orig/include/sepol/handle.h 2016-12-22 15:42:47.275594342 -0800
++++ libsepol-2.6/include/sepol/handle.h 2016-12-22 15:46:15.192759503 -0800
+@@ -1,9 +1,9 @@
+ #ifndef _SEPOL_HANDLE_H_
+ #define _SEPOL_HANDLE_H_
+
+-#include <sys/cdefs.h>
+-
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_handle;
+ typedef struct sepol_handle sepol_handle_t;
+@@ -35,5 +35,7 @@
+ * 0 is default and discard such branch, 1 preserves them */
+ void sepol_set_preserve_tunables(sepol_handle_t * sh, int preserve_tunables);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/iface_record.h libsepol-2.6/include/sepol/iface_record.h
+--- libsepol-2.6.orig/include/sepol/iface_record.h 2016-12-22 15:42:47.276594352 -0800
++++ libsepol-2.6/include/sepol/iface_record.h 2016-12-22 15:46:43.288052034 -0800
+@@ -3,9 +3,10 @@
+
+ #include <sepol/handle.h>
+ #include <sepol/context_record.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_iface;
+ struct sepol_iface_key;
+@@ -59,5 +60,7 @@
+
+ extern void sepol_iface_free(sepol_iface_t * iface);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/interfaces.h libsepol-2.6/include/sepol/interfaces.h
+--- libsepol-2.6.orig/include/sepol/interfaces.h 2016-12-22 15:42:47.276594352 -0800
++++ libsepol-2.6/include/sepol/interfaces.h 2016-12-22 15:47:00.812234498 -0800
+@@ -4,9 +4,10 @@
+ #include <sepol/policydb.h>
+ #include <sepol/iface_record.h>
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* Return the number of interfaces */
+ extern int sepol_iface_count(sepol_handle_t * handle,
+@@ -43,5 +44,7 @@
+ int (*fn) (const sepol_iface_t * iface,
+ void *fn_arg), void *arg);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/module.h libsepol-2.6/include/sepol/module.h
+--- libsepol-2.6.orig/include/sepol/module.h 2016-12-22 15:42:47.276594352 -0800
++++ libsepol-2.6/include/sepol/module.h 2016-12-22 15:47:25.762494283 -0800
+@@ -7,9 +7,10 @@
+
+ #include <sepol/handle.h>
+ #include <sepol/policydb.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_module_package;
+ typedef struct sepol_module_package sepol_module_package_t;
+@@ -82,5 +83,7 @@
+ sepol_policydb_t * base,
+ sepol_policydb_t * out, int verbose, int check);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/node_record.h libsepol-2.6/include/sepol/node_record.h
+--- libsepol-2.6.orig/include/sepol/node_record.h 2016-12-22 15:42:47.276594352 -0800
++++ libsepol-2.6/include/sepol/node_record.h 2016-12-22 15:47:41.288655943 -0800
+@@ -4,9 +4,10 @@
+ #include <stddef.h>
+ #include <sepol/context_record.h>
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_node;
+ struct sepol_node_key;
+@@ -92,5 +93,7 @@
+
+ extern void sepol_node_free(sepol_node_t * node);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/nodes.h libsepol-2.6/include/sepol/nodes.h
+--- libsepol-2.6.orig/include/sepol/nodes.h 2016-12-22 15:42:47.276594352 -0800
++++ libsepol-2.6/include/sepol/nodes.h 2016-12-22 15:47:56.449813803 -0800
+@@ -4,9 +4,10 @@
+ #include <sepol/handle.h>
+ #include <sepol/policydb.h>
+ #include <sepol/node_record.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* Return the number of nodes */
+ extern int sepol_node_count(sepol_handle_t * handle,
+@@ -40,5 +41,7 @@
+ int (*fn) (const sepol_node_t * node,
+ void *fn_arg), void *arg);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/avrule_block.h libsepol-2.6/include/sepol/policydb/avrule_block.h
+--- libsepol-2.6.orig/include/sepol/policydb/avrule_block.h 2016-12-22 15:42:47.277594362 -0800
++++ libsepol-2.6/include/sepol/policydb/avrule_block.h 2016-12-22 15:50:47.505601422 -0800
+@@ -21,9 +21,10 @@
+ #define _SEPOL_AVRULE_BLOCK_H_
+
+ #include <sepol/policydb/policydb.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ extern avrule_block_t *avrule_block_create(void);
+ extern void avrule_block_destroy(avrule_block_t * x);
+@@ -37,5 +38,7 @@
+ extern int is_id_enabled(char *id, policydb_t * p, int symbol_table);
+ extern int is_perm_enabled(char *class_id, char *perm_id, policydb_t * p);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/avtab.h libsepol-2.6/include/sepol/policydb/avtab.h
+--- libsepol-2.6.orig/include/sepol/policydb/avtab.h 2016-12-22 15:42:47.277594362 -0800
++++ libsepol-2.6/include/sepol/policydb/avtab.h 2016-12-22 15:51:08.757817880 -0800
+@@ -40,11 +40,12 @@
+ #ifndef _SEPOL_POLICYDB_AVTAB_H_
+ #define _SEPOL_POLICYDB_AVTAB_H_
+
+-#include <sys/cdefs.h>
+ #include <sys/types.h>
+ #include <stdint.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ typedef struct avtab_key {
+ uint16_t source_type;
+@@ -142,7 +143,9 @@
+ /* avtab_alloc uses one bucket per 2-4 elements, so adjust to get maximum buckets */
+ #define MAX_AVTAB_SIZE (MAX_AVTAB_HASH_BUCKETS << 1)
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _AVTAB_H_ */
+
+ /* FLASK */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/conditional.h libsepol-2.6/include/sepol/policydb/conditional.h
+--- libsepol-2.6.orig/include/sepol/policydb/conditional.h 2016-12-22 15:42:47.277594362 -0800
++++ libsepol-2.6/include/sepol/policydb/conditional.h 2016-12-22 15:51:27.680010607 -0800
+@@ -25,9 +25,10 @@
+ #include <sepol/policydb/avtab.h>
+ #include <sepol/policydb/symtab.h>
+ #include <sepol/policydb/policydb.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ #define COND_EXPR_MAXDEPTH 10
+
+@@ -136,5 +137,7 @@
+ extern void cond_compute_av(avtab_t * ctab, avtab_key_t * key,
+ struct sepol_av_decision *avd);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _CONDITIONAL_H_ */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/constraint.h libsepol-2.6/include/sepol/policydb/constraint.h
+--- libsepol-2.6.orig/include/sepol/policydb/constraint.h 2016-12-22 15:42:47.277594362 -0800
++++ libsepol-2.6/include/sepol/policydb/constraint.h 2016-12-22 15:52:06.286403822 -0800
+@@ -22,7 +22,9 @@
+ #include <sepol/policydb/ebitmap.h>
+ #include <sepol/policydb/flask_types.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ #define CEXPR_MAXDEPTH 5
+
+@@ -73,7 +75,9 @@
+ extern int constraint_expr_init(constraint_expr_t * expr);
+ extern void constraint_expr_destroy(constraint_expr_t * expr);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _CONSTRAINT_H_ */
+
+ /* FLASK */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/context.h libsepol-2.6/include/sepol/policydb/context.h
+--- libsepol-2.6.orig/include/sepol/policydb/context.h 2016-12-22 15:42:47.277594362 -0800
++++ libsepol-2.6/include/sepol/policydb/context.h 2016-12-22 15:52:25.606600689 -0800
+@@ -22,7 +22,9 @@
+ #include <sepol/policydb/ebitmap.h>
+ #include <sepol/policydb/mls_types.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /*
+ * A security context consists of an authenticated user
+@@ -95,5 +97,7 @@
+ (c1->type == c2->type) && mls_context_cmp(c1, c2));
+ }
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/ebitmap.h libsepol-2.6/include/sepol/policydb/ebitmap.h
+--- libsepol-2.6.orig/include/sepol/policydb/ebitmap.h 2016-12-22 15:42:47.277594362 -0800
++++ libsepol-2.6/include/sepol/policydb/ebitmap.h 2016-12-22 15:52:47.603825474 -0800
+@@ -19,9 +19,10 @@
+
+ #include <stdint.h>
+ #include <string.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ #define MAPTYPE uint64_t /* portion of bitmap in each node */
+ #define MAPSIZE (sizeof(MAPTYPE) * 8) /* number of bits in node bitmap */
+@@ -92,7 +93,9 @@
+ extern void ebitmap_destroy(ebitmap_t * e);
+ extern int ebitmap_read(ebitmap_t * e, void *fp);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _EBITMAP_H_ */
+
+ /* FLASK */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/expand.h libsepol-2.6/include/sepol/policydb/expand.h
+--- libsepol-2.6.orig/include/sepol/policydb/expand.h 2016-12-22 15:42:47.277594362 -0800
++++ libsepol-2.6/include/sepol/policydb/expand.h 2016-12-22 15:53:06.593019519 -0800
+@@ -28,9 +28,10 @@
+ #include <stddef.h>
+ #include <sepol/handle.h>
+ #include <sepol/policydb/conditional.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /*
+ * Expand only the avrules for a module. It is valid for this function
+@@ -79,5 +80,7 @@
+ extern int expand_cond_av_list(policydb_t * p, cond_av_list_t * l,
+ cond_av_list_t ** newl, avtab_t * expa);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/flask_types.h libsepol-2.6/include/sepol/policydb/flask_types.h
+--- libsepol-2.6.orig/include/sepol/policydb/flask_types.h 2016-12-22 15:42:47.278594373 -0800
++++ libsepol-2.6/include/sepol/policydb/flask_types.h 2016-12-22 15:53:42.755389053 -0800
+@@ -13,9 +13,10 @@
+
+ #include <sys/types.h>
+ #include <stdint.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /*
+ * A security context is a set of security attributes
+@@ -61,5 +62,7 @@
+ uint32_t seqno;
+ };
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/hashtab.h libsepol-2.6/include/sepol/policydb/hashtab.h
+--- libsepol-2.6.orig/include/sepol/policydb/hashtab.h 2016-12-22 15:42:47.278594373 -0800
++++ libsepol-2.6/include/sepol/policydb/hashtab.h 2016-12-22 15:54:02.697592837 -0800
+@@ -17,9 +17,10 @@
+
+ #include <stdint.h>
+ #include <stdio.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ typedef char *hashtab_key_t; /* generic key type */
+ typedef void *hashtab_datum_t; /* generic datum type */
+@@ -136,5 +137,7 @@
+
+ extern void hashtab_hash_eval(hashtab_t h, char *tag);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/hierarchy.h libsepol-2.6/include/sepol/policydb/hierarchy.h
+--- libsepol-2.6.orig/include/sepol/policydb/hierarchy.h 2016-12-22 15:42:47.278594373 -0800
++++ libsepol-2.6/include/sepol/policydb/hierarchy.h 2016-12-22 15:54:16.684735768 -0800
+@@ -27,9 +27,10 @@
+
+ #include <sepol/policydb/avtab.h>
+ #include <sepol/policydb/policydb.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ extern int hierarchy_add_bounds(sepol_handle_t *handle, policydb_t *p);
+
+@@ -43,5 +44,7 @@
+
+ extern int hierarchy_check_constraints(sepol_handle_t * handle, policydb_t * p);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/link.h libsepol-2.6/include/sepol/policydb/link.h
+--- libsepol-2.6.orig/include/sepol/policydb/link.h 2016-12-22 15:42:47.278594373 -0800
++++ libsepol-2.6/include/sepol/policydb/link.h 2016-12-22 15:57:01.439411892 -0800
+@@ -10,15 +10,18 @@
+ #include <sepol/errcodes.h>
+ #include <sepol/policydb/policydb.h>
+
+
+ #include <stddef.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ extern int link_modules(sepol_handle_t * handle,
+ policydb_t * b, policydb_t ** mods, int len,
+ int verbose);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/mls_types.h libsepol-2.6/include/sepol/policydb/mls_types.h
+--- libsepol-2.6.orig/include/sepol/policydb/mls_types.h 2016-12-22 15:42:47.278594373 -0800
++++ libsepol-2.6/include/sepol/policydb/mls_types.h 2016-12-22 15:54:50.045075508 -0800
+@@ -34,9 +34,10 @@
+ #include <stdlib.h>
+ #include <sepol/policydb/ebitmap.h>
+ #include <sepol/policydb/flask_types.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ typedef struct mls_level {
+ uint32_t sens; /* sensitivity */
+@@ -152,5 +153,7 @@
+ extern void mls_semantic_range_destroy(mls_semantic_range_t *r);
+ extern int mls_semantic_range_cpy(mls_semantic_range_t *dst, mls_semantic_range_t *src);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/module.h libsepol-2.6/include/sepol/policydb/module.h
+--- libsepol-2.6.orig/include/sepol/policydb/module.h 2016-12-22 15:42:47.278594373 -0800
++++ libsepol-2.6/include/sepol/policydb/module.h 2016-12-22 15:55:07.327250943 -0800
+@@ -27,11 +27,12 @@
+
+ #include <sepol/policydb/policydb.h>
+ #include <sepol/policydb/conditional.h>
+-#include <sys/cdefs.h>
+
+ #define SEPOL_MODULE_PACKAGE_MAGIC 0xf97cff8f
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_module_package {
+ sepol_policydb_t *policy;
+@@ -48,5 +49,7 @@
+
+ extern int sepol_module_package_init(sepol_module_package_t * p);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/polcaps.h libsepol-2.6/include/sepol/policydb/polcaps.h
+--- libsepol-2.6.orig/include/sepol/policydb/polcaps.h 2016-12-22 15:42:47.279594383 -0800
++++ libsepol-2.6/include/sepol/policydb/polcaps.h 2016-12-22 15:55:26.373444286 -0800
+@@ -1,9 +1,9 @@
+ #ifndef _SEPOL_POLICYDB_POLCAPS_H_
+ #define _SEPOL_POLICYDB_POLCAPS_H_
+
+-#include <sys/cdefs.h>
+-
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* Policy capabilities */
+ enum {
+@@ -21,5 +21,7 @@
+ /* Convert a capability number to name. */
+ extern const char *sepol_polcap_getname(int capnum);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SEPOL_POLICYDB_POLCAPS_H_ */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/policydb.h libsepol-2.6/include/sepol/policydb/policydb.h
+--- libsepol-2.6.orig/include/sepol/policydb/policydb.h 2016-12-22 15:42:47.279594383 -0800
++++ libsepol-2.6/include/sepol/policydb/policydb.h 2016-12-22 15:55:56.343748521 -0800
+@@ -61,7 +61,6 @@
+ #include <sepol/policydb/context.h>
+ #include <sepol/policydb/constraint.h>
+ #include <sepol/policydb/sidtab.h>
+-#include <sys/cdefs.h>
+
+ #define ERRMSG_LEN 1024
+
+@@ -69,7 +68,9 @@
+ #define POLICYDB_ERROR -1
+ #define POLICYDB_UNSUPPORTED -2
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /*
+ * A datum type is defined for each kind of symbol
+@@ -776,7 +777,9 @@
+ #define POLICYDB_MOD_MAGIC SELINUX_MOD_MAGIC
+ #define POLICYDB_MOD_STRING "SE Linux Module"
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _POLICYDB_H_ */
+
+ /* FLASK */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/services.h libsepol-2.6/include/sepol/policydb/services.h
+--- libsepol-2.6.orig/include/sepol/policydb/services.h 2016-12-22 15:42:47.279594383 -0800
++++ libsepol-2.6/include/sepol/policydb/services.h 2016-12-22 15:56:12.606913612 -0800
+@@ -15,9 +15,10 @@
+ #include <sepol/policydb/flask_types.h>
+ #include <sepol/policydb/policydb.h>
+ #include <stddef.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* Set the policydb and sidtab structures to be used by
+ the service functions. If not set, then these default
+@@ -230,5 +231,7 @@
+ sepol_security_class_t sclass, /* IN */
+ sepol_security_id_t * sid); /* OUT */
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/sidtab.h libsepol-2.6/include/sepol/policydb/sidtab.h
+--- libsepol-2.6.orig/include/sepol/policydb/sidtab.h 2016-12-22 15:42:47.279594383 -0800
++++ libsepol-2.6/include/sepol/policydb/sidtab.h 2016-12-22 15:56:29.257082631 -0800
+@@ -11,9 +11,10 @@
+ #define _SEPOL_POLICYDB_SIDTAB_H_
+
+ #include <sepol/policydb/context.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ typedef struct sidtab_node {
+ sepol_security_id_t sid; /* security identifier */
+@@ -69,7 +70,9 @@
+
+ extern void sepol_sidtab_shutdown(sidtab_t * s);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SIDTAB_H_ */
+
+ /* FLASK */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/symtab.h libsepol-2.6/include/sepol/policydb/symtab.h
+--- libsepol-2.6.orig/include/sepol/policydb/symtab.h 2016-12-22 15:42:47.279594383 -0800
++++ libsepol-2.6/include/sepol/policydb/symtab.h 2016-12-22 15:56:56.582361953 -0800
+@@ -14,9 +14,10 @@
+ #define _SEPOL_POLICYDB_SYMTAB_H_
+
+ #include <sepol/policydb/hashtab.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* The symtab_datum struct stores the common information for
+ * all symtab datums. It should the first element in every
+@@ -37,7 +38,9 @@
+ extern int symtab_init(symtab_t *, unsigned int size);
+ extern void symtab_destroy(symtab_t *);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif /* _SYMTAB_H_ */
+
+ /* FLASK */
+diff -Naur libsepol-2.6.orig/include/sepol/policydb/util.h libsepol-2.6/include/sepol/policydb/util.h
+--- libsepol-2.6.orig/include/sepol/policydb/util.h 2016-12-22 15:42:47.280594393 -0800
++++ libsepol-2.6/include/sepol/policydb/util.h 2016-12-22 15:57:19.902601728 -0800
+@@ -23,9 +23,9 @@
+ #ifndef __SEPOL_UTIL_H__
+ #define __SEPOL_UTIL_H__
+
+-#include <sys/cdefs.h>
+-
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ extern int add_i_to_a(uint32_t i, uint32_t * cnt, uint32_t ** a);
+
+@@ -40,5 +40,7 @@
+ */
+ extern int tokenize(char *line_buf, char delim, int num_args, ...);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/policydb.h libsepol-2.6/include/sepol/policydb.h
+--- libsepol-2.6.orig/include/sepol/policydb.h 2016-12-22 15:42:47.276594352 -0800
++++ libsepol-2.6/include/sepol/policydb.h 2016-12-22 15:48:17.853037926 -0800
+@@ -5,9 +5,10 @@
+ #include <stdio.h>
+
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_policy_file;
+ typedef struct sepol_policy_file sepol_policy_file_t;
+@@ -144,5 +145,7 @@
+ */
+ extern int sepol_policydb_compat_net(const sepol_policydb_t * p);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/port_record.h libsepol-2.6/include/sepol/port_record.h
+--- libsepol-2.6.orig/include/sepol/port_record.h 2016-12-22 15:42:47.280594393 -0800
++++ libsepol-2.6/include/sepol/port_record.h 2016-12-22 15:48:38.945259850 -0800
+@@ -3,9 +3,10 @@
+
+ #include <sepol/context_record.h>
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_port;
+ struct sepol_port_key;
+@@ -67,5 +68,7 @@
+
+ extern void sepol_port_free(sepol_port_t * port);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/ports.h libsepol-2.6/include/sepol/ports.h
+--- libsepol-2.6.orig/include/sepol/ports.h 2016-12-22 15:42:47.280594393 -0800
++++ libsepol-2.6/include/sepol/ports.h 2016-12-22 15:48:57.565455765 -0800
+@@ -4,9 +4,10 @@
+ #include <sepol/handle.h>
+ #include <sepol/policydb.h>
+ #include <sepol/port_record.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /* Return the number of ports */
+ extern int sepol_port_count(sepol_handle_t * handle,
+@@ -40,5 +41,7 @@
+ int (*fn) (const sepol_port_t * port,
+ void *fn_arg), void *arg);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/roles.h libsepol-2.6/include/sepol/roles.h
+--- libsepol-2.6.orig/include/sepol/roles.h 2016-12-22 15:42:47.280594393 -0800
++++ libsepol-2.6/include/sepol/roles.h 2016-12-22 15:49:15.901648692 -0800
+@@ -1,9 +1,9 @@
+ #ifndef _SEPOL_ROLES_H_
+ #define _SEPOL_ROLES_H_
+
+-#include <sys/cdefs.h>
+-
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ extern int sepol_role_exists(const sepol_policydb_t * policydb,
+ const char *role, int *response);
+@@ -11,5 +11,7 @@
+ extern int sepol_role_list(const sepol_policydb_t * policydb,
+ char ***roles, unsigned int *nroles);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/sepol.h libsepol-2.6/include/sepol/sepol.h
+--- libsepol-2.6.orig/include/sepol/sepol.h 2016-12-22 15:42:47.280594393 -0800
++++ libsepol-2.6/include/sepol/sepol.h 2016-12-22 15:49:39.133893132 -0800
+@@ -3,9 +3,10 @@
+
+ #include <stddef.h>
+ #include <stdio.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ #include <sepol/user_record.h>
+ #include <sepol/context_record.h>
+@@ -28,5 +29,7 @@
+ /* Set internal policydb from a file for subsequent service calls. */
+ extern int sepol_set_policydb_from_file(FILE * fp);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/user_record.h libsepol-2.6/include/sepol/user_record.h
+--- libsepol-2.6.orig/include/sepol/user_record.h 2016-12-22 15:42:47.280594393 -0800
++++ libsepol-2.6/include/sepol/user_record.h 2016-12-22 15:49:58.831100379 -0800
+@@ -3,9 +3,10 @@
+
+ #include <stddef.h>
+ #include <sepol/handle.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ struct sepol_user;
+ struct sepol_user_key;
+@@ -76,5 +77,7 @@
+
+ extern void sepol_user_free(sepol_user_t * user);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
+diff -Naur libsepol-2.6.orig/include/sepol/users.h libsepol-2.6/include/sepol/users.h
+--- libsepol-2.6.orig/include/sepol/users.h 2016-12-22 15:42:47.280594393 -0800
++++ libsepol-2.6/include/sepol/users.h 2016-12-22 15:50:16.287283457 -0800
+@@ -5,9 +5,10 @@
+ #include <sepol/user_record.h>
+ #include <sepol/handle.h>
+ #include <stddef.h>
+-#include <sys/cdefs.h>
+
+-__BEGIN_DECLS
++#ifdef __cplusplus
++extern "C" {
++#endif
+
+ /*---------compatibility------------*/
+
+@@ -57,5 +58,7 @@
+ int (*fn) (const sepol_user_t * user,
+ void *fn_arg), void *arg);
+
+-__END_DECLS
++#ifdef __cplusplus
++}
++#endif
+ #endif
diff --git a/sys-libs/libsepol/libsepol-2.6.ebuild b/sys-libs/libsepol/libsepol-2.6.ebuild
new file mode 100644
index 00000000..25b3dabc
--- /dev/null
+++ b/sys-libs/libsepol/libsepol-2.6.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI="6"
+
+inherit multilib toolchain-funcs multilib-minimal
+
+MY_P="${P//_/-}"
+MY_RELEASEDATE="20161014"
+
+DESCRIPTION="SELinux binary policy representation library"
+HOMEPAGE="https://github.com/SELinuxProject/selinux/wiki"
+
+if [[ ${PV} == 9999 ]]; then
+ inherit git-r3
+ EGIT_REPO_URI="https://github.com/SELinuxProject/selinux.git"
+ S="${WORKDIR}/${MY_P}/${PN}"
+else
+ SRC_URI="https://raw.githubusercontent.com/wiki/SELinuxProject/selinux/files/releases/${MY_RELEASEDATE}/${MY_P}.tar.gz"
+ KEYWORDS="amd64 ~arm ~arm64 ~mips x86"
+ S="${WORKDIR}/${MY_P}"
+fi
+
+LICENSE="GPL-2"
+SLOT="0"
+IUSE=""
+
+DEPEND=""
+RDEPEND=""
+
+PATCHES=( "${FILESDIR}"/${P}-cdefs.patch )
+
+# tests are not meant to be run outside of the full SELinux userland repo
+RESTRICT="test"
+
+src_prepare() {
+ default
+ multilib_copy_sources
+}
+
+multilib_src_compile() {
+ tc-export RANLIB;
+ LIBDIR="\$(PREFIX)/$(get_libdir)" SHLIBDIR="\$(DESTDIR)/$(get_libdir)" \
+ emake AR="$(tc-getAR)" CC="$(tc-getCC)"
+}
+
+multilib_src_install() {
+ LIBDIR="\$(PREFIX)/$(get_libdir)" SHLIBDIR="\$(DESTDIR)/$(get_libdir)" \
+ emake DESTDIR="${D}" install
+}
diff --git a/sys-libs/libsepol/metadata.xml b/sys-libs/libsepol/metadata.xml
new file mode 100644
index 00000000..ef117d5e
--- /dev/null
+++ b/sys-libs/libsepol/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>selinux@gentoo.org</email>
+ <name>SELinux Team</name>
+ </maintainer>
+ <longdescription>SELinux library for manipulating binary security policies</longdescription>
+ <upstream>
+ <remote-id type="github">SELinuxProject/selinux</remote-id>
+ </upstream>
+</pkgmetadata>