dash/contrib/gitian-descriptors/gitian-linux.yml

87 lines
2.8 KiB
YAML
Raw Normal View History

2011-02-01 18:27:14 +01:00
---
2014-12-31 22:06:20 +01:00
name: "darkcoin"
2011-02-01 18:27:14 +01:00
suites:
- "precise"
2011-02-01 18:27:14 +01:00
architectures:
2014-12-31 22:06:20 +01:00
- "i386"
2011-02-01 18:27:14 +01:00
- "amd64"
2015-01-02 06:26:51 +01:00
packages:
2014-12-31 22:06:20 +01:00
- "g++"
2011-02-01 18:27:14 +01:00
- "git-core"
2014-12-31 22:06:20 +01:00
- "unzip"
- "pkg-config"
- "autoconf2.13"
- "libtool"
- "automake"
- "faketime"
- "bsdmainutils"
2014-12-31 22:06:20 +01:00
- "libqt4-core"
- "libqt4-gui"
- "libqt4-dbus"
- "libqt4-network"
- "libqt4-test"
2015-01-02 06:26:51 +01:00
reference_datetime: "2014-01-10 00:00:00"
2011-02-01 18:27:14 +01:00
remotes:
2015-01-02 16:03:27 +01:00
- "url": "https://github.com/darkcoin/darkcoin.git"
"dir": "darkcoin"
2014-12-31 22:06:20 +01:00
files:
- "bitcoin-deps-linux32-gitian-r9.zip"
- "bitcoin-deps-linux64-gitian-r9.zip"
2014-12-31 22:06:20 +01:00
- "boost-linux32-1.55.0-gitian-r1.zip"
- "boost-linux64-1.55.0-gitian-r1.zip"
- "qt-linux32-4.6.4-gitian-r1.tar.gz"
- "qt-linux64-4.6.4-gitian-r1.tar.gz"
2011-02-01 18:27:14 +01:00
script: |
2014-12-31 22:06:20 +01:00
STAGING="$HOME/install"
OPTFLAGS='-O2'
BINDIR="${OUTDIR}/bin/${GBUILD_BITS}" # 32/64 bit build specific output directory
TEMPDIR="$HOME/tempdir"
export TZ=UTC
export LIBRARY_PATH="$STAGING/lib"
export PATH="$STAGING/bin:$PATH"
mkdir -p ${BINDIR}
#
mkdir -p $STAGING
cd $STAGING
unzip ../build/bitcoin-deps-linux${GBUILD_BITS}-gitian-r9.zip
2014-12-31 22:06:20 +01:00
unzip ../build/boost-linux${GBUILD_BITS}-1.55.0-gitian-r1.zip
tar -zxf ../build/qt-linux${GBUILD_BITS}-4.6.4-gitian-r1.tar.gz
cd ../build
2014-12-31 22:06:20 +01:00
# Avoid exporting *any* symbols from the executable
# This avoids conflicts between the libraries statically linked into darkcoin and any
# libraries we may link dynamically (such as Qt and OpenSSL, see issue #4094).
# It also avoids start-up overhead to not export any unnecessary symbols.
# To do this, build a linker script that marks all symbols as local.
LINKER_SCRIPT=$HOME/build/linker_version_script
echo '
{
local: *;
};' > $LINKER_SCRIPT
function do_configure {
./configure "$@" --enable-upnp-default --prefix=$STAGING --with-protoc-bindir=$STAGING/host/bin --with-qt-bindir=$STAGING/bin --with-boost=$STAGING --disable-maintainer-mode --disable-dependency-tracking PKG_CONFIG_PATH="$STAGING/lib/pkgconfig" CPPFLAGS="-I$STAGING/include ${OPTFLAGS}" LDFLAGS="-L$STAGING/lib -Wl,--version-script=$LINKER_SCRIPT ${OPTFLAGS}" CXXFLAGS="-frandom-seed=darkcoin ${OPTFLAGS}" BOOST_CHRONO_EXTRALIBS="-lrt" --enable-glibc-back-compat
}
#
cd darkcoin
./autogen.sh
2014-12-31 22:06:20 +01:00
do_configure
make dist
2014-12-31 22:06:20 +01:00
DISTNAME=`echo darkcoin-*.tar.gz`
2014-12-31 22:06:20 +01:00
# Build dynamic versions of everything
# (with static linking to boost and openssl as well a some non-OS deps)
mkdir -p distsrc
cd distsrc
tar --strip-components=1 -xf ../$DISTNAME
2015-01-02 06:26:51 +01:00
do_configure --bindir=$BINDIR
2014-12-31 22:06:20 +01:00
make $MAKEOPTS
make $MAKEOPTS install-strip
make $MAKEOPTS clean
2014-12-31 22:06:20 +01:00
# sort distribution tar file and normalize user/group/mtime information for deterministic output
mkdir -p $OUTDIR/src
2014-12-31 22:06:20 +01:00
rm -rf $TEMPDIR
mkdir -p $TEMPDIR
cd $TEMPDIR
tar -xvf $HOME/build/darkcoin/$DISTNAME | sort | tar --no-recursion -cT /dev/stdin --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 --mtime="$REFERENCE_DATETIME" | gzip -n > $OUTDIR/src/$DISTNAME