Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 3 Sep 2018 18:39:51 +0000 (UTC)
From:      Rene Ladan <rene@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r478891 - in head/net-p2p: namecoin namecoin-daemon namecoin/files
Message-ID:  <201809031839.w83Idpgq007702@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: rene
Date: Mon Sep  3 18:39:51 2018
New Revision: 478891
URL: https://svnweb.freebsd.org/changeset/ports/478891

Log:
  net-p2p/namecoin[-daemon]: unbreak, unexpire, update to 0.13.2
  
  This is part one of the PR.
  
  PR:		218961
  Submitted by:	maintainer

Added:
  head/net-p2p/namecoin/files/namecoind.in   (contents, props changed)
  head/net-p2p/namecoin/files/patch-src_miner.h   (contents, props changed)
  head/net-p2p/namecoin/files/patch-src_txmempool.h   (contents, props changed)
Deleted:
  head/net-p2p/namecoin/files/makefile.unix
  head/net-p2p/namecoin/files/patch-src__main.h
  head/net-p2p/namecoin/files/patch-src__qt__configurenamedialog.h
  head/net-p2p/namecoin/files/patch-src__qt__managenamespage.h
  head/net-p2p/namecoin/files/patch-src__strlcpy.h
Modified:
  head/net-p2p/namecoin-daemon/Makefile
  head/net-p2p/namecoin/Makefile
  head/net-p2p/namecoin/distinfo
  head/net-p2p/namecoin/pkg-descr

Modified: head/net-p2p/namecoin-daemon/Makefile
==============================================================================
--- head/net-p2p/namecoin-daemon/Makefile	Mon Sep  3 18:36:32 2018	(r478890)
+++ head/net-p2p/namecoin-daemon/Makefile	Mon Sep  3 18:39:51 2018	(r478891)
@@ -1,13 +1,29 @@
 # $FreeBSD$
 
-PKGNAMESUFFIX=	-daemon
-
 MASTERDIR=	${.CURDIR}/../namecoin
 
-DESCR=		${MASTERDIR}/pkg-descr
+PKGNAMESUFFIX=	-daemon
 
+COMMENT=	Decentralized, open DNS and more (Daemon)
 SLAVE_PORT=	yes
 
-OPTIONS_EXCLUDE=	X11 DBUS QRCODES
+ONLY_FOR_ARCHS=	amd64 i386 ia64
+ONLY_FOR_ARCHS_REASON=	does not support big-endian architectures
+
+CONFLICTS_INSTALL=	namecoin-stable-[0-9]* namecoin-stable-daemon-[0-9]* namecoin-stable-utils-[0-9]* \
+		namecoin-beta-[0-9]* namecoin-beta-daemon-[0-9]* namecoin-beta-utils-[0-9]*
+
+OPTIONS_DEFINE=		DEBUG HARDENING TESTS UPNP WALLET ZMQ
+OPTIONS_DEFAULT=	HARDENING UPNP WALLET
+
+CONFIGURE_ARGS=	--with-daemon \
+		--without-gui \
+		--without-libs \
+		--without-qrencode \
+		--without-utils
+
+PLIST_FILES=	bin/namecoind
+
+USE_RC_SUBR=	namecoind
 
 .include "${MASTERDIR}/Makefile"

Modified: head/net-p2p/namecoin/Makefile
==============================================================================
--- head/net-p2p/namecoin/Makefile	Mon Sep  3 18:36:32 2018	(r478890)
+++ head/net-p2p/namecoin/Makefile	Mon Sep  3 18:39:51 2018	(r478891)
@@ -2,100 +2,118 @@
 # $FreeBSD$
 
 PORTNAME=	namecoin
-PORTVERSION=	0.3.80
-DISTVERSIONPREFIX=	nc
-PORTREVISION=	20
+PORTVERSION=	0.13.2
 PORTEPOCH=	1
 CATEGORIES=	net-p2p dns
 
 MAINTAINER=	milios@ccsys.com
-COMMENT=	Decentralized, open DNS and general purpose key/value store
+COMMENT?=	Decentralized, open DNS and general purpose key/value store
 
 LICENSE=	MIT
-LICENSE_FILE=	${WRKSRC}/COPYING
 
-LIB_DEPENDS=	libboost_date_time.so:devel/boost-libs
+LIB_DEPENDS=	libboost_date_time.so:devel/boost-libs \
+		libevent.so:devel/libevent
 
