From 2916a621477cd4722af9f127452ada889dfa9075 Mon Sep 17 00:00:00 2001 From: fekt Date: Sat, 8 Jul 2023 02:15:42 +0000 Subject: [PATCH 1/4] Update MXE dependencies --- advanced/cross-compile-silent-dragon-for-windows-with-mxe.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/advanced/cross-compile-silent-dragon-for-windows-with-mxe.md b/advanced/cross-compile-silent-dragon-for-windows-with-mxe.md index 476e33f..2271491 100644 --- a/advanced/cross-compile-silent-dragon-for-windows-with-mxe.md +++ b/advanced/cross-compile-silent-dragon-for-windows-with-mxe.md @@ -9,7 +9,7 @@ sudo apt-get -y install clang g++ build-essential make mingw-w64 git pkg-config ## Install QT packages ``` -sudo apt-get -y install qtdeclarative5-dev qt5-qmake libqt5websockets5-dev qtcreator +sudo apt-get -y install qtdeclarative5-dev qt5-qmake qt5-default libqt5websockets5-dev qtcreator ``` ## Install MXE dependencies @@ -34,6 +34,7 @@ sudo apt-get install \ libgdk-pixbuf2.0-dev \ libltdl-dev \ libgl-dev \ + libpcre3-dev \ libssl-dev \ libtool-bin \ libxml-parser-perl \ @@ -44,8 +45,10 @@ sudo apt-get install \ patch \ perl \ python3 \ + python3-distutils \ python3-mako \ python3-pkg-resources \ + python-is-python3 \ ruby \ sed \ unzip \ From 13b8f508ed4832db2c1a293f63ce738c677f52e1 Mon Sep 17 00:00:00 2001 From: jahway603 Date: Sat, 8 Jul 2023 07:53:56 -0400 Subject: [PATCH 2/4] added only script that currently works to cross-compile ARM (aarch64) binaries --- advanced/build-arm-xcompile.sh | 139 +++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 advanced/build-arm-xcompile.sh diff --git a/advanced/build-arm-xcompile.sh b/advanced/build-arm-xcompile.sh new file mode 100644 index 0000000..6be6844 --- /dev/null +++ b/advanced/build-arm-xcompile.sh @@ -0,0 +1,139 @@ +#!/usr/bin/env bash +# Copyright (c) 2016-2023 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 + +# For use with https://git.hush.is/jahway603/hush-docs/src/branch/master/advanced/cross-compile-hush-full-node-to-aarch64-with-docker.md, +# Please follow that +set -eu -o pipefail + +# Check if cmake, a new dependency for randomx support, is installed on system and exits if it is not +if ! [ -x "$(command -v cmake)" ]; then + echo 'Error: cmake is not installed. Install cmake and try again.' >&2 + exit 1 +fi + +function cmd_pref() { + if type -p "$2" > /dev/null; then + eval "$1=$2" + else + eval "$1=$3" + fi +} +cat <<'EOF' + .~~~~~~~~~~~~~~~~. +{{ Building Hush!! }} + `~~~~~~~~~~~~~~~~` + \ ^__^ + \ (@@)\_______ + (__)\ HUSH )\/\ $ + z zz ||----w | z | +zz zz z || z ||xxx z z|z zz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz +EOF + +# If a g-prefixed version of the command exists, use it preferentially. +function gprefix() { + cmd_pref "$1" "g$2" "$2" +} + +gprefix READLINK readlink +cd "$(dirname "$("$READLINK" -f "$0")")/.." + +# Allow user overrides to $MAKE. Typical usage for users who need it: +# MAKE=gmake ./util/build.sh -j$(nproc) +if [[ -z "${MAKE-}" ]]; then + MAKE=make +fi + +# Allow overrides to $BUILD and $HOST for porters. Most users will not need it. +# BUILD=i686-pc-linux-gnu ./util/build.sh +if [[ -z "${BUILD-}" ]]; then + BUILD="$(./depends/config.guess)" +fi +if [[ -z "${HOST-}" ]]; then + HOST="$BUILD" +fi + +# Allow users to set arbitrary compile flags. Most users will not need this. +if [[ -z "${CONFIGURE_FLAGS-}" ]]; then + CONFIGURE_FLAGS="" +fi + +if [ "x$*" = 'x--help' ] +then + cat ./util/dragon.txt + cat < Date: Sun, 9 Jul 2023 05:59:32 -0400 Subject: [PATCH 3/4] added only script that currently works to build debian package for ARM (aarch64) systems --- advanced/build-debian-package-ARM.sh | 120 +++++++++++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100755 advanced/build-debian-package-ARM.sh diff --git a/advanced/build-debian-package-ARM.sh b/advanced/build-debian-package-ARM.sh new file mode 100755 index 0000000..8b48044 --- /dev/null +++ b/advanced/build-debian-package-ARM.sh @@ -0,0 +1,120 @@ +#!/usr/bin/env bash +# Copyright (c) 2016-2023 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 +# +# Remix for SBC (Single Board Computer) like PineBook, Rock64, Raspberry Pi, etc. +## Usage: ./util/build-debian-package-ARM.sh + +# Pre-requisite checks +# Check if lintian is installed and exit if it is not +if ! [ -x "$(command -v lintian)" ]; then + echo 'Error: lintian is not installed yet. Consult your Linux version package manager...' >&2 + echo 'On Debian/Ubuntu, try "sudo apt install lintian"' + echo "" + exit 1 +fi +# Check if fakeroot is installed and exit if it is not +if ! [ -x "$(command -v fakeroot)" ]; then + echo 'Error: fakeroot is not installed yet. Consult your Linux version package manager...' >&2 + echo 'On Debian/Ubuntu, try "sudo apt install fakeroot"' + echo "" + exit 1 +fi + +echo "Let There Be Hush Debian ARM Packages" +echo "" +echo " ______" +echo " |\_______________ (_____\\______________" +echo "HH======#H###############H#######################" +echo ' ~"""""""""""""""`##(_))#H\"""""Y########' +echo " )) \#H\ ##Y###" +echo 'dew " }#H)' +echo "" + +set -e +set -x + +BUILD_PATH="/tmp/hush-debian-$$" +PACKAGE_NAME="hush" +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=$($SRC_PATH/src/hushd --version|grep version|cut -d' ' -f4|cut -d- -f1|sed 's/v//g') +DEBVERSION=$(echo $PACKAGE_VERSION | sed 's/-beta/~beta/' | sed 's/-rc/~rc/' | sed 's/-/+/') +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 + +cp $SRC_PATH/contrib/asmap/asmap.dat $DEB_SHR +cp $SRC_PATH/sapling-spend.params $DEB_SHR +cp $SRC_PATH/sapling-output.params $DEB_SHR +cp $SRC_PATH/src/hushd $DEB_BIN +strip $DEB_BIN/hushd +cp $SRC_PATH/src/hush-cli $DEB_BIN +strip $DEB_BIN/hush-cli +cp $SRC_PATH/src/hush-tx $DEB_BIN +strip $DEB_BIN/hush-tx + +# these are scripts and don't require a strip +cp $SRC_PATH/src/dragonx-cli $DEB_BIN +cp $SRC_PATH/src/dragonxd $DEB_BIN + +cp $SRC_PATH/src/hush-smart-chain $DEB_BIN +#cp $SRC_DEB/changelog $DEB_DOC/changelog.Debian +cp $SRC_DEB/copyright $DEB_DOC +cp -r $SRC_DEB/examples $DEB_DOC +# Copy manpages +cp $SRC_DOC/man/hushd.1 $DEB_MAN/hushd.1 +cp $SRC_DOC/man/hush-cli.1 $DEB_MAN/hush-cli.1 +cp $SRC_DOC/man/hush-tx.1 $DEB_MAN/hush-tx.1 + +# Copy bash completion files +cp $SRC_PATH/contrib/hushd.bash-completion $DEB_CMP/hushd +cp $SRC_PATH/contrib/hush-cli.bash-completion $DEB_CMP/hush-cli +cp $SRC_PATH/contrib/hush-tx.bash-completion $DEB_CMP/hush-tx +# Gzip files +#gzip --best -n $DEB_DOC/changelog +#gzip --best -n $DEB_DOC/changelog.Debian +gzip --best -n $DEB_MAN/hushd.1 +gzip --best -n $DEB_MAN/hush-cli.1 +gzip --best -n $DEB_MAN/hush-tx.1 + +cd $SRC_PATH/contrib + +# Create the control file +dpkg-shlibdeps $DEB_BIN/hushd $DEB_BIN/hush-cli $DEB_BIN/hush-tx +dpkg-gencontrol -P$BUILD_DIR -v$DEBVERSION +#dpkg-gencontrol -P$BUILD_DIR + +# 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 +lintian -i $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-$ARCH.deb +exit 0 From 192b6314432d83233e1b3099a7cef2fc77844af7 Mon Sep 17 00:00:00 2001 From: onryo Date: Tue, 5 Dec 2023 21:05:27 +0000 Subject: [PATCH 4/4] fix autoremove command --- advanced/compile-qt5-from-source.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/advanced/compile-qt5-from-source.md b/advanced/compile-qt5-from-source.md index 183e454..de53f8b 100644 --- a/advanced/compile-qt5-from-source.md +++ b/advanced/compile-qt5-from-source.md @@ -13,7 +13,7 @@ When compiling Qt5 yourself, you are empowered with a configuration that is cons ### Remove & purge all Qt packages ``` -sudo apt -y remove qt5* libqt5* qtcreator && sudo autoremove +sudo apt -y remove qt5* libqt5* qtcreator && sudo apt autoremove ``` ### Download Qt 5.15.2 Source to qt5-sources folder