123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- ---
- name: "starwels-osx-0.15"
- enable_cache: true
- suites:
- - "trusty"
- architectures:
- - "amd64"
- packages:
- - "ca-certificates"
- - "curl"
- - "g++"
- - "git-core"
- - "pkg-config"
- - "autoconf"
- - "librsvg2-bin"
- - "libtiff-tools"
- - "libtool"
- - "automake"
- - "faketime"
- - "bsdmainutils"
- - "cmake"
- - "imagemagick"
- - "libcap-dev"
- - "libz-dev"
- - "libbz2-dev"
- - "python"
- - "python-dev"
- - "python-setuptools"
- - "fonts-tuffy"
- remotes:
- - "url": "https://github.com/starwels/starwels.git"
- "dir": "starwels"
- files:
- - "MacOSX10.11.sdk.tar.gz"
- script: |
- WRAP_DIR=$HOME/wrapped
- HOSTS="x86_64-apple-darwin11"
- CONFIGFLAGS="--enable-reduce-exports --disable-bench --disable-gui-tests GENISOIMAGE=$WRAP_DIR/genisoimage"
- FAKETIME_HOST_PROGS=""
- FAKETIME_PROGS="ar ranlib date dmg genisoimage"
-
- export QT_RCC_TEST=1
- export GZIP="-9n"
- export TAR_OPTIONS="--mtime="$REFERENCE_DATE\\\ $REFERENCE_TIME""
- 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}
- mkdir -p ${BASE_CACHE} ${SOURCES_PATH}
- fi
-
- export ZERO_AR_DATE=1
-
- function create_global_faketime_wrappers {
- for prog in ${FAKETIME_PROGS}; do
- echo '#!/bin/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 '#!/bin/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}
-
- cd starwels
- BASEPREFIX=`pwd`/depends
-
- mkdir -p ${BASEPREFIX}/SDKs
- tar -C ${BASEPREFIX}/SDKs -xf ${BUILD_DIR}/MacOSX10.11.sdk.tar.gz
-
- # Build dependencies for each host
- for i in $HOSTS; do
- make ${MAKEOPTS} -C ${BASEPREFIX} HOST="${i}"
- 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}
-
- # Create the release tarball using (arbitrarily) the first host
- ./autogen.sh
- CONFIG_SITE=${BASEPREFIX}/`echo "${HOSTS}" | awk '{print $1;}'`/share/config.site ./configure --prefix=/
- make dist
- SOURCEDIST=`echo starwels-*.tar.gz`
- DISTNAME=`echo ${SOURCEDIST} | sed 's/.tar.*//'`
- DISTDR=`echo starwels-*`
-
- # Correct tar file order
- mkdir -p temp
- pushd temp
- tar xf ../$SOURCEDIST
- find starwels-* | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ../$SOURCEDIST
- popd
-
- # Workaround for tarball not building with the bare tag version (prep)
- make -C src obj/build.h
-
- ORIGPATH="$PATH"
- # Extract the release tarball into a dir for each host and build
- for i in ${HOSTS}; do
- export PATH=${BASEPREFIX}/${i}/native/bin:${ORIGPATH}
- mkdir -p distsrc-${i}
- cd distsrc-${i}
- INSTALLPATH=`pwd`/installed/${DISTDR}
- mkdir -p ${INSTALLPATH}
- tar --strip-components=1 -xf ../$SOURCEDIST
-
- # Workaround for tarball not building with the bare tag version
- echo '#!/bin/true' >share/genbuild.sh
- mkdir src/obj
- cp ../src/obj/build.h src/obj/
-
- CONFIG_SITE=${BASEPREFIX}/${i}/share/config.site ./configure --prefix=/ --disable-ccache --disable-maintainer-mode --disable-dependency-tracking ${CONFIGFLAGS}
- make ${MAKEOPTS}
- make install-strip DESTDIR=${INSTALLPATH}
-
- make osx_volname
- make deploydir
- OSX_VOLNAME="$(cat osx_volname)"
- mkdir -p unsigned-app-${i}
- cp osx_volname unsigned-app-${i}/
- cp contrib/macdeploy/detached-sig-apply.sh unsigned-app-${i}
- cp contrib/macdeploy/detached-sig-create.sh unsigned-app-${i}
- cp ${BASEPREFIX}/${i}/native/bin/dmg ${BASEPREFIX}/${i}/native/bin/genisoimage unsigned-app-${i}
- cp ${BASEPREFIX}/${i}/native/bin/${i}-codesign_allocate unsigned-app-${i}/codesign_allocate
- cp ${BASEPREFIX}/${i}/native/bin/${i}-pagestuff unsigned-app-${i}/pagestuff
- mv dist unsigned-app-${i}
- pushd unsigned-app-${i}
- find . | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTDR}-osx-unsigned.tar.gz
- popd
-
- make deploy
- ${WRAP_DIR}/dmg dmg "${OSX_VOLNAME}.dmg" ${OUTDIR}/${DISTDR}-osx-unsigned.dmg
-
- cd installed
- find . -name "lib*.la" -delete
- find . -name "lib*.a" -delete
- rm -rf ${DISTDR}/lib/pkgconfig
- find ${DISTDR} | sort | tar --no-recursion --mode='u+rw,go+r-w,a+X' --owner=0 --group=0 -c -T - | gzip -9n > ${OUTDIR}/${DISTDR}-${i}.tar.gz
- cd ../../
- done
- mkdir -p $OUTDIR/src
- mv $SOURCEDIST $OUTDIR/src
- mv ${OUTDIR}/${DISTDR}-x86_64-*.tar.gz ${OUTDIR}/${DISTDR}-osx64.tar.gz
|