-BROKEN=		fails to build with boost 1.66, see bug 224186
-DEPRECATED=	Broken for more than 5 months
-EXPIRATION_DATE=	2018-08-20
-BROKEN_powerpc64=	fails to build: util.cpp: undefined reference to boost::program_options::to_internal
+CONFLICTS_INSTALL=	namecoin-beta-[0-9]* namecoin-beta-daemon-[0-9]* namecoin-beta-utils-[0-9]* \
+		namecoin-stable-[0-9]* namecoin-stable-daemon-[0-9]* namecoin-stable-utils-[0-9]*
 
-OPTIONS_DEFINE=	X11 UPNP QRCODES DBUS
-OPTIONS_DEFAULT=	X11 QRCODES
+USES=		autoreconf compiler:c++11-lib gmake libtool pkgconfig shebangfix ssl
+SHEBANG_FILES=	src/test/*.py
+GNU_CONFIGURE=	yes
 
-QRCODES_DESC=	QR code display support
-
 USE_GITHUB=	yes
+GH_ACCOUNT=	indolering:graphics
+GH_PROJECT=	namecoin-core namecoin-graphics:graphics
+GH_TAGNAME=	ab08f76 a13a73b:graphics
 
-USES=		bdb:48 gmake compiler:c++11-lib qt:4 ssl
-MAKE_JOBS_UNSAFE=yes
+SLAVE_PORT?=	no
 
-CXXFLAGS+=	-I${LOCALBASE}/include -I${BDB_INCLUDE_DIR}
-CXXFLAGS+=	-L${LOCALBASE}/lib -L${BDB_LIB_DIR}
-CXXFLAGS+=	-DCRYPTOPP_DISABLE_ASM
+.if defined(SLAVE_PORT) && ${SLAVE_PORT} == "no"
+USES+=		desktop-file-utils qt:4
+USE_QT=		corelib gui moc_build linguisttools_build network qmake_build \
+		rcc_build uic_build
 
-.include <bsd.port.options.mk>
-
-.if ${PORT_OPTIONS:MX11}
-USE_QT=		corelib network gui qmake_build linguist_build uic_build moc_build rcc_build
-
-BINARY=		namecoin-qt
+BUILD_DEPENDS+=	protoc:devel/protobuf \
+		svg2png:graphics/svg2png
 LIB_DEPENDS+=	libprotobuf.so:devel/protobuf
-.else
-BINARY=		namecoind
-MAKE_ARGS+=	-C ${WRKSRC}/src
-USE_GNOME=	glib20
-.endif
 
-.if ${PORT_OPTIONS:MQRCODES}
-LIB_DEPENDS+=	libqrencode.so:graphics/libqrencode
-QMAKE_USE_QRCODE=1
-.else
-QMAKE_USE_QRCODE=0
+TESTS_USES=		qt:4
+TESTS_USE=		QT=testlib
+TESTS_PLIST_FILES=	bin/test_namecoin-qt \
+			bin/test_namecoin
 .endif
 
-.if ${PORT_OPTIONS:MDBUS}
-USE_QT+=	dbus
-QMAKE_USE_DBUS=	1
-.else
-QMAKE_USE_DBUS=	0
-.endif
+OPTIONS_DEFINE?=	DBUS DEBUG HARDENING QRCODES TESTS UPNP WALLET ZMQ
+OPTIONS_DEFAULT?=	DBUS HARDENING QRCODES UPNP WALLET
+OPTIONS_SUB=		yes
 
-PLIST_FILES+=	bin/${BINARY}
+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
 
-.if ${PORT_OPTIONS:MUPNP}
-LIB_DEPENDS+=	libminiupnpc.so:net/miniupnpc
-CXXFLAGS+=	-I${LOCALBASE}/include/miniupnpc
-QMAKE_USE_UPNP=	1
-.else
-QMAKE_USE_UPNP=	-
-.endif
+DBUS_CONFIGURE_WITH=	qtdbus
+DBUS_USES=		qt:4
+DBUS_USE=		QT=dbus
 
-.include <bsd.port.pre.mk>
+DEBUG_CONFIGURE_ENABLE=		debug
+DEBUG_INSTALL_TARGET_OFF=	install-strip
 
-post-patch:
-.if !${PORT_OPTIONS:MX11}
-	@cd ${WRKSRC}/src && ${CP} ${FILESDIR}/makefile.unix Makefile
-	@${REINPLACE_CMD} \
-		-e 's|^USE_UPNP.*$$|USE_UPNP=${QMAKE_USE_UPNP}|' \
-		${WRKSRC}/src/Makefile
-.endif
+HARDENING_CONFIGURE_ENABLE=	hardening
 
-do-configure:
-.if ${PORT_OPTIONS:MX11}
-	cd ${WRKSRC} && ${SETENV} ${QMAKE_ENV} \
-		${QMAKE} ${QMAKE_ARGS} USE_UPNP=${QMAKE_USE_UPNP} USE_QRCODE=${QMAKE_USE_QRCODE} \
-		QMAKE_LRELEASE=${LRELEASE} INCLUDEPATH+=${BDB_INCLUDE_DIR} \
-		QMAKE_LIBDIR+=${BDB_LIB_DIR} ${BINARY}.pro
+TESTS_CONFIGURE_ENABLE=	tests bench
+.if defined(SLAVE_PORT) && ${SLAVE_PORT} == "yes"
+TESTS_PLIST_FILES=	bin/test_namecoin
 .endif
+TESTS_PLIST_FILES+=	bin/bench_namecoin
 
-do-install:
-	@${MKDIR} ${STAGEDIR}${PREFIX}/bin
-.if ${PORT_OPTIONS:MX11}
-	${INSTALL_PROGRAM} ${WRKSRC}/${BINARY} ${STAGEDIR}${PREFIX}/bin/
-.else
-	${INSTALL_PROGRAM} ${WRKSRC}/src/${BINARY} ${STAGEDIR}${PREFIX}/bin/
+UPNP_CONFIGURE_WITH=	miniupnpc
+UPNP_LIB_DEPENDS=	libminiupnpc.so:net/miniupnpc
+UPNP_CPPFLAGS=		-I${LOCALBASE}/include
+UPNP_LIBS=		-L${LOCALBASE}/lib
+
+QRCODES_CONFIGURE_WITH=	qrencode
+QRCODES_LIB_DEPENDS=	libqrencode.so:graphics/libqrencode
+
+WALLET_CONFIGURE_ENABLE=	wallet
+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
+
+CONFIGURE_ARGS?=	--without-libs \
+			--with-gui=qt4 \
+			--without-daemon \
+			--without-utils
+
+CONFIGURE_ENV=	CRYPTO_CFLAGS="-I${OPENSSLINC}" CRYPTO_LIBS="-L${OPENSSLLIB} -lcrypto" \
+		SSL_CFLAGS="-I${OPENSSLINC}" SSL_LIBS="-L${OPENSSLLIB} -lssl" \
+		OBJCXX="${CXX}" OBJCXXFLAGS="${CXXFLAGS}"
+MAKE_ENV+=	V=1
+
+PLIST_FILES?=	bin/namecoin-qt share/applications/namecoin-qt.desktop \
+		share/pixmaps/namecoin128.png
+
+.if defined(SLAVE_PORT) && ${SLAVE_PORT} == "no"
+
+post-install:
+	${REINPLACE_CMD} -e 's/bitcoin/namecoin/g;s/Bitcoin/Namecoin/g' \
+		${WRKSRC}/contrib/debian/bitcoin-qt.desktop
+	${INSTALL} ${WRKSRC}/contrib/debian/bitcoin-qt.desktop \
+		${STAGEDIR}${PREFIX}/share/applications/namecoin-qt.desktop
+	${LOCALBASE}/bin/svg2png -w128 -h128 ${WRKSRC_graphics}/svg/namecoin-logo.svg \
+		${STAGEDIR}${PREFIX}/share/pixmaps/namecoin128.png
+
 .endif
 
-.include <bsd.port.post.mk>
+regression-test: build
+	# To use this sucessfully, remove --without-daemon and --without-utils
+	# from CONFIGURE_ARGS above.
+
+	@cd ${WRKSRC} && ${GMAKE} check
+
+.include <bsd.port.mk>

Modified: head/net-p2p/namecoin/distinfo
==============================================================================
--- head/net-p2p/namecoin/distinfo	Mon Sep  3 18:36:32 2018	(r478890)
+++ head/net-p2p/namecoin/distinfo	Mon Sep  3 18:39:51 2018	(r478891)
@@ -1,2 +1,5 @@
-SHA256 (namecoin-namecoin-nc0.3.80_GH0.tar.gz) = 3f5e5af95cea46111d3cf1663f0e84d5fda653917745e0607a3ca4773baea59c
-SIZE (namecoin-namecoin-nc0.3.80_GH0.tar.gz) = 1471777
+TIMESTAMP = 1500647782
+SHA256 (namecoin-namecoin-core-0.13.2-ab08f76_GH0.tar.gz) = 27ee9f0fca2f9d98bfc298848ad2b899a895c0c7c8e63caca2ee317c927cd178
+SIZE (namecoin-namecoin-core-0.13.2-ab08f76_GH0.tar.gz) = 5917889
+SHA256 (indolering-namecoin-graphics-a13a73b_GH0.tar.gz) = 82f308a3527d96a202099feb96a754d036bbdaa875156ad002ba2747d75000c7
+SIZE (indolering-namecoin-graphics-a13a73b_GH0.tar.gz) = 7364908

Added: head/net-p2p/namecoin/files/namecoind.in
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-p2p/namecoin/files/namecoind.in	Mon Sep  3 18:39:51 2018	(r478891)
@@ -0,0 +1,173 @@
+#!/bin/sh
+# $FreeBSD$
+
+# PROVIDE: namecoind
+# REQUIRE: LOGIN cleanvar
+# KEYWORD: shutdown
+
+#
+# Add the following lines to /etc/rc.conf to enable :
+# namecoind_enable (bool):	Set to "NO" by default.
+#				Set it to "YES" to enable namecoind
+# namecoind_user (str)		Set to "namecoin" by default.
+# namecoind_group (str)		Set to "namecoin" by default.
+# namecoind_conf (str)		Set to "%%PREFIX%%/etc/namecoind.conf" by default.
+# namecoind_data (str)		Set to "/var/lib/namecoind" by default.
+# namecoindlimits_enable (bool)	Set to "NO" by default.
+#				Set it to "YES" to enable namecoindlimits
+# namecoindlimits_args		Set to "-e -U ${namecoind_user}" by default
+
+
+. /etc/rc.subr
+
+name="namecoind"
+rcvar=namecoind_enable
+
+start_precmd="namecoind_precmd"
+start_cmd="namecoind_start"
+restart_precmd="namecoind_checkconfig"
+reload_precmd="namecoind_checkconfig"
+configtest_cmd="namecoind_checkconfig"
+status_cmd="namecoind_status"
+stop_cmd="namecoind_stop"
+stop_postcmd="namecoind_wait"
+command="%%PREFIX%%/bin/namecoind"
+cli_command="%%PREFIX%%/bin/namecoin-cli"
+daemon_command="/usr/sbin/daemon"
+#pidfile="/var/run/${name}.pid"
+extra_commands="configtest"
+
+
+: ${namecoind_enable:="NO"}
+: ${namecoindlimits_enable:="NO"}
+
+load_rc_config ${name}
+
+: ${namecoind_user:="namecoin"}
+: ${namecoind_group:="namecoin"}
+: ${namecoind_data_dir:="/var/db/namecoind"}
+: ${namecoind_config_file:="%%PREFIX%%/etc/namecoin.conf"}
+: ${namecoindlimits_args:="-e -U ${namecoind_user}"}
+
+# set up dependant variables
+procname="${command}"
+pidfile="${namecoind_data_dir}/namecoind.pid"
+required_files="${namecoind_config_file}"
+
+
+namecoind_checkconfig()
+{
+  echo "Performing sanity check on namecoind configuration:"
+  if [ ! -d "${namecoind_data_dir}" ]
+  then
+    echo "Missing data directory: ${namecoind_data_dir}"
+    exit 1
+  fi
+  chown -R "${namecoind_user}:${namecoind_group}" "${namecoind_data_dir}"
+
+  if [ ! -f "${namecoind_config_file}" ]
+  then
+    echo "Missing configuration file: ${namecoind_config_file}"
+    exit 1
+  fi
+  if [ ! -x "${command}" ]
+  then
+    echo "Missing executable: ${command}"
+    exit 1
+  fi
+  return 0
+}
+
+namecoind_cleanup()
+{
+  rm -f "${pidfile}"
+}
+
+namecoind_precmd()
+{
+  namecoind_checkconfig
+
+  pid=$(check_pidfile "${pidfile}" "${procname}")
+  if [ -z "${pid}" ]
+  then
+    echo "Namecoind is not running"
+    rm -f "${pidfile}"
+  fi
+
+  if checkyesno namecoindlimits_enable
+  then
+    eval $(/usr/bin/limits ${namecoindlimits_args}) 2>/dev/null
+  else
+    return 0
+  fi
+}
+
+namecoind_status()
+{
+  local pid
+  pid=$(check_pidfile "${pidfile}" "${procname}")
+  if [ -z "${pid}" ]
+  then
+    echo "Namecoind is not running"
+    return 1
+  else
+    echo "Namecoind running, pid: ${pid}"
+  fi
+}
+
+namecoind_start()
+{
+  echo "Starting namecoind:"
+  cd "${namecoind_data_dir}" || return 1
+  ${daemon_command} -u "${namecoind_user}" -p "${pidfile}" \
+    ${command} \
+    -conf="${namecoind_config_file}" \
+    -datadir="${namecoind_data_dir}" 2> /tmp/namecoind.stderr > /tmp/namecoind.stdout
+}
+
+namecoind_stop()
+{
+  echo "Stopping namecoind:"
+  pid=$(check_pidfile "${pidfile}" "${procname}")
+  if [ -z "${pid}" ]
+  then
+    echo "Namecoind is not running"
+    return 1
+  else
+    ${cli_command} -conf="${namecoind_config_file}" -datadir="${namecoind_data_dir}" stop
+  fi
+}
+
+namecoind_wait()
+{
+  local n=60
+  echo "Waiting for namecoind 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"

Added: head/net-p2p/namecoin/files/patch-src_miner.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-p2p/namecoin/files/patch-src_miner.h	Mon Sep  3 18:39:51 2018	(r478891)
@@ -0,0 +1,20 @@
+--- src/miner.h.orig	2017-02-05 10:17:27 UTC
++++ src/miner.h
+@@ -73,7 +73,7 @@ struct modifiedentry_iter {
+ // except operating on CTxMemPoolModifiedEntry.
+ // TODO: refactor to avoid duplication of this logic.
+ struct CompareModifiedEntry {
+-    bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b)
++    bool operator()(const CTxMemPoolModifiedEntry &a, const CTxMemPoolModifiedEntry &b) const
+     {
+         double f1 = (double)a.nModFeesWithAncestors * b.nSizeWithAncestors;
+         double f2 = (double)b.nModFeesWithAncestors * a.nSizeWithAncestors;
+@@ -88,7 +88,7 @@ struct CompareModifiedEntry {
+ // This is sufficient to sort an ancestor package in an order that is valid
+ // to appear in a block.
+ struct CompareTxIterByAncestorCount {
+-    bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b)
++    bool operator()(const CTxMemPool::txiter &a, const CTxMemPool::txiter &b) const
+     {
+         if (a->GetCountWithAncestors() != b->GetCountWithAncestors())
+             return a->GetCountWithAncestors() < b->GetCountWithAncestors();

Added: head/net-p2p/namecoin/files/patch-src_txmempool.h
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/net-p2p/namecoin/files/patch-src_txmempool.h	Mon Sep  3 18:39:51 2018	(r478891)
@@ -0,0 +1,47 @@
+--- src/txmempool.h.orig	2017-02-05 10:17:27 UTC
++++ src/txmempool.h
+@@ -255,7 +255,7 @@ struct mempoolentry_txid
+ class CompareTxMemPoolEntryByDescendantScore
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         bool fUseADescendants = UseDescendantScore(a);
+         bool fUseBDescendants = UseDescendantScore(b);
+@@ -277,7 +277,7 @@ public:
+     }
+ 
+     // Calculate which score to use for an entry (avoiding division).
+-    bool UseDescendantScore(const CTxMemPoolEntry &a)
++    bool UseDescendantScore(const CTxMemPoolEntry &a) const
+     {
+         double f1 = (double)a.GetModifiedFee() * a.GetSizeWithDescendants();
+         double f2 = (double)a.GetModFeesWithDescendants() * a.GetTxSize();
+@@ -292,7 +292,7 @@ public:
+ class CompareTxMemPoolEntryByScore
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         double f1 = (double)a.GetModifiedFee() * b.GetTxSize();
+         double f2 = (double)b.GetModifiedFee() * a.GetTxSize();
+@@ -306,7 +306,7 @@ public:
+ class CompareTxMemPoolEntryByEntryTime
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         return a.GetTime() < b.GetTime();
+     }
+@@ -315,7 +315,7 @@ public:
+ class CompareTxMemPoolEntryByAncestorFee
+ {
+ public:
+-    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b)
++    bool operator()(const CTxMemPoolEntry& a, const CTxMemPoolEntry& b) const
+     {
+         double aFees = a.GetModFeesWithAncestors();
+         double aSize = a.GetSizeWithAncestors();

Modified: head/net-p2p/namecoin/pkg-descr
==============================================================================
--- head/net-p2p/namecoin/pkg-descr	Mon Sep  3 18:36:32 2018	(r478890)
+++ head/net-p2p/namecoin/pkg-descr	Mon Sep  3 18:39:51 2018	(r478891)
@@ -12,4 +12,4 @@ It allows you to:
 To register a name, you must own some namecoins (NMC, the internal
 cryptocurrency used by the software).
 
-WWW: http://namecoin.info/
+WWW: https://namecoin.org/



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201809031839.w83Idpgq007702>