X-Original-To: alpine-devel@lists.alpinelinux.org Delivered-To: alpine-devel@mail.alpinelinux.org Received: from apollo.thewebhostserver.com (apollomail.thewebhostserver.com [46.23.65.248]) (using TLSv1 with cipher ECDHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by mail.alpinelinux.org (Postfix) with ESMTPS id 70DDBDC0AE0 for ; Thu, 8 May 2014 10:05:51 +0000 (UTC) Received: from [198.46.142.32] (port=63520 helo=uclibc.localdomain) by apollo.thewebhostserver.com with esmtpsa (UNKNOWN:AES128-SHA256:128) (Exim 4.82) (envelope-from ) id 1WiLCH-000woy-Lh; Thu, 08 May 2014 11:05:11 +0100 From: Stuart Cardall To: alpine-devel@lists.alpinelinux.org Cc: Stuart Cardall Subject: [alpine-devel] [PATCH] testing/bitcoin: upgrade to 0.9.1 Date: Thu, 8 May 2014 10:04:49 +0000 Message-Id: <1399543489-832-1-git-send-email-developer@it-offshore.co.uk> X-Mailer: git-send-email 1.9.1 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - apollo.thewebhostserver.com X-AntiAbuse: Original Domain - lists.alpinelinux.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - it-offshore.co.uk X-Get-Message-Sender-Via: apollo.thewebhostserver.com: authenticated_id: developer@it-offshore.co.uk X-Source: X-Source-Args: X-Source-Dir: X-Mailinglist: alpine-devel Precedence: list List-Id: Alpine Development List-Unsubscribe: List-Post: List-Help: List-Subscribe: Sources changed to github & 2 previous patches no longer required. It now also builds the Qt front end with QR Code support. Includes a patch to fix a locale bug proposed upstream. Includes the init & post-install scripts from namecoin. Built successfuly on Musl & uclibc 32 bit (& so does namecoin) --- testing/bitcoin/11-ssize_t.patch | 10 ++++ testing/bitcoin/20-set-default-env.patch | 38 ++++++++++++++ testing/bitcoin/APKBUILD | 87 ++++++++++++++++++++++---------- testing/bitcoin/bitcoin.conf | 10 ++++ testing/bitcoin/bitcoin.confd | 13 +++++ testing/bitcoin/bitcoin.initd | 33 ++++++++++++ testing/bitcoin/bitcoin.post-install | 53 +++++++++++++++++++ testing/bitcoin/boost-thread.patch | 11 ---- testing/bitcoin/make.patch | 13 ----- testing/bitcoin/ssize_t.patch | 12 ----- 10 files changed, 216 insertions(+), 64 deletions(-) create mode 100644 testing/bitcoin/11-ssize_t.patch create mode 100644 testing/bitcoin/20-set-default-env.patch create mode 100644 testing/bitcoin/bitcoin.conf create mode 100644 testing/bitcoin/bitcoin.confd create mode 100644 testing/bitcoin/bitcoin.initd create mode 100644 testing/bitcoin/bitcoin.post-install delete mode 100644 testing/bitcoin/boost-thread.patch delete mode 100644 testing/bitcoin/make.patch delete mode 100644 testing/bitcoin/ssize_t.patch diff --git a/testing/bitcoin/11-ssize_t.patch b/testing/bitcoin/11-ssize_t.patch new file mode 100644 index 0000000..4f99995 --- /dev/null +++ b/testing/bitcoin/11-ssize_t.patch @@ -0,0 +1,10 @@ +--- src/leveldb/db/db_iter.cc ++++ src.new/leveldb/db/db_iter.cc +@@ -2,6 +2,7 @@ + // Use of this source code is governed by a BSD-style license that can be + // found in the LICENSE file. See the AUTHORS file for names of contributors. + ++#include + #include "db/db_iter.h" + + #include "db/filename.h" diff --git a/testing/bitcoin/20-set-default-env.patch b/testing/bitcoin/20-set-default-env.patch new file mode 100644 index 0000000..290eecb --- /dev/null +++ b/testing/bitcoin/20-set-default-env.patch @@ -0,0 +1,38 @@ +--- src/bitcoin-cli.cpp ++++ src.new/bitcoin-cli.cpp +@@ -53,6 +53,16 @@ + + int main(int argc, char* argv[]) + { ++ #ifndef WIN32 ++ try ++ { ++ boost::filesystem::path::codecvt(); // Raises runtime error if current locale is invalid ++ } catch(std::runtime_error &e) ++ { ++ setenv("LC_ALL", "C", 1); // Force C locale ++ } ++ #endif ++ + try + { + if(!AppInitRPC(argc, argv)) +--- src/bitcoind.cpp ++++ src.new/bitcoind.cpp +@@ -166,6 +166,16 @@ + + int main(int argc, char* argv[]) + { ++ #ifndef WIN32 ++ try ++ { ++ boost::filesystem::path::codecvt(); // Raises runtime error if current locale is invalid ++ } catch(std::runtime_error &e) ++ { ++ setenv("LC_ALL", "C", 1); // Force C locale ++ } ++ #endif ++ + bool fRet = false; + + // Connect bitcoind signal handlers diff --git a/testing/bitcoin/APKBUILD b/testing/bitcoin/APKBUILD index cd95737..8c84cb1 100644 --- a/testing/bitcoin/APKBUILD +++ b/testing/bitcoin/APKBUILD @@ -1,25 +1,29 @@ -# Maintainer: Natanael Copa +# Contributor: Natanael Copa +# Maintainer: Stuart Cardall pkgname=bitcoin -pkgver=0.8.6 -pkgrel=1 +pkgver=0.9.1 +pkgrel=0 pkgdesc="decentralized P2P electronic cash system" url="http://www.bitcoin.org/" -arch="" +arch="all" license="MIT" depends="" -depends_dev="" -makedepends="$depends_dev boost-dev openssl-dev db-dev miniupnpc-dev" -install="" -subpackages="" -source="http://sourceforge.net/projects/bitcoin/files/Bitcoin/bitcoin-0.8.6/bitcoin-$pkgver-linux.tar.gz - make.patch - boost-thread.patch - ssize_t.patch" +depends_dev="autoconf automake" +makedepends="$depends_dev boost-dev openssl-dev db-dev miniupnpc-dev qt-dev protobuf-dev libqrencode-dev" +install="$pkgname.post-install" +subpackages="$pkgname-qt" +source="https://github.com/bitcoin/bitcoin/archive/v$pkgver.tar.gz + 11-ssize_t.patch + 20-set-default-env.patch + $pkgname.initd + $pkgname.confd + $pkgname.conf + " -_builddir="$srcdir"/bitcoin-$pkgver-linux/src +_builddir="$srcdir"/bitcoin-$pkgver prepare() { local i - cd "$_builddir" + cd "$_builddir"/src for i in $source; do case $i in *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; @@ -29,24 +33,51 @@ prepare() { build() { cd "$_builddir" - cd src - make -f makefile.unix + ./autogen.sh + # libboost tests fail on MUSL with 'undefined reference' if bitcoin-qt is also built + # bitcoind builds & passes all tests on both uclibc & musl + ./configure \ + --disable-tests \ + --with-incompatible-bdb \ + || return 1 + make || return 1 +} + +qt() { + pkgdesc="Bitcoin with a Qt frontend & QR Code support" + #depends="bitcoin=$pkgver-r$pkgrel" + cd "$srcdir"/bitcoin-$pkgver/src/qt + install -Dm755 bitcoin-qt "$pkgdir"/usr/bin/bitcoin-qt || return 1 + mkdir -p "$subpkgdir"/usr/bin + mv "$pkgdir"/usr/bin/bitcoin-qt \ + "$subpkgdir"/usr/bin/ } package() { cd "$_builddir" + install -m755 -D "$srcdir"/$pkgname.initd "$pkgdir"/etc/init.d/$pkgname || return 1 + # daemon config + install -m600 -D "$srcdir"/$pkgname.confd "$pkgdir"/etc/conf.d/$pkgname || return 1 + # app config + install -m600 -D "$srcdir"/$pkgname.conf "$pkgdir"/etc/$pkgname.conf || return 1 install -Dm755 src/bitcoind "$pkgdir"/usr/bin/bitcoind || return 1 } -md5sums="4c24497a3c88adf1ef9855efaf31cf87 bitcoin-0.8.6-linux.tar.gz -baffb25d5cb9f2e859c462c8b5e2fbef make.patch -c1233bd720e62f1b90608232f269b4f9 boost-thread.patch -716a88e668729e89d3eb929da86f7f04 ssize_t.patch" -sha256sums="73495de53d1a30676884961e39ff46c3851ff770eeaa767331d065ff0ce8dd0c bitcoin-0.8.6-linux.tar.gz -a37ea4e7eed4678397e66164d0a053049d7ae6baf69b46cc127eabbac81efe95 make.patch -99c2ab6fb597d2b80b98c7f016de5523f9716c5e11c2455e20326538e3c101ab boost-thread.patch -f0a094c7b374338ad153ee06b7dd2369dad6b97b1f1bb0252da12c9aaace5321 ssize_t.patch" -sha512sums="efdf4509eb668504fe60d019c5787a511eedda4b6d57ced824b02a1a3b7ce943eb86137c5ffd15015f5e457c6253da970fcd53fae47ae2d4156f812e42985bf4 bitcoin-0.8.6-linux.tar.gz -1c0275e7439e7d26d0f2ae91d04af7ea5b9e3740555a8ddba414f767d18101268eb80a41d0b85f21a2968b92fdc37d395c3bd7dd68d0856d228963c06e17b42f make.patch -3ad8e5e8ded91b49fff707f779d5987a8ab33ad6eb9a3233f1f35e146c665aa71c0dc1983e58d9fb7f662e8d238f59dc1b8606a665644a5bcc48681f6ee8ca9d boost-thread.patch -98aa5ad81bdb4ae961b791bc978c39117cdf2d83c2181f92bebbb0db107d9b6e86eda265fb3f93ff8a5ca8a7754d7148818b98095d57201dff9363d60b97e7dd ssize_t.patch" +md5sums="7a9c14c09b04e3e37d703fbfe5c3b1e2 v0.9.1.tar.gz +e51b99d89210b41f8e9db1c773c3eed8 11-ssize_t.patch +997318f9a1487ac074053c0bafcc3297 20-set-default-env.patch +edcc1526d5c7330fbbe08f506aab7adc bitcoin.initd +5806cde9a5509f1a65dc10bf6271b59f bitcoin.confd +4b2bb76ce8d056ad6e7178cd1f84794d bitcoin.conf" +sha256sums="bf5021a426b5e38a741a5294a0ceb22daa74cda11c6dc0478c4aa48c55fdccb3 v0.9.1.tar.gz +b6be699bd669ededfced84c15bc1cfcd13b5d094327ce590cabfe53742db1217 11-ssize_t.patch +18cdfab561fcd419d561ea4df48f5b12de1fb7474f2950487ac354d737be33e0 20-set-default-env.patch +47a953530ecba668387db37b70d6b557011ea1ea7e5c23014fcdc8791ade7b5a bitcoin.initd +1d1d890c5b5b2d817e7531922deb212764c75af5e7fcccaebc04f8288ce39303 bitcoin.confd +0ec190624a1185b4168d25e315831d722add0df2900830a1b71cf6010b241275 bitcoin.conf" +sha512sums="75be422fc263f209783fc66d9fd99027d67c7460c599a23badafcf5546ce7cb21206fce04c516a1c101aeff13542b332249b3b70a70c483aa82a5048dbdc9d92 v0.9.1.tar.gz +031727cbc917b3eaeb8d9098fc7c9695d96cf4dd648ddacf634334ec8645b37453a9e7ac3e9c815c0793ecdd002175509852b23b1dfd170fbf900373474d0944 11-ssize_t.patch +1fd5e2c2475198b3e564e650e6a6a971b58df686bfccfc518786827db57be4e093766e984d199bdf019c5e18d75a096e8bfaa572d26b2c367e39785f7c81e216 20-set-default-env.patch +2502d0f10d06789c6f1ece00747d24dce87062eb537d035f08503f069d758e434ee197150fa150828cde3743c9c76e2c7cf97ab3dd18acf9239af2785ff56e94 bitcoin.initd +942857b0a71c5be2a87f193eebba2e85a1b8665cd13641246ac223e96648b51901c666c9a5dd354e12069a7bb18855406c1b48e67dbe348faff575b643d00828 bitcoin.confd +db2de1f5a675d424cabd371ef0eb8ce75a23fdc5d81cd11cfe219c0367811c6dae253d64726adb315750c7611bec6daab52a541c6a760bfa5cc7894554fa3ce7 bitcoin.conf" diff --git a/testing/bitcoin/bitcoin.conf b/testing/bitcoin/bitcoin.conf new file mode 100644 index 0000000..bcc5241 --- /dev/null +++ b/testing/bitcoin/bitcoin.conf @@ -0,0 +1,10 @@ +# Bitcoin configuration file for Alpine Linux +# +#proxy=127.0.0.1:9050 #use TOR Socks Proxy +rpcallowip=127.0.0.1 +rpcuser=changeme +rpcpassword=changeme +rpcport=changeme +daemon=1 +#gen=1 #generate bitcoins + diff --git a/testing/bitcoin/bitcoin.confd b/testing/bitcoin/bitcoin.confd new file mode 100644 index 0000000..00238aa --- /dev/null +++ b/testing/bitcoin/bitcoin.confd @@ -0,0 +1,13 @@ +# Bitcoin daemon conf.d file for Alpine Linux +# +################################################## +## If run as a NON root user / group change ## +## 'pidfile' below to a user writable location ## +################################################## +name=bitcoind +daemon=/usr/bin/$name +config=/etc/bitcoin.conf +user=root +group=root +pidfile=/var/run/$name.pid + diff --git a/testing/bitcoin/bitcoin.initd b/testing/bitcoin/bitcoin.initd new file mode 100644 index 0000000..23987b3 --- /dev/null +++ b/testing/bitcoin/bitcoin.initd @@ -0,0 +1,33 @@ +#!/sbin/runscript + +# Bitcoin init.d file for Alpine Linux. + +config_file=/etc/conf.d/bitcoin + +depend() { + need net + after firewall +} + +check_config() { + [ -f "$config_file" ] || eend "$config_file is missing" + [ -f "/usr/bin/bitcoind" ] || eend "Bitcoin Daemon is not installed" +} + +start() { + ebegin "Starting ${name}" + check_config || return 1 + start-stop-daemon --start --quiet \ + --pidfile /var/run/${name}.pid \ + --user ${user}:${group} \ + --exec ${daemon} -- -conf=${config} -pid=${pidfile} + eend $? +} + +stop() { + ebegin "Stopping ${name}" + start-stop-daemon --stop --quiet \ + --pidfile ${pidfile} \ + --exec ${daemon} + eend $? +} \ No newline at end of file diff --git a/testing/bitcoin/bitcoin.post-install b/testing/bitcoin/bitcoin.post-install new file mode 100644 index 0000000..9b4d140 --- /dev/null +++ b/testing/bitcoin/bitcoin.post-install @@ -0,0 +1,53 @@ +#!/bin/sh + +NORMAL="\033[1;0m" +STRONG="\033[1;1m" +GREEN="\033[1;32m" + +config=$(grep config /etc/conf.d/bitcoin |sed 's/config=//') + +randgen() { + output=$(< /dev/urandom tr -dc '0-9a-zA-Z!@#$%^&*_+-' | head -c${1:-$1}) 2>/dev/null + echo $output +} + +# Generate random port +randport() { + n=$RANDOM + while [ $n -gt 65536 ] && [ $n -lt 1024 ]; do + n=$RANDOM + done + echo $n +} + +# Find unused TCP port +findRandomTcpPort(){ + port=$(randport) + while : + do + (echo >/dev/tcp/localhost/$port) &>/dev/null && port=$(randport) || break + done + echo $port +} + +GenPasswd(){ + sed -i "/rpcuser=/ c \rpcuser=USER-"$(randgen 32)"" $config + sed -i "/rpcpassword=/ c \rpcpassword=PW-"$(randgen 64)"" $config + sed -i "/rpcport=/ c \rpcport="$(findRandomTcpPort)"" $config + print_green "Generated random user / password / port in:" " $config\n" +} + + +print_green() { + local prompt="${STRONG}$1${GREEN}$2${NORMAL}" + printf "${prompt}%s" +} + +if grep -F "changeme" $config 1>/dev/null; then + GenPasswd +else + print_green "Generate a new random username / password / port in: $config ?" " [ y | n ] "; read ans + if [ "$ans" = "y" ] || [ "$ans" = "Y" ]; then + GenPasswd + fi +fi diff --git a/testing/bitcoin/boost-thread.patch b/testing/bitcoin/boost-thread.patch deleted file mode 100644 index e71a980..0000000 --- a/testing/bitcoin/boost-thread.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./src/makefile.unix.old 2013-12-14 13:14:50.445065372 +0000 -+++ ./src/makefile.unix 2013-12-14 13:13:35.834253950 +0000 -@@ -37,7 +37,7 @@ - -l boost_system$(BOOST_LIB_SUFFIX) \ - -l boost_filesystem$(BOOST_LIB_SUFFIX) \ - -l boost_program_options$(BOOST_LIB_SUFFIX) \ -- -l boost_thread$(BOOST_LIB_SUFFIX) \ -+ -l boost_thread-mt$(BOOST_LIB_SUFFIX) \ - -l db_cxx$(BDB_LIB_SUFFIX) \ - -l ssl \ - -l crypto diff --git a/testing/bitcoin/make.patch b/testing/bitcoin/make.patch deleted file mode 100644 index d27fbd6..0000000 --- a/testing/bitcoin/make.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/src/makefile.unix b/src/makefile.unix -index 8110235..91ae3a9 100644 ---- a/src/makefile.unix -+++ b/src/makefile.unix -@@ -157,7 +157,7 @@ LIBS += $(CURDIR)/leveldb/libleveldb.a $(CURDIR)/leveldb/libmemenv.a - DEFS += $(addprefix -I,$(CURDIR)/leveldb/include) - DEFS += $(addprefix -I,$(CURDIR)/leveldb/helpers) - leveldb/libleveldb.a: -- @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC=$(CC) CXX=$(CXX) OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && cd .. -+ @echo "Building LevelDB ..." && cd leveldb && $(MAKE) CC="$(CC)" CXX="$(CXX)" OPT="$(xCXXFLAGS)" libleveldb.a libmemenv.a && cd .. - - # auto-generated dependencies: - -include obj/*.P diff --git a/testing/bitcoin/ssize_t.patch b/testing/bitcoin/ssize_t.patch deleted file mode 100644 index 2c21854..0000000 --- a/testing/bitcoin/ssize_t.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/src/leveldb/db/db_iter.cc b/src/leveldb/db/db_iter.cc -index 071a54e..68a18f2 100644 ---- a/src/leveldb/db/db_iter.cc -+++ b/src/leveldb/db/db_iter.cc -@@ -2,6 +2,7 @@ - // Use of this source code is governed by a BSD-style license that can be - // found in the LICENSE file. See the AUTHORS file for names of contributors. - -+#include - #include "db/db_iter.h" - - #include "db/filename.h" -- 1.9.1 --- Unsubscribe: alpine-devel+unsubscribe@lists.alpinelinux.org Help: alpine-devel+help@lists.alpinelinux.org ---