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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
# Copyright 1999-2016 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI=6
# ebuild generated by hackport 0.5.9999
CABAL_FEATURES="bin"
inherit git-r3 haskell-cabal
MY_PN="QuickFuzz"
MY_P="${MY_PN}-${PV}"
DESCRIPTION="An experimental grammar fuzzer in Haskell using QuickCheck"
HOMEPAGE="http://quickfuzz.org/"
EGIT_REPO_URI="https://github.com/CIFASIS/QuickFuzz.git"
LICENSE="GPL-3"
SLOT="0"
IUSE="archs codes docs imgs media net pki"
RDEPEND="dev-haskell/abstract-par:=
dev-haskell/argparser:=
dev-haskell/derive:=
dev-haskell/linear:=
dev-haskell/monad-par:=
dev-haskell/mtl:=
dev-haskell/parallel-io:=
dev-haskell/primitive:=
dev-haskell/process-extras:=
dev-haskell/quickcheck:2=
dev-haskell/quickcheck-unicode:=
dev-haskell/random:=
dev-haskell/split:=
dev-haskell/text:=
dev-haskell/vector:=
dev-haskell/wl-pprint:=
>=dev-lang/ghc-7.8.2:=
archs? ( dev-haskell/base16-bytestring:=
>=dev-haskell/tar-0.5:=
dev-haskell/zip-archive:= )
!archs? ( net? ( dev-haskell/base16-bytestring:= ) )
codes? ( dev-haskell/haxml:=
dev-haskell/json:=
dev-haskell/language-bash:=
dev-haskell/language-css:=
dev-haskell/language-dot:=
dev-haskell/language-ecmascript:=
dev-haskell/language-glsl:=
dev-haskell/language-lua:=
dev-haskell/language-python:=
dev-haskell/shell-escape:=
dev-haskell/uniplate:= )
docs? ( app-text/pandoc:=
dev-haskell/data-default:=
dev-haskell/hcg-minus:=
dev-haskell/hps:=
dev-haskell/icalendar:=
dev-haskell/pandoc-types:= )
imgs? ( dev-haskell/ac-ppm:=
dev-haskell/memory:=
dev-haskell/attoparsec:=
dev-haskell/lens:=
dev-haskell/scientific:=
dev-haskell/thyme:=
dev-haskell/xml:=
>=dev-haskell/zlib-0.6:= )
!imgs? ( archs? ( >=dev-haskell/zlib-0.6:= ) )
media? ( dev-haskell/hcodecs:=
dev-haskell/hunit:=
dev-haskell/mtl:=
dev-haskell/old-locale:=
dev-haskell/random:=
dev-haskell/idiii:=
dev-haskell/bitwise:=
dev-haskell/monad-loops:=
dev-haskell/mtl:=
dev-haskell/wavy:= )
net? ( dev-haskell/concurrent-extra:=
dev-haskell/dns:=
dev-haskell/http:=
dev-haskell/iproute:=
dev-haskell/network:=
dev-haskell/network-uri:=
dev-haskell/unbounded-delays:= )
pki? ( dev-haskell/hourglass:=
dev-haskell/asn1-types:=
dev-haskell/asn1-parse:=
dev-haskell/cryptonite:=
dev-haskell/hourglass:=
dev-haskell/memory:= )
"
DEPEND="${RDEPEND}
>=dev-haskell/cabal-1.18.1.3
"
# $1 - target tarball name (not including extension)
make_snapshot() {
ln -s "${S}" "${WORKDIR}"/"$1" || die
tar \
--dereference \
--directory="${WORKDIR}" \
--exclude="$1"/bundled/Juicy.Pixels/tests \
-zcvvf \
"${WORKDIR}"/"$1".tar.gz "$1"/ || die
}
# As of 2016-09-10 QuickFuzz forks a few hackage packages
# without renames:
# - asn1-encoding: stabilised handling of corrupterd data
# - hogg: more functions are exported directly
# - juicypixels: more functions and modules are exported,
# unsafe functions are changed to safe
# - svg-tree: upstream, build agains patched juicypixels
# - x509: stabilised handling of corrupterd data
# - megadeth: not a fork but has no releases
# - ttasm: cabalised, renamed module
src_unpack() {
git-r3_src_unpack
cd "${S}"
local forked_repos=(
Juicy.Pixels
hogg
hs-asn1-encoding
hs-certificate-x509
ttasm
# not exactly fork. just unreleased upstream library
megadeth
)
local repo_name
local repo_subdir=${S}/bundled
mkdir "${repo_subdir}/" || die
for repo_name in "${forked_repos[@]}"; do
git-r3_fetch https://github.com/CIFASIS/${repo_name}.git
git-r3_checkout https://github.com/CIFASIS/${repo_name}.git "${repo_subdir}/${repo_name}"
done
git-r3_fetch https://github.com/Twinside/svg-tree.git
git-r3_checkout https://github.com/Twinside/svg-tree.git "${repo_subdir}/svg-tree"
make_snapshot quickfuzz-0.1_p$(date "+%Y%m%d")
}
src_prepare() {
default
# inline dependencies of bundled dependencies
cabal_chdeps \
'JuicyPixels' 'memory' \
'asn1-encoding' 'hourglass' \
'hogg' 'array' \
'megadeth' 'base' \
'svg-tree' 'attoparsec, lens, scientific, thyme' \
'ttasm' 'bitwise, mtl, monad-loops' \
'x509' 'asn1-parse, cryptonite, hourglass, memory' \
\
'hs-source-dirs: src' 'hs-source-dirs: src, bundled/Juicy.Pixels/src, bundled/hogg, bundled/hs-asn1-encoding, bundled/hs-certificate-x509, bundled/megadeth, bundled/svg-tree/src, bundled/ttasm'
}
src_configure() {
haskell-cabal_src_configure \
$(cabal_flag archs archs) \
$(cabal_flag codes codes) \
$(cabal_flag docs docs) \
$(cabal_flag imgs imgs) \
$(cabal_flag media media) \
$(cabal_flag net net) \
$(cabal_flag pki pki)
}
|