# Copyright 2010-2015 Gentoo Foundation # Distributed under the terms of the GNU General Public License v2 # $Id$ EAPI=5 DB_VER="4.8" inherit db-use autotools eutils toolchain-funcs user systemd fdo-mime gnome2-utils kde4-functions qt4-r2 DESCRIPTION="BitcoinXT crypto-currency GUI wallet" HOMEPAGE="https://github/bitcoinxt/bitcoinxt" My_PV="${PV/\.0b/}A" SRC_URI="https://github.com/bitcoinxt/bitcoinxt/archive/v${My_PV}.tar.gz -> ${P}.tar.gz" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~arm ~arm64 ~mips ~ppc ~x86 ~amd64-linux ~x86-linux" IUSE="dbus kde ljr +qrcode qt4 qt5 test upnp +wallet +logrotate +ssl +docs" REQUIRED_USE="${REQUIRED_USE} ^^ ( qt4 qt5 )" LANGS="ach af_ZA ar be_BY bg bs ca ca@valencia ca_ES cmn cs cy da de el_GR en eo es es_CL es_DO es_MX es_UY et eu_ES fa fa_IR fi fr fr_CA gl gu_IN he hi_IN hr hu id_ID it ja ka kk_KZ ko_KR ky la lt lv_LV mn ms_MY nb nl pam pl pt_BR pt_PT ro_RO ru sah sk sl_SI sq sr sv th_TH tr uk ur_PK uz@Cyrl vi vi_VN zh_HK zh_CN zh_TW" for X in ${LANGS} ; do IUSE="${IUSE} linguas_${X}" done OPENSSL_DEPEND="dev-libs/openssl:0[-bindist]" WALLET_DEPEND="media-gfx/qrencode sys-libs/db:$(db_ver_to_slot "${DB_VER}")[cxx]" RDEPEND=" dev-libs/protobuf qrcode? ( media-gfx/qrencode ) qt4? ( dev-qt/qtgui:4 ) qt5? ( dev-qt/qtgui:5 dev-qt/qtnetwork:5 dev-qt/qtwidgets:5 dev-qt/linguist-tools:5 ) >=app-shells/bash-4.1 sys-apps/sed dev-libs/boost[threads(+)] dev-libs/glib:2 dev-libs/crypto++ ssl? ( ${OPENSSL_DEPEND} ) logrotate? ( app-admin/logrotate ) wallet? ( ${WALLET_DEPEND} ) upnp? ( net-libs/miniupnpc ) virtual/bitcoin-leveldb dbus? ( qt4? ( dev-qt/qtdbus:4 ) qt5? ( dev-qt/qtdbus:5 ) ) " DEPEND="${RDEPEND}" S="${WORKDIR}/bitcoinxt-${My_PV}" pkg_setup() { local UG='bitcoinxt' enewgroup "${UG}" enewuser "${UG}" -1 -1 /var/lib/bitcoinxt "${UG}" # force this user to the sh shell - which is normally bash chsh -s /bin/sh ${UG} elog "user ${UG} set to allow logins" elog "" elog "Do not forget to set the password for ${UG} to allow you to log in" } src_prepare() { epatch "${FILESDIR}/9999-syslibs.patch" # epatch "${FILESDIR}/9999-sys_libsecp256k1.patch" local filt= yeslang= nolang= for lan in $LANGS; do if [ ! -e src/qt/locale/bitcoin_$lan.ts ]; then die "Language '$lan' no longer supported. Ebuild needs update." fi done for ts in $(ls src/qt/locale/*.ts) do x="${ts/*bitcoin_/}" x="${x/.ts/}" if ! use "linguas_$x"; then nolang="$nolang $x" rm "$ts" filt="$filt\\|$x" else yeslang="$yeslang $x" fi done filt="bitcoin_\\(${filt:2}\\)\\.\(qm\|ts\)" sed "/${filt}/d" -i 'src/qt/bitcoin_locale.qrc' sed "s/locale\/${filt}/bitcoin.qrc/" -i 'src/Makefile.qt.include' einfo "Languages -- Enabled:$yeslang -- Disabled:$nolang" cd ${S} eautoreconf } src_configure() { local my_econf= if use upnp; then my_econf="${my_econf} --with-miniupnpc --enable-upnp-default" else my_econf="${my_econf} --without-miniupnpc --disable-upnp-default" fi if use wallet; then my_econf="${my_econf} --enable-wallet" else my_econf="${my_econf} --disable-wallet" fi my_econf="${my_econf} --with-system-leveldb" econf \ --disable-ccache \ --disable-static \ --without-libs \ --without-utils \ --without-daemon \ ${my_econf} \ $(use_with dbus qtdbus) \ $(use_with qrcode qrencode) \ --with-gui=$(usex qt5 qt5 qt4) "$@" } src_compile() { local OPTS=() OPTS+=("CXXFLAGS=${CXXFLAGS} -I$(db_includedir "${DB_VER}")") OPTS+=("LDFLAGS=${LDFLAGS} -ldb_cxx-${DB_VER}") use ssl && OPTS+=(USE_SSL=1) use upnp && OPTS+=(USE_UPNP=1) cd src || die emake CXX="$(tc-getCXX)" "${OPTS[@]}" mv qt/bitcoin-qt ${PN} } src_install() { local my_topdir="/var/lib/bitcoinxt" local my_data="${my_topdir}/.bitcoin" dobin src/${PN} insinto "${my_data}" if [ -f "${ROOT}${my_data}/bitcoin.conf" ]; then elog "${EROOT}${my_data}/bitcoin.conf already installed - not overwriting it" else doins "${FILESDIR}/bitcoin.conf" elog "default ${EROOT}${my_data}/bitcoin.conf installed - you will need to edit it" fowners bitcoinxt:bitcoinxt "${my_data}/bitcoin.conf" fperms 400 "${my_data}/bitcoin.conf" fi #newconfd "${FILESDIR}/bitcoinxt.confd" ${PN} #newinitd "${FILESDIR}/bitcoinxt.initd" ${PN} #systemd_dounit "${FILESDIR}/bitcoinxtd.service" keepdir "${my_data}" fperms 700 "${my_topdir}" fowners bitcoinxt:bitcoinxt "${my_topdir}" fowners bitcoinxt:bitcoinxt "${my_data}" insinto /usr/share/pixmaps newins "share/pixmaps/bitcoin.ico" "${PN}.ico" make_desktop_entry "${PN} %u" "BitcoinXT-Qt" "/usr/share/pixmaps/${PN}.ico" "Qt;Network;P2P;Office;Finance;" "MimeType=x-scheme-handler/bitcoin;\nTerminal=false" if use kde; then insinto /usr/share/kde4/services doins contrib/debian/bitcoin-qt.protocol fi if use docs; then dodoc README.md dodoc doc/release-notes.md dodoc doc/assets-attribution.md doc/bips.md doc/tor.md doman contrib/debian/manpages/bitcoin-qt.1 fi if use logrotate; then insinto /etc/logrotate.d newins "${FILESDIR}/bitcoinxtd.logrotate" bitcoinxtd fi } update_caches() { gnome2_icon_cache_update fdo-mime_desktop_database_update buildsycoca } pkg_postinst() { update_caches } pkg_postrm() { update_caches }