net-misc/electrum-ltc: new package
authorZac Medico <zmedico@gentoo.org>
Wed, 20 Dec 2017 10:48:00 +0000 (02:48 -0800)
committerZac Medico <zmedico@gentoo.org>
Wed, 20 Dec 2017 10:51:10 +0000 (02:51 -0800)
Package-Manager: Portage-2.3.19, Repoman-2.3.6

net-misc/electrum-ltc/Manifest [new file with mode: 0644]
net-misc/electrum-ltc/electrum-ltc-3.0_pre20171218.ebuild [new file with mode: 0644]
net-misc/electrum-ltc/files/2.8.0-no-user-root.patch [new file with mode: 0644]
net-misc/electrum-ltc/metadata.xml [new file with mode: 0644]

diff --git a/net-misc/electrum-ltc/Manifest b/net-misc/electrum-ltc/Manifest
new file mode 100644 (file)
index 0000000..33eb8c1
--- /dev/null
@@ -0,0 +1,2 @@
+DIST electrum-ltc-3.0_pre20171218-electrum-3.0.3.patch 6870 BLAKE2B cbeb180f17ad15bd6ee90dc90cd8d3a96df6ccade903ac287e5438e61c3443b64720dcdcd87bd5d2b4fb7ddf0c2625d26ffd23521aa94e3c7c662ac7582210f5 SHA512 841e337758c4c5ab98153a008204b0fa4cb32ab22e494657b61a1da487a6bdb413b1982be854a91e3175dd4d03a50877208809e9a82f93500ffb33222fcbd0fb
+DIST electrum-ltc-3.0_pre20171218.tar.gz 2385686 BLAKE2B 3b96f1cee9f052a0c4518c0c03308badc1000b4bf19c0d2a82725dd37ed33f82e12d57802fd9533f9f69f99fb97b81f6c2baa2b59fd0890bc4db22f7d00c108c SHA512 374d8bfbde9acda0d7f5922dd63cc7e59e9ccd714c8feadd7931e39af69ae473e3220fb6b8591d1dafbefbfe24c87b1de94a1e5ae716b219dc81d44e09a81e44
diff --git a/net-misc/electrum-ltc/electrum-ltc-3.0_pre20171218.ebuild b/net-misc/electrum-ltc/electrum-ltc-3.0_pre20171218.ebuild
new file mode 100644 (file)
index 0000000..5ddcdc8
--- /dev/null
@@ -0,0 +1,159 @@
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI="6"
+
+PYTHON_COMPAT=( python3_{4,5} )
+PYTHON_REQ_USE="ncurses?"
+
+inherit distutils-r1 gnome2-utils xdg-utils
+
+EGIT_COMMIT="d088f561b2875b4cda0689f9e9d911d558711e15"
+DESCRIPTION="Litecoin thin client"
+HOMEPAGE="https://electrum-ltc.org/"
+SRC_URI="https://github.com/pooler/electrum-ltc/archive/${EGIT_COMMIT}.tar.gz -> ${P}.tar.gz
+       https://github.com/spesmilo/electrum/compare/a4e89e822a208daa574c4bd1d8ecfea952c6c101...b4e43754e0f60d8438b5fd412de816a466344401.patch -> ${P}-electrum-3.0.3.patch"
+
+LICENSE="MIT"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+LINGUAS="es_ES ja_JP pt_BR pt_PT zh_CN"
+
+IUSE="audio_modem cli cosign digitalbitbox email ncurses qrcode +qt5 sync vkb"
+
+for lingua in ${LINGUAS}; do
+       IUSE+=" linguas_${lingua}"
+done
+
+REQUIRED_USE="
+       || ( cli ncurses qt5 )
+       audio_modem? ( qt5 )
+       cosign? ( qt5 )
+       digitalbitbox? ( qt5 )
+       email? ( qt5 )
+       qrcode? ( qt5 )
+       sync? ( qt5 )
+       vkb? ( qt5 )
+"
+
+RDEPEND="
+       dev-python/scrypt[${PYTHON_USEDEP}]
+       dev-python/ecdsa[${PYTHON_USEDEP}]
+       dev-python/jsonrpclib[${PYTHON_USEDEP}]
+       dev-python/pbkdf2[${PYTHON_USEDEP}]
+       dev-python/pyaes[${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/tlslite[${PYTHON_USEDEP}]
+       || (
+               dev-python/protobuf-python[${PYTHON_USEDEP}]
+               dev-libs/protobuf[python,${PYTHON_USEDEP}]
+       )
+       virtual/python-dnspython[${PYTHON_USEDEP}]
+       qrcode? ( media-gfx/zbar[v4l] )
+       qt5? (
+               dev-python/PyQt5[gui,widgets,${PYTHON_USEDEP}]
+       )
+       ncurses? ( dev-lang/python )
+"
+
+S="${WORKDIR}/${PN}-${EGIT_COMMIT}"
+
+DOCS=( RELEASE-NOTES )
+
+src_prepare() {
+       # include the last changes that apply from electrum 3.0.3
+       eapply <(sed -e '73,92d' "${DISTDIR}/${P}-electrum-3.0.3.patch")
+       eapply "${FILESDIR}/2.8.0-no-user-root.patch"
+
+       # Prevent icon from being installed in the wrong location
+       sed -i '/icons/d' setup.py || die
+
+       pyrcc5 icons.qrc -o gui/qt/icons_rc.py || die
+
+       local wordlist=
+       for wordlist in  \
+               $(usex linguas_ja_JP '' japanese) \
+               $(usex linguas_pt_BR '' $(usex linguas_pt_PT '' portuguese)) \
+               $(usex linguas_es_ES '' spanish) \
+               $(usex linguas_zh_CN '' chinese_simplified) \
+       ; do
+               rm -f "lib/wordlist/${wordlist}.txt" || die
+               sed -i "/${wordlist}\\.txt/d" lib/mnemonic.py || die
+       done
+
+       # Remove unrequested GUI implementations:
+       local gui setup_py_gui
+       for gui in  \
+               $(usex cli      '' stdio)  \
+               kivy \
+               $(usex qt5      '' qt   )  \
+               $(usex ncurses  '' text )  \
+       ; do
+               rm gui/"${gui}"* -r || die
+       done
+
+       # And install requested ones...
+       for gui in  \
+               $(usex qt5      qt   '')  \
+       ; do
+               setup_py_gui="${setup_py_gui}'electrum_gui.${gui}',"
+       done
+
+       sed -i "s/'electrum_gui\\.qt',/${setup_py_gui}/" setup.py || 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/' electrum-ltc || die
+
+       local plugin
+       # trezor requires python trezorlib module
+       # keepkey requires trezor
+       for plugin in  \
+               $(usex audio_modem     '' audio_modem          ) \
+               $(usex cosign          '' cosigner_pool        ) \
+               $(usex digitalbitbox   '' digitalbitbox        ) \
+               $(usex email           '' email_requests       ) \
+               hw_wallet \
+               ledger \
+               keepkey \
+               $(usex sync            '' labels               ) \
+               trezor  \
+               $(usex vkb             '' virtualkeyboard      ) \
+       ; do
+               rm -r plugins/"${plugin}"* || die
+               sed -i "/${plugin}/d" setup.py || die
+       done
+
+       eapply_user
+
+       distutils-r1_src_prepare
+}
+
+src_install() {
+       doicon -s 128 icons/${PN}.png
+       distutils-r1_src_install
+}
+
+pkg_preinst() {
+       gnome2_icon_savelist
+}
+
+pkg_postinst() {
+       gnome2_icon_cache_update
+       xdg_desktop_database_update
+}
+
+pkg_postrm() {
+       gnome2_icon_cache_update
+       xdg_desktop_database_update
+}
diff --git a/net-misc/electrum-ltc/files/2.8.0-no-user-root.patch b/net-misc/electrum-ltc/files/2.8.0-no-user-root.patch
new file mode 100644 (file)
index 0000000..2ca5363
--- /dev/null
@@ -0,0 +1,15 @@
+--- ./setup.py.orig    2017-01-06 19:17:44.294137848 +0000
++++ ./setup.py 2017-01-06 19:17:50.093161327 +0000
+@@ -21,12 +21,6 @@
+     parser.add_argument('--root=', dest='root_path', metavar='dir', default='/')
+     opts, _ = parser.parse_known_args(sys.argv[1:])
+     usr_share = os.path.join(sys.prefix, "share")
+-    if not os.access(opts.root_path + usr_share, os.W_OK) and \
+-       not os.access(opts.root_path, os.W_OK):
+-        if 'XDG_DATA_HOME' in os.environ.keys():
+-            usr_share = os.environ['XDG_DATA_HOME']
+-        else:
+-            usr_share = os.path.expanduser('~/.local/share')
+     data_files += [
+         (os.path.join(usr_share, 'applications/'), ['electrum.desktop']),
+     ]
diff --git a/net-misc/electrum-ltc/metadata.xml b/net-misc/electrum-ltc/metadata.xml
new file mode 100644 (file)
index 0000000..76a9911
--- /dev/null
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+       <maintainer type="person">
+               <email>zmedico@gentoo.org</email>
+               <name>Zac Medico</name>
+       </maintainer>
+       <use>
+               <flag name="cli">Enables the CLI interface</flag>
+               <flag name="audio_modem">Enable plugin to support Audio Modem</flag>
+               <flag name="cosign">Enable plugin to support multisig wallets between multiple Electrum clients</flag>
+               <flag name="digitalbitbox">Enable plugin to support Digital Bitbox hardware wallet</flag>
+               <flag name="email">Enable plugin to support emailing invoices</flag>
+               <flag name="qrcode">Enable QR code scanning with <pkg>media-gfx/zbar</pkg></flag>
+               <flag name="sync">Enable plugin to sync wallet metadata across multiple Electrum clients</flag>
+               <flag name="vkb">Enable plugin for virtual keyboard</flag>
+       </use>
+</pkgmetadata>