Index: ports/net-p2p/litecoin-daemon/Makefile =================================================================== --- ports.orig/net-p2p/litecoin-daemon/Makefile +++ ports/net-p2p/litecoin-daemon/Makefile @@ -1,6 +1,7 @@ -# $FreeBSD: head/net-p2p/litecoin-daemon/Makefile 439779 2017-04-30 01:12:10Z linimon $ +# $FreeBSD$ MASTERDIR= ${.CURDIR}/../litecoin +PORTREVISION= 1 PKGNAMESUFFIX= -daemon COMMENT= Virtual Peer-to-Peer Currency (Daemon) @@ -15,9 +16,12 @@ CPE_VENDOR= bitcoin CPE_PRODUCT= bitcoind CPE_VERSION= ${PORTVERSION:R} -OPTIONS_DEFINE= DEBUG HARDENING TESTS UPNP WALLET +OPTIONS_DEFINE= DEBUG HARDENING TESTS UPNP WALLET ZMQ OPTIONS_DEFAULT= HARDENING WALLET +USERS= litecoin +GROUPS= litecoin + CONFIGURE_ARGS= --with-daemon \ --without-gui \ --without-libs \ @@ -26,5 +30,12 @@ CONFIGURE_ARGS= --with-daemon \ --disable-reduce-exports PLIST_FILES= bin/litecoind +PLIST_FILES+= man/man1/litecoind.1.gz +PLIST_FILES+= "@sample etc/litecoin.conf.sample" + +USE_RC_SUBR= litecoind + +post-install: + ${INSTALL_DATA} ${WRKSRC}/contrib/debian/examples/bitcoin.conf ${STAGEDIR}${PREFIX}/etc/litecoin.conf.sample .include "${MASTERDIR}/Makefile" Index: ports/net-p2p/litecoin-utils/Makefile =================================================================== --- ports.orig/net-p2p/litecoin-utils/Makefile +++ ports/net-p2p/litecoin-utils/Makefile @@ -1,4 +1,4 @@ -# $FreeBSD: head/net-p2p/litecoin-utils/Makefile 439779 2017-04-30 01:12:10Z linimon $ +# $FreeBSD$ MASTERDIR= ${.CURDIR}/../litecoin PKGNAMESUFFIX= -utils @@ -22,5 +22,6 @@ CONFIGURE_ARGS= --without-daemon \ --disable-reduce-exports PLIST_FILES= bin/litecoin-cli bin/litecoin-tx +PLIST_FILES+= man/man1/litecoin-cli.1.gz man/man1/litecoin-tx.1.gz .include "${MASTERDIR}/Makefile" Index: ports/net-p2p/litecoin/Makefile =================================================================== --- ports.orig/net-p2p/litecoin/Makefile +++ ports/net-p2p/litecoin/Makefile @@ -1,12 +1,10 @@ # Created by: Steve Wills -# $FreeBSD: head/net-p2p/litecoin/Makefile 448041 2017-08-16 15:44:48Z sunpoet $ +# $FreeBSD$ PORTNAME= litecoin -PORTVERSION= 0.10.4.0 +PORTVERSION= 0.14.2 DISTVERSIONPREFIX= v -PORTREVISION= 8 CATEGORIES= net-p2p finance -MASTER_SITES= LOCAL/swills MAINTAINER= swills@FreeBSD.org COMMENT?= Virtual Peer-to-Peer Currency Client (QT) @@ -14,12 +12,13 @@ COMMENT?= Virtual Peer-to-Peer Currency LICENSE= MIT LICENSE_FILE= ${WRKSRC}/COPYING -LIB_DEPENDS= libboost_date_time.so:devel/boost-libs - NOT_FOR_ARCHS= powerpc powerpc64 sparc64 NOT_FOR_ARCHS_REASON= fails to configure: "Big Endian not supported" -USES+= autoreconf gmake libtool pkgconfig shebangfix ssl +LIB_DEPENDS= libboost_date_time.so:devel/boost-libs \ + libevent.so:devel/libevent + +USES+= autoreconf compiler:c++11-lib gmake libtool pkgconfig shebangfix ssl SHEBANG_FILES= src/test/*.py USE_GITHUB= yes GNU_CONFIGURE= yes @@ -27,40 +26,41 @@ GNU_CONFIGURE= yes SLAVE_PORT?= no .if defined(SLAVE_PORT) && ${SLAVE_PORT} == "no" -USES+= cpe desktop-file-utils -USE_QT4= corelib gui moc_build linguisttools_build network qmake_build \ - rcc_build uic_build -CPE_VENDOR= bitcoin -CPE_PRODUCT= bitcoin-qt -CPE_VERSION= ${PORTVERSION:R} +USES+= desktop-file-utils +USE_QT5= core gui network widgets \ + buildtools_build linguisttools_build qmake_build BUILD_DEPENDS+= protoc:devel/protobuf LIB_DEPENDS+= libprotobuf.so:devel/protobuf -DBUS_USE= QT4=dbus - -TESTS_USE= QT4=testlib -TESTS_PLIST_FILES= bin/test_litecoin-qt +TESTS_USE= QT5=testlib +TESTS_PLIST_FILES= bin/test_litecoin-qt \ + bin/test_litecoin .endif -OPTIONS_DEFINE?= DBUS DEBUG HARDENING QRCODES TESTS UPNP WALLET -OPTIONS_DEFAULT?= HARDENING QRCODES WALLET +OPTIONS_DEFINE?= DBUS DEBUG HARDENING QRCODES TESTS UPNP WALLET ZMQ +OPTIONS_DEFAULT?= DBUS HARDENING QRCODES UPNP WALLET OPTIONS_SUB= yes HARDENING_DESC= Attempt to harden binaries (PIE for ASLR, NX Stack) QRCODES_DESC= Display QR Codes TESTS_DESC= Build test binary and unit tests WALLET_DESC= Wallet Management Support +ZMQ_DESC= Block and transaction broadcasting with ZeroMQ -DBUS_CONFIGURE_WITH= qtdbus +DBUS_CONFIGURE_WITH= dbus +DBUS_USE= QT5=dbus DEBUG_CONFIGURE_ENABLE= debug DEBUG_INSTALL_TARGET_OFF= install-strip HARDENING_CONFIGURE_ENABLE= hardening -TESTS_CONFIGURE_ENABLE= tests -TESTS_PLIST_FILES+= bin/test_litecoin +TESTS_CONFIGURE_ENABLE= tests bench +.if defined(SLAVE_PORT) && ${SLAVE_PORT} == "yes" +TESTS_PLIST_FILES= bin/test_litecoin +.endif +TESTS_PLIST_FILES+= bin/bench_litecoin UPNP_CONFIGURE_WITH= miniupnpc UPNP_LIB_DEPENDS= libminiupnpc.so:net/miniupnpc @@ -75,33 +75,27 @@ WALLET_CXXFLAGS= -I${BDB_INCLUDE_DIR} WALLET_LIBS= -L${BDB_LIB_DIR} WALLET_USES= bdb:48 +ZMQ_CONFIGURE_ENABLE= zmq +ZMQ_BUILD_DEPENDS= libzmq4>0:net/libzmq4 +ZMQ_RUN_DEPENDS= libzmq4>0:net/libzmq4 + GH_ACCOUNT= litecoin-project CONFIGURE_ARGS?= --without-libs \ - --disable-reduce-exports \ - --with-gui \ + --with-gui=qt5 \ --without-daemon \ --without-utils CONFIGURE_ENV= CRYPTO_CFLAGS="-I${OPENSSLINC}" CRYPTO_LIBS="-L${OPENSSLLIB} -lcrypto" \ - SSL_CFLAGS="-I${OPENSSLINC}" SSL_LIBS="-L${OPENSSLLIB} -lssl" + SSL_CFLAGS="-I${OPENSSLINC}" SSL_LIBS="-L${OPENSSLLIB} -lssl" \ + OBJCXX="${CXX}" OBJCXXFLAGS="${CXXFLAGS}" V=1 +MAKE_ENV+= V=1 -CONFIGURE_ENV+= OBJC="${CC}" OBJCFLAGS="${CFLAGS}" OBJCXX="${CXX}" OBJCXXFLAGS="${CXXFLAGS}" - -CPPFLAGS+= -I${OPENSSLINC} -CFLAGS+= -I${OPENSSLINC} -LDFLAGS+= -L${OPENSSLLIB} - -PLIST_FILES?= bin/litecoin-qt share/applications/litecoin-qt.desktop \ - share/pixmaps/litecoin128.png +PLIST_FILES?= bin/litecoin-qt man/man1/litecoin-qt.1.gz \ + share/applications/litecoin-qt.desktop share/pixmaps/litecoin128.png .include -.if ${SSL_DEFAULT:Mlibressl*} -# The configure script will output this message, so save the user the trouble -IGNORE= detected LibreSSL: This is NOT supported, and may break consensus compatibility! -.endif - .if defined(SLAVE_PORT) && ${SLAVE_PORT} == "no" post-patch: Index: ports/net-p2p/litecoin/distinfo =================================================================== --- ports.orig/net-p2p/litecoin/distinfo +++ ports/net-p2p/litecoin/distinfo @@ -1,2 +1,3 @@ -SHA256 (litecoin-project-litecoin-v0.10.4.0_GH0.tar.gz) = a9adb6d2ae555afdaa2a5febb81341ac506930cf04ab95b9dc3ab99a4de0405e -SIZE (litecoin-project-litecoin-v0.10.4.0_GH0.tar.gz) = 4730189 +TIMESTAMP = 1503300985 +SHA256 (litecoin-project-litecoin-v0.14.2_GH0.tar.gz) = 953fd6cee2da3ed63779b2dbce8a775e76d7a926be3de5b906d40f6641a2b4d5 +SIZE (litecoin-project-litecoin-v0.14.2_GH0.tar.gz) = 6205762 Index: ports/net-p2p/litecoin/files/litecoind.in =================================================================== --- /dev/null +++ ports/net-p2p/litecoin/files/litecoind.in @@ -0,0 +1,172 @@ +#!/bin/sh +# $FreeBSD$ + +# PROVIDE: litecoind +# REQUIRE: LOGIN cleanvar +# KEYWORD: shutdown + +# +# Add the following lines to /etc/rc.conf to enable : +# litecoind_enable (bool): Set to "NO" by default. +# Set it to "YES" to enable litecoind +# litecoind_user (str) Set to "litecoin" by default. +# litecoind_group (str) Set to "litecoin" by default. +# litecoind_conf (str) Set to "%%PREFIX%%/etc/litecoind.conf" by default. +# litecoind_data (str) Set to "/var/lib/litecoin" by default. +# litecoindlimits_enable (bool) Set to "NO" by default. +# Set it to "YES" to enable litecoindlimits +# litecoindlimits_args Set to "-e -U ${litecoind_user}" by default + + +. /etc/rc.subr + +name="litecoind" +rcvar=litecoind_enable + +start_precmd="litecoind_precmd" +start_cmd="litecoind_start" +restart_precmd="litecoind_checkconfig" +reload_precmd="litecoind_checkconfig" +configtest_cmd="litecoind_checkconfig" +status_cmd="litecoind_status" +stop_cmd="litecoind_stop" +stop_postcmd="litecoind_wait" +command="%%PREFIX%%/bin/litecoind" +daemon_command="/usr/sbin/daemon" +#pidfile="/var/run/${name}.pid" +extra_commands="configtest" + + +: ${litecoind_enable:="NO"} +: ${litecoindlimits_enable:="NO"} + +load_rc_config ${name} + +: ${litecoind_user:="litecoin"} +: ${litecoind_group:="litecoin"} +: ${litecoind_data_dir:="/var/db/litecoin"} +: ${litecoind_config_file:="%%PREFIX%%/etc/litecoin.conf"} +: ${litecoindlimits_args:="-e -U ${litecoind_user}"} + +# set up dependant variables +procname="${command}" +pidfile="${litecoind_data_dir}/litecoind.pid" +required_files="${litecoind_config_file}" + + +litecoind_checkconfig() +{ + echo "Performing sanity check on litecoind configuration:" + if [ ! -d "${litecoind_data_dir}" ] + then + echo "Missing data directory: ${litecoind_data_dir}" + exit 1 + fi + chown -R "${litecoind_user}:${litecoind_group}" "${litecoind_data_dir}" + + if [ ! -f "${litecoind_config_file}" ] + then + echo "Missing configuration file: ${litecoind_config_file}" + exit 1 + fi + if [ ! -x "${command}" ] + then + echo "Missing executable: ${command}" + exit 1 + fi + return 0 +} + +litecoind_cleanup() +{ + rm -f "${pidfile}" +} + +litecoind_precmd() +{ + litecoind_checkconfig + + pid=$(check_pidfile "${pidfile}" "${procname}") + if [ -z "${pid}" ] + then + echo "Litecoind is not running" + rm -f "${pidfile}" + fi + + if checkyesno litecoindlimits_enable + then + eval $(/usr/bin/limits ${litecoindlimits_args}) 2>/dev/null + else + return 0 + fi +} + +litecoind_status() +{ + local pid + pid=$(check_pidfile "${pidfile}" "${procname}") + if [ -z "${pid}" ] + then + echo "Litecoind is not running" + return 1 + else + echo "Litecoind running, pid: ${pid}" + fi +} + +litecoind_start() +{ + echo "Starting litecoind:" + cd "${litecoind_data_dir}" || return 1 + ${daemon_command} -u "${litecoind_user}" -p "${pidfile}" \ + ${command} \ + -conf="${litecoind_config_file}" \ + -datadir="${litecoind_data_dir}" 2> /tmp/litecoind.stderr > /tmp/litecoind.stdout +} + +litecoind_stop() +{ + echo "Stopping litecoind:" + pid=$(check_pidfile "${pidfile}" "${procname}") + if [ -z "${pid}" ] + then + echo "Litecoind is not running" + return 1 + else + kill ${pid} + fi +} + +litecoind_wait() +{ + local n=60 + echo "Waiting for litecoind shutdown:" + while : + do + printf '.' + pid=$(check_pidfile "${pidfile}" "${procname}") + if [ -z "${pid}" ] + then + printf '\n' + break + fi + sleep 1 + n=$((${n} - 1)) + if [ ${n} -eq 0 -a -f "${pidfile}" ] + then + printf "\nForce shutdown" + kill -9 $(cat "${pidfile}") + for n in 1 2 3 + do + printf '.' + sleep 1 + done + printf '\n' + break + fi + done + rm -f "${pidfile}" + echo "Shutdown complete" +} + +run_rc_command "$1" Index: ports/GIDs =================================================================== --- ports.orig/GIDs +++ ports/GIDs @@ -719,7 +719,7 @@ cockroach:*:771: # free: 775 # free: 776 openxpki:*:777: -# free: 778 +litecoin:*:778: bitcoin:*:779: zetacoin:*:780: # free: 781 Index: ports/UIDs =================================================================== --- ports.orig/UIDs +++ ports/UIDs @@ -725,7 +725,7 @@ cockroach:*:771:771::0:0:CockroachDB Dae # free: 775 # free: 776 openxpki:*:777:777::0:0:OpenXPKI Owner:/nonexistent:/usr/sbin/nologin -# free: 778 +litecoin:*:778:778::0:0:litecoin Daemon:/var/db/litecoin:/usr/sbin/nologin bitcoin:*:779:779::0:0:bitcoin Daemon:/var/db/bitcoin:/usr/sbin/nologin zetacoin:*:780:780::0:0:ZetaCoin Daemon:/nonexistent:/usr/sbin/nologin # free: 781