summaryrefslogtreecommitdiff
blob: 72d0c2fc464bd917c3e297c5b029d3c9fe866b2b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# Copyright 1999-2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=7

# ebuild generated by hackport 0.6.7.9999
#hackport: flags: -check_alignment,-old_toolchain_inliner,+support_deepseq,support_aesni:cpu_flags_x86_aes,support_pclmuldq:cpu_flags_x86_sse4_1,support_sse:cpu_flags_x86_sse,support_rdrand:cpu_flags_x86_rdrand

CABAL_FEATURES="lib profile haddock hoogle hscolour test-suite"
inherit flag-o-matic haskell-cabal

DESCRIPTION="Cryptography Primitives sink"
HOMEPAGE="https://github.com/haskell-crypto/cryptonite"
SRC_URI="https://hackage.haskell.org/package/${P}/${P}.tar.gz
	https://github.com/haskell-crypto/cryptonite/pull/338.patch -> ${PN}-338.patch"

LICENSE="BSD"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~ppc64 ~x86"
IUSE="cpu_flags_x86_rdrand cpu_flags_x86_aes cpu_flags_x86_sse cpu_flags_x86_sse4_1 +integer-gmp +target-attributes"

RDEPEND=">=dev-haskell/basement-0.0.6:=[profile?]
	>=dev-haskell/memory-0.14.18:=[profile?]
	>=dev-lang/ghc-8.4.3:=
	virtual/libc
"
DEPEND="${RDEPEND}
	>=dev-haskell/cabal-2.2.0.1
	test? ( dev-haskell/tasty
		dev-haskell/tasty-hunit
		dev-haskell/tasty-kat
		dev-haskell/tasty-quickcheck )
"

PATCHES=( "${DISTDIR}"/${PN}-338.patch )

src_prepare() {
	default

	# On AVX2 cryptonite's own test suite crashes on unaligned access:
	# https://github.com/haskell-crypto/cryptonite/issues/347
	# Disable extensions that might require extra alignment.
	use amd64 && append-flags -mno-avx2
	use x86 && append-flags -mno-avx2
}

src_configure() {
	haskell-cabal_src_configure \
		--flag=-check_alignment \
		$(cabal_flag integer-gmp integer-gmp) \
		--flag=-old_toolchain_inliner \
		$(cabal_flag cpu_flags_x86_aes support_aesni) \
		--flag=support_deepseq \
		$(cabal_flag cpu_flags_x86_sse4_1 support_pclmuldq) \
		$(cabal_flag cpu_flags_x86_rdrand support_rdrand) \
		$(cabal_flag cpu_flags_x86_sse support_sse) \
		$(cabal_flag target-attributes use_target_attributes)
}