summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorAndy Weidenbaum2015-06-09 11:41:58 -0700
committerAndy Weidenbaum2015-06-09 11:41:58 -0700
commitf33a27d01891599a5e183abe97917398074b8bcf (patch)
treebd781fccfb4ffaf25f534d86a4b36a9c5d2675f8
downloadaur-f33a27d01891599a5e183abe97917398074b8bcf.tar.gz
Initial import
-rw-r--r--.SRCINFO32
-rw-r--r--PKGBUILD95
-rw-r--r--electrum-server.install83
-rw-r--r--electrum-server.service20
4 files changed, 230 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..24b11b30b164
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,32 @@
+pkgbase = electrum-server-git
+ pkgdesc = Server to support Electrum python-based Bitcoin client
+ pkgver = 20150223
+ pkgrel = 1
+ url = https://github.com/spesmilo/electrum-server
+ install = electrum-server.install
+ arch = i686
+ arch = x86_64
+ license = AGPL3
+ makedepends = git
+ makedepends = python2-setuptools
+ depends = leveldb
+ depends = openssl
+ depends = python2
+ depends = python2-irc
+ depends = python2-jsonrpclib
+ depends = python2-plyvel
+ depends = python2-pyopenssl
+ depends = snappy
+ optdepends = bitcoin-core: Bitcoin core headless P2P node
+ optdepends = electrum: Bitcoin thin client
+ provides = electrum-server
+ conflicts = electrum-server
+ backup = etc/electrum-server.banner
+ backup = etc/electrum-server.conf
+ source = git+https://github.com/spesmilo/electrum-server
+ source = electrum-server.service
+ sha256sums = SKIP
+ sha256sums = d90503ea4b71c52dfcb68d7cfb6f7ea313380a7d8972e8510d7bbb7494d6f1b4
+
+pkgname = electrum-server-git
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..ae7b6a1b8dc0
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,95 @@
+# Maintainer: Andy Weidenbaum <archbaum@gmail.com>
+# Contributor: Duncan Townsend <duncant@mit.edu>
+# Contributor: Sebastian Lindqvist <dunpin@gmail.com>
+
+pkgname=electrum-server-git
+pkgver=20150223
+pkgrel=1
+pkgdesc="Server to support Electrum python-based Bitcoin client"
+arch=('i686' 'x86_64')
+depends=('leveldb'
+ 'openssl'
+ 'python2'
+ 'python2-irc'
+ 'python2-jsonrpclib'
+ 'python2-plyvel'
+ 'python2-pyopenssl'
+ 'snappy')
+makedepends=('git' 'python2-setuptools')
+optdepends=('bitcoin-core: Bitcoin core headless P2P node'
+ 'electrum: Bitcoin thin client')
+url="https://github.com/spesmilo/electrum-server"
+license=('AGPL3')
+source=(git+https://github.com/spesmilo/electrum-server
+ electrum-server.service)
+sha256sums=('SKIP'
+ 'd90503ea4b71c52dfcb68d7cfb6f7ea313380a7d8972e8510d7bbb7494d6f1b4')
+backup=('etc/electrum-server.banner'
+ 'etc/electrum-server.conf')
+provides=('electrum-server')
+conflicts=('electrum-server')
+install=electrum-server.install
+
+pkgver() {
+ cd ${pkgname%-git}
+ git log -1 --format="%cd" --date=short | sed "s|-||g"
+}
+
+prepare() {
+ cd ${pkgname%-git}
+
+ msg 'Fixing Python version...'
+ find . -type f -print0 | xargs -0 sed -i 's#/usr/bin/python#/usr/bin/python2#g'
+ find . -type f -print0 | xargs -0 sed -i 's#/usr/bin/env python#/usr/bin/env python2#g'
+
+ msg 'Changing electrum.banner to electrum-server.banner...'
+ find . -type f -print0 | xargs -0 sed -i 's#/etc/electrum\.banner#/etc/electrum-server.banner#g'
+
+ msg 'Changing electrum.conf to electrum-server.conf...'
+ cp -dpr --no-preserve=ownership electrum.conf.sample electrum-server.conf.sample
+ find . -type f -print0 | xargs -0 sed -i 's#electrum\.conf#electrum-server.conf#g'
+
+ msg 'Changing electrum.log to electrum-server.log...'
+ find . -type f -print0 | xargs -0 sed -i 's#electrum\.log#electrum-server/electrum-server.log#g'
+}
+
+build() {
+ cd ${pkgname%-git}
+
+ msg 'Building...'
+ python2 setup.py build
+}
+
+package() {
+ cd ${pkgname%-git}
+
+ msg 'Installing license...'
+ install -Dm 644 LICENSE "$pkgdir/usr/share/licenses/electrum-server/LICENSE"
+
+ msg 'Installing documentation...'
+ for _doc in HOWTO.md INSTALL README-IRC.md README.md; do
+ install -Dm 644 $_doc "$pkgdir/usr/share/doc/electrum-server/$_doc"
+ done
+
+ msg 'Installing'
+ install -dm 700 "$pkgdir/usr/share/electrum-server"
+ install -dm 700 "$pkgdir/var/log/electrum-server"
+ python2 setup.py install --root="$pkgdir" --optimize=1
+
+ msg 'Installing electrum-server.conf...'
+ install -Dm 600 electrum-server.conf.sample "$pkgdir/etc/electrum-server.conf"
+
+ msg 'Installing electrum-server.banner...'
+ touch "$pkgdir/etc/electrum-server.banner"
+
+ msg 'Installing electrum-server.service...'
+ install -Dm 644 "$srcdir/electrum-server.service" "$pkgdir/usr/lib/systemd/system/electrum-server.service"
+
+ msg 'Fixing binaries...'
+ rm -f "$pkgdir/usr/bin/electrum-server"
+ mv "$pkgdir/usr/bin/run_electrum_server" "$pkgdir/usr/bin/electrum-server"
+
+ msg 'Cleaning up pkgdir...'
+ find "$pkgdir" -type d -name .git -exec rm -r '{}' +
+ find "$pkgdir" -type f -name .gitignore -exec rm -r '{}' +
+}
diff --git a/electrum-server.install b/electrum-server.install
new file mode 100644
index 000000000000..c6f3df230b38
--- /dev/null
+++ b/electrum-server.install
@@ -0,0 +1,83 @@
+post_install() {
+ _mkuser
+ chown -R electrum-server:electrum-server /etc/electrum-server \
+ /etc/electrum-server.conf \
+ /etc/electrum-server.banner \
+ /usr/share/electrum-server \
+ /var/log/electrum-server
+ printf "%b\n" "$ecdsa"
+}
+
+post_upgrade() {
+ post_install
+}
+
+post_remove() {
+ _rmuser
+}
+
+_mkuser() {
+ getent passwd electrum-server &>/dev/null || {
+ echo -n "Creating electrum-server user... "
+ grep -E "^electrum-server:" /etc/group >/dev/null || groupadd electrum-server
+ useradd -m -d /etc/electrum-server -g electrum-server -s /usr/bin/nologin electrum-server
+ echo "done"
+ }
+}
+
+_rmuser() {
+ echo -n "Removing electrum-server user... "
+ userdel -rf electrum-server 2>/dev/null
+ echo "done"
+}
+
+read -d '' ecdsa <<'EOF'
+########################################################################
+########################################################################
+## ##
+## Electrum Server ##
+## _______________ ##
+## ##
+## Usage: ##
+## ##
+## systemctl start electrum-server ##
+## electrum-server getinfo|peers|numpeers|sessions|numsessions ##
+## ##
+## ##
+## ';,;:. ##
+## 'o' .;d. ##
+## K. :l ##
+## cl .O, ##
+## .c:cclc. ##
+## .;::;. .;ko,. ':::' .',,,. ##
+## .OMMMMMWo ,d,. .oo cXMMMMMX: do. .:d. ##
+## x MMMMMMMMxlX. kdoMMMMMMMMMoxl '0 ##
+## oMMMMMMMN;'K, .Oc;NMMMMMMMX,ld ;k ##
+## :0WMMNk. .cl;,;cl, 'kWMMMWx. :o:,';cc ##
+## .. .'. .oWc. .''. ##
+## 'oc;,;lo. ##
+## ,O. .0. ##
+## :k .0. ##
+## cl,...:o, ##
+## .,,,. ##
+## ##
+## ##
+## ##
+## Say hi to the dev crew, other server operators and fans on ##
+## irc.freenode.net #electrum and we'll try to congratulate you ##
+## on supporting the community by running an Electrum node. ##
+## ##
+## If you're operating a public Electrum server please subscribe ##
+## to or regularly check the following thread: ##
+## ##
+## https://bitcointalk.org/index.php?topic=85475.0 ##
+## ##
+## It'll contain announcements about important updates to Electrum ##
+## server required for a smooth user experience. ##
+## ##
+## Please see /usr/share/doc/electrum-server/HOWTO.md for detailed ##
+## information. ##
+## ##
+########################################################################
+########################################################################
+EOF
diff --git a/electrum-server.service b/electrum-server.service
new file mode 100644
index 000000000000..b2a72c6f67fa
--- /dev/null
+++ b/electrum-server.service
@@ -0,0 +1,20 @@
+[Unit]
+Description=Electrum server
+Wants=bitcoin.service
+After=bitcoin.service
+
+[Service]
+User=electrum-server
+Group=electrum-server
+LimitNOFILE=infinity
+WorkingDirectory=/usr/share/electrum-server
+ExecStart=/usr/bin/electrum-server
+ExecStop=/usr/bin/electrum-server stop
+ExecReload=/usr/bin/kill -HUP $MAINPID
+Restart=always
+RestartSec=60
+StandardOutput=journal
+StandardError=journal
+
+[Install]
+WantedBy=multi-user.target