mirror of
https://github.com/wownero/wownero.git
synced 2026-11-07 17:04:07 +01:00
Apply the prepared GUI security port on the current public gui branch. The complete Git tree equals candidate 9e9bb026d3d33a29a1607a1bce449e2583b1223f, built during private preparation, and includes the public v0.11.5.0 source.
181 lines
5.8 KiB
YAML
181 lines
5.8 KiB
YAML
---
|
|
name: "wownero-linux-0.11"
|
|
enable_cache: true
|
|
suites:
|
|
- "bionic"
|
|
architectures:
|
|
- "amd64"
|
|
packages:
|
|
- "curl"
|
|
- "gperf"
|
|
- "gcc-7"
|
|
- "g++-7"
|
|
- "gcc"
|
|
- "g++"
|
|
- "gcc-7-aarch64-linux-gnu"
|
|
- "g++-7-aarch64-linux-gnu"
|
|
- "gcc-aarch64-linux-gnu"
|
|
- "g++-aarch64-linux-gnu"
|
|
- "binutils-aarch64-linux-gnu"
|
|
- "gcc-7-arm-linux-gnueabihf"
|
|
- "g++-7-arm-linux-gnueabihf"
|
|
- "gcc-arm-linux-gnueabihf"
|
|
- "g++-arm-linux-gnueabihf"
|
|
- "g++-riscv64-linux-gnu"
|
|
- "g++-7-multilib"
|
|
- "gcc-7-multilib"
|
|
- "binutils-arm-linux-gnueabihf"
|
|
- "binutils-gold"
|
|
- "git"
|
|
- "pkg-config"
|
|
- "build-essential"
|
|
- "autoconf"
|
|
- "libtool"
|
|
- "automake"
|
|
- "faketime"
|
|
- "bsdmainutils"
|
|
- "ca-certificates"
|
|
- "python"
|
|
- "cmake"
|
|
remotes:
|
|
- "url": "https://github.com/wownero/wownero.git"
|
|
"dir": "wownero"
|
|
files: []
|
|
script: |
|
|
|
|
WRAP_DIR=$HOME/wrapped
|
|
HOSTS="x86_64-linux-gnu arm-linux-gnueabihf aarch64-linux-gnu i686-linux-gnu riscv64-linux-gnu"
|
|
FAKETIME_HOST_PROGS=""
|
|
FAKETIME_PROGS="date"
|
|
HOST_CFLAGS="-O2 -g"
|
|
HOST_CXXFLAGS="-O2 -g"
|
|
HOST_LDFLAGS=-static-libstdc++
|
|
|
|
export GZIP="-9n"
|
|
export TZ="UTC"
|
|
export BUILD_DIR=`pwd`
|
|
mkdir -p ${WRAP_DIR}
|
|
if test -n "$GBUILD_CACHE_ENABLED"; then
|
|
export SOURCES_PATH=${GBUILD_COMMON_CACHE}
|
|
export BASE_CACHE=${GBUILD_PACKAGE_CACHE}
|
|
export GITIAN=1
|
|
mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
|
|
fi
|
|
|
|
function create_global_faketime_wrappers {
|
|
for prog in ${FAKETIME_PROGS}; do
|
|
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${prog}
|
|
echo "REAL=\`which -a ${prog} | grep -v ${WRAP_DIR}/${prog} | head -1\`" >> ${WRAP_DIR}/${prog}
|
|
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${prog}
|
|
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${prog}
|
|
echo "\$REAL \$@" >> $WRAP_DIR/${prog}
|
|
chmod +x ${WRAP_DIR}/${prog}
|
|
done
|
|
}
|
|
|
|
function create_per-host_faketime_wrappers {
|
|
for i in $HOSTS; do
|
|
for prog in ${FAKETIME_HOST_PROGS}; do
|
|
if which ${i}-${prog}-7
|
|
then
|
|
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog}
|
|
echo "REAL=\`which -a ${i}-${prog}-7 | grep -v ${WRAP_DIR}/${i}-${prog} | head -1\`" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo 'export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/faketime/libfaketime.so.1' >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "export FAKETIME=\"$1\"" >> ${WRAP_DIR}/${i}-${prog}
|
|
echo "\$REAL \$@" >> $WRAP_DIR/${i}-${prog}
|
|
chmod +x ${WRAP_DIR}/${i}-${prog}
|
|
fi
|
|
done
|
|
done
|
|
}
|
|
|
|
# Faketime for depends so intermediate results are comparable
|
|
export PATH_orig=${PATH}
|
|
create_global_faketime_wrappers "2000-01-01 12:00:00"
|
|
create_per-host_faketime_wrappers "2000-01-01 12:00:00"
|
|
export PATH=${WRAP_DIR}:${PATH}
|
|
|
|
EXTRA_INCLUDES_BASE=$WRAP_DIR/extra_includes
|
|
mkdir -p $EXTRA_INCLUDES_BASE
|
|
|
|
# x86 needs /usr/include/i386-linux-gnu/asm pointed to /usr/include/x86_64-linux-gnu/asm,
|
|
# but we can't write there. Instead, create a link here and force it to be included in the
|
|
# search paths.
|
|
# This problem goes away if linux-libc-dev:i386 pkg exists, but it's not in bionic.
|
|
|
|
mkdir -p $EXTRA_INCLUDES_BASE/i686-linux-gnu
|
|
rm -f $WRAP_DIR/extra_includes/i686-linux-gnu/asm
|
|
ln -s /usr/include/x86_64-linux-gnu/asm $EXTRA_INCLUDES_BASE/i686-linux-gnu/asm
|
|
|
|
# glibc 2.23 breaks compatibility with <=2.19 use of lgamma function.
|
|
# Hack the math header to restore the old behavior.
|
|
mkdir $EXTRA_INCLUDES_BASE/bits
|
|
sed -e '/__REDIRFROM .lgamma,/,+3s/_USE_/_DONTUSE_/g' /usr/include/x86_64-linux-gnu/bits/math-finite.h > $EXTRA_INCLUDES_BASE/bits/math-finite.h
|
|
|
|
# gcc 7+ honors SOURCE_DATE_EPOCH, no faketime needed
|
|
export SOURCE_DATE_EPOCH=`date -d 2000-01-01T12:00:00 +%s`
|
|
|
|
git config --global core.abbrev 9
|
|
cd wownero
|
|
# Set the version string that gets added to the tar archive name
|
|
version="`git describe`"
|
|
if [[ $version == *"-"*"-"* ]]; then
|
|
version="`git rev-parse --short=9 HEAD`"
|
|
version="`echo $version | head -c 9`"
|
|
fi
|
|
|
|
BASEPREFIX=`pwd`/contrib/depends
|
|
# Build dependencies for each host
|
|
export TAR_OPTIONS=--mtime=2000-01-01T12:00:00
|
|
for i in $HOSTS; do
|
|
ARCH_INCLUDES="$EXTRA_INCLUDES_BASE/$i"
|
|
if [ -d "$ARCH_INCLUDES" ]; then
|
|
EXTRA_INCLUDES="${EXTRA_INCLUDES_BASE}:${ARCH_INCLUDES}"
|
|
else
|
|
EXTRA_INCLUDES="${EXTRA_INCLUDES_BASE}"
|
|
fi
|
|
export C_INCLUDE_PATH="$EXTRA_INCLUDES"
|
|
export CPLUS_INCLUDE_PATH="$EXTRA_INCLUDES"
|
|
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}" V=1
|
|
done
|
|
|
|
# Faketime for binaries
|
|
export PATH=${PATH_orig}
|
|
create_global_faketime_wrappers "${REFERENCE_DATETIME}"
|
|
create_per-host_faketime_wrappers "${REFERENCE_DATETIME}"
|
|
export PATH=${WRAP_DIR}:${PATH}
|
|
|
|
ORIGPATH="$PATH"
|
|
# Build in a new dir for each host
|
|
export SOURCE_DATE_EPOCH=`date -d ${REFERENCE_DATE}T${REFERENCE_TIME} +%s`
|
|
export TAR_OPTIONS=--mtime=${REFERENCE_DATE}T${REFERENCE_TIME}
|
|
for i in ${HOSTS}; do
|
|
export PATH=${BASEPREFIX}/${i}/native/bin:${ORIGPATH}
|
|
mkdir build && cd build
|
|
ARCH_INCLUDES="$EXTRA_INCLUDES_BASE/$i"
|
|
if [ -d "$ARCH_INCLUDES" ]; then
|
|
EXTRA_INCLUDES="${EXTRA_INCLUDES_BASE}:${ARCH_INCLUDES}"
|
|
else
|
|
EXTRA_INCLUDES="${EXTRA_INCLUDES_BASE}"
|
|
fi
|
|
export C_INCLUDE_PATH="$EXTRA_INCLUDES"
|
|
export CPLUS_INCLUDE_PATH="$EXTRA_INCLUDES"
|
|
# glibc only added riscv support in 2.27, disable backwards compatibility
|
|
if [ "$i" == "riscv64-linux-gnu" ]; then
|
|
BACKCOMPAT_OPTION=OFF
|
|
else
|
|
BACKCOMPAT_OPTION=ON
|
|
fi
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=${BASEPREFIX}/${i}/share/toolchain.cmake -DBACKCOMPAT=${BACKCOMPAT_OPTION} -DCMAKE_SKIP_RPATH=ON
|
|
make ${MAKEOPTS}
|
|
chmod 755 bin/*
|
|
cp ../LICENSE ../README.md ../docs/ANONYMITY_NETWORKS.md bin
|
|
chmod 644 bin/LICENSE bin/*.md
|
|
DISTNAME=wownero-${i}-${version}
|
|
mv bin ${DISTNAME}
|
|
find ${DISTNAME}/ | sort | tar --no-recursion --owner=0 --group=0 -c -T - | bzip2 -9 > ${OUTDIR}/${DISTNAME}.tar.bz2
|
|
cd ..
|
|
rm -rf build
|
|
done
|
|
|