|
|
|
@ -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 <<EOF |
|
|
|
|
console-setup console-setup/fontsize-fb47 select 8x16 |
|
|
|
|
console-setup console-setup/fontface47 select Fixed |
|
|
|
|
console-setup console-setup/charmap47 select UTF-8 |
|
|
|
|
console-setup console-setup/store_defaults_in_debconf_db boolean true |
|
|
|
|
keyboard-configuration console-setup/ask_detect boolean false |
|
|
|
|
keyboard-configuration console-setup/detected note |
|
|
|
|
console-setup console-setup/fontsize string 8x16 |
|
|
|
|
console-setup console-setup/fontsize-text47 select 8x16 |
|
|
|
|
console-setup console-setup/codesetcode string Uni2 |
|
|
|
|
keyboard-configuration console-setup/detect detect-keyboard |
|
|
|
|
console-setup console-setup/codeset47 select . Combined - Latin; Slavic Cyrillic; Greek |
|
|
|
|
EOF |
|
|
|
|
echo " ---- prevent packages in ${tmpdir}/${distro}-${arch}" 1>&2 |
|
|
|
|
for f in "dbus" "libpam-systemd*" "packagekit*" "policykit*" "colord"; do |
|
|
|
|
sudo chroot "${tmpdir}/${distro}-${arch}" <<EOF1 |
|
|
|
@ -157,8 +181,14 @@ EOF1 |
|
|
|
|
fi |
|
|
|
|
sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true update |
|
|
|
|
sudo chroot "${tmpdir}/${distro}-${arch}" apt-get -o Acquire::ForceIPv4=true -y dist-upgrade |
|
|
|
|
echo " ---- install ${package} to ${tmpdir}/${distro}-${arch}" 1>&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}" |
|
|
|
|