[CI20] Add script for creating Debian sysroot and GCC toolchain for mipsel
Script will create Debain Jessie based sysroot for building Cobalt
and will build cross-toolchain GCC 4.9.
Change-Id: Iade0cf7ceafb041945c8d0f7e368b4059dc3a27b
diff --git a/src/third_party/ci20/LICENSE b/src/third_party/ci20/LICENSE
new file mode 100644
index 0000000..1941a11
--- /dev/null
+++ b/src/third_party/ci20/LICENSE
@@ -0,0 +1,28 @@
+Copyright 2008, Google Inc.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+ * Redistributions of source code must retain the above copyright
+notice, this list of conditions and the following disclaimer.
+ * Redistributions in binary form must reproduce the above
+copyright notice, this list of conditions and the following disclaimer
+in the documentation and/or other materials provided with the
+distribution.
+ * Neither the name of Google Inc. nor the names of its
+contributors may be used to endorse or promote products derived from
+this software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/src/third_party/ci20/mipsel-toolchain-sysroot-creator.sh b/src/third_party/ci20/mipsel-toolchain-sysroot-creator.sh
new file mode 100755
index 0000000..d01df8c
--- /dev/null
+++ b/src/third_party/ci20/mipsel-toolchain-sysroot-creator.sh
@@ -0,0 +1,518 @@
+#!/bin/bash
+# Copyright (c) 2012 The Native Client Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+# This script is intended to build a mipsel-linux-gnu cross compilation
+# toolchain that runs on x86 linux and generates code for a little-endian,
+# hard-float, mips32 target.
+
+######################################################################
+# Config
+######################################################################
+
+set -o nounset
+set -o errexit
+
+readonly SCRIPT_DIR=$(dirname $0)
+
+readonly MAKE_OPTS="-j8"
+readonly ARCH="mips32"
+
+readonly GMP_URL="http://ftp.gnu.org/gnu/gmp/gmp-6.1.1.tar.bz2"
+readonly GMP_SHA1SUM="757d672e66d8e0afe60ca04735ab11c00d9346e4"
+
+readonly MPFR_URL="http://ftp.gnu.org/gnu/mpfr/mpfr-3.1.4.tar.bz2"
+readonly MPFR_SHA1SUM="e3b0af77f18505184410d621fe0aae179e229dba"
+
+readonly MPC_URL="http://ftp.gnu.org/gnu/mpc/mpc-1.0.3.tar.gz"
+readonly MPC_SHA1SUM="b8be66396c726fdc36ebb0f692ed8a8cca3bcc66"
+
+readonly GCC_URL="http://ftp.gnu.org/gnu/gcc/gcc-4.9.0/gcc-4.9.0.tar.bz2"
+readonly GCC_SHA1SUM="fbde8eb49f2b9e6961a870887cf7337d31cd4917"
+
+readonly BINUTILS_URL="http://ftp.gnu.org/gnu/binutils/binutils-2.26.tar.bz2"
+readonly BINUTILS_SHA1SUM="a637508cffeb2323b14bc8dd65378819768ad4ff"
+
+readonly KERNEL_URL="http://www.linux-mips.org/pub/linux/mips/kernel/v3.x/linux-3.18.3.tar.gz"
+readonly KERNEL_SHA1SUM="66c390838cc3401135be534135fe72813e92378b"
+
+readonly GLIBC_URL="http://ftp.gnu.org/gnu/glibc/glibc-2.19.tar.bz2"
+readonly GLIBC_SHA1SUM="382f4438a7321dc29ea1a3da8e7852d2c2b3208c"
+
+readonly INSTALL_ROOT=$(pwd)/toolchain/linux_x86/mips_trusted
+
+readonly TMP=$(pwd)/toolchain/tmp/crosstool-trusted
+
+readonly BUILD_DIR=${TMP}/build
+
+readonly JAIL_MIPS32=${INSTALL_ROOT}/sysroot
+
+readonly CROSS_TARBALL="mipsel_toolchain_sysroot"
+
+######################################################################
+# Helper
+######################################################################
+
+Banner() {
+ echo "######################################################################"
+ echo $*
+ echo "######################################################################"
+}
+
+SubBanner() {
+ echo "......................................................................"
+ echo $*
+ echo "......................................................................"
+}
+
+Usage() {
+ echo
+ echo "$0"
+ echo
+}
+
+DownloadOrCopy() {
+ local url=$1
+ local filename="${TMP}/${url##*/}"
+ local filetype="${url%%:*}"
+
+ if [ "${filename}" == "" ]; then
+ echo "Unknown error occured. Aborting."
+ exit 1
+ fi
+
+ if [[ "${filetype}" == "http" || ${filetype} == "https" ]] ; then
+ if [ ! -f "${filename}" ]; then
+ SubBanner "downloading from ${url} -> ${filename}"
+ wget ${url} -O ${filename}
+ fi
+ else
+ SubBanner "copying from ${url}"
+ cp ${url} ${filename}
+ fi
+}
+
+DownloadOrCopyAndVerify() {
+ local url=$1
+ local checksum=$2
+ local filename="${TMP}/${url##*/}"
+ local filetype="${url%%:*}"
+
+ if [ "${filename}" == "" ]; then
+ echo "Unknown error occured. Aborting."
+ exit 1
+ fi
+
+ if [[ "${filetype}" == "http" || ${filetype} == "https" ]] ; then
+ if [ ! -f "${filename}" ]; then
+ SubBanner "downloading from ${url} -> ${filename}"
+ wget ${url} -O ${filename}
+ fi
+ if [ "${checksum}" != "nochecksum" ]; then
+ if [ "$(sha1sum ${filename} | cut -d ' ' -f 1)" != "${checksum}" ]; then
+ echo "${filename} sha1sum failed. Deleting file and aborting."
+ rm -f ${filename}
+ exit 1
+ fi
+ fi
+ else
+ SubBanner "copying from ${url}"
+ cp ${url} ${filename}
+ fi
+}
+
+######################################################################
+#
+######################################################################
+
+# Some sanity checks to make sure this script is run from the right place
+# with the right tools.
+SanityCheck() {
+ Banner "Sanity Checks"
+
+ if ! mkdir -p "${INSTALL_ROOT}" ; then
+ echo "ERROR: ${INSTALL_ROOT} can't be created."
+ exit -1
+ fi
+
+ for tool in wget ; do
+ if ! which ${tool} ; then
+ echo "Required binary $tool not found."
+ echo "Exiting."
+ exit 1
+ fi
+ done
+}
+
+ClearInstallDir() {
+ Banner "clearing dirs in ${INSTALL_ROOT}"
+ rm -rf ${INSTALL_ROOT}/*
+ mkdir -p ${JAIL_MIPS32}
+}
+
+ClearBuildDir() {
+ Banner "clearing dirs in ${BUILD_DIR}"
+ rm -rf ${BUILD_DIR}/*
+}
+
+CreateTarBall() {
+ local tarball=$1
+ Banner "creating tar ball ${tarball}"
+ tar cfz ${tarball}.tgz -C ${INSTALL_ROOT} .
+}
+
+# Download the toolchain source tarballs or use a local copy when available.
+DownloadOrCopyAndInstallToolchain() {
+ Banner "Installing toolchain"
+
+ tarball="${TMP}/${GCC_URL##*/}"
+ DownloadOrCopyAndVerify ${GCC_URL} ${GCC_SHA1SUM}
+ SubBanner "extracting from ${tarball}"
+ tar jxf ${tarball} -C ${TMP}
+
+ pushd ${TMP}/gcc-*
+
+ local tarball="${TMP}/${GMP_URL##*/}"
+ DownloadOrCopyAndVerify ${GMP_URL} ${GMP_SHA1SUM}
+ SubBanner "extracting from ${tarball}"
+ tar jxf ${tarball}
+ local filename=`ls | grep gmp\-`
+ rm -f gmp
+ ln -s ${filename} gmp
+ # Fix gmp configure problem with flex.
+ sed -i "s/m4-not-needed/m4/" gmp/configure
+
+ local tarball="${TMP}/${MPFR_URL##*/}"
+ DownloadOrCopyAndVerify ${MPFR_URL} ${MPFR_SHA1SUM}
+ SubBanner "extracting from ${tarball}"
+ tar jxf ${tarball}
+ local filename=`ls | grep mpfr\-`
+ rm -f mpfr
+ ln -s ${filename} mpfr
+
+ local tarball="${TMP}/${MPC_URL##*/}"
+ DownloadOrCopyAndVerify ${MPC_URL} ${MPC_SHA1SUM}
+ SubBanner "extracting from ${tarball}"
+ tar zxf ${tarball}
+ local filename=`ls | grep mpc\-`
+ rm -f mpc
+ ln -s ${filename} mpc
+
+ popd
+
+ local tarball="${TMP}/${BINUTILS_URL##*/}"
+ DownloadOrCopyAndVerify ${BINUTILS_URL} ${BINUTILS_SHA1SUM}
+ SubBanner "extracting from ${tarball}"
+ tar jxf ${tarball} -C ${TMP}
+
+ tarball="${TMP}/${KERNEL_URL##*/}"
+ DownloadOrCopyAndVerify ${KERNEL_URL} ${KERNEL_SHA1SUM}
+ SubBanner "extracting from ${tarball}"
+ tar zxf ${tarball} -C ${TMP}
+
+ tarball="${TMP}/${GLIBC_URL##*/}"
+ DownloadOrCopyAndVerify ${GLIBC_URL} ${GLIBC_SHA1SUM}
+ SubBanner "extracting from ${tarball}"
+ tar jxf ${tarball} -C ${TMP}
+
+ Banner "Preparing the code"
+
+ # Fix a minor syntax issue in tc-mips.c.
+ local OLD_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, msg);"
+ local NEW_TEXT="as_warn_where (fragp->fr_file, fragp->fr_line, \"%s\", msg);"
+ local FILE_NAME="${TMP}/binutils-2.26/gas/config/tc-mips.c"
+ sed -i "s/${OLD_TEXT}/${NEW_TEXT}/g" "${FILE_NAME}"
+
+ export PATH=${INSTALL_ROOT}/bin:$PATH
+
+ Banner "Building binutils"
+
+ rm -rf ${BUILD_DIR}/binutils/
+ mkdir -p ${BUILD_DIR}/binutils/
+ pushd ${BUILD_DIR}/binutils/
+
+ SubBanner "Configuring"
+ ${TMP}/binutils-2.26/configure \
+ --prefix=${INSTALL_ROOT} \
+ --target=mipsel-linux-gnu \
+ --with-sysroot=${JAIL_MIPS32}
+
+ SubBanner "Make"
+ make ${MAKE_OPTS} all-binutils all-gas all-ld
+
+ SubBanner "Install"
+ make ${MAKE_OPTS} install-binutils install-gas install-ld
+
+ popd
+
+ Banner "Building GCC (initial)"
+
+ rm -rf ${BUILD_DIR}/gcc/initial
+ mkdir -p ${BUILD_DIR}/gcc/initial
+ pushd ${BUILD_DIR}/gcc/initial
+
+ SubBanner "Configuring"
+ ${TMP}/gcc-4.9.0/configure \
+ --prefix=${INSTALL_ROOT} \
+ --disable-libssp \
+ --disable-libgomp \
+ --disable-libmudflap \
+ --disable-fixed-point \
+ --disable-decimal-float \
+ --with-mips-plt \
+ --with-endian=little \
+ --with-arch=${ARCH} \
+ --enable-languages=c \
+ --with-newlib \
+ --without-headers \
+ --disable-shared \
+ --disable-threads \
+ --disable-libquadmath \
+ --disable-libatomic \
+ --target=mipsel-linux-gnu
+
+ SubBanner "Make"
+ make ${MAKE_OPTS} all
+
+ SubBanner "Install"
+ make ${MAKE_OPTS} install
+
+ popd
+
+ Banner "Installing Linux kernel headers"
+ pushd ${TMP}/linux-3.18.3
+ make headers_install ARCH=mips INSTALL_HDR_PATH=${JAIL_MIPS32}/usr
+ popd
+
+ Banner "Building GLIBC"
+
+ rm -rf ${BUILD_DIR}/glibc/final
+ mkdir -p ${BUILD_DIR}/glibc/final
+ pushd ${BUILD_DIR}/glibc/final
+
+ BUILD_CC=gcc \
+ AR=mipsel-linux-gnu-ar \
+ RANLIB=mipsel-linux-gnu-ranlibi \
+ CC=mipsel-linux-gnu-gcc \
+ CXX=mipsel-linux-gnu-g++ \
+ ${TMP}/glibc-2.19/configure \
+ --prefix=/usr \
+ --enable-add-ons \
+ --host=mipsel-linux-gnu \
+ --disable-profile \
+ --without-gd \
+ --without-cvs \
+ --build=i686-pc-linux-gnu \
+ --with-headers=${JAIL_MIPS32}/usr/include
+
+ SubBanner "Make"
+ make ${MAKE_OPTS} all
+
+ SubBanner "Install"
+ make ${MAKE_OPTS} install install_root=${JAIL_MIPS32}
+
+ popd
+
+ Banner "Building GCC (final)"
+
+ rm -rf ${BUILD_DIR}/gcc/final
+ mkdir -p ${BUILD_DIR}/gcc/final
+ pushd ${BUILD_DIR}/gcc/final
+
+ ${TMP}/gcc-4.9.0/configure \
+ --prefix=${INSTALL_ROOT} \
+ --disable-libssp \
+ --disable-libgomp \
+ --disable-libmudflap \
+ --disable-fixed-point \
+ --disable-decimal-float \
+ --with-mips-plt \
+ --with-endian=little \
+ --with-arch=${ARCH} \
+ --target=mipsel-linux-gnu \
+ --enable-__cxa_atexit \
+ --enable-languages=c,c++ \
+ --with-sysroot=${JAIL_MIPS32}
+
+ SubBanner "Make"
+ make ${MAKE_OPTS} all
+
+ SubBanner "Install"
+ make ${MAKE_OPTS} install
+
+ popd
+}
+
+# ----------------------------------------------------------------------
+# mips32 deb files to complete our code sourcery jail
+# ----------------------------------------------------------------------
+readonly REPO_DEBIAN=http://ftp.debian.org/debian
+readonly MIPS32_PACKAGES=${REPO_DEBIAN}/dists/jessie/main/binary-mipsel/Packages.xz
+
+readonly BASE_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.jessie.mipsel.base
+readonly EXTRA_PACKAGELIST_MIPS32=${SCRIPT_DIR}/packagelist.jessie.mipsel.extra
+readonly TMP_BASE_PKG_MIPS32=${TMP}/packagelist.generated.jessie.mipsel.base
+readonly TMP_EXTRA_PKG_MIPS32=${TMP}/packagelist.generated.jessie.mipsel.extra
+
+GeneratePackageLists() {
+ local packages=
+ local TMP_PACKAGELIST=
+ Banner "Generating Cobalt package lists for mips32"
+ rm -f ${TMP}/Packages.bz2
+ DownloadOrCopy ${MIPS32_PACKAGES}
+ xzcat ${TMP}/Packages.xz\
+ | egrep '^(Package:|Filename:)' > ${TMP}/Packages_mipsel
+
+ echo -n > ${TMP_EXTRA_PKG_MIPS32}
+ TMP_PACKAGELIST=${TMP_EXTRA_PKG_MIPS32}
+ packages=$(cat ${EXTRA_PACKAGELIST_MIPS32})
+
+ for pkg in ${packages} ; do
+ echo ${pkg}
+ grep -A 1 "${pkg}\$" ${TMP}/Packages_mipsel\
+ | egrep -o "pool/.*" >> ${TMP_PACKAGELIST}
+ done
+}
+
+InstallMissingLibraries() {
+ local DEP_FILES_NEEDED_MIPS32=
+
+ DEP_FILES_NEEDED_MIPS32=$(cat ${TMP_EXTRA_PKG_MIPS32})
+
+ for file in ${DEP_FILES_NEEDED_MIPS32} ; do
+ local package="${TMP}/${file##*/}"
+ Banner "installing ${file}"
+ DownloadOrCopy ${REPO_DEBIAN}/${file}
+ SubBanner "extracting to ${JAIL_MIPS32}"
+ dpkg --fsys-tarfile ${package}\
+ | tar -xvf - -C ${JAIL_MIPS32}
+ done
+}
+
+# Workaround for missing headers since pkg-config is not working correctly.
+FixIncludes() {
+ Banner "Fixing includes"
+ pushd ${JAIL_MIPS32}/usr/include/glib-2.0
+ ln -s ../../lib/glib-2.0/include/glibconfig.h .
+ popd
+
+ pushd ${JAIL_MIPS32}/usr/include/gtk-2.0
+ ln -s ../../lib/gtk-2.0/include/gdkconfig.h .
+ popd
+
+ pushd ${JAIL_MIPS32}/usr/include/dbus-1.0/dbus
+ ln -s ../../../lib/dbus-1.0/include/dbus/dbus-arch-deps.h .
+ popd
+
+ pushd ${JAIL_MIPS32}/usr/include
+ cp ./mipsel-linux-gnu/sys/* ./sys/
+ mkdir -p bits
+ cp ./mipsel-linux-gnu/bits/* ./bits/
+ mkdir -p gnu
+ cp ./mipsel-linux-gnu/gnu/* ./gnu/
+ mkdir -p asm
+ cp ./mipsel-linux-gnu/asm/* ./asm/
+ cp ./mipsel-linux-gnu/openssl/* ./openssl/
+ popd
+}
+
+FixLinks() {
+ Banner "Fixing links"
+ pushd ${JAIL_MIPS32}/lib/
+ mv mipsel-linux-gnu/* .
+ rm -rf mipsel-linux-gnu
+ ln -s . mipsel-linux-gnu
+ popd
+
+ pushd ${JAIL_MIPS32}/usr/lib/
+ mkdir -p pkgconfig
+ mv mipsel-linux-gnu/pkgconfig/* pkgconfig/
+ rm -rf mipsel-linux-gnu/pkgconfig
+ cp -r mipsel-linux-gnu/* .
+ rm -rf mipsel-linux-gnu
+ ln -s . mipsel-linux-gnu
+ popd
+
+ mkdir -p ${JAIL_MIPS32}/usr/share
+
+ pushd ${JAIL_MIPS32}/usr/share/
+ mkdir -p pkgconfig
+ popd
+
+ pushd ${JAIL_MIPS32}/usr/lib/
+ rm -f libgcc_s.so*
+ ln -s ../../../mipsel-linux-gnu/lib/libgcc_s.so.1 .
+ ln -s libgcc_s.so.1 libgcc_s.so
+ popd
+}
+
+FixLibs() {
+ Banner "Fixing libraries"
+
+ readonly liblist="libanl.co \
+ libBrokenLocale.so \
+ libbz2.so \
+ libcap.so \
+ libcidn.so \
+ libcom_err.so \
+ libcrypt.so \
+ libdbus-1.so \
+ libdl.so \
+ libexpat.so \
+ libglib-2.0.so \
+ libgpg-error.so \
+ libkeyutils.so \
+ libnsl.so \
+ libnss_compat.so\
+ libnss_dns.so \
+ libnss_files.so \
+ libnss_hesiod.so\
+ libnss_nisplus.so\
+ libnss_nis.so \
+ libpamc.so \
+ libpam_misc.so \
+ libpam.so \
+ libpci.so \
+ libpcre.so \
+ libpng12.so \
+ libresolv.so \
+ librt.so \
+ libthread_db.so \
+ libutil.so \
+ libudev.so \
+ libz.so"
+ readonly liblist2="libpng12.so.0"
+
+ pushd ${JAIL_MIPS32}/usr/lib/
+ for library in ${liblist}; do
+ rm -f ${library}
+ ln -s ../../lib/${library}.[0123] ${library}
+ done
+ for library2 in ${liblist2}; do
+ rm -f ${library2}
+ ln -s ../../lib/${library2} ${library2}
+ done
+ rm -f libpython2.7.a
+ ln -s ./python2.7/config-mipsel-linux-gnu/libpython2.7.a libpython2.7.a
+ rm -f libm.so
+ ln -s ../../lib/libm.so.6 libm.so
+ popd
+}
+
+######################################################################
+# Main
+######################################################################
+
+mkdir -p ${TMP}
+SanityCheck
+ClearInstallDir
+ClearBuildDir
+DownloadOrCopyAndInstallToolchain
+GeneratePackageLists
+InstallMissingLibraries
+FixLinks
+FixLibs
+FixIncludes
+CreateTarBall ${CROSS_TARBALL}
+
diff --git a/src/third_party/ci20/packagelist.jessie.mipsel.base b/src/third_party/ci20/packagelist.jessie.mipsel.base
new file mode 100644
index 0000000..8a3d300
--- /dev/null
+++ b/src/third_party/ci20/packagelist.jessie.mipsel.base
@@ -0,0 +1,4 @@
+libssl1.0.0
+libssl-dev
+zlib1g
+zlib1g-dev
diff --git a/src/third_party/ci20/packagelist.jessie.mipsel.extra b/src/third_party/ci20/packagelist.jessie.mipsel.extra
new file mode 100644
index 0000000..d99b951
--- /dev/null
+++ b/src/third_party/ci20/packagelist.jessie.mipsel.extra
@@ -0,0 +1,273 @@
+comerr-dev
+krb5-multidev
+libaa1
+libaa1-dev
+libasound2
+libasound2-dev
+libasyncns0
+libatk1.0-0
+libatk1.0-dev
+libattr1
+libx264-142
+libx264-dev
+libxau6
+libxau-dev
+libxml2
+libxml2-dev
+libxvidcore4
+libavahi-client3
+libavahi-client-dev
+libavahi-common3
+libavahi-common-dev
+libavcodec56
+libavcodec-dev
+libavformat56
+libavformat-dev
+libavutil54
+libavutil-dev
+libavresample2
+libavresample-dev
+libbz2-1.0
+libbz2-dev
+libc6
+libc6-dev
+libcairo2
+libcairo2-dev
+libcairo-gobject2
+libcairo-script-interpreter2
+libcap2
+libcap-dev
+libcups2
+libcups2-dev
+libdbus-1-3
+libdbus-1-dev
+libdbus-glib-1-2
+libdbus-glib-1-dev
+libdirectfb-1.2-9
+libdirectfb-dev
+libdrm2
+libdrm-nouveau2
+libdrm-radeon1
+libdrm-dev
+libcomerr2
+libegl1-mesa
+libegl1-mesa-dev
+libexif12
+libexif-dev
+libexpat1
+libexpat1-dev
+libffi6
+libffi-dev
+libflac8
+libfontconfig1
+libfontconfig1-dev
+libfreetype6
+libfreetype6-dev
+libgbm1
+libgbm-dev
+libgconf-2-4
+libgconf2-dev
+libgcrypt11-dev
+libgcrypt20
+libgcr-3-dev
+libgcr-base-3-1
+libgcr-ui-3-1
+libgdk-pixbuf2.0-0
+libgdk-pixbuf2.0-dev
+libgdk-pixbuf2.0-common
+libgl1-mesa-glx
+libgl1-mesa-dev
+libglapi-mesa
+libgles2-mesa
+libgles2-mesa-dev
+libgmp10
+libgnutls-deb0-28
+libgnutls-openssl27
+libgnutls28-dev
+libgnutlsxx28
+libgpg-error0
+libgpg-error-dev
+libgssapi-krb5-2
+libgtk2.0-0
+libgtk2.0-dev
+libglib2.0-0
+libglib2.0-dev
+libgnome-keyring0
+libgnome-keyring-dev
+libgsm1
+libgssrpc4
+libhogweed2
+libice6
+libicu-dev
+libicu52
+libjpeg62-turbo
+libjpeg62-turbo-dev
+libjson-c2
+libkadm5clnt-mit9
+libkadm5srv-mit9
+libkdb5-7
+libk5crypto3
+libkeyutils1
+libkeyutils-dev
+libkrb5-3
+libkrb5-dev
+libkrb5support0
+liblzma5
+libmp3lame0
+libnettle4
+libnspr4
+libnspr4-0d
+libnspr4-dev
+libnss3
+libnss3-1d
+libnss3-dev
+libogg0
+libopenjpeg5
+libopus0
+liborbit2
+liborbit-2-0
+liborbit2-dev
+liborc-0.4-0
+libp11-kit0
+libp11-kit-dev
+libpam0g
+libpam0g-dev
+libpango-1.0-0
+libpango1.0-0
+libpango1.0-dev
+libpangocairo-1.0-0
+libpangoft2-1.0-0
+libpangoxft-1.0-0
+libpci3
+libpci-dev
+libpcre3
+libpcre3-dev
+libpcrecpp0
+libpixman-1-0
+libpixman-1-dev
+libpng12-0
+libpng12-dev
+libpulse0
+libpulse-dev
+libpulse-mainloop-glib0
+libpthread-stubs0-dev
+libpython2.7
+librtmp1
+libschroedinger-1.0-0
+libselinux1
+libsm6
+libsnappy1
+libsnappy-dev
+libsndfile1
+libspeex1
+libsoup-gnome2.4-1
+libsoup-gnome2.4-dev
+libspeechd2
+libspeechd-dev
+libsrtp0
+libsrtp0-dev
+libssl1.0.0
+libssl-dev
+libstdc++6
+libsystemd0
+libsqlite3-0
+libsqlite3-dev
+libtasn1-6
+libtasn1-6-dev
+libtheora0
+libudev1
+libudev-dev
+libuuid1
+libva1
+libvorbis0a
+libvorbisenc2
+libvpx1
+libwayland-client0
+libwayland-egl1-mesa
+libwayland-server0
+libwebkitgtk-1.0-0
+libwrap0
+libx11-6
+libx11-dev
+libx11-xcb1
+libx11-xcb-dev
+libxext6
+libxext-dev
+libxau6
+libxau-dev
+libxcb-dri2-0
+libxcb-dri2-0-dev
+libxcb-glx0
+libxcb-glx0-dev
+libxcb-image0
+libxcb-image0-dev
+libxcb1
+libxcb1-dev
+libxcb-icccm4
+libxcb-icccm4-dev
+libxcb-randr0
+libxcb-randr0-dev
+libxcb-render0
+libxcb-render0-dev
+libxcb-render-util0
+libxcb-render-util0-dev
+libxcb-keysyms1
+libxcb-keysyms1-dev
+libxcb-sync1
+libxcb-sync-dev
+libxcb-shape0
+libxcb-shape0-dev
+libxcb-shm0
+libxcb-shm0-dev
+libxcb-util0
+libxcb-util0-dev
+libxcb-xinerama0
+libxcb-xinerama0-dev
+libxcb-xfixes0
+libxcb-xfixes0-dev
+libxcb-xkb1
+libxcb-xkb-dev
+libxcomposite1
+libxcomposite-dev
+libxcursor1
+libxcursor-dev
+libxdamage1
+libxdamage-dev
+libxdmcp6
+libxdmcp-dev
+libxfixes3
+libxfixes-dev
+libxi6
+libxi-dev
+libxinerama1
+libxinerama-dev
+libxkbcommon0
+libxkbcommon-dev
+libxrandr2
+libxrandr-dev
+libxrender1
+libxrender-dev
+libxss1
+libxss-dev
+libxt6
+libxt-dev
+libxtst6
+libxtst-dev
+linux-libc-dev
+mesa-common-dev
+python2.7
+python2.7-dev
+x11proto-core-dev
+x11proto-composite-dev
+x11proto-damage-dev
+x11proto-fixes-dev
+x11proto-input-dev
+x11proto-kb-dev
+x11proto-randr-dev
+x11proto-record-dev
+x11proto-render-dev
+x11proto-scrnsaver-dev
+x11proto-xext-dev
+x11proto-xinerama-dev
+zlib1g
+zlib1g-dev