You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/net-misc/electrum/electrum-4.5.4.ebuild

120 lines
3.0 KiB

# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYTHON_COMPAT=( python3_{10..12} )
PYTHON_REQ_USE="ncurses?"
inherit distutils-r1 xdg-utils
DESCRIPTION="User friendly Bitcoin client"
HOMEPAGE="
https://electrum.org/
https://github.com/spesmilo/electrum/
"
SRC_URI="
https://github.com/spesmilo/electrum/archive/${PV}.tar.gz
-> ${P}.gh.tar.gz
"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 x86"
IUSE="cli ncurses qrcode +qt5"
REQUIRED_USE="|| ( cli ncurses qt5 )"
RDEPEND="
${PYTHON_DEPS}
<dev-libs/libsecp256k1-0.4
>=dev-python/aiohttp-socks-0.8.4[${PYTHON_USEDEP}]
=dev-python/aiorpcx-0.22*[${PYTHON_USEDEP}]
>=dev-python/attrs-20.1.0[${PYTHON_USEDEP}]
dev-python/bitstring[${PYTHON_USEDEP}]
dev-python/cryptography[${PYTHON_USEDEP}]
>=dev-python/dnspython-2[${PYTHON_USEDEP}]
dev-python/jsonpatch[${PYTHON_USEDEP}]
dev-python/pbkdf2[${PYTHON_USEDEP}]
dev-python/pyperclip[${PYTHON_USEDEP}]
dev-python/PySocks[${PYTHON_USEDEP}]
dev-python/qrcode[${PYTHON_USEDEP}]
dev-python/requests[${PYTHON_USEDEP}]
dev-python/setuptools[${PYTHON_USEDEP}]
dev-python/six[${PYTHON_USEDEP}]
>=dev-python/protobuf-python-3.20[${PYTHON_USEDEP}]
qrcode? ( media-gfx/zbar[v4l] )
qt5? (
dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
)
ncurses? ( $(python_gen_impl_dep 'ncurses') )
"
BDEPEND="
test? (
dev-python/pyaes[${PYTHON_USEDEP}]
dev-python/pycryptodome[${PYTHON_USEDEP}]
)
"
distutils_enable_tests pytest
EPYTEST_IGNORE=(
# test for qml/PyQt6 GUI that doesn't work anyway
tests/test_qml_types.py
)
src_prepare() {
# use backwards-compatible cryptodome API
sed -i -e 's:Cryptodome:Crypto:' electrum/crypto.py || die
# make qdarkstyle dep optional
sed -i -e '/qdarkstyle/d' contrib/requirements/requirements.txt || die
# remove upper bounds from deps
sed -i -e 's:,<[0-9.]*::' contrib/requirements/requirements.txt || die
local bestgui
if use qt5; then
bestgui=qt
elif use ncurses; then
bestgui=text
else
bestgui=stdio
fi
sed -i 's/^\([[:space:]]*\)\(config_options\['\''cwd'\''\] = .*\)$/\1\2\n\1config_options.setdefault("gui", "'"${bestgui}"'")\n/' ${PN}/${PN} || die
eapply_user
xdg_environment_reset
distutils-r1_src_prepare
}
src_install() {
dodoc RELEASE-NOTES
distutils-r1_src_install
}
pkg_postinst() {
xdg_icon_cache_update
xdg_desktop_database_update
local v
for v in ${REPLACING_VERSIONS}; do
ver_test "${v}" -ge 4.3.4 && return
done
ewarn "If you are new to BitCoin, please be aware that:"
ewarn "1. Cryptocurrencies are volatile. BTC has been subject to rapid"
ewarn " changes of value in the past."
ewarn "2. Cryptocurrency ownership is determined solely by the access to"
ewarn " the private key. If the key is lost or stolen, BTC are unrevocably"
ewarn " lost."
ewarn "3. Proof-of-work based cryptocurrencies have negative environmental"
ewarn " impact. BTC mining is consuming huge amounts of electricity."
}
pkg_postrm() {
xdg_icon_cache_update
xdg_desktop_database_update
}