summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosh Ellithorpe2017-07-17 22:53:33 -0700
committerJosh Ellithorpe2017-07-17 22:53:33 -0700
commita996ec6718e853361f3750e9fb367b5fc819a83f (patch)
tree02a272ee953a22294f73dc2c4b738f6636a0241c
downloadaur-a996ec6718e853361f3750e9fb367b5fc819a83f.tar.gz
Initial release of BitcoinABC for Arch
-rw-r--r--.SRCINFO44
-rw-r--r--PKGBUILD110
-rw-r--r--bitcoin-reindex.service19
-rw-r--r--bitcoin.conf10
-rw-r--r--bitcoin.install61
-rw-r--r--bitcoin.logrotate11
-rw-r--r--bitcoin.service18
7 files changed, 273 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..8ec7e35e5f28
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,44 @@
+# Generated by mksrcinfo v8
+# Tue Jul 18 05:38:11 UTC 2017
+pkgbase = bitcoin-abc
+ pkgdesc = Bitcoin ABC node
+ pkgver = 0.14.3
+ pkgrel = 1
+ url = https://bitcoinabc.org
+ install = bitcoin.install
+ arch = i686
+ arch = x86_64
+ license = MIT
+ makedepends = autoconf
+ makedepends = automake
+ makedepends = binutils
+ makedepends = libtool
+ makedepends = m4
+ makedepends = make
+ makedepends = pkg-config
+ depends = boost
+ depends = boost-libs
+ depends = zeromq
+ optdepends = miniupnpc: build with support for UPnP
+ provides = bitcoin-cli
+ provides = bitcoin-daemon
+ provides = bitcoin-tx
+ conflicts = bitcoin-cli
+ conflicts = bitcoin-daemon
+ conflicts = bitcoin-qt
+ conflicts = bitcoin-tx
+ backup = etc/bitcoin/bitcoin.conf
+ backup = etc/logrotate.d/bitcoin
+ source = https://github.com/Bitcoin-ABC/bitcoin-abc/archive/v0.14.3.tar.gz
+ source = bitcoin.conf
+ source = bitcoin.logrotate
+ source = bitcoin.service
+ source = bitcoin-reindex.service
+ sha256sums = 5e2d5ee094ce35b4b57506fee1ac1116a4872a7bd3e62f0668e0766d59d4b934
+ sha256sums = b1908344281498d39bfa40c3b9725f9c95bf22602cd46e6120a1f17bad9dae35
+ sha256sums = 8f05207b586916d489b7d25a68eaacf6e678d7cbb5bfbac551903506b32f904f
+ sha256sums = 9643eed2c20d78a9c7347df64099765773615f79d3b8a95693d871c933516880
+ sha256sums = 35ff9331d7df8b90adfc7d82752cca4f8b7ff23a29e5d10b07e4e3fc78050679
+
+pkgname = bitcoin-abc
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..a6db3d6155ce
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,110 @@
+# Maintainer: Josh Ellithorpe <quest@mac.com>
+
+pkgname=bitcoin-abc
+pkgver=0.14.3
+pkgrel=1
+pkgdesc="Bitcoin ABC node"
+arch=('i686' 'x86_64')
+url="https://bitcoinabc.org"
+depends=('boost'
+ 'boost-libs'
+ 'zeromq')
+makedepends=('autoconf'
+ 'automake'
+ 'binutils'
+ 'libtool'
+ 'm4'
+ 'make'
+ 'pkg-config')
+optdepends=('miniupnpc: build with support for UPnP')
+license=('MIT')
+source=(https://github.com/Bitcoin-ABC/bitcoin-abc/archive/v$pkgver.tar.gz
+ bitcoin.conf
+ bitcoin.logrotate
+ bitcoin.service
+ bitcoin-reindex.service
+ bitcoin.install)
+sha256sums=('5e2d5ee094ce35b4b57506fee1ac1116a4872a7bd3e62f0668e0766d59d4b934'
+ 'b1908344281498d39bfa40c3b9725f9c95bf22602cd46e6120a1f17bad9dae35'
+ '8f05207b586916d489b7d25a68eaacf6e678d7cbb5bfbac551903506b32f904f'
+ '9643eed2c20d78a9c7347df64099765773615f79d3b8a95693d871c933516880'
+ '35ff9331d7df8b90adfc7d82752cca4f8b7ff23a29e5d10b07e4e3fc78050679'
+ '1f661c616ce5eae6a84fe0f36f6a307b8a0ed4718d5559e08992117d7d1aeecb')
+backup=('etc/bitcoin/bitcoin.conf'
+ 'etc/logrotate.d/bitcoin')
+provides=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx')
+conflicts=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-qt' 'bitcoin-tx')
+install=bitcoin.install
+
+# half of available processing units or one if only one is available
+_nproc=$(($(nproc)/2))
+[[ ${_nproc} < 1 ]] && _nproc=1
+
+build() {
+ cd "$srcdir/${pkgname}-$pkgver"
+
+ msg2 'Building...'
+ ./autogen.sh
+ ./configure \
+ --prefix=/usr \
+ --sbindir=/usr/bin \
+ --libexecdir=/usr/lib/bitcoin \
+ --sysconfdir=/etc \
+ --sharedstatedir=/usr/share/bitcoin \
+ --localstatedir=/var/lib/bitcoin \
+ --enable-hardening \
+ --with-gui=no \
+ --disable-wallet \
+ --with-gnu-ld
+ make -j$_nproc
+}
+
+check() {
+ cd "$srcdir/${pkgname}-$pkgver"
+
+ msg2 'Testing...'
+ make -j$_nproc check
+}
+
+package() {
+ cd "$srcdir/${pkgname}-$pkgver"
+
+ msg2 'Installing license...'
+ install -Dm 644 COPYING -t "$pkgdir/usr/share/licenses/${pkgname}"
+
+ msg2 'Installing man pages...'
+ install -Dm 644 doc/man/*.1 -t "$pkgdir/usr/share/man/man1"
+
+ msg2 'Installing documentation...'
+ install -dm 755 "$pkgdir/usr/share/doc/bitcoin"
+ for _doc in \
+ $(find doc -maxdepth 1 -type f -name "*.md" -printf '%f\n') \
+ release-notes; do
+ cp -dpr --no-preserve=ownership "doc/$_doc" \
+ "$pkgdir/usr/share/doc/bitcoin/$_doc"
+ done
+
+ msg2 'Installing essential directories'
+ install -dm 700 "$pkgdir/etc/bitcoin"
+ install -dm 755 "$pkgdir/srv/bitcoin"
+
+ msg2 'Installing bitcoin...'
+ make DESTDIR="$pkgdir" install
+
+ msg2 'Installing bitcoin.conf...'
+ install -Dm 600 "$srcdir/bitcoin.conf" -t "$pkgdir/etc/bitcoin"
+
+ msg2 'Installing bitcoin.service...'
+ install -Dm 644 "$srcdir/bitcoin.service" -t "$pkgdir/usr/lib/systemd/system"
+ install -Dm 644 "$srcdir/bitcoin-reindex.service" \
+ -t "$pkgdir/usr/lib/systemd/system"
+
+ msg2 'Installing bitcoin.logrotate...'
+ install -Dm 644 "$srcdir/bitcoin.logrotate" "$pkgdir/etc/logrotate.d/bitcoin"
+
+ msg2 'Installing bash completion...'
+ for _compl in bitcoin-cli bitcoin-tx bitcoind; do
+ install -Dm 644 "contrib/${_compl}.bash-completion" \
+ "$pkgdir/usr/share/bash-completion/completions/$_compl"
+ done
+}
diff --git a/bitcoin-reindex.service b/bitcoin-reindex.service
new file mode 100644
index 000000000000..236a24d05e54
--- /dev/null
+++ b/bitcoin-reindex.service
@@ -0,0 +1,19 @@
+[Unit]
+Description=Bitcoin Daemon (reindex)
+Conflicts=bitcoin.service
+After=network.target
+
+[Service]
+User=bitcoin
+Group=bitcoin
+ExecStart=/usr/bin/bitcoind -daemon=0 \
+ -conf=/etc/bitcoin/bitcoin.conf \
+ -datadir=/srv/bitcoin \
+ -reindex \
+ -pid=/run/bitcoind.pid
+ExecReload=/usr/bin/kill -HUP $MAINPID
+ExecStop=/usr/bin/bitcoind stop
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target
diff --git a/bitcoin.conf b/bitcoin.conf
new file mode 100644
index 000000000000..cc914e17067c
--- /dev/null
+++ b/bitcoin.conf
@@ -0,0 +1,10 @@
+rpcconnect=127.0.0.1
+rpcport=8332
+rpcuser=bitcoin
+rpcpassword=secret
+rpcallowip=127.0.0.1
+rpcthreads=4
+rpctimeout=300
+txindex=1
+server=1
+dbcache=300
diff --git a/bitcoin.install b/bitcoin.install
new file mode 100644
index 000000000000..40e1d33a4eed
--- /dev/null
+++ b/bitcoin.install
@@ -0,0 +1,61 @@
+_bc_user=bitcoin
+_bc_group=bitcoin
+
+post_install() {
+ _mkuser
+ chown -R $_bc_user:$_bc_group /etc/bitcoin /srv/bitcoin
+ printf "%b\n" "$bitcoin"
+}
+
+post_upgrade() {
+ _mkuser
+ chown -R $_bc_user:$_bc_group /etc/bitcoin /srv/bitcoin
+ printf "%b\n" "$bitcoin"
+}
+
+post_remove() {
+ _rmuser
+ rm -rf /srv/bitcoin
+}
+
+_mkuser() {
+ getent passwd $_bc_user &>/dev/null || {
+ echo -n "Creating bitcoin user... "
+ grep -E "^$_bc_group:" /etc/group >/dev/null || groupadd $_bc_group
+ useradd -m -d /etc/bitcoin -g $_bc_group -s /usr/bin/nologin $_bc_user 2>/dev/null
+ echo "done"
+ }
+}
+
+_rmuser() {
+ echo -n "Removing bitcoin user... "
+ userdel -rf $_bc_user 2>/dev/null
+ echo "done"
+}
+
+read -d '' bitcoin <<'EOI'
+ ___ _ _ _ _ ___ ___
+| _ |_) |_ __ ___(_)_ _ /_\ | _ )/ __|
+| _ \ | _/ _/ _ \ | ' \ / _ \| _ \ (__
+|___/_|\__\__\___/_|_||_/_/ \_\___/\___|
+
+To start bitcoin-abc:
+
+$ systemctl start bitcoin
+
+To communicate with bitcoin-abc as a normal user:
+
+$ mkdir -p ~/.bitcoin
+$ cat > ~/.bitcoin/bitcoin.conf <<'EOF'
+rpcconnect=127.0.0.1
+rpcport=8332
+rpcuser=bitcoin
+rpcpassword=secret
+EOF
+
+$ bitcoin-cli getmininginfo
+
+Config: /etc/bitcoin/bitcoin.conf
+Blockchain: /srv/bitcoin
+Documentation: /usr/share/doc/bitcoin
+EOI
diff --git a/bitcoin.logrotate b/bitcoin.logrotate
new file mode 100644
index 000000000000..fe13fb2e7049
--- /dev/null
+++ b/bitcoin.logrotate
@@ -0,0 +1,11 @@
+/srv/bitcoin/debug.log
+{
+ rotate 5
+ copytruncate
+ daily
+ missingok
+ notifempty
+ compress
+ delaycompress
+ sharedscripts
+}
diff --git a/bitcoin.service b/bitcoin.service
new file mode 100644
index 000000000000..abb6da86942d
--- /dev/null
+++ b/bitcoin.service
@@ -0,0 +1,18 @@
+[Unit]
+Description=Bitcoin Daemon
+Conflicts=bitcoin-reindex.service
+After=network.target
+
+[Service]
+User=bitcoin
+Group=bitcoin
+ExecStart=/usr/bin/bitcoind -daemon=0 \
+ -conf=/etc/bitcoin/bitcoin.conf \
+ -datadir=/srv/bitcoin \
+ -pid=/run/bitcoind.pid
+ExecReload=/usr/bin/kill -HUP $MAINPID
+ExecStop=/usr/bin/bitcoind stop
+PrivateTmp=true
+
+[Install]
+WantedBy=multi-user.target