diff options
author | Moses Narrow | 2019-09-06 16:06:02 -0500 |
---|---|---|
committer | Moses Narrow | 2019-09-06 16:06:02 -0500 |
commit | 9b4297837b22ff93879aca898d3d5c56333d9f37 (patch) | |
tree | 74ef81a2f1b8b3448cbdc5c537f9edf05c427559 | |
parent | 2ac641a6cb11a8e4e44eabc6c81817bd3cc228cf (diff) | |
download | aur-9b4297837b22ff93879aca898d3d5c56333d9f37.tar.gz |
Deterministic Docker Build of the wallet
-rw-r--r-- | .SRCINFO | 18 | ||||
-rw-r--r-- | Dockerfile | 20 | ||||
-rw-r--r-- | PKGBUILD | 138 |
3 files changed, 150 insertions, 26 deletions
@@ -1,10 +1,20 @@ pkgbase = skycoin-bin - pkgdesc = Skycoin Cryptocurrency Wallet; binary release - pkgver = 0.0.0 + pkgdesc = Skycoin Cryptocurrency Wallet; Deterministic Build + pkgver = 0.26.0 pkgrel = 1 url = https://github.com/skycoin/skycoin - arch = any - sha256sums = BINARY RELEASE POSSIBLY COMPROMISED ; DISABLING UNTIL FURTHER NOTICE + arch = x86_64 + makedepends = git + makedepends = docker + provides = skycoin + source = https://github.com/skycoin/skycoin/archive/v0.26.0.tar.gz + source = https://dl.google.com/go/go1.13.linux-amd64.tar.gz + source = Dockerfile + sha256sums = 60f7f2a7c33dbe754ffc74b86de7c2a759e246a83953d4d52fb869d1b3fa1ee2 + sha256sums = 68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856 + sha256sums = SKIP pkgname = skycoin-bin + options = !strip + options = staticlibs diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 000000000000..521ffa857e09 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,20 @@ +FROM debian:stretch + +RUN apt-get update && apt-get install -y unzip wget tar ca-certificates git build-essential +run mkdir /sources +ADD docker /sources +RUN mv /sources/go /go +RUN mkdir -p /opt/go && cp -r /go /opt/go/go1.13 +RUN mv /sources/skycoin* /sources/skycoin +RUN cd /opt/go/go1.13/src && GOROOT_BOOTSTRAP=/go ./make.bash + +ENV PATH "/opt/go/go1.13/bin:$PATH" + +RUN mkdir -p /home/skycoin/go/src/github.com/skycoin/ +RUN cp -r /sources/skycoin /home/skycoin/go/src/github.com/skycoin/skycoin +RUN rm -rf /sources +RUN cd /home/skycoin/go/src/github.com/skycoin/skycoin + +ENV GOPATH /home/skycoin/go + +ENTRYPOINT ["go"] @@ -1,20 +1,26 @@ # Maintainer: Moses Narrow <moe_narrow@use.startmail.com> # Maintainer: Rudi [KittyCash] <rudi@skycoinmail.com> +#t.me/Skycoin for inquiries pkgname=skycoin-bin pkgname1=skycoin projectname=skycoin -pkgdesc="Skycoin Cryptocurrency Wallet; binary release" +pkgdesc="Skycoin Cryptocurrency Wallet; Deterministic Build" pkgoption1="gui-standalone-linux-x64" pkgoption2="gui-standalone-linux-arm" -pkgver='0.0.0' +pkgver='0.26.0' pkggopath="github.com/$projectname/$pkgname1" pkgrel=1 -arch=('any') +arch=('x86_64') url="https://${pkggopath}" license=() -makedepends=() -sha256sums=('BINARY RELEASE POSSIBLY COMPROMISED ; DISABLING UNTIL FURTHER NOTICE') -#t.me/Skycoin for inquiries +makedepends=(git docker) +provides=(skycoin) +source=("${url}/archive/v${pkgver}.tar.gz" +"https://dl.google.com/go/go1.13.linux-amd64.tar.gz" +'Dockerfile') +sha256sums=('60f7f2a7c33dbe754ffc74b86de7c2a759e246a83953d4d52fb869d1b3fa1ee2' +'68a2297eb099d1a76097905a2ce334e3155004ec08cdea85f24527be3c48e856' +'SKIP') #detect architecture & adjust source & checksums accordingly #case "$CARCH" in @@ -29,27 +35,115 @@ sha256sums=('BINARY RELEASE POSSIBLY COMPROMISED ; DISABLING UNTIL FURTHER NOTIC # ;; #esac -#source+=("https://downloads.skycoin.net/wallet/$pkgname1-$pkgver-$_pkgarch.tar.gz") + prepare() { + # https://wiki.archlinux.org/index.php/Go_package_guidelines + mkdir -p ${srcdir}/docker + mv ${srcdir}/${pkgname1}-${pkgver} ${srcdir}/docker/${pkgname1}-${pkgver} + mv ${srcdir}/go ${srcdir}/docker/go + + cp -b ../Dockerfile ${srcdir}/Dockerfile + docker build -t skycoin/wallet:0.26.0 ${srcdir} + + mkdir ${srcdir}/bin +} build() { - msg 2 'creating launcher scripts skycoin-wallet & skycoin-wallet-nohup' - mkdir -p $srcdir/$pkgname1-scripts - cd $srcdir/$pkgname1-scripts - echo -e '#!/bin/bash \n #launch skycoin wallet \n export GOBIN=/usr/lib/skycoin/go/bin \n export GOPATH=GOBIN=/usr/lib/skycoin/go \n skycoin -gui-dir=/usr/lib/skycoin/skycoin/src/gui/static/ -launch-browser=true -enable-all-api-sets=true -enable-gui=true -rpc-interface=false -log-level=debug' > $pkgname1-wallet - chmod +x $pkgname1-wallet - echo -e '#!/bin/bash \n #launch skycoin wallet with nohup \n export GOBIN=/usr/lib/skycoin/go/bin \n export GOPATH=GOBIN=/usr/lib/skycoin/go \n nohup skycoin -gui-dir=/usr/lib/skycoin/skycoin/src/gui/static -launch-browser=true -enable-all-api-sets=true -enable-gui=true -log-level=debug > /dev/null 2>&1 &echo "skycoin wallet has started"' > $pkgname1-wallet-nohup - chmod +x $pkgname1-wallet-nohup + +docker run -it --rm -v ${srcdir}:${srcdir} -w ${srcdir} -e CGO_ENABLED=0 skycoin/wallet:0.26.0 build -o ${srcdir}/bin/skycoin github.com/skycoin/skycoin/cmd/skycoin +docker run -it --rm -v ${srcdir}:${srcdir} -w ${srcdir} -e CGO_ENABLED=0 skycoin/wallet:0.26.0 build -o ${srcdir}/bin/newcoin github.com/skycoin/skycoin/cmd/newcoin +docker run -it --rm -v ${srcdir}:${srcdir} -w ${srcdir} -e CGO_ENABLED=0 skycoin/wallet:0.26.0 build -o ${srcdir}/bin/cipher-testdata github.com/skycoin/skycoin/cmd/cipher-testdata +docker run -it --rm -v ${srcdir}:${srcdir} -w ${srcdir} -e CGO_ENABLED=0 skycoin/wallet:0.26.0 build -o ${srcdir}/bin/monitor-peers github.com/skycoin/skycoin/cmd/monitor-peers + +sha256sum ${srcdir}/bin/* > ${srcdir}/sha256sums.txt + +msg 2 'creating launcher scripts skycoin-wallet & skycoin-wallet-nohup' +mkdir -p ${srcdir}/${pkgname1}-scripts +cd ${srcdir}/${pkgname1}-scripts +#Launch wallet in terminal +echo -e '#!/bin/bash +#launch skycoin wallet +export GOBIN=/usr/lib/skycoin/go/bin +export GOPATH=GOBIN=/usr/lib/skycoin/go +skycoin -gui-dir=/usr/lib/skycoin/skycoin/src/gui/static/ -launch-browser=true -enable-all-api-sets=true -enable-gui=true -log-level=debug' > ${pkgname1}-wallet +chmod +x ${pkgname1}-wallet +#launch wallet quietly in the background +echo -e '#!/bin/bash +#launch skycoin wallet with nohup +export GOBIN=/usr/lib/skycoin/go/bin +export GOPATH=GOBIN=/usr/lib/skycoin/go +nohup skycoin -gui-dir=/usr/lib/skycoin/skycoin/src/gui/static -launch-browser=true -enable-all-api-sets=true -enable-gui=true -log-level=debug > /dev/null 2>&1 &echo "skycoin wallet has started"' > ${pkgname1}-wallet-nohup +chmod +x ${pkgname1}-wallet-nohup +#Launch skycoin daemon +echo -e '#!/bin/bash +#launch skycoin daemon +export GOBIN=/usr/lib/skycoin/go/bin +export GOPATH=GOBIN=/usr/lib/skycoin/go \n skycoin -gui-dir=/usr/lib/skycoin/skycoin/src/gui/static/ -enable-gui=false -launch-browser=false -log-level=debug -enable-all-api-sets=true' > ${pkgname1}-node +chmod +x ${pkgname1}-node +#stop skycoin +echo -e '#!/bin/bash +#halt skycoin +sudo killall skycoin +sudo killall cli +sudo killall cipher-testdata +sudo killall newcoin +sudo killall monitor-peers +echo "skycoin halted"' > ${pkgname1}-halt +chmod +x ${pkgname1}-halt +# +msg 2 'creating system.d .service files' +#these service files point to skywire & skywire-node-miner scripts from above +#the systemd service files included with skywire are wrong for archlinux (debian formatted) +cd ${srcdir}/ +echo -e '[Unit] +Description=Skycoin Node service +After=network.target +After=network-online.target +[Service] +Type=oneshot +ExecStart=/usr/bin/skycoin-node +RemainAfterExit=yes +ExecStop=/usr/bin/skycoin-halt +TryExec=/usr/bin/skycoin + +[Install] +WantedBy=multi-user.target' > ${pkgname1}-node.service } +#TO DO +#check() { +#} + package() { -msg2 'installing files' -install -Dm755 $srcdir/$pkgname1-$pkgver-$_pkgarch/$pkgname1 $pkgdir/usr/lib/$projectname/go/bin/$pkgname1 -mkdir -p $pkgdir/usr/bin -ln -rTsf $pkgdir/usr/lib/$projectname/go/bin/$pkgname1 $pkgdir/usr/bin/$pkgname1 -chmod 755 $pkgdir/usr/bin/$pkgname1 -cp -r $srcdir/$pkgname1-$pkgver-$_pkgarch $pkgdir/usr/lib/$projectname/$pkgname1 -skycoinscripts=$( ls $srcdir/$pkgname1-scripts ) +options=(!strip staticlibs) +#create directory trees +mkdir -p ${pkgdir}/usr/bin +mkdir -p ${pkgdir}/usr/lib/${projectname}/go/bin +mkdir -p ${pkgdir}/usr/lib/${projectname}/${pkgname1}/src/gui +#install binaries & symlink to /usr/bin +msg2 'installing binaries' +skybin=${srcdir}/bin +#avoid generic names for binaries +#collect the binaries & install +skybins=$( ls "$skybin") +for i in $skybins; do + install -Dm755 ${srcdir}/bin/$i ${pkgdir}/usr/lib/${projectname}/go/bin/$i + ln -rTsf ${pkgdir}/usr/lib/${projectname}/go/bin/$i ${pkgdir}/usr/bin/$i + chmod 755 ${pkgdir}/usr/bin/$i +done +#install the web dir (UI) +cp -r ${srcdir}/docker/${pkgname1}-${pkgver}/src/gui/static ${pkgdir}/usr/lib/${projectname}/${pkgname1}/src/gui +#install the scripts +skycoinscripts=$( ls ${srcdir}/${pkgname1}-scripts ) for i in $skycoinscripts; do -cp $srcdir/$pkgname1-scripts/$i $pkgdir/usr/bin/$i +cp ${srcdir}/${pkgname1}-scripts/$i ${pkgdir}/usr/bin/$i +done +#make symlinks have less generic names +namechange=$(ls --ignore='skycoin*' ${pkgdir}/usr/bin/) +for i in $namechange; do +mv ${pkgdir}/usr/bin/$i ${pkgdir}/usr/bin/${pkgname1}-$i done +#install the system.d service +install -Dm644 ${srcdir}/${pkgname1}-node.service ${pkgdir}/usr/lib/systemd/system/${pkgname1}-node.service } + +#previous #source+=("https://downloads.skycoin.net/wallet/$pkgname1-$pkgver-$_pkgarch.tar.gz") |