diff options
author | Andy Weidenbaum | 2015-12-21 21:39:56 -0800 |
---|---|---|
committer | Andy Weidenbaum | 2015-12-21 21:39:56 -0800 |
commit | db83ac532a874387aff7291f5197c9b93a129aff (patch) | |
tree | 80392a8bff7282b5366652503c5cdd85b4897ce9 | |
parent | 8caece5977e86ee80b6738d60f7d15fb5eef0db6 (diff) | |
download | aur-db83ac532a874387aff7291f5197c9b93a129aff.tar.gz |
increment pkgrel to 2; disable btrfs copy-on-write
-rw-r--r-- | .SRCINFO | 4 | ||||
-rw-r--r-- | PKGBUILD | 19 | ||||
-rw-r--r-- | bitcoin.install | 75 |
3 files changed, 82 insertions, 16 deletions
@@ -1,7 +1,9 @@ +# Generated by mksrcinfo v8 +# Tue Dec 22 05:36:06 UTC 2015 pkgbase = bitcoin-core pkgdesc = Bitcoin Core headless P2P node pkgver = 0.11.2 - pkgrel = 1 + pkgrel = 2 url = https://bitcoin.org install = bitcoin.install arch = i686 @@ -2,7 +2,7 @@ pkgname=bitcoin-core pkgver=0.11.2 -pkgrel=1 +pkgrel=2 pkgdesc="Bitcoin Core headless P2P node" arch=('i686' 'x86_64') url="https://bitcoin.org" @@ -59,20 +59,20 @@ package() { cd "$srcdir/${pkgname%-core}-$pkgver" msg2 'Installing license...' - install -Dm 644 COPYING "$pkgdir/usr/share/licenses/${pkgname%-core}/COPYING" + install -Dm 644 COPYING -t "$pkgdir/usr/share/licenses/${pkgname%-core}" msg2 'Installing man pages...' install -Dm 644 contrib/debian/manpages/bitcoind.1 \ - "$pkgdir/usr/share/man/man1/bitcoind.1" + -t "$pkgdir/usr/share/man/man1" install -Dm 644 contrib/debian/manpages/bitcoin-cli.1 \ - "$pkgdir/usr/share/man/man1/bitcoin-cli.1" + -t "$pkgdir/usr/share/man/man1" install -Dm 644 contrib/debian/manpages/bitcoin.conf.5 \ - "$pkgdir/usr/share/man/man5/bitcoin.conf.5" + -t "$pkgdir/usr/share/man/man5" 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'` \ + $(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" @@ -82,13 +82,12 @@ package() { make DESTDIR="$pkgdir" install msg2 'Installing bitcoin.conf...' - install -Dm 600 "$srcdir/bitcoin.conf" "$pkgdir/etc/bitcoin/bitcoin.conf" + install -Dm 600 "$srcdir/bitcoin.conf" -t "$pkgdir/etc/bitcoin" msg2 'Installing bitcoin.service...' - install -Dm 644 "$srcdir/bitcoin.service" \ - "$pkgdir/usr/lib/systemd/system/bitcoin.service" + install -Dm 644 "$srcdir/bitcoin.service" -t "$pkgdir/usr/lib/systemd/system" install -Dm 644 "$srcdir/bitcoin-reindex.service" \ - "$pkgdir/usr/lib/systemd/system/bitcoin-reindex.service" + -t "$pkgdir/usr/lib/systemd/system" msg2 'Installing bitcoin.logrotate...' install -Dm 644 "$srcdir/bitcoin.logrotate" "$pkgdir/etc/logrotate.d/bitcoin" diff --git a/bitcoin.install b/bitcoin.install index 72f96b3a0f26..5c339ad1d62a 100644 --- a/bitcoin.install +++ b/bitcoin.install @@ -1,13 +1,20 @@ +_bc_user=bitcoin +_bc_group=bitcoin + post_install() { _mkuser _mkssl - chown -R bitcoin:bitcoin /etc/bitcoin /srv/bitcoin + # disable Copy-On-Write (btrfs directories only) + for _dir in /srv/bitcoin; do + _is_btrfs "$_dir" && _disable_cow "$_dir" + done + chown -R $_bc_user:$_bc_group /etc/bitcoin /srv/bitcoin printf "%b\n" "$bitcoin" } post_upgrade() { _mkuser - chown -R bitcoin:bitcoin /etc/bitcoin /srv/bitcoin + chown -R $_bc_user:$_bc_group /etc/bitcoin /srv/bitcoin printf "%b\n" "$bitcoin" } @@ -16,21 +23,31 @@ post_remove() { rm -rf /srv/bitcoin } + +# ------------------------------------------------------------------------------ +# helper functions for creating bitcoin-core user / group +# ------------------------------------------------------------------------------ + _mkuser() { getent passwd bitcoin &>/dev/null || { echo -n "Creating bitcoin user... " - grep -E "^bitcoin:" /etc/group >/dev/null || groupadd bitcoin - useradd -m -d /etc/bitcoin -g bitcoin -s /usr/bin/nologin bitcoin 2>/dev/null + 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 bitcoin 2>/dev/null + userdel -rf $_bc_user 2>/dev/null echo "done" } + +# ------------------------------------------------------------------------------ +# helper function for enabling SSL in bitcoin-core +# ------------------------------------------------------------------------------ + _mkssl() { echo -n "Enabling SSL..." # https://en.bitcoin.it/wiki/Enabling_SSL_on_original_client_daemon mkdir -p /{etc,srv}/bitcoin @@ -63,6 +80,54 @@ EOF echo "done" } + +# ------------------------------------------------------------------------------ +# helper functions for disabling btrfs Copy-On-Write (CoW) +# https://wiki.archlinux.org/index.php/Btrfs#Copy-On-Write_.28CoW.29 +# ------------------------------------------------------------------------------ + +# check if dir is btrfs +_is_btrfs() { + if [[ $(df -TP "$1" | tail -n 1 | awk '{print $2}') == 'btrfs' ]]; then + return 0 + else + return 1 + fi +} + +# disable btrfs CoW +_chattrify() { + # original dir, with trailing slash stripped if it exists + _orig_dir=$( echo "$1" | sed 's@/$@@' ) + + # if original dir exists, back it up + [[ -d "$1" ]] && mv "$1" "${_orig_dir}"_old + + # re-make original dir + mkdir -p "$1" + + # set permissions on re-made dir + chmod "$2" "$1" + + # disable btrfs CoW on re-made dir + chattr +C "$1" + + # recursive copy to restore backed up dir while maintaining disabled CoW + [[ -d "${_orig_dir}"_old ]] \ + && find "${_orig_dir}"_old -mindepth 1 -maxdepth 1 -exec cp -R '{}' "$1" \; + + # set ownership on re-made dir + chown -R $3:$4 "$1" + + # purge backed up dir + [[ -d "${_orig_dir}"_old ]] && rm -rf "${_orig_dir}"_old +} + +_disable_cow() { + _chattrify "$1" "700" "$_bc_user" "$_bc_group" +} + + read -d '' bitcoin <<'EOF' ######################################################################## ######################################################################## |