summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Weidenbaum2015-12-21 21:39:56 -0800
committerAndy Weidenbaum2015-12-21 21:39:56 -0800
commitdb83ac532a874387aff7291f5197c9b93a129aff (patch)
tree80392a8bff7282b5366652503c5cdd85b4897ce9
parent8caece5977e86ee80b6738d60f7d15fb5eef0db6 (diff)
downloadaur-db83ac532a874387aff7291f5197c9b93a129aff.tar.gz
increment pkgrel to 2; disable btrfs copy-on-write
-rw-r--r--.SRCINFO4
-rw-r--r--PKGBUILD19
-rw-r--r--bitcoin.install75
3 files changed, 82 insertions, 16 deletions
diff --git a/.SRCINFO b/.SRCINFO
index ab60ab87bc6f..e520a9d5d073 100644
--- a/.SRCINFO
+++ b/.SRCINFO
@@ -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
diff --git a/PKGBUILD b/PKGBUILD
index fe01964265f6..da40319fffff 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -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'
########################################################################
########################################################################