From 0cc24e498bdf036cd109935a3533b97fce3d7bc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc=20W=C3=A4ckerlin?= Date: Thu, 29 Sep 2016 22:20:26 +0000 Subject: [PATCH] install more packages to increase build speed --- debian/control.in | 3 +- scripts/bootstrap-to-docker.sh | 54 ++++++++++++++++++++++++++-------- 2 files changed, 44 insertions(+), 13 deletions(-) diff --git a/debian/control.in b/debian/control.in index 3ac8f94..77aac02 100644 --- a/debian/control.in +++ b/debian/control.in @@ -6,7 +6,8 @@ Build-Depends: debhelper, subversion, pkg-config, automake, libtool, autotools-d Package: @PACKAGE_NAME@ Section: development Architecture: any -Depends: ${shlibs:Depends}, ${misc:Depends} +Depends: ${shlibs:Depends}, ${misc:Depends}, debootstrap, coreutils +Recommends: qemu-user-static, lxc-docker, schroot Description: @DESCRIPTION@ @README_DEB@ diff --git a/scripts/bootstrap-to-docker.sh b/scripts/bootstrap-to-docker.sh index 8f486bd..c232b8c 100755 --- a/scripts/bootstrap-to-docker.sh +++ b/scripts/bootstrap-to-docker.sh @@ -16,8 +16,10 @@ tmpdir=${tmpdir:-"/var/tmp/chroots"} test -d "${tmpdir}" || mkdir -p "${tmpdir}" docker_user=${docker_user:-${USER}} if test -z "${ports[@]}"; then - ports=( armhf powerpc ppc64el s390x arm64 ) - qemus=( arm ppc ppc64 s390x armb ) + #ports=( armhf powerpc ppc64el s390x arm64 ) + #qemus=( arm ppc ppc64 s390x aarch64 ) + ports=( armhf ) + qemus=( arm ) fi numports=${#ports[@]} if test -z "$archs"; then @@ -25,12 +27,13 @@ if test -z "$archs"; then (amd64) archs="amd64 i386";; (*) archs=$(dpkg --print-architecture);; esac - for ((i=0; i<${num}; ++i)); do + for ((i=0; i<$numports; ++i)); do if test -x /usr/bin/qemu-${qemus[$i]}-static; then archs+=" ${ports[$i]}" fi done fi + ubuntu_qt5="yakkety xenial wily vivid trusty" debian_qt5="jessie sid" debian_qt4="" @@ -40,13 +43,11 @@ ubuntu=("${ubuntu_qt5}") debian=("${debian_qt5}" "${debian_qt4}") distros=(${distros:-"${ubuntu[@]}" "${debian[@]}"}) -packages_qt5="qtbase5-dev qtbase5-dev-tools qtbase5-dev-tools libqt5webkit5-dev libqt5svg5-dev qt5-default qttools5-dev" -# |libqtcore4-qmake|libqt4-core -packages_qt4="qt4-qmake libqt4-dev" -# |software-properties-common|python-software-properties -packages_base="software-properties-common apt-transport-https dpkg-dev lsb-release debhelper git subversion pkg-config automake libtool autotools-dev doxygen graphviz mscgen libcppunit-dev xvfb nodejs" -package_not_in_xenial="" -package_not_in_xenial_qt5="" +packages_qt5="libpoppler-qt5-dev libpodofo-dev libqt5designer5 libqt5svg5-dev libqt5webkit5-dev qt5-default qt5-qmake qtbase5-dev qtbase5-dev-tools qttools5-dev qttools5-dev-tools" +packages_qt4="libqt4-core libqt4-designer libqt4-dev libqt4-webkit qt4-dev-tools qt4-qmake" +# |libqtcore4 |libqtwebkit-dev |libp11-kit-dev|libgnutls-dev +packages_base="apt-transport-https automake autotools-dev binutils-dev debhelper default-jdk-headless doxygen dpkg-dev g++ git graphviz libboost-thread-dev libcppunit-dev liblog4cxx-dev libpcsclite-dev libpkcs11-helper1-dev libproxy-dev libssl-dev libtool libz-dev lsb-release mscgen nodejs pandoc pkg-config software-properties-common subversion subversion-tools texinfo xvfb" +#package_not_in_yakkety="default-jdk-headless" if test -z "${packages[@]}"; then packages=("${packages_base} ${packages_qt5}" "${packages_base} ${packages_qt5}" "${packages_base} ${packages_qt4}") @@ -85,6 +86,11 @@ error() { for ((i=0; i<${#distros[@]}; ++i)); do package="${packages[${index:-$i}]}" for distro in ${distros[$i]}; do + prevent=package_not_in_${distro}; + instpkgs=${package} + for pkg in ${!prevent}; do + instpkgs=${instpkgs//${pkg}/} + done if test -n "$limit" -a "$distro" != "$limit"; then continue fi @@ -131,6 +137,24 @@ for ((i=0; i<${#distros[@]}; ++i)); do sudo DEBIAN_FRONTEND=noninteractive DEBCONF_NONINTERACTIVE_SEEN=true LC_ALL=C LANGUAGE=C LANG=C chroot "${tmpdir}/${distro}-${arch}" dpkg --configure -a fi fi + echo " ---- mount filesystems in ${tmpdir}/${distro}-${arch}" 1>&2 + sudo mount -t proc proc "${tmpdir}/${distro}-${arch}"/proc/ + sudo mount -t sysfs sys "${tmpdir}/${distro}-${arch}"/sys/ + sudo mount -o bind /dev "${tmpdir}/${distro}-${arch}"/dev/ + echo " ---- preconfigure debian packages in ${tmpdir}/${distro}-${arch}" 1>&2 + sudo chroot "${tmpdir}/${distro}-${arch}" debconf-set-selections <&2 for f in "dbus" "libpam-systemd*" "packagekit*" "policykit*" "colord"; do sudo chroot "${tmpdir}/${distro}-${arch}" <&2 - sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true install -y ${package} + echo " ---- cleanup ${instpkgs} to ${tmpdir}/${distro}-${arch}" 1>&2 + sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true autoremove --purge -y + echo " ---- install ${instpkgs} to ${tmpdir}/${distro}-${arch}" 1>&2 + sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true install -y ${instpkgs} + echo " ---- unmount filesystems in ${tmpdir}/${distro}-${arch}" 1>&2 + sudo umount "${tmpdir}/${distro}-${arch}"/proc/ + sudo umount "${tmpdir}/${distro}-${arch}"/sys/ + sudo umount "${tmpdir}/${distro}-${arch}"/dev/ echo " ---- import ${tmpdir}/${distro}-${arch} to ${docker_user}/${type}:${distro}-${arch}" 1>&2 cd "${tmpdir}/${distro}-${arch}" sudo tar c . | docker import - "${docker_user}/${type}:${distro}-${arch}"