renamed to util
This commit is contained in:
22
util/afl/afl-build.sh
Executable file
22
util/afl/afl-build.sh
Executable file
@@ -0,0 +1,22 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2016-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
|
||||
# A wrapper around ./zcutil/build.sh for instrumenting the build with AFL:
|
||||
# ./zcutil/afl/afl-build.sh <directory where AFL is installed> <fuzz case>
|
||||
# You may obtain a copy of AFL using ./zcutil/afl/afl-get.sh.
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
export AFL_INSTALL_DIR=$(realpath "$1")
|
||||
FUZZ_CASE="$2"
|
||||
shift 2
|
||||
export AFL_LOG_DIR="$(pwd)"
|
||||
export ZCUTIL=$(realpath "./zcutil")
|
||||
|
||||
cp "./src/fuzzing/$FUZZ_CASE/fuzz.cpp" src/fuzz.cpp
|
||||
|
||||
CONFIGURE_FLAGS="--enable-tests=no --enable-fuzz-main" "$ZCUTIL/build.sh" "CC=$ZCUTIL/afl/hush-wrapper-gcc" "CXX=$ZCUTIL/afl/hush-wrapper-g++" AFL_HARDEN=1 "$@"
|
||||
|
||||
echo "You can now run AFL as follows:"
|
||||
echo "$ ./zcutil/afl/afl-run.sh '$AFL_INSTALL_DIR' '$FUZZ_CASE'"
|
||||
36
util/afl/afl-get.sh
Executable file
36
util/afl/afl-get.sh
Executable file
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2016-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
|
||||
# Obtains and builds a copy of AFL from source.
|
||||
# ./zcutil/afl/afl-get.sh <directory to build and install AFL in>
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
mkdir -p "$1"
|
||||
cd "$1"
|
||||
|
||||
if [ ! -z "$(ls -A .)" ]; then
|
||||
echo "$1 is not empty. This script will only attempt to build AFL in an empty directory."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Get the AFL source
|
||||
rm -f afl-latest.tgz
|
||||
wget http://lcamtuf.coredump.cx/afl/releases/afl-latest.tgz
|
||||
sha256sum afl-latest.tgz | grep '43614b4b91c014d39ef086c5cc84ff5f068010c264c2c05bf199df60898ce045'
|
||||
if [ "$?" != "0" ]
|
||||
then
|
||||
echo "Wrong SHA256 hash for afl"
|
||||
exit
|
||||
fi
|
||||
tar xvf afl-latest.tgz
|
||||
mv afl-*/* .
|
||||
|
||||
# Build AFL
|
||||
make
|
||||
|
||||
echo "You can now build hushd with AFL instrumentation as follows:"
|
||||
echo "$ make clean # if you've already built hushd without AFL instrumentation"
|
||||
echo "$ ./zcutil/afl/afl-build.sh '$(pwd)' <fuzz case> -j\$(nproc)"
|
||||
echo "...where <fuzz case> is the name of a directory in src/fuzzing."
|
||||
23
util/afl/afl-getbuildrun.sh
Executable file
23
util/afl/afl-getbuildrun.sh
Executable file
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2016-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
|
||||
# Builds AFL and an instrumented hushd, then begins fuzzing.
|
||||
# This script must be run from within the top level directory of a hush clone.
|
||||
# Pass it the name of a directory in ./src/fuzzing.
|
||||
# Additional arguments are passed-through to AFL.
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
FUZZ_CASE="$1"
|
||||
shift 1
|
||||
|
||||
export AFL_INSTALL_DIR=$(realpath "./afl-temp")
|
||||
|
||||
if [ ! -d "$AFL_INSTALL_DIR" ]; then
|
||||
mkdir "$AFL_INSTALL_DIR"
|
||||
./zcutil/afl/afl-get.sh "$AFL_INSTALL_DIR"
|
||||
fi
|
||||
|
||||
./zcutil/afl/afl-build.sh "$AFL_INSTALL_DIR" "$FUZZ_CASE" -j$(nproc)
|
||||
./zcutil/afl/afl-run.sh "$AFL_INSTALL_DIR" "$FUZZ_CASE" "$@"
|
||||
12
util/afl/afl-run.sh
Executable file
12
util/afl/afl-run.sh
Executable file
@@ -0,0 +1,12 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2016-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
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
AFL_INSTALL_DIR="$1"
|
||||
FUZZ_CASE="$2"
|
||||
shift 2
|
||||
|
||||
"$AFL_INSTALL_DIR/afl-fuzz" -i "./src/fuzzing/$FUZZ_CASE/input" -o "./src/fuzzing/$FUZZ_CASE/output" "$@" ./src/hushd @@
|
||||
48
util/afl/hush-wrapper
Executable file
48
util/afl/hush-wrapper
Executable file
@@ -0,0 +1,48 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -ex -o pipefail
|
||||
|
||||
export ARGS=$@
|
||||
|
||||
instrument=(
|
||||
"\/src$"
|
||||
|
||||
)
|
||||
|
||||
if [ "$override_instrument" != "" ]
|
||||
then
|
||||
instrument = $override_instrument
|
||||
fi
|
||||
|
||||
# Store the command line we were given to a file
|
||||
|
||||
(echo "$ARGS" ; pwd) >> "$AFL_LOG_DIR/hush-build-wrapper.log"
|
||||
|
||||
# Work out which compiler we were called as
|
||||
|
||||
case $0 in
|
||||
*hush-wrapper-g++)
|
||||
COMPILER="g++"
|
||||
;;
|
||||
*hush-wrapper-gcc)
|
||||
COMPILER="gcc"
|
||||
;;
|
||||
*hush-wrapper)
|
||||
echo "Call this script instead of your regular compiler, and if the absolute path of the CWD the wrapper was called from matches a regex in the array 'instrument', it will call AFL to instrument the resulting binary. Otherwise it will call either g++ or gcc depending on how it was invoked. \$AFL_INSTALL_DIR must be set to the path where AFL is installed."
|
||||
exit
|
||||
;;
|
||||
esac
|
||||
|
||||
# Check if we should instrument
|
||||
|
||||
for i in "${instrument[@]}"
|
||||
do
|
||||
if echo -- "`pwd`" | grep "$i"; then
|
||||
# We found a match, let's instrument this one.
|
||||
echo "Matched directory `pwd` to instrument element $i. Instrumenting this call." >> "$AFL_LOG_DIR/hush-build-wrapper.log"
|
||||
exec -- "$AFL_INSTALL_DIR/afl-$COMPILER" "$@"
|
||||
fi
|
||||
done
|
||||
|
||||
# No match, just pass-through.
|
||||
exec -- "$COMPILER" "$@"
|
||||
1
util/afl/hush-wrapper-g++
Symbolic link
1
util/afl/hush-wrapper-g++
Symbolic link
@@ -0,0 +1 @@
|
||||
hush-wrapper
|
||||
1
util/afl/hush-wrapper-gcc
Symbolic link
1
util/afl/hush-wrapper-gcc
Symbolic link
@@ -0,0 +1 @@
|
||||
hush-wrapper
|
||||
68
util/build-arm.sh
Executable file
68
util/build-arm.sh
Executable file
@@ -0,0 +1,68 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2019-2020 radix42
|
||||
# Copyright (c) 2016-2021 The Hush developers
|
||||
# Original aarch64 port by radix42. Thank you!
|
||||
# Distributed under the GPLv3 software license, see the accompanying
|
||||
# file COPYING or https://www.gnu.org/licenses/gpl-3.0.en.html
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
cat <<'EOF'
|
||||
.~~~~~~~~~~~~~~~~.
|
||||
{{ Building Hush!! }}
|
||||
`~~~~~~~~~~~~~~~~`
|
||||
\ ^__^
|
||||
\ (@@)\_______
|
||||
(__)\ HUSH )\/\ $
|
||||
z zz ||----w | z |
|
||||
zz zz z || z ||xxx z z|z zz
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
zzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz
|
||||
EOF
|
||||
|
||||
if [ "x$*" = 'x--help' ]
|
||||
then
|
||||
cat ./zcutil/dragon.txt
|
||||
cat <<EOF
|
||||
Welcome To The Hush Build System, Here Be Dragons!
|
||||
Usage:
|
||||
$0 --help
|
||||
Show this help message and exit.
|
||||
$0 [ --enable-lcov ] [ MAKEARGS... ]
|
||||
Build Hush and most of its transitive dependencies from
|
||||
source. MAKEARGS are applied to both dependencies and Hush itself. If
|
||||
--enable-lcov is passed, Hush is configured to add coverage
|
||||
instrumentation, thus enabling "make cov" to work.
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
set -x
|
||||
cd "$(dirname "$(readlink -f "$0")")/.."
|
||||
|
||||
# If --enable-lcov is the first argument, enable lcov coverage support:
|
||||
LCOV_ARG=''
|
||||
HARDENING_ARG='--disable-hardening'
|
||||
if [ "x${1:-}" = 'x--enable-lcov' ]
|
||||
then
|
||||
LCOV_ARG='--enable-lcov'
|
||||
HARDENING_ARG='--disable-hardening'
|
||||
shift
|
||||
fi
|
||||
|
||||
# BUG: parameterize the platform/host directory:
|
||||
PREFIX="$(pwd)/depends/aarch64-unknown-linux-gnu/"
|
||||
|
||||
HOST=aarch64-unknown-linux-gnu BUILD=aarch64-unknown-linux-gnu make "$@" -C ./depends/ V=1 NO_QT=1
|
||||
./autogen.sh
|
||||
CONFIG_SITE="$(pwd)/depends/aarch64-unknown-linux-gnu/share/config.site" ./configure --prefix="${PREFIX}" --host=aarch64-unknown-linux-gnu --build=aarch64-unknown-linux-gnu --with-gui=no --enable-rust=no "$HARDENING_ARG" "$LCOV_ARG" CXXFLAGS='-fwrapv -fno-strict-aliasing -g'
|
||||
|
||||
#BUILD CCLIB
|
||||
|
||||
WD=$PWD
|
||||
cd src/cc
|
||||
echo $PWD
|
||||
./makecustom
|
||||
cd $WD
|
||||
|
||||
make "$@" V=1
|
||||
115
util/build-debian-package-ARM.sh
Executable file
115
util/build-debian-package-ARM.sh
Executable file
@@ -0,0 +1,115 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2016-2022 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: ./zcutil/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
|
||||
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
|
||||
89
util/build-debian-package.sh
Executable file
89
util/build-debian-package.sh
Executable file
@@ -0,0 +1,89 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2016-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
|
||||
## Usage: ./zcutil/build-debian-package.sh
|
||||
|
||||
echo "Let There Be Hush Debian Packages"
|
||||
|
||||
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
|
||||
|
||||
umask 022
|
||||
|
||||
if [ ! -d $BUILD_PATH ]; then
|
||||
mkdir $BUILD_PATH
|
||||
fi
|
||||
|
||||
#PACKAGE_VERSION=3.6.0
|
||||
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-amd64"
|
||||
|
||||
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
|
||||
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-amd64.deb $SRC_PATH
|
||||
shasum -a 256 $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-amd64.deb
|
||||
# Analyze with Lintian, reporting bugs and policy violations
|
||||
lintian -i $SRC_PATH/$PACKAGE_NAME-$PACKAGE_VERSION-amd64.deb
|
||||
exit 0
|
||||
62
util/build-mac.sh
Executable file
62
util/build-mac.sh
Executable file
@@ -0,0 +1,62 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2016-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
|
||||
|
||||
export CC=gcc-8
|
||||
export CXX=g++-8
|
||||
export LIBTOOL=libtool
|
||||
export AR=ar
|
||||
export RANLIB=ranlib
|
||||
export STRIP=strip
|
||||
export OTOOL=otool
|
||||
export NM=nm
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
if [ "x$*" = 'x--help' ]
|
||||
then
|
||||
cat <<EOF
|
||||
Usage:
|
||||
|
||||
$0 --help
|
||||
Show this help message and exit.
|
||||
|
||||
$0 [ --enable-lcov ] [ MAKEARGS... ]
|
||||
Build Hush and most of its transitive dependencies from
|
||||
source. MAKEARGS are applied to both dependencies and Hush itself. If
|
||||
--enable-lcov is passed, Hush is configured to add coverage
|
||||
instrumentation, thus enabling "make cov" to work.
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# If --enable-lcov is the first argument, enable lcov coverage support:
|
||||
LCOV_ARG=''
|
||||
HARDENING_ARG='--disable-hardening'
|
||||
if [ "x${1:-}" = 'x--enable-lcov' ]
|
||||
then
|
||||
LCOV_ARG='--enable-lcov'
|
||||
HARDENING_ARG='--disable-hardening'
|
||||
shift
|
||||
fi
|
||||
|
||||
TRIPLET=`./depends/config.guess`
|
||||
PREFIX="$(pwd)/depends/$TRIPLET"
|
||||
|
||||
make "$@" -C ./depends/ V=1 NO_QT=1
|
||||
|
||||
#BUILD CCLIB
|
||||
|
||||
WD=$PWD
|
||||
cd src/cc
|
||||
echo $PWD
|
||||
./makecustom
|
||||
cd $WD
|
||||
|
||||
./autogen.sh
|
||||
CPPFLAGS="-I$PREFIX/include -arch x86_64" LDFLAGS="-L$PREFIX/lib -arch x86_64 -Wl,-no_pie" \
|
||||
CXXFLAGS='-arch x86_64 -I/usr/local/Cellar/gcc\@8/8.3.0/include/c++/8.3.0/ -I$PREFIX/include -fwrapv -fno-strict-aliasing -Wno-builtin-declaration-mismatch -Werror -g -Wl,-undefined -Wl,dynamic_lookup' \
|
||||
./configure --prefix="${PREFIX}" --with-gui=no "$HARDENING_ARG" "$LCOV_ARG"
|
||||
|
||||
make "$@" V=1 NO_GTEST=1 STATIC=1
|
||||
27
util/build-win.sh
Executable file
27
util/build-win.sh
Executable file
@@ -0,0 +1,27 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2016-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
|
||||
export HOST=x86_64-w64-mingw32
|
||||
CXX=x86_64-w64-mingw32-g++-posix
|
||||
CC=x86_64-w64-mingw32-gcc-posix
|
||||
PREFIX="$(pwd)/depends/$HOST"
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
set -x
|
||||
cd "$(dirname "$(readlink -f "$0")")/.."
|
||||
|
||||
cd depends/ && make HOST=$HOST V=1 NO_QT=1
|
||||
cd ../
|
||||
WD=$PWD
|
||||
cd src/cc
|
||||
echo $PWD
|
||||
./makecustom
|
||||
cd $WD
|
||||
|
||||
./autogen.sh
|
||||
CONFIG_SITE=$PWD/depends/x86_64-w64-mingw32/share/config.site CXXFLAGS="-DPTW32_STATIC_LIB -DCURL_STATICLIB -fopenmp -pthread" ./configure --prefix="${PREFIX}" --host=x86_64-w64-mingw32 --enable-static --disable-shared
|
||||
sed -i 's/-lboost_system-mt /-lboost_system-mt-s /' configure
|
||||
cd src/
|
||||
CC="${CC} -g " CXX="${CXX} -g " make V=1 hushd.exe hush-cli.exe hush-tx.exe
|
||||
137
util/build.sh
Executable file
137
util/build.sh
Executable file
@@ -0,0 +1,137 @@
|
||||
#!/usr/bin/env bash
|
||||
# Copyright (c) 2016-2022 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
|
||||
|
||||
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 ./zcutil/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 ./zcutil/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 ./zcutil/dragon.txt
|
||||
cat <<EOF
|
||||
Welcome To The Hush Build System, Here Be Dragons!
|
||||
Usage:
|
||||
$0 --help
|
||||
Show this help message and exit.
|
||||
$0 [ --enable-lcov || --disable-tests ] [ --disable-mining ] [ --disable-libs ] [ MAKEARGS... ]
|
||||
Build Hush and most of its transitive dependencies from source. MAKEARGS are applied to both dependencies and Hush itself.
|
||||
If --enable-lcov is passed, Hush is configured to add coverage instrumentation, thus enabling "make cov" to work.
|
||||
If --disable-tests is passed instead, the Hush tests are not built.
|
||||
If --disable-mining is passed, Hush is configured to not build any mining code. It must be passed after the test arguments, if present.
|
||||
It must be passed after the test/mining arguments, if present.
|
||||
EOF
|
||||
exit 0
|
||||
fi
|
||||
|
||||
set -x
|
||||
|
||||
# If --enable-lcov is the first argument, enable lcov coverage support:
|
||||
LCOV_ARG=''
|
||||
HARDENING_ARG='--enable-hardening'
|
||||
TEST_ARG=''
|
||||
if [ "x${1:-}" = 'x--enable-lcov' ]
|
||||
then
|
||||
LCOV_ARG='--enable-lcov'
|
||||
HARDENING_ARG='--disable-hardening'
|
||||
shift
|
||||
elif [ "x${1:-}" = 'x--disable-tests' ]
|
||||
then
|
||||
TEST_ARG='--enable-tests=no'
|
||||
shift
|
||||
fi
|
||||
|
||||
# If --disable-mining is the next argument, disable mining code:
|
||||
MINING_ARG=''
|
||||
if [ "x${1:-}" = 'x--disable-mining' ]
|
||||
then
|
||||
MINING_ARG='--enable-mining=no'
|
||||
shift
|
||||
fi
|
||||
|
||||
# Just show the useful info
|
||||
eval "$MAKE" --version | head -n2
|
||||
as --version | head -n1
|
||||
as --version | tail -n1
|
||||
ld -v
|
||||
|
||||
HOST="$HOST" BUILD="$BUILD" "$MAKE" "$@" -C ./depends/ V=1
|
||||
|
||||
./autogen.sh
|
||||
|
||||
CONFIG_SITE="$PWD/depends/$HOST/share/config.site" ./configure "$HARDENING_ARG" "$LCOV_ARG" "$TEST_ARG" "$MINING_ARG" $CONFIGURE_FLAGS CXXFLAGS='-g'
|
||||
|
||||
# Build CryptoConditions stuff
|
||||
WD=$PWD
|
||||
cd src/cc
|
||||
echo $PWD
|
||||
./makecustom
|
||||
cd $WD
|
||||
|
||||
# Build RandomX
|
||||
cd src/RandomX
|
||||
if [ -d "build" ]
|
||||
then
|
||||
ls -la build/librandomx*
|
||||
else
|
||||
mkdir build && cd build
|
||||
cmake -DARCH=native ..
|
||||
make
|
||||
fi
|
||||
|
||||
cd $WD
|
||||
|
||||
"$MAKE" "$@" V=1
|
||||
41
util/docker-entrypoint.sh
Executable file
41
util/docker-entrypoint.sh
Executable file
@@ -0,0 +1,41 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2016-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
|
||||
|
||||
#set -ex
|
||||
echo "...Checking HUSH3.conf"
|
||||
|
||||
# TODO: support legacy location?
|
||||
if [ ! -e "$HOME/.hush/HUSH3/HUSH3.conf" ]; then
|
||||
mkdir -p $HOME/.hush/HUSH3
|
||||
|
||||
DATE=$(date)
|
||||
echo "...Creating HUSH3.conf"
|
||||
cat <<EOF > $HOME/.hush/HUSH3.conf
|
||||
# Generated by docker-entrypoint.sh at $DATE
|
||||
rpcuser=hush
|
||||
rpcpassword=${rpcpassword:-`dd if=/dev/urandom bs=33 count=1 2>/dev/null | base64`}
|
||||
txindex=1
|
||||
bind=${listenip:-127.0.0.1}
|
||||
rpcbind=${listenip:-127.0.0.1}
|
||||
# Some knobs you might want to turn
|
||||
debug=0
|
||||
zdebug=0
|
||||
zindex=0
|
||||
EOF
|
||||
|
||||
cat $HOME/.hush/HUSH3/HUSH3.conf
|
||||
fi
|
||||
|
||||
if [ $# -gt 0 ]; then
|
||||
args=("$@")
|
||||
elif [ -z ${assetchain+x} ]; then
|
||||
args=("-gen -genproclimit=${genproclimit:-2} -pubkey=${pubkey}")
|
||||
else
|
||||
args=("-pubkey=${pubkey} -ac_name=${assetchain} -addnode=${seednode}")
|
||||
fi
|
||||
|
||||
echo "Running: hushd ${args[@]}"
|
||||
|
||||
exec hushd ${args[@]}
|
||||
4
util/docker-hush-cli.sh
Executable file
4
util/docker-hush-cli.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/bash
|
||||
# Copyright (c) 2019-2020 Hush developers
|
||||
|
||||
/hush/src/hush-cli $@
|
||||
16
util/dragon.txt
Normal file
16
util/dragon.txt
Normal file
@@ -0,0 +1,16 @@
|
||||
___====-_ _-====___
|
||||
_--~~~#####// ' ` \\#####~~~--_
|
||||
-~##########// ( ) \\##########~-_
|
||||
-############// |\^^/| \\############-
|
||||
_~############// (O||O) \\############~_
|
||||
~#############(( \\// ))#############~
|
||||
-###############\\ (oo) //###############-
|
||||
-#################\\ / `' \ //#################-
|
||||
-###################\\/ () \//###################-
|
||||
_#/|##########/\######( (()) )######/\##########|\#_
|
||||
|/ |#/\#/\#/\/ \#/\##| \()/ |##/\#/ \/\#/\#/\#| \|
|
||||
` |/ V V ` V )|| |()| ||( V ' V /\ \| '
|
||||
` ` ` ` / | |()| | \ ' '<||> '
|
||||
( | |()| | )\ /|/
|
||||
__\ |__|()|__| /__\______/|/
|
||||
(vvv(vvvv)(vvvv)vvv)______|/
|
||||
Reference in New Issue
Block a user