diff --git a/contrib/aur/bitcoin-abc-qt/PKGBUILD b/contrib/aur/bitcoin-abc-qt/PKGBUILD new file mode 100644 index 000000000..5a56ca69a --- /dev/null +++ b/contrib/aur/bitcoin-abc-qt/PKGBUILD @@ -0,0 +1,108 @@ +# Maintainer: Josh Ellithorpe + +pkgname=bitcoin-abc-qt +pkgver=0.22.0 +pkgrel=0 +pkgdesc="Bitcoin ABC with bitcoind, bitcoin-cli, bitcoin-tx, bitcoin-seeder and bitcoin-qt" +arch=('i686' 'x86_64') +url="https://bitcoinabc.org" +depends=('boost-libs' 'libevent' 'desktop-file-utils' 'qt5-base' 'protobuf' 'openssl' 'miniupnpc' 'zeromq' 'qrencode' 'jemalloc') +makedepends=('cmake' 'ninja' 'boost' 'qt5-tools') +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=('feaffb2129f49813692ec17ba5675a3ac44e6d0560af55bb4d1d2f160c5b4a0b' + 'c30e5c7e0e97b001fdeac5f4510d5ebc0e0499ec086325e845db609a24f2e22f' + '8f05207b586916d489b7d25a68eaacf6e678d7cbb5bfbac551903506b32f904f' + 'f2fd9d8331238727333cf2412ba3759cb194a65b2060eff36808b24c06382104' + '497dbeefb9cd9792757a9b6e1fbfd92710d19990ee2959add6c30533ae40b6f6' + '45429013dae87a58bc79ca7b7a037665bf8592cae0199bcf4aef088fb950e78a') +backup=('etc/bitcoin/bitcoin.conf' + 'etc/logrotate.d/bitcoin') +provides=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-qt' 'bitcoin-seeder') +conflicts=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-qt' 'bitcoin-seeder') +install=bitcoin.install + +build() { + cd "$srcdir/bitcoin-abc-$pkgver" + + msg2 'Building...' + mkdir -p build + pushd build + + cmake -GNinja .. \ + -DENABLE_CLANG_TIDY=OFF \ + -DCLIENT_VERSION_IS_RELEASE=ON \ + -DENABLE_REDUCE_EXPORTS=ON \ + -DENABLE_STATIC_LIBSTDCXX=ON \ + -DCMAKE_INSTALL_PREFIX=$pkgdir/usr + + ninja + popd +} + +check() { + cd "$srcdir/bitcoin-abc-$pkgver/build" + + msg2 'Testing...' + #ninja check +} + +package() { + cd "$srcdir/bitcoin-abc-$pkgver" + + msg2 'Installing desktop shortcut...' + install -Dm644 contrib/debian/bitcoin-qt.desktop \ + "$pkgdir"/usr/share/applications/bitcoin.desktop + install -Dm644 share/pixmaps/bitcoin-abc128.png \ + "$pkgdir"/usr/share/pixmaps/bitcoin-abc128.png + + msg2 'Installing license...' + install -Dm 644 COPYING -t "$pkgdir/usr/share/licenses/${pkgname}" + + msg2 'Installing examples...' + install -Dm644 "contrib/debian/examples/bitcoin.conf" \ + -t "$pkgdir/usr/share/doc/bitcoin/examples" + + 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" + install -dm 755 "$pkgdir/run/bitcoin" + + pushd build + msg2 'Installing executables and man pages...' + cmake -DCOMPONENT=bitcoind -P cmake_install.cmake + cmake -DCOMPONENT=bitcoin-qt -P cmake_install.cmake + cmake -DCOMPONENT=bitcoin-seeder -P cmake_install.cmake + popd + + 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/contrib/aur/bitcoin-abc/PKGBUILD b/contrib/aur/bitcoin-abc/PKGBUILD new file mode 100644 index 000000000..555266fe4 --- /dev/null +++ b/contrib/aur/bitcoin-abc/PKGBUILD @@ -0,0 +1,103 @@ +# Maintainer: Josh Ellithorpe + +pkgname=bitcoin-abc +pkgver=0.22.0 +pkgrel=0 +pkgdesc="Bitcoin ABC with bitcoind, bitcoin-tx, bitcoin-seeder and bitcoin-cli" +arch=('i686' 'x86_64') +url="https://bitcoinabc.org" +depends=('boost-libs' 'libevent' 'openssl' 'zeromq' 'miniupnpc' 'jemalloc') +makedepends=('cmake' 'ninja' 'boost') +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=('feaffb2129f49813692ec17ba5675a3ac44e6d0560af55bb4d1d2f160c5b4a0b' + 'c30e5c7e0e97b001fdeac5f4510d5ebc0e0499ec086325e845db609a24f2e22f' + '8f05207b586916d489b7d25a68eaacf6e678d7cbb5bfbac551903506b32f904f' + 'f2fd9d8331238727333cf2412ba3759cb194a65b2060eff36808b24c06382104' + '497dbeefb9cd9792757a9b6e1fbfd92710d19990ee2959add6c30533ae40b6f6' + '16ea5b19d554e0cb748ba14cbeee6015ed456b66f981fb8769f1403720b2d0a9') +backup=('etc/bitcoin/bitcoin.conf' + 'etc/logrotate.d/bitcoin') +provides=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-seeder') +conflicts=('bitcoin-cli' 'bitcoin-daemon' 'bitcoin-tx' 'bitcoin-seeder') +install=bitcoin.install + +build() { + cd "$srcdir/${pkgname}-$pkgver" + + msg2 'Building...' + mkdir -p build + pushd build + + cmake -GNinja .. \ + -DENABLE_CLANG_TIDY=OFF \ + -DCLIENT_VERSION_IS_RELEASE=ON \ + -DENABLE_REDUCE_EXPORTS=ON \ + -DENABLE_STATIC_LIBSTDCXX=ON \ + -DBUILD_BITCOIN_WALLET=OFF \ + -DBUILD_BITCOIN_QT=OFF \ + -DCMAKE_INSTALL_PREFIX=$pkgdir/usr + + ninja + popd +} + +check() { + cd "$srcdir/${pkgname}-$pkgver/build" + + msg2 'Testing...' + #ninja check +} + +package() { + cd "$srcdir/${pkgname}-$pkgver" + + msg2 'Installing license...' + install -Dm 644 COPYING -t "$pkgdir/usr/share/licenses/${pkgname}" + + msg2 'Installing examples...' + install -Dm644 "contrib/debian/examples/bitcoin.conf" \ + -t "$pkgdir/usr/share/doc/bitcoin/examples" + + 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" + install -dm 755 "$pkgdir/run/bitcoin" + + pushd build + msg2 'Installing executables and man pages...' + cmake -DCOMPONENT=bitcoind -P cmake_install.cmake + cmake -DCOMPONENT=bitcoin-seeder -P cmake_install.cmake + popd + + 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/contrib/aur/common/bitcoin-reindex.service b/contrib/aur/common/bitcoin-reindex.service new file mode 100644 index 000000000..52900d8fc --- /dev/null +++ b/contrib/aur/common/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/bitcoin/bitcoind.pid +ExecReload=/usr/bin/kill -HUP $MAINPID +ExecStop=/usr/bin/bitcoind stop +PrivateTmp=true + +[Install] +WantedBy=multi-user.target diff --git a/contrib/aur/common/bitcoin.conf b/contrib/aur/common/bitcoin.conf new file mode 100644 index 000000000..395352ab9 --- /dev/null +++ b/contrib/aur/common/bitcoin.conf @@ -0,0 +1,8 @@ +rpcport=8332 +rpcuser=bitcoin +rpcpassword=secret +rpcallowip=127.0.0.1 +rpcthreads=4 +txindex=1 +server=1 +dbcache=300 diff --git a/contrib/aur/common/bitcoin.install b/contrib/aur/common/bitcoin.install new file mode 100644 index 000000000..e250c4e71 --- /dev/null +++ b/contrib/aur/common/bitcoin.install @@ -0,0 +1,59 @@ +_bc_user=bitcoin +_bc_group=bitcoin + +post_install() { + _mkuser + chown -R $_bc_user:$_bc_group /etc/bitcoin /srv/bitcoin /run/bitcoin + printf "%b\n" "$bitcoin" +} + +post_upgrade() { + _mkuser + chown -R $_bc_user:$_bc_group /etc/bitcoin /srv/bitcoin /run/bitcoin + printf "%b\n" "$bitcoin" +} + +post_remove() { + _rmuser + rm -rf /srv/bitcoin /run/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' + +Bitcoin ABC +___________ + +To start bitcoin-abc: + +$ systemctl start bitcoin + +To communicate with bitcoin-abc as a normal user: + +$ mkdir -p ~/.bitcoin +$ cat > ~/.bitcoin/bitcoin.conf <<'EOF' +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/contrib/aur/common/bitcoin.logrotate b/contrib/aur/common/bitcoin.logrotate new file mode 100644 index 000000000..fe13fb2e7 --- /dev/null +++ b/contrib/aur/common/bitcoin.logrotate @@ -0,0 +1,11 @@ +/srv/bitcoin/debug.log +{ + rotate 5 + copytruncate + daily + missingok + notifempty + compress + delaycompress + sharedscripts +} diff --git a/contrib/aur/common/bitcoin.service b/contrib/aur/common/bitcoin.service new file mode 100644 index 000000000..7f2c2ac52 --- /dev/null +++ b/contrib/aur/common/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/bitcoin/bitcoind.pid +ExecReload=/usr/bin/kill -HUP $MAINPID +ExecStop=/usr/bin/bitcoind stop +PrivateTmp=true + +[Install] +WantedBy=multi-user.target