summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAnthony G. Basile <blueness@gentoo.org>2015-10-08 20:48:35 -0400
committerAnthony G. Basile <blueness@gentoo.org>2015-10-08 20:48:55 -0400
commit075c3915658d7be2a319d7bf6b9c847de4db4767 (patch)
treee9a39662e681ba852876528662879a46e7108e44 /net-p2p
parentwww-plugins/chrome-binary-plugins: automated update (diff)
downloadgentoo-075c3915658d7be2a319d7bf6b9c847de4db4767.tar.gz
gentoo-075c3915658d7be2a319d7bf6b9c847de4db4767.tar.bz2
gentoo-075c3915658d7be2a319d7bf6b9c847de4db4767.zip
net-p2p/bitcoinxtd: initial commit, bug #557900.
Thanks Ron OHara. Package-Manager: portage-2.2.20.1
Diffstat (limited to 'net-p2p')
-rw-r--r--net-p2p/bitcoinxtd/Manifest1
-rw-r--r--net-p2p/bitcoinxtd/bitcoinxtd-0.11.0.ebuild120
-rw-r--r--net-p2p/bitcoinxtd/files/9999-syslibs.patch243
-rw-r--r--net-p2p/bitcoinxtd/files/bitcoinxt.conf8
-rw-r--r--net-p2p/bitcoinxtd/files/bitcoinxt.confd12
-rw-r--r--net-p2p/bitcoinxtd/files/bitcoinxt.initd29
-rw-r--r--net-p2p/bitcoinxtd/files/bitcoinxtd.logrotate8
-rw-r--r--net-p2p/bitcoinxtd/files/bitcoinxtd.service30
-rw-r--r--net-p2p/bitcoinxtd/metadata.xml19
9 files changed, 470 insertions, 0 deletions
diff --git a/net-p2p/bitcoinxtd/Manifest b/net-p2p/bitcoinxtd/Manifest
new file mode 100644
index 000000000000..0b2beb961c57
--- /dev/null
+++ b/net-p2p/bitcoinxtd/Manifest
@@ -0,0 +1 @@
+DIST bitcoinxtd-0.11.0.tar.gz 5226736 SHA256 f6fc1651b3cad90bae6f9d70a5f476ca4cd9b8b38681331bccc6d2651c5e2c89 SHA512 044f2b95644b831641fc48fe65e980438e58e784635b32f393e9aeb6473124708df3870aa3bd3848acd90b4b9785fba9163ad07e5ea7d243c175741429bc2b6b WHIRLPOOL 5b2e692e0ccafff454260bb1f8871bec2775c21124e22cf11fd3d175b2d25634fc514e0cfe6b6334e20692846319e9f5fd1a580d8ef31389d6e84025bc600eaa
diff --git a/net-p2p/bitcoinxtd/bitcoinxtd-0.11.0.ebuild b/net-p2p/bitcoinxtd/bitcoinxtd-0.11.0.ebuild
new file mode 100644
index 000000000000..7fe3e6913315
--- /dev/null
+++ b/net-p2p/bitcoinxtd/bitcoinxtd-0.11.0.ebuild
@@ -0,0 +1,120 @@
+# Copyright 1999-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
+
+DESCRIPTION="BitcoinXT crypto-currency wallet for automated services"
+HOMEPAGE="https://github/bitcoinxt/bitcoinxt"
+My_PV="${PV/\.0/}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="+doc +ssl +logrotate +upnp +wallet"
+
+OPENSSL_DEPEND="dev-libs/openssl:0[-bindist]"
+WALLET_DEPEND="media-gfx/qrencode sys-libs/db:$(db_ver_to_slot "${DB_VER}")[cxx]"
+
+RDEPEND="
+ app-shells/bash:0
+ 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
+"
+
+DEPEND="${RDEPEND}"
+
+S="${WORKDIR}/bitcoinxt-${My_PV}"
+
+pkg_setup() {
+ local UG='bitcoinxt'
+ enewgroup "${UG}"
+ enewuser "${UG}" -1 -1 /var/lib/bitcoinxt "${UG}"
+}
+
+src_prepare() {
+ epatch "${FILESDIR}/9999-syslibs.patch"
+ 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 \
+ --with-daemon \
+ --without-gui \
+ ${my_econf} \
+ "$@"
+}
+
+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[@]}" bitcoind
+ mv bitcoind ${PN}
+}
+
+src_install() {
+ local my_topdir="/var/lib/bitcoinxt"
+ local my_data="${my_topdir}/.bitcoinxt"
+
+ dobin src/${PN}
+
+ insinto "${my_data}"
+ doins "${FILESDIR}/bitcoinxt.conf"
+ fowners bitcoinxt:bitcoinxt "${my_data}/bitcoinxt.conf"
+ fperms 600 "${my_data}/bitcoinxt.conf"
+
+ 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}"
+
+ if use doc; then
+ dodoc README.md
+ dodoc doc/release-notes.md
+ fi
+
+ if use logrotate; then
+ insinto /etc/logrotate.d
+ newins "${FILESDIR}/bitcoinxtd.logrotate" bitcoinxtd
+ fi
+}
diff --git a/net-p2p/bitcoinxtd/files/9999-syslibs.patch b/net-p2p/bitcoinxtd/files/9999-syslibs.patch
new file mode 100644
index 000000000000..2cdf2ab9837b
--- /dev/null
+++ b/net-p2p/bitcoinxtd/files/9999-syslibs.patch
@@ -0,0 +1,243 @@
+diff --git a/build-aux/m4/bitcoin_subdir_to_include.m4 b/build-aux/m4/bitcoin_subdir_to_include.m4
+index 66f106c..5f0a3b1 100644
+--- a/build-aux/m4/bitcoin_subdir_to_include.m4
++++ b/build-aux/m4/bitcoin_subdir_to_include.m4
+@@ -5,7 +5,7 @@ AC_DEFUN([BITCOIN_SUBDIR_TO_INCLUDE],[
+ AC_MSG_RESULT([default])
+ else
+ echo "#include <$2$3.h>" >conftest.cpp
+- newinclpath=`${CXXCPP} ${CPPFLAGS} -M conftest.cpp 2>/dev/null | [ tr -d '\\n\\r\\\\' | sed -e 's/^.*[[:space:]:]\(\/[^[:space:]]*\)]$3[\.h[[:space:]].*$/\1/' -e t -e d`]
++ newinclpath=$(${CXXCPP} ${CPPFLAGS} -M conftest.cpp 2>/dev/null | sed [-E -e ':a' -e '/\\$/!b b' -e N -e 's/\\\n/ /' -e 't a' -e ':b' -e 's/^[^:]*:[[:space:]]*(([^[:space:]\]|\\.)*[[:space:]])*(([^[:space:]\]|\\.)*)]$3\.h[([[:space:]].*)?$/\3/' -e 't' -e d])
+ AC_MSG_RESULT([${newinclpath}])
+ if test "x${newinclpath}" != "x"; then
+ eval "$1=\"\$$1\"' -I${newinclpath}'"
+diff --git a/configure.ac b/configure.ac
+index 37fe47e..14e5c34 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -170,6 +170,18 @@ AC_ARG_WITH([utils],
+ [build_bitcoin_utils=$withval],
+ [build_bitcoin_utils=yes])
+
++AC_ARG_ENABLE([util-cli],
++ [AS_HELP_STRING([--enable-util-cli],
++ [build bitcoin-cli])],
++ [build_bitcoin_cli=$enableval],
++ [build_bitcoin_cli=$build_bitcoin_utils])
++
++AC_ARG_ENABLE([util-tx],
++ [AS_HELP_STRING([--enable-util-tx],
++ [build bitcoin-tx])],
++ [build_bitcoin_tx=$enableval],
++ [build_bitcoin_tx=$build_bitcoin_utils])
++
+ AC_ARG_WITH([libs],
+ [AS_HELP_STRING([--with-libs],
+ [build libraries (default=yes)])],
+@@ -488,14 +500,65 @@ if test x$use_reduce_exports = xyes; then
+ [AC_MSG_ERROR([Cannot set default symbol visibility. Use --disable-reduce-exports.])])
+ fi
+
++dnl Check for leveldb, only if explicitly requested
+ LEVELDB_CPPFLAGS=
+ LIBLEVELDB=
+ LIBMEMENV=
+-AM_CONDITIONAL([EMBEDDED_LEVELDB],[true])
++AC_ARG_WITH([system-leveldb],
++ [AS_HELP_STRING([--with-system-leveldb],
++ [Build with system LevelDB (default is no; DANGEROUS; NOT SUPPORTED)])],
++ [system_leveldb=$withval],
++ [system_leveldb=no]
++)
++if test x$system_leveldb != xno; then
++ LEVELDB_CPPFLAGS=
++ AC_CHECK_LIB([leveldb],[main],[
++ LIBLEVELDB=-lleveldb
++ ],[
++ AC_MSG_ERROR([leveldb library not found; using --with-system-leveldb is not supported anyway])
++ ])
++ TEMP_LIBS="$LIBS"
++ LIBS="$LIBS $LIBLEVELDB"
++ AC_CHECK_LIB([memenv],[main],[
++ LIBMEMENV=-lmemenv
++ ],[
++ AC_MSG_ERROR([LevelDB's memenv library not found; using --with-system-leveldb is not supported anyway])
++ ])
++ LIBS="$TEMP_LIBS"
++ AC_CHECK_HEADER([leveldb/filter_policy.h],[],[
++ AC_MSG_ERROR([LevelDB headers not found; using --with-system-leveldb is not supported anyway])
++ ])
++ AC_CHECK_HEADER([leveldb/helpers/memenv.h],[
++ AC_MSG_CHECKING([for memenv.h path])
++ BITCOIN_SUBDIR_TO_INCLUDE([LEVELDB_CPPFLAGS],[leveldb/helpers/],[memenv])
++ ],[
++ AC_CHECK_HEADER([memenv.h],[],[
++ AC_MSG_ERROR([LevelDB headers not found; using --with-system-leveldb is not supported anyway])
++ ])
++ ])
++fi
++AM_CONDITIONAL([EMBEDDED_LEVELDB],[test x$system_leveldb = xno])
+ AC_SUBST(LEVELDB_CPPFLAGS)
+ AC_SUBST(LIBLEVELDB)
+ AC_SUBST(LIBMEMENV)
+
++dnl Check for libsecp256k1, only if explicitly requested
++AC_ARG_WITH([system-libsecp256k1],
++ [AS_HELP_STRING([--with-system-libsecp256k1],
++ [Build with system libsecp256k1 (default is no; DANGEROUS; NOT SUPPORTED)])],
++ [system_libsecp256k1=$withval],
++ [system_libsecp256k1=no]
++)
++if test x$system_libsecp256k1 != xno; then
++ PKG_CHECK_MODULES([libsecp256k1],[libsecp256k1],,[true])
++else
++ libsecp256k1_CFLAGS='-I$(srcdir)/secp256k1/include'
++ libsecp256k1_LIBS='secp256k1/libsecp256k1.la'
++fi
++AM_CONDITIONAL([EMBEDDED_LIBSECP256K1],[test x$system_libsecp256k1 = xno])
++AC_SUBST(libsecp256k1_CFLAGS)
++AC_SUBST(libsecp256k1_LIBS)
++
+ if test x$enable_wallet != xno; then
+ dnl Check for libdb_cxx only if wallet enabled
+ BITCOIN_FIND_BDB48
+@@ -515,7 +578,7 @@ BITCOIN_QT_INIT
+ dnl sets $bitcoin_enable_qt, $bitcoin_enable_qt_test, $bitcoin_enable_qt_dbus
+ BITCOIN_QT_CONFIGURE([$use_pkgconfig], [qt4])
+
+-if test x$build_bitcoin_utils$build_bitcoind$bitcoin_enable_qt$use_tests = xnononono; then
++if test x$build_bitcoin_cli$build_bitcoin_tx$build_bitcoind$bitcoin_enable_qt$use_tests = xnonononono; then
+ use_boost=no
+ else
+ use_boost=yes
+@@ -701,9 +764,13 @@ AC_MSG_CHECKING([whether to build bitcoind])
+ AM_CONDITIONAL([BUILD_BITCOIND], [test x$build_bitcoind = xyes])
+ AC_MSG_RESULT($build_bitcoind)
+
+-AC_MSG_CHECKING([whether to build utils (bitcoin-cli bitcoin-tx)])
+-AM_CONDITIONAL([BUILD_BITCOIN_UTILS], [test x$build_bitcoin_utils = xyes])
+-AC_MSG_RESULT($build_bitcoin_utils)
++AC_MSG_CHECKING([whether to build bitcoin-cli])
++AM_CONDITIONAL([BUILD_BITCOIN_CLI], [test x$build_bitcoin_cli = xyes])
++AC_MSG_RESULT($build_bitcoin_cli)
++
++AC_MSG_CHECKING([whether to build bitcoin-tx])
++AM_CONDITIONAL([BUILD_BITCOIN_TX], [test x$build_bitcoin_tx = xyes])
++AC_MSG_RESULT($build_bitcoin_tx)
+
+ AC_MSG_CHECKING([whether to build libraries])
+ AM_CONDITIONAL([BUILD_BITCOIN_LIBS], [test x$build_bitcoin_libs = xyes])
+@@ -826,7 +893,7 @@ else
+ AC_MSG_RESULT([no])
+ fi
+
+-if test x$build_bitcoin_utils$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_tests = xnonononono; then
++if test x$build_bitcoin_cli$build_bitcoin_tx$build_bitcoin_libs$build_bitcoind$bitcoin_enable_qt$use_tests = xnononononono; then
+ AC_MSG_ERROR([No targets! Please specify at least one of: --with-utils --with-libs --with-daemon --with-gui or --enable-tests])
+ fi
+
+@@ -895,8 +962,10 @@ PKGCONFIG_LIBDIR_TEMP="$PKG_CONFIG_LIBDIR"
+ unset PKG_CONFIG_LIBDIR
+ PKG_CONFIG_LIBDIR="$PKGCONFIG_LIBDIR_TEMP"
+
++if test x$system_libsecp256k1 = xno; then
+ ac_configure_args="${ac_configure_args} --disable-shared --with-pic --with-bignum=no"
+ AC_CONFIG_SUBDIRS([src/secp256k1])
++fi
+
+ AC_OUTPUT
+
+diff --git a/qa/pull-tester/rpc-tests.sh b/qa/pull-tester/rpc-tests.sh
+index 9b31865..5bb187c 100755
+--- a/qa/pull-tester/rpc-tests.sh
++++ b/qa/pull-tester/rpc-tests.sh
+@@ -57,7 +57,7 @@ testScriptsExt=(
+ extArg="-extended"
+ passOn=${@#$extArg}
+
+-if [ "x${ENABLE_BITCOIND}${ENABLE_UTILS}${ENABLE_WALLET}" = "x111" ]; then
++if [ "x${ENABLE_BITCOIND}${ENABLE_CLI}${ENABLE_WALLET}" = "x111" ]; then
+ for (( i = 0; i < ${#testScripts[@]}; i++ ))
+ do
+ if [ -z "$1" ] || [ "${1:0:1}" == "-" ] || [ "$1" == "${testScripts[$i]}" ] || [ "$1.py" == "${testScripts[$i]}" ]
+diff --git a/qa/pull-tester/tests-config.sh.in b/qa/pull-tester/tests-config.sh.in
+index 10f4d33..e0e407d 100755
+--- a/qa/pull-tester/tests-config.sh.in
++++ b/qa/pull-tester/tests-config.sh.in
+@@ -8,7 +8,7 @@ EXEEXT="@EXEEXT@"
+
+ # These will turn into comments if they were disabled when configuring.
+ @ENABLE_WALLET_TRUE@ENABLE_WALLET=1
+-@BUILD_BITCOIN_UTILS_TRUE@ENABLE_UTILS=1
++@BUILD_BITCOIN_CLI_TRUE@ENABLE_CLI=1
+ @BUILD_BITCOIND_TRUE@ENABLE_BITCOIND=1
+
+ REAL_BITCOIND="$BUILDDIR/src/bitcoind${EXEEXT}"
+diff --git a/src/Makefile.am b/src/Makefile.am
+index 1c2f770..4d60ddf 100644
+--- a/src/Makefile.am
++++ b/src/Makefile.am
+@@ -1,4 +1,6 @@
++if EMBEDDED_LIBSECP256K1
+ DIST_SUBDIRS = secp256k1
++endif
+ AM_LDFLAGS = $(PTHREAD_CFLAGS) $(LIBTOOL_LDFLAGS)
+
+
+@@ -20,7 +22,7 @@ endif
+ BITCOIN_CONFIG_INCLUDES=-I$(builddir)/config
+ BITCOIN_INCLUDES=-I$(builddir) -I$(builddir)/obj $(BOOST_CPPFLAGS) $(LEVELDB_CPPFLAGS) $(CRYPTO_CFLAGS) $(SSL_CFLAGS)
+
+-BITCOIN_INCLUDES += -I$(srcdir)/secp256k1/include
++BITCOIN_INCLUDES += $(libsecp256k1_CFLAGS)
+
+ LIBBITCOIN_SERVER=libbitcoin_server.a
+ LIBBITCOIN_WALLET=libbitcoin_wallet.a
+@@ -30,10 +32,16 @@ LIBBITCOIN_UTIL=libbitcoin_util.a
+ LIBBITCOIN_CRYPTO=crypto/libbitcoin_crypto.a
+ LIBBITCOIN_UNIVALUE=univalue/libbitcoin_univalue.a
+ LIBBITCOINQT=qt/libbitcoinqt.a
++if EMBEDDED_LIBSECP256K1
+ LIBSECP256K1=secp256k1/libsecp256k1.la
++else
++LIBSECP256K1=$(libsecp256k1_LIBS)
++endif
+
++if EMBEDDED_LIBSECP256K1
+ $(LIBSECP256K1): $(wildcard secp256k1/src/*) $(wildcard secp256k1/include/*)
+ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C $(@D) $(@F)
++endif
+
+ # Make is not made aware of per-object dependencies to avoid limiting building parallelization
+ # But to build the less dependent modules first, we manually select their order here:
+@@ -63,8 +71,11 @@ if BUILD_BITCOIND
+ bin_PROGRAMS += bitcoind
+ endif
+
+-if BUILD_BITCOIN_UTILS
+- bin_PROGRAMS += bitcoin-cli bitcoin-tx
++if BUILD_BITCOIN_CLI
++ bin_PROGRAMS += bitcoin-cli
++endif
++if BUILD_BITCOIN_TX
++ bin_PROGRAMS += bitcoin-tx
+ endif
+
+ .PHONY: FORCE
+diff --git a/src/Makefile.test.include b/src/Makefile.test.include
+index 0997148..14b4deb 100644
+--- a/src/Makefile.test.include
++++ b/src/Makefile.test.include
+@@ -111,10 +111,12 @@ bitcoin_test_check: $(TEST_BINARY) FORCE
+ bitcoin_test_clean : FORCE
+ rm -f $(CLEAN_BITCOIN_TEST) $(test_test_bitcoin_OBJECTS) $(TEST_BINARY)
+
++if EMBEDDED_LIBSECP256K1
+ check-local:
+ @echo "Running test/bitcoin-util-test.py..."
+ $(AM_V_at)srcdir=$(srcdir) PYTHONPATH=$(builddir)/test $(srcdir)/test/bitcoin-util-test.py
+ $(AM_V_at)$(MAKE) $(AM_MAKEFLAGS) -C secp256k1 check
++endif
+
+ %.json.h: %.json
+ @$(MKDIR_P) $(@D)
diff --git a/net-p2p/bitcoinxtd/files/bitcoinxt.conf b/net-p2p/bitcoinxtd/files/bitcoinxt.conf
new file mode 100644
index 000000000000..c6a55f3d9133
--- /dev/null
+++ b/net-p2p/bitcoinxtd/files/bitcoinxt.conf
@@ -0,0 +1,8 @@
+# http://www.bitcoin.org/smf/index.php?topic=644.0
+#rpcuser=
+#rpcpassword=
+
+
+
+
+
diff --git a/net-p2p/bitcoinxtd/files/bitcoinxt.confd b/net-p2p/bitcoinxtd/files/bitcoinxt.confd
new file mode 100644
index 000000000000..134b934ba854
--- /dev/null
+++ b/net-p2p/bitcoinxtd/files/bitcoinxt.confd
@@ -0,0 +1,12 @@
+# Config file for /etc/init.d/bitcoinxt
+
+# owner of bitcoinxtd process (don't change, must be existing)
+BITCOINXT_USER="bitcoinxt"
+BITCOINXT_CONF="/var/lib/bitcoinxt/.bitcoinxt/bitcoinxt.conf"
+BITCOINXT_DATA="/var/lib/bitcoinxt/.bitcoinxt"
+
+# See http://www.bitcoin.org/smf/index.php?topic=1063
+BITCOINXT_OPTS="-conf=${BITCOINXT_CONF} -datadir=${BITCOINXT_DATA} ${BITCOINXT_OPTS}"
+
+# nice level
+NICELEVEL="19"
diff --git a/net-p2p/bitcoinxtd/files/bitcoinxt.initd b/net-p2p/bitcoinxtd/files/bitcoinxt.initd
new file mode 100644
index 000000000000..bb2cc870c027
--- /dev/null
+++ b/net-p2p/bitcoinxtd/files/bitcoinxt.initd
@@ -0,0 +1,29 @@
+#!/sbin/runscript
+# Copyright 1999-2014 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+vardir="/var/lib/bitcoinxt"
+conffile="${vardir}/.bitcoinxt/bitcoinxt.conf"
+bitcoinxtd_user="${BITCOINXT_USER:-nobody:nobody}"
+
+description="BitcoinXT crypto-currency wallet for automated services"
+pidfile="/run/${SVCNAME}.pid"
+command="/usr/bin/bitcoinxtd"
+command_args="${BITCOINXT_OPTS}"
+command_background="true"
+start_stop_daemon_args="-u ${bitcoinxtd_user} -e HOME=${vardir} -N ${NICELEVEL:-0} -w 2000"
+
+depend() {
+ need net
+}
+
+start_pre() {
+ checkpath -f -o ${bitcoinxtd_user} -m 0400 ${conffile} || return 1
+
+ if ! grep -q '^rpcpassword=' "${conffile}"; then
+ eerror "Please edit `readlink -f ${conffile}`"
+ eerror "There must be at least a line assigning rpcpassword=something-secure"
+ return 1
+ fi
+}
diff --git a/net-p2p/bitcoinxtd/files/bitcoinxtd.logrotate b/net-p2p/bitcoinxtd/files/bitcoinxtd.logrotate
new file mode 100644
index 000000000000..d23bac78b8fa
--- /dev/null
+++ b/net-p2p/bitcoinxtd/files/bitcoinxtd.logrotate
@@ -0,0 +1,8 @@
+/var/lib/bitcoinxt/.bitcoinxt/debug.log {
+ missingok
+ weekly
+ sharedscripts
+ postrotate
+ killall -HUP bitcoinxtd
+ endscript
+}
diff --git a/net-p2p/bitcoinxtd/files/bitcoinxtd.service b/net-p2p/bitcoinxtd/files/bitcoinxtd.service
new file mode 100644
index 000000000000..c3469fff2286
--- /dev/null
+++ b/net-p2p/bitcoinxtd/files/bitcoinxtd.service
@@ -0,0 +1,30 @@
+# It's not recommended to modify this file in-place, because it will be
+# overwritten during package upgrades. If you want to customize, the
+# best way is to create file
+# "/etc/systemd/system/bitcoinxtd.service.d/*.conf"
+# containing your changes
+
+# For example, if you want to change some daemon and/or unit options,
+# create a file named
+# "/etc/systemd/system/bitcoinxtd.service.d/myopts.conf"
+# containing:
+# [Service]
+# Environment="BITCOINXT_OPTS=-debug -logtimestamps"
+# Nice=10
+# This will override the setting appearing below.
+
+# Note that almost all daemon options could be specified in
+# /etc/bitcoinxt/bitcoinxt.conf
+
+[Unit]
+Description=BitcoinXT Daemon
+After=network.target
+
+[Service]
+User=bitcoinxt
+Environment=BITCOINXT_OPTS=
+ExecStart=/usr/bin/bitcoinxtd -daemon=0 $BITCOINXT_OPTS
+ExecReload=/bin/kill -HUP $MAINPID
+
+[Install]
+WantedBy=multi-user.target
diff --git a/net-p2p/bitcoinxtd/metadata.xml b/net-p2p/bitcoinxtd/metadata.xml
new file mode 100644
index 000000000000..a4c7c61e773d
--- /dev/null
+++ b/net-p2p/bitcoinxtd/metadata.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
+<pkgmetadata>
+ <herd>proxy-maintainers</herd>
+ <maintainer>
+ <email>blueness@gentoo.org</email>
+ <name>Anthony G. Basile</name>
+ </maintainer>
+ <maintainer>
+ <email>rono@sentuny.com</email>
+ <name>Ron OHara</name>
+ </maintainer>
+ <use>
+ <flag name='doc'> Include documentatio</flag>
+ <flag name='logrotate'>Use app-admin/logrotate for rotating logs</flag>
+ <flag name='upnp'>Enable Universal Plug and Play</flag>
+ <flag name='wallet'>Enable wallet support</flag>
+ </use>
+</pkgmetadata>