mirror of
https://github.com/wownero/wownero.git
synced 2026-11-07 08:54:05 +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.
137 lines
4.1 KiB
YAML
137 lines
4.1 KiB
YAML
---
|
|
name: "wownero-win-0.11"
|
|
enable_cache: true
|
|
suites:
|
|
- "bionic"
|
|
architectures:
|
|
- "amd64"
|
|
packages:
|
|
- "curl"
|
|
- "g++"
|
|
- "git"
|
|
- "pkg-config"
|
|
- "autoconf"
|
|
- "libtool"
|
|
- "automake"
|
|
- "faketime"
|
|
- "bsdmainutils"
|
|
- "mingw-w64"
|
|
- "g++-mingw-w64"
|
|
- "zip"
|
|
- "ca-certificates"
|
|
- "python"
|
|
- "cmake"
|
|
alternatives:
|
|
-
|
|
package: "i686-w64-mingw32-g++"
|
|
path: "/usr/bin/i686-w64-mingw32-g++-posix"
|
|
-
|
|
package: "i686-w64-mingw32-gcc"
|
|
path: "/usr/bin/i686-w64-mingw32-gcc-posix"
|
|
-
|
|
package: "x86_64-w64-mingw32-g++"
|
|
path: "/usr/bin/x86_64-w64-mingw32-g++-posix"
|
|
-
|
|
package: "x86_64-w64-mingw32-gcc"
|
|
path: "/usr/bin/x86_64-w64-mingw32-gcc-posix"
|
|
remotes:
|
|
- "url": "https://github.com/wownero/wownero.git"
|
|
"dir": "wownero"
|
|
files: []
|
|
script: |
|
|
WRAP_DIR=$HOME/wrapped
|
|
HOSTS="i686-w64-mingw32 x86_64-w64-mingw32"
|
|
FAKETIME_HOST_PROGS="windres objcopy"
|
|
FAKETIME_PROGS="date zip"
|
|
HOST_CFLAGS="-O2 -g"
|
|
HOST_CXXFLAGS="-O2 -g"
|
|
|
|
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
|
|
echo '#!/usr/bin/env bash' > ${WRAP_DIR}/${i}-${prog}
|
|
echo "REAL=\`which -a ${i}-${prog} | 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}
|
|
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}
|
|
|
|
# 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
|
|
EXTRA_INCLUDES="$EXTRA_INCLUDES_BASE/$i"
|
|
if [ -d "$EXTRA_INCLUDES" ]; then
|
|
export HOST_ID_SALT="$EXTRA_INCLUDES"
|
|
fi
|
|
make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}" V=1
|
|
unset HOST_ID_SALT
|
|
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"
|
|
# Run cmake and make, for each create a new build/ directory,
|
|
# compile from there, archive, export and delete the archive again
|
|
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
|
|
cmake .. -DCMAKE_TOOLCHAIN_FILE=${BASEPREFIX}/${i}/share/toolchain.cmake
|
|
make ${MAKEOPTS}
|
|
cp ../LICENSE ../README.md ../docs/ANONYMITY_NETWORKS.md bin
|
|
DISTNAME=wownero-${i}-${version}
|
|
mv bin ${DISTNAME}
|
|
find ${DISTNAME}/ | sort | zip -X@ ${OUTDIR}/${DISTNAME}.zip
|
|
cd .. && rm -rf build
|
|
done
|
|
|