summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sys-fs/fuse/fuse-3.9.3.ebuild')
-rw-r--r--sys-fs/fuse/fuse-3.9.3.ebuild86
1 files changed, 86 insertions, 0 deletions
diff --git a/sys-fs/fuse/fuse-3.9.3.ebuild b/sys-fs/fuse/fuse-3.9.3.ebuild
new file mode 100644
index 00000000000..a858b29b4ec
--- /dev/null
+++ b/sys-fs/fuse/fuse-3.9.3.ebuild
@@ -0,0 +1,86 @@
+# Copyright 1999-2020 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+PYTHON_COMPAT=( python3_{6,7,8} )
+
+inherit meson multilib-minimal flag-o-matic udev python-any-r1
+
+DESCRIPTION="An interface for filesystems implemented in userspace"
+HOMEPAGE="https://github.com/libfuse/libfuse"
+SRC_URI="https://github.com/libfuse/libfuse/releases/download/${P}/${P}.tar.xz"
+
+LICENSE="GPL-2 LGPL-2.1"
+SLOT="3"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sparc ~x86"
+IUSE="+suid test"
+RESTRICT="!test? ( test )"
+
+BDEPEND="virtual/pkgconfig
+ test? (
+ ${PYTHON_DEPS}
+ $(python_gen_any_dep 'dev-python/pytest[${PYTHON_USEDEP}]')
+ )"
+RDEPEND=">=sys-fs/fuse-common-3.3.0-r1"
+
+DOCS=( AUTHORS ChangeLog.rst README.md doc/README.NFS doc/kernel.txt )
+
+python_check_deps() {
+ has_version -b "dev-python/pytest[${PYTHON_USEDEP}]"
+}
+
+pkg_setup() {
+ use test && python_setup
+}
+
+src_prepare() {
+ default
+
+ # lto not supported yet -- https://github.com/libfuse/libfuse/issues/198
+ filter-flags '-flto*'
+}
+
+multilib_src_configure() {
+ local emesonargs=(
+ -Dexamples=$(usex test true false)
+ -Duseroot=false
+ -Dudevrulesdir="${EPREFIX}$(get_udevdir)/rules.d"
+ )
+ meson_src_configure
+}
+
+multilib_src_compile() {
+ eninja
+}
+
+src_test() {
+ if [[ ${EUID} != 0 ]]; then
+ ewarn "Running as non-root user, skipping tests"
+ elif has sandbox ${FEATURES}; then
+ ewarn "Sandbox enabled, skipping tests"
+ else
+ multilib-minimal_src_test
+ fi
+}
+
+multilib_src_test() {
+ ${EPYTHON} -m pytest test || die
+}
+
+multilib_src_install() {
+ DESTDIR="${D}" eninja install
+}
+
+multilib_src_install_all() {
+ einstalldocs
+
+ # installed via fuse-common
+ rm -r "${ED}"/{etc,$(get_udevdir)} || die
+
+ # useroot=false prevents the build system from doing this.
+ use suid && fperms u+s /usr/bin/fusermount3
+
+ # manually install man pages to respect compression
+ rm -r "${ED}"/usr/share/man || die
+ doman doc/{fusermount3.1,mount.fuse3.8}
+}