app-editors/kakoune: drop old 0_pre20160620
[gentoo.git] / net-misc / electrum / electrum-2.9.3.ebuild
1 # Copyright 1999-2017 Gentoo Foundation
2 # Distributed under the terms of the GNU General Public License v2
3
4 EAPI="6"
5
6 PYTHON_COMPAT=( python2_7 )
7 PYTHON_REQ_USE="ncurses?"
8
9 inherit distutils-r1 gnome2-utils
10
11 MY_P="Electrum-${PV}"
12 DESCRIPTION="User friendly Bitcoin client"
13 HOMEPAGE="https://electrum.org/"
14 SRC_URI="https://download.electrum.org/${PV}/${MY_P}.tar.gz"
15
16 LICENSE="MIT"
17 SLOT="0"
18 KEYWORDS="~amd64 ~x86"
19 LINGUAS="ar_SA bg_BG cs_CZ da_DK de_DE el_GR eo_UY es_ES fr_FR hu_HU hy_AM id_ID it_IT ja_JP ko_KR ky_KG lv_LV nb_NO nl_NL no_NO pl_PL pt_BR pt_PT ro_RO ru_RU sk_SK sl_SI ta_IN th_TH tr_TR vi_VN zh_CN"
20
21 IUSE="audio_modem cli cosign digitalbitbox email greenaddress_it ncurses qrcode +qt4 sync trustedcoin_com vkb"
22
23 for lingua in ${LINGUAS}; do
24         IUSE+=" linguas_${lingua}"
25 done
26
27 REQUIRED_USE="
28         || ( cli ncurses qt4 )
29         audio_modem? ( qt4 )
30         cosign? ( qt4 )
31         digitalbitbox? ( qt4 )
32         email? ( qt4 )
33         greenaddress_it? ( qt4 )
34         qrcode? ( qt4 )
35         sync? ( qt4 )
36         trustedcoin_com? ( qt4 )
37         vkb? ( qt4 )
38 "
39
40 RDEPEND="
41         dev-python/ecdsa[${PYTHON_USEDEP}]
42         dev-python/jsonrpclib[${PYTHON_USEDEP}]
43         dev-python/pbkdf2[${PYTHON_USEDEP}]
44         dev-python/pyaes[${PYTHON_USEDEP}]
45         dev-python/PySocks[${PYTHON_USEDEP}]
46         dev-python/qrcode[${PYTHON_USEDEP}]
47         dev-python/requests[${PYTHON_USEDEP}]
48         dev-python/setuptools[${PYTHON_USEDEP}]
49         dev-python/six[${PYTHON_USEDEP}]
50         dev-python/tlslite[${PYTHON_USEDEP}]
51         || (
52                 dev-python/protobuf-python[${PYTHON_USEDEP}]
53                 dev-libs/protobuf[python,${PYTHON_USEDEP}]
54         )
55         virtual/python-dnspython[${PYTHON_USEDEP}]
56         qrcode? ( media-gfx/zbar[python,v4l,${PYTHON_USEDEP}] )
57         qt4? (
58                 dev-python/PyQt4[X,${PYTHON_USEDEP}]
59         )
60         ncurses? ( dev-lang/python )
61 "
62
63 S="${WORKDIR}/${MY_P}"
64
65 DOCS="RELEASE-NOTES"
66
67 src_prepare() {
68         eapply "${FILESDIR}/2.8.0-no-user-root.patch"
69
70         # Don't advise using PIP
71         sed -i "s/On Linux, try 'sudo pip install zbar'/Re-emerge Electrum with the qrcode USE flag/" lib/qrscanner.py || die
72
73         # Prevent icon from being installed in the wrong location
74         sed -i '/icons/d' setup.py || die
75
76         # Remove unrequested localization files:
77         for lang in ${LINGUAS}; do
78                 use "linguas_${lang}" && continue
79                 rm -r "lib/locale/${lang}" || die
80         done
81
82         local wordlist=
83         for wordlist in  \
84                 $(usex linguas_ja_JP '' japanese) \
85                 $(usex linguas_pt_BR '' $(usex linguas_pt_PT '' portuguese)) \
86                 $(usex linguas_es_ES '' spanish) \
87                 $(usex linguas_zh_CN '' chinese_simplified) \
88         ; do
89                 rm -f "lib/wordlist/${wordlist}.txt" || die
90                 sed -i "/${wordlist}\\.txt/d" lib/mnemonic.py || die
91         done
92
93         # Remove unrequested GUI implementations:
94         local gui setup_py_gui
95         for gui in  \
96                 $(usex cli      '' stdio)  \
97                 kivy \
98                 $(usex qt4      '' qt   )  \
99                 $(usex ncurses  '' text )  \
100         ; do
101                 rm gui/"${gui}"* -r || die
102         done
103
104         # And install requested ones...
105         for gui in  \
106                 $(usex qt4      qt   '')  \
107         ; do
108                 setup_py_gui="${setup_py_gui}'electrum_gui.${gui}',"
109         done
110
111         sed -i "s/'electrum_gui\\.qt',/${setup_py_gui}/" setup.py || die
112
113         local bestgui
114         if use qt4; then
115                 bestgui=qt
116         elif use ncurses; then
117                 bestgui=text
118         else
119                 bestgui=stdio
120         fi
121         sed -i 's/^\([[:space:]]*\)\(config_options\['\''cwd'\''\] = .*\)$/\1\2\n\1config_options.setdefault("gui", "'"${bestgui}"'")\n/' electrum || die
122
123         local plugin
124         # trezor requires python trezorlib module
125         # keepkey requires trezor
126         for plugin in  \
127                 $(usex audio_modem     '' audio_modem          ) \
128                 $(usex cosign          '' cosigner_pool        ) \
129                 $(usex digitalbitbox   '' digitalbitbox        ) \
130                 $(usex email           '' email_requests       ) \
131                 $(usex greenaddress_it '' greenaddress_instant ) \
132                 hw_wallet \
133                 ledger \
134                 keepkey \
135                 $(usex sync            '' labels               ) \
136                 trezor  \
137                 $(usex trustedcoin_com '' trustedcoin          ) \
138                 $(usex vkb             '' virtualkeyboard      ) \
139         ; do
140                 rm -r plugins/"${plugin}"* || die
141                 sed -i "/${plugin}/d" setup.py || die
142         done
143
144         eapply_user
145
146         distutils-r1_src_prepare
147 }
148
149 src_install() {
150         doicon -s 128 icons/${PN}.png
151         distutils-r1_src_install
152 }
153
154 pkg_preinst() {
155         gnome2_icon_savelist
156 }
157
158 pkg_postinst() {
159         gnome2_icon_cache_update
160 }
161
162 pkg_postrm() {
163         gnome2_icon_cache_update
164 }