aboutsummarylogtreecommitdiffstats
diff options
context:
space:
mode:
authornolash2019-08-21 19:59:09 +0200
committernolash2019-08-21 19:59:09 +0200
commitb8f43620bb8b373616b636c256d3d98c21bd41d9 (patch)
tree868c3949c98e97972d581e52be030d6d00519729
parent6b7fdd31a5da5245ed5f53a77dbed906983631b1 (diff)
downloadaur-b8f43620bb8b373616b636c256d3d98c21bd41d9.tar.gz
Add wallet generation script
-rw-r--r--PKGBUILD35
-rw-r--r--go-swarm.install31
-rw-r--r--swarm-resources.tar.gzbin0 -> 1257 bytes
3 files changed, 62 insertions, 4 deletions
diff --git a/PKGBUILD b/PKGBUILD
index 4be8e7a57ce8..b1171eba4dc2 100644
--- a/PKGBUILD
+++ b/PKGBUILD
@@ -11,16 +11,18 @@ groups=()
depends=()
makedepends=('go>=1.10.0' 'git')
checkdepends=()
-optdepends=('openssl')
+optdepends=('python-scrypt' 'python-ecdsa' 'python-pycryptodome' 'go-ethereum')
provides=('go-swarm')
conflicts=()
replaces=()
backup=()
options=()
-install=
-source=("https://github.com/ethersphere/swarm/archive/v${pkgver}.tar.gz" "v${pkgver}.tar.gz.sig")
+install=${pkgname}.install
+source=("https://github.com/ethersphere/swarm/archive/v${pkgver}.tar.gz"
+ "v${pkgver}.tar.gz.sig"
+ "swarm-resources.tar.gz")
noextract=()
-md5sums=("7f394b218657463761a555d5c598a320" "SKIP");
+md5sums=("7f394b218657463761a555d5c598a320" "SKIP" "d86f000521890a4e84a9ad3e97c30a60");
validpgpkeys=("0826EDA1702D1E87C6E2875121D2E7BB88C2A746")
prepare() {
@@ -36,18 +38,43 @@ prepare() {
mkdir -vp "$SWARMPATH"
fi
mv -v ${srcdir}/swarm-${pkgver} ${SWARMPATH}/swarm
+
}
build() {
msg "Building the swarm binary"
msg2 "using gopath $GOPATH"
go build -o build/swarm -v ${SWARMPATH}/swarm/cmd/swarm
+
+ getent group bzz > /dev/null || groupadd -r bzz
+ getent passwd bzz > /dev/null || useradd -g bzz -d /var/lib/bzz -m -r
}
check() {
+ pythonwalletdepends=1
+ gethwalletdepends=1
+ for m in ${optdepends[@]}; do
+ if [ ! pacman -Qi $m &> /dev/null ]; then
+ if [ $m =~ /^python-/ ]; then
+ pythonwalletdepends=0
+ else
+ gethwalletdepends=0
+ fi
+ warning "missing optional depend ${m}"
+ fi
+ done
+ dependsdir="/tmp/.${pkgname}-depends-${pkgver}-${pkgrel}"
+ mkdir -p ${dependsdir}
+ if [ ${pythonwalletdepends} -eq 1 ]; then
+ touch ${dependsdir}/.havepythonwallet
+ fi
+ if [ ${gethwalletdepends} -eq 1 ]; then
+ touch ${dependsdir}/.havegethwallet
+ fi
warning "still need to add checks"
}
package() {
install -v -D -m0755 build/swarm ${pkgdir}/usr/local/bin/swarm
+ install -v -D -m0700 swarm-genkey.py ${pkgdir}/usr/local/bin/swarm-genkey
}
diff --git a/go-swarm.install b/go-swarm.install
new file mode 100644
index 000000000000..65f2fe638196
--- /dev/null
+++ b/go-swarm.install
@@ -0,0 +1,31 @@
+post_install () {
+ dependsdir=/tmp/.go-swarm-depends-$1
+ mkdir -p /var/lib/bzz/keystore
+
+ if [ -f "${dependsdir}/.havepythonwallet" ]; then
+ echo "generating wallet with swarm-genkey"
+ tmpkey=$(mktemp -d)
+ pushd ${tmpkey}
+ /usr/local/bin/swarm-genkey
+ install -v -D -m600 .swarm-pass /var/lib/bzz/.swarm-pass
+ install -v -D -m600 UTC* /var/lib/bzz/keystore/
+ popd
+ rm -vrf ${tmpkey}
+ elif [ -f "${dependsdir}/.havegethwallet" ]; then
+ echo "generating wallet with geth"
+ tmpkey=$(mktemp -d)
+ pushd ${tmpkey}
+ dd if=/dev/urandom of=.swarm-pass bs=1 count=64
+ geth --datadir /var/lib/bzz --password ${tmpkey}/.swarm-pass account new
+ install -v -D -m600 .swarm-pass /var/lib/bzz/.swarm-pass
+ popd
+ else
+ echo "Missing optional dependencies required to automatically generate a ethereum wallet for the swarm node"
+ echo "You will not be able to run a node with it"
+ echo "You can generate it manually later using go-ethereum or the swarm-genkey.py script provided this package, provided dependencies are met"
+ fi
+ unlink ${dependsdir}/.havepythonwallet
+ unlink ${dependsdir}/.havegethwallet
+ chown -v bzz:bzz /var/lib/bzz -R
+ chmod 700 /var/lib/bzz/keystore
+}
diff --git a/swarm-resources.tar.gz b/swarm-resources.tar.gz
new file mode 100644
index 000000000000..bd372d48c0eb
--- /dev/null
+++ b/swarm-resources.tar.gz
Binary files differ