diff --git a/Makefile b/Makefile index 5dec468..d2a920d 100644 --- a/Makefile +++ b/Makefile @@ -15,6 +15,10 @@ build: # Build binary ./util/build.sh +build-arm: + # Build binary for ARM architecture (aarch64) + ./util/build_arm.sh + # Stop the hushd process in the hushdlwd container #docker_img_stop_hushd: # docker exec -i hushdlwd hush-cli stop diff --git a/util/build-debian-package-SBC.sh b/util/build-debian-package-SBC.sh new file mode 100755 index 0000000..c009a14 --- /dev/null +++ b/util/build-debian-package-SBC.sh @@ -0,0 +1,94 @@ +#!/usr/bin/env bash +# Copyright (c) 2021 The Hush developers +# Distributed under the GPLv3 software license, see the accompanying +# file LICENSE or https://www.gnu.org/licenses/gpl-3.0.en.html +# +# Remix for SBC (Single Board Computer) like PineBook, Rock64, Raspberry Pi, etc. +## Usage: ./util/build-debian-package-SBC.sh + +echo "Let's see who read the README.md or not..." +echo "" + +# Check if lightwalletd is already built on system and exit if it is not +if ! [ -x "$(command -v ./lightwalletd)" ]; then + echo 'Error: lightwalletd is not compiled yet. Run "make build" and try again.' >&2 + echo "" + exit 1 +fi + +# TODO - check that the lightwalletd binary is not x86 and is actually aarch64 + +echo "Let There Be Hush Lightwalletd Debian Packages for ARM!!!" +echo "" +echo "((_,...,_))" +echo " |o o|" +echo " \ /" +echo " ^_^ cp97" +echo "" + +set -e +set -x + +BUILD_PATH="/tmp/lightwalletd-debian-$$" +PACKAGE_NAME="lightwalletd" +SRC_PATH=`pwd` +SRC_DEB=$SRC_PATH/contrib/debian +SRC_DOC=$SRC_PATH/doc +ARCH="aarch64" + +umask 022 + +if [ ! -d $BUILD_PATH ]; then + mkdir $BUILD_PATH +fi + +PACKAGE_VERSION=0.1.1 +DEBVERSION=$(echo $PACKAGE_VERSION) +BUILD_DIR="$BUILD_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH" + +if [ -d $BUILD_DIR ]; then + rm -R $BUILD_DIR +fi + +DEB_BIN=$BUILD_DIR/usr/bin +DEB_CMP=$BUILD_DIR/usr/share/bash-completion/completions +DEB_DOC=$BUILD_DIR/usr/share/doc/$PACKAGE_NAME +DEB_MAN=$BUILD_DIR/usr/share/man/man1 +DEB_SHR=$BUILD_DIR/usr/share/hush +mkdir -p $BUILD_DIR/DEBIAN $DEB_CMP $DEB_BIN $DEB_DOC $DEB_MAN $DEB_SHR +chmod 0755 -R $BUILD_DIR/* + +# Package maintainer scripts (currently empty) +#cp $SRC_DEB/postinst $BUILD_DIR/DEBIAN +#cp $SRC_DEB/postrm $BUILD_DIR/DEBIAN +#cp $SRC_DEB/preinst $BUILD_DIR/DEBIAN +#cp $SRC_DEB/prerm $BUILD_DIR/DEBIAN + +# Copy binary +cp $SRC_PATH/lightwalletd $DEB_BIN/lightwalletd +#strip $DEB_BIN/lightwalletd # script complained, so comment out... +cp $SRC_DEB/changelog $DEB_DOC +cp $SRC_DEB/copyright $DEB_DOC +cp -r $SRC_DEB/examples $DEB_DOC +# Copy manpage +cp $SRC_DOC/man/lightwalletd.1 $DEB_MAN/lightwalletd.1 + +# Gzip files +gzip --best -n $DEB_MAN/lightwalletd.1 + +cd $SRC_PATH/contrib + +# Create the control file +# had to comment line below to move forward in this build script... +#dpkg-shlibdeps $DEB_BIN/lightwalletd +dpkg-gencontrol -P$BUILD_DIR -v$DEBVERSION + +# Create the Debian package +fakeroot dpkg-deb --build $BUILD_DIR +cp $BUILD_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb $SRC_PATH +shasum -a 256 $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb +# Analyze with Lintian, reporting bugs and policy violations +# Arch does not have lintian, as it's a Debian package, so commenting this out +# To-DO - test on Debian/Ubuntu, create AUR lintian package +#lintian -i $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb +exit 0 diff --git a/util/build-debian-package.sh b/util/build-debian-package.sh index a8d695a..c9d6fd0 100755 --- a/util/build-debian-package.sh +++ b/util/build-debian-package.sh @@ -1,8 +1,8 @@ #!/bin/bash # Copyright (c) 2021 The Hush developers # Distributed under the GPLv3 software license, see the accompanying -# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html - +# file LICENSE or https://www.gnu.org/licenses/gpl-3.0.en.html +# ## Usage: ./util/build-debian-package.sh echo "Let's see who read the README.md or not..." diff --git a/util/build.sh b/util/build.sh index 7a47e44..42825db 100755 --- a/util/build.sh +++ b/util/build.sh @@ -1,6 +1,9 @@ #!/usr/bin/env bash # Copyright 2021 The Hush Developers -# Released under GPLv3 +# Distributed under the GPLv3 software license, see the accompanying +# file LICENSE or https://www.gnu.org/licenses/gpl-3.0.en.html + +# Purpose: Script to build Hush lightwalletd on x86 64-bit arch # Check if go is installed on system and exits if it is not if ! [ -x "$(command -v go)" ]; then diff --git a/util/build_arm.sh b/util/build_arm.sh new file mode 100755 index 0000000..63ddd79 --- /dev/null +++ b/util/build_arm.sh @@ -0,0 +1,34 @@ +#!/usr/bin/env bash +# Copyright 2021 The Hush Developers +# Distributed under the GPLv3 software license, see the accompanying +# file LICENSE or https://www.gnu.org/licenses/gpl-3.0.en.html +# +# Purpose: Script to build the ARM or aarch64 architecture, +# which is what the PinePhone boards are running + +# Check if go is installed on system and exits if it is not +if ! [ -x "$(command -v go)" ]; then + echo 'Error: go is not installed. Install go and try again.' >&2 + exit 1 +fi + +echo "" +echo "Welcome to the Hush magic folks..." +echo "" +echo ".------..------..------..------..------..------..------..------..------..------..------..------." +echo "|L.--. ||I.--. ||G.--. ||H.--. ||T.--. ||W.--. ||A.--. ||L.--. ||L.--. ||E.--. ||T.--. ||D.--. |" +echo "| :/\: || (\/) || :/\: || :/\: || :/\: || :/\: || (\/) || :/\: || :/\: || (\/) || :/\: || :/\: |" +echo "| (__) || :\/: || :\/: || (__) || (__) || :\/: || :\/: || (__) || (__) || :\/: || (__) || (__) |" +echo "| '--'L|| '--'I|| '--'G|| '--'H|| '--'T|| '--'W|| '--'A|| '--'L|| '--'L|| '--'E|| '--'T|| '--'D|" +echo "+------'+------'+------'+------'+------'+------'+------'+------'+------'+------'+------'+------'" + +# now to compiling... +echo "" +echo "You have go installed, so starting to compile Hush lightwalletd for you..." +cd `pwd`/cmd/server +env GOOS=linux GOARCH=arm64 go build -o lightwalletd_aarch64 main.go +mv lightwalletd_aarch64 lightwalletd +mv lightwalletd `pwd`/../../lightwalletd +echo "" +echo "Hush lightwalletd is now compiled for your ARM farm or Pine Rock64. Enjoy and reach out if you need support." +echo "For options, run ./lightwalletd --help"