sys-fs/cryfs: New package, #612688
authorautomorphism88 <adebeus@gmail.com>
Sun, 14 May 2017 04:49:18 +0000 (21:49 -0700)
committerMichał Górny <mgorny@gentoo.org>
Wed, 24 May 2017 17:12:15 +0000 (19:12 +0200)
Closes: https://github.com/gentoo/gentoo/pull/4624

sys-fs/cryfs/Manifest [new file with mode: 0644]
sys-fs/cryfs/cryfs-0.9.7.ebuild [new file with mode: 0644]
sys-fs/cryfs/cryfs-9999.ebuild [new file with mode: 0644]
sys-fs/cryfs/metadata.xml [new file with mode: 0644]

diff --git a/sys-fs/cryfs/Manifest b/sys-fs/cryfs/Manifest
new file mode 100644 (file)
index 0000000..476a301
--- /dev/null
@@ -0,0 +1 @@
+DIST cryfs-0.9.7.tar.xz 970588 SHA256 c998069217c29c026a944da47eea0a9e73eda914ef0f891f436701bcbdbbe4d7 SHA512 962c7e5e7ea153ed41cb47094b71bc41457e26203b94cc5e349c4d21e86630e32113c0193a248eee8ead41bede1c712d4c006150f84a6e1c2a0a0a7c02a1911b WHIRLPOOL c5560f8c87bcdaf3dd3bc1cded88fdbc3f74a2284584cad1f55e4dd380849290eb56b265fd4ea98a2f8b3ea842b733e6a0d77a9013efe294a5ec3a342897bd19
diff --git a/sys-fs/cryfs/cryfs-0.9.7.ebuild b/sys-fs/cryfs/cryfs-0.9.7.ebuild
new file mode 100644 (file)
index 0000000..1f52af3
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+
+inherit cmake-utils python-any-r1
+
+DESCRIPTION="Encrypted FUSE filesystem that conceals metadata"
+HOMEPAGE="https://www.cryfs.org/"
+
+SLOT=0
+IUSE="test update-check"
+
+LICENSE="LGPL-3 BSD-2 MIT"
+# cryfs - LGPL-3
+# scrypt - BSD-2
+# spdlog - MIT
+
+if [[ "${PV}" == 9999 ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/cryfs/cryfs"
+       SRC_URI=""
+       KEYWORDS=""
+else
+       SRC_URI="https://github.com/cryfs/cryfs/releases/download/${PV}/${P}.tar.xz"
+       KEYWORDS="~amd64"
+       S="${WORKDIR}"
+fi
+
+RDEPEND=">=dev-libs/boost-1.56:=
+       >=dev-libs/crypto++-5.6.3:=
+       net-misc/curl:=
+       >=sys-fs/fuse-2.8.6:=
+       dev-libs/openssl:0="
+DEPEND="${RDEPEND}
+       ${PYTHON_DEPS}"
+
+src_prepare() {
+       # remove tests that require internet access to comply with Gentoo policy
+       sed -i -e '/CurlHttpClientTest.cpp/d' -e '/FakeHttpClientTest.cpp/d' test/cpp-utils/CMakeLists.txt || die
+
+       cmake-utils_src_prepare
+}
+
+src_configure() {
+       # upstream restricts installing files to Release configuration
+       # (CMAKE_BUILD_TYPE does not affect anything else)
+       local CMAKE_BUILD_TYPE=Release
+       local mycmakeargs=(
+               "-DBoost_USE_STATIC_LIBS=off"
+               "-DCRYFS_UPDATE_CHECKS=$(usex update-check)"
+               "-DBUILD_TESTING=$(usex test)"
+       )
+
+       cmake-utils_src_configure
+}
+
+src_test() {
+       local TMPDIR="${T}"
+       addread /dev/fuse
+       addwrite /dev/fuse
+       local tests_failed=()
+
+       for i in gitversion cpp-utils parallelaccessstore blockstore blobstore fspp cryfs cryfs-cli ; do
+               "${BUILD_DIR}"/test/${i}/${i}-test || tests_failed+=( "${i}" )
+       done
+
+       adddeny /dev/fuse
+
+       if [[ -n ${tests_failed[@]} ]] ; then
+               eerror "The following tests failed:"
+               eerror "$tests_failed[@]"
+               die "At least one test failed"
+       fi
+}
diff --git a/sys-fs/cryfs/cryfs-9999.ebuild b/sys-fs/cryfs/cryfs-9999.ebuild
new file mode 100644 (file)
index 0000000..1f52af3
--- /dev/null
@@ -0,0 +1,76 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+PYTHON_COMPAT=( python{2_7,3_{4,5,6}} )
+
+inherit cmake-utils python-any-r1
+
+DESCRIPTION="Encrypted FUSE filesystem that conceals metadata"
+HOMEPAGE="https://www.cryfs.org/"
+
+SLOT=0
+IUSE="test update-check"
+
+LICENSE="LGPL-3 BSD-2 MIT"
+# cryfs - LGPL-3
+# scrypt - BSD-2
+# spdlog - MIT
+
+if [[ "${PV}" == 9999 ]] ; then
+       inherit git-r3
+       EGIT_REPO_URI="https://github.com/cryfs/cryfs"
+       SRC_URI=""
+       KEYWORDS=""
+else
+       SRC_URI="https://github.com/cryfs/cryfs/releases/download/${PV}/${P}.tar.xz"
+       KEYWORDS="~amd64"
+       S="${WORKDIR}"
+fi
+
+RDEPEND=">=dev-libs/boost-1.56:=
+       >=dev-libs/crypto++-5.6.3:=
+       net-misc/curl:=
+       >=sys-fs/fuse-2.8.6:=
+       dev-libs/openssl:0="
+DEPEND="${RDEPEND}
+       ${PYTHON_DEPS}"
+
+src_prepare() {
+       # remove tests that require internet access to comply with Gentoo policy
+       sed -i -e '/CurlHttpClientTest.cpp/d' -e '/FakeHttpClientTest.cpp/d' test/cpp-utils/CMakeLists.txt || die
+
+       cmake-utils_src_prepare
+}
+
+src_configure() {
+       # upstream restricts installing files to Release configuration
+       # (CMAKE_BUILD_TYPE does not affect anything else)
+       local CMAKE_BUILD_TYPE=Release
+       local mycmakeargs=(
+               "-DBoost_USE_STATIC_LIBS=off"
+               "-DCRYFS_UPDATE_CHECKS=$(usex update-check)"
+               "-DBUILD_TESTING=$(usex test)"
+       )
+
+       cmake-utils_src_configure
+}
+
+src_test() {
+       local TMPDIR="${T}"
+       addread /dev/fuse
+       addwrite /dev/fuse
+       local tests_failed=()
+
+       for i in gitversion cpp-utils parallelaccessstore blockstore blobstore fspp cryfs cryfs-cli ; do
+               "${BUILD_DIR}"/test/${i}/${i}-test || tests_failed+=( "${i}" )
+       done
+
+       adddeny /dev/fuse
+
+       if [[ -n ${tests_failed[@]} ]] ; then
+               eerror "The following tests failed:"
+               eerror "$tests_failed[@]"
+               die "At least one test failed"
+       fi
+}
diff --git a/sys-fs/cryfs/metadata.xml b/sys-fs/cryfs/metadata.xml
new file mode 100644 (file)
index 0000000..5f26c5a
--- /dev/null
@@ -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>adebeus@gmail.com</email>
+  </maintainer>
+  <maintainer type="project">
+    <email>proxy-maint@gentoo.org</email>
+  </maintainer>
+  <use>
+    <flag name="update-check">Enable automatic checking for updates and security vulnerabilities</flag>
+  </use>
+  <longdescription>Encrypted FUSE filesystem that conceals metadata</longdescription>
+</pkgmetadata>