*/*: Clean PYTHON_COMPAT of obsolete impls
[gentoo.git] / sys-fs / cryfs / cryfs-0.10.2.ebuild
1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI=7
5
6 PYTHON_COMPAT=( python{2_7,3_{6,7}} )
7 inherit cmake-utils flag-o-matic linux-info python-any-r1
8
9 if [[ ${PV} == 9999 ]] ; then
10         inherit git-r3
11         EGIT_REPO_URI="https://github.com/cryfs/cryfs"
12 else
13         SRC_URI="https://github.com/cryfs/cryfs/releases/download/${PV}/${P}.tar.xz"
14         KEYWORDS="amd64 ~arm arm64 x86"
15         S="${WORKDIR}"
16 fi
17
18 DESCRIPTION="Encrypted FUSE filesystem that conceals metadata"
19 HOMEPAGE="https://www.cryfs.org/"
20
21 LICENSE="LGPL-3 MIT"
22 SLOT="0"
23 IUSE="custom-optimization debug libressl test"
24 RESTRICT="!test? ( test )"
25
26 RDEPEND="
27         >=dev-libs/boost-1.65.1:=
28         >=dev-libs/crypto++-8.2.0:=
29         net-misc/curl:=
30         >=sys-fs/fuse-2.8.6:0
31         !libressl? ( dev-libs/openssl:0= )
32         libressl? ( dev-libs/libressl:= )
33 "
34 DEPEND="${RDEPEND}
35         ${PYTHON_DEPS}
36         test? ( dev-cpp/gtest )
37 "
38
39 PATCHES=(
40         # TODO upstream:
41         "${FILESDIR}/${P}-unbundle-libs.patch"
42         "${FILESDIR}/${P}-install-targets.patch"
43 )
44
45 pkg_setup() {
46         local CONFIG_CHECK="~FUSE_FS"
47         local WARNING_FUSE_FS="CONFIG_FUSE_FS is required for cryfs support."
48
49         check_extra_config
50 }
51
52 src_prepare() {
53         cmake-utils_src_prepare
54
55         # don't install compressed manpage
56         cmake_comment_add_subdirectory doc
57
58         # remove tests that require internet access to comply with Gentoo policy
59         sed -e "/CurlHttpClientTest.cpp/d" -e "/FakeHttpClientTest.cpp/d" \
60                 -i test/cpp-utils/CMakeLists.txt || die
61
62         # /dev/fuse access denied
63         sed -e "/CliTest_IntegrityCheck/d" \
64                 -i test/cryfs-cli/CMakeLists.txt || die
65 }
66
67 src_configure() {
68         local mycmakeargs=(
69                 -DBoost_USE_STATIC_LIBS=OFF
70                 -DCRYFS_UPDATE_CHECKS=OFF
71                 -DBUILD_SHARED_LIBS=OFF
72                 -DUSE_SYSTEM_LIBS=ON
73                 -DBUILD_TESTING=$(usex test)
74         )
75         use custom-optimization || append-flags -O3
76
77         cmake-utils_src_configure
78 }
79
80 src_test() {
81         local TMPDIR="${T}"
82         local tests_failed=()
83
84         # fspp fuse tests hang, bug # 699044
85         for i in gitversion cpp-utils parallelaccessstore blockstore blobstore cryfs cryfs-cli ; do
86                 "${BUILD_DIR}"/test/${i}/${i}-test || tests_failed+=( "${i}" )
87         done
88
89         if [[ -n ${tests_failed[@]} ]] ; then
90                 eerror "The following tests failed:"
91                 eerror "${tests_failed[@]}"
92                 die "At least one test failed"
93         fi
94 }
95
96 src_install() {
97         cmake-utils_src_install
98         doman doc/man/cryfs.1
99 }