diff options
author | Milkey Mouse <milkeymouse@meme.institute> | 2018-04-27 13:53:26 -0700 |
---|---|---|
committer | Anthony G. Basile <blueness@gentoo.org> | 2018-04-27 18:04:14 -0400 |
commit | 1fb2a83490c464447b178fb12e86268156d37c86 (patch) | |
tree | af7643be0176201dad7ce713288eeaae694625be /sys-libs | |
parent | sys-apps/apparmor: add new package (diff) | |
download | musl-1fb2a83490c464447b178fb12e86268156d37c86.tar.gz musl-1fb2a83490c464447b178fb12e86268156d37c86.tar.bz2 musl-1fb2a83490c464447b178fb12e86268156d37c86.zip |
sys-libs/libapparmor: add new package
secure_getenv() is only available from glibc. Borrow a patch from Alpine Linux
that adds a standalone version.
Package-Manager: Portage-2.3.31, Repoman-2.3.9
Manifest-Sign-Key: C6EF5A02F5647987
Diffstat (limited to 'sys-libs')
-rw-r--r-- | sys-libs/libapparmor/Manifest | 21 | ||||
-rw-r--r-- | sys-libs/libapparmor/files/libapparmor-2.10-symbol_visibility.patch | 13 | ||||
-rw-r--r-- | sys-libs/libapparmor/files/libapparmor-2.12-secure_getenv.patch | 154 | ||||
-rw-r--r-- | sys-libs/libapparmor/libapparmor-2.11.1.ebuild | 96 | ||||
-rw-r--r-- | sys-libs/libapparmor/libapparmor-2.12.0.ebuild | 96 | ||||
-rw-r--r-- | sys-libs/libapparmor/metadata.xml | 14 |
6 files changed, 394 insertions, 0 deletions
diff --git a/sys-libs/libapparmor/Manifest b/sys-libs/libapparmor/Manifest new file mode 100644 index 00000000..6a84fadf --- /dev/null +++ b/sys-libs/libapparmor/Manifest @@ -0,0 +1,21 @@ +-----BEGIN PGP SIGNED MESSAGE----- +Hash: SHA256 + +DIST apparmor-2.11.1.tar.gz 5017646 BLAKE2B ee0176c87b2800eb562c136ff324f08e444c412117c4593ff97c4b0e4c63db2aea0721c6ed38f3c733e3c95024165f329e520acf838c4798a8285b8dedf0d51e SHA512 f088157cc116987e56c0e02127497b1ec6241f3d761ec3b53211fa188f5f02c9408d6b903f2d275328ede88ebfd1393e00aad9f68cbe78fa9ab3711ba0f9c00c +DIST apparmor-2.12.tar.gz 7258450 BLAKE2B c1d4e01d836c5f567ddb7c5ecf36dde6efccf1e59ae219824129fd5c92162a3fed7ebdc492f181ae132b07db068660078a9631543d40fd20ab0b44cd4c646d4c SHA512 d85fd47c66333fe5658ee5e977b32142697f6e36c575550712ee2ace2ad0fbf2aa59c8fd3b82ad8821c0190adf8cc150cf623ea09a84d5b32bde050a03dd6e9a +-----BEGIN PGP SIGNATURE----- + +iQIzBAEBCAAdFiEE8JaD5QHaZGPThRiKxu9aAvVkeYcFAlrjjcYACgkQxu9aAvVk +eYcGMQ/+M6Og6CkCvCW6PBUwYty2EBMAmJc0OctvlxXYhmjJiu9dgvUQz/pZw8xs +MD8Kj2sw+NzwTFwxLsH4CIkSv+oGyDsR8sSPHhYIwI7gA/pxk3i0uK+F3J9EAHFv +cEIqlO12IJ26IHP1UOML4Y6UXAgCNIX5DcpUtcipK2o00azsOPVzfcvpBYQXYTmD +pI2/gRweFtL72MWXBdAzZCl7u6swq7XZg7p14uXYuz6MnQP/THLqxOmhDRUVvfr1 +sEAsmPZj9Tsm9PGtUm9wZnduxJMyr6I9JFGN4DTRJIuYfymuzRZ2JTe2sAvRd2Jb +Y8nRR9tsMImqeocQPq7tnMul6ktoMi3LCeHY9OmVWw+ywmSJ0cesLItMIXZg3NsY +N2ja/PqflNblywm+z9T9K89rNfLZakJgNOXesBQwOhFApFIG2dHdWlkbaivUJyyq +cQU1y8UNQzqM0CapgE4KLMGK+g+DvQkGRg4lDOVawbmnaHmQ9cDZPyyz/oni3GQa +6CKg8UiiYjoJCJmeJNccdIgxBDvgTPF0xNNCxnHPyX45EU0qPf+Q5ZGSDsPLDO8C +ZiqZcg4wt4wFpNU3iCwp7MbXtcbr0LOao0eIy6lX8NJ8suCZLMzG+cFJLRPCxI5Q +nbYbzEW614arzb2++EvOf8gmVy7tNQ1KrAxEEg7lRjQMKGyjdn0= +=lOpQ +-----END PGP SIGNATURE----- diff --git a/sys-libs/libapparmor/files/libapparmor-2.10-symbol_visibility.patch b/sys-libs/libapparmor/files/libapparmor-2.10-symbol_visibility.patch new file mode 100644 index 00000000..beaf355a --- /dev/null +++ b/sys-libs/libapparmor/files/libapparmor-2.10-symbol_visibility.patch @@ -0,0 +1,13 @@ +Adds an aditional symbol to allow dynamic linking. + +--- src/libapparmor.map ++++ src/libapparmor.map +@@ -94,6 +94,7 @@ + _aa_autoclose; + _aa_autofclose; + _aa_dirat_for_each; ++ _aa_asprintf; + local: + *; + }; + diff --git a/sys-libs/libapparmor/files/libapparmor-2.12-secure_getenv.patch b/sys-libs/libapparmor/files/libapparmor-2.12-secure_getenv.patch new file mode 100644 index 00000000..56c40965 --- /dev/null +++ b/sys-libs/libapparmor/files/libapparmor-2.12-secure_getenv.patch @@ -0,0 +1,154 @@ +--- a/libraries/libapparmor/configure.ac ++++ b/libraries/libapparmor/configure.ac +@@ -81,7 +81,7 @@ AM_CONDITIONAL(HAVE_RUBY, test x$with_ruby = xyes) + AC_HEADER_STDC + AC_CHECK_HEADERS(unistd.h stdint.h syslog.h) + +-AC_CHECK_FUNCS([asprintf __secure_getenv secure_getenv]) ++AC_CHECK_FUNCS([asprintf __secure_getenv secure_getenv scandirat]) + + AM_PROG_CC_C_O + AC_C_CONST +--- a/libraries/libapparmor/src/Makefile.am ++++ b/libraries/libapparmor/src/Makefile.am +@@ -46,9 +46,9 @@ af_protos.h: /usr/include/netinet/in.h + LC_ALL=C sed -n -e "/IPPROTO_MAX/d" -e "s/^\#define[ \\t]\\+IPPROTO_\\([A-Z0-9_]\\+\\)\\(.*\\)$$/AA_GEN_PROTO_ENT(\\UIPPROTO_\\1, \"\\L\\1\")/p" $< > $@ + + lib_LTLIBRARIES = libapparmor.la +-noinst_HEADERS = grammar.h parser.h scanner.h af_protos.h private.h ++noinst_HEADERS = grammar.h parser.h scanner.h af_protos.h secure_getenv.h scandirat.h private.h + +-libapparmor_la_SOURCES = grammar.y libaalogparse.c kernel.c scanner.c private.c features.c kernel_interface.c policy_cache.c ++libapparmor_la_SOURCES = grammar.y libaalogparse.c kernel.c scanner.c secure_getenv.c scandirat.c private.c features.c kernel_interface.c policy_cache.c + libapparmor_la_LDFLAGS = -version-info $(AA_LIB_CURRENT):$(AA_LIB_REVISION):$(AA_LIB_AGE) -XCClinker -dynamic -pthread \ + -Wl,--version-script=$(top_srcdir)/src/libapparmor.map + +--- a/libraries/libapparmor/src/private.c ++++ b/libraries/libapparmor/src/private.c +@@ -39,10 +39,14 @@ + #ifdef HAVE___SECURE_GETENV + #define secure_getenv __secure_getenv + #else +- #error neither secure_getenv nor __secure_getenv is available ++ #include "secure_getenv.h" + #endif + #endif + ++#ifndef HAVE_SCANDIRAT ++#include "scandirat.h" ++#endif ++ + struct ignored_suffix_t { + const char * text; + int len; +--- /dev/null ++++ b/libraries/libapparmor/src/scandirat.c +@@ -0,0 +1,63 @@ ++#include <dirent.h> ++#include <string.h> ++#include <stdlib.h> ++#include <unistd.h> ++#include <fcntl.h> ++#include <inttypes.h> ++#include <errno.h> ++ ++#include "scandirat.h" ++ ++#ifndef HAVE_SCANDIRAT ++ ++int scandirat(int dir_fd, const char *dirp, struct dirent ***namelist, ++ int (*filter)(const struct dirent *), ++ int (*compar)(const struct dirent **, const struct dirent **)) ++{ ++ int fd; ++ DIR *d; ++ struct dirent *de, **names=0, **tmp; ++ size_t cnt=0, len=0; ++ int old_errno = errno; ++ ++ ++ fd = openat(dir_fd, dirp, O_RDONLY|O_CLOEXEC); ++ if (fd == -1) return -1; ++ ++ d = fdopendir(fd); ++ ++ if (!d) { ++ close(fd); ++ return -1; ++ } ++ ++ while ((errno=0), (de = readdir(d))) { ++ if (filter && !filter(de)) continue; ++ if (cnt >= len) { ++ len = 2*len+1; ++ if (len > SIZE_MAX/sizeof *names) break; ++ tmp = realloc(names, len * sizeof *names); ++ if (!tmp) break; ++ names = tmp; ++ } ++ names[cnt] = malloc(de->d_reclen); ++ if (!names[cnt]) break; ++ memcpy(names[cnt++], de, de->d_reclen); ++ } ++ ++ closedir(d); ++ ++ if (errno) { ++ if (names) while (cnt-->0) free(names[cnt]); ++ free(names); ++ return -1; ++ } ++ errno = old_errno; ++ ++ if (compar) qsort(names, cnt, sizeof *names, (int (*)(const void *, const void *))compar); ++ *namelist = names; ++ return cnt; ++} ++ ++#endif ++ +--- /dev/null ++++ b/libraries/libapparmor/src/scandirat.h +@@ -0,0 +1,13 @@ ++#ifndef LIBAPPARMOR_SCANDIRAT_H ++#define LIBAPPARMOR_SCANDIRAT_H ++ ++#include <dirent.h> ++ ++#ifndef HAVE_SCANDIRAT ++int scandirat(int dir_fd, const char *dirp, struct dirent ***namelist, ++ int (*filter)(const struct dirent *), ++ int (*compar)(const struct dirent **, const struct dirent **)); ++#endif ++ ++#endif ++ +--- /dev/null ++++ b/libraries/libapparmor/src/secure_getenv.c +@@ -0,0 +1,15 @@ ++#include <stdlib.h> ++#include <sys/auxv.h> ++ ++#include "secure_getenv.h" ++ ++#ifndef HAVE_SECURE_GETENV ++char *secure_getenv(const char *name) ++{ ++ if (!getauxval(AT_SECURE)) { ++ return getenv(name); ++ } ++ return NULL; ++} ++#endif ++ +--- /dev/null ++++ b/libraries/libapparmor/src/secure_getenv.h +@@ -0,0 +1,8 @@ ++#ifndef LIBAPPARMOR_SECURE_GETENV_H ++#define LIBAPPARMOR_SECURE_GETENV_H ++ ++#ifndef HAVE_SECURE_GETENV ++char *secure_getenv(const char *name); ++#endif ++ ++#endif diff --git a/sys-libs/libapparmor/libapparmor-2.11.1.ebuild b/sys-libs/libapparmor/libapparmor-2.11.1.ebuild new file mode 100644 index 00000000..f400c01e --- /dev/null +++ b/sys-libs/libapparmor/libapparmor-2.11.1.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +AUTOTOOLS_AUTORECONF=1 +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) +GENTOO_DEPEND_ON_PERL="no" + +inherit autotools-utils distutils-r1 perl-functions versionator + +MY_PV="$(get_version_component_range 1-2)" + +DESCRIPTION="Library to support AppArmor userspace utilities" +HOMEPAGE="http://apparmor.net/" +SRC_URI="https://launchpad.net/apparmor/${MY_PV}/${PV}/+download/apparmor-${PV}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="doc +perl +python static-libs" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} )" + +DEPEND="${RDEPEND} + sys-devel/autoconf-archive + sys-devel/bison + sys-devel/flex + doc? ( dev-lang/perl ) + perl? ( dev-lang/swig ) + python? ( dev-lang/swig )" + +S=${WORKDIR}/apparmor-${PV}/libraries/${PN} + +RESTRICT="test" + +src_prepare() { + rm -r m4 || die "failed to remove bundled macros" + epatch "${FILESDIR}"/${PN}-2.10-symbol_visibility.patch + epatch "${FILESDIR}"/${PN}-2.12-secure_getenv.patch + autotools-utils_src_prepare + use python && distutils-r1_src_prepare +} + +src_configure() { + local myeconfargs=( + $(use_with perl) \ + $(use_with python) + ) + + autotools-utils_src_configure +} + +src_compile() { + autotools-utils_src_compile -C src + autotools-utils_src_compile -C include + use doc && autotools-utils_src_compile -C doc + use perl && autotools-utils_src_compile -C swig/perl + + if use python ; then + pushd "${BUILD_DIR}"/swig/python > /dev/null + emake libapparmor_wrap.c + distutils-r1_src_compile + popd > /dev/null + fi +} + +src_install() { + autotools-utils_src_install -C src + autotools-utils_src_install -C include + use doc && autotools-utils_src_install -C doc + + if use perl ; then + autotools-utils_src_install -C swig/perl + perl_set_version + insinto "${VENDOR_ARCH}" + doins "${BUILD_DIR}"/swig/perl/LibAppArmor.pm + + # bug 620886 + perl_delete_localpod + perl_fix_packlist + fi + + if use python ; then + pushd "${BUILD_DIR}"/swig/python > /dev/null + distutils-r1_src_install + + python_moduleinto LibAppArmor + python_foreach_impl python_domodule LibAppArmor.py + popd > /dev/null + fi +} diff --git a/sys-libs/libapparmor/libapparmor-2.12.0.ebuild b/sys-libs/libapparmor/libapparmor-2.12.0.ebuild new file mode 100644 index 00000000..fbd20344 --- /dev/null +++ b/sys-libs/libapparmor/libapparmor-2.12.0.ebuild @@ -0,0 +1,96 @@ +# Copyright 1999-2018 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +AUTOTOOLS_AUTORECONF=1 +DISTUTILS_OPTIONAL=1 +PYTHON_COMPAT=( python{2_7,3_4,3_5,3_6} ) +GENTOO_DEPEND_ON_PERL="no" + +inherit autotools-utils distutils-r1 perl-functions versionator + +MY_PV="$(get_version_component_range 1-2)" + +DESCRIPTION="Library to support AppArmor userspace utilities" +HOMEPAGE="http://apparmor.net/" +SRC_URI="https://launchpad.net/apparmor/${MY_PV}/${PV}/+download/apparmor-${MY_PV}.tar.gz" + +LICENSE="LGPL-2.1" +SLOT="0" +KEYWORDS="amd64 ~x86" +IUSE="doc +perl +python static-libs" + +REQUIRED_USE="${PYTHON_REQUIRED_USE}" + +RDEPEND="perl? ( dev-lang/perl:= ) + python? ( ${PYTHON_DEPS} )" + +DEPEND="${RDEPEND} + sys-devel/autoconf-archive + sys-devel/bison + sys-devel/flex + doc? ( dev-lang/perl ) + perl? ( dev-lang/swig ) + python? ( dev-lang/swig )" + +S=${WORKDIR}/apparmor-${MY_PV}/libraries/${PN} + +RESTRICT="test" + +src_prepare() { + rm -r m4 || die "failed to remove bundled macros" + epatch "${FILESDIR}"/${PN}-2.10-symbol_visibility.patch + epatch "${FILESDIR}"/${PN}-2.12-secure_getenv.patch + autotools-utils_src_prepare + use python && distutils-r1_src_prepare +} + +src_configure() { + local myeconfargs=( + $(use_with perl) \ + $(use_with python) + ) + + autotools-utils_src_configure +} + +src_compile() { + autotools-utils_src_compile -C src + autotools-utils_src_compile -C include + use doc && autotools-utils_src_compile -C doc + use perl && autotools-utils_src_compile -C swig/perl + + if use python ; then + pushd "${BUILD_DIR}"/swig/python > /dev/null + emake libapparmor_wrap.c + distutils-r1_src_compile + popd > /dev/null + fi +} + +src_install() { + autotools-utils_src_install -C src + autotools-utils_src_install -C include + use doc && autotools-utils_src_install -C doc + + if use perl ; then + autotools-utils_src_install -C swig/perl + perl_set_version + insinto "${VENDOR_ARCH}" + doins "${BUILD_DIR}"/swig/perl/LibAppArmor.pm + + # bug 620886 + perl_delete_localpod + perl_fix_packlist + fi + + if use python ; then + pushd "${BUILD_DIR}"/swig/python > /dev/null + distutils-r1_src_install + + python_moduleinto LibAppArmor + python_foreach_impl python_domodule LibAppArmor.py + popd > /dev/null + fi +} diff --git a/sys-libs/libapparmor/metadata.xml b/sys-libs/libapparmor/metadata.xml new file mode 100644 index 00000000..42d1e8f6 --- /dev/null +++ b/sys-libs/libapparmor/metadata.xml @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd"> +<pkgmetadata> + <maintainer type="person"> + <email>kensington@gentoo.org</email> + </maintainer> + <maintainer type="project"> + <email>hardened@gentoo.org</email> + <name>Gentoo Hardened</name> + </maintainer> + <upstream> + <remote-id type="launchpad">apparmor</remote-id> + </upstream> +</pkgmetadata> |