[infra] Use Clang for ia32 and arm64. Use the dl'd sysroots by default.

This CL switches the ia32 and arm64 builds to use clang by default.
The arm build can't be switched at least until we roll clang to
pick up the fix for https://reviews.llvm.org/D34691.

This CL also changes to use the sysroots from wheezy (and jessie
for arm64) by default so that we can be building/testing locally with
the same setup as we are shipping in the SDK.

Change-Id: I09a1907ee7f78c3f4bb8d56ffdbbd6107ed054d9
Reviewed-on: https://dart-review.googlesource.com/25160
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Commit-Queue: Zach Anderson <zra@google.com>
This commit is contained in:
Zachary Anderson 2017-12-02 06:19:33 +00:00 committed by commit-bot@chromium.org
parent 37f5a77e4d
commit d9eb629ffa
26 changed files with 293 additions and 1898 deletions

20
DEPS
View file

@ -52,7 +52,7 @@ vars = {
"barback_tag" : "@0.15.2+13",
"bazel_worker_tag": "@v0.1.4",
"boolean_selector_tag" : "@1.0.2",
"boringssl_gen_rev": "@753224969dbe43dad29343146529727b5066c0f3",
"boringssl_gen_rev": "@d2b56d1b7657e52eb5a1f075968c773aa3e53614",
"boringssl_rev" : "@d519bf6be0b447fb80fbc539d4bff4479b5482a2",
"charcode_tag": "@v1.1.1",
"chrome_rev" : "@19997",
@ -456,14 +456,28 @@ hooks = [
'name': 'sysroot_i386',
'pattern': '.',
'action': ['python', 'sdk/build/linux/sysroot_scripts/install-sysroot.py',
'--running-as-hook', '--arch', 'i386'],
'--arch', 'i386'],
},
{
# Pull Debian wheezy sysroot for amd64 Linux
'name': 'sysroot_amd64',
'pattern': '.',
'action': ['python', 'sdk/build/linux/sysroot_scripts/install-sysroot.py',
'--running-as-hook', '--arch', 'amd64'],
'--arch', 'amd64'],
},
{
# Pull Debian wheezy sysroot for arm Linux
'name': 'sysroot_amd64',
'pattern': '.',
'action': ['python', 'sdk/build/linux/sysroot_scripts/install-sysroot.py',
'--arch', 'arm'],
},
{
# Pull Debian jessie sysroot for arm64 Linux
'name': 'sysroot_amd64',
'pattern': '.',
'action': ['python', 'sdk/build/linux/sysroot_scripts/install-sysroot.py',
'--arch', 'arm64'],
},
{
'name': 'download_android_tools',

3
build/.gitignore vendored
View file

@ -2,5 +2,8 @@
win_toolchain.json
# Pulled Debian wheezy sysroots
linux/debian_jessie_arm-sysroot
linux/debian_jessie_arm64-sysroot
linux/debian_wheezy_amd64-sysroot
linux/debian_wheezy_arm-sysroot
linux/debian_wheezy_i386-sysroot

View file

@ -219,6 +219,7 @@ if (!is_clang && (is_asan || is_lsan || is_tsan || is_msan)) {
# duplication in each target below.
_native_compiler_configs = [
"//build/config/compiler:compiler",
"//build/config/compiler:clang_stackrealign",
"//build/config/compiler:compiler_arm_fpu",
"//build/config/compiler:chromium_code",
"//build/config/compiler:default_include_dirs",
@ -252,7 +253,6 @@ if (is_linux) {
if (is_clang) {
_native_compiler_configs += [
"//build/config/clang:find_bad_constructs",
"//build/config/clang:extra_warnings",
]
}

View file

@ -2,54 +2,6 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("clang.gni")
config("find_bad_constructs") {
if (clang_use_chrome_plugins) {
cflags = []
# On Windows, the plugin is built directly into clang, so there's
# no need to load it dynamically.
if (is_mac || is_ios) {
cflags += [
"-Xclang",
"-load",
"-Xclang",
rebase_path(
"//third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib",
root_build_dir),
]
} else if (is_linux) {
cflags += [
"-Xclang",
"-load",
"-Xclang",
rebase_path(
"//third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.so",
root_build_dir),
]
}
# https://crbug.com/441916
if (is_android || is_linux || is_mac) {
cflags += [
"-Xclang",
"-plugin-arg-find-bad-constructs",
"-Xclang",
"check-templates",
]
}
cflags += [
"-Xclang",
"-add-plugin",
"-Xclang",
"find-bad-constructs",
]
}
}
# Enables some extra Clang-specific warnings. Some third-party code won't
# compile with these so may want to remove this config.
config("extra_warnings") {

View file

@ -1,9 +0,0 @@
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
declare_args() {
# Indicates if the build should use the Chrome-specific plugins for enforcing
# coding guidelines, etc. Only used when compiling with Clang.
clang_use_chrome_plugins = false
}

View file

@ -187,10 +187,6 @@ config("compiler") {
# Else building libyuv gives clang's register allocator issues,
# see llvm.org/PR15798 / crbug.com/233709
"-mno-omit-leaf-frame-pointer",
# Align the stack on 16-byte boundaries, http://crbug.com/418554.
"-mstack-alignment=16",
"-mstackrealign",
]
}
} else if (current_cpu == "arm") {
@ -254,6 +250,15 @@ config("compiler") {
if (is_linux) {
cflags += [ "-pthread" ]
ldflags += [ "-pthread" ]
if (is_clang) {
if (current_cpu == "arm") {
cflags += [ "--target=arm-linux-gnueabihf" ]
ldflags += [ "--target=arm-linux-gnueabihf" ]
} else if (current_cpu == "arm64") {
cflags += [ "--target=aarch64-linux-gnu" ]
ldflags += [ "--target=aarch64-linux-gnu" ]
}
}
}
# Clang-specific compiler flags setup.
@ -353,6 +358,20 @@ config("compiler") {
}
}
# This is separate from :compiler_codegen (and not even a sub-config there)
# so that some targets can remove it from the list with:
# configs -= [ "//build/config/compiler:clang_stackrealign" ]
# See https://crbug.com/556393 for details of where it must be avoided.
config("clang_stackrealign") {
if (is_clang && current_cpu == "x86" && !is_nacl) {
cflags = [
# Align the stack on 16-byte boundaries, http://crbug.com/418554.
"-mstack-alignment=16",
"-mstackrealign",
]
}
}
config("compiler_arm_fpu") {
if (current_cpu == "arm") {
cflags = [ "-mfpu=$arm_fpu" ]

View file

@ -19,6 +19,10 @@ if (is_linux && dart_use_wheezy_sysroot) {
target_sysroot = rebase_path("//build/linux/debian_wheezy_i386-sysroot")
} else if (current_cpu == "x64") {
target_sysroot = rebase_path("//build/linux/debian_wheezy_amd64-sysroot")
} else if (current_cpu == "arm") {
target_sysroot = rebase_path("//build/linux/debian_wheezy_arm-sysroot")
} else if (current_cpu == "arm64") {
target_sysroot = rebase_path("//build/linux/debian_jessie_arm64-sysroot")
} else {
print("There is no Debian wheezy sysroot present for $current_cpu")
assert(false)

View file

@ -21,6 +21,15 @@ def HostArch():
host_arch = 'x64'
elif host_arch.startswith('arm'):
host_arch = 'arm'
elif host_arch.startswith('aarch64'):
host_arch = 'arm64'
elif host_arch.startswith('mips'):
host_arch = 'mips'
elif host_arch.startswith('ppc'):
host_arch = 'ppc'
elif host_arch.startswith('s390'):
host_arch = 's390'
# platform.machine is based on running kernel. It's possible to use 64-bit
# kernel with 32-bit userland, e.g. to give linker slightly more memory.
@ -28,13 +37,15 @@ def HostArch():
# the python binary.
if host_arch == 'x64' and platform.architecture()[0] == '32bit':
host_arch = 'ia32'
if host_arch == 'arm64' and platform.architecture()[0] == '32bit':
host_arch = 'arm'
return host_arch
def DoMain(_):
"""Hook to be called from gyp without starting a separate python
interpreter."""
return HostArch()
if __name__ == '__main__':
print DoMain([])

View file

@ -0,0 +1,5 @@
This directory contains a script and a json file describing the sysroots that
Dart downloads and builds against on Linux. Dart uses the sysroots vended by
Chromium. See:
https://chromium.googlesource.com/chromium/src/build/+/master/linux/sysroot_scripts

View file

@ -3,19 +3,22 @@
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
# Script to install a Debian Wheezy sysroot for making official Google Chrome
# Linux builds.
# The sysroot is needed to make Chrome work for Debian Wheezy.
# This script can be run manually but is more often run as part of gclient
# hooks. When run from hooks this script should be a no-op on non-linux
# platforms.
"""Install Debian sysroots for building chromium.
"""
# The sysroot is needed to ensure that binaries will run on Debian Wheezy,
# the oldest supported linux distribution. For ARM64 linux, we have Debian
# Jessie sysroot as Jessie is the first version with ARM64 support. This script
# can be run manually but is more often run as part of gclient hooks. When run
# from hooks this script is a no-op on non-linux platforms.
# The sysroot image could be constructed from scratch based on the current
# state or Debian Wheezy but for consistency we currently use a pre-built root
# image. The image will normally need to be rebuilt every time chrome's build
# dependancies are changed.
# state or Debian Wheezy/Jessie but for consistency we currently use a
# pre-built root image. The image will normally need to be rebuilt every time
# chrome's build dependencies are changed.
import hashlib
import json
import platform
import optparse
import os
@ -23,29 +26,21 @@ import re
import shutil
import subprocess
import sys
import urllib2
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
URL_PREFIX = 'http://storage.googleapis.com'
URL_PATH = 'chrome-linux-sysroot/toolchain'
REVISION_AMD64 = 'a2d45701cb21244b9514e420950ba6ba687fb655'
REVISION_ARM = 'a2d45701cb21244b9514e420950ba6ba687fb655'
REVISION_I386 = 'a2d45701cb21244b9514e420950ba6ba687fb655'
REVISION_MIPS = '7749d2957387abf225b6d45154c3ddad142148dc'
TARBALL_AMD64 = 'debian_wheezy_amd64_sysroot.tgz'
TARBALL_ARM = 'debian_wheezy_arm_sysroot.tgz'
TARBALL_I386 = 'debian_wheezy_i386_sysroot.tgz'
TARBALL_MIPS = 'debian_wheezy_mips_sysroot.tgz'
TARBALL_AMD64_SHA1SUM = '601216c0f980e798e7131635f3dd8171b3dcbcde'
TARBALL_ARM_SHA1SUM = '6289593b36616526562a4d85ae9c92b694b8ce7e'
TARBALL_I386_SHA1SUM = '0090e5a4b56ab9ffb5d557da6a520195ab59b446'
TARBALL_MIPS_SHA1SUM = '3b4d782a237db4aac185a638572a7747c1a21825'
SYSROOT_DIR_AMD64 = 'debian_wheezy_amd64-sysroot'
SYSROOT_DIR_ARM = 'debian_wheezy_arm-sysroot'
SYSROOT_DIR_I386 = 'debian_wheezy_i386-sysroot'
SYSROOT_DIR_MIPS = 'debian_wheezy_mips-sysroot'
sys.path.append(os.path.dirname(os.path.dirname(SCRIPT_DIR)))
import detect_host_arch
valid_archs = ('arm', 'i386', 'amd64', 'mips')
URL_PREFIX = 'https://commondatastorage.googleapis.com'
URL_PATH = 'chrome-linux-sysroot/toolchain'
VALID_ARCHS = ('arm', 'arm64', 'i386', 'amd64', 'mips')
class Error(Exception):
pass
def GetSha1(filename):
@ -60,25 +55,9 @@ def GetSha1(filename):
return sha1.hexdigest()
def DetectArch(gyp_defines):
# Check for optional target_arch and only install for that architecture.
# If target_arch is not specified, then only install for the host
# architecture.
if 'target_arch=x64' in gyp_defines:
return 'amd64'
elif 'target_arch=ia32' in gyp_defines:
return 'i386'
elif 'target_arch=arm' in gyp_defines:
return 'arm'
elif 'target_arch=mipsel' in gyp_defines:
return 'mips'
def DetectHostArch():
# Figure out host arch using build/detect_host_arch.py and
# set target_arch to host arch
build_dir = os.path.dirname(os.path.dirname(os.path.join(SCRIPT_DIR)))
sys.path.append(build_dir)
import detect_host_arch
detected_host_arch = detect_host_arch.HostArch()
if detected_host_arch == 'x64':
return 'amd64'
@ -86,55 +65,65 @@ def DetectArch(gyp_defines):
return 'i386'
elif detected_host_arch == 'arm':
return 'arm'
elif detected_host_arch == 'arm64':
return 'arm64'
elif detected_host_arch == 'mips':
return 'mips'
else:
print "Unknown host arch: %s" % detected_host_arch
elif detected_host_arch == 'ppc':
return 'ppc'
elif detected_host_arch == 's390':
return 's390'
return None
raise Error('Unrecognized host arch: %s' % detected_host_arch)
def main():
if options.running_as_hook and not sys.platform.startswith('linux'):
def main(args):
parser = optparse.OptionParser('usage: %prog [OPTIONS]', description=__doc__)
parser.add_option('--arch', type='choice', choices=VALID_ARCHS,
help='Sysroot architecture: %s' % ', '.join(VALID_ARCHS))
options, _ = parser.parse_args(args)
if not sys.platform.startswith('linux'):
return 0
gyp_defines = os.environ.get('GYP_DEFINES', '')
if not options.arch:
print 'You much specify either --arch or --running-as-hook'
return 1
InstallDefaultSysrootForArch(options.arch)
if options.arch:
target_arch = options.arch
return 0
def InstallDefaultSysrootForArch(target_arch):
if target_arch == 'amd64':
InstallSysroot('Wheezy', 'amd64')
elif target_arch == 'arm':
InstallSysroot('Wheezy', 'arm')
elif target_arch == 'arm64':
InstallSysroot('Jessie', 'arm64')
elif target_arch == 'i386':
InstallSysroot('Wheezy', 'i386')
elif target_arch == 'mips':
InstallSysroot('Wheezy', 'mips')
else:
target_arch = DetectArch(gyp_defines)
if not target_arch:
print 'Unable to detect host architecture'
return 1
raise Error('Unknown architecture: %s' % target_arch)
def InstallSysroot(target_platform, target_arch):
# The sysroot directory should match the one specified in build/common.gypi.
# TODO(thestig) Consider putting this else where to avoid having to recreate
# TODO(thestig) Consider putting this elsewhere to avoid having to recreate
# it on every build.
linux_dir = os.path.dirname(SCRIPT_DIR)
if target_arch == 'amd64':
sysroot = os.path.join(linux_dir, SYSROOT_DIR_AMD64)
tarball_filename = TARBALL_AMD64
tarball_sha1sum = TARBALL_AMD64_SHA1SUM
revision = REVISION_AMD64
elif target_arch == 'arm':
sysroot = os.path.join(linux_dir, SYSROOT_DIR_ARM)
tarball_filename = TARBALL_ARM
tarball_sha1sum = TARBALL_ARM_SHA1SUM
revision = REVISION_ARM
elif target_arch == 'i386':
sysroot = os.path.join(linux_dir, SYSROOT_DIR_I386)
tarball_filename = TARBALL_I386
tarball_sha1sum = TARBALL_I386_SHA1SUM
revision = REVISION_I386
elif target_arch == 'mips':
sysroot = os.path.join(linux_dir, SYSROOT_DIR_MIPS)
tarball_filename = TARBALL_MIPS
tarball_sha1sum = TARBALL_MIPS_SHA1SUM
revision = REVISION_MIPS
else:
print 'Unknown architecture: %s' % target_arch
assert(False)
sysroots_file = os.path.join(SCRIPT_DIR, 'sysroots.json')
sysroots = json.load(open(sysroots_file))
sysroot_key = '%s_%s' % (target_platform.lower(), target_arch)
if sysroot_key not in sysroots:
raise Error('No sysroot for: %s %s' % (target_platform, target_arch))
sysroot_dict = sysroots[sysroot_key]
revision = sysroot_dict['Revision']
tarball_filename = sysroot_dict['Tarball']
tarball_sha1sum = sysroot_dict['Sha1Sum']
sysroot = os.path.join(linux_dir, sysroot_dict['SysrootDir'])
url = '%s/%s/%s/%s' % (URL_PREFIX, URL_PATH, revision, tarball_filename)
@ -142,11 +131,12 @@ def main():
if os.path.exists(stamp):
with open(stamp) as s:
if s.read() == url:
print 'Debian Wheezy %s root image already up-to-date: %s' % \
(target_arch, sysroot)
return 0
print '%s %s sysroot image already up to date: %s' % \
(target_platform, target_arch, sysroot)
return
print 'Installing Debian Wheezy %s root image: %s' % (target_arch, sysroot)
print 'Installing Debian %s %s root image: %s' % \
(target_platform, target_arch, sysroot)
if os.path.isdir(sysroot):
shutil.rmtree(sysroot)
os.mkdir(sysroot)
@ -154,28 +144,30 @@ def main():
print 'Downloading %s' % url
sys.stdout.flush()
sys.stderr.flush()
subprocess.check_call(['curl', '--fail', '-L', url, '-o', tarball])
for _ in range(3):
try:
response = urllib2.urlopen(url)
with open(tarball, "wb") as f:
f.write(response.read())
break
except:
pass
else:
raise Error('Failed to download %s' % url)
sha1sum = GetSha1(tarball)
if sha1sum != tarball_sha1sum:
print 'Tarball sha1sum is wrong.'
print 'Expected %s, actual: %s' % (tarball_sha1sum, sha1sum)
return 1
raise Error('Tarball sha1sum is wrong.'
'Expected %s, actual: %s' % (tarball_sha1sum, sha1sum))
subprocess.check_call(['tar', 'xf', tarball, '-C', sysroot])
os.remove(tarball)
with open(stamp, 'w') as s:
s.write(url)
return 0
if __name__ == '__main__':
parser = optparse.OptionParser('usage: %prog [OPTIONS]')
parser.add_option('--running-as-hook', action='store_true',
default=False, help='Used when running from gclient hooks.'
' In this mode the sysroot will only '
'be installed for official Linux '
'builds or ARM Linux builds')
parser.add_option('--arch', type='choice', choices=valid_archs,
help='Sysroot architecture: %s' % ', '.join(valid_archs))
options, _ = parser.parse_args()
sys.exit(main())
try:
sys.exit(main(sys.argv[1:]))
except Error as e:
sys.stderr.write(str(e) + '\n')
sys.exit(1)

View file

@ -1,158 +0,0 @@
main/a/alsa-lib/libasound2_1.0.27.2-3ubuntu7_armhf.deb
main/a/alsa-lib/libasound2-dev_1.0.27.2-3ubuntu7_armhf.deb
main/a/atk1.0/libatk1.0-0_2.10.0-2ubuntu2_armhf.deb
main/a/atk1.0/libatk1.0-dev_2.10.0-2ubuntu2_armhf.deb
main/a/avahi/libavahi-client3_0.6.31-4ubuntu1_armhf.deb
main/a/avahi/libavahi-common3_0.6.31-4ubuntu1_armhf.deb
main/c/cairo/libcairo2_1.13.0~20140204-0ubuntu1_armhf.deb
main/c/cairo/libcairo2-dev_1.13.0~20140204-0ubuntu1_armhf.deb
main/c/cairo/libcairo-gobject2_1.13.0~20140204-0ubuntu1_armhf.deb
main/c/cairo/libcairo-script-interpreter2_1.13.0~20140204-0ubuntu1_armhf.deb
main/c/cups/libcups2_1.7.2-0ubuntu1_armhf.deb
main/c/cups/libcups2-dev_1.7.2-0ubuntu1_armhf.deb
main/d/dbus-glib/libdbus-glib-1-2_0.100.2-1_armhf.deb
main/d/dbus/libdbus-1-3_1.6.18-0ubuntu4_armhf.deb
main/d/dbus/libdbus-1-dev_1.6.18-0ubuntu4_armhf.deb
main/e/e2fsprogs/comerr-dev_2.1-1.42.9-3ubuntu1_armhf.deb
main/e/e2fsprogs/libcomerr2_1.42.9-3ubuntu1_armhf.deb
main/e/eglibc/libc6_2.19-0ubuntu6_armhf.deb
main/e/eglibc/libc6-dev_2.19-0ubuntu6_armhf.deb
main/e/elfutils/libelf1_0.158-0ubuntu5_armhf.deb
main/e/elfutils/libelf-dev_0.158-0ubuntu5_armhf.deb
main/e/expat/libexpat1_2.1.0-4ubuntu1_armhf.deb
main/e/expat/libexpat1-dev_2.1.0-4ubuntu1_armhf.deb
main/f/fontconfig/libfontconfig1_2.11.0-0ubuntu4_armhf.deb
main/f/fontconfig/libfontconfig1-dev_2.11.0-0ubuntu4_armhf.deb
main/f/freetype/libfreetype6_2.5.2-1ubuntu2_armhf.deb
main/f/freetype/libfreetype6-dev_2.5.2-1ubuntu2_armhf.deb
main/g/gcc-4.8/gcc-4.8_4.8.2-19ubuntu1_armhf.deb
main/g/gcc-4.8/libgomp1_4.8.2-19ubuntu1_armhf.deb
main/g/gcc-4.8/libstdc++-4.8-dev_4.8.2-19ubuntu1_armhf.deb
main/g/gcc-4.8/libstdc++6_4.8.2-19ubuntu1_armhf.deb
main/g/gccgo-4.9/libgcc1_4.9-20140406-0ubuntu1_armhf.deb
main/g/gconf/libgconf2-4_3.2.6-0ubuntu2_armhf.deb
main/g/gconf/libgconf-2-4_3.2.6-0ubuntu2_armhf.deb
main/g/gconf/libgconf2-dev_3.2.6-0ubuntu2_armhf.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.30.7-0ubuntu1_armhf.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.30.7-0ubuntu1_armhf.deb
main/g/glib2.0/libglib2.0-0_2.40.0-2_armhf.deb
main/g/glib2.0/libglib2.0-dev_2.40.0-2_armhf.deb
main/g/gnutls26/libgnutls26_2.12.23-12ubuntu2_armhf.deb
main/g/gnutls26/libgnutls-dev_2.12.23-12ubuntu2_armhf.deb
main/g/gnutls26/libgnutls-openssl27_2.12.23-12ubuntu2_armhf.deb
main/g/gnutls26/libgnutlsxx27_2.12.23-12ubuntu2_armhf.deb
main/g/gtk+2.0/libgtk2.0-0_2.24.23-0ubuntu1_armhf.deb
main/g/gtk+2.0/libgtk2.0-dev_2.24.23-0ubuntu1_armhf.deb
main/k/keyutils/libkeyutils1_1.5.6-1_armhf.deb
main/k/krb5/krb5-multidev_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libgssapi-krb5-2_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libgssrpc4_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libk5crypto3_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libkadm5clnt-mit9_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libkadm5srv-mit9_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libkdb5-7_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libkrb5-3_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libkrb5-dev_1.12+dfsg-2ubuntu4_armhf.deb
main/k/krb5/libkrb5support0_1.12+dfsg-2ubuntu4_armhf.deb
main/libc/libcap2/libcap2_2.24-0ubuntu2_armhf.deb
main/libc/libcap2/libcap-dev_2.24-0ubuntu2_armhf.deb
main/libd/libdrm/libdrm2_2.4.52-1_armhf.deb
main/libe/libexif/libexif12_0.6.21-1ubuntu1_armhf.deb
main/libe/libexif/libexif-dev_0.6.21-1ubuntu1_armhf.deb
main/libf/libffi/libffi6_3.1~rc1+r3.0.13-12_armhf.deb
main/libg/libgcrypt11/libgcrypt11_1.5.3-2ubuntu4_armhf.deb
main/libg/libgcrypt11/libgcrypt11-dev_1.5.3-2ubuntu4_armhf.deb
main/libg/libgnome-keyring/libgnome-keyring0_3.8.0-2_armhf.deb
main/libg/libgnome-keyring/libgnome-keyring-dev_3.8.0-2_armhf.deb
main/libg/libgpg-error/libgpg-error0_1.12-0.2ubuntu1_armhf.deb
main/libg/libgpg-error/libgpg-error-dev_1.12-0.2ubuntu1_armhf.deb
main/libn/libnss-db/libnss-db_2.2.3pre1-5build3_armhf.deb
main/libp/libp11/libp11-2_0.2.8-3ubuntu1_armhf.deb
main/libp/libpng/libpng12-0_1.2.50-1ubuntu2_armhf.deb
main/libp/libpng/libpng12-dev_1.2.50-1ubuntu2_armhf.deb
main/libs/libselinux/libselinux1_2.2.2-1_armhf.deb
main/libt/libtasn1-6/libtasn1-6_3.4-3_armhf.deb
main/libx/libx11/libx11-6_1.6.2-1ubuntu2_armhf.deb
main/libx/libx11/libx11-dev_1.6.2-1ubuntu2_armhf.deb
main/libx/libx11/libx11-xcb1_1.6.2-1ubuntu2_armhf.deb
main/libx/libxau/libxau6_1.0.8-1_armhf.deb
main/libx/libxau/libxau-dev_1.0.8-1_armhf.deb
main/libx/libxcb/libxcb1_1.10-2ubuntu1_armhf.deb
main/libx/libxcb/libxcb1-dev_1.10-2ubuntu1_armhf.deb
main/libx/libxcb/libxcb-glx0_1.10-2ubuntu1_armhf.deb
main/libx/libxcb/libxcb-render0_1.10-2ubuntu1_armhf.deb
main/libx/libxcb/libxcb-render0-dev_1.10-2ubuntu1_armhf.deb
main/libx/libxcb/libxcb-shm0_1.10-2ubuntu1_armhf.deb
main/libx/libxcb/libxcb-shm0-dev_1.10-2ubuntu1_armhf.deb
main/libx/libxcomposite/libxcomposite1_0.4.4-1_armhf.deb
main/libx/libxcomposite/libxcomposite-dev_0.4.4-1_armhf.deb
main/libx/libxcursor/libxcursor1_1.1.14-1_armhf.deb
main/libx/libxcursor/libxcursor-dev_1.1.14-1_armhf.deb
main/libx/libxdamage/libxdamage1_1.1.4-1ubuntu1_armhf.deb
main/libx/libxdamage/libxdamage-dev_1.1.4-1ubuntu1_armhf.deb
main/libx/libxdmcp/libxdmcp6_1.1.1-1_armhf.deb
main/libx/libxext/libxext6_1.3.2-1_armhf.deb
main/libx/libxext/libxext-dev_1.3.2-1_armhf.deb
main/libx/libxfixes/libxfixes3_5.0.1-1ubuntu1_armhf.deb
main/libx/libxfixes/libxfixes-dev_5.0.1-1ubuntu1_armhf.deb
main/libx/libxi/libxi6_1.7.1.901-1ubuntu1_armhf.deb
main/libx/libxi/libxi-dev_1.7.1.901-1ubuntu1_armhf.deb
main/libx/libxinerama/libxinerama1_1.1.3-1_armhf.deb
main/libx/libxinerama/libxinerama-dev_1.1.3-1_armhf.deb
main/libx/libxrandr/libxrandr2_1.4.2-1_armhf.deb
main/libx/libxrandr/libxrandr-dev_1.4.2-1_armhf.deb
main/libx/libxrender/libxrender1_0.9.8-1_armhf.deb
main/libx/libxrender/libxrender-dev_0.9.8-1_armhf.deb
main/libx/libxss/libxss1_1.2.2-1_armhf.deb
main/libx/libxss/libxss-dev_1.2.2-1_armhf.deb
main/libx/libxt/libxt6_1.1.4-1_armhf.deb
main/libx/libxt/libxt-dev_1.1.4-1_armhf.deb
main/libx/libxtst/libxtst6_1.2.2-1_armhf.deb
main/libx/libxtst/libxtst-dev_1.2.2-1_armhf.deb
main/libx/libxxf86vm/libxxf86vm1_1.1.3-1_armhf.deb
main/l/linux/linux-libc-dev_3.13.0-24.46_armhf.deb
main/m/mesa/libgl1-mesa-dev_10.1.0-4ubuntu5_armhf.deb
main/m/mesa/libgl1-mesa-glx_10.1.0-4ubuntu5_armhf.deb
main/m/mesa/libglapi-mesa_10.1.0-4ubuntu5_armhf.deb
main/m/mesa/mesa-common-dev_10.1.0-4ubuntu5_armhf.deb
main/n/nspr/libnspr4_4.10.2-1ubuntu1_armhf.deb
main/n/nspr/libnspr4-dev_4.10.2-1ubuntu1_armhf.deb
main/n/nss/libnss3_3.15.4-1ubuntu7_armhf.deb
main/n/nss/libnss3-dev_3.15.4-1ubuntu7_armhf.deb
main/o/openssl/libssl1.0.0_1.0.1f-1ubuntu2_armhf.deb
main/o/openssl/libssl-dev_1.0.1f-1ubuntu2_armhf.deb
main/o/orbit2/liborbit2_2.14.19-0.3_armhf.deb
main/p/p11-kit/libp11-kit0_0.20.2-2ubuntu2_armhf.deb
main/p/pam/libpam0g_1.1.8-1ubuntu2_armhf.deb
main/p/pam/libpam0g-dev_1.1.8-1ubuntu2_armhf.deb
main/p/pango1.0/libpango-1.0-0_1.36.3-1ubuntu1_armhf.deb
main/p/pango1.0/libpango1.0-dev_1.36.3-1ubuntu1_armhf.deb
main/p/pango1.0/libpangocairo-1.0-0_1.36.3-1ubuntu1_armhf.deb
main/p/pango1.0/libpangoft2-1.0-0_1.36.3-1ubuntu1_armhf.deb
main/p/pango1.0/libpangoxft-1.0-0_1.36.3-1ubuntu1_armhf.deb
main/p/pciutils/libpci3_3.2.1-1ubuntu5_armhf.deb
main/p/pciutils/libpci-dev_3.2.1-1ubuntu5_armhf.deb
main/p/pcre3/libpcre3_8.31-2ubuntu2_armhf.deb
main/p/pcre3/libpcre3-dev_8.31-2ubuntu2_armhf.deb
main/p/pcre3/libpcrecpp0_8.31-2ubuntu2_armhf.deb
main/p/pixman/libpixman-1-0_0.30.2-2ubuntu1_armhf.deb
main/p/pixman/libpixman-1-dev_0.30.2-2ubuntu1_armhf.deb
main/p/pulseaudio/libpulse0_4.0-0ubuntu11_armhf.deb
main/p/pulseaudio/libpulse-dev_4.0-0ubuntu11_armhf.deb
main/p/pulseaudio/libpulse-mainloop-glib0_4.0-0ubuntu11_armhf.deb
main/s/speech-dispatcher/libspeechd2_0.8-5ubuntu1_armhf.deb
main/s/speech-dispatcher/libspeechd-dev_0.8-5ubuntu1_armhf.deb
main/s/speech-dispatcher/speech-dispatcher_0.8-5ubuntu1_armhf.deb
main/x/x11proto-composite/x11proto-composite-dev_0.4.2-2_all.deb
main/x/x11proto-core/x11proto-core-dev_7.0.24-1_all.deb
main/x/x11proto-damage/x11proto-damage-dev_1.2.1-2_all.deb
main/x/x11proto-fixes/x11proto-fixes-dev_5.0-2ubuntu2_all.deb
main/x/x11proto-input/x11proto-input-dev_2.3-1_all.deb
main/x/x11proto-kb/x11proto-kb-dev_1.0.6-2_all.deb
main/x/x11proto-randr/x11proto-randr-dev_1.4.0+git20120101.is.really.1.4.0-0ubuntu1_all.deb
main/x/x11proto-record/x11proto-record-dev_1.14.2-1_all.deb
main/x/x11proto-render/x11proto-render-dev_0.11.1-2_all.deb
main/x/x11proto-scrnsaver/x11proto-scrnsaver-dev_1.2.2-1_all.deb
main/x/x11proto-xext/x11proto-xext-dev_7.3.0-1_all.deb
main/z/zlib/zlib1g_1.2.8.dfsg-1ubuntu1_armhf.deb
main/z/zlib/zlib1g-dev_1.2.8.dfsg-1ubuntu1_armhf.deb

View file

@ -1,157 +0,0 @@
main/a/alsa-lib/libasound2_1.0.25-4_amd64.deb
main/a/alsa-lib/libasound2-dev_1.0.25-4_amd64.deb
main/a/atk1.0/libatk1.0-0_2.4.0-2_amd64.deb
main/a/atk1.0/libatk1.0-dev_2.4.0-2_amd64.deb
main/a/attr/libattr1_2.4.46-8_amd64.deb
main/a/avahi/libavahi-client3_0.6.31-2_amd64.deb
main/a/avahi/libavahi-common3_0.6.31-2_amd64.deb
main/c/cairo/libcairo2_1.12.2-3_amd64.deb
main/c/cairo/libcairo2-dev_1.12.2-3_amd64.deb
main/c/cairo/libcairo-gobject2_1.12.2-3_amd64.deb
main/c/cairo/libcairo-script-interpreter2_1.12.2-3_amd64.deb
main/c/cups/libcups2_1.5.3-5+deb7u4_amd64.deb
main/c/cups/libcups2-dev_1.5.3-5+deb7u4_amd64.deb
main/d/dbus-glib/libdbus-glib-1-2_0.100.2-1_amd64.deb
main/d/dbus/libdbus-1-3_1.6.8-1+deb7u5_amd64.deb
main/d/dbus/libdbus-1-dev_1.6.8-1+deb7u5_amd64.deb
main/e/e2fsprogs/comerr-dev_2.1-1.42.5-1.1_amd64.deb
main/e/e2fsprogs/libcomerr2_1.42.5-1.1_amd64.deb
main/e/eglibc/libc6_2.13-38+deb7u6_amd64.deb
main/e/eglibc/libc6-dev_2.13-38+deb7u6_amd64.deb
main/e/elfutils/libelf1_0.152-1+wheezy1_amd64.deb
main/e/elfutils/libelf-dev_0.152-1+wheezy1_amd64.deb
main/e/expat/libexpat1_2.1.0-1+deb7u1_amd64.deb
main/e/expat/libexpat1-dev_2.1.0-1+deb7u1_amd64.deb
main/f/fontconfig/libfontconfig1_2.9.0-7.1_amd64.deb
main/f/fontconfig/libfontconfig1-dev_2.9.0-7.1_amd64.deb
main/f/freetype/libfreetype6_2.4.9-1.1_amd64.deb
main/f/freetype/libfreetype6-dev_2.4.9-1.1_amd64.deb
main/g/gcc-4.6/gcc-4.6_4.6.3-14_amd64.deb
main/g/gcc-4.6/libstdc++6-4.6-dev_4.6.3-14_amd64.deb
main/g/gcc-4.7/libgcc1_4.7.2-5_amd64.deb
main/g/gcc-4.7/libgomp1_4.7.2-5_amd64.deb
main/g/gcc-4.7/libquadmath0_4.7.2-5_amd64.deb
main/g/gcc-4.7/libstdc++6_4.7.2-5_amd64.deb
main/g/gconf/libgconf-2-4_3.2.5-1+build1_amd64.deb
main/g/gconf/libgconf2-4_3.2.5-1+build1_amd64.deb
main/g/gconf/libgconf2-dev_3.2.5-1+build1_amd64.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.26.1-1_amd64.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.26.1-1_amd64.deb
main/g/glib2.0/libglib2.0-0_2.33.12+really2.32.4-5_amd64.deb
main/g/glib2.0/libglib2.0-dev_2.33.12+really2.32.4-5_amd64.deb
main/g/gnutls26/libgnutls26_2.12.20-8+deb7u2_amd64.deb
main/g/gnutls26/libgnutls-dev_2.12.20-8+deb7u2_amd64.deb
main/g/gnutls26/libgnutls-openssl27_2.12.20-8+deb7u2_amd64.deb
main/g/gnutls26/libgnutlsxx27_2.12.20-8+deb7u2_amd64.deb
main/g/gtk+2.0/libgtk2.0-0_2.24.10-2_amd64.deb
main/g/gtk+2.0/libgtk2.0-dev_2.24.10-2_amd64.deb
main/k/keyutils/libkeyutils1_1.5.5-3+deb7u1_amd64.deb
main/k/krb5/krb5-multidev_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libgssapi-krb5-2_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libgssrpc4_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libk5crypto3_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libkadm5clnt-mit8_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libkadm5srv-mit8_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libkdb5-6_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libkrb5-3_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libkrb5-dev_1.10.1+dfsg-5+deb7u2_amd64.deb
main/k/krb5/libkrb5support0_1.10.1+dfsg-5+deb7u2_amd64.deb
main/libc/libcap2/libcap2_2.22-1.2_amd64.deb
main/libc/libcap2/libcap-dev_2.22-1.2_amd64.deb
main/libd/libdrm/libdrm2_2.4.40-1~deb7u2_amd64.deb
main/libe/libexif/libexif12_0.6.20-3_amd64.deb
main/libe/libexif/libexif-dev_0.6.20-3_amd64.deb
main/libf/libffi/libffi5_3.0.10-3_amd64.deb
main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u2_amd64.deb
main/libg/libgcrypt11/libgcrypt11-dev_1.5.0-5+deb7u2_amd64.deb
main/libg/libgnome-keyring/libgnome-keyring0_3.4.1-1_amd64.deb
main/libg/libgnome-keyring/libgnome-keyring-dev_3.4.1-1_amd64.deb
main/libg/libgpg-error/libgpg-error0_1.10-3.1_amd64.deb
main/libg/libgpg-error/libgpg-error-dev_1.10-3.1_amd64.deb
main/libn/libnss-db/libnss-db_2.2.3pre1-4_amd64.deb
main/libp/libp11/libp11-2_0.2.8-2_amd64.deb
main/libp/libpng/libpng12-0_1.2.49-1_amd64.deb
main/libp/libpng/libpng12-dev_1.2.49-1_amd64.deb
main/libs/libselinux/libselinux1_2.1.9-5_amd64.deb
main/libt/libtasn1-3/libtasn1-3_2.13-2+deb7u1_amd64.deb
main/libx/libx11/libx11-6_1.5.0-1+deb7u1_amd64.deb
main/libx/libx11/libx11-dev_1.5.0-1+deb7u1_amd64.deb
main/libx/libx11/libx11-xcb1_1.5.0-1+deb7u1_amd64.deb
main/libx/libxau/libxau6_1.0.7-1_amd64.deb
main/libx/libxau/libxau-dev_1.0.7-1_amd64.deb
main/libx/libxcb/libxcb1_1.8.1-2+deb7u1_amd64.deb
main/libx/libxcb/libxcb1-dev_1.8.1-2+deb7u1_amd64.deb
main/libx/libxcb/libxcb-glx0_1.8.1-2+deb7u1_amd64.deb
main/libx/libxcb/libxcb-render0_1.8.1-2+deb7u1_amd64.deb
main/libx/libxcb/libxcb-render0-dev_1.8.1-2+deb7u1_amd64.deb
main/libx/libxcb/libxcb-shm0_1.8.1-2+deb7u1_amd64.deb
main/libx/libxcb/libxcb-shm0-dev_1.8.1-2+deb7u1_amd64.deb
main/libx/libxcomposite/libxcomposite1_0.4.3-2_amd64.deb
main/libx/libxcomposite/libxcomposite-dev_0.4.3-2_amd64.deb
main/libx/libxcursor/libxcursor1_1.1.13-1+deb7u1_amd64.deb
main/libx/libxcursor/libxcursor-dev_1.1.13-1+deb7u1_amd64.deb
main/libx/libxdamage/libxdamage1_1.1.3-2_amd64.deb
main/libx/libxdamage/libxdamage-dev_1.1.3-2_amd64.deb
main/libx/libxdmcp/libxdmcp6_1.1.1-1_amd64.deb
main/libx/libxext/libxext6_1.3.1-2+deb7u1_amd64.deb
main/libx/libxext/libxext-dev_1.3.1-2+deb7u1_amd64.deb
main/libx/libxfixes/libxfixes3_5.0-4+deb7u1_amd64.deb
main/libx/libxfixes/libxfixes-dev_5.0-4+deb7u1_amd64.deb
main/libx/libxi/libxi6_1.6.1-1+deb7u1_amd64.deb
main/libx/libxi/libxi-dev_1.6.1-1+deb7u1_amd64.deb
main/libx/libxinerama/libxinerama1_1.1.2-1+deb7u1_amd64.deb
main/libx/libxinerama/libxinerama-dev_1.1.2-1+deb7u1_amd64.deb
main/libx/libxrandr/libxrandr2_1.3.2-2+deb7u1_amd64.deb
main/libx/libxrandr/libxrandr-dev_1.3.2-2+deb7u1_amd64.deb
main/libx/libxrender/libxrender1_0.9.7-1+deb7u1_amd64.deb
main/libx/libxrender/libxrender-dev_0.9.7-1+deb7u1_amd64.deb
main/libx/libxss/libxss1_1.2.2-1_amd64.deb
main/libx/libxss/libxss-dev_1.2.2-1_amd64.deb
main/libx/libxt/libxt6_1.1.3-1+deb7u1_amd64.deb
main/libx/libxt/libxt-dev_1.1.3-1+deb7u1_amd64.deb
main/libx/libxtst/libxtst6_1.2.1-1+deb7u1_amd64.deb
main/libx/libxtst/libxtst-dev_1.2.1-1+deb7u1_amd64.deb
main/libx/libxxf86vm/libxxf86vm1_1.1.2-1+deb7u1_amd64.deb
main/l/linux/linux-libc-dev_3.2.65-1_amd64.deb
main/m/mesa/libgl1-mesa-dev_8.0.5-4+deb7u2_amd64.deb
main/m/mesa/libgl1-mesa-glx_8.0.5-4+deb7u2_amd64.deb
main/m/mesa/libglapi-mesa_8.0.5-4+deb7u2_amd64.deb
main/m/mesa/mesa-common-dev_8.0.5-4+deb7u2_amd64.deb
main/n/nspr/libnspr4_4.9.2-1+deb7u2_amd64.deb
main/n/nspr/libnspr4-dev_4.9.2-1+deb7u2_amd64.deb
main/n/nss/libnss3_3.14.5-1+deb7u3_amd64.deb
main/n/nss/libnss3-dev_3.14.5-1+deb7u3_amd64.deb
main/o/openssl/libssl1.0.0_1.0.1e-2+deb7u13_amd64.deb
main/o/openssl/libssl-dev_1.0.1e-2+deb7u13_amd64.deb
main/o/orbit2/liborbit2_2.14.19-0.1_amd64.deb
main/p/p11-kit/libp11-kit0_0.12-3_amd64.deb
main/p/pam/libpam0g_1.1.3-7.1_amd64.deb
main/p/pam/libpam0g-dev_1.1.3-7.1_amd64.deb
main/p/pango1.0/libpango1.0-0_1.30.0-1_amd64.deb
main/p/pango1.0/libpango1.0-dev_1.30.0-1_amd64.deb
main/p/pciutils/libpci3_3.1.9-6_amd64.deb
main/p/pciutils/libpci-dev_3.1.9-6_amd64.deb
main/p/pcre3/libpcre3_8.30-5_amd64.deb
main/p/pcre3/libpcre3-dev_8.30-5_amd64.deb
main/p/pcre3/libpcrecpp0_8.30-5_amd64.deb
main/p/pixman/libpixman-1-0_0.26.0-4+deb7u1_amd64.deb
main/p/pixman/libpixman-1-dev_0.26.0-4+deb7u1_amd64.deb
main/p/pulseaudio/libpulse0_2.0-6.1_amd64.deb
main/p/pulseaudio/libpulse-dev_2.0-6.1_amd64.deb
main/p/pulseaudio/libpulse-mainloop-glib0_2.0-6.1_amd64.deb
main/s/speech-dispatcher/libspeechd2_0.7.1-6.2_amd64.deb
main/s/speech-dispatcher/libspeechd-dev_0.7.1-6.2_amd64.deb
main/s/speech-dispatcher/speech-dispatcher_0.7.1-6.2_amd64.deb
main/x/x11proto-composite/x11proto-composite-dev_0.4.2-2_all.deb
main/x/x11proto-core/x11proto-core-dev_7.0.23-1_all.deb
main/x/x11proto-damage/x11proto-damage-dev_1.2.1-2_all.deb
main/x/x11proto-fixes/x11proto-fixes-dev_5.0-2_all.deb
main/x/x11proto-input/x11proto-input-dev_2.2-1_all.deb
main/x/x11proto-kb/x11proto-kb-dev_1.0.6-2_all.deb
main/x/x11proto-randr/x11proto-randr-dev_1.3.2-2_all.deb
main/x/x11proto-record/x11proto-record-dev_1.14.2-1_all.deb
main/x/x11proto-render/x11proto-render-dev_0.11.1-2_all.deb
main/x/x11proto-scrnsaver/x11proto-scrnsaver-dev_1.2.2-1_all.deb
main/x/x11proto-xext/x11proto-xext-dev_7.2.1-1_all.deb
main/z/zlib/zlib1g_1.2.7.dfsg-13_amd64.deb
main/z/zlib/zlib1g-dev_1.2.7.dfsg-13_amd64.deb

View file

@ -1,156 +0,0 @@
main/a/alsa-lib/libasound2_1.0.25-4_armhf.deb
main/a/alsa-lib/libasound2-dev_1.0.25-4_armhf.deb
main/a/atk1.0/libatk1.0-0_2.4.0-2_armhf.deb
main/a/atk1.0/libatk1.0-dev_2.4.0-2_armhf.deb
main/a/attr/libattr1_2.4.46-8_armhf.deb
main/a/avahi/libavahi-client3_0.6.31-2_armhf.deb
main/a/avahi/libavahi-common3_0.6.31-2_armhf.deb
main/c/cairo/libcairo2_1.12.2-3_armhf.deb
main/c/cairo/libcairo2-dev_1.12.2-3_armhf.deb
main/c/cairo/libcairo-gobject2_1.12.2-3_armhf.deb
main/c/cairo/libcairo-script-interpreter2_1.12.2-3_armhf.deb
main/c/cups/libcups2_1.5.3-5+deb7u4_armhf.deb
main/c/cups/libcups2-dev_1.5.3-5+deb7u4_armhf.deb
main/d/dbus-glib/libdbus-glib-1-2_0.100.2-1_armhf.deb
main/d/dbus/libdbus-1-3_1.6.8-1+deb7u5_armhf.deb
main/d/dbus/libdbus-1-dev_1.6.8-1+deb7u5_armhf.deb
main/e/e2fsprogs/comerr-dev_2.1-1.42.5-1.1_armhf.deb
main/e/e2fsprogs/libcomerr2_1.42.5-1.1_armhf.deb
main/e/eglibc/libc6_2.13-38+deb7u6_armhf.deb
main/e/eglibc/libc6-dev_2.13-38+deb7u6_armhf.deb
main/e/elfutils/libelf1_0.152-1+wheezy1_armhf.deb
main/e/elfutils/libelf-dev_0.152-1+wheezy1_armhf.deb
main/e/expat/libexpat1_2.1.0-1+deb7u1_armhf.deb
main/e/expat/libexpat1-dev_2.1.0-1+deb7u1_armhf.deb
main/f/fontconfig/libfontconfig1_2.9.0-7.1_armhf.deb
main/f/fontconfig/libfontconfig1-dev_2.9.0-7.1_armhf.deb
main/f/freetype/libfreetype6_2.4.9-1.1_armhf.deb
main/f/freetype/libfreetype6-dev_2.4.9-1.1_armhf.deb
main/g/gcc-4.6/gcc-4.6_4.6.3-14_armhf.deb
main/g/gcc-4.6/libstdc++6-4.6-dev_4.6.3-14_armhf.deb
main/g/gcc-4.7/libgcc1_4.7.2-5_armhf.deb
main/g/gcc-4.7/libgomp1_4.7.2-5_armhf.deb
main/g/gcc-4.7/libstdc++6_4.7.2-5_armhf.deb
main/g/gconf/libgconf2-4_3.2.5-1+build1_armhf.deb
main/g/gconf/libgconf-2-4_3.2.5-1+build1_armhf.deb
main/g/gconf/libgconf2-dev_3.2.5-1+build1_armhf.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.26.1-1_armhf.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.26.1-1_armhf.deb
main/g/glib2.0/libglib2.0-0_2.33.12+really2.32.4-5_armhf.deb
main/g/glib2.0/libglib2.0-dev_2.33.12+really2.32.4-5_armhf.deb
main/g/gnutls26/libgnutls26_2.12.20-8+deb7u2_armhf.deb
main/g/gnutls26/libgnutls-dev_2.12.20-8+deb7u2_armhf.deb
main/g/gnutls26/libgnutls-openssl27_2.12.20-8+deb7u2_armhf.deb
main/g/gnutls26/libgnutlsxx27_2.12.20-8+deb7u2_armhf.deb
main/g/gtk+2.0/libgtk2.0-0_2.24.10-2_armhf.deb
main/g/gtk+2.0/libgtk2.0-dev_2.24.10-2_armhf.deb
main/k/keyutils/libkeyutils1_1.5.5-3+deb7u1_armhf.deb
main/k/krb5/krb5-multidev_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libgssapi-krb5-2_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libgssrpc4_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libk5crypto3_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libkadm5clnt-mit8_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libkadm5srv-mit8_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libkdb5-6_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libkrb5-3_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libkrb5-dev_1.10.1+dfsg-5+deb7u2_armhf.deb
main/k/krb5/libkrb5support0_1.10.1+dfsg-5+deb7u2_armhf.deb
main/libc/libcap2/libcap2_2.22-1.2_armhf.deb
main/libc/libcap2/libcap-dev_2.22-1.2_armhf.deb
main/libd/libdrm/libdrm2_2.4.40-1~deb7u2_armhf.deb
main/libe/libexif/libexif12_0.6.20-3_armhf.deb
main/libe/libexif/libexif-dev_0.6.20-3_armhf.deb
main/libf/libffi/libffi5_3.0.10-3+b1_armhf.deb
main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u2_armhf.deb
main/libg/libgcrypt11/libgcrypt11-dev_1.5.0-5+deb7u2_armhf.deb
main/libg/libgnome-keyring/libgnome-keyring0_3.4.1-1_armhf.deb
main/libg/libgnome-keyring/libgnome-keyring-dev_3.4.1-1_armhf.deb
main/libg/libgpg-error/libgpg-error0_1.10-3.1_armhf.deb
main/libg/libgpg-error/libgpg-error-dev_1.10-3.1_armhf.deb
main/libn/libnss-db/libnss-db_2.2.3pre1-4_armhf.deb
main/libp/libp11/libp11-2_0.2.8-2_armhf.deb
main/libp/libpng/libpng12-0_1.2.49-1_armhf.deb
main/libp/libpng/libpng12-dev_1.2.49-1_armhf.deb
main/libs/libselinux/libselinux1_2.1.9-5_armhf.deb
main/libt/libtasn1-3/libtasn1-3_2.13-2+deb7u1_armhf.deb
main/libx/libx11/libx11-6_1.5.0-1+deb7u1_armhf.deb
main/libx/libx11/libx11-dev_1.5.0-1+deb7u1_armhf.deb
main/libx/libx11/libx11-xcb1_1.5.0-1+deb7u1_armhf.deb
main/libx/libxau/libxau6_1.0.7-1_armhf.deb
main/libx/libxau/libxau-dev_1.0.7-1_armhf.deb
main/libx/libxcb/libxcb1_1.8.1-2+deb7u1_armhf.deb
main/libx/libxcb/libxcb1-dev_1.8.1-2+deb7u1_armhf.deb
main/libx/libxcb/libxcb-glx0_1.8.1-2+deb7u1_armhf.deb
main/libx/libxcb/libxcb-render0_1.8.1-2+deb7u1_armhf.deb
main/libx/libxcb/libxcb-render0-dev_1.8.1-2+deb7u1_armhf.deb
main/libx/libxcb/libxcb-shm0_1.8.1-2+deb7u1_armhf.deb
main/libx/libxcb/libxcb-shm0-dev_1.8.1-2+deb7u1_armhf.deb
main/libx/libxcomposite/libxcomposite1_0.4.3-2+b1_armhf.deb
main/libx/libxcomposite/libxcomposite-dev_0.4.3-2+b1_armhf.deb
main/libx/libxcursor/libxcursor1_1.1.13-1+deb7u1_armhf.deb
main/libx/libxcursor/libxcursor-dev_1.1.13-1+deb7u1_armhf.deb
main/libx/libxdamage/libxdamage1_1.1.3-2+b1_armhf.deb
main/libx/libxdamage/libxdamage-dev_1.1.3-2+b1_armhf.deb
main/libx/libxdmcp/libxdmcp6_1.1.1-1_armhf.deb
main/libx/libxext/libxext6_1.3.1-2+deb7u1_armhf.deb
main/libx/libxext/libxext-dev_1.3.1-2+deb7u1_armhf.deb
main/libx/libxfixes/libxfixes3_5.0-4+deb7u1_armhf.deb
main/libx/libxfixes/libxfixes-dev_5.0-4+deb7u1_armhf.deb
main/libx/libxi/libxi6_1.6.1-1+deb7u1_armhf.deb
main/libx/libxi/libxi-dev_1.6.1-1+deb7u1_armhf.deb
main/libx/libxinerama/libxinerama1_1.1.2-1+deb7u1_armhf.deb
main/libx/libxinerama/libxinerama-dev_1.1.2-1+deb7u1_armhf.deb
main/libx/libxrandr/libxrandr2_1.3.2-2+deb7u1_armhf.deb
main/libx/libxrandr/libxrandr-dev_1.3.2-2+deb7u1_armhf.deb
main/libx/libxrender/libxrender1_0.9.7-1+deb7u1_armhf.deb
main/libx/libxrender/libxrender-dev_0.9.7-1+deb7u1_armhf.deb
main/libx/libxss/libxss1_1.2.2-1_armhf.deb
main/libx/libxss/libxss-dev_1.2.2-1_armhf.deb
main/libx/libxt/libxt6_1.1.3-1+deb7u1_armhf.deb
main/libx/libxt/libxt-dev_1.1.3-1+deb7u1_armhf.deb
main/libx/libxtst/libxtst6_1.2.1-1+deb7u1_armhf.deb
main/libx/libxtst/libxtst-dev_1.2.1-1+deb7u1_armhf.deb
main/libx/libxxf86vm/libxxf86vm1_1.1.2-1+deb7u1_armhf.deb
main/l/linux/linux-libc-dev_3.2.65-1_armhf.deb
main/m/mesa/libgl1-mesa-dev_8.0.5-4+deb7u2_armhf.deb
main/m/mesa/libgl1-mesa-glx_8.0.5-4+deb7u2_armhf.deb
main/m/mesa/libglapi-mesa_8.0.5-4+deb7u2_armhf.deb
main/m/mesa/mesa-common-dev_8.0.5-4+deb7u2_armhf.deb
main/n/nspr/libnspr4_4.9.2-1+deb7u2_armhf.deb
main/n/nspr/libnspr4-dev_4.9.2-1+deb7u2_armhf.deb
main/n/nss/libnss3_3.14.5-1+deb7u3_armhf.deb
main/n/nss/libnss3-dev_3.14.5-1+deb7u3_armhf.deb
main/o/openssl/libssl1.0.0_1.0.1e-2+deb7u13_armhf.deb
main/o/openssl/libssl-dev_1.0.1e-2+deb7u13_armhf.deb
main/o/orbit2/liborbit2_2.14.19-0.1_armhf.deb
main/p/p11-kit/libp11-kit0_0.12-3_armhf.deb
main/p/pam/libpam0g_1.1.3-7.1_armhf.deb
main/p/pam/libpam0g-dev_1.1.3-7.1_armhf.deb
main/p/pango1.0/libpango1.0-0_1.30.0-1_armhf.deb
main/p/pango1.0/libpango1.0-dev_1.30.0-1_armhf.deb
main/p/pciutils/libpci3_3.1.9-6_armhf.deb
main/p/pciutils/libpci-dev_3.1.9-6_armhf.deb
main/p/pcre3/libpcre3_8.30-5_armhf.deb
main/p/pcre3/libpcre3-dev_8.30-5_armhf.deb
main/p/pcre3/libpcrecpp0_8.30-5_armhf.deb
main/p/pixman/libpixman-1-0_0.26.0-4+deb7u1_armhf.deb
main/p/pixman/libpixman-1-dev_0.26.0-4+deb7u1_armhf.deb
main/p/pulseaudio/libpulse0_2.0-6.1_armhf.deb
main/p/pulseaudio/libpulse-dev_2.0-6.1_armhf.deb
main/p/pulseaudio/libpulse-mainloop-glib0_2.0-6.1_armhf.deb
main/s/speech-dispatcher/libspeechd2_0.7.1-6.2_armhf.deb
main/s/speech-dispatcher/libspeechd-dev_0.7.1-6.2_armhf.deb
main/s/speech-dispatcher/speech-dispatcher_0.7.1-6.2_armhf.deb
main/x/x11proto-composite/x11proto-composite-dev_0.4.2-2_all.deb
main/x/x11proto-core/x11proto-core-dev_7.0.23-1_all.deb
main/x/x11proto-damage/x11proto-damage-dev_1.2.1-2_all.deb
main/x/x11proto-fixes/x11proto-fixes-dev_5.0-2_all.deb
main/x/x11proto-input/x11proto-input-dev_2.2-1_all.deb
main/x/x11proto-kb/x11proto-kb-dev_1.0.6-2_all.deb
main/x/x11proto-randr/x11proto-randr-dev_1.3.2-2_all.deb
main/x/x11proto-record/x11proto-record-dev_1.14.2-1_all.deb
main/x/x11proto-render/x11proto-render-dev_0.11.1-2_all.deb
main/x/x11proto-scrnsaver/x11proto-scrnsaver-dev_1.2.2-1_all.deb
main/x/x11proto-xext/x11proto-xext-dev_7.2.1-1_all.deb
main/z/zlib/zlib1g_1.2.7.dfsg-13_armhf.deb
main/z/zlib/zlib1g-dev_1.2.7.dfsg-13_armhf.deb

View file

@ -1,157 +0,0 @@
main/a/alsa-lib/libasound2_1.0.25-4_i386.deb
main/a/alsa-lib/libasound2-dev_1.0.25-4_i386.deb
main/a/atk1.0/libatk1.0-0_2.4.0-2_i386.deb
main/a/atk1.0/libatk1.0-dev_2.4.0-2_i386.deb
main/a/attr/libattr1_2.4.46-8_i386.deb
main/a/avahi/libavahi-client3_0.6.31-2_i386.deb
main/a/avahi/libavahi-common3_0.6.31-2_i386.deb
main/c/cairo/libcairo2_1.12.2-3_i386.deb
main/c/cairo/libcairo2-dev_1.12.2-3_i386.deb
main/c/cairo/libcairo-gobject2_1.12.2-3_i386.deb
main/c/cairo/libcairo-script-interpreter2_1.12.2-3_i386.deb
main/c/cups/libcups2_1.5.3-5+deb7u4_i386.deb
main/c/cups/libcups2-dev_1.5.3-5+deb7u4_i386.deb
main/d/dbus-glib/libdbus-glib-1-2_0.100.2-1_i386.deb
main/d/dbus/libdbus-1-3_1.6.8-1+deb7u5_i386.deb
main/d/dbus/libdbus-1-dev_1.6.8-1+deb7u5_i386.deb
main/e/e2fsprogs/comerr-dev_2.1-1.42.5-1.1_i386.deb
main/e/e2fsprogs/libcomerr2_1.42.5-1.1_i386.deb
main/e/eglibc/libc6_2.13-38+deb7u6_i386.deb
main/e/eglibc/libc6-dev_2.13-38+deb7u6_i386.deb
main/e/elfutils/libelf1_0.152-1+wheezy1_i386.deb
main/e/elfutils/libelf-dev_0.152-1+wheezy1_i386.deb
main/e/expat/libexpat1_2.1.0-1+deb7u1_i386.deb
main/e/expat/libexpat1-dev_2.1.0-1+deb7u1_i386.deb
main/f/fontconfig/libfontconfig1_2.9.0-7.1_i386.deb
main/f/fontconfig/libfontconfig1-dev_2.9.0-7.1_i386.deb
main/f/freetype/libfreetype6_2.4.9-1.1_i386.deb
main/f/freetype/libfreetype6-dev_2.4.9-1.1_i386.deb
main/g/gcc-4.6/gcc-4.6_4.6.3-14_i386.deb
main/g/gcc-4.6/libstdc++6-4.6-dev_4.6.3-14_i386.deb
main/g/gcc-4.7/libgcc1_4.7.2-5_i386.deb
main/g/gcc-4.7/libgomp1_4.7.2-5_i386.deb
main/g/gcc-4.7/libquadmath0_4.7.2-5_i386.deb
main/g/gcc-4.7/libstdc++6_4.7.2-5_i386.deb
main/g/gconf/libgconf-2-4_3.2.5-1+build1_i386.deb
main/g/gconf/libgconf2-4_3.2.5-1+build1_i386.deb
main/g/gconf/libgconf2-dev_3.2.5-1+build1_i386.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.26.1-1_i386.deb
main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.26.1-1_i386.deb
main/g/glib2.0/libglib2.0-0_2.33.12+really2.32.4-5_i386.deb
main/g/glib2.0/libglib2.0-dev_2.33.12+really2.32.4-5_i386.deb
main/g/gnutls26/libgnutls26_2.12.20-8+deb7u2_i386.deb
main/g/gnutls26/libgnutls-dev_2.12.20-8+deb7u2_i386.deb
main/g/gnutls26/libgnutls-openssl27_2.12.20-8+deb7u2_i386.deb
main/g/gnutls26/libgnutlsxx27_2.12.20-8+deb7u2_i386.deb
main/g/gtk+2.0/libgtk2.0-0_2.24.10-2_i386.deb
main/g/gtk+2.0/libgtk2.0-dev_2.24.10-2_i386.deb
main/k/keyutils/libkeyutils1_1.5.5-3+deb7u1_i386.deb
main/k/krb5/krb5-multidev_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libgssapi-krb5-2_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libgssrpc4_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libk5crypto3_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libkadm5clnt-mit8_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libkadm5srv-mit8_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libkdb5-6_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libkrb5-3_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libkrb5-dev_1.10.1+dfsg-5+deb7u2_i386.deb
main/k/krb5/libkrb5support0_1.10.1+dfsg-5+deb7u2_i386.deb
main/libc/libcap2/libcap2_2.22-1.2_i386.deb
main/libc/libcap2/libcap-dev_2.22-1.2_i386.deb
main/libd/libdrm/libdrm2_2.4.40-1~deb7u2_i386.deb
main/libe/libexif/libexif12_0.6.20-3_i386.deb
main/libe/libexif/libexif-dev_0.6.20-3_i386.deb
main/libf/libffi/libffi5_3.0.10-3_i386.deb
main/libg/libgcrypt11/libgcrypt11_1.5.0-5+deb7u2_i386.deb
main/libg/libgcrypt11/libgcrypt11-dev_1.5.0-5+deb7u2_i386.deb
main/libg/libgnome-keyring/libgnome-keyring0_3.4.1-1_i386.deb
main/libg/libgnome-keyring/libgnome-keyring-dev_3.4.1-1_i386.deb
main/libg/libgpg-error/libgpg-error0_1.10-3.1_i386.deb
main/libg/libgpg-error/libgpg-error-dev_1.10-3.1_i386.deb
main/libn/libnss-db/libnss-db_2.2.3pre1-4_i386.deb
main/libp/libp11/libp11-2_0.2.8-2_i386.deb
main/libp/libpng/libpng12-0_1.2.49-1_i386.deb
main/libp/libpng/libpng12-dev_1.2.49-1_i386.deb
main/libs/libselinux/libselinux1_2.1.9-5_i386.deb
main/libt/libtasn1-3/libtasn1-3_2.13-2+deb7u1_i386.deb
main/libx/libx11/libx11-6_1.5.0-1+deb7u1_i386.deb
main/libx/libx11/libx11-dev_1.5.0-1+deb7u1_i386.deb
main/libx/libx11/libx11-xcb1_1.5.0-1+deb7u1_i386.deb
main/libx/libxau/libxau6_1.0.7-1_i386.deb
main/libx/libxau/libxau-dev_1.0.7-1_i386.deb
main/libx/libxcb/libxcb1_1.8.1-2+deb7u1_i386.deb
main/libx/libxcb/libxcb1-dev_1.8.1-2+deb7u1_i386.deb
main/libx/libxcb/libxcb-glx0_1.8.1-2+deb7u1_i386.deb
main/libx/libxcb/libxcb-render0_1.8.1-2+deb7u1_i386.deb
main/libx/libxcb/libxcb-render0-dev_1.8.1-2+deb7u1_i386.deb
main/libx/libxcb/libxcb-shm0_1.8.1-2+deb7u1_i386.deb
main/libx/libxcb/libxcb-shm0-dev_1.8.1-2+deb7u1_i386.deb
main/libx/libxcomposite/libxcomposite1_0.4.3-2_i386.deb
main/libx/libxcomposite/libxcomposite-dev_0.4.3-2_i386.deb
main/libx/libxcursor/libxcursor1_1.1.13-1+deb7u1_i386.deb
main/libx/libxcursor/libxcursor-dev_1.1.13-1+deb7u1_i386.deb
main/libx/libxdamage/libxdamage1_1.1.3-2_i386.deb
main/libx/libxdamage/libxdamage-dev_1.1.3-2_i386.deb
main/libx/libxdmcp/libxdmcp6_1.1.1-1_i386.deb
main/libx/libxext/libxext6_1.3.1-2+deb7u1_i386.deb
main/libx/libxext/libxext-dev_1.3.1-2+deb7u1_i386.deb
main/libx/libxfixes/libxfixes3_5.0-4+deb7u1_i386.deb
main/libx/libxfixes/libxfixes-dev_5.0-4+deb7u1_i386.deb
main/libx/libxi/libxi6_1.6.1-1+deb7u1_i386.deb
main/libx/libxi/libxi-dev_1.6.1-1+deb7u1_i386.deb
main/libx/libxinerama/libxinerama1_1.1.2-1+deb7u1_i386.deb
main/libx/libxinerama/libxinerama-dev_1.1.2-1+deb7u1_i386.deb
main/libx/libxrandr/libxrandr2_1.3.2-2+deb7u1_i386.deb
main/libx/libxrandr/libxrandr-dev_1.3.2-2+deb7u1_i386.deb
main/libx/libxrender/libxrender1_0.9.7-1+deb7u1_i386.deb
main/libx/libxrender/libxrender-dev_0.9.7-1+deb7u1_i386.deb
main/libx/libxss/libxss1_1.2.2-1_i386.deb
main/libx/libxss/libxss-dev_1.2.2-1_i386.deb
main/libx/libxt/libxt6_1.1.3-1+deb7u1_i386.deb
main/libx/libxt/libxt-dev_1.1.3-1+deb7u1_i386.deb
main/libx/libxtst/libxtst6_1.2.1-1+deb7u1_i386.deb
main/libx/libxtst/libxtst-dev_1.2.1-1+deb7u1_i386.deb
main/libx/libxxf86vm/libxxf86vm1_1.1.2-1+deb7u1_i386.deb
main/l/linux/linux-libc-dev_3.2.65-1_i386.deb
main/m/mesa/libgl1-mesa-dev_8.0.5-4+deb7u2_i386.deb
main/m/mesa/libgl1-mesa-glx_8.0.5-4+deb7u2_i386.deb
main/m/mesa/libglapi-mesa_8.0.5-4+deb7u2_i386.deb
main/m/mesa/mesa-common-dev_8.0.5-4+deb7u2_i386.deb
main/n/nspr/libnspr4_4.9.2-1+deb7u2_i386.deb
main/n/nspr/libnspr4-dev_4.9.2-1+deb7u2_i386.deb
main/n/nss/libnss3_3.14.5-1+deb7u3_i386.deb
main/n/nss/libnss3-dev_3.14.5-1+deb7u3_i386.deb
main/o/openssl/libssl1.0.0_1.0.1e-2+deb7u13_i386.deb
main/o/openssl/libssl-dev_1.0.1e-2+deb7u13_i386.deb
main/o/orbit2/liborbit2_2.14.19-0.1_i386.deb
main/p/p11-kit/libp11-kit0_0.12-3_i386.deb
main/p/pam/libpam0g_1.1.3-7.1_i386.deb
main/p/pam/libpam0g-dev_1.1.3-7.1_i386.deb
main/p/pango1.0/libpango1.0-0_1.30.0-1_i386.deb
main/p/pango1.0/libpango1.0-dev_1.30.0-1_i386.deb
main/p/pciutils/libpci3_3.1.9-6_i386.deb
main/p/pciutils/libpci-dev_3.1.9-6_i386.deb
main/p/pcre3/libpcre3_8.30-5_i386.deb
main/p/pcre3/libpcre3-dev_8.30-5_i386.deb
main/p/pcre3/libpcrecpp0_8.30-5_i386.deb
main/p/pixman/libpixman-1-0_0.26.0-4+deb7u1_i386.deb
main/p/pixman/libpixman-1-dev_0.26.0-4+deb7u1_i386.deb
main/p/pulseaudio/libpulse0_2.0-6.1_i386.deb
main/p/pulseaudio/libpulse-dev_2.0-6.1_i386.deb
main/p/pulseaudio/libpulse-mainloop-glib0_2.0-6.1_i386.deb
main/s/speech-dispatcher/libspeechd2_0.7.1-6.2_i386.deb
main/s/speech-dispatcher/libspeechd-dev_0.7.1-6.2_i386.deb
main/s/speech-dispatcher/speech-dispatcher_0.7.1-6.2_i386.deb
main/x/x11proto-composite/x11proto-composite-dev_0.4.2-2_all.deb
main/x/x11proto-core/x11proto-core-dev_7.0.23-1_all.deb
main/x/x11proto-damage/x11proto-damage-dev_1.2.1-2_all.deb
main/x/x11proto-fixes/x11proto-fixes-dev_5.0-2_all.deb
main/x/x11proto-input/x11proto-input-dev_2.2-1_all.deb
main/x/x11proto-kb/x11proto-kb-dev_1.0.6-2_all.deb
main/x/x11proto-randr/x11proto-randr-dev_1.3.2-2_all.deb
main/x/x11proto-record/x11proto-record-dev_1.14.2-1_all.deb
main/x/x11proto-render/x11proto-render-dev_0.11.1-2_all.deb
main/x/x11proto-scrnsaver/x11proto-scrnsaver-dev_1.2.2-1_all.deb
main/x/x11proto-xext/x11proto-xext-dev_7.2.1-1_all.deb
main/z/zlib/zlib1g_1.2.7.dfsg-13_i386.deb
main/z/zlib/zlib1g-dev_1.2.7.dfsg-13_i386.deb

View file

@ -1,23 +0,0 @@
#!/bin/sh
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
#
# Rudimentry test suite for sysroot-creator.
SCRIPT_DIR=$(dirname $0)
set -o errexit
TestUpdateAllLists() {
echo "[ RUN ] TestUpdateAllLists"
"$SCRIPT_DIR/sysroot-creator-trusty.sh" UpdatePackageListsAmd64
"$SCRIPT_DIR/sysroot-creator-trusty.sh" UpdatePackageListsI386
"$SCRIPT_DIR/sysroot-creator-trusty.sh" UpdatePackageListsARM
"$SCRIPT_DIR/sysroot-creator-wheezy.sh" UpdatePackageListsAmd64
"$SCRIPT_DIR/sysroot-creator-wheezy.sh" UpdatePackageListsI386
"$SCRIPT_DIR/sysroot-creator-wheezy.sh" UpdatePackageListsARM
echo "[ OK ]"
}
TestUpdateAllLists

View file

@ -1,182 +0,0 @@
#!/bin/sh
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
SCRIPT_DIR=$(dirname $0)
DISTRO=ubuntu
DIST=trusty
# This is where we get all the debian packages from.
APT_REPO=http://archive.ubuntu.com/ubuntu
APT_REPO_ARM=http://ports.ubuntu.com
REPO_BASEDIR="${APT_REPO}/dists/${DIST}"
KEYRING_FILE=/usr/share/keyrings/ubuntu-archive-keyring.gpg
# Sysroot packages: these are the packages needed to build chrome.
# NOTE: When DEBIAN_PACKAGES is modified, the packagelist files must be updated
# by running this script in GeneratePackageList mode.
DEBIAN_PACKAGES="\
comerr-dev \
gcc-4.8 \
krb5-multidev \
libasound2 \
libasound2-dev \
libatk1.0-0 \
libatk1.0-dev \
libavahi-client3 \
libavahi-common3 \
libc6 \
libc6-dev \
libcairo2 \
libcairo2-dev \
libcairo-gobject2 \
libcairo-script-interpreter2 \
libcap-dev \
libcap2 \
libcomerr2 \
libcups2 \
libcups2-dev \
libdbus-1-3 \
libdbus-1-dev \
libdbus-glib-1-2 \
libdrm2 \
libelf1 \
libelf-dev \
libexif12 \
libexif-dev \
libexpat1 \
libexpat1-dev \
libffi6 \
libfontconfig1 \
libfontconfig1-dev \
libfreetype6 \
libfreetype6-dev \
libgcc1 \
libgconf-2-4 \
libgconf2-4 \
libgconf2-dev \
libgcrypt11 \
libgcrypt11-dev \
libgdk-pixbuf2.0-0 \
libgdk-pixbuf2.0-dev \
libgl1-mesa-dev \
libgl1-mesa-glx \
libglapi-mesa \
libglib2.0-0 \
libglib2.0-dev \
libgnome-keyring0 \
libgnome-keyring-dev \
libgnutls26 \
libgnutls-dev \
libgnutls-openssl27 \
libgnutlsxx27 \
libgomp1 \
libgpg-error0 \
libgpg-error-dev \
libgssapi-krb5-2 \
libgssrpc4 \
libgtk2.0-0 \
libgtk2.0-dev \
libk5crypto3 \
libkadm5clnt-mit9 \
libkadm5srv-mit9 \
libkdb5-7 \
libkeyutils1 \
libkrb5-3 \
libkrb5-dev \
libkrb5support0 \
libnspr4 \
libnspr4-dev \
libnss3 \
libnss3-dev \
libnss-db \
liborbit2 \
libp11-2 \
libp11-kit0 \
libpam0g \
libpam0g-dev \
libpango-1.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 \
libselinux1 \
libspeechd2 \
libspeechd-dev \
libssl1.0.0 \
libssl-dev \
libstdc++6 \
libstdc++-4.8-dev \
libtasn1-6 \
libx11-6 \
libx11-dev \
libx11-xcb1 \
libxau6 \
libxau-dev \
libxcb1 \
libxcb1-dev \
libxcb-glx0 \
libxcb-render0 \
libxcb-render0-dev \
libxcb-shm0 \
libxcb-shm0-dev \
libxcomposite1 \
libxcomposite-dev \
libxcursor1 \
libxcursor-dev \
libxdamage1 \
libxdamage-dev \
libxdmcp6 \
libxext6 \
libxext-dev \
libxfixes3 \
libxfixes-dev \
libxi6 \
libxi-dev \
libxinerama1 \
libxinerama-dev \
libxrandr2 \
libxrandr-dev \
libxrender1 \
libxrender-dev \
libxss1 \
libxss-dev \
libxt6 \
libxt-dev \
libxtst6 \
libxtst-dev \
libxxf86vm1 \
linux-libc-dev \
mesa-common-dev \
speech-dispatcher \
x11proto-composite-dev \
x11proto-core-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 \
zlib1g \
zlib1g-dev"
DEBIAN_PACKAGES_X86="libquadmath0"
. ${SCRIPT_DIR}/sysroot-creator.sh

View file

@ -1,177 +0,0 @@
#!/bin/sh
# Copyright 2014 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
SCRIPT_DIR=$(dirname $0)
DISTRO=debian
DIST=wheezy
APT_REPO=http://http.us.debian.org/debian
REPO_BASEDIR="${APT_REPO}/dists/${DIST}"
KEYRING_FILE=/usr/share/keyrings/debian-archive-keyring.gpg
# Sysroot packages: these are the packages needed to build chrome.
# NOTE: When DEBIAN_PACKAGES is modified, the packagelist files must be updated
# by running this script in GeneratePackageList mode.
DEBIAN_PACKAGES="\
comerr-dev \
gcc-4.6 \
krb5-multidev \
libasound2 \
libasound2-dev \
libatk1.0-0 \
libatk1.0-dev \
libattr1 \
libavahi-client3 \
libavahi-common3 \
libc6 \
libc6-dev \
libcairo2 \
libcairo2-dev \
libcairo-gobject2 \
libcairo-script-interpreter2 \
libcap-dev \
libcap2 \
libcomerr2 \
libcups2 \
libcups2-dev \
libdbus-1-3 \
libdbus-1-dev \
libdbus-glib-1-2 \
libdrm2 \
libelf1 \
libelf-dev \
libexif12 \
libexif-dev \
libexpat1 \
libexpat1-dev \
libffi5 \
libfontconfig1 \
libfontconfig1-dev \
libfreetype6 \
libfreetype6-dev \
libgcc1 \
libgconf-2-4 \
libgconf2-4 \
libgconf2-dev \
libgcrypt11 \
libgcrypt11-dev \
libgdk-pixbuf2.0-0 \
libgdk-pixbuf2.0-dev \
libgl1-mesa-dev \
libgl1-mesa-glx \
libglapi-mesa \
libglib2.0-0 \
libglib2.0-dev \
libgnome-keyring0 \
libgnome-keyring-dev \
libgnutls26 \
libgnutls-dev \
libgnutls-openssl27 \
libgnutlsxx27 \
libgomp1 \
libgpg-error0 \
libgpg-error-dev \
libgssapi-krb5-2 \
libgssrpc4 \
libgtk2.0-0 \
libgtk2.0-dev \
libk5crypto3 \
libkadm5clnt-mit8 \
libkadm5srv-mit8 \
libkdb5-6 \
libkeyutils1 \
libkrb5-3 \
libkrb5-dev \
libkrb5support0 \
libnspr4 \
libnspr4-dev \
libnss3 \
libnss3-dev \
libnss-db \
liborbit2 \
libp11-2 \
libp11-kit0 \
libpam0g \
libpam0g-dev \
libpango1.0-0 \
libpango1.0-dev \
libpci3 \
libpci-dev \
libpcre3 \
libpcre3-dev \
libpcrecpp0 \
libpixman-1-0 \
libpixman-1-dev \
libpng12-0 \
libpng12-dev \
libpulse0 \
libpulse-dev \
libpulse-mainloop-glib0 \
libselinux1 \
libspeechd2 \
libspeechd-dev \
libssl1.0.0 \
libssl-dev \
libstdc++6 \
libstdc++6-4.6-dev \
libtasn1-3 \
libx11-6 \
libx11-dev \
libx11-xcb1 \
libxau6 \
libxau-dev \
libxcb1 \
libxcb1-dev \
libxcb-glx0 \
libxcb-render0 \
libxcb-render0-dev \
libxcb-shm0 \
libxcb-shm0-dev \
libxcomposite1 \
libxcomposite-dev \
libxcursor1 \
libxcursor-dev \
libxdamage1 \
libxdamage-dev \
libxdmcp6 \
libxext6 \
libxext-dev \
libxfixes3 \
libxfixes-dev \
libxi6 \
libxi-dev \
libxinerama1 \
libxinerama-dev \
libxrandr2 \
libxrandr-dev \
libxrender1 \
libxrender-dev \
libxss1 \
libxss-dev \
libxt6 \
libxt-dev \
libxtst6 \
libxtst-dev \
libxxf86vm1 \
linux-libc-dev \
mesa-common-dev \
speech-dispatcher \
x11proto-composite-dev \
x11proto-core-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 \
zlib1g \
zlib1g-dev"
DEBIAN_PACKAGES_X86="libquadmath0"
. ${SCRIPT_DIR}/sysroot-creator.sh

View file

@ -1,700 +0,0 @@
# Copyright 2014 The Chromium 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 should not be run directly but sourced by the other
# scripts (e.g. sysroot-creator-trusty.sh). Its up to the parent scripts
# to define certain environment variables: e.g.
# DISTRO=ubuntu
# DIST=trusty
# APT_REPO=http://archive.ubuntu.com/ubuntu
# KEYRING_FILE=/usr/share/keyrings/ubuntu-archive-keyring.gpg
# DEBIAN_PACKAGES="gcc libz libssl"
#@ This script builds a Debian sysroot images for building Google Chrome.
#@
#@ Generally this script is invoked as:
#@ sysroot-creator-<flavour>.sh <mode> <args>*
#@ Available modes are shown below.
#@
#@ List of modes:
######################################################################
# Config
######################################################################
set -o nounset
set -o errexit
SCRIPT_DIR=$(cd $(dirname $0) && pwd)
if [ -z "${DIST:-}" ]; then
echo "error: DIST not defined"
exit 1
fi
if [ -z "${APT_REPO:-}" ]; then
echo "error: APT_REPO not defined"
exit 1
fi
if [ -z "${KEYRING_FILE:-}" ]; then
echo "error: KEYRING_FILE not defined"
exit 1
fi
if [ -z "${DEBIAN_PACKAGES:-}" ]; then
echo "error: DEBIAN_PACKAGES not defined"
exit 1
fi
readonly REPO_BASEDIR="${APT_REPO}/dists/${DIST}"
readonly REQUIRED_TOOLS="wget"
######################################################################
# Package Config
######################################################################
readonly RELEASE_FILE="Release"
readonly RELEASE_FILE_GPG="Release.gpg"
readonly RELEASE_LIST="${REPO_BASEDIR}/${RELEASE_FILE}"
readonly RELEASE_LIST_GPG="${REPO_BASEDIR}/${RELEASE_FILE_GPG}"
readonly PACKAGE_FILE_AMD64="main/binary-amd64/Packages.bz2"
readonly PACKAGE_FILE_I386="main/binary-i386/Packages.bz2"
readonly PACKAGE_FILE_ARM="main/binary-armhf/Packages.bz2"
readonly PACKAGE_FILE_MIPS="main/binary-mipsel/Packages.bz2"
readonly PACKAGE_LIST_AMD64="${REPO_BASEDIR}/${PACKAGE_FILE_AMD64}"
readonly PACKAGE_LIST_I386="${REPO_BASEDIR}/${PACKAGE_FILE_I386}"
readonly PACKAGE_LIST_ARM="${REPO_BASEDIR}/${PACKAGE_FILE_ARM}"
readonly PACKAGE_LIST_MIPS="${REPO_BASEDIR}/${PACKAGE_FILE_MIPS}"
readonly DEBIAN_DEP_LIST_AMD64="packagelist.${DIST}.amd64"
readonly DEBIAN_DEP_LIST_I386="packagelist.${DIST}.i386"
readonly DEBIAN_DEP_LIST_ARM="packagelist.${DIST}.arm"
readonly DEBIAN_DEP_LIST_MIPS="packagelist.${DIST}.mipsel"
######################################################################
# Helper
######################################################################
Banner() {
echo "######################################################################"
echo $*
echo "######################################################################"
}
SubBanner() {
echo "----------------------------------------------------------------------"
echo $*
echo "----------------------------------------------------------------------"
}
Usage() {
egrep "^#@" "${BASH_SOURCE[0]}" | cut --bytes=3-
}
DownloadOrCopy() {
if [ -f "$2" ] ; then
echo "$2 already in place"
return
fi
HTTP=0
echo "$1" | grep -qs ^http:// && HTTP=1
if [ "$HTTP" = "1" ]; then
SubBanner "downloading from $1 -> $2"
wget "$1" -O "${2}.partial"
mv "${2}.partial" $2
else
SubBanner "copying from $1"
cp "$1" "$2"
fi
}
SetEnvironmentVariables() {
ARCH=""
echo $1 | grep -qs Amd64$ && ARCH=AMD64
if [ -z "$ARCH" ]; then
echo $1 | grep -qs I386$ && ARCH=I386
fi
if [ -z "$ARCH" ]; then
echo $1 | grep -qs Mips$ && ARCH=MIPS
fi
if [ -z "$ARCH" ]; then
echo $1 | grep -qs ARM$ && ARCH=ARM
fi
if [ -z "${ARCH}" ]; then
echo "ERROR: Unable to determine architecture based on: $1"
exit 1
fi
ARCH_LOWER=$(echo $ARCH | tr '[:upper:]' '[:lower:]')
}
# some sanity checks to make sure this script is run from the right place
# with the right tools
SanityCheck() {
Banner "Sanity Checks"
local chrome_dir=$(cd "${SCRIPT_DIR}/../../../.." && pwd)
BUILD_DIR="${chrome_dir}/out/sysroot-build/${DIST}"
mkdir -p ${BUILD_DIR}
echo "Using build directory: ${BUILD_DIR}"
for tool in ${REQUIRED_TOOLS} ; do
if ! which ${tool} > /dev/null ; then
echo "Required binary $tool not found."
echo "Exiting."
exit 1
fi
done
# This is where the staging sysroot is.
INSTALL_ROOT="${BUILD_DIR}/${DIST}_${ARCH_LOWER}_staging"
TARBALL="${BUILD_DIR}/${DISTRO}_${DIST}_${ARCH_LOWER}_sysroot.tgz"
if ! mkdir -p "${INSTALL_ROOT}" ; then
echo "ERROR: ${INSTALL_ROOT} can't be created."
exit 1
fi
}
ChangeDirectory() {
# Change directory to where this script is.
cd ${SCRIPT_DIR}
}
ClearInstallDir() {
Banner "Clearing dirs in ${INSTALL_ROOT}"
rm -rf ${INSTALL_ROOT}/*
}
CreateTarBall() {
Banner "Creating tarball ${TARBALL}"
tar zcf ${TARBALL} -C ${INSTALL_ROOT} .
}
ExtractPackageBz2() {
bzcat "$1" | egrep '^(Package:|Filename:|SHA256:) ' > "$2"
}
GeneratePackageListAmd64() {
local output_file="$1"
local package_list="${BUILD_DIR}/Packages.${DIST}_amd64.bz2"
local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_amd64"
DownloadOrCopy "${PACKAGE_LIST_AMD64}" "${package_list}"
VerifyPackageListing "${PACKAGE_FILE_AMD64}" "${package_list}"
ExtractPackageBz2 "$package_list" "$tmp_package_list"
GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}
${DEBIAN_PACKAGES_X86}"
}
GeneratePackageListI386() {
local output_file="$1"
local package_list="${BUILD_DIR}/Packages.${DIST}_i386.bz2"
local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_amd64"
DownloadOrCopy "${PACKAGE_LIST_I386}" "${package_list}"
VerifyPackageListing "${PACKAGE_FILE_I386}" "${package_list}"
ExtractPackageBz2 "$package_list" "$tmp_package_list"
GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}
${DEBIAN_PACKAGES_X86}"
}
GeneratePackageListARM() {
local output_file="$1"
local package_list="${BUILD_DIR}/Packages.${DIST}_arm.bz2"
local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_arm"
DownloadOrCopy "${PACKAGE_LIST_ARM}" "${package_list}"
VerifyPackageListing "${PACKAGE_FILE_ARM}" "${package_list}"
ExtractPackageBz2 "$package_list" "$tmp_package_list"
GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}"
}
GeneratePackageListMips() {
local output_file="$1"
local package_list="${BUILD_DIR}/Packages.${DIST}_mips.bz2"
local tmp_package_list="${BUILD_DIR}/Packages.${DIST}_mips"
DownloadOrCopy "${PACKAGE_LIST_MIPS}" "${package_list}"
VerifyPackageListing "${PACKAGE_FILE_MIPS}" "${package_list}"
ExtractPackageBz2 "$package_list" "$tmp_package_list"
GeneratePackageList "$tmp_package_list" "$output_file" "${DEBIAN_PACKAGES}"
}
StripChecksumsFromPackageList() {
local package_file="$1"
sed -i 's/ [a-f0-9]\{64\}$//' "$package_file"
}
VerifyPackageFilesMatch() {
local downloaded_package_file="$1"
local stored_package_file="$2"
diff -u "$downloaded_package_file" "$stored_package_file"
if [ "$?" -ne "0" ]; then
echo "ERROR: downloaded package files does not match $2."
echo "You may need to run UpdatePackageLists."
exit 1
fi
}
######################################################################
#
######################################################################
HacksAndPatchesAmd64() {
Banner "Misc Hacks & Patches"
# these are linker scripts with absolute pathnames in them
# which we rewrite here
lscripts="${INSTALL_ROOT}/usr/lib/x86_64-linux-gnu/libpthread.so \
${INSTALL_ROOT}/usr/lib/x86_64-linux-gnu/libc.so"
# Rewrite linker scripts
sed -i -e 's|/usr/lib/x86_64-linux-gnu/||g' ${lscripts}
sed -i -e 's|/lib/x86_64-linux-gnu/||g' ${lscripts}
# This is for chrome's ./build/linux/pkg-config-wrapper
# which overwrites PKG_CONFIG_PATH internally
SubBanner "Package Configs Symlink"
mkdir -p ${INSTALL_ROOT}/usr/share
ln -s ../lib/x86_64-linux-gnu/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig
SubBanner "Adding an additional ld.conf include"
LD_SO_HACK_CONF="${INSTALL_ROOT}/etc/ld.so.conf.d/zz_hack.conf"
echo /usr/lib/gcc/x86_64-linux-gnu/4.6 > "$LD_SO_HACK_CONF"
echo /usr/lib >> "$LD_SO_HACK_CONF"
}
HacksAndPatchesI386() {
Banner "Misc Hacks & Patches"
# these are linker scripts with absolute pathnames in them
# which we rewrite here
lscripts="${INSTALL_ROOT}/usr/lib/i386-linux-gnu/libpthread.so \
${INSTALL_ROOT}/usr/lib/i386-linux-gnu/libc.so"
# Rewrite linker scripts
sed -i -e 's|/usr/lib/i386-linux-gnu/||g' ${lscripts}
sed -i -e 's|/lib/i386-linux-gnu/||g' ${lscripts}
# This is for chrome's ./build/linux/pkg-config-wrapper
# which overwrites PKG_CONFIG_PATH internally
SubBanner "Package Configs Symlink"
mkdir -p ${INSTALL_ROOT}/usr/share
ln -s ../lib/i386-linux-gnu/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig
SubBanner "Adding an additional ld.conf include"
LD_SO_HACK_CONF="${INSTALL_ROOT}/etc/ld.so.conf.d/zz_hack.conf"
echo /usr/lib/gcc/i486-linux-gnu/4.6 > "$LD_SO_HACK_CONF"
echo /usr/lib >> "$LD_SO_HACK_CONF"
}
HacksAndPatchesARM() {
Banner "Misc Hacks & Patches"
# these are linker scripts with absolute pathnames in them
# which we rewrite here
lscripts="${INSTALL_ROOT}/usr/lib/arm-linux-gnueabihf/libpthread.so \
${INSTALL_ROOT}/usr/lib/arm-linux-gnueabihf/libc.so"
# Rewrite linker scripts
sed -i -e 's|/usr/lib/arm-linux-gnueabihf/||g' ${lscripts}
sed -i -e 's|/lib/arm-linux-gnueabihf/||g' ${lscripts}
# This is for chrome's ./build/linux/pkg-config-wrapper
# which overwrites PKG_CONFIG_PATH internally
SubBanner "Package Configs Symlink"
mkdir -p ${INSTALL_ROOT}/usr/share
ln -s ../lib/arm-linux-gnueabihf/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig
}
HacksAndPatchesMips() {
Banner "Misc Hacks & Patches"
# these are linker scripts with absolute pathnames in them
# which we rewrite here
lscripts="${INSTALL_ROOT}/usr/lib/mipsel-linux-gnu/libpthread.so \
${INSTALL_ROOT}/usr/lib/mipsel-linux-gnu/libc.so"
# Rewrite linker scripts
sed -i -e 's|/usr/lib/mipsel-linux-gnu/||g' ${lscripts}
sed -i -e 's|/lib/mipsel-linux-gnu/||g' ${lscripts}
# This is for chrome's ./build/linux/pkg-config-wrapper
# which overwrites PKG_CONFIG_PATH internally
SubBanner "Package Configs Symlink"
mkdir -p ${INSTALL_ROOT}/usr/share
ln -s ../lib/mipsel-linux-gnu/pkgconfig ${INSTALL_ROOT}/usr/share/pkgconfig
}
InstallIntoSysroot() {
Banner "Install Libs And Headers Into Jail"
mkdir -p ${BUILD_DIR}/debian-packages
mkdir -p ${INSTALL_ROOT}
while (( "$#" )); do
local file="$1"
local package="${BUILD_DIR}/debian-packages/${file##*/}"
shift
local sha256sum="$1"
shift
if [ "${#sha256sum}" -ne "64" ]; then
echo "Bad sha256sum from package list"
exit 1
fi
Banner "Installing ${file}"
DownloadOrCopy ${APT_REPO}/pool/${file} ${package}
if [ ! -s "${package}" ] ; then
echo
echo "ERROR: bad package ${package}"
exit 1
fi
echo "${sha256sum} ${package}" | sha256sum --quiet -c
SubBanner "Extracting to ${INSTALL_ROOT}"
dpkg --fsys-tarfile ${package}\
| tar -xf - --exclude=./usr/share -C ${INSTALL_ROOT}
done
}
CleanupJailSymlinks() {
Banner "Jail symlink cleanup"
SAVEDPWD=$(pwd)
cd ${INSTALL_ROOT}
local libdirs="lib usr/lib"
if [ "${ARCH}" != "MIPS" ]; then
libdirs+=" lib64"
fi
find $libdirs -type l -printf '%p %l\n' | while read link target; do
# skip links with non-absolute paths
echo "${target}" | grep -qs ^/ || continue
echo "${link}: ${target}"
case "${link}" in
usr/lib/gcc/x86_64-linux-gnu/4.*/* | usr/lib/gcc/i486-linux-gnu/4.*/* | \
usr/lib/gcc/arm-linux-gnueabihf/4.*/* | \
usr/lib/gcc/mipsel-linux-gnu/4.*/*)
# Relativize the symlink.
ln -snfv "../../../../..${target}" "${link}"
;;
usr/lib/x86_64-linux-gnu/* | usr/lib/i386-linux-gnu/* | \
usr/lib/arm-linux-gnueabihf/* | usr/lib/mipsel-linux-gnu/* )
# Relativize the symlink.
ln -snfv "../../..${target}" "${link}"
;;
usr/lib/*)
# Relativize the symlink.
ln -snfv "../..${target}" "${link}"
;;
lib64/* | lib/*)
# Relativize the symlink.
ln -snfv "..${target}" "${link}"
;;
esac
done
find $libdirs -type l -printf '%p %l\n' | while read link target; do
# Make sure we catch new bad links.
if [ ! -r "${link}" ]; then
echo "ERROR: FOUND BAD LINK ${link}"
ls -l ${link}
exit 1
fi
done
cd "$SAVEDPWD"
}
#@
#@ BuildSysrootAmd64
#@
#@ Build everything and package it
BuildSysrootAmd64() {
ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_amd64"
GeneratePackageListAmd64 "$package_file"
local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_AMD64"
InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks
HacksAndPatchesAmd64
CreateTarBall
}
#@
#@ BuildSysrootI386
#@
#@ Build everything and package it
BuildSysrootI386() {
ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_i386"
GeneratePackageListI386 "$package_file"
local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_I386"
InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks
HacksAndPatchesI386
CreateTarBall
}
#@
#@ BuildSysrootARM
#@
#@ Build everything and package it
BuildSysrootARM() {
ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_arm"
GeneratePackageListARM "$package_file"
local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_ARM"
APT_REPO=${APR_REPO_ARM:=$APT_REPO}
InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks
HacksAndPatchesARM
CreateTarBall
}
#@
#@ BuildSysrootMips
#@
#@ Build everything and package it
BuildSysrootMips() {
ClearInstallDir
local package_file="$BUILD_DIR/package_with_sha256sum_arm"
GeneratePackageListMips "$package_file"
local files_and_sha256sums="$(cat ${package_file})"
StripChecksumsFromPackageList "$package_file"
VerifyPackageFilesMatch "$package_file" "$DEBIAN_DEP_LIST_MIPS"
APT_REPO=${APR_REPO_MIPS:=$APT_REPO}
InstallIntoSysroot ${files_and_sha256sums}
CleanupJailSymlinks
HacksAndPatchesMips
CreateTarBall
}
#@
#@ BuildSysrootAll
#@
#@ Build sysroot images for all architectures
BuildSysrootAll() {
RunCommand BuildSysrootAmd64
RunCommand BuildSysrootI386
RunCommand BuildSysrootARM
RunCommand BuildSysrootMips
}
UploadSysroot() {
local rev=$1
if [ -z "${rev}" ]; then
echo "Please specify a revision to upload at."
exit 1
fi
set -x
gsutil cp -a public-read "${TARBALL}" \
"gs://chrome-linux-sysroot/toolchain/$rev/"
set +x
}
#@
#@ UploadSysrootAmd64 <revision>
#@
UploadSysrootAmd64() {
UploadSysroot "$@"
}
#@
#@ UploadSysrootI386 <revision>
#@
UploadSysrootI386() {
UploadSysroot "$@"
}
#@
#@ UploadSysrootARM <revision>
#@
UploadSysrootARM() {
UploadSysroot "$@"
}
#@
#@ UploadSysrootMips <revision>
#@
UploadSysrootMips() {
UploadSysroot "$@"
}
#@
#@ UploadSysrootAll <revision>
#@
#@ Upload sysroot image for all architectures
UploadSysrootAll() {
RunCommand UploadSysrootAmd64 "$@"
RunCommand UploadSysrootI386 "$@"
RunCommand UploadSysrootARM "$@"
RunCommand UploadSysrootMips "$@"
}
#
# CheckForDebianGPGKeyring
#
# Make sure the Debian GPG keys exist. Otherwise print a helpful message.
#
CheckForDebianGPGKeyring() {
if [ ! -e "$KEYRING_FILE" ]; then
echo "Debian GPG keys missing. Install the debian-archive-keyring package."
exit 1
fi
}
#
# VerifyPackageListing
#
# Verifies the downloaded Packages.bz2 file has the right checksums.
#
VerifyPackageListing() {
local file_path=$1
local output_file=$2
local release_file="${BUILD_DIR}/${RELEASE_FILE}"
local release_file_gpg="${BUILD_DIR}/${RELEASE_FILE_GPG}"
local tmp_keyring_file="${BUILD_DIR}/keyring.gpg"
CheckForDebianGPGKeyring
DownloadOrCopy ${RELEASE_LIST} ${release_file}
DownloadOrCopy ${RELEASE_LIST_GPG} ${release_file_gpg}
echo "Verifying: ${release_file} with ${release_file_gpg}"
cp "${KEYRING_FILE}" "${tmp_keyring_file}"
gpg --primary-keyring "${tmp_keyring_file}" --recv-keys 2B90D010
gpgv --keyring "${tmp_keyring_file}" "${release_file_gpg}" "${release_file}"
echo "Verifying: ${output_file}"
local checksums=$(grep ${file_path} ${release_file} | cut -d " " -f 2)
local sha256sum=$(echo ${checksums} | cut -d " " -f 3)
if [ "${#sha256sum}" -ne "64" ]; then
echo "Bad sha256sum from ${RELEASE_LIST}"
exit 1
fi
echo "${sha256sum} ${output_file}" | sha256sum --quiet -c
}
#
# GeneratePackageList
#
# Looks up package names in ${BUILD_DIR}/Packages and write list of URLs
# to output file.
#
GeneratePackageList() {
local input_file="$1"
local output_file="$2"
echo "Updating: ${output_file} from ${input_file}"
/bin/rm -f "${output_file}"
shift
shift
for pkg in $@ ; do
local pkg_full=$(grep -A 1 " ${pkg}\$" "$input_file" | \
egrep -o "pool/.*")
if [ -z "${pkg_full}" ]; then
echo "ERROR: missing package: $pkg"
exit 1
fi
local pkg_nopool=$(echo "$pkg_full" | sed "s/^pool\///")
local sha256sum=$(grep -A 4 " ${pkg}\$" "$input_file" | \
grep ^SHA256: | sed 's/^SHA256: //')
if [ "${#sha256sum}" -ne "64" ]; then
echo "Bad sha256sum from Packages"
exit 1
fi
echo $pkg_nopool $sha256sum >> "$output_file"
done
# sort -o does an in-place sort of this file
sort "$output_file" -o "$output_file"
}
#@
#@ UpdatePackageListsAmd64
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For amd64)
UpdatePackageListsAmd64() {
GeneratePackageListAmd64 "$DEBIAN_DEP_LIST_AMD64"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_AMD64"
}
#@
#@ UpdatePackageListsI386
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For i386)
UpdatePackageListsI386() {
GeneratePackageListI386 "$DEBIAN_DEP_LIST_I386"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_I386"
}
#@
#@ UpdatePackageListsARM
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For arm)
UpdatePackageListsARM() {
GeneratePackageListARM "$DEBIAN_DEP_LIST_ARM"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_ARM"
}
#@
#@ UpdatePackageListsMips
#@
#@ Regenerate the package lists such that they contain an up-to-date
#@ list of URLs within the Debian archive. (For arm)
UpdatePackageListsMips() {
GeneratePackageListMips "$DEBIAN_DEP_LIST_MIPS"
StripChecksumsFromPackageList "$DEBIAN_DEP_LIST_MIPS"
}
#@
#@ UpdatePackageListsAll
#@
#@ Regenerate the package lists for all architectures.
UpdatePackageListsAll() {
RunCommand UpdatePackageListsAmd64
RunCommand UpdatePackageListsI386
RunCommand UpdatePackageListsARM
RunCommand UpdatePackageListsMips
}
RunCommand() {
SetEnvironmentVariables "$1"
SanityCheck
"$@"
}
if [ $# -eq 0 ] ; then
echo "ERROR: you must specify a mode on the commandline"
echo
Usage
exit 1
elif [ "$(type -t $1)" != "function" ]; then
echo "ERROR: unknown function '$1'." >&2
echo "For help, try:"
echo " $0 help"
exit 1
else
ChangeDirectory
if echo $1 | grep -qs "All$"; then
"$@"
else
RunCommand "$@"
fi
fi

View file

@ -0,0 +1,68 @@
{
"jessie_amd64": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "046a82b027f069bdde98424850490c315e2f31f9",
"SysrootDir": "debian_jessie_amd64-sysroot",
"Tarball": "debian_jessie_amd64_sysroot.tgz"
},
"jessie_arm": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "7addeb28195f7f367cbaba46cdba99925a0646b2",
"SysrootDir": "debian_jessie_arm-sysroot",
"Tarball": "debian_jessie_arm_sysroot.tgz"
},
"jessie_arm64": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "1b853d8082321256fe646589558da3980875d767",
"SysrootDir": "debian_jessie_arm64-sysroot",
"Tarball": "debian_jessie_arm64_sysroot.tgz"
},
"jessie_i386": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "7edfe877ea71473def2d9e6958474d76c9ff98b6",
"SysrootDir": "debian_jessie_i386-sysroot",
"Tarball": "debian_jessie_i386_sysroot.tgz"
},
"jessie_mips": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "3d0c5640a39e264d7180df2bac1192308f8a256e",
"SysrootDir": "debian_jessie_mips-sysroot",
"Tarball": "debian_jessie_mips_sysroot.tgz"
},
"precise_amd64": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "69e1d3c9efda92ba265ce7bb653be546e8dde7e4",
"SysrootDir": "ubuntu_precise_amd64-sysroot",
"Tarball": "ubuntu_precise_amd64_sysroot.tgz"
},
"trusty_arm": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "d1591e8fc6a273af1fbf3d1a864f098081d06dd1",
"SysrootDir": "ubuntu_trusty_arm-sysroot",
"Tarball": "ubuntu_trusty_arm_sysroot.tgz"
},
"wheezy_amd64": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "3a150574635247c7fc7f135df10c2565d745c76c",
"SysrootDir": "debian_wheezy_amd64-sysroot",
"Tarball": "debian_wheezy_amd64_sysroot.tgz"
},
"wheezy_arm": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "65a16e16ffbb570f044c7139871665bb6689be1c",
"SysrootDir": "debian_wheezy_arm-sysroot",
"Tarball": "debian_wheezy_arm_sysroot.tgz"
},
"wheezy_i386": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "e7fa85ede53048dd3e8f3ea8009af954f0b7ef0d",
"SysrootDir": "debian_wheezy_i386-sysroot",
"Tarball": "debian_wheezy_i386_sysroot.tgz"
},
"wheezy_mips": {
"Revision": "7031a828c5dcedc937bbf375c42daab08ca6162f",
"Sha1Sum": "edf929f216611a7fae41e537687c75be50c8fdec",
"SysrootDir": "debian_wheezy_mips-sysroot",
"Tarball": "debian_wheezy_mips_sysroot.tgz"
}
}

View file

@ -4,7 +4,6 @@
import("//build/config/sysroot.gni") # Imports android/config.gni.
import("//build/toolchain/ccache.gni")
import("//build/toolchain/clang.gni")
import("//build/toolchain/goma.gni")
import("//build/toolchain/gcc_toolchain.gni")

View file

@ -1,9 +0,0 @@
# Copyright (c) 2013 The Chromium Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
declare_args() {
# Enable the optional type profiler in Clang, which will tag heap allocations
# with the allocation type.
use_clang_type_profiler = false
}

View file

@ -4,7 +4,6 @@
import("//build/config/sysroot.gni")
import("//build/toolchain/ccache.gni")
import("//build/toolchain/clang.gni")
import("//build/toolchain/gcc_toolchain.gni")
import("//build/toolchain/goma.gni")
@ -42,6 +41,22 @@ gcc_toolchain("arm") {
is_clang = false
}
gcc_toolchain("clang_arm") {
prefix = rebase_path("//buildtools/toolchain/clang+llvm-x86_64-linux/bin",
root_build_dir)
cc = "${compiler_prefix}${prefix}/clang"
cxx = "${compiler_prefix}${prefix}/clang++"
readelf = "readelf"
nm = "${prefix}/llvm-nm"
ar = "${prefix}/llvm-ar"
ld = cxx
strip = "${prefix}/strip"
toolchain_cpu = "arm"
toolchain_os = "linux"
is_clang = true
}
gcc_toolchain("arm64") {
prefix = "aarch64-linux-gnu-"
if (toolchain_prefix != "") {
@ -62,6 +77,23 @@ gcc_toolchain("arm64") {
is_clang = false
}
gcc_toolchain("clang_arm64") {
prefix = rebase_path("//buildtools/toolchain/clang+llvm-x86_64-linux/bin",
root_build_dir)
cc = "${compiler_prefix}${prefix}/clang"
cxx = "${compiler_prefix}${prefix}/clang++"
readelf = "readelf"
nm = "${prefix}/llvm-nm"
ar = "${prefix}/llvm-ar"
ld = cxx
strip = "${prefix}/strip"
toolchain_cpu = "arm64"
toolchain_os = "linux"
is_clang = true
}
gcc_toolchain("clang_x86") {
prefix = rebase_path("//buildtools/toolchain/clang+llvm-x86_64-linux/bin",
root_build_dir)

View file

@ -11,7 +11,6 @@ import("//build/config/mac/mac_sdk.gni")
assert(host_os == "mac")
import("//build/toolchain/clang.gni")
import("//build/toolchain/goma.gni")
import("//build/config/sysroot.gni")

View file

@ -10,7 +10,11 @@
namespace dart {
#if defined(DEBUG)
const intptr_t kSkipCount = 6;
#elif !(defined(PRODUCT) || defined(DEBUG))
const intptr_t kSkipCount = 5;
#endif
} // namespace dart

View file

@ -9,6 +9,7 @@ config("internal_config") {
cflags = [
"-Wall",
"-Wextra",
"-Wno-format",
"-Wno-missing-field-initializers",
"-Wno-sign-compare",
"-Wno-type-limits",
@ -49,7 +50,10 @@ config("link_config") {
}
source_set("dynamic_annotations") {
configs -= [ "//build/config/compiler:chromium_code" ]
configs -= [
"//build/config/compiler:chromium_code",
"//build/config/compiler:clang_stackrealign",
]
configs += [ ":internal_config" ]
include_dirs = [
@ -65,7 +69,10 @@ source_set("dynamic_annotations") {
}
source_set("tcmalloc") {
configs -= [ "//build/config/compiler:chromium_code" ]
configs -= [
"//build/config/compiler:chromium_code",
"//build/config/compiler:clang_stackrealign",
]
configs += [ ":internal_config" ]
public_configs = [ ":link_config" ]

View file

@ -144,15 +144,30 @@ def UseSanitizer(args):
def DontUseClang(args, target_os, host_cpu, target_cpu):
# We don't have clang on Windows.
return (target_os == 'win'
# TODO(zra): Experiment with using clang for the arm cross-builds.
or (target_os == 'linux' and target_cpu.startswith('arm'))
# TODO(zra): Only use clang when a sanitizer build is specified until
# clang bugs in tcmalloc inline assembly for ia32 are fixed.
# TODO(zra): After we roll our clang toolchain to pick up the fix for
# https://reviews.llvm.org/D34691 we should be able to use clang for
# arm as well.
or (target_os == 'linux'
and host_cpu == 'x86'
and target_cpu.startswith('arm')
and target_cpu != 'arm64'
and not UseSanitizer(args)))
def UseWheezySysroot(args, gn_args):
# Don't try to use a Linux sysroot if we aren't on Linux.
if gn_args['target_os'] != 'linux':
return False
# Use the wheezy sysroot if explicitly asked to do so.
if args.wheezy:
return True
# Don't use the wheezy sysroot if we're given another sysroot.
if TargetSysroot(args):
return False
# The clang toolchain we pull from Fuchsia doesn't have arm and arm64
# sysroots, so use the wheezy/jesse ones.
return gn_args['is_clang'] and gn_args['target_cpu'].startswith('arm')
def ToGnArgs(args, mode, arch, target_os):
gn_args = {}
@ -165,7 +180,6 @@ def ToGnArgs(args, mode, arch, target_os):
gn_args['host_cpu'] = HostCpuForArch(arch)
gn_args['target_cpu'] = TargetCpuForArch(arch, target_os)
gn_args['dart_target_arch'] = DartTargetCpuForArch(arch)
crossbuild = gn_args['target_cpu'] != gn_args['host_cpu']
if arch != HostCpuForArch(arch):
# Training an app-jit snapshot under a simulator is slow. Use script
@ -228,7 +242,7 @@ def ToGnArgs(args, mode, arch, target_os):
gn_args['dart_stripped_binary'] = 'exe.stripped/dart'
# Setup the user-defined sysroot.
if gn_args['target_os'] == 'linux' and args.wheezy and not crossbuild:
if UseWheezySysroot(args, gn_args):
gn_args['dart_use_wheezy_sysroot'] = True
else:
sysroot = TargetSysroot(args)