summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorMFW782021-04-15 06:49:40 +0000
committerMFW782021-04-15 06:49:40 +0000
commit22bcd9b797e89ef13076d0077c1a8bc7f893a054 (patch)
treeac1710a49559e79386125222cd2586ed66abea49
downloadaur-22bcd9b797e89ef13076d0077c1a8bc7f893a054.tar.gz
Initial commit
-rw-r--r--.SRCINFO23
-rw-r--r--PKGBUILD36
-rw-r--r--swarm-bee-clef.install48
3 files changed, 107 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..00f04170d303
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,23 @@
+pkgbase = swarm-bee-clef
+ pkgdesc = Go Ethereum's external signer packaged for bee
+ pkgver = 0.4.9
+ pkgrel = 1
+ url = https://swarm.ethereum.org/
+ install = swarm-bee-clef.install
+ arch = x86_64
+ license = GPLv3
+ makedepends = go
+ makedepends = git
+ depends = bash
+ optdepends = bee-clef: external signer for bee
+ conflicts = bee-clef-bin
+ options = !strip
+ options = !buildflags
+ options = !makeflags
+ backup = etc/bee-clef/4byte.json
+ backup = etc/bee-clef/rules.js
+ source = git+https://github.com/ethersphere/bee-clef.git#tag=v0.4.9
+ sha512sums = SKIP
+
+pkgname = swarm-bee-clef
+
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..031bd02c2e1f
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,36 @@
+# Maintainer: MFW78 <mfw78@chasingseed.com>
+
+pkgname=swarm-bee-clef
+pkgver=0.4.9
+pkgrel=1
+pkgdesc="Go Ethereum's external signer packaged for bee"
+arch=('x86_64')
+url='https://swarm.ethereum.org/'
+license=('GPLv3')
+depends=('bash')
+optdepends=('bee-clef: external signer for bee')
+makedepends=('go' 'git')
+options=('!strip' '!buildflags' '!makeflags')
+conflicts=('bee-clef-bin')
+backup=(
+ 'etc/bee-clef/4byte.json'
+ 'etc/bee-clef/rules.js'
+)
+source=("git+https://github.com/ethersphere/bee-clef.git#tag=v${pkgver}")
+sha512sums=('SKIP')
+install="${pkgname}.install"
+
+build() {
+ cd "$srcdir/bee-clef"
+ export GOBIN="$srcdir/bee-clef"
+ go install github.com/ethereum/go-ethereum/cmd/clef@latest
+}
+
+package() {
+ cd "$srcdir/bee-clef"
+ install -Dm644 LICENSE -t "$pkgdir/usr/share/licenses/bee-clef"
+ install -Dm644 packaging/{4byte.json,rules.js} -t "$pkgdir/etc/bee-clef"
+ install -Dm644 packaging/bee-clef.service -t "$pkgdir/usr/lib/systemd/system"
+ install -Dm755 packaging/bee-clef-{keys,service} -t "$pkgdir/usr/bin"
+ install -Dm755 clef -t "$pkgdir/usr/bin"
+}
diff --git a/swarm-bee-clef.install b/swarm-bee-clef.install
new file mode 100644
index 000000000000..1dfabfef03a7
--- /dev/null
+++ b/swarm-bee-clef.install
@@ -0,0 +1,48 @@
+pre_install() {
+ if ! getent passwd bee-clef >/dev/null; then
+ useradd -r -d /var/lib/bee-clef -s /sbin/nologin -c 'Clef user' -U bee-clef
+ fi
+
+ if getent passwd bee >/dev/null; then
+ usermod -a -G bee-clef bee >/dev/null
+ fi
+
+ if ! test -d /var/lib/bee-clef; then
+ mkdir -p /var/lib/bee-clef/keystore
+ chmod 0750 /var/lib/bee-clef
+ chmod 0700 /var/lib/bee-clef/keystore
+ chown -R bee-clef:bee-clef /var/lib/bee-clef
+ fi
+
+ if ! test -f /var/lib/bee-clef/password; then
+ tr </dev/urandom -dc _A-Z-a-z-0-9 2>/dev/null | head -c32 >/var/lib/bee-clef/password
+ chmod 0600 /var/lib/bee-clef/password
+ chown bee-clef:bee-clef /var/lib/bee-clef/password
+ fi
+}
+
+post_install() {
+ SECRET=$(cat /var/lib/bee-clef/password)
+ parse_json() { echo $1 | sed -e 's/[{}]/''/g' | sed -e 's/", "/'\",\"'/g' | sed -e 's/" ,"/'\",\"'/g' | sed -e 's/" , "/'\",\"'/g' | sed -e 's/","/'\"---SEPERATOR---\"'/g' | awk -F=':' -v RS='---SEPERATOR---' "\$1~/\"$2\"/ {print}" | sed -e "s/\"$2\"://" | tr -d "\n\t" | sed -e 's/\\"/"/g' | sed -e 's/\\\\/\\/g' | sed -e 's/^[ \t]*//g' | sed -e 's/^"//' -e 's/"$//'; }
+ clef --configdir /var/lib/bee-clef --stdio-ui init >/dev/null 2>&1 <<EOF
+$SECRET
+$SECRET
+EOF
+ clef --keystore /var/lib/bee-clef/keystore --stdio-ui newaccount --lightkdf >/dev/null 2>&1 <<EOF
+$SECRET
+EOF
+ clef --keystore /var/lib/bee-clef/keystore --configdir /var/lib/bee-clef --stdio-ui setpw 0x$(parse_json $(cat /var/lib/bee-clef/keystore/*) address) >/dev/null 2>&1 <<EOF
+$SECRET
+$SECRET
+$SECRET
+EOF
+ clef --keystore /var/lib/bee-clef/keystore --configdir /var/lib/bee-clef --stdio-ui attest $(sha256sum /etc/bee-clef/rules.js | cut -d' ' -f1 | tr -d '\n') >/dev/null 2>&1 <<EOF
+$SECRET
+EOF
+ chown -R bee-clef:bee-clef /var/lib/bee-clef
+}
+
+post_remove() {
+ userdel bee-clef >/dev/null 2>&1 || true
+ groupdel bee-clef >/dev/null 2>&1 || true
+}