You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

build.sh 2.0KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. #!/bin/bash
  2. set -e
  3. set -x
  4. ## Basic variables
  5. CURDIR=$(dirname $(readlink -f $0))
  6. TOPDIR=$(git rev-parse --show-toplevel 2>/dev/null)
  7. DEBDIR=${TOPDIR}/contrib/packages/deb/ubuntu-trusty
  8. VERSION=$(grep '^set(VERSION ' ${TOPDIR}/CMakeLists.txt | sed 's@^set(VERSION \(.*\))@\1@')
  9. ## Prepare the build directory
  10. rm -rf ${CURDIR}/build
  11. mkdir -p ${CURDIR}/build
  12. chmod a+w ${CURDIR}/build
  13. [ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled && chcon -Rt container_file_t ${CURDIR}/build
  14. ## Copy over the source code
  15. (cd ${TOPDIR} && git archive --prefix tigervnc-${VERSION}/ HEAD) | xz > ${CURDIR}/build/tigervnc-${VERSION}.tar.xz
  16. # Extra dependencies built because the distribution lacks what we need
  17. curl -L -o ${CURDIR}/build/fltk-1.3.4-2-source.tar.gz https://www.fltk.org/pub/fltk/1.3.4/fltk-1.3.4-2-source.tar.gz
  18. # Bundle up everything
  19. tar -C ${CURDIR}/build -axf ${CURDIR}/build/tigervnc-${VERSION}.tar.xz
  20. tar -C ${CURDIR}/build/tigervnc-${VERSION} -axf ${CURDIR}/build/fltk-1.3.4-2-source.tar.gz
  21. tar -C ${CURDIR}/build -acf ${CURDIR}/build/tigervnc_${VERSION}.orig.tar.xz tigervnc-${VERSION}
  22. rm -rf ${CURDIR}/build/tigervnc-${VERSION}
  23. ## Copy over the packaging files
  24. cp -r ${DEBDIR}/debian ${CURDIR}/build/debian
  25. chmod a+x ${CURDIR}/build/debian/rules
  26. # Assemble a fake changelog entry to get the correct version
  27. cat - > ${CURDIR}/build/debian/changelog << EOT
  28. tigervnc (${VERSION}-1ubuntu1) UNRELEASED; urgency=low
  29. * Automated build for TigerVNC
  30. -- Build bot <tigervncbot@tigervnc.org> $(date -R)
  31. EOT
  32. cat ${DEBDIR}/debian/changelog >> ${CURDIR}/build/debian/changelog
  33. ## Start the build
  34. docker run --volume ${CURDIR}/build:/home/deb/build --interactive --tty --rm tigervnc/${DOCKER} \
  35. bash -c "
  36. tar -C ~/build -axf ~/build/tigervnc_${VERSION}.orig.tar.xz &&
  37. cp -a ~/build/debian ~/build/tigervnc-${VERSION}/debian &&
  38. mk-build-deps ~/build/tigervnc-${VERSION}/debian/control &&
  39. sudo dpkg --unpack ~/tigervnc-build-deps_*.deb &&
  40. sudo apt-get -f install -y &&
  41. cd ~/build/tigervnc-${VERSION} && dpkg-buildpackage
  42. "