From 14b44869746f53bf97502e99f87a505cedf7684d Mon Sep 17 00:00:00 2001 From: Pierre Ossman Date: Tue, 15 Jan 2019 15:00:21 +0100 Subject: [PATCH] Build Ubuntu 16.04 (Xenial) package in Travis --- .travis.yml | 1 + .travis/xenial/Dockerfile | 11 ++++++++ .travis/xenial/build.sh | 54 +++++++++++++++++++++++++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 .travis/xenial/Dockerfile create mode 100755 .travis/xenial/build.sh diff --git a/.travis.yml b/.travis.yml index 7055a583..4591a5c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,6 +3,7 @@ language: minimal env: - DOCKER=centos6 - DOCKER=centos7 + - DOCKER=xenial matrix: include: diff --git a/.travis/xenial/Dockerfile b/.travis/xenial/Dockerfile new file mode 100644 index 00000000..ad5414fd --- /dev/null +++ b/.travis/xenial/Dockerfile @@ -0,0 +1,11 @@ +FROM ubuntu:xenial + +RUN apt-get update +RUN apt-get -y install packaging-dev equivs + +RUN useradd -s /bin/bash -m deb +RUN echo >> /etc/sudoers +RUN echo "deb ALL=(ALL) NOPASSWD:ALL" >> /etc/sudoers + +USER deb +WORKDIR /home/deb diff --git a/.travis/xenial/build.sh b/.travis/xenial/build.sh new file mode 100755 index 00000000..5c140f9d --- /dev/null +++ b/.travis/xenial/build.sh @@ -0,0 +1,54 @@ +#!/bin/bash + +set -e +set -x + +## Basic variables + +CURDIR=$(dirname $(readlink -f $0)) +TOPDIR=$(git rev-parse --show-toplevel 2>/dev/null) + +DEBDIR=${TOPDIR}/contrib/packages/deb/ubuntu-xenial + +VERSION=$(grep '^set(VERSION ' ${TOPDIR}/CMakeLists.txt | sed 's@^set(VERSION \(.*\))@\1@') + +## Prepare the build directory + +rm -rf ${CURDIR}/build +mkdir -p ${CURDIR}/build +chmod a+w ${CURDIR}/build +[ -x /usr/sbin/selinuxenabled ] && /usr/sbin/selinuxenabled && chcon -Rt container_file_t ${CURDIR}/build + +## Copy over the source code + +(cd ${TOPDIR} && git archive --prefix tigervnc-${VERSION}/ HEAD) | xz > ${CURDIR}/build/tigervnc_${VERSION}.orig.tar.xz + +## Copy over the packaging files + +cp -r ${DEBDIR}/debian ${CURDIR}/build/debian + +chmod a+x ${CURDIR}/build/debian/rules + +# Assemble a fake changelog entry to get the correct version + +cat - > ${CURDIR}/build/debian/changelog << EOT +tigervnc (${VERSION}-1ubuntu1) UNRELEASED; urgency=low + + * Automated build for TigerVNC + + -- Build bot $(date -R) + +EOT +cat ${DEBDIR}/debian/changelog >> ${CURDIR}/build/debian/changelog + +## Start the build + +docker run --volume ${CURDIR}/build:/home/deb/build --interactive --tty --rm tigervnc/${DOCKER} \ + bash -c " + tar -C ~/build -axf ~/build/tigervnc_${VERSION}.orig.tar.xz && + cp -a ~/build/debian ~/build/tigervnc-${VERSION}/debian && + mk-build-deps ~/build/tigervnc-${VERSION}/debian/control && + sudo dpkg --unpack ~/tigervnc-build-deps_*.deb && + sudo apt-get -f install -y && + cd ~/build/tigervnc-${VERSION} && dpkg-buildpackage + " -- 2.39.5