diff options
author | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-01-23 17:21:03 +0100 |
---|---|---|
committer | Allan Sandfeld Jensen <allan.jensen@qt.io> | 2020-01-23 16:25:15 +0000 |
commit | c551f43206405019121bd2b2c93714319a0a3300 (patch) | |
tree | 1f48c30631c421fd4bbb3c36da20183c8a2ed7d7 /chromium/build | |
parent | 7961cea6d1041e3e454dae6a1da660b453efd238 (diff) |
BASELINE: Update Chromium to 79.0.3945.139
Change-Id: I336b7182fab9bca80b709682489c07db112eaca5
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'chromium/build')
139 files changed, 5579 insertions, 4139 deletions
diff --git a/chromium/build/README.md b/chromium/build/README.md index 32a9f85d979..f9dde9728a0 100644 --- a/chromium/build/README.md +++ b/chromium/build/README.md @@ -9,9 +9,11 @@ to files outside of it. Some exceptions exist (`//testing`, select `//third_party` subdirectories), but new dependencies tend to break these other projects, and so should be avoided. -Changes to //build should be landed in the Chromium repo. They will then be +Changes to `//build` should be landed in the Chromium repo. They will then be replicated to the stand-alone [build repo](https://chromium.googlesource.com/chromium/src/build) by the [gsubtreed tool.](https://chromium.googlesource.com/infra/infra/+/master/infra/services/gsubtreed) +Note: You can find all directories already available through gsubtreed in the +[list of all chromium repos](https://chromium.googlesource.com/). ## Contents * `//build/config` - Common templates via `.gni` files. diff --git a/chromium/build/android/BUILD.gn b/chromium/build/android/BUILD.gn index e2588265ec9..486fc1c2701 100644 --- a/chromium/build/android/BUILD.gn +++ b/chromium/build/android/BUILD.gn @@ -90,11 +90,15 @@ python_library("test_runner_py") { ":devil_chromium_py", ] if (build_with_chromium) { + data += [ + "//third_party/android_build_tools/bundletool/bundletool-all-0.10.3.jar", + "//tools/android/avd/proto/", + ] data_deps += [ "//third_party/android_platform/development/scripts:stack_py" ] - } - if (is_asan) { - data_deps += [ "//tools/android/asan/third_party:asan_device_setup" ] + if (is_asan) { + data_deps += [ "//tools/android/asan/third_party:asan_device_setup" ] + } } # Proguard is needed only when using apks (rather than native executables). diff --git a/chromium/build/android/PRESUBMIT.py b/chromium/build/android/PRESUBMIT.py index 32ccfac5047..8eb0792f624 100644 --- a/chromium/build/android/PRESUBMIT.py +++ b/chromium/build/android/PRESUBMIT.py @@ -10,8 +10,6 @@ details on the presubmit API built into depot_tools. def CommonChecks(input_api, output_api): - output = [] - build_android_dir = input_api.PresubmitLocalPath() def J(*dirs): @@ -19,32 +17,38 @@ def CommonChecks(input_api, output_api): return input_api.os_path.join(build_android_dir, *dirs) build_pys = [ + r'gn/.*\.py$', r'gyp/.*\.py$', - r'gn/.*\.py', ] - output.extend(input_api.canned_checks.RunPylint( - input_api, - output_api, - pylintrc='pylintrc', - black_list=build_pys, - extra_paths_list=[ - J(), - J('gyp'), - J('buildbot'), - J('..', 'util', 'lib', 'common'), - J('..', '..', 'third_party', 'catapult', 'common', 'py_trace_event'), - J('..', '..', 'third_party', 'catapult', 'common', 'py_utils'), - J('..', '..', 'third_party', 'catapult', 'devil'), - J('..', '..', 'third_party', 'catapult', 'tracing'), - J('..', '..', 'third_party', 'depot_tools'), - J('..', '..', 'third_party', 'colorama', 'src'), - J('..', '..', 'third_party', 'pymock'), - ])) - output.extend(input_api.canned_checks.RunPylint( - input_api, - output_api, - white_list=build_pys, - extra_paths_list=[J('gyp'), J('gn')])) + tests = [] + tests.extend( + input_api.canned_checks.GetPylint( + input_api, + output_api, + pylintrc='pylintrc', + black_list=[ + r'.*_pb2\.py', + ] + build_pys, + extra_paths_list=[ + J(), + J('gyp'), + J('buildbot'), + J('..', 'util', 'lib', 'common'), + J('..', '..', 'third_party', 'catapult', 'common', + 'py_trace_event'), + J('..', '..', 'third_party', 'catapult', 'common', 'py_utils'), + J('..', '..', 'third_party', 'catapult', 'devil'), + J('..', '..', 'third_party', 'catapult', 'tracing'), + J('..', '..', 'third_party', 'depot_tools'), + J('..', '..', 'third_party', 'colorama', 'src'), + J('..', '..', 'third_party', 'pymock'), + ])) + tests.extend( + input_api.canned_checks.GetPylint( + input_api, + output_api, + white_list=build_pys, + extra_paths_list=[J('gyp'), J('gn')])) # Disabled due to http://crbug.com/410936 #output.extend(input_api.canned_checks.RunUnitTestsInDirectory( @@ -55,8 +59,8 @@ def CommonChecks(input_api, output_api): 'PYTHONPATH': build_android_dir, 'PYTHONDONTWRITEBYTECODE': '1', }) - output.extend( - input_api.canned_checks.RunUnitTests( + tests.extend( + input_api.canned_checks.GetUnitTests( input_api, output_api, unit_tests=[ @@ -88,7 +92,7 @@ def CommonChecks(input_api, output_api): ], env=pylib_test_env)) - return output + return input_api.RunTests(tests) def CheckChangeOnUpload(input_api, output_api): diff --git a/chromium/build/android/apk_operations.py b/chromium/build/android/apk_operations.py index c6efb549f68..9df4897a196 100755 --- a/chromium/build/android/apk_operations.py +++ b/chromium/build/android/apk_operations.py @@ -18,7 +18,6 @@ import posixpath import random import re import shlex -import shutil import sys import tempfile import textwrap @@ -129,8 +128,6 @@ def _GenerateBundleApks(info, def _InstallBundle(devices, bundle_apks, package_name, command_line_flags_file, modules, fake_modules): - # Path to push fake modules for Chrome to pick up. - MODULES_SRC_DIRECTORY_PATH = '/data/local/tmp/modules' # Path Chrome creates after validating fake modules. This needs to be cleared # for pushed fake modules to be picked up. SPLITCOMPAT_PATH = '/data/data/' + package_name + '/files/splitcompat' @@ -151,98 +148,24 @@ def _InstallBundle(devices, bundle_apks, package_name, command_line_flags_file, else: logging.info('Skipped removing nonexistent %s', SPLITCOMPAT_PATH) - def InstallFakeModules(device): - try: - temp_path = tempfile.mkdtemp() - - if not fake_modules: - # Push empty temp_path to clear folder on device and update the cache. - device.PushChangedFiles([(temp_path, MODULES_SRC_DIRECTORY_PATH)], - delete_device_stale=True) - return - - # Device-spec JSON is needed, so create that first. - device_spec_filename = os.path.join(temp_path, 'device_spec.json') - get_device_spec_cmd_args = [ - 'get-device-spec', '--adb=' + adb_wrapper.AdbWrapper.GetAdbPath(), - '--device-id=' + device.serial, '--output=' + device_spec_filename - ] - bundletool.RunBundleTool(get_device_spec_cmd_args) - - # Extract fake modules to temp directory. For now, installation - # requires running 'bundletool extract-apks'. Unfortunately, this leads - # to unneeded compression of module files. - extract_apks_cmd_args = [ - 'extract-apks', '--apks=' + bundle_apks, - '--device-spec=' + device_spec_filename, - '--modules=' + ','.join(fake_modules), '--output-dir=' + temp_path - ] - bundletool.RunBundleTool(extract_apks_cmd_args) - - # Push fake modules, with renames. - fake_module_apks = set() - for fake_module in fake_modules: - found_master = False - - for filename in os.listdir(temp_path): - # If file matches expected format, rename it to follow conventions - # required by splitcompatting. - match = re.match(r'%s-([a-z_0-9]+)\.apk' % fake_module, filename) - local_path = os.path.join(temp_path, filename) - - if not match: - continue - - module_suffix = match.group(1) - remote = os.path.join( - temp_path, '%s.config.%s.apk' % (fake_module, module_suffix)) - # Check if filename matches a master apk. - if 'master' in module_suffix: - if found_master: - raise Exception('Expect 1 master apk file for %s' % fake_module) - found_master = True - remote = os.path.join(temp_path, '%s.apk' % fake_module) - - os.rename(local_path, remote) - fake_module_apks.add(os.path.basename(remote)) - - # Files that weren't renamed should not be pushed, remove from temp_path. - for filename in os.listdir(temp_path): - if filename not in fake_module_apks: - os.remove(os.path.join(temp_path, filename)) - - device.PushChangedFiles([(temp_path, MODULES_SRC_DIRECTORY_PATH)], - delete_device_stale=True) - - finally: - shutil.rmtree(temp_path, ignore_errors=True) - def Install(device): ClearFakeModules(device) - if fake_modules: + if fake_modules and ShouldWarnFakeFeatureModuleInstallFlag(device): # Print warning if command line is not set up for fake modules. - if ShouldWarnFakeFeatureModuleInstallFlag(device): - msg = ('Command line has no %s: Fake modules will be ignored.' % - FAKE_FEATURE_MODULE_INSTALL) - print(_Colorize(msg, colorama.Fore.YELLOW + colorama.Style.BRIGHT)) - - InstallFakeModules(device) - - # NOTE: For now, installation requires running 'bundletool install-apks'. - # TODO(digit): Add proper support for bundles to devil instead, then use it. - install_cmd_args = [ - 'install-apks', '--apks=' + bundle_apks, '--allow-downgrade', - '--adb=' + adb_wrapper.AdbWrapper.GetAdbPath(), - '--device-id=' + device.serial - ] - if modules: - install_cmd_args += ['--modules=' + ','.join(modules)] - bundletool.RunBundleTool(install_cmd_args) + msg = ('Command line has no %s: Fake modules will be ignored.' % + FAKE_FEATURE_MODULE_INSTALL) + print(_Colorize(msg, colorama.Fore.YELLOW + colorama.Style.BRIGHT)) + + device.Install( + bundle_apks, + modules=modules, + fake_modules=fake_modules, + allow_downgrade=True) # Basic checks for |modules| and |fake_modules|. # * |fake_modules| cannot include 'base'. # * If |fake_modules| is given, ensure |modules| includes 'base'. - # * They must be disjoint. + # * They must be disjoint (checked by device.Install). modules_set = set(modules) if modules else set() fake_modules_set = set(fake_modules) if fake_modules else set() if BASE_MODULE in fake_modules_set: @@ -250,8 +173,6 @@ def _InstallBundle(devices, bundle_apks, package_name, command_line_flags_file, if fake_modules_set and BASE_MODULE not in modules_set: raise Exception( '\'-f FAKE\' must be accompanied by \'-m {}\''.format(BASE_MODULE)) - if fake_modules_set.intersection(modules_set): - raise Exception('\'-m\' and \'-f\' entries must be disjoint.') logging.info('Installing bundle.') device_utils.DeviceUtils.parallel(devices).pMap(Install) @@ -781,7 +702,11 @@ def _RunLogcat(device, package_name, mapping_path, verbose): try: logcat_processor.ProcessLine(line, fast) except: - sys.stderr.write('Failed to process line: ' + line) + sys.stderr.write('Failed to process line: ' + line + '\n') + # Skip stack trace for the common case of the adb server being + # restarted. + if 'unexpected EOF' in line: + sys.exit(1) raise if fast and nonce in line: fast = False diff --git a/chromium/build/android/bytecode/BUILD.gn b/chromium/build/android/bytecode/BUILD.gn index 51fff21f18e..88517537f42 100644 --- a/chromium/build/android/bytecode/BUILD.gn +++ b/chromium/build/android/bytecode/BUILD.gn @@ -7,15 +7,12 @@ import("//build/config/android/rules.gni") assert(current_toolchain == default_toolchain) java_binary("java_bytecode_rewriter") { - jacoco_never_instrument = true java_files = [ "java/org/chromium/bytecode/AssertionEnablerClassAdapter.java", "java/org/chromium/bytecode/ByteCodeProcessor.java", "java/org/chromium/bytecode/ClassPathValidator.java", - "java/org/chromium/bytecode/ConstantPoolReferenceReader.java", "java/org/chromium/bytecode/CustomClassLoaderClassWriter.java", "java/org/chromium/bytecode/CustomResourcesClassAdapter.java", - "java/org/chromium/bytecode/SplitCompatClassAdapter.java", "java/org/chromium/bytecode/ThreadAssertionClassAdapter.java", "java/org/chromium/bytecode/TypeUtils.java", ] diff --git a/chromium/build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java b/chromium/build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java index 56b84845c72..4a56332c061 100644 --- a/chromium/build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java +++ b/chromium/build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java @@ -63,8 +63,6 @@ class ByteCodeProcessor { private static ClassLoader sDirectClassPathClassLoader; private static ClassLoader sFullClassPathClassLoader; private static Set<String> sFullClassPathJarPaths; - private static String sGenerateClassDepsPath; - private static Set<String> sSplitCompatClassNames; private static ClassPathValidator sValidator; private static class EntryDataPair { @@ -138,10 +136,6 @@ class ByteCodeProcessor { chain = new CustomResourcesClassAdapter( chain, reader.getClassName(), reader.getSuperName(), sFullClassPathClassLoader); } - if (!sSplitCompatClassNames.isEmpty()) { - chain = new SplitCompatClassAdapter( - chain, sSplitCompatClassNames, sFullClassPathClassLoader); - } reader.accept(chain, 0); byte[] patchedByteCode = writer.toByteArray(); return EntryDataPair.create(entry.getName(), patchedByteCode); @@ -262,7 +256,6 @@ class ByteCodeProcessor { sShouldUseCustomResources = args[currIndex++].equals("--enable-custom-resources"); sShouldUseThreadAnnotations = args[currIndex++].equals("--enable-thread-annotations"); sShouldCheckClassPath = args[currIndex++].equals("--enable-check-class-path"); - sGenerateClassDepsPath = args[currIndex++]; int sdkJarsLength = Integer.parseInt(args[currIndex++]); List<String> sdkJarPaths = Arrays.asList(Arrays.copyOfRange(args, currIndex, currIndex + sdkJarsLength)); @@ -277,13 +270,6 @@ class ByteCodeProcessor { currIndex += directJarsLength; sDirectClassPathClassLoader = loadJars(directClassPathJarPaths); - // Load list of class names that need to be fixed. - int splitCompatClassNamesLength = Integer.parseInt(args[currIndex++]); - sSplitCompatClassNames = new HashSet<>(); - sSplitCompatClassNames.addAll(Arrays.asList( - Arrays.copyOfRange(args, currIndex, currIndex + splitCompatClassNamesLength))); - currIndex += splitCompatClassNamesLength; - // Load all jars that are on the classpath for the input jar for analyzing class hierarchy. sFullClassPathJarPaths = new HashSet<>(); sFullClassPathJarPaths.clear(); @@ -292,13 +278,6 @@ class ByteCodeProcessor { sFullClassPathJarPaths.addAll( Arrays.asList(Arrays.copyOfRange(args, currIndex, args.length))); - // Write list of references from Java class constant pools to specified output file - // sGenerateClassDepsPath. This is needed for keep rule generation for async DFMs. - if (!sGenerateClassDepsPath.isEmpty()) { - ConstantPoolReferenceReader.writeConstantPoolRefsToFile( - sFullClassPathJarPaths, sGenerateClassDepsPath); - } - sFullClassPathClassLoader = loadJars(sFullClassPathJarPaths); sFullClassPathJarPaths.removeAll(directClassPathJarPaths); diff --git a/chromium/build/android/bytecode/java/org/chromium/bytecode/ConstantPoolReferenceReader.java b/chromium/build/android/bytecode/java/org/chromium/bytecode/ConstantPoolReferenceReader.java deleted file mode 100644 index e2cbd39785d..00000000000 --- a/chromium/build/android/bytecode/java/org/chromium/bytecode/ConstantPoolReferenceReader.java +++ /dev/null @@ -1,140 +0,0 @@ -// Copyright 2019 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. - -package org.chromium.bytecode; - -import org.objectweb.asm.ClassReader; - -import java.io.BufferedInputStream; -import java.io.BufferedWriter; -import java.io.ByteArrayOutputStream; -import java.io.FileInputStream; -import java.io.FileWriter; -import java.io.IOException; -import java.io.InputStream; -import java.util.Arrays; -import java.util.HashSet; -import java.util.Set; -import java.util.zip.ZipEntry; -import java.util.zip.ZipInputStream; - -/** - * Compiles list of references from all Java .class files in given jar paths by - * reading from the constant pool, and writes this list to an output file. - * This list is used for keep rule generation for maintaining compatibility between - * async DFMs and synchronous modules. - */ -public class ConstantPoolReferenceReader { - private static final String CLASS_FILE_SUFFIX = ".class"; - private static final int BUFFER_SIZE = 16384; - - // Constants representing Java constant pool tags - // See https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4 - private static final int FIELD_REF_TAG = 9; - private static final int METHOD_REF_TAG = 10; - private static final int INTERFACE_METHOD_REF_TAG = 11; - - private static byte[] readAllBytes(InputStream inputStream) throws IOException { - ByteArrayOutputStream buffer = new ByteArrayOutputStream(); - int numRead = 0; - byte[] data = new byte[BUFFER_SIZE]; - while ((numRead = inputStream.read(data, 0, data.length)) != -1) { - buffer.write(data, 0, numRead); - } - return buffer.toByteArray(); - } - - /** - * Given a set of paths, generates references used to produce Proguard keep rules - * necessary for asynchronous DFMs. - * It reads all references stored in constant pools of Java classes from - * the specified jar paths and writes them to an output file. - * References written to the specified file can be converted to a - * corresponding set of Proguard keep rules using the - * constant_pool_refs_to_keep_rules.py script. - * - * @param jarPaths Set of paths specifying Java files to read constant pool - * references from. - * @param outputFilePath File path to write output to. - */ - public static void writeConstantPoolRefsToFile(Set<String> jarPaths, String outputFilePath) { - HashSet<String> classReferences = new HashSet<>(); - - for (String jarPath : jarPaths) { - try (ZipInputStream inputStream = new ZipInputStream( - new BufferedInputStream(new FileInputStream(jarPath)))) { - ZipEntry entry; - while ((entry = inputStream.getNextEntry()) != null) { - if (entry.isDirectory() || !entry.getName().endsWith(CLASS_FILE_SUFFIX)) { - continue; - } - byte[] data = readAllBytes(inputStream); - ClassReader reader = new ClassReader(data); - classReferences.addAll(collectConstantPoolClassReferences(reader)); - } - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - try { - BufferedWriter writer = new BufferedWriter(new FileWriter(outputFilePath)); - for (String ref : classReferences) { - writer.append(ref); - writer.append("\n"); - } - writer.close(); - } catch (IOException e) { - throw new RuntimeException(e); - } - } - - /** - * Given a ClassReader, return a set of all super classes, implemented interfaces and - * members by reading from the associated class's constant pool. - * - * @param classReader .class file interface for reading the constant pool. - */ - private static Set<String> collectConstantPoolClassReferences(ClassReader classReader) { - char[] charBuffer = new char[classReader.getMaxStringLength()]; - HashSet<String> classReferences = new HashSet<>(); - - classReferences.add(classReader.getSuperName()); - classReferences.addAll(Arrays.asList(classReader.getInterfaces())); - - // According to the Java spec, the constant pool is indexed from 1 to constant_pool_count - - // 1. See https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.4 - StringBuilder refInfoString = new StringBuilder(); - for (int i = 1; i < classReader.getItemCount(); i++) { - int offset = classReader.getItem(i); - if (offset <= 0) { - continue; - } - int constantType = classReader.readByte(offset - 1); - if (offset > 0 - && (constantType == METHOD_REF_TAG || constantType == FIELD_REF_TAG - || constantType == INTERFACE_METHOD_REF_TAG)) { - // Read the corresponding class ref and member info from the constant pool. - int classIndex = classReader.readUnsignedShort(offset); - int classStartIndex = classReader.getItem(classIndex); - // Class index is a 2-byte quantity, nameAndTypeIndex is stored sequentially after. - int nameAndTypeIndex = classReader.readUnsignedShort(offset + 2); - int nameAndTypeStartIndex = classReader.getItem(nameAndTypeIndex); - - // Get member's containing class's name, member's name, and member's details (type, - // return type, and argument types). - refInfoString.append(classReader.readUTF8(classStartIndex, charBuffer)); - refInfoString.append(","); - refInfoString.append(classReader.readUTF8(nameAndTypeStartIndex, charBuffer)); - refInfoString.append(","); - refInfoString.append(classReader.readUTF8(nameAndTypeStartIndex + 2, charBuffer)); - - classReferences.add(refInfoString.toString()); - refInfoString.setLength(0); - } - } - - return classReferences; - } -}
\ No newline at end of file diff --git a/chromium/build/android/bytecode/java/org/chromium/bytecode/SplitCompatClassAdapter.java b/chromium/build/android/bytecode/java/org/chromium/bytecode/SplitCompatClassAdapter.java deleted file mode 100644 index 17c271642c0..00000000000 --- a/chromium/build/android/bytecode/java/org/chromium/bytecode/SplitCompatClassAdapter.java +++ /dev/null @@ -1,167 +0,0 @@ -// Copyright 2019 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. - -package org.chromium.bytecode; - -import static org.objectweb.asm.Opcodes.ACC_PROTECTED; -import static org.objectweb.asm.Opcodes.ALOAD; -import static org.objectweb.asm.Opcodes.INVOKEINTERFACE; -import static org.objectweb.asm.Opcodes.INVOKESPECIAL; -import static org.objectweb.asm.Opcodes.INVOKESTATIC; -import static org.objectweb.asm.Opcodes.RETURN; - -import static org.chromium.bytecode.TypeUtils.CONTEXT; -import static org.chromium.bytecode.TypeUtils.VOID; - -import org.objectweb.asm.ClassVisitor; -import org.objectweb.asm.MethodVisitor; -import org.objectweb.asm.Opcodes; - -import java.util.Set; - -/** - * A ClassVisitor for injecting ModuleInstaller.initActivity(activity) method call - * into Activity's attachBaseContext() method. The goal is to eventually invoke - * SplitCompat.install() method if running with the binary that has bundle support - * enabled. This needs to happen for activities that were not built with SplitCompat - * support. - */ -class SplitCompatClassAdapter extends ClassVisitor { - private static final String ANDROID_APP_ACTIVITY_CLASS_NAME = "android/app/Activity"; - private static final String ATTACH_BASE_CONTEXT_METHOD_NAME = "attachBaseContext"; - private static final String ATTACH_BASE_CONTEXT_DESCRIPTOR = - TypeUtils.getMethodDescriptor(VOID, CONTEXT); - - private static final String MODULE_INSTALLER_CLASS_NAME = - "org/chromium/components/module_installer/ModuleInstaller"; - private static final String GET_INSTANCE_METHOD_NAME = "getInstance"; - private static final String GET_INSTANCE_DESCRIPTOR = - TypeUtils.getMethodDescriptor(MODULE_INSTALLER_CLASS_NAME); - private static final String INIT_ACTIVITY_METHOD_NAME = "initActivity"; - private static final String INIT_ACTIVITY_DESCRIPTOR = - TypeUtils.getMethodDescriptor(VOID, CONTEXT); - - private boolean mShouldTransform; - - private Set<String> mClassNames; - - private ClassLoader mClassLoader; - - /** - * Creates instance of SplitCompatClassAdapter. - * - * @param visitor - * @param classNames Names of classes into which the attachBaseContext method will be - * injected. Currently, we'll only consider classes for bytecode rewriting only if - * they inherit directly from android.app.Activity & not already contain - * attachBaseContext method. - * @param classLoader - */ - SplitCompatClassAdapter(ClassVisitor visitor, Set<String> classNames, ClassLoader classLoader) { - super(Opcodes.ASM5, visitor); - - mShouldTransform = false; - mClassNames = classNames; - mClassLoader = classLoader; - } - - @Override - public void visit(int version, int access, String name, String signature, String superName, - String[] interfaces) { - super.visit(version, access, name, signature, superName, interfaces); - - if (mClassNames.contains(name)) { - if (!isSubclassOfActivity(name)) { - throw new RuntimeException(name - + " should be transformed but does not inherit from android.app.Activity"); - } - - mShouldTransform = true; - } - } - - @Override - public MethodVisitor visitMethod( - int access, String name, String descriptor, String signature, String[] exceptions) { - // Check if current method matches attachBaseContext & we're supposed to emit code - if so, - // fail. - if (mShouldTransform && name.equals(ATTACH_BASE_CONTEXT_METHOD_NAME)) { - throw new RuntimeException(ATTACH_BASE_CONTEXT_METHOD_NAME + " method already exists"); - } - - return super.visitMethod(access, name, descriptor, signature, exceptions); - } - - @Override - public void visitEnd() { - if (mShouldTransform) { - // If we reached this place, it means we're rewriting a class that inherits from - // Activity and there was no exception thrown due to existence of attachBaseContext - // method - emit code. - emitAttachBaseContext(); - } - - super.visitEnd(); - } - - /** - * Generates: - * - * <pre> - * protected void attachBaseContext(Context base) { - * super.attachBaseContext(base); - * ModuleInstaller.getInstance().initActivity(this); - * } - * </pre> - */ - private void emitAttachBaseContext() { - MethodVisitor mv = super.visitMethod(ACC_PROTECTED, ATTACH_BASE_CONTEXT_METHOD_NAME, - ATTACH_BASE_CONTEXT_DESCRIPTOR, null, null); - mv.visitCode(); - // Push "this" on stack. - mv.visitVarInsn(ALOAD, 0); - // Push first method parameter on stack (Context). - mv.visitVarInsn(ALOAD, 1); - // Pop argument from stack (Context). - // Pop target object from stack ("this"). - // Calls attachBaseContext. - mv.visitMethodInsn(INVOKESPECIAL, ANDROID_APP_ACTIVITY_CLASS_NAME, - ATTACH_BASE_CONTEXT_METHOD_NAME, ATTACH_BASE_CONTEXT_DESCRIPTOR, false); - // Push return value on stack (ModuleInstaller). - // Calls getInstance. - mv.visitMethodInsn(INVOKESTATIC, MODULE_INSTALLER_CLASS_NAME, GET_INSTANCE_METHOD_NAME, - GET_INSTANCE_DESCRIPTOR, true); - // Push "this" on stack. - mv.visitVarInsn(ALOAD, 0); - // Pop argument from stack ("this"). - // Pop target object from stack (ModuleInstaller). - // Calls initActivity. - mv.visitMethodInsn(INVOKEINTERFACE, MODULE_INSTALLER_CLASS_NAME, INIT_ACTIVITY_METHOD_NAME, - INIT_ACTIVITY_DESCRIPTOR, true); - mv.visitInsn(RETURN); - // Max stack size = 2 (Only push at most 2 before popping). - // Max locals = 2 ("this" and 1 parameter). - mv.visitMaxs(2, 2); - mv.visitEnd(); - } - - /** - * Checks whether passed in class inherits from android.app.Activity. - * @param name Name of the class to be checked. - * @return true if class inherits from android.app.Activity, false otherwise. - */ - private boolean isSubclassOfActivity(String name) { - Class<?> activityClass = loadClass(ANDROID_APP_ACTIVITY_CLASS_NAME); - Class<?> candidateClass = loadClass(name); - return activityClass.isAssignableFrom(candidateClass); - } - - private Class<?> loadClass(String className) { - try { - return mClassLoader.loadClass(className.replace('/', '.')); - } catch (ClassNotFoundException e) { - throw new RuntimeException(e); - } - } -} diff --git a/chromium/build/android/constant_pool_refs_to_keep_rules.py b/chromium/build/android/constant_pool_refs_to_keep_rules.py deleted file mode 100644 index b2452d7261e..00000000000 --- a/chromium/build/android/constant_pool_refs_to_keep_rules.py +++ /dev/null @@ -1,223 +0,0 @@ -# Copyright 2019 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 is used to convert a list of references to corresponding ProGuard -keep rules, for the purposes of maintaining compatibility between async DFMs -and synchronously proguarded modules. -This script take an input file generated from -//build/android/bytecode/java/org/chromium/bytecode/ByteCodeProcessor.java -during the build phase of an async module. -""" - -from collections import defaultdict -import argparse -import sys - -# Classes in _IGNORED_PACKAGES do not need explicit keep rules because they are -# system APIs and are already included in ProGuard configs. -_IGNORED_PACKAGES = ['java', 'android', 'org.w3c', 'org.xml', 'dalvik'] - -# Classes in _WHITELIST_PACKAGES are support libraries compiled into chrome -# that must bypass the _IGNORED_PACKAGES. -_WHITELIST_PACKAGES = ['android.support'] - -# TODO(https://crbug.com/968769): Filter may be too broad. -# Classes in _DFM_FEATURES will be excluded from "keep all members" rule. -_DFM_FEATURES = [ - 'org.chromium.chrome.autofill_assistant', 'org.chromium.chrome.tab_ui', - 'org.chromium.chrome.browser.tasks.tab_management', 'org.chromium.chrome.vr' -] - -# Mapping for translating Java bytecode type identifiers to source code type -# identifiers. -_TYPE_IDENTIFIER_MAP = { - 'V': 'void', - 'Z': 'boolean', - 'B': 'byte', - 'S': 'short', - 'C': 'char', - 'I': 'int', - 'J': 'long', - 'F': 'float', - 'D': 'double', -} - - -# Translates DEX TypeDescriptor of the first type found in a given string to -# its source code type identifier, as described in -# https://source.android.com/devices/tech/dalvik/dex-format#typedescriptor, -# and returns the translated type and the starting index of the next type -# (if present). -def translate_single_type(typedesc): - array_count = 0 - translated = '' - next_index = 0 - - # In the constant pool, fully qualified names (prefixed by 'L') have a - # trailing ';' if they are describing the type/return type of a symbol, - # or the type of arguments passed to a symbol. TypeDescriptor representing - # primitive types do not have trailing ';'s in any circumstances. - for i, c in enumerate(typedesc): - if c == '[': - array_count += 1 - continue - if c == 'L': - # Fully qualified names have no trailing ';' if they are describing the - # containing class of a reference. - next_index = typedesc.find(';') - if next_index == -1: - next_index = len(typedesc) - translated = typedesc[i + 1:next_index] - break - else: - translated = _TYPE_IDENTIFIER_MAP[c] - next_index = i - break - - translated += '[]' * array_count - return translated, next_index + 1 - - -# Convert string of method argument types read from constant pool to -# corresponding list of srouce code type identifiers. -def parse_args_list(args_list): - parsed_args = [] - start_index = 0 - - while start_index < len(args_list): - args_list = args_list[start_index:] - translated_arg, start_index = translate_single_type(args_list) - parsed_args.append(translated_arg) - - return parsed_args - - -def add_to_refs(class_name, keep_entry, dep_refs): - # Add entry to class's keep rule if entry is not the empty string - if class_name in dep_refs and keep_entry: - dep_refs[class_name].append(keep_entry) - else: - dep_refs[class_name] = [keep_entry] - - -def should_include_class_path(class_path): - """ Check whether a class_path should be added as keep rule. - Conditions: - - Class is auto-generated (Lambdas/Nested, for example $) - - Class is not in a DFM Module - - Class is not in a black/white listed package - """ - nested_class = '$' in class_path - not_in_dfm = all(not class_path.startswith(f) for f in _DFM_FEATURES) - allowed_packages = not (any( - class_path.startswith(p) - for p in _IGNORED_PACKAGES) and all(not class_path.startswith(p) - for p in _WHITELIST_PACKAGES)) - return nested_class or (not_in_dfm and allowed_packages) - - -def main(argv): - dep_refs = defaultdict(list) - extended_and_implemented_classes = set() - - parser = argparse.ArgumentParser() - parser.add_argument( - '--input-file', - required=True, - help='Path to constant pool reference output.') - parser.add_argument( - '--output-file', - required=True, - help='Path to write corresponding keep rules to') - args = parser.parse_args(argv[1:]) - - with open(args.input_file, 'r') as constant_pool_refs: - for line in constant_pool_refs: - line = line.rstrip().replace('/', '.') - # Ignore any references specified by the list of - # _IGNORED_PACKAGES and not in _WHITELIST_PACKAGES. - if (any(line.startswith(p) for p in _IGNORED_PACKAGES) - and all(not line.startswith(p) for p in _WHITELIST_PACKAGES)): - continue - - reflist = line.split(',') - - # Lines denoting super classes and implemented interface references do - # not contain additional information and thus have reflist size 1. - # Store these as a separate set as they require full keep rules. - if len(reflist) == 1: - extended_and_implemented_classes.add(reflist[0]) - continue - - class_name = reflist[0] - member_name = reflist[1] - member_info = reflist[2] - keep_entry = '' - - # When testing with the VR module, all class names read from constant - # pool output that were prefixed with '[' matched references to the - # overridden clone() method of the Object class. These seem to correspond - # to Java enum types defined within classes. - # It is not entirely clear whether or not this always represents - # an enum, why enums would be represented as such in the constant pool, - # or how we should go about keeping these references. For the moment, - # ignoring these references does not impact compatibility between - # modules. - if class_name.startswith('['): - continue - - # Ignore R(esources) files that are from the same module. - if ('$' in class_name - and any(class_name.startswith(f) for f in _DFM_FEATURES)): - continue - - # If member_info starts with '(', member is a method, otherwise member - # is a field. - # Format keep entries as per ProGuard documentation - # guardsquare.com/en/products/proguard/manual/usage#classspecification. - if member_info.startswith('('): - args_list, return_type = member_info.split(')') - args_list = parse_args_list(args_list[1:]) - if member_name == '<init>': - # No return type specified for constructors. - return_type = '' - else: - return_type = translate_single_type(return_type)[0] - - # Include types of function arguments. - for arg_type in args_list: - if should_include_class_path(arg_type): - extended_and_implemented_classes.add(arg_type) - - # Include the actual class when it's a constructor. - if member_name == '<init>': - if should_include_class_path(class_name): - extended_and_implemented_classes.add(class_name) - continue - - keep_entry = '%s %s(%s);' % (return_type, member_name, - ', '.join(args_list)) - else: - keep_entry = '%s %s;' % (translate_single_type(member_info)[0], - member_name) - - dep_refs[class_name].append(keep_entry) - - with open(args.output_file, 'w') as keep_rules: - # Write super classes and implemented interfaces to keep rules. - for super_class in sorted(extended_and_implemented_classes): - keep_rules.write('-keep class %s { *; }\n' % (super_class.rstrip())) - keep_rules.write('\n') - # Write all other class references to keep rules. - for c in sorted(dep_refs.iterkeys()): - if c in extended_and_implemented_classes: - continue - class_keeps = '\n '.join(dep_refs[c]) - keep_rules.write('-keep class %s {\n %s\n}\n' % (c, class_keeps)) - keep_rules.write('\n') - - -if __name__ == '__main__': - main(sys.argv) diff --git a/chromium/build/android/constant_pool_refs_to_keep_rules_test.py b/chromium/build/android/constant_pool_refs_to_keep_rules_test.py deleted file mode 100644 index 6f281e26738..00000000000 --- a/chromium/build/android/constant_pool_refs_to_keep_rules_test.py +++ /dev/null @@ -1,91 +0,0 @@ -# Copyright 2019 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. - -import unittest -import re -import os - - -class TestProguardRuleGeneration(unittest.TestCase): - """ - This script is used to test a ProGuard keep rules for the purposes - of maintaining compatibility between async DFMs and synchronously - proguarded modules. - - The rules are often generated by constant_pool_refs_to_keep_rules.py - - This test can be run manually. Example: - python build/android/constant_pool_refs_to_keep_rules_test.py -v - """ - - # Make sure this variable is set accordingly. - # It should point to a proguard file. - PROGUARD_FILE_PATH = os.path.join( - os.path.dirname(__file__), - "../../chrome/android/features/tab_ui/proguard_async.flags") - - def test_TabUI_HasRules(self): - """ - Ensures that a few of the rules used in tabs_ui module are included. - Although this is far from 100% deterministic, these rules are - created by code that exercise different parts of the rule generation code. - """ - - rules = set() - with open(self.PROGUARD_FILE_PATH, 'r') as proguard_rules: - for line in proguard_rules: - if line.startswith('-keep'): - rule = re.search('class (.+?) {', line).group(1) - rules.add(rule) - - # The following rules test most of the use cases for - # rules that can be added automatically. - self.assertIn('org.chromium.ui.modelutil.PropertyModel', rules) - self.assertIn('org.chromium.ui.modelutil.PropertyModel', rules) - self.assertIn('org.chromium.ui.modelutil.PropertyKey', rules) - self.assertIn('org.chromium.chrome.browser.toolbar.ToolbarManager', rules) - self.assertIn('org.chromium.base.Supplier', rules) - self.assertIn('android.support.v7.widget.helper.ItemTouchHelper', rules) - self.assertIn( - 'android.support.v7.widget.helper.ItemTouchHelper$SimpleCallback', - rules) - self.assertIn('android.support.v7.widget.helper.ItemTouchHelper$Callback', - rules) - self.assertIn('android.support.v4.content.ContextCompat', rules) - self.assertIn('android.support.v7.widget.GridLayoutManager', rules) - self.assertIn('android.support.v4.content.res.ResourcesCompat', rules) - self.assertIn( - 'org.chromium.chrome.browser.tasks.tabgroup.TabGroupModelFilter', rules) - self.assertIn('android.support.v7.widget.RecyclerView$ViewHolder', rules) - self.assertIn('android.support.v7.widget.RecyclerView', rules) - self.assertIn('org.chromium.ui.modelutil.SimpleRecyclerViewMcpBase', rules) - self.assertIn('org.chromium.ui.modelutil.RecyclerViewAdapter', rules) - - # The following rules need to be added manually. - self.assertNotIn( - 'org.chromium.chrome.browser.fullscreen.ChromeFullscreenManager' + - '$FullscreenListener$$CC', rules) - self.assertNotIn( - 'org.chromium.chrome.browser.widget.bottomsheet.BottomSheet' + - '$BottomSheetContent$$CC', rules) - self.assertNotIn('org.chromium.ui.widget.RoundedCornerImageView', rules) - self.assertNotIn( - 'android.support.v4.graphics.drawable.RoundedBitmapDrawable', rules) - - def test_TabUI_HasNoDuplicateRules(self): - """ - Ensures that there are no duplicate keep rules - """ - - rules = set() - with open(self.PROGUARD_FILE_PATH, 'r') as proguard_rules: - for line in proguard_rules: - if line.startswith('-keep'): - rule = re.search('class (.+?) {', line).group(1) - self.assertNotIn(rule, rules) - rules.add(rule) - - -if __name__ == '__main__': - unittest.main() diff --git a/chromium/build/android/devil_chromium.json b/chromium/build/android/devil_chromium.json index 6cb7608c9ee..4734deccf34 100644 --- a/chromium/build/android/devil_chromium.json +++ b/chromium/build/android/devil_chromium.json @@ -125,6 +125,15 @@ ] } } + }, + "bundletool": { + "file_info": { + "default": { + "local_paths": [ + "../../third_party/android_build_tools/bundletool/bundletool-all-0.10.3.jar" + ] + } + } } } } diff --git a/chromium/build/android/docs/README.md b/chromium/build/android/docs/README.md index b6f0a6e9c24..cecccf22f2a 100644 --- a/chromium/build/android/docs/README.md +++ b/chromium/build/android/docs/README.md @@ -3,6 +3,7 @@ * [android_app_bundles.md](android_app_bundles.md) * [build_config.md](build_config.md) * [coverage.md](coverage.md) +* [java_toolchain.md](java_toolchain.md) * [lint.md](lint.md) * [life_of_a_resource.md](life_of_a_resource.md) * [../incremental_install/README.md](../incremental_install/README.md) diff --git a/chromium/build/android/docs/class_verification_failures.md b/chromium/build/android/docs/class_verification_failures.md index bf9a8a2952c..36ee97ee712 100644 --- a/chromium/build/android/docs/class_verification_failures.md +++ b/chromium/build/android/docs/class_verification_failures.md @@ -127,7 +127,7 @@ look as follows: * These need to exist in a separate class so that Android framework can successfully verify * classes without encountering the new APIs. */ -@DoNotInline +@VerifiesOnOMR1 @TargetApi(Build.VERSION_CODES.O_MR1) public class ApiHelperForOMR1 { private ApiHelperForOMR1() {} @@ -136,8 +136,8 @@ public class ApiHelperForOMR1 { } ``` -* `@DoNotInline`: this is a chromium-defined annotation to tell proguard (and - similar tools) not to inline this class or its methods (since that would +* `@VerifiesOnO_MR1`: this is a chromium-defined annotation to tell proguard + (and similar tools) not to inline this class or its methods (since that would defeat the point of out-of-lining!) * `@TargetApi(Build.VERSION_CODES.O_MR1)`: this tells Android Lint it's OK to use OMR1 APIs since this class is only used on OMR1 and above. Substitute diff --git a/chromium/build/android/docs/coverage.md b/chromium/build/android/docs/coverage.md index 6ea548aed78..35cd80988a1 100644 --- a/chromium/build/android/docs/coverage.md +++ b/chromium/build/android/docs/coverage.md @@ -17,7 +17,7 @@ class files and runtime **.exec** files. Then we need to process them using the ```gn target_os = "android" - jacoco_coverage = true + use_jacoco_coverage = true ``` Now when building, pre-instrumented files will be created in the build directory. diff --git a/chromium/build/android/docs/java_toolchain.md b/chromium/build/android/docs/java_toolchain.md new file mode 100644 index 00000000000..fed7654b526 --- /dev/null +++ b/chromium/build/android/docs/java_toolchain.md @@ -0,0 +1,152 @@ +# Building Dex + +This doc aims to describe the Chrome build process that takes a set of `.java` +files and turns them into a `classes.dex` file. + +[TOC] + +## Core GN Target Types + +The following have `supports_android` and `requires_android` set to false by +default: +* `java_library()`: Compiles `.java` -> `.jar` +* `java_prebuilt()`: Imports a prebuilt `.jar` file. + +The following have `supports_android` and `requires_android` set to true. They +also have a default `jar_excluded_patterns` set (more on that later): +* `android_library()` +* `android_java_prebuilt()` + +All targets names must end with "_java" so that the build system can distinguish +them from non-java targets (or [other variations](https://cs.chromium.org/chromium/src/build/config/android/internal_rules.gni?rcl=ec2c17d7b4e424e060c3c7972842af87343526a1&l=20)). + +## Step 1a: Compile with javac + +This step is the only step that does not apply to prebuilt targets. + +* All `.java` files in a target are compiled by `javac` into `.class` files. + * This includes `.java` files that live within `.srcjar` files, referenced + through `srcjar_deps`. +* The `classpath` used when compiling a target is comprised of `.jar` files of + its deps. + * When deps are library targets, the Step 1 `.jar` file is used. + * When deps are prebuilt targets, the original `.jar` file is used. + * All `.jar` processing done in subsequent steps does not impact compilation + classpath. +* `.class` files are zipped into an output `.jar` file. +* There is **no support** for incremental compilation at this level. + * If one source file changes within a library, then the entire library is + recompiled. + * Prefer smaller targets to avoid slow compiles. + +## Step 1b: Compile with ErrorProne + +This step can be disabled via GN arg: `use_errorprone_java_compiler = false` + +* Concurrently with step 1a: [ErrorProne] compiles java files and checks for bug + patterns, including some [custom to Chromium][ep_plugins]. +* ErrorProne used to replace step 1a, but was changed to a concurrent step after + being identified as being slower. + +[ErrorProne]: https://errorprone.info/ +[ep_plugins]: /tools/android/errorprone_plugin/ + +## Step 2: Creating an .interface.jar + +This step happens in parallel with subsequent steps. + +* `//third_party/ijar` converts the `.jar` into an `.interface.jar`, which is a + copy of the input with all non-public symbols and function bodies removed. +* Dependant targets use `.interface.jar` files to skip having to be rebuilt + when only private implementation details change. + +## Step 3: Bytecode Processing + +* `//build/android/bytecode` runs on the compiled `.jar` in order to: + * Enable Java assertions (when dcheck is enabled). + * Assert that libraries have properly declared `deps`. + +## Step 4: Desugaring + +This step happens only when targets have `supports_android = true`. + +* `//third_party/bazel/desugar` converts certain Java 8 constructs, such as + lambdas and default interface methods, into constructs that are compatible + with Java 7. + +## Step 5: Filtering + +This step happens only when targets that have `jar_excluded_patterns` or +`jar_included_patterns` set (e.g. all `android_` targets). + +* Remove `.class` files that match the filters from the `.jar`. These `.class` + files are generally those that are re-created with different implementations + further on in the build process. + * E.g.: `R.class` files - a part of [Android Resources]. + * E.g.: `GEN_JNI.class` - a part of our [JNI] glue. + * E.g.: `AppHooksImpl.class` - how `chrome_java` wires up different + implementations for [non-public builds][apphooks]. + +[JNI]: /base/android/jni_generator/README.md +[Android Resources]: life_of_a_resource.md +[apphooks]: /chrome/android/java/src/org/chromium/chrome/browser/AppHooksImpl.java + +## Step 6: Instrumentation + +This step happens only when this GN arg is set: `use_jacoco_coverage = true` + +* [Jacoco] adds instrumentation hooks to methods. + +[Jacoco]: https://www.eclemma.org/jacoco/ + +## Step 7: Copy to lib.java + +* The `.jar` is copied into `$root_build_dir/lib.java` (under target-specific + subdirectories) so that it will be included by bot archive steps. + * These `.jar` files are the ones used when running `java_binary` and + `junit_binary` targets. + +## Step 8: Per-Library Dexing + +This step happens only when targets have `supports_android = true`. + +* [d8] converts `.jar` files contain `.class` files into `.dex.jar` files + containing `.dex` files. +* Dexing is incremental - it will reuse dex'ed classes from a previous build if + the corresponding `.class` file is unchanged. +* These per-library `.dex.jar` files are used directly by [incremental install], + and are inputs to the Apk step when `enable_proguard = false`. + * Even when `is_java_debug = false`, many apk targets do not enable ProGuard + (e.g. unit tests). + +[d8]: https://developer.android.com/studio/command-line/d8 +[incremental install]: /build/android/incremental_install/README.md + +## Step 9: Apk / Bundle Module Compile + +* Each `android_apk` and `android_bundle_module` template has a nested + `java_library` target. The nested library includes final copies of files + stripped out by prior filtering steps. These files include: + * Final `R.java` files, created by `compile_resources.py`. + * Final `GEN_JNI.java` for JNI glue. + * `BuildConfig.java` and `NativeLibraries.java` (//base dependencies). + +## Step 10: Final Dexing + +When `is_java_debug = true`: +* [d8] merges all library `.dex.jar` files into a final `.dex.zip`. + +When `is_java_debug = false`: +* [R8] performs whole-program optimization on all library `lib.java` `.jar` + files and outputs a final `.dex.zip`. + * For App Bundles, R8 creates a single `.dex.zip` with the code from all + modules. + +[R8]: https://r8.googlesource.com/r8 + +## Step 11: Bundle Module Dex Splitting + +This step happens only when `is_java_debug = false`. + +* [dexsplitter.py] splits the single `.dex.zip` into per-module `.dex.zip` + files. diff --git a/chromium/build/android/generate_jacoco_report.py b/chromium/build/android/generate_jacoco_report.py index 927f520ee9c..e857b2def62 100755 --- a/chromium/build/android/generate_jacoco_report.py +++ b/chromium/build/android/generate_jacoco_report.py @@ -130,7 +130,7 @@ def main(): for f in sources_json_files: with open(f, 'r') as json_file: data = json.load(json_file) - class_files.append(data['input_path']) + class_files.extend(data['input_path']) source_dirs.extend(data['source_dirs']) # Fix source directories as direct parent of Java packages. diff --git a/chromium/build/android/gradle/generate_gradle.py b/chromium/build/android/gradle/generate_gradle.py index 08be3e99238..3b8b3c29445 100755 --- a/chromium/build/android/gradle/generate_gradle.py +++ b/chromium/build/android/gradle/generate_gradle.py @@ -45,6 +45,7 @@ _CMAKE_FILE = 'CMakeLists.txt' _MODULE_ALL = '_all' _SRC_INTERNAL = os.path.join( os.path.dirname(host_paths.DIR_SOURCE_ROOT), 'src-internal') +_INSTRUMENTATION_TARGET_SUFFIX = '_test_apk__test_apk__apk' _DEFAULT_TARGETS = [ '//android_webview/test/embedded_test_server:aw_net_test_support_apk', @@ -733,8 +734,8 @@ def _CombineTestEntries(entries): android_test_entries = collections.defaultdict(list) for entry in entries: target_name = entry.GnTarget() - if (target_name.endswith('_test_apk__apk') and - 'apk_under_test' in entry.Gradle()): + if (target_name.endswith(_INSTRUMENTATION_TARGET_SUFFIX) + and 'apk_under_test' in entry.Gradle()): apk_name = entry.Gradle()['apk_under_test'] android_test_entries[apk_name].append(entry) else: @@ -848,8 +849,10 @@ def main(): targets = _QueryForAllGnTargets(output_dir) else: assert not args.native_targets, 'Native editing requires --all.' - targets = [re.sub(r'_test_apk$', '_test_apk__apk', t) - for t in targets_from_args] + targets = [ + re.sub(r'_test_apk$', _INSTRUMENTATION_TARGET_SUFFIX, t) + for t in targets_from_args + ] # Necessary after "gn clean" if not os.path.exists(os.path.join(output_dir, 'build_vars.txt')): _RunGnGen(output_dir) @@ -884,7 +887,7 @@ def main(): main_entries = [ e for e in main_entries if (e.GetType() in BASE_TYPES or e.GnTarget() in targets_from_args - or e.GnTarget().endswith('_test_apk__apk')) + or e.GnTarget().endswith(_INSTRUMENTATION_TARGET_SUFFIX)) ] if args.split_projects: diff --git a/chromium/build/android/gradle/root.jinja b/chromium/build/android/gradle/root.jinja index 3895fc43111..38d7387573d 100644 --- a/chromium/build/android/gradle/root.jinja +++ b/chromium/build/android/gradle/root.jinja @@ -10,7 +10,7 @@ buildscript { } dependencies { {% if channel == 'canary' %} - classpath "com.android.tools.build:gradle:3.6.0-alpha03" + classpath "com.android.tools.build:gradle:3.6.0-alpha10" {% elif channel == 'beta' %} classpath "com.android.tools.build:gradle:3.1.0-beta4" {% else %} diff --git a/chromium/build/android/gyp/bundletool.py b/chromium/build/android/gyp/bundletool.py index 2201cc12373..65be46e31dd 100755 --- a/chromium/build/android/gyp/bundletool.py +++ b/chromium/build/android/gyp/bundletool.py @@ -13,6 +13,8 @@ import os import subprocess import sys +from util import build_utils + # Assume this is stored under build/android/gyp/ BUNDLETOOL_DIR = os.path.abspath(os.path.join( __file__, '..', '..', '..', '..', 'third_party', 'android_build_tools', @@ -24,7 +26,7 @@ BUNDLETOOL_JAR_PATH = os.path.join( BUNDLETOOL_DIR, 'bundletool-all-%s.jar' % BUNDLETOOL_VERSION) def RunBundleTool(args): - args = ['java', '-jar', BUNDLETOOL_JAR_PATH] + args + args = [build_utils.JAVA_PATH, '-jar', BUNDLETOOL_JAR_PATH] + args logging.debug(' '.join(args)) subprocess.check_call(args) diff --git a/chromium/build/android/gyp/bytecode_processor.py b/chromium/build/android/gyp/bytecode_processor.py index adff1625056..76775d3958a 100755 --- a/chromium/build/android/gyp/bytecode_processor.py +++ b/chromium/build/android/gyp/bytecode_processor.py @@ -36,12 +36,6 @@ def main(argv): _AddSwitch(parser, '--enable-assert') _AddSwitch(parser, '--enable-thread-annotations') _AddSwitch(parser, '--enable-check-class-path') - parser.add_argument('--enable-class-deps-output', default='') - parser.add_argument( - '--split-compat-class-names', - action='append', - default=[], - help='Names of classes that need to be made SplitCompat-enabled.') args = parser.parse_args(argv) sdk_jars = build_utils.ParseGnList(args.sdk_classpath_jars) @@ -54,9 +48,6 @@ def main(argv): for a in args.extra_jars: extra_classpath_jars.extend(build_utils.ParseGnList(a)) - split_compat_class_names = build_utils.ParseGnList( - args.split_compat_class_names) - if args.verbose: verbose = '--verbose' else: @@ -66,11 +57,8 @@ def main(argv): args.script, args.input_jar, args.output_jar, verbose, args.is_prebuilt, args.enable_assert, args.enable_custom_resources, args.enable_thread_annotations, args.enable_check_class_path, - args.enable_class_deps_output, str(len(sdk_jars)) - ] + sdk_jars + [str(len(direct_jars))] + direct_jars + [ - str(len(split_compat_class_names)) - ] + split_compat_class_names + extra_classpath_jars) + ] + sdk_jars + [str(len(direct_jars))] + direct_jars + extra_classpath_jars) subprocess.check_call(cmd) diff --git a/chromium/build/android/gyp/compile_resources.py b/chromium/build/android/gyp/compile_resources.py index 95b8c2aa0d7..4ac6d64bf18 100755 --- a/chromium/build/android/gyp/compile_resources.py +++ b/chromium/build/android/gyp/compile_resources.py @@ -23,6 +23,7 @@ import shutil import subprocess import sys import tempfile +import textwrap import zipfile from xml.etree import ElementTree @@ -50,13 +51,6 @@ _PNG_WEBP_BLACKLIST_PATTERN = re.compile('|'.join([ r'.*daydream_icon_.*\.png'])) -def _ListToDictionary(lst, separator): - """Splits each element of the passed-in |lst| using |separator| and creates - dictionary treating first element of the split as the key and second as the - value.""" - return dict(item.split(separator, 1) for item in lst) - - def _ParseArgs(args): """Parses command line options. @@ -100,17 +94,13 @@ def _ParseArgs(args): input_opts.add_argument( '--package-id', - help='Custom package ID for resources (instead of 0x7f). Cannot be used ' - 'with --shared-resources.') - - input_opts.add_argument( - '--package-name-to-id-mapping', - help='List containing mapping from package name to package IDs that will ' - 'be assigned.') + type=int, + help='Decimal integer representing custom package ID for resources ' + '(instead of 127==0x7f). Cannot be used with --shared-resources.') input_opts.add_argument( '--package-name', - help='Package name that will be used to determine package ID.') + help='Package name that will be used to create R class.') input_opts.add_argument( '--rename-manifest-package', help='Package name to force AAPT to use.') @@ -266,11 +256,8 @@ def _ParseArgs(args): parser.error( '--resources-path-map-out-path requires --short-resource-paths') - if options.package_name_to_id_mapping: - package_names_list = build_utils.ParseGnList( - options.package_name_to_id_mapping) - options.package_name_to_id_mapping = _ListToDictionary( - package_names_list, '=') + if options.package_id and options.shared_resources: + parser.error('--package-id and --shared-resources are mutually exclusive') return options @@ -423,19 +410,6 @@ def _MoveImagesToNonMdpiFolders(res_root): return renamed_paths -def _PackageIdFromOptions(options): - package_id = None - if options.package_id: - package_id = options.package_id - if options.package_name: - package_id = options.package_name_to_id_mapping.get(options.package_name) - if package_id is None: - raise Exception( - 'Package name %s is not present in package_name_to_id_mapping.' % - options.package_name) - return package_id - - def _FixManifest(options, temp_dir): """Fix the APK's AndroidManifest.xml. @@ -684,6 +658,8 @@ def _PackageApk(options, build): Args: options: The command-line options. build: BuildContext object. + Returns: + The manifest package name for the APK. """ dep_subdirs = resource_utils.ExtractDeps(options.dependencies_res_zips, build.deps_dir) @@ -751,9 +727,12 @@ def _PackageApk(options, build): if options.no_xml_namespaces: link_command.append('--no-xml-namespaces') - package_id = _PackageIdFromOptions(options) - if package_id is not None: - link_command += ['--package-id', package_id, '--allow-reserved-package-id'] + if options.package_id: + link_command += [ + '--package-id', + hex(options.package_id), + '--allow-reserved-package-id', + ] fixed_manifest, desired_manifest_package_name = _FixManifest( options, build.temp_dir) @@ -787,6 +766,19 @@ def _PackageApk(options, build): build_utils.CheckOutput(link_command, print_stdout=False, print_stderr=False) + if options.proguard_file and (options.shared_resources + or options.app_as_shared_lib): + # Make sure the R class associated with the manifest package does not have + # its onResourcesLoaded method obfuscated or removed, so that the framework + # can call it in the case where the APK is being loaded as a library. + with open(build.proguard_path, 'a') as proguard_file: + keep_rule = ''' + -keep class {package}.R {{ + public static void onResourcesLoaded(int); + }} + '''.format(package=desired_manifest_package_name) + proguard_file.write(textwrap.dedent(keep_rule)) + if options.proto_path and options.arsc_path: build_utils.CheckOutput([ options.aapt2_path, 'convert', '-o', build.arsc_path, build.proto_path @@ -799,6 +791,8 @@ def _PackageApk(options, build): _OptimizeApk(build.optimized_arsc_path, options, build.temp_dir, build.arsc_path, build.r_txt_path) + return desired_manifest_package_name + def _OptimizeApk(output, options, temp_dir, unoptimized_path, r_txt_path): """Optimize intermediate .ap_ file with aapt2. @@ -921,7 +915,7 @@ def main(args): build_utils.MakeDirectory(debug_temp_resources_dir) with resource_utils.BuildContext(debug_temp_resources_dir) as build: - _PackageApk(options, build) + manifest_package_name = _PackageApk(options, build) # If --shared-resources-whitelist is used, the all resources listed in # the corresponding R.txt file will be non-final, and an onResourcesLoaded() @@ -953,19 +947,26 @@ def main(args): custom_root_package_name = options.package_name grandparent_custom_package_name = options.r_java_root_package_name + if options.shared_resources or options.app_as_shared_lib: + package_for_library = manifest_package_name + else: + package_for_library = None + resource_utils.CreateRJavaFiles( - build.srcjar_dir, None, build.r_txt_path, options.extra_res_packages, - options.extra_r_text_files, rjava_build_options, options.srcjar_out, - custom_root_package_name, grandparent_custom_package_name, - options.extra_main_r_text_files) + build.srcjar_dir, package_for_library, build.r_txt_path, + options.extra_res_packages, options.extra_r_text_files, + rjava_build_options, options.srcjar_out, custom_root_package_name, + grandparent_custom_package_name, options.extra_main_r_text_files) build_utils.ZipDir(build.srcjar_path, build.srcjar_dir) # Sanity check that the created resources have the expected package ID. - expected_id = _PackageIdFromOptions(options) - if expected_id is None: - expected_id = '0x00' if options.shared_resources else '0x7f' - expected_id = int(expected_id, 16) + if options.package_id: + expected_id = options.package_id + elif options.shared_resources: + expected_id = 0 + else: + expected_id = 127 # == '0x7f'. _, package_id = resource_utils.ExtractArscPackage( options.aapt2_path, build.arsc_path if options.arsc_path else build.proto_path) diff --git a/chromium/build/android/gyp/create_app_bundle.py b/chromium/build/android/gyp/create_app_bundle.py index eeb665bb41b..ae3f4662b1b 100755 --- a/chromium/build/android/gyp/create_app_bundle.py +++ b/chromium/build/android/gyp/create_app_bundle.py @@ -411,12 +411,17 @@ def main(args): with open(tmp_bundle_config, 'w') as f: f.write(bundle_config) - cmd_args = ['java', '-jar', bundletool.BUNDLETOOL_JAR_PATH, 'build-bundle'] - cmd_args += ['--modules=%s' % ','.join(module_zips)] - cmd_args += ['--output=%s' % tmp_unsigned_bundle] - cmd_args += ['--config=%s' % tmp_bundle_config] - - build_utils.CheckOutput(cmd_args, print_stdout=True, print_stderr=True) + cmd_args = [ + build_utils.JAVA_PATH, '-jar', bundletool.BUNDLETOOL_JAR_PATH, + 'build-bundle', '--modules=' + ','.join(module_zips), + '--output=' + tmp_unsigned_bundle, '--config=' + tmp_bundle_config + ] + + build_utils.CheckOutput( + cmd_args, + print_stdout=True, + print_stderr=True, + stderr_filter=build_utils.FilterReflectiveAccessJavaWarnings) if options.keystore_path: # NOTE: As stated by the public documentation, apksigner cannot be used diff --git a/chromium/build/android/gyp/create_bundle_wrapper_script.pydeps b/chromium/build/android/gyp/create_bundle_wrapper_script.pydeps index fb35bc02ea1..a83e696a26d 100644 --- a/chromium/build/android/gyp/create_bundle_wrapper_script.pydeps +++ b/chromium/build/android/gyp/create_bundle_wrapper_script.pydeps @@ -37,6 +37,7 @@ ../../../third_party/catapult/devil/devil/android/sdk/aapt.py ../../../third_party/catapult/devil/devil/android/sdk/adb_wrapper.py ../../../third_party/catapult/devil/devil/android/sdk/build_tools.py +../../../third_party/catapult/devil/devil/android/sdk/bundletool.py ../../../third_party/catapult/devil/devil/android/sdk/intent.py ../../../third_party/catapult/devil/devil/android/sdk/keyevent.py ../../../third_party/catapult/devil/devil/android/sdk/split_select.py diff --git a/chromium/build/android/gyp/create_java_binary_script.py b/chromium/build/android/gyp/create_java_binary_script.py index 4469381c7c0..7ea0efb22d8 100755 --- a/chromium/build/android/gyp/create_java_binary_script.py +++ b/chromium/build/android/gyp/create_java_binary_script.py @@ -37,13 +37,14 @@ if os.getcwd() != self_dir: offset = os.path.relpath(self_dir, os.getcwd()) classpath = [os.path.join(offset, p) for p in classpath] bootclasspath = [os.path.join(offset, p) for p in bootclasspath] -java_cmd = ["java"] -# This is a simple argparser for jvm and jar arguments. +java_cmd = ['java'] +# This is a simple argparser for jvm, jar, and classpath arguments. parser = argparse.ArgumentParser() parser.add_argument('--jar-args') parser.add_argument('--jvm-args') - +parser.add_argument('--classpath') known_args, unknown_args = parser.parse_known_args(sys.argv[1:]) + if known_args.jvm_args: jvm_arguments = known_args.jvm_args.strip('"').split() java_cmd.extend(jvm_arguments) @@ -54,14 +55,17 @@ if known_args.jar_args: else: jar_arguments = unknown_args +if known_args.classpath: + classpath += [known_args.classpath] + {noverify_flag} if bootclasspath: - java_cmd.append("-Xbootclasspath/p:" + ":".join(bootclasspath)) + java_cmd.append('-Xbootclasspath/p:' + ':'.join(bootclasspath)) java_cmd.extend( - ["-classpath", ":".join(classpath), "-enableassertions", \"{main_class}\"]) + ['-classpath', ':'.join(classpath), '-enableassertions', \"{main_class}\"]) java_cmd.extend(extra_program_args) java_cmd.extend(jar_arguments) -os.execvp("java", java_cmd) +os.execvp('java', java_cmd) """ def main(argv): diff --git a/chromium/build/android/gyp/desugar.py b/chromium/build/android/gyp/desugar.py index b9d04059e55..407b8f2c59c 100755 --- a/chromium/build/android/gyp/desugar.py +++ b/chromium/build/android/gyp/desugar.py @@ -31,7 +31,7 @@ def main(): options.classpath = build_utils.ParseGnList(options.classpath) cmd = [ - 'java', + build_utils.JAVA_PATH, '-jar', options.desugar_jar, '--input', @@ -46,7 +46,10 @@ def main(): cmd += ['--bootclasspath_entry', path] for path in options.classpath: cmd += ['--classpath_entry', path] - build_utils.CheckOutput(cmd, print_stdout=False) + build_utils.CheckOutput( + cmd, + print_stdout=False, + stderr_filter=build_utils.FilterReflectiveAccessJavaWarnings) if options.depfile: build_utils.WriteDepfile( diff --git a/chromium/build/android/gyp/dex.py b/chromium/build/android/gyp/dex.py index a2e17b4e282..043a08ab272 100755 --- a/chromium/build/android/gyp/dex.py +++ b/chromium/build/android/gyp/dex.py @@ -27,7 +27,27 @@ def _ParseArgs(args): build_utils.AddDepfileOption(parser) parser.add_argument('--output', required=True, help='Dex output path.') - parser.add_argument('--input-list', help='GN-list of additional input paths.') + parser.add_argument( + '--class-inputs', + action='append', + help='GN-list of .jars with .class files.') + parser.add_argument( + '--class-inputs-filearg', + action='append', + help='GN-list of .jars with .class files (added to depfile).') + parser.add_argument( + '--dex-inputs', action='append', help='GN-list of .jars with .dex files.') + parser.add_argument( + '--dex-inputs-filearg', + action='append', + help='GN-list of .jars with .dex files (added to depfile).') + parser.add_argument( + '--incremental-dir', + help='Path of directory to put intermediate dex files.') + parser.add_argument( + '--merge-incrementals', + action='store_true', + help='Combine all per-class .dex files into a single classes.dex') parser.add_argument( '--main-dex-list-path', help='File containing a list of the classes to include in the main dex.') @@ -35,7 +55,7 @@ def _ParseArgs(args): '--multi-dex', action='store_true', help='Allow multiple dex files within output.') - parser.add_argument('--d8-jar-path', required=True, help='Path to D8 jar.') + parser.add_argument('--r8-jar-path', required=True, help='Path to R8 jar.') parser.add_argument( '--release', action='store_true', @@ -44,7 +64,6 @@ def _ParseArgs(args): 'main dex and keeps all line number information, and then some.') parser.add_argument( '--min-api', help='Minimum Android API level compatibility.') - parser.add_argument('inputs', nargs='*', help='Input .jar files.') group = parser.add_argument_group('Dexlayout') group.add_argument( @@ -79,8 +98,12 @@ def _ParseArgs(args): if options.main_dex_list_path and not options.multi_dex: parser.error('--main-dex-list-path is unused if multidex is not enabled') - if options.input_list: - options.inputs += build_utils.ParseGnList(options.input_list) + options.class_inputs = build_utils.ParseGnList(options.class_inputs) + options.class_inputs_filearg = build_utils.ParseGnList( + options.class_inputs_filearg) + options.dex_inputs = build_utils.ParseGnList(options.dex_inputs) + options.dex_inputs_filearg = build_utils.ParseGnList( + options.dex_inputs_filearg) return options @@ -249,48 +272,156 @@ def _PerformDexlayout(tmp_dir, tmp_dex_output, options): return final_output -def _PerformDexing(options): - dex_cmd = ['java', '-jar', options.d8_jar_path, '--no-desugaring'] - if options.multi_dex and options.main_dex_list_path: - dex_cmd += ['--main-dex-list', options.main_dex_list_path] - if options.release: - dex_cmd += ['--release'] - if options.min_api: - dex_cmd += ['--min-api', options.min_api] +def _CreateFinalDex(options, d8_inputs, tmp_dir, dex_cmd): + tmp_dex_output = os.path.join(tmp_dir, 'tmp_dex_output.zip') + if (options.merge_incrementals or options.output.endswith('.dex') + or not all(f.endswith('.dex') for f in d8_inputs)): + if options.multi_dex and options.main_dex_list_path: + # Provides a list of classes that should be included in the main dex file. + dex_cmd = dex_cmd + ['--main-dex-list', options.main_dex_list_path] - with build_utils.TempDir() as tmp_dir: tmp_dex_dir = os.path.join(tmp_dir, 'tmp_dex_dir') os.mkdir(tmp_dex_dir) - _RunD8(dex_cmd, options.inputs, tmp_dex_dir) + _RunD8(dex_cmd, d8_inputs, tmp_dex_dir) + logging.info('Performed dex merging') + dex_files = [os.path.join(tmp_dex_dir, f) for f in os.listdir(tmp_dex_dir)] - if not options.output.endswith('.dex'): - tmp_dex_output = os.path.join(tmp_dir, 'tmp_dex_output.zip') - _ZipAligned(sorted(dex_files), tmp_dex_output) - else: - # Output to a .dex file. + if options.output.endswith('.dex'): if len(dex_files) > 1: raise Exception('%d files created, expected 1' % len(dex_files)) tmp_dex_output = dex_files[0] + else: + _ZipAligned(sorted(dex_files), tmp_dex_output) + else: + # Skip dexmerger. Just put all incrementals into the .jar individually. + _ZipAligned(sorted(d8_inputs), tmp_dex_output) + logging.info('Quick-zipped %d files', len(d8_inputs)) - if options.dexlayout_profile: - tmp_dex_output = _PerformDexlayout(tmp_dir, tmp_dex_output, options) + if options.dexlayout_profile: + tmp_dex_output = _PerformDexlayout(tmp_dir, tmp_dex_output, options) + + # The dex file is complete and can be moved out of tmp_dir. + shutil.move(tmp_dex_output, options.output) + + +def _IntermediateDexFilePathsFromInputJars(class_inputs, incremental_dir): + """Returns a list of all intermediate dex file paths.""" + dex_files = [] + for jar in class_inputs: + with zipfile.ZipFile(jar, 'r') as z: + for subpath in z.namelist(): + if subpath.endswith('.class'): + subpath = subpath[:-5] + 'dex' + dex_files.append(os.path.join(incremental_dir, subpath)) + return dex_files + + +def _DeleteStaleIncrementalDexFiles(dex_dir, dex_files): + """Deletes intermediate .dex files that are no longer needed.""" + all_files = build_utils.FindInDirectory(dex_dir) + desired_files = set(dex_files) + for path in all_files: + if path not in desired_files: + os.unlink(path) + + +def _ExtractClassFiles(changes, tmp_dir, class_inputs): + classes_list = [] + for jar in class_inputs: + if changes: + changed_class_list = set(changes.IterChangedSubpaths(jar)) + predicate = lambda x: x in changed_class_list and x.endswith('.class') + else: + predicate = lambda x: x.endswith('.class') + + classes_list.extend( + build_utils.ExtractAll(jar, path=tmp_dir, predicate=predicate)) + return classes_list + + +def _CreateIntermediateDexFiles(changes, options, tmp_dir, dex_cmd): + # Create temporary directory for classes to be extracted to. + tmp_extract_dir = os.path.join(tmp_dir, 'tmp_extract_dir') + os.mkdir(tmp_extract_dir) + + # Check whether changes were to a non-jar file, requiring full re-dex. + # E.g. r8.jar updated. + rebuild_all = changes.HasStringChanges() or not all( + p.endswith('.jar') for p in changes.IterChangedPaths()) + + if rebuild_all: + changes = None + class_files = _ExtractClassFiles(changes, tmp_extract_dir, + options.class_inputs) + logging.info('Extracted class files: %d', len(class_files)) + + # If the only change is deleting a file, class_files will be empty. + if class_files: + # Dex necessary classes into intermediate dex files. + dex_cmd = dex_cmd + ['--intermediate', '--file-per-class'] + _RunD8(dex_cmd, class_files, options.incremental_dir) + logging.info('Dexed class files.') + + +def _OnStaleMd5(changes, options, final_dex_inputs, dex_cmd): + logging.info('_OnStaleMd5') + with build_utils.TempDir() as tmp_dir: + if options.incremental_dir: + # Create directory for all intermediate dex files. + if not os.path.exists(options.incremental_dir): + os.makedirs(options.incremental_dir) - # The dex file is complete and can be moved out of tmp_dir. - shutil.move(tmp_dex_output, options.output) + _DeleteStaleIncrementalDexFiles(options.incremental_dir, final_dex_inputs) + logging.info('Stale files deleted') + _CreateIntermediateDexFiles(changes, options, tmp_dir, dex_cmd) + + _CreateFinalDex(options, final_dex_inputs, tmp_dir, dex_cmd) + logging.info('Dex finished for: %s', options.output) def main(args): + logging.basicConfig( + level=logging.INFO if os.environ.get('DEX_DEBUG') else logging.WARNING, + format='%(levelname).1s %(relativeCreated)6d %(message)s') options = _ParseArgs(args) - input_paths = list(options.inputs) + options.class_inputs += options.class_inputs_filearg + options.dex_inputs += options.dex_inputs_filearg + + input_paths = options.class_inputs + options.dex_inputs if options.multi_dex and options.main_dex_list_path: input_paths.append(options.main_dex_list_path) + input_paths.append(options.r8_jar_path) + + output_paths = [options.output] + + if options.incremental_dir: + final_dex_inputs = _IntermediateDexFilePathsFromInputJars( + options.class_inputs, options.incremental_dir) + output_paths += final_dex_inputs + else: + final_dex_inputs = list(options.class_inputs) + final_dex_inputs += options.dex_inputs - _PerformDexing(options) + dex_cmd = [ + build_utils.JAVA_PATH, '-jar', options.r8_jar_path, 'd8', + '--no-desugaring' + ] + if options.release: + dex_cmd += ['--release'] + if options.min_api: + dex_cmd += ['--min-api', options.min_api] - build_utils.WriteDepfile( - options.depfile, options.output, input_paths, add_pydeps=False) + build_utils.CallAndWriteDepfileIfStale( + lambda changes: _OnStaleMd5(changes, options, final_dex_inputs, dex_cmd), + options, + depfile_deps=options.class_inputs_filearg + options.dex_inputs_filearg, + output_paths=output_paths, + input_paths=input_paths, + input_strings=dex_cmd + [bool(options.incremental_dir)], + pass_changes=True, + track_subpaths_whitelist=options.class_inputs) if __name__ == '__main__': diff --git a/chromium/build/android/gyp/dexsplitter.py b/chromium/build/android/gyp/dexsplitter.py index 926d2cdd502..7bbc066f076 100755 --- a/chromium/build/android/gyp/dexsplitter.py +++ b/chromium/build/android/gyp/dexsplitter.py @@ -49,7 +49,7 @@ def _ParseOptions(args): def _RunDexsplitter(options, output_dir): cmd = [ - 'java', + build_utils.JAVA_PATH, '-jar', options.r8_path, 'dexsplitter', diff --git a/chromium/build/android/gyp/dist_aar.py b/chromium/build/android/gyp/dist_aar.py index ed823f18b7b..a74037af07a 100755 --- a/chromium/build/android/gyp/dist_aar.py +++ b/chromium/build/android/gyp/dist_aar.py @@ -14,16 +14,19 @@ import sys import tempfile import zipfile +from filter_zip import CreatePathTransform from util import build_utils _ANDROID_BUILD_DIR = os.path.dirname(os.path.dirname(__file__)) -def _MergeRTxt(r_paths): +def _MergeRTxt(r_paths, include_globs): """Merging the given R.txt files and returns them as a string.""" all_lines = set() for r_path in r_paths: + if include_globs and not build_utils.MatchesGlob(r_path, include_globs): + continue with open(r_path) as f: all_lines.update(f.readlines()) return ''.join(sorted(all_lines)) @@ -39,18 +42,21 @@ def _MergeProguardConfigs(proguard_configs): return '\n'.join(ret) -def _AddResources(aar_zip, resource_zips): +def _AddResources(aar_zip, resource_zips, include_globs): """Adds all resource zips to the given aar_zip. Ensures all res/values/* files have unique names by prefixing them. """ for i, path in enumerate(resource_zips): + if include_globs and not build_utils.MatchesGlob(path, include_globs): + continue with zipfile.ZipFile(path) as res_zip: for info in res_zip.infolist(): data = res_zip.read(info) dirname, basename = posixpath.split(info.filename) if 'values' in dirname: - basename = '{}_{}'.format(basename, i) + root, ext = os.path.splitext(basename) + basename = '{}_{}{}'.format(root, i, ext) info.filename = posixpath.join(dirname, basename) info.filename = posixpath.join('res', info.filename) aar_zip.writestr(info, data) @@ -77,6 +83,15 @@ def main(args): 'ABI must be specified.') parser.add_argument('--abi', help='ABI (e.g. armeabi-v7a) for native libraries.') + parser.add_argument( + '--jar-excluded-globs', + help='GN-list of globs for paths to exclude in jar.') + parser.add_argument( + '--jar-included-globs', + help='GN-list of globs for paths to include in jar.') + parser.add_argument( + '--resource-included-globs', + help='GN-list of globs for paths to include in R.txt and resources zips.') options = parser.parse_args(args) @@ -89,6 +104,12 @@ def main(args): options.r_text_files = build_utils.ParseGnList(options.r_text_files) options.proguard_configs = build_utils.ParseGnList(options.proguard_configs) options.native_libraries = build_utils.ParseGnList(options.native_libraries) + options.jar_excluded_globs = build_utils.ParseGnList( + options.jar_excluded_globs) + options.jar_included_globs = build_utils.ParseGnList( + options.jar_included_globs) + options.resource_included_globs = build_utils.ParseGnList( + options.resource_included_globs) with tempfile.NamedTemporaryFile(delete=False) as staging_file: try: @@ -96,12 +117,18 @@ def main(args): build_utils.AddToZipHermetic( z, 'AndroidManifest.xml', src_path=options.android_manifest) + path_transform = CreatePathTransform(options.jar_excluded_globs, + options.jar_included_globs, []) with tempfile.NamedTemporaryFile() as jar_file: - build_utils.MergeZips(jar_file.name, options.jars) + build_utils.MergeZips( + jar_file.name, options.jars, path_transform=path_transform) build_utils.AddToZipHermetic(z, 'classes.jar', src_path=jar_file.name) build_utils.AddToZipHermetic( - z, 'R.txt', data=_MergeRTxt(options.r_text_files)) + z, + 'R.txt', + data=_MergeRTxt(options.r_text_files, + options.resource_included_globs)) build_utils.AddToZipHermetic(z, 'public.txt', data='') if options.proguard_configs: @@ -109,7 +136,8 @@ def main(args): z, 'proguard.txt', data=_MergeProguardConfigs(options.proguard_configs)) - _AddResources(z, options.dependencies_res_zips) + _AddResources(z, options.dependencies_res_zips, + options.resource_included_globs) for native_library in options.native_libraries: libname = os.path.basename(native_library) diff --git a/chromium/build/android/gyp/dist_aar.pydeps b/chromium/build/android/gyp/dist_aar.pydeps index da5ea8da23d..d4f9aae9b34 100644 --- a/chromium/build/android/gyp/dist_aar.pydeps +++ b/chromium/build/android/gyp/dist_aar.pydeps @@ -2,6 +2,7 @@ # build/print_python_deps.py --root build/android/gyp --output build/android/gyp/dist_aar.pydeps build/android/gyp/dist_aar.py ../../gn_helpers.py dist_aar.py +filter_zip.py util/__init__.py util/build_utils.py util/md5_check.py diff --git a/chromium/build/android/gyp/filter_zip.py b/chromium/build/android/gyp/filter_zip.py index 2182042df52..6f854191254 100755 --- a/chromium/build/android/gyp/filter_zip.py +++ b/chromium/build/android/gyp/filter_zip.py @@ -18,7 +18,7 @@ _RESOURCE_CLASSES = [ ] -def _CreatePathTransform(exclude_globs, include_globs, +def CreatePathTransform(exclude_globs, include_globs, strip_resource_classes_for): exclude_globs = list(exclude_globs or []) if strip_resource_classes_for: @@ -60,8 +60,8 @@ def main(): args.strip_resource_classes_for = build_utils.ParseGnList( args.strip_resource_classes_for) - path_transform = _CreatePathTransform( - args.exclude_globs, args.include_globs, args.strip_resource_classes_for) + path_transform = CreatePathTransform(args.exclude_globs, args.include_globs, + args.strip_resource_classes_for) with build_utils.AtomicOutput(args.output) as f: build_utils.MergeZips( f.name, [args.input], path_transform=path_transform) diff --git a/chromium/build/android/gyp/generate_linker_version_script.py b/chromium/build/android/gyp/generate_linker_version_script.py index 0b6c2ef6968..526d636197b 100755 --- a/chromium/build/android/gyp/generate_linker_version_script.py +++ b/chromium/build/android/gyp/generate_linker_version_script.py @@ -42,6 +42,10 @@ def main(): dest='whitelists', help='Path to an input file containing a whitelist of extra symbols to ' 'export, one symbol per line. Multiple files may be specified.') + parser.add_argument( + '--export-feature-registrations', + action='store_true', + help='Export JNI_OnLoad_* methods') options = parser.parse_args() # JNI_OnLoad is always exported. @@ -52,6 +56,9 @@ def main(): if options.export_java_symbols: symbol_list.append('Java_*') + if options.export_feature_registrations: + symbol_list.append('JNI_OnLoad_*') + for whitelist in options.whitelists: with open(whitelist, 'rt') as f: for line in f: diff --git a/chromium/build/android/gyp/jacoco_instr.py b/chromium/build/android/gyp/jacoco_instr.py index 4deea439559..9f4f55f551d 100755 --- a/chromium/build/android/gyp/jacoco_instr.py +++ b/chromium/build/android/gyp/jacoco_instr.py @@ -6,7 +6,7 @@ """Instruments classes and jar files. -This script corresponds to the 'jacoco_instr' action in the java build process. +This script corresponds to the 'jacoco_instr' action in the Java build process. Depending on whether jacoco_instrument is set, the 'jacoco_instr' action will call the instrument command which accepts a jar and instruments it using jacococli.jar. @@ -21,6 +21,7 @@ import os import shutil import sys import tempfile +import zipfile from util import build_utils @@ -53,6 +54,9 @@ def _AddArguments(parser): help='File containing newline-separated .java paths') parser.add_argument( '--jacococli-jar', required=True, help='Path to jacococli.jar.') + parser.add_argument( + '--files-to-instrument', + help='Path to a file containing which source files are affected.') def _GetSourceDirsFromSourceFiles(source_files): @@ -96,49 +100,145 @@ def _CreateSourcesJsonFile(source_dirs, input_path, sources_json_file, data = {} data['source_dirs'] = relative_sources - data['input_path'] = os.path.abspath(input_path) + data['input_path'] = [] + if input_path: + data['input_path'].append(os.path.abspath(input_path)) with open(sources_json_file, 'w') as f: json.dump(data, f) -def _RunInstrumentCommand(parser): - """Instruments jar files using Jacoco. +def _GetAffectedClasses(jar_file, source_files): + """Gets affected classes by affected source files to a jar. Args: - parser: ArgumentParser object. + jar_file: The jar file to get all members. + source_files: The list of affected source files. Returns: - An exit code. + A tuple of affected classes and unaffected members. """ - args = parser.parse_args() + with zipfile.ZipFile(jar_file) as f: + members = f.namelist() - temp_dir = tempfile.mkdtemp() - try: - cmd = [ - 'java', '-jar', args.jacococli_jar, 'instrument', args.input_path, - '--dest', temp_dir - ] + affected_classes = [] + unaffected_members = [] - build_utils.CheckOutput(cmd) + for member in members: + if not member.endswith('.class'): + unaffected_members.append(member) + continue - jars = os.listdir(temp_dir) - if len(jars) != 1: - print('Error: multiple output files in: %s' % (temp_dir)) - return 1 + is_affected = False + index = member.find('$') + if index == -1: + index = member.find('.class') + for source_file in source_files: + if source_file.endswith(member[:index] + '.java'): + affected_classes.append(member) + is_affected = True + break + if not is_affected: + unaffected_members.append(member) + + return affected_classes, unaffected_members + + +def _InstrumentWholeJar(instrument_cmd, input_path, output_path, temp_dir): + """Instruments input jar to output_path. + + Args: + instrument_cmd: JaCoCo instrument command. + input_path: The input path to non-instrumented jar. + output_path: The output path to instrumented jar. + temp_dir: The temporary directory. + """ + instrument_cmd.extend([input_path, '--dest', temp_dir]) + + build_utils.CheckOutput(instrument_cmd) + + jars = os.listdir(temp_dir) + if len(jars) != 1: + raise Exception('Error: multiple output files: %s' % jars) + + # Delete output_path first to avoid modifying input_path in the case where + # input_path is a hardlink to output_path. http://crbug.com/571642 + if os.path.exists(output_path): + os.unlink(output_path) + shutil.move(os.path.join(temp_dir, jars[0]), output_path) + + +def _InstrumentClassFiles(instrument_cmd, input_path, output_path, temp_dir, + affected_source_files): + """Instruments affected class files from input jar. + + Args: + instrument_cmd: JaCoCo instrument command. + input_path: The input path to non-instrumented jar. + output_path: The output path to instrumented jar. + temp_dir: The temporary directory. + affected_source_files: The affected source file paths to input jar. + """ + affected_classes, unaffected_members = _GetAffectedClasses( + input_path, affected_source_files) - # Delete output_path first to avoid modifying input_path in the case where - # input_path is a hardlink to output_path. http://crbug.com/571642 - if os.path.exists(args.output_path): - os.unlink(args.output_path) - shutil.move(os.path.join(temp_dir, jars[0]), args.output_path) - finally: - shutil.rmtree(temp_dir) + # Extract affected class files. + with zipfile.ZipFile(input_path) as f: + f.extractall(temp_dir, affected_classes) + + instrumented_dir = os.path.join(temp_dir, 'instrumented') + + # Instrument extracted class files. + instrument_cmd.extend([temp_dir, '--dest', instrumented_dir]) + build_utils.CheckOutput(instrument_cmd) + + # Extract unaffected members to instrumented_dir. + with zipfile.ZipFile(input_path) as f: + f.extractall(instrumented_dir, unaffected_members) + + # Zip all files to output_path + build_utils.ZipDir(output_path, instrumented_dir) + + +def _RunInstrumentCommand(parser): + """Instruments class or Jar files using JaCoCo. + + Args: + parser: ArgumentParser object. + + Returns: + An exit code. + """ + args = parser.parse_args() source_files = [] if args.java_sources_file: source_files.extend(build_utils.ReadSourcesList(args.java_sources_file)) - source_dirs = _GetSourceDirsFromSourceFiles(source_files) + with build_utils.TempDir() as temp_dir: + instrument_cmd = [ + build_utils.JAVA_PATH, '-jar', args.jacococli_jar, 'instrument' + ] + + if not args.files_to_instrument: + _InstrumentWholeJar(instrument_cmd, args.input_path, args.output_path, + temp_dir) + else: + affected_files = build_utils.ReadSourcesList(args.files_to_instrument) + source_set = set(source_files) + affected_source_files = [f for f in affected_files if f in source_set] + + # Copy input_path to output_path and return if no source file affected. + if not affected_source_files: + shutil.copyfile(args.input_path, args.output_path) + # Create a dummy sources_json_file. + _CreateSourcesJsonFile([], None, args.sources_json_file, + build_utils.DIR_SOURCE_ROOT) + return 0 + else: + _InstrumentClassFiles(instrument_cmd, args.input_path, args.output_path, + temp_dir, affected_source_files) + + source_dirs = _GetSourceDirsFromSourceFiles(source_files) # TODO(GYP): In GN, we are passed the list of sources, detecting source # directories, then walking them to re-establish the list of sources. # This can obviously be simplified! diff --git a/chromium/build/android/gyp/java_cpp_enum.py b/chromium/build/android/gyp/java_cpp_enum.py index bacc8e3d46d..502e0715647 100755 --- a/chromium/build/android/gyp/java_cpp_enum.py +++ b/chromium/build/android/gyp/java_cpp_enum.py @@ -351,7 +351,7 @@ def GenerateOutput(source_path, enum_definition): package ${PACKAGE}; -import android.support.annotation.IntDef; +import androidx.annotation.IntDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/chromium/build/android/gyp/java_cpp_enum_tests.py b/chromium/build/android/gyp/java_cpp_enum_tests.py index 5717047c7a3..08ef3b8773b 100755 --- a/chromium/build/android/gyp/java_cpp_enum_tests.py +++ b/chromium/build/android/gyp/java_cpp_enum_tests.py @@ -42,7 +42,7 @@ class TestPreprocess(unittest.TestCase): package some.package; -import android.support.annotation.IntDef; +import androidx.annotation.IntDef; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; diff --git a/chromium/build/android/gyp/javac.py b/chromium/build/android/gyp/javac.py index e8f27d562c2..9745a340373 100755 --- a/chromium/build/android/gyp/javac.py +++ b/chromium/build/android/gyp/javac.py @@ -501,7 +501,7 @@ def _ParseOptions(argv): def main(argv): logging.basicConfig( - level=logging.INFO if os.environ.get('_JAVAC_DEBUG') else logging.WARNING, + level=logging.INFO if os.environ.get('JAVAC_DEBUG') else logging.WARNING, format='%(levelname).1s %(relativeCreated)6d %(message)s') colorama.init() @@ -591,7 +591,7 @@ def main(argv): options.jar_path + '.info', ] - input_strings = javac_cmd + classpath + input_strings = javac_cmd + classpath + java_files if options.jar_info_exclude_globs: input_strings.append(options.jar_info_exclude_globs) build_utils.CallAndWriteDepfileIfStale( @@ -600,8 +600,7 @@ def main(argv): depfile_deps=depfile_deps, input_paths=input_paths, input_strings=input_strings, - output_paths=output_paths, - add_pydeps=False) + output_paths=output_paths) logging.info('Script complete: %s', __file__) diff --git a/chromium/build/android/gyp/lint.py b/chromium/build/android/gyp/lint.py index 605a478ec85..dfb9d08975b 100755 --- a/chromium/build/android/gyp/lint.py +++ b/chromium/build/android/gyp/lint.py @@ -439,8 +439,7 @@ def main(): input_paths=input_paths, input_strings=input_strings, output_paths=output_paths, - depfile_deps=classpath, - add_pydeps=False) + depfile_deps=classpath) if __name__ == '__main__': diff --git a/chromium/build/android/gyp/main_dex_list.py b/chromium/build/android/gyp/main_dex_list.py index d610982699c..b75f8ee6ff4 100755 --- a/chromium/build/android/gyp/main_dex_list.py +++ b/chromium/build/android/gyp/main_dex_list.py @@ -5,8 +5,6 @@ # found in the LICENSE file. import argparse -import json -import os import sys import tempfile import zipfile @@ -14,7 +12,7 @@ import zipfile from util import build_utils -def main(args): +def _ParseArgs(): parser = argparse.ArgumentParser() build_utils.AddDepfileOption(parser) parser.add_argument('--shrinked-android-path', required=True, @@ -28,33 +26,36 @@ def main(args): 'main dex.') parser.add_argument('--main-dex-list-path', required=True, help='The main dex list file to generate.') - parser.add_argument('--inputs', - help='JARs for which a main dex list should be ' - 'generated.') + parser.add_argument( + '--class-inputs', + action='append', + help='GN-list of .jars with .class files.') + parser.add_argument( + '--class-inputs-filearg', + action='append', + help='GN-list of .jars with .class files (added to depfile).') parser.add_argument( '--r8-path', required=True, help='Path to the r8 executable.') parser.add_argument('--negative-main-dex-globs', help='GN-list of globs of .class names (e.g. org/chromium/foo/Bar.class) ' 'that will fail the build if they match files in the main dex.') - parser.add_argument('paths', nargs='*', default=[], - help='JARs for which a main dex list should be ' - 'generated.') - - args = parser.parse_args(build_utils.ExpandFileArgs(args)) + args = parser.parse_args(build_utils.ExpandFileArgs(sys.argv[1:])) - depfile_deps = [] - if args.inputs: - args.inputs = build_utils.ParseGnList(args.inputs) - depfile_deps = args.inputs - args.paths.extend(args.inputs) + args.class_inputs = build_utils.ParseGnList(args.class_inputs) + args.class_inputs_filearg = build_utils.ParseGnList(args.class_inputs_filearg) + args.class_inputs += args.class_inputs_filearg if args.negative_main_dex_globs: args.negative_main_dex_globs = build_utils.ParseGnList( args.negative_main_dex_globs) + return args + +def main(): + args = _ParseArgs() proguard_cmd = [ - 'java', + build_utils.JAVA_PATH, '-jar', args.r8_path, '--classfile', @@ -73,60 +74,16 @@ def main(args): '-dontpreverify', ] - main_dex_list_cmd = [ - 'java', '-cp', args.dx_path, - 'com.android.multidex.MainDexListBuilder', - # This workaround significantly increases main dex size and doesn't seem to - # be needed by Chrome. See comment in the source: - # https://android.googlesource.com/platform/dalvik/+/master/dx/src/com/android/multidex/MainDexListBuilder.java - '--disable-annotation-resolution-workaround', - ] - - input_paths = list(args.paths) - input_paths += [ - args.shrinked_android_path, - args.dx_path, - ] - input_paths += args.main_dex_rules_paths - - input_strings = [ - proguard_cmd, - main_dex_list_cmd, - ] - if args.negative_main_dex_globs: - input_strings += args.negative_main_dex_globs for glob in args.negative_main_dex_globs: # Globs come with 1 asterix, but we want 2 to match subpackages. proguard_flags.append('-checkdiscard class ' + glob.replace('*', '**').replace('/', '.')) - output_paths = [ - args.main_dex_list_path, - ] - - def _LineLengthHelperForOnStaleMd5(): - _OnStaleMd5(proguard_cmd, proguard_flags, main_dex_list_cmd, args.paths, - args.main_dex_list_path) - - build_utils.CallAndWriteDepfileIfStale( - _LineLengthHelperForOnStaleMd5, - args, - input_paths=input_paths, - input_strings=input_strings, - output_paths=output_paths, - depfile_deps=depfile_deps, - add_pydeps=False) - - return 0 - - -def _OnStaleMd5(proguard_cmd, proguard_flags, main_dex_list_cmd, paths, - main_dex_list_path): main_dex_list = '' try: with tempfile.NamedTemporaryFile(suffix='.jar') as temp_jar: - # Step 1: Use ProGuard to find all @MainDex code, and all code reachable + # Step 1: Use R8 to find all @MainDex code, and all code reachable # from @MainDex code (recursive). proguard_cmd += ['--output', temp_jar.name] with tempfile.NamedTemporaryFile() as proguard_flags_file: @@ -134,7 +91,7 @@ def _OnStaleMd5(proguard_cmd, proguard_flags, main_dex_list_cmd, paths, proguard_flags_file.write(flag + '\n') proguard_flags_file.flush() proguard_cmd += ['--pg-conf', proguard_flags_file.name] - for injar in paths: + for injar in args.class_inputs: proguard_cmd.append(injar) build_utils.CheckOutput(proguard_cmd, print_stderr=False) @@ -142,12 +99,23 @@ def _OnStaleMd5(proguard_cmd, proguard_flags, main_dex_list_cmd, paths, # for debugging what classes are kept by ProGuard vs. MainDexListBuilder. with zipfile.ZipFile(temp_jar.name) as z: kept_classes = [p for p in z.namelist() if p.endswith('.class')] - with open(main_dex_list_path + '.partial', 'w') as f: + with open(args.main_dex_list_path + '.partial', 'w') as f: f.write('\n'.join(kept_classes) + '\n') # Step 2: Expand inclusion list to all classes referenced by the .class # files of kept classes (non-recursive). - main_dex_list_cmd += [temp_jar.name, ':'.join(paths)] + main_dex_list_cmd = [ + build_utils.JAVA_PATH, + '-cp', + args.dx_path, + 'com.android.multidex.MainDexListBuilder', + # This workaround increases main dex size and does not seem to + # be needed by Chrome. See comment in the source: + # https://android.googlesource.com/platform/dalvik/+/master/dx/src/com/android/multidex/MainDexListBuilder.java + '--disable-annotation-resolution-workaround', + temp_jar.name, + ':'.join(args.class_inputs) + ] main_dex_list = build_utils.CheckOutput(main_dex_list_cmd) except build_utils.CalledProcessError as e: @@ -158,9 +126,16 @@ def _OnStaleMd5(proguard_cmd, proguard_flags, main_dex_list_cmd, paths, else: raise - with open(main_dex_list_path, 'w') as main_dex_list_file: - main_dex_list_file.write(main_dex_list) + with build_utils.AtomicOutput(args.main_dex_list_path) as f: + f.write(main_dex_list) + + if args.depfile: + build_utils.WriteDepfile( + args.depfile, + args.main_dex_list_path, + inputs=args.class_inputs_filearg, + add_pydeps=False) if __name__ == '__main__': - sys.exit(main(sys.argv[1:])) + main() diff --git a/chromium/build/android/gyp/merge_manifest.py b/chromium/build/android/gyp/merge_manifest.py index 5680ad94028..61840bf6a1a 100755 --- a/chromium/build/android/gyp/merge_manifest.py +++ b/chromium/build/android/gyp/merge_manifest.py @@ -92,7 +92,7 @@ def main(argv): with build_utils.AtomicOutput(args.output) as output: cmd = [ - 'java', + build_utils.JAVA_PATH, '-cp', classpath, _MANIFEST_MERGER_MAIN_CLASS, diff --git a/chromium/build/android/gyp/prepare_resources.py b/chromium/build/android/gyp/prepare_resources.py index 6147f1a087f..cb0a2446544 100755 --- a/chromium/build/android/gyp/prepare_resources.py +++ b/chromium/build/android/gyp/prepare_resources.py @@ -295,8 +295,7 @@ def main(args): input_paths=input_paths, input_strings=input_strings, output_paths=output_paths, - depfile_deps=depfile_deps, - add_pydeps=False) + depfile_deps=depfile_deps) if __name__ == '__main__': diff --git a/chromium/build/android/gyp/proguard.py b/chromium/build/android/gyp/proguard.py index 3284341100d..fc9364471bd 100755 --- a/chromium/build/android/gyp/proguard.py +++ b/chromium/build/android/gyp/proguard.py @@ -14,6 +14,18 @@ import zipfile from util import build_utils from util import diff_utils +_API_LEVEL_VERSION_CODE = [ + (21, 'L'), + (22, 'LolliopoMR1'), + (23, 'M'), + (24, 'N'), + (25, 'NMR1'), + (26, 'O'), + (27, 'OMR1'), + (28, 'P'), + (29, 'Q'), +] + class _ProguardOutputFilter(object): """ProGuard outputs boring stuff to stdout (ProGuard version, jar path, etc) @@ -99,8 +111,7 @@ def _ParseOptions(): parser.add_argument( '--verbose', '-v', action='store_true', help='Print all ProGuard output') parser.add_argument( - '--repackage-classes', - help='Unique package name given to an asynchronously proguarded module') + '--repackage-classes', help='Package all optimized classes are put in.') parser.add_argument( '--disable-outlining', action='store_true', @@ -123,9 +134,6 @@ def _ParseOptions(): options.extra_mapping_output_paths = build_utils.ParseGnList( options.extra_mapping_output_paths) - if options.apply_mapping: - options.apply_mapping = os.path.abspath(options.apply_mapping) - return options @@ -168,7 +176,7 @@ def _OptimizeWithR8(options, os.mkdir(tmp_output) cmd = [ - 'java', + build_utils.JAVA_PATH, '-jar', options.r8_path, '--no-desugaring', @@ -238,7 +246,7 @@ def _OptimizeWithProguard(options, if options.proguard_path.endswith('.jar'): cmd = [ - 'java', '-jar', options.proguard_path, '-include', + build_utils.JAVA_PATH, '-jar', options.proguard_path, '-include', combined_proguard_configs_path ] else: @@ -319,9 +327,23 @@ def _CreateDynamicConfig(options): }""" % options.min_api) if options.apply_mapping: - ret.append("-applymapping '%s'" % options.apply_mapping) + ret.append("-applymapping '%s'" % os.path.abspath(options.apply_mapping)) if options.repackage_classes: ret.append("-repackageclasses '%s'" % options.repackage_classes) + + _min_api = int(options.min_api) if options.min_api else 0 + for api_level, version_code in _API_LEVEL_VERSION_CODE: + annotation_name = 'org.chromium.base.annotations.VerifiesOn' + version_code + if api_level > _min_api: + ret.append('-keep @interface %s' % annotation_name) + ret.append("""\ +-keep,allowobfuscation,allowoptimization @%s class ** { + <methods>; +}""" % annotation_name) + ret.append("""\ +-keepclassmembers,allowobfuscation,allowoptimization class ** { + @%s <methods>; +}""" % annotation_name) return '\n'.join(ret) @@ -387,7 +409,7 @@ def main(): inputs = options.proguard_configs + options.input_paths + libraries if options.apply_mapping: - inputs += options.apply_mapping + inputs.append(options.apply_mapping) build_utils.WriteDepfile( options.depfile, options.output_path, inputs=inputs, add_pydeps=False) diff --git a/chromium/build/android/gyp/util/build_utils.py b/chromium/build/android/gyp/util/build_utils.py index ecb41a3fe85..ca7f0c165b6 100644 --- a/chromium/build/android/gyp/util/build_utils.py +++ b/chromium/build/android/gyp/util/build_utils.py @@ -33,6 +33,8 @@ import gn_helpers DIR_SOURCE_ROOT = os.environ.get('CHECKOUT_SOURCE_ROOT', os.path.abspath(os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, os.pardir, os.pardir))) +JAVA_PATH = os.path.join(DIR_SOURCE_ROOT, 'third_party', 'jdk', 'current', + 'bin', 'java') try: string_types = basestring @@ -70,7 +72,7 @@ def Touch(path, fail_if_missing=False): os.utime(path, None) -def FindInDirectory(directory, filename_filter): +def FindInDirectory(directory, filename_filter='*'): files = [] for root, _dirnames, filenames in os.walk(directory): matched_files = fnmatch.filter(filenames, filename_filter) @@ -206,6 +208,26 @@ def FilterLines(output, filter_string): line for line in output.splitlines() if not re_filter.search(line)) +def FilterReflectiveAccessJavaWarnings(output): + """Filters out warnings about illegal reflective access operation. + + These warnings were introduced in Java 9, and generally mean that dependencies + need to be updated. + """ + # WARNING: An illegal reflective access operation has occurred + # WARNING: Illegal reflective access by ... + # WARNING: Please consider reporting this to the maintainers of ... + # WARNING: Use --illegal-access=warn to enable warnings of further ... + # WARNING: All illegal access operations will be denied in a future release + return FilterLines( + output, r'WARNING: (' + 'An illegal reflective|' + 'Illegal reflective access|' + 'Please consider reporting this to|' + 'Use --illegal-access=warn|' + 'All illegal access operations)') + + # This can be used in most cases like subprocess.check_output(). The output, # particularly when the command fails, better highlights the command's failure. # If the command fails, raises a build_utils.CalledProcessError. @@ -511,7 +533,7 @@ def _ComputePythonDependencies(): src/. The paths will be relative to the current directory. """ _ForceLazyModulesToLoad() - module_paths = (m.__file__ for m in sys.modules.itervalues() + module_paths = (m.__file__ for m in sys.modules.values() if m is not None and hasattr(m, '__file__')) abs_module_paths = map(os.path.abspath, module_paths) @@ -634,15 +656,20 @@ def ReadSourcesList(sources_list_file_name): return [file_name.strip() for file_name in f] -def CallAndWriteDepfileIfStale(function, options, record_path=None, - input_paths=None, input_strings=None, - output_paths=None, force=False, - pass_changes=False, depfile_deps=None, - add_pydeps=True): +def CallAndWriteDepfileIfStale(on_stale_md5, + options, + record_path=None, + input_paths=None, + input_strings=None, + output_paths=None, + force=False, + pass_changes=False, + track_subpaths_whitelist=None, + depfile_deps=None): """Wraps md5_check.CallAndRecordIfStale() and writes a depfile if applicable. Depfiles are automatically added to output_paths when present in the |options| - argument. They are then created after |function| is called. + argument. They are then created after |on_stale_md5| is called. By default, only python dependencies are added to the depfile. If there are other input paths that are not captured by GN deps, then they should be listed @@ -656,21 +683,7 @@ def CallAndWriteDepfileIfStale(function, options, record_path=None, input_strings = list(input_strings or []) output_paths = list(output_paths or []) - python_deps = None - if hasattr(options, 'depfile') and options.depfile: - python_deps = _ComputePythonDependencies() - input_paths += python_deps - output_paths += [options.depfile] - - def on_stale_md5(changes): - args = (changes,) if pass_changes else () - function(*args) - if python_deps is not None: - all_depfile_deps = list(python_deps) if add_pydeps else [] - if depfile_deps: - all_depfile_deps.extend(depfile_deps) - WriteDepfile(options.depfile, output_paths[0], all_depfile_deps, - add_pydeps=False) + input_paths += _ComputePythonDependencies() md5_check.CallAndRecordIfStale( on_stale_md5, @@ -679,4 +692,12 @@ def CallAndWriteDepfileIfStale(function, options, record_path=None, input_strings=input_strings, output_paths=output_paths, force=force, - pass_changes=True) + pass_changes=pass_changes, + track_subpaths_whitelist=track_subpaths_whitelist) + + # Write depfile even when inputs have not changed to ensure build correctness + # on bots that build with & without patch, and the patch changes the depfile + # location. + if hasattr(options, 'depfile') and options.depfile: + WriteDepfile( + options.depfile, output_paths[0], depfile_deps, add_pydeps=False) diff --git a/chromium/build/android/gyp/util/md5_check.py b/chromium/build/android/gyp/util/md5_check.py index 9a15ee6e75a..0ad6f1b4003 100644 --- a/chromium/build/android/gyp/util/md5_check.py +++ b/chromium/build/android/gyp/util/md5_check.py @@ -20,9 +20,14 @@ PRINT_EXPLANATIONS = int(os.environ.get('PRINT_BUILD_EXPLANATIONS', 0)) _FORCE_REBUILD = int(os.environ.get('FORCE_REBUILD', 0)) -def CallAndRecordIfStale( - function, record_path=None, input_paths=None, input_strings=None, - output_paths=None, force=False, pass_changes=False): +def CallAndRecordIfStale(function, + record_path=None, + input_paths=None, + input_strings=None, + output_paths=None, + force=False, + pass_changes=False, + track_subpaths_whitelist=None): """Calls function if outputs are stale. Outputs are considered stale if: @@ -43,6 +48,8 @@ def CallAndRecordIfStale( force: Whether to treat outputs as missing regardless of whether they actually are. pass_changes: Whether to pass a Changes instance to |function|. + track_subpaths_whitelist: Relevant only when pass_changes=True. List of .zip + files from |input_paths| to make subpath information available for. """ assert record_path or output_paths input_paths = input_paths or [] @@ -57,12 +64,15 @@ def CallAndRecordIfStale( new_metadata = _Metadata(track_entries=pass_changes or PRINT_EXPLANATIONS) new_metadata.AddStrings(input_strings) + zip_whitelist = set(track_subpaths_whitelist or []) for path in input_paths: - if _IsZipFile(path): + # It's faster to md5 an entire zip file than it is to just locate & hash + # its central directory (which is what this used to do). + if path in zip_whitelist: entries = _ExtractZipEntries(path) new_metadata.AddZipFile(path, entries) else: - new_metadata.AddFile(path, _Md5ForPath(path)) + new_metadata.AddFile(path, _ComputeTagForPath(path)) old_metadata = None force = force or _FORCE_REBUILD @@ -106,19 +116,20 @@ class Changes(object): def HasChanges(self): """Returns whether any changes exist.""" - return (self.force or - not self.old_metadata or - self.old_metadata.StringsMd5() != self.new_metadata.StringsMd5() or - self.old_metadata.FilesMd5() != self.new_metadata.FilesMd5()) + return (self.HasStringChanges() + or self.old_metadata.FilesMd5() != self.new_metadata.FilesMd5()) + + def HasStringChanges(self): + """Returns whether string metadata changed.""" + return (self.force or not self.old_metadata + or self.old_metadata.StringsMd5() != self.new_metadata.StringsMd5()) def AddedOrModifiedOnly(self): """Returns whether the only changes were from added or modified (sub)files. No missing outputs, no removed paths/subpaths. """ - if (self.force or - not self.old_metadata or - self.old_metadata.StringsMd5() != self.new_metadata.StringsMd5()): + if self.HasStringChanges(): return False if any(self.IterRemovedPaths()): return False @@ -368,27 +379,15 @@ class _Metadata(object): return (entry['path'] for entry in subentries) -def _UpdateMd5ForFile(md5, path, block_size=2**16): - with open(path, 'rb') as infile: - while True: - data = infile.read(block_size) - if not data: - break - md5.update(data) - - -def _UpdateMd5ForDirectory(md5, dir_path): - for root, _, files in os.walk(dir_path): - for f in files: - _UpdateMd5ForFile(md5, os.path.join(root, f)) - - -def _Md5ForPath(path): +def _ComputeTagForPath(path): + stat = os.stat(path) + if stat.st_size > 1 * 1024 * 1024: + # Fallback to mtime for large files so that md5_check does not take too long + # to run. + return stat.st_mtime md5 = hashlib.md5() - if os.path.isdir(path): - _UpdateMd5ForDirectory(md5, path) - else: - _UpdateMd5ForFile(md5, path) + with open(path, 'rb') as f: + md5.update(f.read()) return md5.hexdigest() @@ -400,14 +399,6 @@ def _ComputeInlineMd5(iterable): return md5.hexdigest() -def _IsZipFile(path): - """Returns whether to treat the given file as a zip file.""" - # ijar doesn't set the CRC32 field. - if path.endswith('.interface.jar'): - return False - return path[-4:] in ('.zip', '.apk', '.jar') or path.endswith('.srcjar') - - def _ExtractZipEntries(path): """Returns a list of (path, CRC32) of all files within |path|.""" entries = [] diff --git a/chromium/build/android/gyp/util/md5_check_test.py b/chromium/build/android/gyp/util/md5_check_test.py index 41e9d3c248c..cba7a6a354a 100755 --- a/chromium/build/android/gyp/util/md5_check_test.py +++ b/chromium/build/android/gyp/util/md5_check_test.py @@ -36,12 +36,18 @@ class TestMd5Check(unittest.TestCase): # Test out empty zip file to start. _WriteZipFile(input_file2.name, []) input_files = [input_file1.name, input_file2.name] + zip_paths = [input_file2.name] record_path = tempfile.NamedTemporaryFile(suffix='.stamp') - def CheckCallAndRecord(should_call, message, force=False, - outputs_specified=False, outputs_missing=False, - expected_changes=None, added_or_modified_only=None): + def CheckCallAndRecord(should_call, + message, + force=False, + outputs_specified=False, + outputs_missing=False, + expected_changes=None, + added_or_modified_only=None, + track_subentries=False): output_paths = None if outputs_specified: output_file1 = tempfile.NamedTemporaryFile() @@ -66,7 +72,8 @@ class TestMd5Check(unittest.TestCase): input_strings=input_strings, output_paths=output_paths, force=force, - pass_changes=(expected_changes or added_or_modified_only) is not None) + pass_changes=(expected_changes or added_or_modified_only) is not None, + track_subpaths_whitelist=zip_paths if track_subentries else None) self.assertEqual(should_call, self.called, message) if expected_changes: description = self.changes.DescribeDifference() @@ -81,6 +88,9 @@ class TestMd5Check(unittest.TestCase): expected_changes='Previous stamp file not found.', added_or_modified_only=False) CheckCallAndRecord(False, 'should not call when nothing changed') + input_files = input_files[::-1] + CheckCallAndRecord(False, 'reordering of inputs shouldn\'t trigger call') + CheckCallAndRecord(False, 'should not call when nothing changed #2', outputs_specified=True, outputs_missing=False) CheckCallAndRecord(True, 'should call when output missing', @@ -97,9 +107,6 @@ class TestMd5Check(unittest.TestCase): expected_changes='*Modified: %s' % input_file1.name, added_or_modified_only=True) - input_files = input_files[::-1] - CheckCallAndRecord(False, 'reordering of inputs shouldn\'t trigger call') - input_files = input_files[:1] CheckCallAndRecord(True, 'removing file should trigger call', expected_changes='*Removed: %s' % input_file1.name, @@ -129,16 +136,21 @@ class TestMd5Check(unittest.TestCase): added_or_modified_only=False) _WriteZipFile(input_file2.name, [('path/1.txt', '1')]) - CheckCallAndRecord(True, 'added subpath should trigger call', - expected_changes='*Modified: %s*Subpath added: %s' % ( - input_file2.name, 'path/1.txt'), - added_or_modified_only=True) + CheckCallAndRecord( + True, + 'added subpath should trigger call', + expected_changes='*Modified: %s*Subpath added: %s' % (input_file2.name, + 'path/1.txt'), + added_or_modified_only=True, + track_subentries=True) _WriteZipFile(input_file2.name, [('path/1.txt', '2')]) - CheckCallAndRecord(True, 'changed subpath should trigger call', - expected_changes='*Modified: %s*Subpath modified: %s' % ( - input_file2.name, 'path/1.txt'), - added_or_modified_only=True) - CheckCallAndRecord(False, 'should not call when nothing changed') + CheckCallAndRecord( + True, + 'changed subpath should trigger call', + expected_changes='*Modified: %s*Subpath modified: %s' % + (input_file2.name, 'path/1.txt'), + added_or_modified_only=True, + track_subentries=True) _WriteZipFile(input_file2.name, []) CheckCallAndRecord(True, 'removed subpath should trigger call', diff --git a/chromium/build/android/gyp/write_build_config.py b/chromium/build/android/gyp/write_build_config.py index 3d842a3fc5e..b98bd4fa4a3 100755 --- a/chromium/build/android/gyp/write_build_config.py +++ b/chromium/build/android/gyp/write_build_config.py @@ -348,9 +348,9 @@ that will be merged into the final `.jar` file for distribution. Path to the final classes.dex file (or classes.zip in case of multi-dex) for this APK. -* `deps_info['final_dex']['dependency_dex_files']`: -The list of paths to all `deps_info['dex_path']` entries for all library -dependencies for this APK. +* `deps_info['final_dex']['all_dex_files']`: +The list of paths to all `deps_info['dex_path']` entries for all libraries +that comprise this APK. Valid only for debug builds. * `native['libraries']` List of native libraries for the primary ABI to be embedded in this APK. @@ -1191,6 +1191,9 @@ def main(argv): raise Exception('Not all deps support the Android platform: ' + str(deps_not_support_android)) + if is_apk_or_module_target: + all_dex_files = [c['dex_path'] for c in all_library_deps] + if is_java_target: # Classpath values filled in below (after applying tested_apk_config). config['javac'] = {} @@ -1200,6 +1203,8 @@ def main(argv): deps_info['interface_jar_path'] = options.interface_jar_path if options.dex_path: deps_info['dex_path'] = options.dex_path + if is_apk_or_module_target: + all_dex_files.append(options.dex_path) if options.type == 'android_apk': deps_info['apk_path'] = options.apk_path deps_info['incremental_apk_path'] = options.incremental_apk_path @@ -1318,9 +1323,6 @@ def main(argv): if options.res_size_info: config['deps_info']['res_size_info'] = options.res_size_info - if is_apk_or_module_target: - deps_dex_files = [c['dex_path'] for c in all_library_deps] - if options.type == 'group': if options.extra_classpath_jars: # These are .jars to add to javac classpath but not to runtime classpath. @@ -1590,8 +1592,9 @@ def main(argv): # within proguard.py. Move the logic for the proguard case to here. tested_apk_library_deps = tested_apk_deps.All('java_library') tested_apk_deps_dex_files = [c['dex_path'] for c in tested_apk_library_deps] - deps_dex_files = [ - p for p in deps_dex_files if not p in tested_apk_deps_dex_files] + all_dex_files = [ + p for p in all_dex_files if not p in tested_apk_deps_dex_files + ] if options.type in ('android_apk', 'dist_aar', 'dist_jar', 'android_app_bundle_module', 'android_app_bundle'): @@ -1605,7 +1608,7 @@ def main(argv): dex_config = config['final_dex'] dex_config['path'] = options.final_dex_path if is_apk_or_module_target: - dex_config['dependency_dex_files'] = deps_dex_files + dex_config['all_dex_files'] = all_dex_files if is_java_target: config['javac']['classpath'] = javac_classpath @@ -1723,7 +1726,7 @@ def main(argv): RemoveObjDups(config, base, 'deps_info', 'javac_full_classpath') RemoveObjDups(config, base, 'deps_info', 'javac_full_interface_classpath') RemoveObjDups(config, base, 'deps_info', 'jni', 'all_source') - RemoveObjDups(config, base, 'final_dex', 'dependency_dex_files') + RemoveObjDups(config, base, 'final_dex', 'all_dex_files') RemoveObjDups(config, base, 'extra_android_manifests') build_utils.WriteJson(config, options.build_config, only_if_changed=True) diff --git a/chromium/build/android/incremental_install/BUILD.gn b/chromium/build/android/incremental_install/BUILD.gn index fb75d793345..934ce2cf61d 100644 --- a/chromium/build/android/incremental_install/BUILD.gn +++ b/chromium/build/android/incremental_install/BUILD.gn @@ -6,7 +6,7 @@ import("//build/config/android/rules.gni") android_library("bootstrap_java") { # Use .dex rather than .dex.jar to be usable by package_apk(). - dex_path = "$target_gen_dir/bootstrap.dex" + dex_path = "$target_out_dir/bootstrap.dex" java_files = [ "java/org/chromium/incrementalinstall/BootstrapApplication.java", "java/org/chromium/incrementalinstall/BootstrapInstrumentation.java", diff --git a/chromium/build/android/incremental_install/write_installer_json.py b/chromium/build/android/incremental_install/write_installer_json.py index 75bd6d1aab7..df6cfdf734c 100755 --- a/chromium/build/android/incremental_install/write_installer_json.py +++ b/chromium/build/android/incremental_install/write_installer_json.py @@ -31,19 +31,13 @@ def _ParseArgs(args): default=[], help='A glob matching the apk splits. ' 'Can be specified multiple times.') - parser.add_argument('--native-libs-list', - action='append', - default=[], - help='GN-list of paths to native libraries relative to ' - 'output directory. Can be repeated.') - parser.add_argument('--dex-file', - action='append', - default=[], - dest='dex_files', - help='.dex file to include relative to output directory. ' - 'Can be repeated') - parser.add_argument('--dex-file-list', - help='GN-list of dex paths relative to output directory.') + parser.add_argument( + '--native-libs', + action='append', + help='GN-list of paths to native libraries relative to ' + 'output directory. Can be repeated.') + parser.add_argument( + '--dex-files', help='GN-list of dex paths relative to output directory.') parser.add_argument('--show-proguard-warning', action='store_true', default=False, @@ -52,11 +46,8 @@ def _ParseArgs(args): help='Prints the given message and exits.') options = parser.parse_args(args) - options.dex_files += build_utils.ParseGnList(options.dex_file_list) - all_libs = [] - for gn_list in options.native_libs_list: - all_libs.extend(build_utils.ParseGnList(gn_list)) - options.native_libs_list = all_libs + options.dex_files = build_utils.ParseGnList(options.dex_files) + options.native_libs = build_utils.ParseGnList(options.native_libs) return options @@ -65,7 +56,7 @@ def main(args): data = { 'apk_path': options.apk_path, - 'native_libs': options.native_libs_list, + 'native_libs': options.native_libs, 'dex_files': options.dex_files, 'dont_even_try': options.dont_even_try, 'show_proguard_warning': options.show_proguard_warning, diff --git a/chromium/build/android/list_class_verification_failures.py b/chromium/build/android/list_class_verification_failures.py index cfcb2ac6896..da7d0a8c484 100755 --- a/chromium/build/android/list_class_verification_failures.py +++ b/chromium/build/android/list_class_verification_failures.py @@ -121,10 +121,11 @@ def _AdbOatDumpForPackage(device, package_name, out_file): """Runs oatdump on the device.""" # Get the path to the odex file. odex_file = PathToDexForPlatformVersion(device, package_name) - device.RunShellCommand(['oatdump', - '--oat-file=' + odex_file, - '--output=' + out_file], - timeout=120, shell=True, check_return=True) + device.RunShellCommand( + ['oatdump', '--oat-file=' + odex_file, '--output=' + out_file], + timeout=420, + shell=True, + check_return=True) class JavaClass(object): @@ -211,7 +212,7 @@ def RealMain(mapping, device_arg, package, status, hide_summary, workdir): device.adb) as file_on_device: _AdbOatDumpForPackage(device, package, file_on_device.name) file_on_host = os.path.join(workdir, 'out.dump') - device.PullFile(file_on_device.name, file_on_host) + device.PullFile(file_on_device.name, file_on_host, timeout=220) proguard_mappings = (_ParseMappingFile(mapping) if mapping else None) with open(file_on_host, 'r') as f: java_classes = ListClassesAndVerificationStatus(f, proguard_mappings) diff --git a/chromium/build/android/pylib/base/environment_factory.py b/chromium/build/android/pylib/base/environment_factory.py index 4d3727444f4..2b402ab9854 100644 --- a/chromium/build/android/pylib/base/environment_factory.py +++ b/chromium/build/android/pylib/base/environment_factory.py @@ -4,14 +4,24 @@ from pylib import constants from pylib.local.device import local_device_environment -from pylib.local.emulator import local_emulator_environment from pylib.local.machine import local_machine_environment +try: + # local_emulator_environment depends on //tools. + # If a client pulls in the //build subtree but not the //tools + # one, fail at emulator environment creation time. + from pylib.local.emulator import local_emulator_environment +except ImportError: + local_emulator_environment = None + + def CreateEnvironment(args, output_manager, error_func): if args.environment == 'local': if args.command not in constants.LOCAL_MACHINE_TESTS: - if args.avd_name: + if args.avd_config: + if not local_emulator_environment: + error_func('emulator environment requested but not available.') return local_emulator_environment.LocalEmulatorEnvironment( args, output_manager, error_func) return local_device_environment.LocalDeviceEnvironment( diff --git a/chromium/build/android/pylib/constants/__init__.py b/chromium/build/android/pylib/constants/__init__.py index aff42e3e961..5daecb6d6ed 100644 --- a/chromium/build/android/pylib/constants/__init__.py +++ b/chromium/build/android/pylib/constants/__init__.py @@ -79,6 +79,11 @@ PACKAGE_INFO.update({ chrome.PackageInfo('org.chromium.webview_ui_test', 'org.chromium.webview_ui_test.WebViewUiTestActivity', 'webview-command-line', None), + 'weblayer_browsertests': + chrome.PackageInfo( + 'org.chromium.weblayer_browsertests_apk', + 'org.chromium.weblayer_browsertests_apk.WebLayerBrowserTestsActivity', + 'chrome-native-tests-command-line', None), }) diff --git a/chromium/build/android/pylib/gtest/gtest_test_instance.py b/chromium/build/android/pylib/gtest/gtest_test_instance.py index 2b2c5e7f7e9..634ab7220a2 100644 --- a/chromium/build/android/pylib/gtest/gtest_test_instance.py +++ b/chromium/build/android/pylib/gtest/gtest_test_instance.py @@ -26,6 +26,7 @@ BROWSER_TEST_SUITES = [ 'android_browsertests', 'components_browsertests', 'content_browsertests', + 'weblayer_browsertests', ] RUN_IN_SUB_THREAD_TEST_SUITES = [ diff --git a/chromium/build/android/pylib/instrumentation/instrumentation_test_instance.py b/chromium/build/android/pylib/instrumentation/instrumentation_test_instance.py index 09114225cb1..bc2a9a31d50 100644 --- a/chromium/build/android/pylib/instrumentation/instrumentation_test_instance.py +++ b/chromium/build/android/pylib/instrumentation/instrumentation_test_instance.py @@ -446,6 +446,8 @@ class InstrumentationTestInstance(test_instance.TestInstance): self._additional_apks = [] self._apk_under_test = None self._apk_under_test_incremental_install_json = None + self._modules = None + self._fake_modules = None self._package_info = None self._suite = None self._test_apk = None @@ -506,7 +508,8 @@ class InstrumentationTestInstance(test_instance.TestInstance): def _initializeApkAttributes(self, args, error_func): if args.apk_under_test: apk_under_test_path = args.apk_under_test - if not args.apk_under_test.endswith('.apk'): + if (not args.apk_under_test.endswith('.apk') + and not args.apk_under_test.endswith('.apks')): apk_under_test_path = os.path.join( constants.GetOutDirectory(), constants.SDK_BUILD_APKS_DIR, '%s.apk' % args.apk_under_test) @@ -520,24 +523,20 @@ class InstrumentationTestInstance(test_instance.TestInstance): self._apk_under_test = apk_helper.ToHelper(apk_under_test_path) - if args.test_apk.endswith('.apk'): - self._suite = os.path.splitext(os.path.basename(args.test_apk))[0] - test_apk_path = args.test_apk - self._test_apk = apk_helper.ToHelper(args.test_apk) - else: - self._suite = args.test_apk + test_apk_path = args.test_apk + if not os.path.exists(test_apk_path): test_apk_path = os.path.join( constants.GetOutDirectory(), constants.SDK_BUILD_APKS_DIR, '%s.apk' % args.test_apk) - - # TODO(jbudorick): Move the realpath up to the argument parser once - # APK-by-name is no longer supported. - test_apk_path = os.path.realpath(test_apk_path) + # TODO(jbudorick): Move the realpath up to the argument parser once + # APK-by-name is no longer supported. + test_apk_path = os.path.realpath(test_apk_path) if not os.path.exists(test_apk_path): error_func('Unable to find test APK: %s' % test_apk_path) self._test_apk = apk_helper.ToHelper(test_apk_path) + self._suite = os.path.splitext(os.path.basename(args.test_apk))[0] self._apk_under_test_incremental_install_json = ( args.apk_under_test_incremental_install_json) @@ -548,13 +547,14 @@ class InstrumentationTestInstance(test_instance.TestInstance): assert self._suite.endswith('_incremental') self._suite = self._suite[:-len('_incremental')] + self._modules = args.modules + self._fake_modules = args.fake_modules + self._test_jar = args.test_jar self._test_support_apk = apk_helper.ToHelper(os.path.join( constants.GetOutDirectory(), constants.SDK_BUILD_TEST_JAVALIB_DIR, '%sSupport.apk' % self._suite)) - if not os.path.exists(self._test_apk.path): - error_func('Unable to find test APK: %s' % self._test_apk.path) if not self._test_jar: logging.warning('Test jar not specified. Test runner will not have ' 'Java annotation info available. May not handle test ' @@ -655,7 +655,10 @@ class InstrumentationTestInstance(test_instance.TestInstance): with open(args.device_flags_file) as device_flags_file: stripped_lines = (l.strip() for l in device_flags_file) self._flags.extend(flag for flag in stripped_lines if flag) - if args.strict_mode and args.strict_mode != 'off': + if args.strict_mode and args.strict_mode != 'off' and ( + # TODO(yliuyliu): Turn on strict mode for coverage once + # crbug/1006397 is fixed. + not args.coverage_dir): self._flags.append('--strict-mode=' + args.strict_mode) def _initializeDriverAttributes(self): @@ -717,6 +720,14 @@ class InstrumentationTestInstance(test_instance.TestInstance): return self._apk_under_test_incremental_install_json @property + def modules(self): + return self._modules + + @property + def fake_modules(self): + return self._fake_modules + + @property def coverage_directory(self): return self._coverage_directory diff --git a/chromium/build/android/pylib/instrumentation/instrumentation_test_instance_test.py b/chromium/build/android/pylib/instrumentation/instrumentation_test_instance_test.py index 78446d15272..5176dcd82fe 100755 --- a/chromium/build/android/pylib/instrumentation/instrumentation_test_instance_test.py +++ b/chromium/build/android/pylib/instrumentation/instrumentation_test_instance_test.py @@ -40,21 +40,20 @@ class InstrumentationTestInstanceTest(unittest.TestCase): return instrumentation_test_instance.InstrumentationTestInstance( mock.MagicMock(), mock.MagicMock(), lambda s: None) - _FlagAttributesArgs = collections.namedtuple( - '_FlagAttributesArgs', - [ - 'command_line_flags', - 'device_flags_file', - 'strict_mode', - 'use_apk_under_test_flags_file' - ]) - - def createFlagAttributesArgs( - self, command_line_flags=None, device_flags_file=None, - strict_mode=None, use_apk_under_test_flags_file=False): - return self._FlagAttributesArgs( - command_line_flags, device_flags_file, strict_mode, - use_apk_under_test_flags_file) + _FlagAttributesArgs = collections.namedtuple('_FlagAttributesArgs', [ + 'command_line_flags', 'device_flags_file', 'strict_mode', + 'use_apk_under_test_flags_file', 'coverage_dir' + ]) + + def createFlagAttributesArgs(self, + command_line_flags=None, + device_flags_file=None, + strict_mode=None, + use_apk_under_test_flags_file=False, + coverage_dir=None): + return self._FlagAttributesArgs(command_line_flags, device_flags_file, + strict_mode, use_apk_under_test_flags_file, + coverage_dir) def test_initializeFlagAttributes_commandLineFlags(self): o = self.createTestInstance() @@ -78,6 +77,13 @@ class InstrumentationTestInstanceTest(unittest.TestCase): o._initializeFlagAttributes(args) self.assertEquals(o._flags, ['--enable-test-intents', '--strict-mode=on']) + def test_initializeFlagAttributes_strictModeOn_coverageOn(self): + o = self.createTestInstance() + args = self.createFlagAttributesArgs( + strict_mode='on', coverage_dir='/coverage/dir') + o._initializeFlagAttributes(args) + self.assertEquals(o._flags, ['--enable-test-intents']) + def test_initializeFlagAttributes_strictModeOff(self): o = self.createTestInstance() args = self.createFlagAttributesArgs(strict_mode='off') diff --git a/chromium/build/android/pylib/local/device/local_device_gtest_run.py b/chromium/build/android/pylib/local/device/local_device_gtest_run.py index 5044cdf1247..605b826c1a0 100644 --- a/chromium/build/android/pylib/local/device/local_device_gtest_run.py +++ b/chromium/build/android/pylib/local/device/local_device_gtest_run.py @@ -10,11 +10,13 @@ import posixpath import shutil import time +from devil import base_error from devil.android import crash_handler from devil.android import device_errors from devil.android import device_temp_file from devil.android import logcat_monitor from devil.android import ports +from devil.android.sdk import version_codes from devil.utils import reraiser_thread from incremental_install import installer from pylib import constants @@ -35,6 +37,8 @@ _EXTRA_COMMAND_LINE_FILE = ( 'org.chromium.native_test.NativeTest.CommandLineFile') _EXTRA_COMMAND_LINE_FLAGS = ( 'org.chromium.native_test.NativeTest.CommandLineFlags') +_EXTRA_COVERAGE_DEVICE_FILE = ( + 'org.chromium.native_test.NativeTest.CoverageDeviceFile') _EXTRA_STDOUT_FILE = ( 'org.chromium.native_test.NativeTestInstrumentationTestRunner' '.StdoutFile') @@ -102,6 +106,24 @@ def _ExtractTestsFromFilter(gtest_filter): return patterns +def _PullCoverageFile(device, coverage_device_file, output_dir): + """Pulls coverage file on device to host directory. + + Args: + device: The working device. + coverage_device_file: The temporary coverage file on device. + output_dir: The output directory on host. + """ + try: + if not os.path.exists(output_dir): + os.makedirs(output_dir) + device.PullFile(coverage_device_file.name, output_dir) + except (OSError, base_error.BaseError) as e: + logging.warning('Failed to handle coverage data after tests: %s', e) + finally: + coverage_device_file.close() + + class _ApkDelegate(object): def __init__(self, test_instance, tool): self._activity = test_instance.activity @@ -116,6 +138,7 @@ class _ApkDelegate(object): self._extras = test_instance.extras self._wait_for_java_debugger = test_instance.wait_for_java_debugger self._tool = tool + self._coverage_dir = test_instance.coverage_dir def GetTestDataRoot(self, device): # pylint: disable=no-self-use @@ -138,6 +161,15 @@ class _ApkDelegate(object): def Run(self, test, device, flags=None, **kwargs): extras = dict(self._extras) + device_api = device.build_version_sdk + + if self._coverage_dir and device_api >= version_codes.LOLLIPOP: + coverage_device_file = device_temp_file.DeviceTempFile( + device.adb, + suffix='.profraw', + prefix=self._suite, + dir=device.GetExternalStoragePath()) + extras[_EXTRA_COVERAGE_DEVICE_FILE] = coverage_device_file.name if ('timeout' in kwargs and gtest_test_instance.EXTRA_SHARD_NANO_TIMEOUT not in extras): @@ -193,6 +225,10 @@ class _ApkDelegate(object): except Exception: device.ForceStop(self._package) raise + finally: + if self._coverage_dir and device_api >= version_codes.LOLLIPOP: + _PullCoverageFile(device, coverage_device_file, self._coverage_dir) + # TODO(jbudorick): Remove this after resolving crbug.com/726880 if device.PathExists(stdout_file.name): logging.info('%s size on device: %s', stdout_file.name, @@ -218,13 +254,18 @@ class _ApkDelegate(object): class _ExeDelegate(object): - def __init__(self, tr, dist_dir, tool): - self._host_dist_dir = dist_dir - self._exe_file_name = os.path.basename(dist_dir)[:-len('__dist')] + + def __init__(self, tr, test_instance, tool): + self._host_dist_dir = test_instance.exe_dist_dir + self._exe_file_name = os.path.basename( + test_instance.exe_dist_dir)[:-len('__dist')] self._device_dist_dir = posixpath.join( - constants.TEST_EXECUTABLE_DIR, os.path.basename(dist_dir)) + constants.TEST_EXECUTABLE_DIR, + os.path.basename(test_instance.exe_dist_dir)) self._test_run = tr self._tool = tool + self._coverage_dir = test_instance.coverage_dir + self._suite = test_instance.suite def GetTestDataRoot(self, device): # pylint: disable=no-self-use @@ -261,6 +302,14 @@ class _ExeDelegate(object): 'LD_LIBRARY_PATH': self._device_dist_dir } + if self._coverage_dir: + coverage_device_file = device_temp_file.DeviceTempFile( + device.adb, + suffix='.profraw', + prefix=self._suite, + dir=device.GetExternalStoragePath()) + env['LLVM_PROFILE_FILE'] = coverage_device_file.name + if self._tool != 'asan': env['UBSAN_OPTIONS'] = constants.UBSAN_OPTIONS @@ -276,6 +325,10 @@ class _ExeDelegate(object): # fine from the test runner's perspective; thus check_return=False. output = device.RunShellCommand( cmd, cwd=cwd, env=env, check_return=False, large_output=True, **kwargs) + + if self._coverage_dir: + _PullCoverageFile(device, coverage_device_file, self._coverage_dir) + return output def PullAppFiles(self, device, files, directory): @@ -296,8 +349,7 @@ class LocalDeviceGtestRun(local_device_test_run.LocalDeviceTestRun): if self._test_instance.apk: self._delegate = _ApkDelegate(self._test_instance, env.tool) elif self._test_instance.exe_dist_dir: - self._delegate = _ExeDelegate(self, self._test_instance.exe_dist_dir, - self._env.tool) + self._delegate = _ExeDelegate(self, self._test_instance, self._env.tool) if self._test_instance.isolated_script_test_perf_output: self._test_perf_output_filenames = _GenerateSequentialFileNames( self._test_instance.isolated_script_test_perf_output) diff --git a/chromium/build/android/pylib/local/device/local_device_instrumentation_test_run.py b/chromium/build/android/pylib/local/device/local_device_instrumentation_test_run.py index 18914e9aa13..25e47a0159d 100644 --- a/chromium/build/android/pylib/local/device/local_device_instrumentation_test_run.py +++ b/chromium/build/android/pylib/local/device/local_device_instrumentation_test_run.py @@ -190,32 +190,33 @@ class LocalDeviceInstrumentationTestRun( steps.append(use_webview_provider) - def install_helper(apk, permissions): + def install_helper(apk, modules=None, fake_modules=None, + permissions=None): + @instrumentation_tracing.no_tracing - @trace_event.traced("apk_path") - def install_helper_internal(d, apk_path=apk.path): + @trace_event.traced + def install_helper_internal(d, apk_path=None): # pylint: disable=unused-argument - d.Install(apk, permissions=permissions) + logging.info('Start Installing %s', apk.path) + d.Install( + apk, + modules=modules, + fake_modules=fake_modules, + permissions=permissions) + logging.info('Finished Installing %s', apk.path) + return install_helper_internal def incremental_install_helper(apk, json_path, permissions): - @trace_event.traced("apk_path") - def incremental_install_helper_internal(d, apk_path=apk.path): + + @trace_event.traced + def incremental_install_helper_internal(d, apk_path=None): # pylint: disable=unused-argument + logging.info('Start Incremental Installing %s', apk.path) installer.Install(d, json_path, apk=apk, permissions=permissions) - return incremental_install_helper_internal + logging.info('Finished Incremental Installing %s', apk.path) - if self._test_instance.apk_under_test: - permissions = self._test_instance.apk_under_test.GetPermissions() - if self._test_instance.apk_under_test_incremental_install_json: - steps.append(incremental_install_helper( - self._test_instance.apk_under_test, - self._test_instance. - apk_under_test_incremental_install_json, - permissions)) - else: - steps.append(install_helper(self._test_instance.apk_under_test, - permissions)) + return incremental_install_helper_internal permissions = self._test_instance.test_apk.GetPermissions() if self._test_instance.test_apk_incremental_install_json: @@ -225,11 +226,29 @@ class LocalDeviceInstrumentationTestRun( test_apk_incremental_install_json, permissions)) else: - steps.append(install_helper(self._test_instance.test_apk, - permissions)) + steps.append( + install_helper( + self._test_instance.test_apk, permissions=permissions)) + + steps.extend( + install_helper(apk) for apk in self._test_instance.additional_apks) - steps.extend(install_helper(apk, None) - for apk in self._test_instance.additional_apks) + # The apk under test needs to be installed last since installing other + # apks after will unintentionally clear the fake module directory. + # TODO(wnwen): Make this more robust, fix crbug.com/1010954. + if self._test_instance.apk_under_test: + permissions = self._test_instance.apk_under_test.GetPermissions() + if self._test_instance.apk_under_test_incremental_install_json: + steps.append( + incremental_install_helper( + self._test_instance.apk_under_test, + self._test_instance.apk_under_test_incremental_install_json, + permissions)) + else: + steps.append( + install_helper(self._test_instance.apk_under_test, + self._test_instance.modules, + self._test_instance.fake_modules, permissions)) @trace_event.traced def set_debug_app(dev): @@ -282,9 +301,9 @@ class LocalDeviceInstrumentationTestRun( host_device_tuples_substituted = [ (h, local_device_test_run.SubstituteDeviceRoot(d, device_root)) for h, d in host_device_tuples] - logging.info('instrumentation data deps:') + logging.info('Pushing data dependencies.') for h, d in host_device_tuples_substituted: - logging.info('%r -> %r', h, d) + logging.debug(' %r -> %r', h, d) dev.PushChangedFiles(host_device_tuples_substituted, delete_device_stale=True) if not host_device_tuples_substituted: @@ -541,6 +560,7 @@ class LocalDeviceInstrumentationTestRun( with ui_capture_dir: with self._env.output_manager.ArchivedTempfile( stream_name, 'logcat') as logcat_file: + logmon = None try: with logcat_monitor.LogcatMonitor( device.adb, @@ -555,7 +575,8 @@ class LocalDeviceInstrumentationTestRun( output = device.StartInstrumentation( target, raw=True, extras=extras, timeout=timeout, retries=0) finally: - logmon.Close() + if logmon: + logmon.Close() if logcat_file.Link(): logging.info('Logcat saved to %s', logcat_file.Link()) @@ -589,13 +610,12 @@ class LocalDeviceInstrumentationTestRun( def handle_coverage_data(): if self._test_instance.coverage_directory: try: + if not os.path.exists(self._test_instance.coverage_directory): + os.makedirs(self._test_instance.coverage_directory) device.PullFile(coverage_device_file, self._test_instance.coverage_directory) - device.RunShellCommand( - 'rm -f %s' % posixpath.join(coverage_directory, '*'), - check_return=True, - shell=True) - except base_error.BaseError as e: + device.RemovePath(coverage_device_file, True) + except (OSError, base_error.BaseError) as e: logging.warning('Failed to handle coverage data after tests: %s', e) def handle_render_test_data(): diff --git a/chromium/build/android/pylib/local/emulator/avd.py b/chromium/build/android/pylib/local/emulator/avd.py new file mode 100644 index 00000000000..fab9061e90e --- /dev/null +++ b/chromium/build/android/pylib/local/emulator/avd.py @@ -0,0 +1,496 @@ +# Copyright 2019 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. + +import contextlib +import json +import logging +import os +import socket +import stat +import subprocess +import textwrap +import threading + +from google.protobuf import text_format # pylint: disable=import-error + +from devil.android import device_utils +from devil.android.sdk import adb_wrapper +from devil.utils import cmd_helper +from devil.utils import timeout_retry +from py_utils import tempfile_ext +from pylib import constants +from pylib.local.emulator.proto import avd_pb2 + +_ALL_PACKAGES = object() +_DEFAULT_AVDMANAGER_PATH = os.path.join(constants.ANDROID_SDK_ROOT, 'tools', + 'bin', 'avdmanager') + + +class AvdException(Exception): + """Raised when this module has a problem interacting with an AVD.""" + + def __init__(self, summary, command=None, stdout=None, stderr=None): + message_parts = [summary] + if command: + message_parts.append(' command: %s' % ' '.join(command)) + if stdout: + message_parts.append(' stdout:') + message_parts.extend(' %s' % line for line in stdout.splitlines()) + if stderr: + message_parts.append(' stderr:') + message_parts.extend(' %s' % line for line in stderr.splitlines()) + + super(AvdException, self).__init__('\n'.join(message_parts)) + + +def _Load(avd_proto_path): + """Loads an Avd proto from a textpb file at the given path. + + Should not be called outside of this module. + + Args: + avd_proto_path: path to a textpb file containing an Avd message. + """ + with open(avd_proto_path) as avd_proto_file: + return text_format.Merge(avd_proto_file.read(), avd_pb2.Avd()) + + +class _AvdManagerAgent(object): + """Private utility for interacting with avdmanager.""" + + def __init__(self, avd_home, sdk_root): + """Create an _AvdManagerAgent. + + Args: + avd_home: path to ANDROID_AVD_HOME directory. + Typically something like /path/to/dir/.android/avd + sdk_root: path to SDK root directory. + """ + self._avd_home = avd_home + self._sdk_root = sdk_root + + self._env = dict(os.environ) + + # avdmanager, like many tools that have evolved from `android` + # (http://bit.ly/2m9JiTx), uses toolsdir to find the SDK root. + # Pass avdmanager a fake directory under the directory in which + # we install the system images s.t. avdmanager can find the + # system images. + fake_tools_dir = os.path.join(self._sdk_root, 'non-existent-tools') + self._env.update({ + 'ANDROID_AVD_HOME': + self._avd_home, + 'AVDMANAGER_OPTS': + '-Dcom.android.sdkmanager.toolsdir=%s' % fake_tools_dir, + }) + + def Create(self, avd_name, system_image, force=False): + """Call `avdmanager create`. + + Args: + avd_name: name of the AVD to create. + system_image: system image to use for the AVD. + force: whether to force creation, overwriting any existing + AVD with the same name. + """ + create_cmd = [ + _DEFAULT_AVDMANAGER_PATH, + '-v', + 'create', + 'avd', + '-n', + avd_name, + '-k', + system_image, + ] + if force: + create_cmd += ['--force'] + + create_proc = cmd_helper.Popen( + create_cmd, + stdin=subprocess.PIPE, + stdout=subprocess.PIPE, + stderr=subprocess.PIPE, + env=self._env) + output, error = create_proc.communicate(input='\n') + if create_proc.returncode != 0: + raise AvdException( + 'AVD creation failed', + command=create_cmd, + stdout=output, + stderr=error) + + for line in output.splitlines(): + logging.info(' %s', line) + + def Delete(self, avd_name): + """Call `avdmanager delete`. + + Args: + avd_name: name of the AVD to delete. + """ + delete_cmd = [ + _DEFAULT_AVDMANAGER_PATH, + '-v', + 'delete', + 'avd', + '-n', + avd_name, + ] + try: + for line in cmd_helper.IterCmdOutputLines(delete_cmd, env=self._env): + logging.info(' %s', line) + except subprocess.CalledProcessError as e: + raise AvdException('AVD deletion failed: %s' % str(e), command=delete_cmd) + + +class AvdConfig(object): + """Represents a particular AVD configuration. + + This class supports creation, installation, and execution of an AVD + from a given Avd proto message, as defined in + //build/android/pylib/local/emulator/proto/avd.proto. + """ + + def __init__(self, avd_proto_path): + """Create an AvdConfig object. + + Args: + avd_proto_path: path to a textpb file containing an Avd message. + """ + self._config = _Load(avd_proto_path) + + self._emulator_home = os.path.join(constants.DIR_SOURCE_ROOT, + self._config.avd_package.dest_path) + self._emulator_sdk_root = os.path.join( + constants.DIR_SOURCE_ROOT, self._config.emulator_package.dest_path) + self._emulator_path = os.path.join(self._emulator_sdk_root, 'emulator', + 'emulator') + + self._initialized = False + self._initializer_lock = threading.Lock() + + def Create(self, + force=False, + snapshot=False, + keep=False, + cipd_json_output=None): + """Create an instance of the AVD CIPD package. + + This method: + - installs the requisite system image + - creates the AVD + - modifies the AVD's ini files to support running chromium tests + in chromium infrastructure + - optionally starts & stops the AVD for snapshotting (default no) + - creates and uploads an instance of the AVD CIPD package + - optionally deletes the AVD (default yes) + + Args: + force: bool indicating whether to force create the AVD. + snapshot: bool indicating whether to snapshot the AVD before creating + the CIPD package. + keep: bool indicating whether to keep the AVD after creating + the CIPD package. + cipd_json_output: string path to pass to `cipd create` via -json-output. + """ + logging.info('Installing required packages.') + self.Install(packages=[ + self._config.emulator_package, + self._config.system_image_package, + ]) + + android_avd_home = os.path.join(self._emulator_home, 'avd') + + if not os.path.exists(android_avd_home): + os.makedirs(android_avd_home) + + avd_manager = _AvdManagerAgent( + avd_home=android_avd_home, sdk_root=self._emulator_sdk_root) + + logging.info('Creating AVD.') + avd_manager.Create( + avd_name=self._config.avd_name, + system_image=self._config.system_image_name, + force=force) + + try: + logging.info('Modifying AVD configuration.') + + # Clear out any previous configuration or state from this AVD. + root_ini = os.path.join(android_avd_home, + '%s.ini' % self._config.avd_name) + avd_dir = os.path.join(android_avd_home, '%s.avd' % self._config.avd_name) + config_ini = os.path.join(avd_dir, 'config.ini') + + with open(root_ini, 'a') as root_ini_file: + root_ini_file.write('path.rel=avd/%s.avd\n' % self._config.avd_name) + + with open(config_ini, 'a') as config_ini_file: + config_ini_file.write( + textwrap.dedent("""\ + disk.dataPartition.size=4G + hw.lcd.density=160 + hw.lcd.height=960 + hw.lcd.width=480 + """)) + + # Start & stop the AVD. + self._Initialize() + instance = _AvdInstance(self._emulator_path, self._config.avd_name, + self._emulator_home) + instance.Start(read_only=False, snapshot_save=snapshot) + device_utils.DeviceUtils(instance.serial).WaitUntilFullyBooted( + timeout=180, retries=0) + instance.Stop() + + # The multiinstance lock file seems to interfere with the emulator's + # operation in some circumstances (beyond the obvious -read-only ones), + # and there seems to be no mechanism by which it gets closed or deleted. + # See https://bit.ly/2pWQTH7 for context. + multiInstanceLockFile = os.path.join(avd_dir, 'multiinstance.lock') + if os.path.exists(multiInstanceLockFile): + os.unlink(multiInstanceLockFile) + + package_def_content = { + 'package': + self._config.avd_package.package_name, + 'root': + self._emulator_home, + 'install_mode': + 'copy', + 'data': [ + { + 'dir': os.path.relpath(avd_dir, self._emulator_home) + }, + { + 'file': os.path.relpath(root_ini, self._emulator_home) + }, + ], + } + + logging.info('Creating AVD CIPD package.') + logging.debug('ensure file content: %s', + json.dumps(package_def_content, indent=2)) + + with tempfile_ext.TemporaryFileName(suffix='.json') as package_def_path: + with open(package_def_path, 'w') as package_def_file: + json.dump(package_def_content, package_def_file) + + logging.info(' %s', self._config.avd_package.package_name) + cipd_create_cmd = [ + 'cipd', + 'create', + '-pkg-def', + package_def_path, + ] + if cipd_json_output: + cipd_create_cmd.extend([ + '-json-output', + cipd_json_output, + ]) + try: + for line in cmd_helper.IterCmdOutputLines(cipd_create_cmd): + logging.info(' %s', line) + except subprocess.CalledProcessError as e: + raise AvdException( + 'CIPD package creation failed: %s' % str(e), + command=cipd_create_cmd) + + finally: + if not keep: + logging.info('Deleting AVD.') + avd_manager.Delete(avd_name=self._config.avd_name) + + def Install(self, packages=_ALL_PACKAGES): + """Installs the requested CIPD packages. + + Returns: None + Raises: AvdException on failure to install. + """ + pkgs_by_dir = {} + if packages is _ALL_PACKAGES: + packages = [ + self._config.avd_package, + self._config.emulator_package, + self._config.system_image_package, + ] + for pkg in packages: + if not pkg.dest_path in pkgs_by_dir: + pkgs_by_dir[pkg.dest_path] = [] + pkgs_by_dir[pkg.dest_path].append(pkg) + + for pkg_dir, pkgs in pkgs_by_dir.iteritems(): + logging.info('Installing packages in %s', pkg_dir) + cipd_root = os.path.join(constants.DIR_SOURCE_ROOT, pkg_dir) + if not os.path.exists(cipd_root): + os.makedirs(cipd_root) + ensure_path = os.path.join(cipd_root, '.ensure') + with open(ensure_path, 'w') as ensure_file: + # Make CIPD ensure that all files are present, even if + # it thinks the package is installed. + ensure_file.write('$ParanoidMode CheckPresence\n\n') + for pkg in pkgs: + ensure_file.write('%s %s\n' % (pkg.package_name, pkg.version)) + logging.info(' %s %s', pkg.package_name, pkg.version) + ensure_cmd = [ + 'cipd', + 'ensure', + '-ensure-file', + ensure_path, + '-root', + cipd_root, + ] + try: + for line in cmd_helper.IterCmdOutputLines(ensure_cmd): + logging.info(' %s', line) + except subprocess.CalledProcessError as e: + raise AvdException( + 'Failed to install CIPD package %s: %s' % (pkg.package_name, + str(e)), + command=ensure_cmd) + + # The emulator requires that some files are writable. + for dirname, _, filenames in os.walk(self._emulator_home): + for f in filenames: + path = os.path.join(dirname, f) + mode = os.lstat(path).st_mode + if mode & stat.S_IRUSR: + mode = mode | stat.S_IWUSR + os.chmod(path, mode) + + def _Initialize(self): + if self._initialized: + return + + with self._initializer_lock: + if self._initialized: + return + + # Emulator start-up looks for the adb daemon. Make sure it's running. + adb_wrapper.AdbWrapper.StartServer() + + # Emulator start-up tries to check for the SDK root by looking for + # platforms/ and platform-tools/. Ensure they exist. + # See http://bit.ly/2YAkyFE for context. + required_dirs = [ + os.path.join(self._emulator_sdk_root, 'platforms'), + os.path.join(self._emulator_sdk_root, 'platform-tools'), + ] + for d in required_dirs: + if not os.path.exists(d): + os.makedirs(d) + + def CreateInstance(self): + """Creates an AVD instance without starting it. + + Returns: + An _AvdInstance. + """ + self._Initialize() + return _AvdInstance(self._emulator_path, self._config.avd_name, + self._emulator_home) + + def StartInstance(self): + """Starts an AVD instance. + + Returns: + An _AvdInstance. + """ + instance = self.CreateInstance() + instance.Start() + return instance + + +class _AvdInstance(object): + """Represents a single running instance of an AVD. + + This class should only be created directly by AvdConfig.StartInstance, + but its other methods can be freely called. + """ + + def __init__(self, emulator_path, avd_name, emulator_home): + """Create an _AvdInstance object. + + Args: + emulator_path: path to the emulator binary. + avd_name: name of the AVD to run. + emulator_home: path to the emulator home directory. + """ + self._avd_name = avd_name + self._emulator_home = emulator_home + self._emulator_path = emulator_path + self._emulator_proc = None + self._emulator_serial = None + self._sink = None + + def __str__(self): + return '%s|%s' % (self._avd_name, (self._emulator_serial or id(self))) + + def Start(self, read_only=True, snapshot_save=False, window=False): + """Starts the emulator running an instance of the given AVD.""" + with tempfile_ext.TemporaryFileName() as socket_path, (contextlib.closing( + socket.socket(socket.AF_UNIX))) as sock: + sock.bind(socket_path) + emulator_cmd = [ + self._emulator_path, + '-avd', + self._avd_name, + '-report-console', + 'unix:%s' % socket_path, + ] + if read_only: + emulator_cmd.append('-read-only') + if not snapshot_save: + emulator_cmd.append('-no-snapshot-save') + emulator_env = {} + if self._emulator_home: + emulator_env['ANDROID_EMULATOR_HOME'] = self._emulator_home + if window: + if 'DISPLAY' in os.environ: + emulator_env['DISPLAY'] = os.environ.get('DISPLAY') + else: + raise AvdException('Emulator failed to start: DISPLAY not defined') + else: + emulator_cmd.append('-no-window') + sock.listen(1) + + logging.info('Starting emulator.') + + # TODO(jbudorick): Add support for logging emulator stdout & stderr at + # higher logging levels. + self._sink = open('/dev/null', 'w') + self._emulator_proc = cmd_helper.Popen( + emulator_cmd, stdout=self._sink, stderr=self._sink, env=emulator_env) + + # Waits for the emulator to report its serial as requested via + # -report-console. See http://bit.ly/2lK3L18 for more. + def listen_for_serial(s): + logging.info('Waiting for connection from emulator.') + with contextlib.closing(s.accept()[0]) as conn: + val = conn.recv(1024) + return 'emulator-%d' % int(val) + + try: + self._emulator_serial = timeout_retry.Run( + listen_for_serial, timeout=30, retries=0, args=[sock]) + logging.info('%s started', self._emulator_serial) + except Exception as e: + self.Stop() + raise AvdException('Emulator failed to start: %s' % str(e)) + + def Stop(self): + """Stops the emulator process.""" + if self._emulator_proc: + if self._emulator_proc.poll() is None: + self._emulator_proc.terminate() + self._emulator_proc.wait() + self._emulator_proc = None + if self._sink: + self._sink.close() + self._sink = None + + @property + def serial(self): + return self._emulator_serial diff --git a/chromium/build/android/pylib/local/emulator/local_emulator_environment.py b/chromium/build/android/pylib/local/emulator/local_emulator_environment.py index cd81cf9c3a7..22470c035e6 100644 --- a/chromium/build/android/pylib/local/emulator/local_emulator_environment.py +++ b/chromium/build/android/pylib/local/emulator/local_emulator_environment.py @@ -2,20 +2,14 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. -import contextlib import logging -import os -import socket -import stat -from py_utils import tempfile_ext - -from devil.android.sdk import adb_wrapper -from devil.utils import cmd_helper -from devil.utils import timeout_retry - -from pylib import constants +from devil.utils import parallelizer from pylib.local.device import local_device_environment +from pylib.local.emulator import avd + +# Mirroring https://bit.ly/2OjuxcS#23 +_MAX_ANDROID_EMULATORS = 16 class LocalEmulatorEnvironment(local_device_environment.LocalDeviceEnvironment): @@ -23,99 +17,52 @@ class LocalEmulatorEnvironment(local_device_environment.LocalDeviceEnvironment): def __init__(self, args, output_manager, error_func): super(LocalEmulatorEnvironment, self).__init__(args, output_manager, error_func) - self._avd_name = args.avd_name - self._emulator_home = (args.emulator_home - or os.path.expanduser(os.path.join('~', '.android'))) - - root_ini = os.path.join(self._emulator_home, 'avd', - '%s.ini' % self._avd_name) - if not os.path.exists(root_ini): - error_func('Unable to find configuration for AVD %s at %s' % - (self._avd_name, root_ini)) - - self._emulator_path = os.path.join(constants.ANDROID_SDK_ROOT, 'emulator', - 'emulator') - if not os.path.exists(self._emulator_path): - error_func('%s does not exist.' % self._emulator_path) - - self._emulator_proc = None - self._emulator_serial = None + self._avd_config = avd.AvdConfig(args.avd_config) + if args.emulator_count < 1: + error_func('--emulator-count must be >= 1') + elif args.emulator_count >= _MAX_ANDROID_EMULATORS: + logging.warning('--emulator-count capped at 16.') + self._emulator_count = min(_MAX_ANDROID_EMULATORS, args.emulator_count) + self._emulator_window = args.emulator_window + self._emulator_instances = [] + self._device_serials = [] #override def SetUp(self): - # Emulator start-up looks for the adb daemon. Make sure it's running. - adb_wrapper.AdbWrapper.StartServer() + self._avd_config.Install() - # Emulator start-up tries to check for the SDK root by looking for - # platforms/ and platform-tools/. Ensure they exist. - # See http://bit.ly/2YAkyFE for context. - required_dirs = [ - os.path.join(constants.ANDROID_SDK_ROOT, 'platforms'), - os.path.join(constants.ANDROID_SDK_ROOT, 'platform-tools'), + emulator_instances = [ + self._avd_config.CreateInstance() for _ in range(self._emulator_count) ] - for d in required_dirs: - if not os.path.exists(d): - os.makedirs(d) - # The emulator requires that some files are writable. - for dirname, _, filenames in os.walk(self._emulator_home): - for f in filenames: - path = os.path.join(dirname, f) - if (os.lstat(path).st_mode & - (stat.S_IRWXU | stat.S_IRWXG | stat.S_IRWXO) == stat.S_IRUSR): - os.chmod(path, stat.S_IRUSR | stat.S_IWUSR) + def start_emulator_instance(e): + try: + e.Start(window=self._emulator_window) + return e + except avd.AvdException: + logging.exception('Failed to start emulator instance.') + return None + + parallel_emulators = parallelizer.SyncParallelizer(emulator_instances) + self._emulator_instances = [ + emu + for emu in parallel_emulators.pMap(start_emulator_instance).pGet(None) + if emu is not None + ] + self._device_serials = [e.serial for e in self._emulator_instances] - self._emulator_proc, self._emulator_serial = self._StartInstance() + if not self._emulator_instances: + raise Exception('Failed to start any instances of the emulator.') + elif len(self._emulator_instances) < self._emulator_count: + logging.warning( + 'Running with fewer emulator instances than requested (%d vs %d)', + len(self._emulator_instances), self._emulator_count) - logging.info('Emulator serial: %s', self._emulator_serial) - self._device_serials = [self._emulator_serial] super(LocalEmulatorEnvironment, self).SetUp() - def _StartInstance(self): - """Starts an AVD instance. - - Returns: - A (Popen, str) 2-tuple that includes the process and serial. - """ - # Start up the AVD. - with tempfile_ext.TemporaryFileName() as socket_path, (contextlib.closing( - socket.socket(socket.AF_UNIX))) as sock: - sock.bind(socket_path) - emulator_cmd = [ - self._emulator_path, - '-avd', - self._avd_name, - '-report-console', - 'unix:%s' % socket_path, - '-read-only', - '-no-window', - ] - emulator_env = {} - if self._emulator_home: - emulator_env['ANDROID_EMULATOR_HOME'] = self._emulator_home - sock.listen(1) - emulator_proc = cmd_helper.Popen(emulator_cmd, env=emulator_env) - - def listen_for_serial(s): - logging.info('Waiting for connection from emulator.') - with contextlib.closing(s.accept()[0]) as conn: - val = conn.recv(1024) - return 'emulator-%d' % int(val) - - try: - emulator_serial = timeout_retry.Run( - listen_for_serial, timeout=30, retries=0, args=[sock]) - except Exception: - emulator_proc.terminate() - raise - - return (emulator_proc, emulator_serial) - #override def TearDown(self): try: super(LocalEmulatorEnvironment, self).TearDown() finally: - if self._emulator_proc: - self._emulator_proc.terminate() - self._emulator_proc.wait() + parallelizer.SyncParallelizer(self._emulator_instances).Stop() diff --git a/chromium/build/android/pylib/local/emulator/proto/__init__.py b/chromium/build/android/pylib/local/emulator/proto/__init__.py new file mode 100644 index 00000000000..4a12e35c925 --- /dev/null +++ b/chromium/build/android/pylib/local/emulator/proto/__init__.py @@ -0,0 +1,3 @@ +# Copyright 2019 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. diff --git a/chromium/build/android/pylib/local/emulator/proto/avd.proto b/chromium/build/android/pylib/local/emulator/proto/avd.proto new file mode 100644 index 00000000000..adf5cb76469 --- /dev/null +++ b/chromium/build/android/pylib/local/emulator/proto/avd.proto @@ -0,0 +1,35 @@ + +// Copyright 2019 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. + +syntax = "proto3"; + +package tools.android.avd.proto; + +message CIPDPackage { + // CIPD package name. + string package_name = 1; + // CIPD package version to use. + // Ignored when creating AVD packages. + string version = 2; + // Path into which the package should be installed. + // src-relative. + string dest_path = 3; +} + +message Avd { + // The emulator to use in running the AVD. + CIPDPackage emulator_package = 1; + + // The system image to use. + CIPDPackage system_image_package = 2; + // The name of the system image to use, as reported by sdkmanager. + string system_image_name = 3; + + // The AVD to create or use. + // (Only the package_name is used during AVD creation.) + CIPDPackage avd_package = 4; + // The name of the AVD to create or use. + string avd_name = 5; +} diff --git a/chromium/build/android/pylib/local/emulator/proto/avd_pb2.py b/chromium/build/android/pylib/local/emulator/proto/avd_pb2.py new file mode 100644 index 00000000000..c264e6d17fe --- /dev/null +++ b/chromium/build/android/pylib/local/emulator/proto/avd_pb2.py @@ -0,0 +1,218 @@ +# Generated by the protocol buffer compiler. DO NOT EDIT! +# source: avd.proto + +import sys +_b = sys.version_info[0] < 3 and (lambda x: x) or (lambda x: x.encode('latin1')) +from google.protobuf import descriptor as _descriptor +from google.protobuf import message as _message +from google.protobuf import reflection as _reflection +from google.protobuf import symbol_database as _symbol_database +from google.protobuf import descriptor_pb2 +# @@protoc_insertion_point(imports) + +_sym_db = _symbol_database.Default() + +DESCRIPTOR = _descriptor.FileDescriptor( + name='avd.proto', + package='tools.android.avd.proto', + syntax='proto3', + serialized_pb=_b( + '\n\tavd.proto\x12\x17tools.android.avd.proto\"G\n\x0b\x43IPDPackage\x12\x14\n\x0cpackage_name\x18\x01 \x01(\t\x12\x0f\n\x07version\x18\x02 \x01(\t\x12\x11\n\tdest_path\x18\x03 \x01(\t\"\xf1\x01\n\x03\x41vd\x12>\n\x10\x65mulator_package\x18\x01 \x01(\x0b\x32$.tools.android.avd.proto.CIPDPackage\x12\x42\n\x14system_image_package\x18\x02 \x01(\x0b\x32$.tools.android.avd.proto.CIPDPackage\x12\x19\n\x11system_image_name\x18\x03 \x01(\t\x12\x39\n\x0b\x61vd_package\x18\x04 \x01(\x0b\x32$.tools.android.avd.proto.CIPDPackage\x12\x10\n\x08\x61vd_name\x18\x05 \x01(\tb\x06proto3' + )) +_sym_db.RegisterFileDescriptor(DESCRIPTOR) + +_CIPDPACKAGE = _descriptor.Descriptor( + name='CIPDPackage', + full_name='tools.android.avd.proto.CIPDPackage', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='package_name', + full_name='tools.android.avd.proto.CIPDPackage.package_name', + index=0, + number=1, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode('utf-8'), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='version', + full_name='tools.android.avd.proto.CIPDPackage.version', + index=1, + number=2, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode('utf-8'), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='dest_path', + full_name='tools.android.avd.proto.CIPDPackage.dest_path', + index=2, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode('utf-8'), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + ], + extensions=[], + nested_types=[], + enum_types=[], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[], + serialized_start=38, + serialized_end=109, +) + +_AVD = _descriptor.Descriptor( + name='Avd', + full_name='tools.android.avd.proto.Avd', + filename=None, + file=DESCRIPTOR, + containing_type=None, + fields=[ + _descriptor.FieldDescriptor( + name='emulator_package', + full_name='tools.android.avd.proto.Avd.emulator_package', + index=0, + number=1, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='system_image_package', + full_name='tools.android.avd.proto.Avd.system_image_package', + index=1, + number=2, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='system_image_name', + full_name='tools.android.avd.proto.Avd.system_image_name', + index=2, + number=3, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode('utf-8'), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='avd_package', + full_name='tools.android.avd.proto.Avd.avd_package', + index=3, + number=4, + type=11, + cpp_type=10, + label=1, + has_default_value=False, + default_value=None, + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + _descriptor.FieldDescriptor( + name='avd_name', + full_name='tools.android.avd.proto.Avd.avd_name', + index=4, + number=5, + type=9, + cpp_type=9, + label=1, + has_default_value=False, + default_value=_b("").decode('utf-8'), + message_type=None, + enum_type=None, + containing_type=None, + is_extension=False, + extension_scope=None, + options=None), + ], + extensions=[], + nested_types=[], + enum_types=[], + options=None, + is_extendable=False, + syntax='proto3', + extension_ranges=[], + oneofs=[], + serialized_start=112, + serialized_end=353, +) + +_AVD.fields_by_name['emulator_package'].message_type = _CIPDPACKAGE +_AVD.fields_by_name['system_image_package'].message_type = _CIPDPACKAGE +_AVD.fields_by_name['avd_package'].message_type = _CIPDPACKAGE +DESCRIPTOR.message_types_by_name['CIPDPackage'] = _CIPDPACKAGE +DESCRIPTOR.message_types_by_name['Avd'] = _AVD + +CIPDPackage = _reflection.GeneratedProtocolMessageType( + 'CIPDPackage', + (_message.Message, ), + dict( + DESCRIPTOR=_CIPDPACKAGE, + __module__='avd_pb2' + # @@protoc_insertion_point(class_scope:tools.android.avd.proto.CIPDPackage) + )) +_sym_db.RegisterMessage(CIPDPackage) + +Avd = _reflection.GeneratedProtocolMessageType( + 'Avd', + (_message.Message, ), + dict( + DESCRIPTOR=_AVD, + __module__='avd_pb2' + # @@protoc_insertion_point(class_scope:tools.android.avd.proto.Avd) + )) +_sym_db.RegisterMessage(Avd) + +# @@protoc_insertion_point(module_scope) diff --git a/chromium/build/android/pylib/local/machine/local_machine_junit_test_run.py b/chromium/build/android/pylib/local/machine/local_machine_junit_test_run.py index 312bf9c6ff9..dab18e32000 100644 --- a/chromium/build/android/pylib/local/machine/local_machine_junit_test_run.py +++ b/chromium/build/android/pylib/local/machine/local_machine_junit_test_run.py @@ -5,6 +5,7 @@ import json import logging import os +import zipfile from devil.utils import cmd_helper from pylib import constants @@ -31,7 +32,6 @@ class LocalMachineJunitTestRun(test_run.TestRun): def RunTests(self, results): with tempfile_ext.NamedTemporaryDirectory() as temp_dir: json_file_path = os.path.join(temp_dir, 'results.json') - java_script = os.path.join( constants.GetOutDirectory(), 'bin', 'helper', self._test_instance.suite) @@ -55,8 +55,6 @@ class LocalMachineJunitTestRun(test_run.TestRun): self._test_instance.robolectric_runtime_deps_dir, '-Ddir.source.root=%s' % constants.DIR_SOURCE_ROOT, '-Drobolectric.resourcesMode=binary', - '-Dchromium.robolectric.resource.ap_=%s' % - self._test_instance.resource_apk ] if logging.getLogger().isEnabledFor(logging.INFO): @@ -90,6 +88,14 @@ class LocalMachineJunitTestRun(test_run.TestRun): if jvm_args: command.extend(['--jvm-args', '"%s"' % ' '.join(jvm_args)]) + # Create properties file for Robolectric test runners so they can find the + # binary resources. + properties_jar_path = os.path.join(temp_dir, 'properties.jar') + with zipfile.ZipFile(properties_jar_path, 'w') as z: + z.writestr('com/android/tools/test_config.properties', + 'android_resource_apk=%s' % self._test_instance.resource_apk) + command.extend(['--classpath', properties_jar_path]) + cmd_helper.RunCmd(command) try: with open(json_file_path, 'r') as f: diff --git a/chromium/build/android/pylib/results/flakiness_dashboard/json_results_generator.py b/chromium/build/android/pylib/results/flakiness_dashboard/json_results_generator.py index 5e5f83f2a27..b2e542bd2a6 100644 --- a/chromium/build/android/pylib/results/flakiness_dashboard/json_results_generator.py +++ b/chromium/build/android/pylib/results/flakiness_dashboard/json_results_generator.py @@ -301,7 +301,7 @@ class JSONResultsGeneratorBase(object): "JSON upload failed, %d: '%s'", response.code, response.read()) else: _log.error('JSON upload failed; no response returned') - except Exception, err: # pylint: disable=broad-except + except Exception as err: # pylint: disable=broad-except _log.error('Upload failed: %s', err) return @@ -385,12 +385,12 @@ class JSONResultsGeneratorBase(object): # FIXME: We should talk to the network via a Host object. results_file = urllib2.urlopen(results_file_url) old_results = results_file.read() - except urllib2.HTTPError, http_error: + except urllib2.HTTPError as http_error: # A non-4xx status code means the bot is hosed for some reason # and we can't grab the results.json file off of it. if http_error.code < 400 and http_error.code >= 500: error = http_error - except urllib2.URLError, url_error: + except urllib2.URLError as url_error: error = url_error # pylint: enable=redefined-variable-type diff --git a/chromium/build/android/pylib/utils/simpleperf.py b/chromium/build/android/pylib/utils/simpleperf.py index be259d621f2..b3ba00e6c22 100644 --- a/chromium/build/android/pylib/utils/simpleperf.py +++ b/chromium/build/android/pylib/utils/simpleperf.py @@ -12,6 +12,7 @@ import tempfile from devil import devil_env from devil.android import device_signal from devil.android.sdk import version_codes +from pylib import constants def _ProcessType(proc): @@ -246,13 +247,13 @@ def ConvertSimpleperfToPprof(simpleperf_out_path, build_directory, # Run the script to annotate symbols and convert from simpleperf format to # pprof format. - llvm_symbolizer_path = devil_env.config.LocalPath('llvm-symbolizer') pprof_converter_script = os.path.join( script_dir, 'pprof_proto_generator.py') - pprof_converter_cmd = [sys.executable, pprof_converter_script, - '-i', simpleperf_out_path, - '-o', os.path.abspath(pprof_out_path), - '--addr2line', llvm_symbolizer_path] + pprof_converter_cmd = [ + sys.executable, pprof_converter_script, '-i', simpleperf_out_path, '-o', + os.path.abspath(pprof_out_path), '--ndk_path', + constants.ANDROID_NDK_ROOT + ] subprocess.check_output(pprof_converter_cmd, stderr=subprocess.STDOUT, cwd=processing_dir) finally: diff --git a/chromium/build/android/resource_sizes.py b/chromium/build/android/resource_sizes.py index 2067f51d0ca..a48a951d88d 100755 --- a/chromium/build/android/resource_sizes.py +++ b/chromium/build/android/resource_sizes.py @@ -80,7 +80,6 @@ _READELF_SIZES_METRICS = { '.dynsym', '.dynstr', '.dynamic', '.shstrtab', '.got', '.plt', '.got.plt', '.hash', '.gnu.hash' ], - 'bss': ['.bss', '.bss.rel.ro'], 'other': [ '.init_array', '.preinit_array', '.ctors', '.fini_array', '.comment', '.note.gnu.gold-version', '.note.crashpad.info', '.note.android.ident', @@ -104,12 +103,17 @@ def _RunReadelf(so_path, options, tool_prefix=''): def _ExtractLibSectionSizesFromApk(apk_path, lib_path, tool_prefix): with Unzip(apk_path, filename=lib_path) as extracted_lib_path: grouped_section_sizes = collections.defaultdict(int) - section_sizes = _CreateSectionNameSizeMap(extracted_lib_path, tool_prefix) + no_bits_section_sizes, section_sizes = _CreateSectionNameSizeMap( + extracted_lib_path, tool_prefix) for group_name, section_names in _READELF_SIZES_METRICS.iteritems(): for section_name in section_names: if section_name in section_sizes: grouped_section_sizes[group_name] += section_sizes.pop(section_name) + # Consider all NOBITS sections as .bss. + grouped_section_sizes['bss'] = sum( + v for v in no_bits_section_sizes.itervalues()) + # Group any unknown section headers into the "other" group. for section_header, section_size in section_sizes.iteritems(): sys.stderr.write('Unknown elf section header: %s\n' % section_header) @@ -121,12 +125,14 @@ def _ExtractLibSectionSizesFromApk(apk_path, lib_path, tool_prefix): def _CreateSectionNameSizeMap(so_path, tool_prefix): stdout = _RunReadelf(so_path, ['-S', '--wide'], tool_prefix) section_sizes = {} + no_bits_section_sizes = {} # Matches [ 2] .hash HASH 00000000006681f0 0001f0 003154 04 A 3 0 8 for match in re.finditer(r'\[[\s\d]+\] (\..*)$', stdout, re.MULTILINE): items = match.group(1).split() - section_sizes[items[0]] = int(items[4], 16) + target = no_bits_section_sizes if items[1] == 'NOBITS' else section_sizes + target[items[0]] = int(items[4], 16) - return section_sizes + return no_bits_section_sizes, section_sizes def _ParseManifestAttributes(apk_path): @@ -210,6 +216,22 @@ def _RunAaptDumpResources(apk_path): return output +def _ReportDfmSizes(zip_obj, report_func): + sizes = collections.defaultdict(int) + for info in zip_obj.infolist(): + # Looks for paths like splits/vr-master.apk, splits/vr-hi.apk. + name_parts = info.filename.split('/') + if name_parts[0] == 'splits' and len(name_parts) == 2: + name_parts = name_parts[1].split('-') + if len(name_parts) == 2: + module_name, config_name = name_parts + if module_name != 'base' and config_name[:-4] in ('master', 'hi'): + sizes[module_name] += info.file_size + + for module_name, size in sorted(sizes.iteritems()): + report_func('DFM_' + module_name, 'Size with hindi', size, 'bytes') + + class _FileGroup(object): """Represents a category that apk files can fall into.""" @@ -353,6 +375,7 @@ def _DoApkAnalysis(apk_filename, apks_path, tool_prefix, out_dir, report_func): with zipfile.ZipFile(apks_path) as z: hindi_apk_info = z.getinfo('splits/base-hi.apk') total_apk_size += hindi_apk_info.file_size + _ReportDfmSizes(z, report_func) total_install_size = total_apk_size total_install_size_android_go = total_apk_size @@ -435,14 +458,20 @@ def _DoApkAnalysis(apk_filename, apks_path, tool_prefix, out_dir, report_func): # file size. Also gets rid of compression. normalized_apk_size -= native_code.ComputeZippedSize() normalized_apk_size += native_code_unaligned_size + # Normalized dex size: Size within the zip + size on disk for Android Go + # devices running Android O (which ~= uncompressed dex size). + # Use a constant compression factor to account for fluctuations. + normalized_apk_size -= java_code.ComputeZippedSize() + normalized_apk_size += java_code.ComputeUncompressedSize() # Unaligned size should be ~= uncompressed size or something is wrong. # As of now, padding_fraction ~= .007 padding_fraction = -_PercentageDifference( native_code.ComputeUncompressedSize(), native_code_unaligned_size) - assert 0 <= padding_fraction < .02, 'Padding was: {}'.format(padding_fraction) - # Normalized dex size: size within the zip + size on disk for Android Go - # devices (which ~= uncompressed dex size). - normalized_apk_size += java_code.ComputeUncompressedSize() + assert 0 <= padding_fraction < .02, ( + 'Padding was: {} (file_size={}, sections_sum={})'.format( + padding_fraction, native_code.ComputeUncompressedSize(), + native_code_unaligned_size)) + if apks_path: # Locale normalization not needed when measuring only one locale. # E.g. a change that adds 300 chars of unstranslated strings would cause the diff --git a/chromium/build/android/test_runner.py b/chromium/build/android/test_runner.py index 443eb26221d..0f6cc5021d4 100755 --- a/chromium/build/android/test_runner.py +++ b/chromium/build/android/test_runner.py @@ -310,13 +310,21 @@ def AddEmulatorOptions(parser): parser = parser.add_argument_group('emulator arguments') parser.add_argument( - '--avd-name', - help='Run and manage the lifetime of an AVD with the given name.') - parser.add_argument( - '--emulator-home', + '--avd-config', type=os.path.realpath, - help='Emulator home directory ' - '(see ANDROID_EMULATOR_HOME: http://bit.ly/2K32oEy)') + help='Path to the avd config textpb. ' + '(See //tools/android/avd/proto/ for message definition' + ' and existing textpb files.)') + parser.add_argument( + '--emulator-count', + type=int, + default=1, + help='Number of emulators to use.') + parser.add_argument( + '--emulator-window', + action='store_true', + default=False, + help='Enable graphical window display on the emulator.') def AddGTestOptions(parser): @@ -414,6 +422,18 @@ def AddInstrumentationTestOptions(parser): '--apk-under-test', help='Path or name of the apk under test.') parser.add_argument( + '--module', + action='append', + dest='modules', + help='Specify Android App Bundle modules to install in addition to the ' + 'base module.') + parser.add_argument( + '--fake-module', + action='append', + dest='fake_modules', + help='Specify Android App Bundle modules to fake install in addition to ' + 'the real modules.') + parser.add_argument( '--coverage-dir', type=os.path.realpath, help='Directory in which to place all generated ' diff --git a/chromium/build/android/test_runner.pydeps b/chromium/build/android/test_runner.pydeps index 9b722c4027c..e4b118cc6bf 100644 --- a/chromium/build/android/test_runner.pydeps +++ b/chromium/build/android/test_runner.pydeps @@ -56,6 +56,7 @@ ../../third_party/catapult/devil/devil/android/sdk/aapt.py ../../third_party/catapult/devil/devil/android/sdk/adb_wrapper.py ../../third_party/catapult/devil/devil/android/sdk/build_tools.py +../../third_party/catapult/devil/devil/android/sdk/bundletool.py ../../third_party/catapult/devil/devil/android/sdk/intent.py ../../third_party/catapult/devil/devil/android/sdk/keyevent.py ../../third_party/catapult/devil/devil/android/sdk/shared_prefs.py @@ -168,7 +169,10 @@ pylib/local/device/local_device_linker_test_run.py pylib/local/device/local_device_monkey_test_run.py pylib/local/device/local_device_test_run.py pylib/local/emulator/__init__.py +pylib/local/emulator/avd.py pylib/local/emulator/local_emulator_environment.py +pylib/local/emulator/proto/__init__.py +pylib/local/emulator/proto/avd_pb2.py pylib/local/local_test_server_spawner.py pylib/local/machine/__init__.py pylib/local/machine/local_machine_environment.py diff --git a/chromium/build/android/update_verification.py b/chromium/build/android/update_verification.py index 40cb64ac5da..c2f32432bb6 100755 --- a/chromium/build/android/update_verification.py +++ b/chromium/build/android/update_verification.py @@ -49,8 +49,7 @@ def TestUpdate(device, old_apk, new_apk, app_data, package_name): # Restore command is not synchronous raw_input('Select "Restore my data" on the device. Then press enter to ' 'continue.') - device_path = device.GetApplicationPaths(package_name) - if not device_path: + if not device.IsApplicationInstalled(package_name): raise Exception('Expected package %s to already be installed. ' 'Package name might have changed!' % package_name) diff --git a/chromium/build/args/headless.gn b/chromium/build/args/headless.gn index 9a6bfd103cb..caa98430560 100644 --- a/chromium/build/args/headless.gn +++ b/chromium/build/args/headless.gn @@ -41,3 +41,4 @@ use_libpci = false use_pulseaudio = false use_udev = false rtc_use_pipewire = false +v8_enable_lazy_source_positions = false diff --git a/chromium/build/check_gn_headers_whitelist.txt b/chromium/build/check_gn_headers_whitelist.txt index 0d8df0ae60f..a6805c9f7b9 100644 --- a/chromium/build/check_gn_headers_whitelist.txt +++ b/chromium/build/check_gn_headers_whitelist.txt @@ -25,7 +25,6 @@ cc/input/event_listener_properties.h cc/input/scrollbar.h cc/input/scroller_size_metrics.h cc/layers/performance_properties.h -cc/layers/scrollbar_theme_painter.h cc/output/bsp_compare_result.h cc/resources/release_callback_impl.h cc/resources/return_callback.h diff --git a/chromium/build/chromeos/test_runner.py b/chromium/build/chromeos/test_runner.py index 9fbbf5e8fac..39d6fef3b00 100755 --- a/chromium/build/chromeos/test_runner.py +++ b/chromium/build/chromeos/test_runner.py @@ -350,7 +350,7 @@ class TastTest(RemoteTest): # See the link below for the format of these errors: # https://godoc.org/chromium.googlesource.com/chromiumos/platform/tast.git/src/chromiumos/tast/testing#Error for err in errors: - error_log += str(err['stack']) + '\n' + error_log += err['stack'].encode('utf-8') + '\n' error_log += ( "\nIf you're unsure why this test failed, consult the steps " 'outlined in\n%s\n' % TAST_DEBUG_DOC) @@ -450,7 +450,7 @@ class GTestTest(RemoteTest): ]) test_invocation = ( - './%s --test-launcher-shard-index=%d ' + 'LD_LIBRARY_PATH=./ ./%s --test-launcher-shard-index=%d ' '--test-launcher-total-shards=%d' % ( self._test_exe, self._test_launcher_shard_index, self._test_launcher_total_shards) diff --git a/chromium/build/config/BUILDCONFIG.gn b/chromium/build/config/BUILDCONFIG.gn index 59ab7810e71..f89e7e831b7 100644 --- a/chromium/build/config/BUILDCONFIG.gn +++ b/chromium/build/config/BUILDCONFIG.gn @@ -435,6 +435,7 @@ default_compiler_configs = [ "//build/config/compiler:no_rtti", "//build/config/compiler:runtime_library", "//build/config/compiler:thin_archive", + "//build/config/compiler:default_init_stack_vars", "//build/config/coverage:default_coverage", "//build/config/sanitizers:default_sanitizer_flags", ] diff --git a/chromium/build/config/OWNERS b/chromium/build/config/OWNERS index 082e53e0186..9eccd5b9f14 100644 --- a/chromium/build/config/OWNERS +++ b/chromium/build/config/OWNERS @@ -1,4 +1,4 @@ dpranke@chromium.org scottmg@chromium.org -per-file *jumbo*=bratell@opera.com +per-file *jumbo*=bratell.d@gmail.com diff --git a/chromium/build/config/aix/BUILD.gn b/chromium/build/config/aix/BUILD.gn index e3f21c39c5d..6c8749ab5c3 100644 --- a/chromium/build/config/aix/BUILD.gn +++ b/chromium/build/config/aix/BUILD.gn @@ -35,7 +35,6 @@ config("compiler") { ] cflags_cc = [ - "-std=gnu++11", "-fno-rtti", "-fno-exceptions", "-Wno-narrowing", diff --git a/chromium/build/config/android/config.gni b/chromium/build/config/android/config.gni index c1bfc874669..00764337442 100644 --- a/chromium/build/config/android/config.gni +++ b/chromium/build/config/android/config.gni @@ -182,10 +182,6 @@ if (is_android || is_chromeos) { # Set to false to disable the Errorprone compiler use_errorprone_java_compiler = true - # Enables Jacoco Java code coverage. Instruments classes during build to - # produce .exec files during runtime - jacoco_coverage = false - # Disables process isolation when building _incremental targets. # Required for Android M+ due to SELinux policies (stronger sandboxing). disable_incremental_isolated_processes = false @@ -234,17 +230,13 @@ if (is_android || is_chromeos) { android_sdk_platform_version = android_sdk_version } - # Speed up dexing using dx --incremental. - enable_incremental_dx = is_java_debug + # Reduce build time by using d8 incremental build. + enable_incremental_d8 = true # Use hashed symbol names to reduce JNI symbol overhead. use_hashed_jni_names = !is_java_debug } - # This should not be used for release builds since dx --incremental is known - # to not produce byte-for-byte identical output. - assert(!(enable_incremental_dx && !is_java_debug)) - # Path to where selected build variables are written to. android_build_vars = "$root_build_dir/build_vars.txt" diff --git a/chromium/build/config/android/internal_rules.gni b/chromium/build/config/android/internal_rules.gni index 7e8306a1292..c4d3afa5204 100644 --- a/chromium/build/config/android/internal_rules.gni +++ b/chromium/build/config/android/internal_rules.gni @@ -6,6 +6,7 @@ # Some projects (e.g. V8) do not have non-build directories DEPS'ed in. import("//build/config/android/config.gni") import("//build/config/android/copy_ex.gni") +import("//build/config/coverage/coverage.gni") import("//build/config/dcheck_always_on.gni") import("//build/config/python.gni") import("//build/config/sanitizers/sanitizers.gni") @@ -226,12 +227,15 @@ template("write_build_config") { args += [ "--annotation-processor-configs=$_rebased_processor_configs" ] } + # Dex path for library targets, or the the intermediate library for apks. if (defined(invoker.dex_path)) { args += [ "--dex-path", rebase_path(invoker.dex_path, root_build_dir), ] } + + # Dex path for the final apk. if (defined(invoker.final_dex_path)) { args += [ "--final-dex-path", @@ -661,6 +665,16 @@ template("test_runner_script") { "--suite", invoker.test_suite, ] + if (use_clang_coverage) { + # Set a default coverage output directory (can be overridden by user + # passing the same flag). + _rebased_coverage_dir = + rebase_path("$root_out_dir/coverage", root_build_dir) + executable_args += [ + "--coverage-dir", + "@WrappedPath(${_rebased_coverage_dir})", + ] + } } else if (_test_type == "instrumentation") { _test_apk = "@WrappedPath(@FileArg($_rebased_apk_build_config:deps_info:apk_path))" if (_incremental_install) { @@ -697,7 +711,7 @@ template("test_runner_script") { if (defined(invoker.proguard_enabled) && invoker.proguard_enabled) { executable_args += [ "--enable-java-deobfuscation" ] } - if (jacoco_coverage) { + if (use_jacoco_coverage) { # Set a default coverage output directory (can be overridden by user # passing the same flag). _rebased_coverage_dir = @@ -729,7 +743,7 @@ template("test_runner_script") { "--robolectric-runtime-deps-dir", "@WrappedPath(${_rebased_robolectric_runtime_deps_dir})", ] - if (jacoco_coverage) { + if (use_jacoco_coverage) { # Set a default coverage output directory (can be overridden by user # passing the same flag). _rebased_coverage_dir = @@ -796,8 +810,17 @@ template("test_runner_script") { } } - if (defined(invoker.command_line_args)) { - executable_args += invoker.command_line_args + if (defined(invoker.fake_modules)) { + foreach(fake_module, invoker.fake_modules) { + executable_args += [ + "--fake-module", + fake_module, + ] + } + } + + if (defined(invoker.extra_args)) { + executable_args += invoker.extra_args } } } @@ -1092,7 +1115,7 @@ if (enable_java_templates) { } args += [ "--classpath=@FileArg($_rebased_build_config:deps_info:java_runtime_classpath)" ] - if (jacoco_coverage) { + if (use_jacoco_coverage) { args += [ "--classpath", rebase_path("//third_party/jacoco/lib/jacocoagent.jar", @@ -1132,8 +1155,10 @@ if (enable_java_templates) { } } - assert(!(defined(invoker.input_jars) && _proguard_enabled), - "input_jars can't be specified when proguarding a dex.") + assert(!_proguard_enabled || !(defined(invoker.input_dex_filearg) || + defined(invoker.input_classes_filearg) || + defined(invoker.input_class_jars)), + "Cannot explicitly set inputs when proguarding a dex.") assert(!(defined(invoker.apply_mapping) && !_proguard_enabled), "apply_mapping can only be specified if proguard is enabled.") @@ -1142,13 +1167,6 @@ if (enable_java_templates) { _main_dex_rules = "//build/android/main_dex_classes.flags" } - if (!_proguarding_with_r8) { - _dexing_jars = [] - if (defined(invoker.input_jars)) { - _dexing_jars += invoker.input_jars - } - } - if (_proguard_enabled) { if (_proguarding_with_r8) { _proguard_output_path = invoker.output @@ -1157,7 +1175,6 @@ if (enable_java_templates) { } else { _proguard_output_path = invoker.output + ".proguard.jar" _proguard_target_name = "${target_name}__proguard" - _dexing_jars += [ _proguard_output_path ] } proguard(_proguard_target_name) { @@ -1233,6 +1250,18 @@ if (enable_java_templates) { } if (!_proguarding_with_r8) { + _input_class_jars = [] + if (defined(invoker.input_class_jars)) { + _input_class_jars = invoker.input_class_jars + } + if (_proguard_enabled) { + _input_class_jars += [ _proguard_output_path ] + } + if (_input_class_jars != []) { + _rebased_input_class_jars = + rebase_path(_input_class_jars, root_build_dir) + } + if (_enable_main_dex_list) { _main_dex_list_path = invoker.output + ".main_dex_list" _main_dex_list_target_name = "${target_name}__main_dex_list" @@ -1253,11 +1282,11 @@ if (enable_java_templates) { _dx = "$android_sdk_build_tools/lib/dx.jar" _r8 = "//third_party/r8/lib/r8.jar" inputs = [ - _main_dex_rules, - _dx, - _r8, - _shrinked_android, - ] + _main_dex_rules, + _dx, + _r8, + _shrinked_android, + ] + _input_class_jars outputs = [ _main_dex_list_path, @@ -1297,14 +1326,17 @@ if (enable_java_templates) { ] } - if (defined(invoker.input_jar_classpath)) { + if (defined(invoker.input_classes_filearg)) { inputs += [ invoker.build_config ] - args += [ "--inputs=@FileArg(${invoker.input_jar_classpath})" ] - } else { - inputs += _dexing_jars - if (_dexing_jars != []) { - args += rebase_path(_dexing_jars, root_build_dir) - } + args += + [ "--class-inputs-filearg=${invoker.input_classes_filearg}" ] + } + if (defined(invoker.main_dex_list_input_classes_filearg)) { + inputs += [ invoker.build_config ] + args += [ "--class-inputs-filearg=${invoker.main_dex_list_input_classes_filearg}" ] + } + if (_input_class_jars != []) { + args += [ "--class-inputs=${_rebased_input_class_jars}" ] } } } @@ -1331,6 +1363,17 @@ if (enable_java_templates) { if (_proguard_enabled) { deps += [ ":${_proguard_target_name}" ] + } else if (enable_incremental_d8) { + # Don't use incremental dexing for ProGuarded inputs as a precaution. + args += [ + "--incremental-dir", + rebase_path("$target_out_dir/$target_name", root_build_dir), + ] + if (is_java_debug) { + # The performance of incremental install is unbearable if each + # lib.dex.jar file has multiple classes.dex files in it. + args += [ "--merge-incrementals" ] + } } if (_enable_multidex) { @@ -1345,14 +1388,17 @@ if (enable_java_templates) { } } - if (defined(invoker.input_dex_classpath)) { + if (defined(invoker.input_dex_filearg)) { inputs += [ invoker.build_config ] - args += [ "--input-list=@FileArg(${invoker.input_dex_classpath})" ] + args += [ "--dex-inputs-filearg=${invoker.input_dex_filearg}" ] } - - inputs += _dexing_jars - if (_dexing_jars != []) { - args += rebase_path(_dexing_jars, root_build_dir) + if (defined(invoker.input_classes_filearg)) { + inputs += [ invoker.build_config ] + args += [ "--class-inputs-filearg=${invoker.input_classes_filearg}" ] + } + if (_input_class_jars != []) { + inputs += _input_class_jars + args += [ "--class-inputs=${_rebased_input_class_jars}" ] } if (defined(invoker.dexlayout_profile)) { @@ -1393,11 +1439,10 @@ if (enable_java_templates) { ] } - _d8_path = "//third_party/r8/lib/d8.jar" - inputs += [ _d8_path ] + inputs += [ _r8_path ] args += [ - "--d8-jar-path", - rebase_path(_d8_path, root_build_dir), + "--r8-jar-path", + rebase_path(_r8_path, root_build_dir), ] } } @@ -1436,6 +1481,12 @@ if (enable_java_templates) { "--jacococli-jar", rebase_path(_jacococli_jar, root_build_dir), ] + if (coverage_instrumentation_input_file != "") { + args += [ + "--files-to-instrument", + rebase_path(coverage_instrumentation_input_file, root_build_dir), + ] + } } } @@ -1487,13 +1538,9 @@ if (enable_java_templates) { _desugar = defined(invoker.supports_android) && invoker.supports_android _jacoco_instrument = invoker.jacoco_instrument - _enable_split_compat = defined(invoker.split_compat_class_names) - _enable_class_deps_output = defined(invoker.enable_class_deps_output) _enable_bytecode_rewriter = - _enable_assert || _enable_custom_resources || - _enable_thread_annotations || _enable_split_compat || - _enable_class_deps_output + _enable_assert || _enable_custom_resources || _enable_thread_annotations _is_prebuilt = defined(invoker.is_prebuilt) && invoker.is_prebuilt _enable_bytecode_checks = !defined(invoker.enable_bytecode_checks) || invoker.enable_bytecode_checks @@ -1576,14 +1623,6 @@ if (enable_java_templates) { if (_enable_bytecode_checks) { args += [ "--enable-check-class-path" ] } - if (_enable_split_compat) { - args += [ "--split-compat-class-names" ] + - invoker.split_compat_class_names - } - if (_enable_class_deps_output) { - args += [ "--enable-class-deps-output" ] + - [ invoker.enable_class_deps_output ] - } args += [ "--direct-classpath-jars", "@FileArg($_rebased_build_config:javac:classpath)", @@ -2026,16 +2065,10 @@ if (enable_java_templates) { # post_process_script: (optional) # # package_name: (optional) - # Name of the package for the purpose of assigning package ID. - # - # package_name_to_id_mapping: (optional) - # List containing mapping from package names to package IDs. It will be - # used to determine which package ID to assign if package_name variable - # was passed in. + # Name of the package for the purpose of creating R class. # # package_id: (optional) - # Use a custom package ID in resource IDs (same purpose as - # package_name_to_id_mapping) + # Use a custom package ID in resource IDs. # # arsc_package_name: (optional) # Use this package name in the arsc file rather than the package name @@ -2069,10 +2102,6 @@ if (enable_java_templates) { # Path for the generated map between original resource paths and # shortend resource paths. # - # srcjar_path: (optional) - # Path to a generated .srcjar containing the generated R.java sources - # for all dependent resource libraries. - # # proguard_file: (optional) # Path to proguard configuration file for this apk target. # @@ -2086,10 +2115,12 @@ if (enable_java_templates) { if (defined(invoker.optimized_arsc_output)) { _optimized_arsc_output = invoker.optimized_arsc_output } - _srcjar_path = invoker.srcjar_path + _final_srcjar_path = "${target_gen_dir}/${target_name}.srcjar" + _intermediate_srcjar_path = _final_srcjar_path if (defined(invoker.post_process_script)) { _compile_resources_target_name = "${target_name}__intermediate" - _srcjar_path = "${_srcjar_path}.intermediate.srcjar" + _intermediate_srcjar_path = + "${target_gen_dir}/${target_name}.intermediate.srcjar" _intermediate_path = get_path_info(_arsc_output, "dir") + "/" + get_path_info(_arsc_output, "name") + ".intermediate.ap_" @@ -2144,13 +2175,13 @@ if (enable_java_templates) { inputs += [ invoker.android_manifest ] outputs = [ - _srcjar_path, + _intermediate_srcjar_path, ] args += [ "--android-manifest", rebase_path(invoker.android_manifest, root_build_dir), "--srcjar-out", - rebase_path(_srcjar_path, root_build_dir), + rebase_path(_intermediate_srcjar_path, root_build_dir), ] if (defined(invoker.no_xml_namespaces) && invoker.no_xml_namespaces) { args += [ "--no-xml-namespaces" ] @@ -2271,8 +2302,8 @@ if (enable_java_templates) { } if (defined(invoker.package_name)) { args += [ - "--package-name=${invoker.package_name}", - "--package-name-to-id-mapping=${invoker.package_name_to_id_mapping}", + "--package-name", + invoker.package_name, ] } if (defined(invoker.arsc_package_name)) { @@ -2396,9 +2427,9 @@ if (enable_java_templates) { "--depfile", rebase_path(depfile, root_build_dir), "--srcjar-in", - rebase_path(_srcjar_path, root_build_dir), + rebase_path(_intermediate_srcjar_path, root_build_dir), "--srcjar-out", - rebase_path(invoker.srcjar_path, root_build_dir), + rebase_path(_final_srcjar_path, root_build_dir), ] if (defined(_optimized_arsc_output)) { _input_apk = _optimized_arsc_output @@ -2423,14 +2454,14 @@ if (enable_java_templates) { } inputs = [ _input_apk, - _srcjar_path, + _intermediate_srcjar_path, ] if (defined(invoker.post_process_script_inputs)) { inputs += invoker.post_process_script_inputs } outputs = [ _output_apk, - invoker.srcjar_path, + _final_srcjar_path, ] public_deps = [ ":${_compile_resources_target_name}", @@ -2789,7 +2820,7 @@ if (enable_java_templates) { if (defined(_dex_path)) { dex_path = - get_label_info(_dex_target, "target_gen_dir") + "/bootstrap.dex" + get_label_info(_dex_target, "target_out_dir") + "/bootstrap.dex" } native_libs = _native_libs_even_when_incremental @@ -3091,7 +3122,7 @@ if (enable_java_templates) { # Chromium-specific unless it is in a 'chromium' sub-directory). # jacoco_never_instrument: Optional. If provided, whether to forbid # instrumentation with the Jacoco coverage processor. If not provided, - # this is controlled by the global jacoco_coverage build arg variable + # this is controlled by the global use_jacoco_coverage build arg variable # and only used for non-test Chromium code. # include_android_sdk: Optional. Whether or not the android SDK dep # should be added to deps. Defaults to true for non-system libraries @@ -3257,7 +3288,7 @@ if (enable_java_templates) { } if (_supports_android) { - _dex_path = "$target_gen_dir/$_main_target_name.dex.jar" + _dex_path = "$target_out_dir/$_main_target_name.dex.jar" if (defined(invoker.dex_path)) { _dex_path = invoker.dex_path } @@ -3311,7 +3342,8 @@ if (enable_java_templates) { if (defined(_final_jar_path)) { _jacoco_instrument = - jacoco_coverage && _chromium_code && _java_files != [] && + use_jacoco_coverage && _chromium_code && _java_files != [] && + !_is_java_binary && !_is_annotation_processor && (!defined(invoker.testonly) || !invoker.testonly) if (defined(invoker.jacoco_never_instrument)) { _jacoco_instrument = @@ -3597,10 +3629,8 @@ if (enable_java_templates) { [ "enable_bytecode_checks", "enable_bytecode_rewriter", - "enable_class_deps_output", "jar_excluded_patterns", "jar_included_patterns", - "split_compat_class_names", ]) is_prebuilt = _is_prebuilt supports_android = _supports_android @@ -3620,11 +3650,15 @@ if (enable_java_templates) { if (defined(_dex_path)) { dex("${target_name}__dex") { - input_jars = [ _final_jar_path ] + input_class_jars = [ _final_jar_path ] output = _dex_path deps = [ ":$_process_prebuilt_target_name", ] + + # Should never need multidex when compiling individual libraries. + # Disabling multidex saves on having to create a main_dex_list. + enable_multidex = false } _accumulated_public_deps += [ ":${target_name}__dex" ] } diff --git a/chromium/build/config/android/linker_version_script.gni b/chromium/build/config/android/linker_version_script.gni index a764df37c5d..c7cc4fb0162 100644 --- a/chromium/build/config/android/linker_version_script.gni +++ b/chromium/build/config/android/linker_version_script.gni @@ -27,6 +27,11 @@ template("generate_linker_version_script") { args += [ "--export-java-symbols" ] } + if (defined(invoker.export_feature_registrations) && + invoker.export_feature_registrations) { + args += [ "--export-feature-registrations" ] + } + if (defined(invoker.export_symbol_whitelist_files)) { foreach(file_, invoker.export_symbol_whitelist_files) { inputs += [ file_ ] diff --git a/chromium/build/config/android/rules.gni b/chromium/build/config/android/rules.gni index c99d7820ca0..70b5c29ce26 100644 --- a/chromium/build/config/android/rules.gni +++ b/chromium/build/config/android/rules.gni @@ -192,11 +192,12 @@ if (enable_java_templates) { "//base/android/jni_generator/jni_generator_helper.h" _jni_generator_include_deps = [ # Using //base/android/jni_generator/jni_generator_helper.h introduces - # a dependency on debugging_buildflags indirectly through + # a dependency on buildflags targets indirectly through # base/android/jni_android.h, which is part of the //base target. # This can't depend directly on //base without causing a dependency # cycle, though. "//base:debugging_buildflags", + "//base:logging_buildflags", ] } @@ -372,14 +373,16 @@ if (enable_java_templates) { template("generate_jni_registration") { action_with_pydeps(target_name) { forward_variables_from(invoker, [ "testonly" ]) - _build_config = get_label_info(invoker.target, "target_gen_dir") + "/" + - get_label_info(invoker.target, "name") + ".build_config" + _build_config = get_label_info("${invoker.target}($default_toolchain)", + "target_gen_dir") + "/" + + get_label_info("${invoker.target}($default_toolchain)", + "name") + ".build_config" _rebased_build_config = rebase_path(_build_config, root_build_dir) _srcjar_output = "$target_gen_dir/$target_name.srcjar" script = "//base/android/jni_generator/jni_registration_generator.py" deps = [ - "${invoker.target}$build_config_target_suffix", + "${invoker.target}$build_config_target_suffix($default_toolchain)", ] inputs = [ _build_config, @@ -1401,7 +1404,6 @@ if (enable_java_templates) { compile_resources(_compile_resources_target) { deps = _deps + [ ":$_build_config_target_name" ] build_config = _build_config - srcjar_path = "${target_gen_dir}/${target_name}.srcjar" if (defined(_package_name)) { rename_manifest_package = _package_name } @@ -1757,6 +1759,8 @@ if (enable_java_templates) { # android_manifest: Path to AndroidManifest.xml (optional). # native_libraries: list of native libraries (optional). # direct_deps_only: Do not recurse on deps. (optional, defaults false). + # jar_excluded_patterns (optional): List of globs for paths to exclude. + # jar_included_patterns (optional): List of globs for paths to include. # # Example # dist_aar("my_aar") { @@ -1841,6 +1845,17 @@ if (enable_java_templates) { "--abi=$android_app_abi", ] } + if (defined(invoker.jar_excluded_patterns)) { + args += [ "--jar-excluded-globs=${invoker.jar_excluded_patterns}" ] + } + if (defined(invoker.jar_included_patterns)) { + args += [ "--jar-included-globs=${invoker.jar_included_patterns}" ] + } + if (defined(invoker.resource_included_patterns)) { + args += [ + "--resource-included-globs=${invoker.resource_included_patterns}", + ] + } } } @@ -1974,6 +1989,10 @@ if (enable_java_templates) { defines += [ "_IS_CHROME_BRANDED" ] } + if (defined(invoker.is_bundle_module) && invoker.is_bundle_module) { + defines += [ "_IS_BUNDLE" ] + } + if (invoker.use_final_fields) { forward_variables_from(invoker, [ @@ -2129,8 +2148,8 @@ if (enable_java_templates) { template("android_apk_or_module") { forward_variables_from(invoker, [ "testonly" ]) assert(defined(invoker.android_manifest)) - _gen_dir = "$target_gen_dir/$target_name" - _base_path = "$_gen_dir/$target_name" + _out_dir = "$target_out_dir/$target_name" + _base_path = "$_out_dir/$target_name" _build_config = "$target_gen_dir/$target_name.build_config" _build_config_target = "$target_name$build_config_target_suffix" @@ -2146,7 +2165,6 @@ if (enable_java_templates) { # JUnit tests use resource zip files. These must not be put in gen/ # directory or they will not be available to tester bots. _jar_path = "$_base_path.jar" - _lib_dex_path = "$_base_path.dex.jar" _template_name = target_name _is_bundle_module = @@ -2158,7 +2176,7 @@ if (enable_java_templates) { _enable_multidex = !defined(invoker.enable_multidex) || invoker.enable_multidex - _final_dex_path = "$_gen_dir/classes.dex.zip" + _final_dex_path = "$_out_dir/classes.dex.zip" if (!_is_bundle_module) { _final_apk_path = invoker.final_apk_path @@ -2357,7 +2375,7 @@ if (enable_java_templates) { defined(invoker.static_library_dependent_targets) && _proguard_enabled if (_is_static_library_provider) { _static_library_sync_dex_path = - "$_gen_dir/static_library_synchronized_proguard.classes.dex.zip" + "$_out_dir/static_library_synchronized_proguard.classes.dex.zip" _resource_ids_provider_deps = [] foreach(_target, invoker.static_library_dependent_targets) { if (_target.is_resource_ids_provider) { @@ -2457,8 +2475,8 @@ if (enable_java_templates) { "manifest_package", "max_sdk_version", "no_xml_namespaces", + "package_id", "package_name", - "package_name_to_id_mapping", "png_to_webp", "r_java_root_package_name", "resource_blacklist_exceptions", @@ -2489,7 +2507,6 @@ if (enable_java_templates) { if (defined(invoker.post_process_package_resources_script)) { post_process_script = invoker.post_process_package_resources_script } - srcjar_path = "${target_gen_dir}/${target_name}.srcjar" r_text_out_path = _compile_resources_rtxt_out emit_ids_out_path = _compile_resources_emit_ids_out size_info_path = _res_size_info_path @@ -2687,7 +2704,11 @@ if (enable_java_templates) { if (_generate_buildconfig_java) { generate_build_config_srcjar("${_template_name}__build_config_srcjar") { - forward_variables_from(invoker, [ "min_sdk_version" ]) + forward_variables_from(invoker, + [ + "is_bundle_module", + "min_sdk_version", + ]) use_final_fields = true enable_multidex = _enable_multidex if (defined(invoker.product_version_resources_dep)) { @@ -2761,7 +2782,6 @@ if (enable_java_templates) { "base_module_target", "chromium_code", "classpath_deps", - "enable_class_deps_output", "jacoco_never_instrument", "java_files", "javac_args", @@ -2794,7 +2814,6 @@ if (enable_java_templates) { deps = _deps srcjar_deps = _srcjar_deps final_jar_path = _jar_path - dex_path = _lib_dex_path final_dex_path = _final_dex_path if (_is_bundle_module) { @@ -2900,12 +2919,10 @@ if (enable_java_templates) { deps += _deps + [ ":$_compile_resources_target" ] proguard_mapping_path = _proguard_mapping_path } else { - input_jars = [ _lib_dex_path ] - input_dex_classpath = - "${_rebased_build_config}:final_dex:dependency_dex_files" + input_dex_filearg = + "@FileArg(${_rebased_build_config}:final_dex:all_dex_files)" if (_enable_main_dex_list) { - input_jar_classpath = - "${_rebased_build_config}:deps_info:java_runtime_classpath" + main_dex_list_input_classes_filearg = "@FileArg(${_rebased_build_config}:deps_info:java_runtime_classpath)" } } @@ -3190,13 +3207,10 @@ if (enable_java_templates) { rebase_path(_final_apk_path_no_ext, root_build_dir) _rebased_incremental_install_json_path = rebase_path(_incremental_install_json_path, root_build_dir) - _rebased_lib_dex_path = rebase_path(_lib_dex_path, root_build_dir) - _dex_arg_key = "${_rebased_build_config}:final_dex:dependency_dex_files" args = [ "--apk-path=${_rebased_apk_path_no_ext}_incremental.apk", "--output-path=$_rebased_incremental_install_json_path", - "--dex-file=$_rebased_lib_dex_path", - "--dex-file-list=@FileArg($_dex_arg_key)", + "--dex-file=@FileArg($_rebased_build_config:final_dex:all_dex_files)", ] if (_proguard_enabled) { args += [ "--show-proguard-warning" ] @@ -3496,7 +3510,6 @@ if (enable_java_templates) { "data_deps", "deps", "enable_chromium_linker_tests", - "enable_class_deps_output", "enable_multidex", "generate_buildconfig_java", "generate_final_jni", @@ -3518,8 +3531,8 @@ if (enable_java_templates) { "native_lib_version_rule", "negative_main_dex_globs", "no_xml_namespaces", + "package_id", "package_name", - "package_name_to_id_mapping", "png_to_webp", "product_version_resources_dep", "proguard_configs", @@ -3567,13 +3580,14 @@ if (enable_java_templates) { # The following args are optional: # apk_under_test: The target being tested. # additional_apks: Additional targets to install on device. - # command_line_args: Command line arguments to set for APK under test. # data: List of runtime data file dependencies. # data_deps: List of non-linked dependencies. # deps: List of private dependencies. + # extra_args: Extra arguments set for test runner. # ignore_all_data_deps: Don't build data_deps and additional_apks. # modules: Extra dynamic feature modules to install for test target. Can # only be used if |apk_under_test| is an Android app bundle. + # fake_modules: Similar to |modules| but fake installed instead. # never_incremental: Disable incremental builds. # proguard_enabled: Enable proguard # public_deps: List of public dependencies @@ -3613,10 +3627,11 @@ if (enable_java_templates) { [ "additional_apks", "apk_under_test", - "command_line_args", "data", "data_deps", "deps", + "extra_args", + "fake_modules", "ignore_all_data_deps", "modules", "proguard_enabled", @@ -3821,10 +3836,10 @@ if (enable_java_templates) { [ "additional_apks", "apk_under_test", - "command_line_args", "data", "data_deps", "deps", + "extra_args", "ignore_all_data_deps", "modules", "never_incremental", @@ -4100,6 +4115,7 @@ if (enable_java_templates) { # any apk that depends on this library. # ignore_aidl: Whether to ignore .aidl files found with the .aar. # ignore_assets: Whether to ignore assets found in the .aar. + # ignore_manifest: Whether to ignore creating manifest. # ignore_native_libraries: Whether to ignore .so files found in the .aar. # See also extract_native_libraries. # ignore_proguard_configs: Whether to ignore proguard configs. @@ -4107,10 +4123,6 @@ if (enable_java_templates) { # extract_native_libraries: Whether to extract .so files found in the .aar. # If the file contains .so, either extract_native_libraries or # ignore_native_libraries must be set. - # split_compat_class_names: Names of the classes that will have their - # bytecode rewritten to inject the call to SplitCompat.install(). - # Used to make dependencies compatible with SplitCompat to immediately - # access resources brought in by the modules. # create_srcjar: If false, does not create an R.java file. # TODO(jbudorick@): remove this arguments after crbug.com/522043 is fixed. # requires_android: Whether this target can only be used for compiling @@ -4129,6 +4141,8 @@ if (enable_java_templates) { _unpack_target_name = "${target_name}__unpack_aar" _ignore_aidl = defined(invoker.ignore_aidl) && invoker.ignore_aidl _ignore_assets = defined(invoker.ignore_assets) && invoker.ignore_assets + _ignore_manifest = + defined(invoker.ignore_manifest) && invoker.ignore_manifest _ignore_native_libraries = defined(invoker.ignore_native_libraries) && invoker.ignore_native_libraries _ignore_proguard_configs = defined(invoker.ignore_proguard_configs) && @@ -4193,10 +4207,10 @@ if (enable_java_templates) { inputs = [ invoker.aar_path, ] - outputs = [ - "${_output_path}/AndroidManifest.xml", - ] - + outputs = [] + if (!_ignore_manifest) { + outputs += [ "${_output_path}/AndroidManifest.xml" ] + } if (!_strip_resources && _scanned_files.has_r_text_file) { # Certain packages, in particular Play Services have no R.txt even # though its presence is mandated by AAR spec. Such packages cause @@ -4231,7 +4245,8 @@ if (enable_java_templates) { (_scanned_files.resources != [] || _scanned_files.has_r_text_file) # Create the android_resources target for resources. - if (_has_unignored_resources || !_scanned_files.is_manifest_empty) { + if (_has_unignored_resources || + (!_scanned_files.is_manifest_empty && !_ignore_manifest)) { _res_target_name = "${target_name}__res" android_resources(_res_target_name) { forward_variables_from(invoker, @@ -4246,7 +4261,9 @@ if (enable_java_templates) { } deps += [ ":$_unpack_target_name" ] android_manifest_dep = ":$_unpack_target_name" - android_manifest = "${_output_path}/AndroidManifest.xml" + if (!_ignore_manifest) { + android_manifest = "${_output_path}/AndroidManifest.xml" + } resource_dirs = [] generated_resource_dirs = [] if (!_strip_resources && _scanned_files.resources != []) { @@ -4302,7 +4319,6 @@ if (enable_java_templates) { "jar_included_patterns", "proguard_configs", "requires_android", - "split_compat_class_names", "testonly", ]) if (!defined(deps)) { @@ -4372,13 +4388,6 @@ if (enable_java_templates) { # module name (which cannot be 'base', since this is reserved for the # base module), and an 'apk_target' field that specified the # corresponding android_apk target name the module is modeled on. - # A scope may have an additional field, 'proguard_async', that - # specifies whether or not the module is asynchronous. This field should - # be set to true if the module is asynchronous, and set to false or left - # undefined otherwise. - # Async modules are those that are proguarded in a separate build step. - # This ensures that changes to these modules do not change the base - # module. # # enable_language_splits: Optional. If true, enable APK splits based # on languages. @@ -4461,7 +4470,7 @@ if (enable_java_templates) { _rebased_base_module_build_config = rebase_path(_base_module_build_config, root_build_dir) - _sync_modules = [ + _modules = [ { name = "base" module_target = invoker.base_module_target @@ -4470,8 +4479,6 @@ if (enable_java_templates) { }, ] - _async_modules = [] - _proguard_enabled = defined(invoker.proguard_enabled) && invoker.proguard_enabled _enable_multidex = @@ -4492,10 +4499,7 @@ if (enable_java_templates) { _sync_dex_target = "${target_name}__sync_dex" _sync_dex_target_dep = ":$_sync_dex_target" } - - # TODO(crbug.com/938635): Combine synchronous proguard run mapping file - # and asynchronous proguard run mapping files into single .mapping. - _sync_proguard_mapping_path = "${_bundle_path}.mapping" + _proguard_mapping_path = "${_bundle_path}.mapping" } assert(_proguard_enabled || !defined(invoker.enable_multidex), @@ -4505,11 +4509,6 @@ if (enable_java_templates) { _module_count = 0 not_needed([ "_module_count" ]) - # Define unique package for each async proguarding run. - _async_package_number = 1 - - not_needed([ "_async_package_number" ]) - foreach(_module, invoker.extra_modules) { _module_count += 1 assert(defined(_module.name), @@ -4527,68 +4526,23 @@ if (enable_java_templates) { "$_module_target_gen_dir/${_module_target_name}.build_config" _module.build_config_target = "$_module_target$build_config_target_suffix" - - if (defined(_module.proguard_async) && _module.proguard_async) { - if (_proguard_enabled) { - # Use asynchronous proguarding for async modules. - _async_proguard_mapping_path = - "${_bundle_path}_${_module.name}.mapping" - - _dex_zip = "${target_out_dir}/${target_name}/${target_name}_${_module.name}_dex.zip" - _module.dex_path = _dex_zip - - # Give unique name to each async dex target using module name. - _async_dex_target = "${target_name}_${_module.name}_dex" - - dex(_async_dex_target) { - enable_multidex = _enable_multidex - proguard_enabled = true - proguard_mapping_path = _async_proguard_mapping_path - forward_variables_from(invoker, - [ - "proguard_jar_path", - "min_sdk_version", - ]) - build_config = _module.build_config - repackage_classes = "ap${_async_package_number}" - - # TODO(https://crbug.com/952858): R8 currently doesn't handle - # applying mapping files. - # Pass mapping file of synchronous proguarding run to async - # module proguarding runs to preserve compatibility. - # apply_mapping = _sync_proguard_mapping_path - - deps = [ - _module.module_target, - _sync_dex_target_dep, - ] - - output = _dex_zip - } - _module.async_dex_target = _async_dex_target - _async_package_number += 1 - } - - _async_modules += [ _module ] - } else { - _sync_modules += [ _module ] - } + _modules += [ _module ] } } # Make build config, which is required for synchronized proguarding. - _sync_module_java_targets = [] - _sync_module_build_configs = [] - _sync_module_targets = [] - foreach(_module, _sync_modules) { - _sync_module_targets += [ _module.module_target ] - _sync_module_java_targets += [ "${_module.module_target}__java" ] - _sync_module_build_configs += [ _module.build_config ] + _module_java_targets = [] + _module_build_configs = [] + _module_targets = [] + foreach(_module, _modules) { + _module_targets += [ _module.module_target ] + _module_java_targets += [ "${_module.module_target}__java" ] + _module_build_configs += [ _module.build_config ] } # Used to expose the module Java targets of the bundle. group("${target_name}__java") { - deps = _sync_module_java_targets + deps = _module_java_targets } group("${target_name}__compile_resources") { deps = [ @@ -4613,14 +4567,11 @@ if (enable_java_templates) { "${target_gen_dir}/${target_name}/${target_name}__unsplit_dex.zip" write_build_config(_build_config_target) { - # We don't want async modules to be proguarded synchronously, so we leave - # them out of possible_config_deps. type = "android_app_bundle" - possible_config_deps = - _sync_module_targets + [ proguard_android_sdk_dep_ ] + possible_config_deps = _module_targets + [ proguard_android_sdk_dep_ ] build_config = _build_config proguard_enabled = _proguard_enabled - module_build_configs = _sync_module_build_configs + module_build_configs = _module_build_configs final_dex_path = _unsplit_dex_zip if (_proguard_enabled) { @@ -4661,7 +4612,7 @@ if (enable_java_templates) { proguard_expectations_file = _proguard_expectations_file } - deps = _sync_module_java_targets + [ ":$_build_config_target" ] + deps = _module_java_targets + [ ":$_build_config_target" ] output = _unsplit_dex_zip } } @@ -4669,30 +4620,25 @@ if (enable_java_templates) { _dexsplitter_target = "${target_name}__dexsplitter" dexsplitter(_dexsplitter_target) { input_dex_zip = _unsplit_dex_zip - proguard_mapping = _sync_proguard_mapping_path - all_modules = _sync_modules + proguard_mapping = _proguard_mapping_path + all_modules = _modules deps = [ ":$_build_config_target", _sync_dex_target_dep, - ] + _sync_module_java_targets + ] + _module_java_targets } } - # Merge async and sync module scopes. - _all_modules = _sync_modules + _async_modules - _all_create_module_targets = [] _all_module_zip_paths = [] _all_module_build_configs = [] - foreach(_module, _all_modules) { + foreach(_module, _modules) { _module_target = _module.module_target _module_build_config = _module.build_config _module_build_config_target = _module.build_config_target if (!_proguard_enabled) { _dex_target_for_module = "${_module_target}__final_dex" - } else if (defined(_module.dex_path)) { - _dex_target_for_module = ":${_module.async_dex_target}" } else { _dex_target_for_module = ":$_dexsplitter_target" } @@ -4709,12 +4655,6 @@ if (enable_java_templates) { build_config = _module_build_config module_zip_path = _module_zip_path - # If module is async, use defined dex_path directly rather than - # build config FileArg. - if (defined(_module.dex_path)) { - dex_path = _module.dex_path - } - deps = [ _dex_target_for_module, _module_build_config_target, @@ -4770,9 +4710,6 @@ if (enable_java_templates) { outputs = [ _bundle_path, ] - data = [ - _bundle_path, - ] deps = _all_create_module_targets + [ ":$_build_config_target" ] args = [ "--out-bundle=$_rebased_bundle_path", @@ -4806,7 +4743,7 @@ if (enable_java_templates) { ] } - foreach(_module, _all_modules) { + foreach(_module, _modules) { _rebased_build_config = rebase_path(_module.build_config, root_build_dir) args += [ @@ -4825,10 +4762,7 @@ if (enable_java_templates) { # (have proguard enabled). if (_proguard_enabled) { # Merge all module targets to obtain size info files for all targets. - _all_module_targets = _sync_module_targets - foreach(_async_module, _async_modules) { - _all_module_targets += [ _async_module.module_target ] - } + _all_module_targets = _module_targets _size_info_target = "${target_name}__size_info" create_size_info_files(_size_info_target) { @@ -4859,6 +4793,7 @@ if (enable_java_templates) { _bundle_wrapper_script_path, _android_aapt2_path, _keystore_path, + _bundle_path, ] data_deps = [ "//build/android:bundle_wrapper_script_py", @@ -4898,14 +4833,13 @@ if (enable_java_templates) { ] } - # TODO(crbug.com/938635): Combine async module mapping paths with the sync one. if (_proguard_enabled) { args += [ "--proguard-mapping-path", - rebase_path(_sync_proguard_mapping_path, root_build_dir), + rebase_path(_proguard_mapping_path, root_build_dir), ] data_deps += [ "//build/android/stacktrace:java_deobfuscate" ] - data += [ _sync_proguard_mapping_path ] + data += [ _proguard_mapping_path ] } } @@ -4928,6 +4862,9 @@ if (enable_java_templates) { outputs = [ _apks_path, ] + data = [ + _apks_path, + ] args = [ "--bundle", _rebased_bundle_path, diff --git a/chromium/build/config/chromecast_build.gni b/chromium/build/config/chromecast_build.gni index 3702acc7514..b2640f55878 100644 --- a/chromium/build/config/chromecast_build.gni +++ b/chromium/build/config/chromecast_build.gni @@ -41,9 +41,10 @@ declare_args() { } declare_args() { - # True to enable the cast renderer. It is enabled by default for non-android - # builds. - enable_cast_renderer = is_chromecast && !is_android + # True to enable the cast renderer. It is enabled by default for linux and + # android audio only builds. + enable_cast_renderer = + is_chromecast && (is_linux || (is_cast_audio_only && is_android)) } # Configures media options for cast. See media/media_options.gni @@ -51,22 +52,30 @@ cast_mojo_media_services = [] cast_mojo_media_host = "none" if (enable_cast_renderer) { + # In this path, mojo media services are hosted in two processes: + # 1. "renderer" and "cdm" run in browser process. This is hard coded in the + # code. + # 2. "video_decoder" runs in the process specified by "cast_mojo_media_host". cast_mojo_media_services = [ "cdm", "renderer", ] - cast_mojo_media_host = "browser" -} else if (is_android) { + + if (!is_cast_audio_only) { + cast_mojo_media_services += [ "video_decoder" ] + } + + cast_mojo_media_host = "gpu" +} else if (is_android && !is_cast_audio_only) { + # On Android, all the enabled mojo media services run in the process specified + # by "cast_mojo_media_host". cast_mojo_media_services = [ "cdm", "audio_decoder", + "video_decoder", ] - if (is_cast_audio_only) { - cast_mojo_media_host = "browser" - } else { - cast_mojo_media_services += [ "video_decoder" ] - cast_mojo_media_host = "gpu" - } + + cast_mojo_media_host = "gpu" } # Assert that Chromecast is being built for a supported platform. diff --git a/chromium/build/config/chromeos/rules.gni b/chromium/build/config/chromeos/rules.gni index d5b60909b8a..77777a6e424 100644 --- a/chromium/build/config/chromeos/rules.gni +++ b/chromium/build/config/chromeos/rules.gni @@ -13,7 +13,8 @@ declare_args() { declare_args() { # Determines if we're running tests on VMs or on devices. # TODO(crbug.com/866062): Is there a better way to do this? - cros_is_vm = cros_board == "amd64-generic" || cros_board == "betty" + cros_is_vm = cros_board == "amd64-generic" || cros_board == "betty" || + cros_board == "betty-pi-arc" } # Ensure that if one is set, the other is as well. @@ -209,7 +210,8 @@ template("tast_test") { # The following expression filters out all non-critical tests. See the link # below for more details: # https://chromium.googlesource.com/chromiumos/platform/tast/+/master/docs/test_attributes.md - tast_attr_expr = "!disabled && !\"group:*\" && \"dep:chrome\"" + tast_attr_expr = + "!disabled && (\"group:mainline\" || !\"group:*\") && \"dep:chrome\"" if (defined(enable_tast_informational_tests) && enable_tast_informational_tests) { diff --git a/chromium/build/config/compiler/BUILD.gn b/chromium/build/config/compiler/BUILD.gn index 352cb646dd5..93ad68a613b 100644 --- a/chromium/build/config/compiler/BUILD.gn +++ b/chromium/build/config/compiler/BUILD.gn @@ -104,6 +104,15 @@ declare_args() { clang_use_default_sample_profile = build_with_chromium && is_official_build && (is_android || is_desktop_linux) + # This configuration is used to select a default profile in Chrome OS based on + # the microarchitectures we are using. This is only used if + # clang_use_default_sample_profile is true and clang_sample_profile_path is + # empty. + chromeos_afdo_platform = "silvermont" + + # Emit debug information for profiling wile building with clang. + clang_emit_debug_info_for_profiling = false + # Turn this on to have the compiler output extra timing information. compiler_timing = false @@ -128,6 +137,12 @@ declare_args() { # By default only the binaries in official builds get build IDs. force_local_build_id = false + + # Initialize all local variables with a pattern. This flag will fill uninitialized + # floating-point types (and 32-bit pointers) with 0xFF and the rest with 0xAA. + # This allows to make behavior of uninitialized memory bugs consistent, easier to + # recognize when debugging and often just to crash immediately. + init_stack_vars = false } declare_args() { @@ -591,7 +606,7 @@ config("compiler") { # files on Windows (https://crbug.com/871962). ldflags += [ "/opt:lldlto=" + lto_opt_level, - "/opt:lldltojobs=8", + "/opt:lldltojobs=" + max_jobs_per_link, # Experimentally determined to yield a reasonable trade-off between # build time, run-time performance, and binary size. @@ -604,7 +619,7 @@ config("compiler") { # linker jobs. This is still suboptimal to a potential dynamic # resource allocation scheme, but should be good enough. if (use_lld) { - ldflags += [ "-Wl,--thinlto-jobs=8" ] + ldflags += [ "-Wl,--thinlto-jobs=" + max_jobs_per_link ] # Caching on Chrome OS materially slows the PFQ down; disable it until # we can figure out why. (crbug.com/964328) @@ -620,7 +635,7 @@ config("compiler") { ] } } else { - ldflags += [ "-Wl,-plugin-opt,jobs=8" ] + ldflags += [ "-Wl,-plugin-opt,jobs=" + max_jobs_per_link ] } if (use_lld) { @@ -1504,9 +1519,6 @@ config("default_warnings") { # TODO(https://crbug.com/989932): Evaluate and possibly enable. "-Wno-implicit-int-float-conversion", - # TODO(https://crbug.com/995200): Clean up and enable. - "-Wno-xor-used-as-pow", - # TODO(https://crbug.com/999871): Decide if we want to clean up the # codebase or just disable this. Doesn't seem super useful, but # also fires in only 4 files. @@ -1517,7 +1529,11 @@ config("default_warnings") { # TODO(https://crbug.com/999886): Clean up, enable. "-Wno-final-dtor-non-final-class", + + # TODO(https://crbug.com/1002945): Evaluate and possibly enable. + "-Wno-sizeof-array-div", ] + cflags_c += [ # TODO(https://crbug.com/995993): Clean up and enable. "-Wno-implicit-fallthrough", @@ -1879,11 +1895,7 @@ if (is_win) { # TODO(thakis): Remove is_clang here, https://crbug.com/598772 if (!use_lld && !is_clang) { - common_optimize_on_ldflags += [ - # Set the number of LTCG code-gen threads to eight. The default is four. - # This gives a 5-10% link speedup. - "/cgthreads:8", - ] + common_optimize_on_ldflags += [ "/cgthreads:" + max_jobs_per_link ] if (use_incremental_wpo) { # Incremental Link-time code generation. common_optimize_on_ldflags += [ "/LTCG:INCREMENTAL" ] @@ -2027,6 +2039,12 @@ config("no_optimize") { "/Ob0", # Disable all inlining (on by default). "/GF", # Enable string pooling (off by default). ] + + if (target_cpu == "arm64") { + # Disable omitting frame pointers for no_optimize build because stack + # trace on Windows ARM64 relies on it. + cflags += [ "/Oy-" ] + } } else if (is_android && !android_full_debug) { # On Android we kind of optimize some things that don't affect debugging # much even when optimization is disabled to get the binary size down. @@ -2153,9 +2171,19 @@ if (is_clang && is_a_target_toolchain) { } else if (clang_use_default_sample_profile) { assert(build_with_chromium, "Our default profiles currently only apply to Chromium") - assert(is_android || is_desktop_linux, + assert(is_android || is_desktop_linux || is_chromeos, "The current platform has no default profile") - _clang_sample_profile = "//chrome/android/profiles/afdo.prof" + if (is_android || is_desktop_linux) { + _clang_sample_profile = "//chrome/android/profiles/afdo.prof" + } else { + assert( + chromeos_afdo_platform == "silvermont" || + chromeos_afdo_platform == "airmont" || + chromeos_afdo_platform == "broadwell", + "Only silvermont, airmont and broadwell are valid Chrome OS profiles.") + _clang_sample_profile = + "//chromeos/profiles/${chromeos_afdo_platform}.afdo.prof" + } } } @@ -2175,10 +2203,18 @@ config("afdo_optimize_size") { # config to allow AFDO to be disabled per-target. config("afdo") { if (is_clang) { + cflags = [] + if (clang_emit_debug_info_for_profiling) { + # Add the following flags to generate debug info for profiling. + cflags += [ + "-fdebug-info-for-profiling", + "-gline-tables-only", + ] + } if (_clang_sample_profile != "") { rebased_clang_sample_profile = rebase_path(_clang_sample_profile, root_build_dir) - cflags = [ "-fprofile-sample-use=${rebased_clang_sample_profile}" ] + cflags += [ "-fprofile-sample-use=${rebased_clang_sample_profile}" ] inputs = [ _clang_sample_profile, ] @@ -2467,3 +2503,11 @@ if (is_win || is_android || is_chromeos) { } } } + +# Initialize all variables on the stack if needed. +config("default_init_stack_vars") { + cflags = [] + if (init_stack_vars && is_clang && !is_nacl && !using_sanitizer) { + cflags += [ "-ftrivial-auto-var-init=pattern" ] + } +} diff --git a/chromium/build/config/compiler/compiler.gni b/chromium/build/config/compiler/compiler.gni index f0b7e39dff7..09f4f8eaec6 100644 --- a/chromium/build/config/compiler/compiler.gni +++ b/chromium/build/config/compiler/compiler.gni @@ -63,6 +63,10 @@ declare_args() { # also http://blog.llvm.org/2016/06/thinlto-scalable-and-incremental-lto.html use_thin_lto = is_cfi || (is_android && is_official_build) + # Limit the number of jobs (threads/processes) the linker is allowed + # to use (for linkers that support this). + max_jobs_per_link = 8 + # Tell VS to create a PDB that references information in .obj files rather # than copying it all. This should improve linker performance. mspdbcmf.exe # can be used to convert a fastlink pdb to a normal one. @@ -218,15 +222,6 @@ if (symbol_level == -1) { # Reduce symbol level when it will cause invalid elf files to be created # (due to file size). https://crbug.com/648948. symbol_level = 1 - } else if (is_win && use_goma && !is_clang) { - # goma doesn't support PDB files, so we disable symbols during goma - # compilation because otherwise the redundant debug information generated - # by visual studio (repeated in every .obj file) makes linker - # memory consumption and link times unsustainable (crbug.com/630074). - # Clang on windows does not have this issue. - # If you use is_win_fastlink = true or lld or clang then you can set - # symbol_level = 2 when using goma. - symbol_level = 1 } else if (is_cros_chrome_sdk) { # Use lower symbol level in Simple Chrome build for faster link time. # For Simple Chrome, this should take precedence over is_official_build, diff --git a/chromium/build/config/coverage/coverage.gni b/chromium/build/config/coverage/coverage.gni index fe3af770f11..9586d8d980b 100644 --- a/chromium/build/config/coverage/coverage.gni +++ b/chromium/build/config/coverage/coverage.gni @@ -5,15 +5,20 @@ import("//build/toolchain/toolchain.gni") # There are two ways to enable code coverage instrumentation: -# 1. When |use_clang_coverage| is true and |coverage_instrumentation_input_file| -# is empty, all source files are instrumented. -# 2. When |use_clang_coverage| is true and |coverage_instrumentation_input_file| -# is NOT empty and points to a text file on the file system, ONLY source -# files specified in the input file are instrumented. +# 1. When |use_clang_coverage| or |use_jacoco_coverage| is true and +# |coverage_instrumentation_input_file| is empty, all source files or +# Java class files are instrumented. +# 2. When |use_clang_coverage| or |use_jacoco_coverage| is true and +# |coverage_instrumentation_input_file| is NOT empty and points to +# a text file on the file system, ONLY source files specified in the +# input file or Java class files related to source files are instrumented. declare_args() { # Enable Clang's Source-based Code Coverage. use_clang_coverage = false + # Enables JaCoCo Java code coverage. + use_jacoco_coverage = false + # The path to the coverage instrumentation input file should be a source root # absolute path (e.g. //out/Release/coverage_instrumentation_input.txt), and # the file consists of multiple lines where each line represents a path to a diff --git a/chromium/build/config/fuchsia/BUILD.gn b/chromium/build/config/fuchsia/BUILD.gn index 888be8c279d..9a0ca692f47 100644 --- a/chromium/build/config/fuchsia/BUILD.gn +++ b/chromium/build/config/fuchsia/BUILD.gn @@ -3,7 +3,7 @@ # found in the LICENSE file. import("//build/config/fuchsia/config.gni") -import("//build/config/fuchsia/rules.gni") +import("//build/config/fuchsia/generate_runner_scripts.gni") import("//build/config/sysroot.gni") assert(is_fuchsia) diff --git a/chromium/build/config/fuchsia/config.gni b/chromium/build/config/fuchsia/config.gni index 4b88d70fd30..a061081922d 100644 --- a/chromium/build/config/fuchsia/config.gni +++ b/chromium/build/config/fuchsia/config.gni @@ -19,6 +19,7 @@ if (current_cpu == "arm64") { } # Compute the qemu path. +aemu_root = "//third_party/aemu-${host_os}-${host_cpu}" qemu_root = "//third_party/qemu-${host_os}-${host_cpu}" # Compute the path to the arch-specific boot image directory. diff --git a/chromium/build/config/fuchsia/generate_runner_scripts.gni b/chromium/build/config/fuchsia/generate_runner_scripts.gni new file mode 100644 index 00000000000..bef39a5f0a9 --- /dev/null +++ b/chromium/build/config/fuchsia/generate_runner_scripts.gni @@ -0,0 +1,199 @@ +# Copyright 2018 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. + +assert(is_fuchsia) + +import("//build/config/chromecast_build.gni") +import("//build/config/fuchsia/config.gni") +import("//build/config/fuchsia/package.gni") +import("//build/config/sysroot.gni") +import("//build/util/generate_wrapper.gni") + +declare_args() { + # Sets the Fuchsia Amber repository which will be used by default by the + # generated installation scripts. If not specified, then no default directory + # will be used. + default_fuchsia_build_dir_for_installation = "" +} + +# Generates a script which deploys and optionally executes a package on a +# device. +# +# Parameters: +# package: The package() target which will be run. +# package_name_override: Specifies the name of the generated package, if its +# name is different than the |package| target name. This value must match +# package_name_override in the |package| target. +# package_deps: An array of [package, package_name_override] array pairs +# which specify additional dependency packages to be installed +# prior to execution. +# runner_script: The runner script implementation to use, relative to +# "build/fuchsia". Defaults to "test_runner.py". +# install_only: If true, executing the script will only install the package +# on the device, but not run it. +template("fuchsia_package_runner") { + forward_variables_from(invoker, [ "runner_script" ]) + + if (defined(invoker.package_name_override)) { + _pkg_shortname = invoker.package_name_override + } else { + _pkg_shortname = get_label_info(invoker.package, "name") + } + + _pkg_dir = "$root_out_dir/gen/" + get_label_info(invoker.package, "dir") + + "/" + _pkg_shortname + _manifest_path = "$_pkg_dir/${_pkg_shortname}.archive_manifest" + _package_path = "$_pkg_dir/${_pkg_shortname}.far" + + generated_run_pkg_script_path = "$root_build_dir/bin/run_${_pkg_shortname}" + generated_install_pkg_script_path = + "$root_build_dir/bin/install_$_pkg_shortname" + + _generate_runner_target = "${target_name}__generate_runner" + _generate_installer_target = "${target_name}__generate_installer" + + # Generates a script which installs and runs a test. + generate_wrapper(_generate_runner_target) { + forward_variables_from(invoker, + [ + "target", + "testonly", + ]) + + if (defined(runner_script)) { + executable = rebase_path(runner_script) + } else { + executable = rebase_path("//build/fuchsia/test_runner.py") + } + wrapper_script = generated_run_pkg_script_path + + deps = [ + invoker.package, + ] + if (defined(invoker.deps)) { + deps += invoker.deps + } + + data_deps = [ + invoker.package, + ] + + # Declares the files that are needed for test execution on the + # swarming test client. + data = [ + _manifest_path, + "//build/fuchsia/", + "//build/util/lib/", + "//third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer", + "${qemu_root}/", + "${fuchsia_sdk}/tools/fvm", + "${fuchsia_sdk}/tools/pm", + "${fuchsia_sdk}/tools/symbolize", + "${fuchsia_sdk}/tools/zbi", + "${fuchsia_sdk}/.build-id/", + "${boot_image_root}/qemu/qemu-kernel.kernel", + "${boot_image_root}/qemu/storage-full.blk", + "${boot_image_root}/qemu/zircon-a.zbi", + ] + + if (host_cpu == "x64" && target_cpu == "x64") { + data += [ "${aemu_root}/" ] + } + + executable_args = [] + + package_paths = [ rebase_path(_package_path, root_build_dir) ] + if (defined(invoker.package_deps)) { + foreach(package_dep, invoker.package_deps) { + package_dep_target = package_dep[0] + package_dep_name = package_dep[1] + + deps += [ package_dep_target ] + package_dep_path = rebase_path( + get_label_info(package_dep_target, "target_gen_dir") + "/" + + package_dep_name + "/" + package_dep_name + ".far", + root_build_dir) + package_paths += [ package_dep_path ] + } + } + + foreach(package_path, package_paths) { + executable_args += [ + "--package", + "@WrappedPath(${package_path})", + ] + } + + executable_args += [ + "--output-directory", + "@WrappedPath(.)", + "--target-cpu", + target_cpu, + "--package-name", + _pkg_shortname, + ] + + if (defined(invoker.use_test_server) && invoker.use_test_server) { + executable_args += [ "--enable-test-server" ] + } + } + + # Produces a script which installs a package and its dependencies into the + # Amber repository of a pre-existing Fuchsia build directory. + generate_wrapper(_generate_installer_target) { + forward_variables_from(invoker, [ "testonly" ]) + + executable = rebase_path("//build/fuchsia/deploy_to_amber_repo.py") + wrapper_script = generated_install_pkg_script_path + + deps = [ + invoker.package, + ] + if (defined(invoker.deps)) { + deps += invoker.deps + } + + # Build a list of all packages to install, and pass the list to the runner + # script. + package_paths = [ rebase_path(_package_path, root_build_dir) ] + if (defined(invoker.package_deps)) { + foreach(package_dep, invoker.package_deps) { + package_dep_target = package_dep[0] + package_dep_name = package_dep[1] + + deps += [ package_dep_target ] + package_dep_path = rebase_path( + get_label_info(package_dep_target, "target_gen_dir") + "/" + + package_dep_name + "/" + package_dep_name + ".far", + root_build_dir) + package_paths += [ package_dep_path ] + } + } + executable_args = [] + foreach(package_path, package_paths) { + executable_args += [ + "--package", + "@WrappedPath(${package_path})", + ] + + if (default_fuchsia_build_dir_for_installation != "") { + executable_args += [ + "--fuchsia-out-dir", + default_fuchsia_build_dir_for_installation, + ] + } + } + } + + group(target_name) { + forward_variables_from(invoker, [ "testonly" ]) + deps = [ + ":${_generate_installer_target}", + ] + + if (!defined(invoker.install_only) || invoker.install_only == false) { + deps += [ ":${_generate_runner_target}" ] + } + } +} diff --git a/chromium/build/config/fuchsia/rules.gni b/chromium/build/config/fuchsia/rules.gni index f7edfdcba3a..689e130b651 100644 --- a/chromium/build/config/fuchsia/rules.gni +++ b/chromium/build/config/fuchsia/rules.gni @@ -1,163 +1,5 @@ -# Copyright 2018 The Chromium Authors. All rights reserved. +# Copyright 2019 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. -assert(is_fuchsia) - -import("//build/config/chromecast_build.gni") -import("//build/config/fuchsia/config.gni") -import("//build/config/fuchsia/package.gni") -import("//build/config/sysroot.gni") -import("//build/util/generate_wrapper.gni") - -# Generates a script which deploys and executes a package on a device. -# -# Parameters: -# package: The package() target which will be run. -# package_name_override: Specifies the name of the generated package, if its -# name is different than the |package| target name. This value must match -# package_name_override in the |package| target. -# package_deps: An array of [package, package_name_override] array pairs -# which specify additional dependency packages to be installed -# prior to execution. -# runner_script: The runner script implementation to use, relative to -# "build/fuchsia". Defaults to "exe_runner.py". -# install_only: If true, executing the script will only install the package -# on the device, but not run it. -template("fuchsia_package_runner") { - forward_variables_from(invoker, [ "runner_script" ]) - - if (defined(invoker.package_name_override)) { - _pkg_shortname = invoker.package_name_override - } else { - _pkg_shortname = get_label_info(invoker.package, "name") - } - - _pkg_dir = "$root_out_dir/gen/" + get_label_info(invoker.package, "dir") + - "/" + _pkg_shortname - _manifest_path = "$_pkg_dir/${_pkg_shortname}.archive_manifest" - _package_path = "$_pkg_dir/${_pkg_shortname}.far" - - if (!defined(runner_script)) { - runner_script = "//build/fuchsia/exe_runner.py" - } - - generated_run_pkg_script_path = "$root_build_dir/bin/run_${_pkg_shortname}" - generated_install_pkg_script_path = - "$root_build_dir/bin/install_$_pkg_shortname" - - _generate_runner_target = "${target_name}__generate_runner" - _generate_installer_target = "${target_name}__generate_installer" - _generate_template = "${target_name}__generate_template" - - # Generates a script to install and optionally run a package. - # - # Parameters: - # |install_only|: If true, builds a script that only installs a package. - # |script_path|: The path of the script to generate. - template(_generate_template) { - generate_wrapper(target_name) { - forward_variables_from(invoker, - [ - "install_only", - "script_path", - "target", - "testonly", - ]) - - executable = runner_script - wrapper_script = script_path - - deps = [ - invoker.package, - ] - - if (defined(invoker.deps)) { - deps += invoker.deps - } - - # Declares the files that are needed for test execution on the - # swarming test client. - data = [ - _manifest_path, - "//build/fuchsia/", - "//build/util/lib/", - "//third_party/llvm-build/Release+Asserts/bin/llvm-symbolizer", - "${qemu_root}/", - "${fuchsia_sdk}/tools/fvm", - "${fuchsia_sdk}/tools/pm", - "${fuchsia_sdk}/tools/symbolize", - "${fuchsia_sdk}/tools/zbi", - "${fuchsia_sdk}/.build-id/", - "${boot_image_root}/qemu/qemu-kernel.kernel", - "${boot_image_root}/qemu/storage-full.blk", - "${boot_image_root}/qemu/zircon-a.zbi", - ] - - data_deps = [ - invoker.package, - ] - - executable_args = [] - - if (defined(invoker.package_deps)) { - foreach(cur_package, invoker.package_deps) { - deps += [ cur_package[0] ] - dep_package_path = - get_label_info(cur_package[0], "target_gen_dir") + "/" + - cur_package[1] + "/" + cur_package[1] + ".far" - _rebased_dep_package_path = - rebase_path(dep_package_path, root_build_dir) - executable_args += [ - "--package-dep", - "@WrappedPath(${_rebased_dep_package_path})", - ] - } - } - - _rebased_package_path = rebase_path(_package_path, root_build_dir) - executable_args += [ - "--output-directory", - "@WrappedPath(.)", - "--target-cpu", - target_cpu, - "--package", - "@WrappedPath(${_rebased_package_path})", - "--package-name", - _pkg_shortname, - ] - - if (defined(invoker.use_test_server) && invoker.use_test_server) { - executable_args += [ "--enable-test-server" ] - } - - if (defined(install_only) && install_only) { - executable_args += [ "--install-only" ] - } - } - } - - target(_generate_template, _generate_runner_target) { - forward_variables_from(invoker, "*") - script_path = generated_run_pkg_script_path - } - - target(_generate_template, _generate_installer_target) { - forward_variables_from(invoker, "*") - script_path = generated_install_pkg_script_path - install_only = true - } - - # Build the installer script, and the runner for non-|install_only| targets. - group(target_name) { - forward_variables_from(invoker, [ "testonly" ]) - deps = [ - ":${_generate_installer_target}", - ] - - # Generate a runner script if the target is not install-only. - if (!defined(invoker.install_only)) { - deps += [ ":${_generate_runner_target}" ] - } - } -} +import("//build/config/fuchsia/generate_runner_scripts.gni") diff --git a/chromium/build/config/ios/rules.gni b/chromium/build/config/ios/rules.gni index d7a42cd71f2..14aae595016 100644 --- a/chromium/build/config/ios/rules.gni +++ b/chromium/build/config/ios/rules.gni @@ -1808,13 +1808,20 @@ template("ios_xctest_test") { _host_target = _target_name _host_output = _output_name - _xctest_shell_source_target = _xctest_target + "shell_source" - source_set(_xctest_shell_source_target) { - sources = [ - "//build/config/ios/xctest_shell.mm", - ] + # Allow invokers to specify their own target for the xctest module, but + # fall back to a default (empty) module otherwise. + if (defined(invoker.xctest_module_target)) { + _xctest_module_target = invoker.xctest_module_target + } else { + _xctest_module_target_name = _xctest_target + "shell_source" + _xctest_module_target = ":$_xctest_module_target_name" + source_set(_xctest_module_target_name) { + sources = [ + "//build/config/ios/xctest_shell.mm", + ] - configs += [ "//build/config/ios:xctest_config" ] + configs += [ "//build/config/ios:xctest_config" ] + } } ios_xctest_bundle(_xctest_target) { @@ -1824,7 +1831,7 @@ template("ios_xctest_test") { xcode_test_application_name = _host_output deps = [ - ":$_xctest_shell_source_target", + _xctest_module_target, ] } diff --git a/chromium/build/config/jumbo.gni b/chromium/build/config/jumbo.gni index c93d5db153e..9c168569120 100644 --- a/chromium/build/config/jumbo.gni +++ b/chromium/build/config/jumbo.gni @@ -3,7 +3,6 @@ # found in the LICENSE file. import("//build/config/nacl/config.gni") # To see if jumbo should be turned off -import("//build/split_static_library.gni") # When someone uses that target_type import("//build/toolchain/goma.gni") declare_args() { @@ -49,9 +48,9 @@ jumbo_file_merge_default = 50 # Goma builds benefit from more parallelism jumbo_file_merge_goma = 8 -# Use one of the targets jumbo_source_set, jumbo_static_library, -# jumbo_split_static_library or jumbo_component to generate a target -# which merges sources if possible to compile much faster. +# Use one of the targets jumbo_source_set, jumbo_static_library, or +# jumbo_component to generate a target which merges sources if possible to +# compile much faster. # # Special values. # @@ -214,11 +213,6 @@ template("internal_jumbo_target") { } target_type = invoker.target_type - if (use_jumbo_build_for_target && target_type == "split_static_library") { - # Meaningless and also impossible if split_count > len(jumbo_files) - target_type = "static_library" - not_needed(invoker, [ "split_count" ]) - } # Perform the actual operation, either on the original sources or # the sources post-jumbo merging. @@ -281,22 +275,6 @@ set_defaults("jumbo_static_library") { } # See documentation above by "internal_jumbo_target". -template("jumbo_split_static_library") { - internal_jumbo_target(target_name) { - target_type = "split_static_library" - forward_variables_from(invoker, "*") - } -} - -set_defaults("jumbo_split_static_library") { - # This sets the default list of configs when the - # jumbo_split_static_library target is defined. The - # default_compiler_configs comes from BUILDCONFIG.gn and is the list - # normally applied to static libraries and source sets. - configs = default_compiler_configs -} - -# See documentation above by "internal_jumbo_target". template("jumbo_component") { internal_jumbo_target(target_name) { target_type = "component" diff --git a/chromium/build/config/linux/pkg-config.py b/chromium/build/config/linux/pkg-config.py index 930810b008a..5adf70cc3bb 100755 --- a/chromium/build/config/linux/pkg-config.py +++ b/chromium/build/config/linux/pkg-config.py @@ -79,7 +79,7 @@ def GetPkgConfigPrefixToStrip(options, args): # To support this correctly, it's necessary to extract the prefix to strip # from pkg-config's |prefix| variable. prefix = subprocess.check_output([options.pkg_config, - "--variable=prefix"] + args, env=os.environ) + "--variable=prefix"] + args, env=os.environ).decode('utf-8') if prefix[-4] == '/usr': return prefix[4:] return prefix @@ -158,7 +158,7 @@ def main(): if options.version_as_components: cmd = [options.pkg_config, "--modversion"] + args try: - version_string = subprocess.check_output(cmd) + version_string = subprocess.check_output(cmd).decode('utf-8') except: sys.stderr.write('Error from pkg-config.\n') return 1 @@ -171,7 +171,7 @@ def main(): if options.debug: sys.stderr.write('Running: %s\n' % cmd) try: - libdir = subprocess.check_output(cmd) + libdir = subprocess.check_output(cmd).decode('utf-8') except: print("Error from pkg-config.") return 1 @@ -183,7 +183,7 @@ def main(): if options.debug: sys.stderr.write('Running: %s\n' % cmd) try: - dridriverdir = subprocess.check_output(cmd) + dridriverdir = subprocess.check_output(cmd).decode('utf-8') except: print("Error from pkg-config.") return 1 @@ -195,7 +195,7 @@ def main(): sys.stderr.write('Running: %s\n' % ' '.join(cmd)) try: - flag_string = subprocess.check_output(cmd) + flag_string = subprocess.check_output(cmd).decode('utf-8') except: sys.stderr.write('Could not run pkg-config.\n') return 1 diff --git a/chromium/build/config/locales.gni b/chromium/build/config/locales.gni index 5f70fb49645..1d0df553e82 100644 --- a/chromium/build/config/locales.gni +++ b/chromium/build/config/locales.gni @@ -37,12 +37,11 @@ ios_unsupported_locales = [ ] # These list are defined even when not building for Android or iOS for the -# sake of build/locale_tool.py. These asserts ensure that GN doesn't complain -# about them being unused. -assert(android_chrome_omitted_locales != []) -assert(ios_unsupported_locales != []) +# sake of build/locale_tool.py. Ensure that GN doesn't complain about them +# being unused. +not_needed([ "android_chrome_omitted_locales" ]) +not_needed([ "ios_unsupported_locales" ]) -# Note: keep in sync with below. locales = [ "am", "ar", diff --git a/chromium/build/config/mac/plist_util.py b/chromium/build/config/mac/plist_util.py index bba0208a5bf..a7156a62bce 100644 --- a/chromium/build/config/mac/plist_util.py +++ b/chromium/build/config/mac/plist_util.py @@ -3,6 +3,7 @@ # found in the LICENSE file. import argparse +import codecs import plistlib import os import re @@ -212,6 +213,10 @@ class SubstituteAction(Action): def Main(): + # Cache this codec so that plistlib can find it. See + # https://crbug.com/1005190#c2 for more details. + codecs.lookup('utf-8') + parser = argparse.ArgumentParser(description='manipulate plist files') subparsers = parser.add_subparsers() diff --git a/chromium/build/config/mac/rules.gni b/chromium/build/config/mac/rules.gni index 714bf700843..3c816242375 100644 --- a/chromium/build/config/mac/rules.gni +++ b/chromium/build/config/mac/rules.gni @@ -353,7 +353,8 @@ template("mac_framework_bundle") { if (enable_dsyms) { data = [ - "$root_out_dir/$_output_name.dSYM/", + "$root_out_dir/$_output_name.dSYM/Contents/Info.plist", + "$root_out_dir/$_output_name.dSYM/Contents/Resources/DWARF/$_output_name", ] } @@ -560,7 +561,8 @@ template("mac_app_bundle") { if (enable_dsyms) { data = [ - "$root_out_dir/$_output_name.dSYM/", + "$root_out_dir/$_output_name.dSYM/Contents/Info.plist", + "$root_out_dir/$_output_name.dSYM/Contents/Resources/DWARF/$_output_name", ] } @@ -606,7 +608,7 @@ template("mac_plugin_bundle") { forward_variables_from(invoker, [ "testonly" ]) visibility = [ ":$_target_name" ] sources = [ - "$target_out_dir/${_output_name}.so", + "$target_out_dir/$_output_name.so", ] outputs = [ "{{bundle_executable_dir}}/$_output_name", @@ -632,7 +634,8 @@ template("mac_plugin_bundle") { if (enable_dsyms) { data = [ - "$root_out_dir/$_output_name.so.dSYM/", + "$root_out_dir/$_output_name.so.dSYM/Contents/Info.plist", + "$root_out_dir/$_output_name.so.dSYM/Contents/Resources/DWARF/$_output_name.so", ] } diff --git a/chromium/build/config/posix/sysroot_ld_path.py b/chromium/build/config/posix/sysroot_ld_path.py index 5fe5623711c..b45aa0de497 100644 --- a/chromium/build/config/posix/sysroot_ld_path.py +++ b/chromium/build/config/posix/sysroot_ld_path.py @@ -17,7 +17,8 @@ if len(sys.argv) != 3: print("Need two arguments") sys.exit(1) -result = subprocess.check_output([sys.argv[1], sys.argv[2]]).strip() +result = subprocess.check_output([sys.argv[1], + sys.argv[2]]).strip().decode("utf-8") result = result.replace(" ", "\n") if result != "": print(result) diff --git a/chromium/build/config/sanitizers/sanitizers.gni b/chromium/build/config/sanitizers/sanitizers.gni index 2ac235b3bc6..d96cd308341 100644 --- a/chromium/build/config/sanitizers/sanitizers.gni +++ b/chromium/build/config/sanitizers/sanitizers.gni @@ -48,11 +48,6 @@ declare_args() { msan_track_origins = 2 # Use dynamic libraries instrumented by one of the sanitizers instead of the - # standard system libraries. Set this flag to download prebuilt binaries from - # GCS. - use_prebuilt_instrumented_libraries = false - - # Use dynamic libraries instrumented by one of the sanitizers instead of the # standard system libraries. Set this flag to build the libraries from source. use_locally_built_instrumented_libraries = false @@ -142,11 +137,16 @@ if (current_toolchain != default_toolchain) { use_cfi_diag = false use_cfi_recover = false use_libfuzzer = false - use_prebuilt_instrumented_libraries = false use_locally_built_instrumented_libraries = false use_sanitizer_coverage = false } +# Use dynamic libraries instrumented by one of the sanitizers instead of the +# standard system libraries. We have instrumented system libraries for msan, +# which requires them to prevent false positives. +# TODO(thakis): Maybe remove this variable. +use_prebuilt_instrumented_libraries = is_msan + # Whether we are doing a fuzzer build. Normally this should be checked instead # of checking "use_libfuzzer || use_afl" because often developers forget to # check for "use_afl". @@ -194,9 +194,6 @@ if (use_libfuzzer && is_linux) { # relies on LEAK_SANITIZER define to avoid false positives. is_lsan = true } - if (is_msan) { - use_prebuilt_instrumented_libraries = true - } } # MSan only links Chrome properly in release builds (brettw -- 9/1/2015). The diff --git a/chromium/build/config/win/BUILD.gn b/chromium/build/config/win/BUILD.gn index edb193a5f3a..95e32520781 100644 --- a/chromium/build/config/win/BUILD.gn +++ b/chromium/build/config/win/BUILD.gn @@ -61,9 +61,12 @@ config("compiler") { "/FS", # Preserve previous PDB behavior. "/bigobj", # Some of our files are bigger than the regular limits. "/utf-8", # Assume UTF-8 by default to avoid code page dependencies. - "/Zc:twoPhase", ] + if (is_clang) { + cflags += [ "/Zc:twoPhase" ] + } + # Force C/C++ mode for the given GN detected file type. This is necessary # for precompiled headers where the same source file is compiled in both # modes. @@ -142,6 +145,9 @@ config("compiler") { # (link.exe also writes the current time, but it doesn't have a flag to # override that behavior.) ldflags += [ "/TIMESTAMP:" + build_timestamp ] + + # Don't look for libpaths in %LIB%, similar to /X in cflags above. + ldflags += [ "/lldignoreenv" ] } if (!is_debug && !is_component_build) { diff --git a/chromium/build/copy_test_data_ios.py b/chromium/build/copy_test_data_ios.py index 6a15ca2a7b3..cd23fb29bd5 100755 --- a/chromium/build/copy_test_data_ios.py +++ b/chromium/build/copy_test_data_ios.py @@ -96,7 +96,7 @@ def DoMain(argv): def main(argv): try: result = DoMain(argv[1:]) - except WrongNumberOfArgumentsException, e: + except WrongNumberOfArgumentsException as e: print(e, file=sys.stderr) return 1 if result: diff --git a/chromium/build/fuchsia/aemu_target.py b/chromium/build/fuchsia/aemu_target.py new file mode 100644 index 00000000000..94c590bd78e --- /dev/null +++ b/chromium/build/fuchsia/aemu_target.py @@ -0,0 +1,72 @@ +# Copyright 2019 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. + +"""Implements commands for running and interacting with Fuchsia on AEMU.""" + +import os +import platform +import qemu_target +import logging + +from common import GetEmuRootForPlatform + +class AemuTarget(qemu_target.QemuTarget): + def __init__(self, output_dir, target_cpu, system_log_file, emu_type, + cpu_cores, require_kvm, ram_size_mb): + super(AemuTarget, self).__init__(output_dir, target_cpu, system_log_file, + emu_type, cpu_cores, require_kvm, + ram_size_mb) + + # TODO(crbug.com/1000907): Enable AEMU for arm64. + if platform.machine() == 'aarch64': + raise Exception('AEMU does not support arm64 hosts.') + + # TODO(bugs.fuchsia.dev/p/fuchsia/issues/detail?id=37301): Remove + # once aemu is part of default fuchsia build + def _EnsureEmulatorExists(self, path): + assert os.path.exists(path), \ + 'This checkout is missing %s. To check out the files, add this\n' \ + 'entry to the "custon_vars" section of your .gclient file:\n\n' \ + ' "checkout_aemu": True\n\n' % (self._emu_type) + + def _BuildCommand(self): + aemu_exec = 'emulator-headless' + + aemu_folder = GetEmuRootForPlatform(self._emu_type) + + self._EnsureEmulatorExists(aemu_folder) + aemu_path = os.path.join(aemu_folder, aemu_exec) + + # `VirtioInput` is needed for touch input device support on Fuchsia. + # `RefCountPipe` is needed for proper cleanup of resources when a process + # that uses Vulkan dies inside the guest + aemu_features = 'VirtioInput,RefCountPipe' + + # Configure the CPU to emulate. + # On Linux, we can enable lightweight virtualization (KVM) if the host and + # guest architectures are the same. + if self._IsKvmEnabled(): + aemu_features += ',KVM,GLDirectMem,Vulkan' + else: + if self._target_cpu != 'arm64': + aemu_features += ',-GLDirectMem' + + # All args after -fuchsia flag gets passed to QEMU + aemu_command = [aemu_path, + '-feature', aemu_features, + '-window-size', '1024x600', + '-gpu', 'swiftshader_indirect', + '-fuchsia' + ] + + aemu_command.extend(self._BuildQemuConfig()) + + aemu_command.extend([ + '-vga', 'none', + '-device', 'isa-debug-exit,iobase=0xf4,iosize=0x04', + '-device', 'virtio-keyboard-pci', + '-device', 'virtio_input_multi_touch_pci_1', + '-device', 'ich9-ahci,id=ahci']) + logging.info(' '.join(aemu_command)) + return aemu_command diff --git a/chromium/build/fuchsia/common.py b/chromium/build/fuchsia/common.py index 3ec1e67aa64..7dd3d52cac8 100644 --- a/chromium/build/fuchsia/common.py +++ b/chromium/build/fuchsia/common.py @@ -15,6 +15,8 @@ SDK_ROOT = os.path.join(DIR_SOURCE_ROOT, 'third_party', 'fuchsia-sdk', 'sdk') IMAGES_ROOT = os.path.join(DIR_SOURCE_ROOT, 'third_party', 'fuchsia-sdk', 'images') +_PM = os.path.join(SDK_ROOT, 'tools', 'pm') + def EnsurePathExists(path): """Checks that the file |path| exists on the filesystem and returns the path if it does, raising an exception otherwise.""" @@ -40,9 +42,9 @@ def GetHostArchFromPlatform(): return 'arm64' raise Exception('Unsupported host architecture: %s' % host_arch) -def GetQemuRootForPlatform(): +def GetEmuRootForPlatform(emulator): return os.path.join(DIR_SOURCE_ROOT, 'third_party', - 'qemu-' + GetHostOsFromPlatform() + '-' + + emulator + '-' + GetHostOsFromPlatform() + '-' + GetHostArchFromPlatform()) def ConnectPortForwardingTask(target, local_port, remote_port = 0): @@ -86,3 +88,11 @@ def GetAvailableTcpPort(): port = sock.getsockname()[1] sock.close() return port + + +def PublishPackage(package_path, tuf_root): + """Publishes a combined FAR package to a TUF repository root.""" + + subprocess.check_call( + [_PM, 'publish', '-a', '-f', package_path, '-r', tuf_root, '-vt', '-v'], + stderr=subprocess.STDOUT) diff --git a/chromium/build/fuchsia/common_args.py b/chromium/build/fuchsia/common_args.py index a897a3072d7..7716771009c 100644 --- a/chromium/build/fuchsia/common_args.py +++ b/chromium/build/fuchsia/common_args.py @@ -6,25 +6,21 @@ import logging import os import sys +from aemu_target import AemuTarget from device_target import DeviceTarget from qemu_target import QemuTarget - def AddCommonArgs(arg_parser): """Adds command line arguments to |arg_parser| for options which are shared across test and executable target types.""" common_args = arg_parser.add_argument_group('common', 'Common arguments') - common_args.add_argument('--package', - type=os.path.realpath, required=True, - help='Path to the package to execute.') + common_args.add_argument('--package', action='append', required=True, + help='Paths of the packages to install, including ' + 'all dependencies.') common_args.add_argument('--package-name', required=True, help='Name of the package to execute, defined in ' + 'package metadata.') - common_args.add_argument('--package-dep', action='append', default=[], - help='Path to an additional package to install.') - common_args.add_argument('--install-only', action='store_true', default=False, - help='Install the packages but do not run them.') common_args.add_argument('--output-directory', type=os.path.realpath, required=True, help=('Path to the directory in which build files ' @@ -34,8 +30,13 @@ def AddCommonArgs(arg_parser): common_args.add_argument('--target-staging-path', help='target path under which to stage packages ' 'during deployment.', default='/data') - common_args.add_argument('--device', '-d', action='store_true', default=False, - help='Run on hardware device instead of QEMU.') + common_args.add_argument('--device', default=None, + choices=['aemu','qemu','device'], + help='Choose to run on aemu|qemu|device. ' + + 'By default, Fuchsia will run in QEMU.') + common_args.add_argument('-d', action='store_const', dest='device', + const='device', + help='Run on device instead of emulator.') common_args.add_argument('--host', help='The IP of the target device. ' + 'Optional.') common_args.add_argument('--node-name', @@ -64,7 +65,11 @@ def AddCommonArgs(arg_parser): help='Enable debug-level logging.') common_args.add_argument('--qemu-cpu-cores', type=int, default=4, help='Sets the number of CPU cores to provide if ' - 'launching in a VM with QEMU.'), + 'launching in a VM.'), + common_args.add_argument('--memory', type=int, default=2048, + help='Sets the RAM size (MB) if launching in a VM'), + common_args.add_argument('--no-kvm', action='store_true', default=False, + help='Disable KVM virtualization'), common_args.add_argument( '--os_check', choices=['check', 'update', 'ignore'], default='update', @@ -94,7 +99,6 @@ def ConfigureLogging(args): def GetDeploymentTargetForArgs(args, require_kvm=False): """Constructs a deployment target object using parameters taken from command line arguments.""" - if args.system_log_file == '-': system_log_file = sys.stdout elif args.system_log_file: @@ -102,19 +106,27 @@ def GetDeploymentTargetForArgs(args, require_kvm=False): else: system_log_file = None + # Allow fuchsia to run on qemu if device not explicitly chosen. if not args.device: - return QemuTarget(output_dir=args.output_directory, - target_cpu=args.target_cpu, - cpu_cores=args.qemu_cpu_cores, - system_log_file=system_log_file, - require_kvm=require_kvm) + args.device = 'qemu' + + target_args = { 'output_dir':args.output_directory, + 'target_cpu':args.target_cpu, + 'system_log_file':system_log_file } + if args.device == 'device': + target_args.update({ 'host':args.host, + 'node_name':args.node_name, + 'port':args.port, + 'ssh_config':args.ssh_config, + 'fuchsia_out_dir':args.fuchsia_out_dir, + 'os_check':args.os_check }) + return DeviceTarget(**target_args) else: - return DeviceTarget(output_dir=args.output_directory, - target_cpu=args.target_cpu, - host=args.host, - node_name=args.node_name, - port=args.port, - ssh_config=args.ssh_config, - fuchsia_out_dir=args.fuchsia_out_dir, - system_log_file=system_log_file, - os_check=args.os_check) + target_args.update({ 'cpu_cores':args.qemu_cpu_cores, + 'require_kvm':not args.no_kvm, + 'emu_type':args.device, + 'ram_size_mb':args.memory }) + if args.device == 'qemu': + return QemuTarget(**target_args) + else: + return AemuTarget(**target_args) diff --git a/chromium/build/fuchsia/deploy_to_amber_repo.py b/chromium/build/fuchsia/deploy_to_amber_repo.py new file mode 100755 index 00000000000..6f36e0a625c --- /dev/null +++ b/chromium/build/fuchsia/deploy_to_amber_repo.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python +# +# Copyright 2019 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. + +"""Deploys Fuchsia packages to an Amber repository in a Fuchsia +build output directory.""" + +import argparse +import os +import sys + +from common import PublishPackage + + +def main(): + parser = argparse.ArgumentParser() + parser.add_argument('--package', action='append', required=True, + help='Paths to packages to install.') + parser.add_argument('--fuchsia-out-dir', nargs='+', + help='Path to a Fuchsia build output directory. ' + 'If more than one outdir is supplied, the last one ' + 'in the sequence will be used.') + args = parser.parse_args() + assert args.package + + if not args.fuchsia_out_dir or len(args.fuchsia_out_dir) == 0: + sys.stderr.write('No Fuchsia build output directory was specified.\n' + + 'To resolve this, Use the commandline argument ' + + '--fuchsia-out-dir\nor set the GN arg ' + + '"default_fuchsia_build_dir_for_installation".\n') + return 1 + + fuchsia_out_dir = args.fuchsia_out_dir.pop() + tuf_root = os.path.join(fuchsia_out_dir, 'amber-files') + print('Installing packages in Amber repo %s...' % tuf_root) + for package in args.package: + PublishPackage(package, os.path.expanduser(tuf_root)) + + print('Installation success.') + + return 0 + + +if __name__ == '__main__': + sys.exit(main()) diff --git a/chromium/build/fuchsia/emu_target.py b/chromium/build/fuchsia/emu_target.py new file mode 100644 index 00000000000..1aa6e420d05 --- /dev/null +++ b/chromium/build/fuchsia/emu_target.py @@ -0,0 +1,92 @@ +# Copyright 2019 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. + +"""Implements commands for running/interacting with Fuchsia on an emulator.""" + +import boot_data +import logging +import os +import subprocess +import sys +import target +import tempfile + +class EmuTarget(target.Target): + def __init__(self, output_dir, target_cpu, system_log_file): + """output_dir: The directory which will contain the files that are + generated to support the emulator deployment. + target_cpu: The emulated target CPU architecture. + Can be 'x64' or 'arm64'.""" + super(EmuTarget, self).__init__(output_dir, target_cpu) + self._emu_process = None + self._system_log_file = system_log_file + + def __enter__(self): + return self + + def _GetEmulatorName(self): + pass + + def _BuildCommand(self): + """Build the command that will be run to start Fuchsia in the emulator.""" + pass + + # Used by the context manager to ensure that the emulator is killed when + # the Python process exits. + def __exit__(self, exc_type, exc_val, exc_tb): + self.Shutdown(); + + def Start(self): + emu_command = self._BuildCommand() + + # We pass a separate stdin stream. Sharing stdin across processes + # leads to flakiness due to the OS prematurely killing the stream and the + # Python script panicking and aborting. + # The precise root cause is still nebulous, but this fix works. + # See crbug.com/741194. + logging.debug('Launching %s.' % (self._GetEmulatorName())) + logging.debug(' '.join(emu_command)) + + # Zircon sends debug logs to serial port (see kernel.serial=legacy flag + # above). Serial port is redirected to a file through emulator stdout. + # Unless a |_system_log_file| is explicitly set, we output the kernel serial + # log to a temporary file, and print that out if we are unable to connect to + # the emulator guest, to make it easier to diagnose connectivity issues. + temporary_system_log_file = None + if self._system_log_file: + stdout = self._system_log_file + stderr = subprocess.STDOUT + else: + temporary_system_log_file = tempfile.NamedTemporaryFile('w') + stdout = temporary_system_log_file + stderr = sys.stderr + + self._emu_process = subprocess.Popen(emu_command, stdin=open(os.devnull), + stdout=stdout, stderr=stderr) + + try: + self._WaitUntilReady(); + except target.FuchsiaTargetException: + if temporary_system_log_file: + logging.info('Kernel logs:\n' + + open(temporary_system_log_file.name, 'r').read()) + raise + + def Shutdown(self): + if self._IsEmuStillRunning(): + logging.info('Shutting down %s' % (self._GetEmulatorName())) + self._emu_process.kill() + + def _IsEmuStillRunning(self): + if not self._emu_process: + return False + return os.waitpid(self._emu_process.pid, os.WNOHANG)[0] == 0 + + def _GetEndpoint(self): + if not self._IsEmuStillRunning(): + raise Exception('%s quit unexpectedly.' % (self._GetEmulatorName())) + return ('localhost', self._host_ssh_port) + + def _GetSshConfigPath(self): + return boot_data.GetSSHConfigPath(self._output_dir)
\ No newline at end of file diff --git a/chromium/build/fuchsia/fidlgen_js/fidl.py b/chromium/build/fuchsia/fidlgen_js/fidl.py index d66ba033050..fb024642767 100644 --- a/chromium/build/fuchsia/fidlgen_js/fidl.py +++ b/chromium/build/fuchsia/fidlgen_js/fidl.py @@ -293,7 +293,7 @@ class InterfaceMethodParameter: class InterfaceMethod: - def __init__(self, has_request, has_response, maybe_attributes, maybe_request, maybe_request_alignment, maybe_request_size, maybe_response, maybe_response_alignment, maybe_response_size, name, ordinal, generated_ordinal): + def __init__(self, has_request, has_response, maybe_attributes, maybe_request, maybe_request_alignment, maybe_request_size, maybe_response, maybe_response_alignment, maybe_response_size, name, ordinal): self.has_request = has_request self.has_response = has_response self.maybe_attributes = maybe_attributes @@ -305,8 +305,6 @@ class InterfaceMethod: self.maybe_response_size = maybe_response_size self.name = name self.ordinal = ordinal - # TODO(https://crbug.com/991300): Remove once |ordinal| is 64-bit. - self.generated_ordinal = generated_ordinal @staticmethod def from_dict(obj): @@ -322,9 +320,7 @@ class InterfaceMethod: maybe_response_size = from_union([from_int, from_none], obj.get(u"maybe_response_size")) name = from_str(obj.get(u"name")) ordinal = from_int(obj.get(u"ordinal")) - # TODO(https://crbug.com/991300): Remove once |ordinal| is 64-bit. - generated_ordinal = from_int(obj.get(u"generated_ordinal")) - return InterfaceMethod(has_request, has_response, maybe_attributes, maybe_request, maybe_request_alignment, maybe_request_size, maybe_response, maybe_response_alignment, maybe_response_size, name, ordinal, generated_ordinal) + return InterfaceMethod(has_request, has_response, maybe_attributes, maybe_request, maybe_request_alignment, maybe_request_size, maybe_response, maybe_response_alignment, maybe_response_size, name, ordinal) def to_dict(self): result = {} @@ -339,8 +335,6 @@ class InterfaceMethod: result[u"maybe_response_size"] = from_union([from_int, from_none], self.maybe_response_size) result[u"name"] = from_str(self.name) result[u"ordinal"] = from_int(self.ordinal) - # TODO(https://crbug.com/991300): Remove once |ordinal| is 64-bit. - result[u"generated_ordinal"] = from_int(self.generated_ordinal) return result diff --git a/chromium/build/fuchsia/fidlgen_js/gen.py b/chromium/build/fuchsia/fidlgen_js/gen.py index 005101988c2..9830fdbff51 100755 --- a/chromium/build/fuchsia/fidlgen_js/gen.py +++ b/chromium/build/fuchsia/fidlgen_js/gen.py @@ -525,8 +525,7 @@ function %(name)s() {} 'const _k%(name)s_%(method_name)s_Ordinal = %(ordinal)sn;\n' % { 'name': name, 'method_name': method_name, - # TODO(https://crbug.com/991300): Use |ordinal| once it is 64-bit. - 'ordinal': method.generated_ordinal + 'ordinal': method.ordinal }) self.f.write('\n') diff --git a/chromium/build/fuchsia/fidlgen_js/runtime/fidl.mjs b/chromium/build/fuchsia/fidlgen_js/runtime/fidl.mjs index d7ce381f433..d611e61aa51 100644 --- a/chromium/build/fuchsia/fidlgen_js/runtime/fidl.mjs +++ b/chromium/build/fuchsia/fidlgen_js/runtime/fidl.mjs @@ -10,7 +10,7 @@ const $fidl_kInitialBufferSize = 1024; const $fidl_kMessageHeaderSize = 16; const $fidl_kMessageTxidOffset = 0; -const $fidl_kMessageOrdinalOffset = 12; +const $fidl_kMessageOrdinalOffset = 8; const $fidl__kAlignment = 8; const $fidl__kAlignmentMask = 0x7; @@ -30,8 +30,8 @@ function $fidl__align(size) { function $fidl__setUint64LE(dataView, offset, value) { var high_bits = Number(BigInt.asUintN(32, value >> 32n)) var low_bits = Number(BigInt.asUintN(32, value)) - dataView.setUint32(offset+0, high_bits, $fidl__kLE); - dataView.setUint32(offset+4, low_bits, $fidl__kLE); + dataView.setUint32(offset+4, high_bits, $fidl__kLE); + dataView.setUint32(offset+0, low_bits, $fidl__kLE); } diff --git a/chromium/build/fuchsia/linux.sdk.sha1 b/chromium/build/fuchsia/linux.sdk.sha1 index 9f0cf4b7493..6ea1b65663a 100644 --- a/chromium/build/fuchsia/linux.sdk.sha1 +++ b/chromium/build/fuchsia/linux.sdk.sha1 @@ -1 +1 @@ -8903197588632695296
\ No newline at end of file +8899502756487089920
\ No newline at end of file diff --git a/chromium/build/fuchsia/mac.sdk.sha1 b/chromium/build/fuchsia/mac.sdk.sha1 index 872fcea6a9d..f17fc2b983b 100644 --- a/chromium/build/fuchsia/mac.sdk.sha1 +++ b/chromium/build/fuchsia/mac.sdk.sha1 @@ -1 +1 @@ -8903199652766737008
\ No newline at end of file +8899505638123521760
\ No newline at end of file diff --git a/chromium/build/fuchsia/qemu_target.py b/chromium/build/fuchsia/qemu_target.py index 4e6ff19b955..68c980a9664 100644 --- a/chromium/build/fuchsia/qemu_target.py +++ b/chromium/build/fuchsia/qemu_target.py @@ -6,19 +6,17 @@ import boot_data import common +import emu_target import logging import md5 import os import platform import shutil -import socket import subprocess import sys -import target import tempfile -import time -from common import GetQemuRootForPlatform, EnsurePathExists +from common import GetEmuRootForPlatform, EnsurePathExists # Virtual networking configuration data for QEMU. @@ -31,46 +29,33 @@ GUEST_MAC_ADDRESS = '52:54:00:63:5e:7b' EXTENDED_BLOBSTORE_SIZE = 1073741824 # 1GB -class QemuTarget(target.Target): - def __init__(self, output_dir, target_cpu, cpu_cores, system_log_file, - require_kvm, ram_size_mb=2048): - """output_dir: The directory which will contain the files that are - generated to support the QEMU deployment. - target_cpu: The emulated target CPU architecture. - Can be 'x64' or 'arm64'.""" - super(QemuTarget, self).__init__(output_dir, target_cpu) - self._qemu_process = None - self._ram_size_mb = ram_size_mb - self._system_log_file = system_log_file - self._cpu_cores = cpu_cores - self._require_kvm = require_kvm - - def __enter__(self): - return self - - # Used by the context manager to ensure that QEMU is killed when the Python - # process exits. - def __exit__(self, exc_type, exc_val, exc_tb): - self.Shutdown(); - - def Start(self): +class QemuTarget(emu_target.EmuTarget): + def __init__(self, output_dir, target_cpu, system_log_file, + emu_type, cpu_cores, require_kvm, ram_size_mb): + super(QemuTarget, self).__init__(output_dir, target_cpu, + system_log_file) + self._emu_type=emu_type + self._cpu_cores=cpu_cores + self._require_kvm=require_kvm + self._ram_size_mb=ram_size_mb + + def _GetEmulatorName(self): + return self._emu_type + + def _IsKvmEnabled(self): + if self._require_kvm: + if (sys.platform.startswith('linux') and + os.access('/dev/kvm', os.R_OK | os.W_OK)): + if self._target_cpu == 'arm64' and platform.machine() == 'aarch64': + return True + if self._target_cpu == 'x64' and platform.machine() == 'x86_64': + return True + return False + + def _BuildQemuConfig(self): boot_data.AssertBootImagesExist(self._GetTargetSdkArch(), 'qemu') - qemu_path = os.path.join(GetQemuRootForPlatform(), 'bin', - 'qemu-system-' + self._GetTargetSdkLegacyArch()) - kernel_args = boot_data.GetKernelArgs(self._output_dir) - - # TERM=dumb tells the guest OS to not emit ANSI commands that trigger - # noisy ANSI spew from the user's terminal emulator. - kernel_args.append('TERM=dumb') - - # Enable logging to the serial port. This is a temporary fix to investigate - # the root cause for https://crbug.com/869753 . - kernel_args.append('kernel.serial=legacy') - - qemu_command = [qemu_path, - '-m', str(self._ram_size_mb), - '-nographic', + emu_command = [ '-kernel', EnsurePathExists( boot_data.GetTargetFile('qemu-kernel.kernel', self._GetTargetSdkArch(), @@ -78,6 +63,7 @@ class QemuTarget(target.Target): '-initrd', EnsurePathExists( boot_data.GetBootImage(self._output_dir, self._GetTargetSdkArch(), boot_data.TARGET_TYPE_QEMU)), + '-m', str(self._ram_size_mb), '-smp', str(self._cpu_cores), # Attach the blobstore and data volumes. Use snapshot mode to discard @@ -92,38 +78,20 @@ class QemuTarget(target.Target): # monitor. '-serial', 'stdio', '-monitor', 'none', - - '-append', ' '.join(kernel_args) ] # Configure the machine to emulate, based on the target architecture. if self._target_cpu == 'arm64': - qemu_command.extend([ + emu_command.extend([ '-machine','virt', ]) netdev_type = 'virtio-net-pci' else: - qemu_command.extend([ + emu_command.extend([ '-machine', 'q35', ]) netdev_type = 'e1000' - # Configure the CPU to emulate. - # On Linux, we can enable lightweight virtualization (KVM) if the host and - # guest architectures are the same. - enable_kvm = self._require_kvm or (sys.platform.startswith('linux') and ( - (self._target_cpu == 'arm64' and platform.machine() == 'aarch64') or - (self._target_cpu == 'x64' and platform.machine() == 'x86_64')) and - os.access('/dev/kvm', os.R_OK | os.W_OK)) - if enable_kvm: - qemu_command.extend(['-enable-kvm', '-cpu', 'host,migratable=no']) - else: - logging.warning('Unable to launch QEMU with KVM acceleration.') - if self._target_cpu == 'arm64': - qemu_command.extend(['-cpu', 'cortex-a53']) - else: - qemu_command.extend(['-cpu', 'Haswell,+smap,-check,-fsgsbase']) - # Configure virtual network. It is used in the tests to connect to # testserver running on the host. netdev_config = 'user,id=net0,net=%s,dhcpstart=%s,host=%s' % \ @@ -131,61 +99,50 @@ class QemuTarget(target.Target): self._host_ssh_port = common.GetAvailableTcpPort() netdev_config += ",hostfwd=tcp::%s-:22" % self._host_ssh_port - qemu_command.extend([ + emu_command.extend([ '-netdev', netdev_config, '-device', '%s,netdev=net0,mac=%s' % (netdev_type, GUEST_MAC_ADDRESS), ]) - # We pass a separate stdin stream to qemu. Sharing stdin across processes - # leads to flakiness due to the OS prematurely killing the stream and the - # Python script panicking and aborting. - # The precise root cause is still nebulous, but this fix works. - # See crbug.com/741194. - logging.debug('Launching QEMU.') - logging.debug(' '.join(qemu_command)) - - # Zircon sends debug logs to serial port (see kernel.serial=legacy flag - # above). Serial port is redirected to a file through QEMU stdout. - # Unless a |_system_log_file| is explicitly set, we output the kernel serial - # log to a temporary file, and print that out if we are unable to connect to - # the QEMU guest, to make it easier to diagnose connectivity issues. - temporary_system_log_file = None - if self._system_log_file: - stdout = self._system_log_file - stderr = subprocess.STDOUT + # Configure the CPU to emulate. + # On Linux, we can enable lightweight virtualization (KVM) if the host and + # guest architectures are the same. + if self._IsKvmEnabled(): + kvm_command = ['-enable-kvm', '-cpu', 'host,migratable=no'] else: - temporary_system_log_file = tempfile.NamedTemporaryFile('w') - stdout = temporary_system_log_file - stderr = sys.stderr - - self._qemu_process = subprocess.Popen(qemu_command, stdin=open(os.devnull), - stdout=stdout, stderr=stderr) - try: - self._WaitUntilReady(); - except target.FuchsiaTargetException: - if temporary_system_log_file: - logging.info("Kernel logs:\n" + - open(temporary_system_log_file.name, 'r').read()) - raise - - def Shutdown(self): - if self._IsQemuStillRunning(): - logging.info('Shutting down QEMU.') - self._qemu_process.kill() - - def _IsQemuStillRunning(self): - if not self._qemu_process: - return False - return os.waitpid(self._qemu_process.pid, os.WNOHANG)[0] == 0 - - def _GetEndpoint(self): - if not self._IsQemuStillRunning(): - raise Exception('QEMU quit unexpectedly.') - return ('localhost', self._host_ssh_port) - - def _GetSshConfigPath(self): - return boot_data.GetSSHConfigPath(self._output_dir) + logging.warning('Unable to launch %s with KVM acceleration.' + % (self._emu_type) + + 'The guest VM will be slow.') + if self._target_cpu == 'arm64': + kvm_command = ['-cpu', 'cortex-a53'] + else: + kvm_command = ['-cpu', 'Haswell,+smap,-check,-fsgsbase'] + + emu_command.extend(kvm_command) + + kernel_args = boot_data.GetKernelArgs(self._output_dir) + + # TERM=dumb tells the guest OS to not emit ANSI commands that trigger + # noisy ANSI spew from the user's terminal emulator. + kernel_args.append('TERM=dumb') + + # Construct kernel cmd line + kernel_args.append('kernel.serial=legacy') + + # Don't 'reboot' the emulator if the kernel crashes + kernel_args.append('kernel.halt-on-panic=true') + + emu_command.extend(['-append', ' '.join(kernel_args)]) + + return emu_command + def _BuildCommand(self): + qemu_exec = 'qemu-system-'+self._GetTargetSdkLegacyArch() + qemu_command = [os.path.join(GetEmuRootForPlatform(self._emu_type), 'bin', + qemu_exec)] + qemu_command.extend(self._BuildQemuConfig()) + qemu_command.append('-nographic') + return qemu_command def _ComputeFileHash(filename): hasher = md5.new() @@ -202,7 +159,8 @@ def _EnsureBlobstoreQcowAndReturnPath(output_dir, target_arch): """Returns a file containing the Fuchsia blobstore in a QCOW format, with extra buffer space added for growth.""" - qimg_tool = os.path.join(common.GetQemuRootForPlatform(), 'bin', 'qemu-img') + qimg_tool = os.path.join(common.GetEmuRootForPlatform('qemu'), + 'bin', 'qemu-img') fvm_tool = os.path.join(common.SDK_ROOT, 'tools', 'fvm') blobstore_path = boot_data.GetTargetFile('storage-full.blk', target_arch, 'qemu') diff --git a/chromium/build/fuchsia/run_package.py b/chromium/build/fuchsia/run_package.py index 6e3a5d26364..2e0846da9cf 100644 --- a/chromium/build/fuchsia/run_package.py +++ b/chromium/build/fuchsia/run_package.py @@ -117,7 +117,6 @@ def _GetComponentUri(package_name): class RunPackageArgs: """RunPackage() configuration arguments structure. - install_only: If set, skips the package execution step. symbolizer_config: A newline delimited list of source files contained in the package. Omitting this parameter will disable symbolization. system_logging: If set, connects a system log reader to the target. @@ -125,7 +124,6 @@ class RunPackageArgs: installation. Defaults to staging into '/data'. """ def __init__(self): - self.install_only = False self.symbolizer_config = None self.system_logging = False self.target_staging_path = '/data' @@ -133,7 +131,6 @@ class RunPackageArgs: @staticmethod def FromCommonArgs(args): run_package_args = RunPackageArgs() - run_package_args.install_only = args.install_only run_package_args.system_logging = args.include_system_logs run_package_args.target_staging_path = args.target_staging_path return run_package_args @@ -151,15 +148,15 @@ def _DrainStreamToStdout(stream, quit_event): print(line.rstrip()) -def RunPackage(output_dir, target, package_path, package_name, - package_deps, package_args, args): +def RunPackage(output_dir, target, package_paths, package_name, + package_args, args): """Installs the Fuchsia package at |package_path| on the target, executes it with |package_args|, and symbolizes its output. output_dir: The path containing the build output files. target: The deployment Target object that will run the package. - package_path: The path to the .far package file. - package_name: The name of app specified by package metadata. + package_paths: The paths to the .far packages to be installed. + package_name: The name of the primary package to run. package_args: The arguments which will be passed to the Fuchsia process. args: Structure of arguments to configure how the package will be run. @@ -178,16 +175,12 @@ def RunPackage(output_dir, target, package_path, package_name, log_output_thread.daemon = True log_output_thread.start() - target.InstallPackage(package_path, package_name, package_deps) + target.InstallPackage(package_paths) if system_logger: log_output_quit_event.set() log_output_thread.join(timeout=_JOIN_TIMEOUT_SECS) - if args.install_only: - logging.info('Installation complete.') - return - logging.info('Running application.') command = ['run', _GetComponentUri(package_name)] + package_args process = target.RunCommandPiped(command, @@ -205,7 +198,7 @@ def RunPackage(output_dir, target, package_path, package_name, build_ids_paths = map( lambda package_path: os.path.join( os.path.dirname(package_path), 'ids.txt'), - [package_path] + package_deps) + package_paths) output_stream = SymbolizerFilter(output_stream, build_ids_paths) for next_line in output_stream: diff --git a/chromium/build/fuchsia/target.py b/chromium/build/fuchsia/target.py index 0d29cd1b7aa..b2e1505a5d8 100644 --- a/chromium/build/fuchsia/target.py +++ b/chromium/build/fuchsia/target.py @@ -40,14 +40,6 @@ def _GetPackageInfo(package_path): return (package_info['name'], package_info['version']) -def _PublishPackage(tuf_root, package_path): - """Publishes a combined FAR package to a TUF repository root.""" - - subprocess.check_call( - [_PM, 'publish', '-a', '-f', package_path, '-r', tuf_root, '-vt', '-v'], - stderr=subprocess.STDOUT) - - class _MapIsolatedPathsForPackage: """Callable object which remaps /data and /tmp paths to their package-specific locations.""" @@ -266,15 +258,12 @@ class Target(object): return 'x86_64' raise Exception('Unknown target_cpu %s:' % self._target_cpu) - def InstallPackage(self, package_path, package_name, package_deps): + def InstallPackage(self, package_paths): """Installs a package and it's dependencies on the device. If the package is already installed then it will be updated to the new version. - package_path: Path to the .far file to be installed. - package_name: Package name. - package_deps: List of .far files with the packages that the main package - depends on. These packages are installed or updated as well. - """ + package_paths: Paths to the .far files to install.""" + try: tuf_root = tempfile.mkdtemp() pm_serve_task = None @@ -289,9 +278,8 @@ class Target(object): ':%d' % serve_port, '-q']) # Publish all packages to the serving TUF repository under |tuf_root|. - all_packages = [package_path] + package_deps - for next_package_path in all_packages: - _PublishPackage(tuf_root, next_package_path) + for next_package_path in package_paths: + common.PublishPackage(next_package_path, tuf_root) _WaitForPmServeToBeReady(serve_port) @@ -299,7 +287,7 @@ class Target(object): self._RegisterAmberRepository(tuf_root, remote_port) # Install all packages. - for next_package_path in all_packages: + for next_package_path in package_paths: install_package_name, package_version = \ _GetPackageInfo(next_package_path) logging.info('Installing %s version %s.' % diff --git a/chromium/build/fuchsia/test_runner.py b/chromium/build/fuchsia/test_runner.py index 669de83a95a..6efa46f224c 100755 --- a/chromium/build/fuchsia/test_runner.py +++ b/chromium/build/fuchsia/test_runner.py @@ -123,7 +123,7 @@ def main(): run_package_args = RunPackageArgs.FromCommonArgs(args) returncode = RunPackage( args.output_directory, target, args.package, args.package_name, - args.package_dep, child_args, run_package_args) + child_args, run_package_args) if test_server: test_server.Stop() diff --git a/chromium/build/linux/sysroot_scripts/debian-archive-sid-stable.gpg b/chromium/build/linux/sysroot_scripts/debian_archive_unstable.gpg Binary files differindex a282485bc69..388abb549ef 100644 --- a/chromium/build/linux/sysroot_scripts/debian-archive-sid-stable.gpg +++ b/chromium/build/linux/sysroot_scripts/debian_archive_unstable.gpg diff --git a/chromium/build/linux/sysroot_scripts/generate_debian_archive_unstable_gpg.sh b/chromium/build/linux/sysroot_scripts/generate_debian_archive_unstable_gpg.sh new file mode 100755 index 00000000000..27cc1005b25 --- /dev/null +++ b/chromium/build/linux/sysroot_scripts/generate_debian_archive_unstable_gpg.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# Copyright 2019 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. + +set -o nounset +set -o errexit + +SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + +KEYS=( + # Debian Archive Automatic Signing Key (10/buster) + "DC30D7C23CBBABEE" + # Debian Security Archive Automatic Signing Key (10/buster) + "4DFAB270CAA96DFA" + # Debian Archive Automatic Signing Key (10/buster) + "DC30D7C23CBBABEE" + # Jessie Stable Release Key + "CBF8D6FD518E17E1" + # Debian Archive Automatic Signing Key (7.0/wheezy) + "8B48AD6246925553" + # Debian Archive Automatic Signing Key (8/jessie) + "7638D0442B90D010" + # Debian Security Archive Automatic Signing Key (8/jessie) + "9D6D8F6BC857C906" + # Debian Archive Automatic Signing Key (9/stretch) + "E0B11894F66AEC98" + # Debian Security Archive Automatic Signing Key (9/stretch) + "EDA0D2388AE22BA9" + # Debian Stable Release Key (9/stretch) + "EF0F382A1A7B6500" +) + +gpg --recv-keys ${KEYS[@]} +gpg --output "${SCRIPT_DIR}/debian_archive_unstable.gpg" --export ${KEYS[@]} diff --git a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.amd64 b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.amd64 index 91a8d94b2c1..9bdd555f90c 100644 --- a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.amd64 +++ b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.amd64 @@ -1,346 +1,337 @@ -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/alsa-lib/libasound2_1.1.7-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/alsa-lib/libasound2-dev_1.1.7-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/atk1.0/libatk1.0-0_2.30.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/atk1.0/libatk1.0-dev_2.30.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.30.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.30.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.30.0-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.30.0-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/attr/libattr1_2.4.47-2+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/audit/libaudit1_2.8.4-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/b/bluez/libbluetooth3_5.50-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/b/bluez/libbluetooth-dev_5.50-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/b/brltty/libbrlapi0.6_5.6-7+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/b/brltty/libbrlapi-dev_5.6-7+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cairo/libcairo2_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cairo/libcairo2-dev_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/colord/libcolord2_1.4.3-3+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cups/libcups2_2.2.10-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cups/libcups2-dev_2.2.10-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cups/libcupsimage2_2.2.10-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/c/cups/libcupsimage2-dev_2.2.10-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/d/dbus/libdbus-1-3_1.12.12-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/d/dbus/libdbus-1-dev_1.12.12-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.44.4-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/e/e2fsprogs/libcom-err2_1.44.4-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/e/elfutils/libelf1_0.175-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/e/elfutils/libelf-dev_0.175-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/e/expat/libexpat1_2.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/e/expat/libexpat1-dev_2.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/flac/libflac8_1.3.2-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/flac/libflac-dev_1.3.2-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/freetype/libfreetype6_2.9.1-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/fribidi/libfribidi0_1.0.5-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/f/fribidi/libfribidi-dev_1.0.5-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-6/lib32asan3_6.5.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-6/lib32gcc-6-dev_6.5.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-6/lib32stdc++-6-dev_6.5.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-6/libasan3_6.5.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-6/libgcc-6-dev_6.5.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-6/libstdc++-6-dev_6.5.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-7/lib32cilkrts5_7.4.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-7/lib32ubsan0_7.4.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-7/libcilkrts5_7.4.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-7/libubsan0_7.4.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/lib32atomic1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/lib32gcc1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/lib32gomp1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/lib32itm1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/lib32mpx2_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/lib32quadmath0_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/lib32stdc++6_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libatomic1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libgcc1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libgomp1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libitm1_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/liblsan0_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libmpx2_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libquadmath0_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libstdc++6_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gcc-8/libtsan0_8.2.0-12_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.38.0+dfsg-6_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.38.0+dfsg-6_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/glib2.0/libglib2.0-0_2.58.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/glib2.0/libglib2.0-dev_2.58.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/glibc/libc6_2.28-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/glibc/libc6-dev_2.28-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/glibc/libc6-i386_2.28-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gnutls28/libgnutls28-dev_3.5.19-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gnutls28/libgnutls30_3.5.19-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gnutls28/libgnutls-dane0_3.5.19-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gnutls28/libgnutls-openssl27_3.5.19-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gnutls28/libgnutlsxx28_3.5.19-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/graphene/libgraphene-1.0-0_1.8.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/graphene/libgraphene-1.0-dev_1.8.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/graphite2/libgraphite2-3_1.3.12-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/graphite2/libgraphite2-dev_1.3.12-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.2-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.2-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gtk+4.0/libgtk-4-0_3.91.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.91.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/h/harfbuzz/libharfbuzz0b_2.1.1-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.1.1-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.1.1-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.1.1-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/i/icu/libicu57_57.1-9_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/i/icu/libicu60_60.2-6_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/i/icu/libicu63_63.1-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/keyutils/libkeyutils1_1.5.9-9.3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/krb5-multidev_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libgssapi-krb5-2_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libgssrpc4_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libk5crypto3_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libkadm5clnt-mit11_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libkadm5srv-mit11_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libkdb5-9_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libkrb5-3_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libkrb5-dev_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/k/krb5/libkrb5support0_1.16.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/liba/libasyncns/libasyncns0_0.8-6_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libb/libbsd/libbsd0_0.9.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libc/libcap2/libcap2_2.25-1.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libc/libcap2/libcap-dev_2.25-1.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdrm/libdrm2_2.4.95-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.95-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdrm/libdrm-dev_2.4.95-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdrm/libdrm-intel1_2.4.95-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.95-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.95-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libf/libffi/libffi6_3.2.1-9_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libf/libffi/libffi7_3.3~rc0-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.4-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.4-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libegl1_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libgl1_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libgles1_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libgles2_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libglx0_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libgpg-error/libgpg-error0_1.32-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.32-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libi/libice/libice6_1.0.9-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libi/libidn2/libidn2-0_2.0.5-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libi/libidn/libidn11_1.33-2.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b6_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libp/libpng1.6/libpng16-16_1.6.34-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libp/libpng1.6/libpng-dev_1.6.34-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.3-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libs/libselinux/libselinux1_2.8-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libs/libsm/libsm6_1.2.2-1+b3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.64.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.64.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libt/libtasn1-6/libtasn1-6_4.13-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libt/libthai/libthai0_0.1.28-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libt/libtool/libltdl7_2.4.6-6_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libu/libunistring/libunistring2_0.9.10-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libva/libva2_2.3.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libva/libva-dev_2.3.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libva/libva-drm2_2.3.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libva/libva-glx2_2.3.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libva/libva-wayland2_2.3.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libva/libva-x11-2_2.3.0-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libvpx/libvpx5_1.7.0-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libv/libvpx/libvpx-dev_1.7.0-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libw/libwebp/libwebp6_0.6.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libx11/libx11-6_1.6.7-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libx11/libx11-dev_1.6.7-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libx11/libx11-xcb1_1.6.7-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.7-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcursor/libxcursor1_1.1.15-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxcursor/libxcursor-dev_1.1.15-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxdamage/libxdamage1_1.1.4-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.4-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxi/libxi6_1.7.9-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxss/libxss1_1.2.3-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxt/libxt6_1.1.5-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxt/libxt-dev_1.1.5-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/libz/libzstd/libzstd1_1.3.5+dfsg-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/l/lcms2/liblcms2-2_2.9-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/l/linux/linux-libc-dev_4.18.20-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/l/lz4/liblz4-1_1.8.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libegl1-mesa_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libegl1-mesa-dev_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libgbm1_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libgbm-dev_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libgl1-mesa-dev_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libgl1-mesa-glx_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libglapi-mesa_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/libwayland-egl1-mesa_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/mesa/mesa-common-dev_18.2.6-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/minizip/libminizip1_1.1-8+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/n/nettle/libhogweed4_3.4.1~rc1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/n/nettle/libnettle6_3.4.1~rc1-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/n/nspr/libnspr4_4.20-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/n/nspr/libnspr4-dev_4.20-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/n/nss/libnss3_3.41-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/n/nss/libnss3-dev_3.41-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/o/openssl1.0/libssl1.0.2_1.0.2q-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/o/openssl/libssl1.1_1.1.1a-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/o/openssl/libssl-dev_1.1.1a-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/o/opus/libopus0_1.3~beta+20180518-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/o/opus/libopus-dev_1.3~beta+20180518-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/o/orbit2/liborbit-2-0_2.14.19-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/o/orbit2/liborbit2_2.14.19-4_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/p11-kit/libp11-kit0_0.23.14-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pam/libpam0g_1.1.8-3.8_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pam/libpam0g-dev_1.1.8-3.8_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-5_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pciutils/libpci3_3.5.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pciutils/libpci-dev_3.5.2-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pcre3/libpcre16-3_8.39-11_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pcre3/libpcre32-3_8.39-11_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pcre3/libpcre3_8.39-11_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pcre3/libpcre3-dev_8.39-11_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-11_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.3-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.3-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.3-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pulseaudio/libpulse0_12.2-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pulseaudio/libpulse-dev_12.2-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_12.2-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/r/re2/libre2-4_20180901+dfsg-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/r/re2/libre2-dev_20180901+dfsg-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/speech-dispatcher/libspeechd2_0.8.8-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.8.8-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.8.8-7_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/sqlite3/libsqlite3-0_3.26.0-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/systemd/libsystemd0_239-15_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/systemd/libudev1_239-15_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/s/systemd/libudev-dev_239-15_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-27_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/t/tiff/libtiff5_4.0.10-3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/u/unbound/libunbound8_1.8.1-1+b1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/u/util-linux/libblkid1_2.33-0.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/u/util-linux/libmount1_2.33-0.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/u/util-linux/libuuid1_2.33-0.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/u/util-linux/uuid-dev_2.33-0.2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/w/wayland/libwayland-client0_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/w/wayland/libwayland-cursor0_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/w/wayland/libwayland-dev_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/w/wayland/libwayland-egl1_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/w/wayland/libwayland-server0_1.16.0-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/w/wayland-protocols/wayland-protocols_1.16-1_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xft/libxft2_2.3.2-2_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/x/xz-utils/liblzma5_5.2.2-1.3_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/z/zlib/lib32z1_1.2.11.dfsg-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/z/zlib/lib32z1-dev_1.2.11.dfsg-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1_amd64.deb -https://snapshot.debian.org/archive/debian/20181214T150526Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2_1.1.8-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2-dev_1.1.8-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-0_2.34.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-dev_2.34.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.34.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.34.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.34.0-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.34.0-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/attr/libattr1_2.4.48-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/audit/libaudit1_2.8.5-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth3_5.50-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth-dev_5.50-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi-dev_6.0+dfsg-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brotli/libbrotli1_1.0.7-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2_1.16.0-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2-dev_1.16.0-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/colord/libcolord2_1.4.4-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2_2.3.0-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2-dev_2.3.0-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2_2.3.0-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2-dev_2.3.0-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-3_1.12.16-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-dev_1.12.16-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.45.4-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/libcom-err2_1.45.4-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf1_0.176-1.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf-dev_0.176-1.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1_2.2.9-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1-dev_2.2.9-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac8_1.3.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac-dev_1.3.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6_2.9.1-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi0_1.0.7-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi-dev_1.0.7-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libasan4_7.4.0-14_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libcilkrts5_7.4.0-14_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libgcc-7-dev_7.4.0-14_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libstdc++-7-dev_7.4.0-14_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libubsan0_7.4.0-14_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-8/libmpx2_8.3.0-23_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libatomic1_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgcc1_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgomp1_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libitm1_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/liblsan0_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libquadmath0_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libstdc++6_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libtsan0_9.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.40.0+dfsg-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.40.0+dfsg-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-0_2.62.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-dev_2.62.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6_2.29-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6-dev_2.29-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls28-dev_3.6.9-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls30_3.6.9-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-dane0_3.6.9-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-openssl27_3.6.9-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutlsxx28_3.6.9-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-3_1.3.13-8_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-dev_1.3.13-8_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.12-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.12-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-0_3.96.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.96.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz0b_2.6.2-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.6.2-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.6.2-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.6.2-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu/libicu63_63.2-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/keyutils/libkeyutils1_1.6-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/krb5-multidev_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssapi-krb5-2_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssrpc4_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libk5crypto3_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5clnt-mit11_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5srv-mit11_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkdb5-9_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-3_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-dev_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5support0_1.17-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libb/libbsd/libbsd0_0.10.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap2_2.25-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap-dev_2.25-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm2_2.4.99-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.99-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-dev_2.4.99-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-intel1_2.4.99-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.99-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.99-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi6_3.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi7_3.3~rc0-8_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.5-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.5-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libegl1_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgl1_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles1_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles2_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglx0_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error0_1.36-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.36-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libice/libice6_1.0.9-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn2/libidn2-0_2.2.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn/libidn11_1.33-2.2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b8_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1_2.9-2+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1-dev_2.9-2+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1_2.9-2+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1-dev_2.9-2+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsm/libsm6_1.2.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-6_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.68.2-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.68.2-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtasn1-6/libtasn1-6_4.14-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtool/libltdl7_2.4.6-11_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libu/libunistring/libunistring2_0.9.10-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva2_2.5.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-dev_2.5.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-drm2_2.5.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-glx2_2.5.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-wayland2_2.5.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-x11-2_2.5.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx6_1.8.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx-dev_1.8.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp6_0.6.1-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-6_1.6.8-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-dev_1.6.8-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb1_1.6.8-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.8-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi6_1.7.9-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.4-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.4-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss1_1.2.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt6_1.1.5-1+b3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt-dev_1.1.5-1+b3_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libz/libzstd/libzstd1_1.4.3+dfsg-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lcms2/liblcms2-2_2.9-4_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/linux/linux-libc-dev_5.2.17-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lz4/liblz4-1_1.9.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa-dev_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm1_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm-dev_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-dev_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-glx_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libglapi-mesa_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libwayland-egl1-mesa_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/mesa-common-dev_19.2.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip1_1.1-8+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libhogweed4_3.5.1+really3.4.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libnettle6_3.5.1+really3.4.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4_4.21-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4-dev_4.21-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3_3.45-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3-dev_3.45-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl1.1_1.1.1d-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl-dev_1.1.1d-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus0_1.3-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus-dev_1.3-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/p11-kit/libp11-kit0_0.23.17-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g_1.3.1-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g-dev_1.3.1-5_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci3_3.6.2-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci-dev_3.6.2-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-16-0_10.32-5+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-32-0_10.32-5+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-8-0_10.32-5+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-dev_10.32-5+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-posix0_10.32-5+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre16-3_8.39-12+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre32-3_8.39-12+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3_8.39-12+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3-dev_8.39-12+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-12+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.5-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.5-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.5-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse0_13.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-dev_13.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_13.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-5_20190901+dfsg-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-dev_20190901+dfsg-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd2_0.9.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.9.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.9.1-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/sqlite3/libsqlite3-0_3.30.1-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libsystemd0_242-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev1_242-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev-dev_242-7_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-28_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tiff/libtiff5_4.0.10+git191003-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/unbound/libunbound8_1.9.4-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid1_2.34-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid-dev_2.34-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount1_2.34-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount-dev_2.34-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libuuid1_2.34-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/uuid-dev_2.34-0.1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/v/vulkan-loader/libvulkan1_1.1.121.0-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-client0_1.17.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-cursor0_1.17.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-dev_1.17.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-egl1_1.17.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-server0_1.17.0-1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland-protocols/wayland-protocols_1.18-1_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xft/libxft2_2.3.2-2_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xz-utils/liblzma5_5.2.4-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1+b1_amd64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1+b1_amd64.deb diff --git a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm index c6c86be2f27..f11fd4de1ab 100644 --- a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm +++ b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm @@ -1,327 +1,336 @@ -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2_1.1.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2-dev_1.1.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-0_2.30.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-dev_2.30.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.30.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.30.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-0_2.30.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-dev_2.30.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/attr/libattr1_2.4.47-2+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/audit/libaudit1_2.8.4-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-client3_0.7-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-common3_0.7-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth3_5.50-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth-dev_5.50-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi0.6_5.6-5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi-dev_5.6-5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2_1.15.12-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2-dev_1.15.12-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-gobject2_1.15.12-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-script-interpreter2_1.15.12-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/colord/libcolord2_1.4.3-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2_2.2.8-5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2-dev_2.2.8-5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2_2.2.8-5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2-dev_2.2.8-5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-3_1.12.10-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-dev_1.12.10-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/comerr-dev_2.1-1.44.4-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/libcom-err2_1.44.4-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf1_0.170-0.5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf-dev_0.170-0.5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1_2.2.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1-dev_2.2.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac8_1.3.2-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac-dev_1.3.2-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1_2.13.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6_2.8.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6-dev_2.8.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi0_1.0.5-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi-dev_1.0.5-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libasan3_6.4.0-22_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libgcc-6-dev_6.4.0-22_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libstdc++-6-dev_6.4.0-22_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-7/libubsan0_7.3.0-29_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libatomic1_8.2.0-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgcc1_8.2.0-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgomp1_8.2.0-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.2.0-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.38.0+dfsg-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.38.0+dfsg-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0_2.58.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-dev_2.58.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.27-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6-dev_2.27-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gmp/libgmp10_6.1.2+dfsg-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls28-dev_3.5.19-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls30_3.5.19-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-dane0_3.5.19-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-openssl27_3.5.19-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutlsxx28_3.5.19-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-0_1.8.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-dev_1.8.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-3_1.3.12-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-dev_1.3.12-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-0_3.24.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-0_3.91.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-dev_3.91.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz0b_1.9.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-dev_1.9.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-gobject0_1.9.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-icu0_1.9.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git161113-5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-9_armhf.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu60_60.2-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.2-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.5.9-9.3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/krb5-multidev_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssapi-krb5-2_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssrpc4_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libk5crypto3_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5clnt-mit11_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5srv-mit11_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkdb5-9_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-3_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-dev_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5support0_1.16.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/liba/libasyncns/libasyncns0_0.8-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libb/libbsd/libbsd0_0.9.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap2_2.25-1.2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap-dev_2.25-1.2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdatrie/libdatrie1_0.2.12-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm2_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-dev_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-exynos1_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-freedreno1_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-nouveau2_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-omap1_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-radeon1_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-tegra0_2.4.94-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy0_1.5.2-0.3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy-dev_1.5.2-0.3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-8_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi7_3.3~rc0-7_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi-dev_3.2.1-8_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20_1.8.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libegl1_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgl1_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles1_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles2_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd0_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglx0_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libopengl0_1.1.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error0_1.32-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error-dev_1.32-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libi/libice/libice6_1.0.9-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidl/libidl-2-0_0.8.14-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn2/libidn2-0_2.0.5-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn/libidn11_1.33-2.2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator7_0.5.0-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b5_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg0_1.3.2-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng16-16_1.6.34-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng-dev_1.6.34-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpsl/libpsl5_0.20.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.3-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libr/librest/librest-0.7-0_0.8.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libs/libselinux/libselinux1_2.8-1+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsm/libsm6_1.2.2-1+b3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsndfile/libsndfile1_1.0.28-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup2.4-1_2.64.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.64.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtasn1-6/libtasn1-6_4.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libt/libthai/libthai0_0.1.28-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtool/libltdl7_2.4.6-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libu/libunistring/libunistring2_0.9.10-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva2_2.3.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-dev_2.3.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-drm2_2.3.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-glx2_2.3.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-wayland2_2.3.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-x11-2_2.3.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbis0a_1.3.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx5_1.7.0-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx-dev_1.7.0-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp-dev_0.6.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpmux3_0.6.1-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-6_1.6.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-dev_1.6.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb1_1.6.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb-dev_1.6.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau6_1.0.8-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1-dev_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri3-0_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0-dev_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-present0_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0-dev_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0-dev_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-sync1_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-xfixes0_1.13-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor1_1.1.15-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor-dev_1.1.15-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage1_1.1.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage-dev_1.1.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext6_1.3.3-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi6_1.7.9-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi-dev_1.7.9-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama1_1.1.4-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender1_0.9.10-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1.1_1.1.32-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss1_1.2.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss-dev_1.2.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt6_1.1.5-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt-dev_1.1.5-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst6_1.2.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/l/lcms2/liblcms2-2_2.9-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/l/linux/linux-libc-dev_4.18.6-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/l/lz4/liblz4-1_1.8.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/l/lzo2/liblzo2-2_2.10-0.1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa-dev_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm1_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm-dev_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-dev_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-glx_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libglapi-mesa_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libwayland-egl1-mesa_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/mesa-common-dev_18.1.8-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip1_1.1-8+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip-dev_1.1-8+b1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libhogweed4_3.4-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libnettle6_3.4-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4_4.20-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4-dev_4.20-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3_3.39-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3-dev_3.39-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2o-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.1-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus0_1.3~beta+20180518-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus-dev_1.3~beta+20180518-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit-2-0_2.14.19-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit2_2.14.19-4_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/p11-kit/libp11-kit0_0.23.14-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g_1.1.8-3.8_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g-dev_1.1.8-3.8_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci3_3.5.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci-dev_3.5.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre16-3_8.39-11_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre32-3_8.39-11_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3_8.39-11_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3-dev_8.39-11_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcrecpp0v5_8.39-11_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-1_0.2.3-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.3-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.3-3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-0_0.34.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-dev_0.34.0-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse0_12.2-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-dev_12.2-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-mainloop-glib0_12.2-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-4_20180901+dfsg-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-dev_20180901+dfsg-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy1v5_1.1.7-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy-dev_1.1.7-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd2_0.8.8-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd-dev_0.8.8-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/speech-dispatcher_0.8.8-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/sqlite3/libsqlite3-0_3.25.2-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libsystemd0_239-10_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev1_239-10_armhf.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev-dev_239-10_armhf.deb -http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-27_armhf.deb -http://ftp.us.debian.org/debian/pool/main/t/tiff/libtiff5_4.0.9-6_armhf.deb -http://ftp.us.debian.org/debian/pool/main/u/unbound/libunbound8_1.8.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libblkid1_2.32.1-0.1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libmount1_2.32.1-0.1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libuuid1_2.32.1-0.1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/uuid-dev_2.32.1-0.1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-client0_1.16.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-cursor0_1.16.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-dev_1.16.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-egl1_1.16.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-server0_1.16.0-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland-protocols/wayland-protocols_1.16-1_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xft/libxft2_2.3.2-2_armhf.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xz-utils/liblzma5_5.2.2-1.3_armhf.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1_armhf.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2_1.1.8-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2-dev_1.1.8-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-0_2.34.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-dev_2.34.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.34.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.34.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.34.0-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.34.0-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/attr/libattr1_2.4.48-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/audit/libaudit1_2.8.5-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth3_5.50-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth-dev_5.50-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi-dev_6.0+dfsg-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brotli/libbrotli1_1.0.7-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2_1.16.0-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2-dev_1.16.0-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/colord/libcolord2_1.4.4-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2_2.3.0-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2-dev_2.3.0-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2_2.3.0-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2-dev_2.3.0-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-3_1.12.16-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-dev_1.12.16-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.45.4-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/libcom-err2_1.45.4-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf1_0.176-1.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf-dev_0.176-1.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1_2.2.9-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1-dev_2.2.9-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac8_1.3.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac-dev_1.3.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6_2.9.1-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi0_1.0.7-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi-dev_1.0.7-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libasan4_7.4.0-14_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libcilkrts5_7.4.0-14_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libgcc-7-dev_7.4.0-14_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libstdc++-7-dev_7.4.0-14_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libubsan0_7.4.0-14_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libatomic1_9.2.1-9_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgcc1_9.2.1-9_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgomp1_9.2.1-9_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libstdc++6_9.2.1-9_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.40.0+dfsg-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.40.0+dfsg-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-0_2.62.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-dev_2.62.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6_2.29-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6-dev_2.29-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls28-dev_3.6.9-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls30_3.6.9-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-dane0_3.6.9-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-openssl27_3.6.9-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutlsxx28_3.6.9-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-3_1.3.13-8_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-dev_1.3.13-8_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.12-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.12-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-0_3.96.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.96.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz0b_2.6.2-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.6.2-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.6.2-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.6.2-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu/libicu63_63.2-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/keyutils/libkeyutils1_1.6-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/krb5-multidev_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssapi-krb5-2_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssrpc4_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libk5crypto3_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5clnt-mit11_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5srv-mit11_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkdb5-9_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-3_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-dev_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5support0_1.17-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libb/libbsd/libbsd0_0.10.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap2_2.25-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap-dev_2.25-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm2_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-dev_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-exynos1_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-omap1_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.99-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi6_3.2.1-9_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi7_3.3~rc0-8_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.5-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.5-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libegl1_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgl1_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles1_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles2_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglx0_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error0_1.36-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.36-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libice/libice6_1.0.9-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn2/libidn2-0_2.2.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn/libidn11_1.33-2.2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b8_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1_2.9-2+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1-dev_2.9-2+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1_2.9-2+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1-dev_2.9-2+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsm/libsm6_1.2.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-6_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.68.2-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.68.2-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtasn1-6/libtasn1-6_4.14-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtool/libltdl7_2.4.6-11_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libu/libunistring/libunistring2_0.9.10-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva2_2.5.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-dev_2.5.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-drm2_2.5.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-glx2_2.5.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-wayland2_2.5.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-x11-2_2.5.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx6_1.8.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx-dev_1.8.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp6_0.6.1-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-6_1.6.8-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-dev_1.6.8-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb1_1.6.8-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.8-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi6_1.7.9-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.4-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.4-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss1_1.2.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt6_1.1.5-1+b3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt-dev_1.1.5-1+b3_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libz/libzstd/libzstd1_1.4.3+dfsg-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lcms2/liblcms2-2_2.9-4_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/linux/linux-libc-dev_5.2.17-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lz4/liblz4-1_1.9.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa-dev_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm1_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm-dev_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-dev_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-glx_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libglapi-mesa_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libwayland-egl1-mesa_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/mesa-common-dev_19.2.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip1_1.1-8+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libhogweed4_3.5.1+really3.4.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libnettle6_3.5.1+really3.4.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4_4.21-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4-dev_4.21-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3_3.45-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3-dev_3.45-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl1.1_1.1.1d-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl-dev_1.1.1d-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus0_1.3-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus-dev_1.3-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/p11-kit/libp11-kit0_0.23.17-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g_1.3.1-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g-dev_1.3.1-5_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci3_3.6.2-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci-dev_3.6.2-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-16-0_10.32-5+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-32-0_10.32-5+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-8-0_10.32-5+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-dev_10.32-5+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-posix0_10.32-5+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre16-3_8.39-12+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre32-3_8.39-12+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3_8.39-12+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3-dev_8.39-12+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-12+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.5-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.5-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.5-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse0_13.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-dev_13.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_13.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-5_20190901+dfsg-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-dev_20190901+dfsg-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd2_0.9.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.9.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.9.1-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/sqlite3/libsqlite3-0_3.30.1-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libsystemd0_242-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev1_242-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev-dev_242-7_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-28_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tiff/libtiff5_4.0.10+git191003-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/unbound/libunbound8_1.9.4-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid1_2.34-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid-dev_2.34-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount1_2.34-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount-dev_2.34-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libuuid1_2.34-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/uuid-dev_2.34-0.1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/v/vulkan-loader/libvulkan1_1.1.121.0-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-client0_1.17.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-cursor0_1.17.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-dev_1.17.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-egl1_1.17.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-server0_1.17.0-1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland-protocols/wayland-protocols_1.18-1_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xft/libxft2_2.3.2-2_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xz-utils/liblzma5_5.2.4-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1+b1_armhf.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1+b1_armhf.deb diff --git a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm64 b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm64 index 2ad21f52ea4..d6fc9b96743 100644 --- a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm64 +++ b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.arm64 @@ -1,328 +1,338 @@ -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2_1.1.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2-dev_1.1.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-0_2.30.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-dev_2.30.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.30.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.30.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-0_2.30.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-dev_2.30.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/attr/libattr1_2.4.47-2+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/audit/libaudit1_2.8.4-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-client3_0.7-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-common3_0.7-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth3_5.50-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth-dev_5.50-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi0.6_5.6-5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi-dev_5.6-5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2_1.15.12-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2-dev_1.15.12-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-gobject2_1.15.12-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-script-interpreter2_1.15.12-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/colord/libcolord2_1.4.3-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2_2.2.8-5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2-dev_2.2.8-5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2_2.2.8-5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2-dev_2.2.8-5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-3_1.12.10-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-dev_1.12.10-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/comerr-dev_2.1-1.44.4-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/libcom-err2_1.44.4-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf1_0.170-0.5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf-dev_0.170-0.5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1_2.2.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1-dev_2.2.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac8_1.3.2-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac-dev_1.3.2-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1_2.13.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6_2.8.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6-dev_2.8.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi0_1.0.5-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi-dev_1.0.5-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libasan3_6.4.0-22_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libgcc-6-dev_6.4.0-22_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libstdc++-6-dev_6.4.0-22_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-7/libubsan0_7.3.0-29_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libatomic1_8.2.0-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgcc1_8.2.0-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgomp1_8.2.0-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libitm1_8.2.0-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.2.0-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.38.0+dfsg-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.38.0+dfsg-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0_2.58.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-dev_2.58.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.27-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6-dev_2.27-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gmp/libgmp10_6.1.2+dfsg-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gmp/libgmp10_6.1.2+dfsg-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls28-dev_3.5.19-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls30_3.5.19-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-dane0_3.5.19-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-openssl27_3.5.19-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutlsxx28_3.5.19-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-0_1.8.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-dev_1.8.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-3_1.3.12-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-dev_1.3.12-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-0_3.24.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-0_3.91.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-dev_3.91.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz0b_1.9.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-dev_1.9.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-gobject0_1.9.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-icu0_1.9.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git161113-5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-9_arm64.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu60_60.2-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.2-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.5.9-9.3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/krb5-multidev_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssapi-krb5-2_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssrpc4_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libk5crypto3_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5clnt-mit11_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5srv-mit11_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkdb5-9_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-3_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-dev_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5support0_1.16.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/liba/libasyncns/libasyncns0_0.8-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libb/libbsd/libbsd0_0.9.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap2_2.25-1.2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap-dev_2.25-1.2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdatrie/libdatrie1_0.2.12-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm2_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-dev_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-freedreno1_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-nouveau2_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-radeon1_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-tegra0_2.4.94-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy0_1.5.2-0.3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy-dev_1.5.2-0.3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-8_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi7_3.3~rc0-7_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi-dev_3.2.1-8_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20_1.8.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libegl1_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgl1_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles1_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles2_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd0_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglx0_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libopengl0_1.1.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error0_1.32-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error-dev_1.32-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libi/libice/libice6_1.0.9-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidl/libidl-2-0_0.8.14-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn2/libidn2-0_2.0.5-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn/libidn11_1.33-2.2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator7_0.5.0-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b5_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg0_1.3.2-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng16-16_1.6.34-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng-dev_1.6.34-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpsl/libpsl5_0.20.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.3-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libr/librest/librest-0.7-0_0.8.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libs/libselinux/libselinux1_2.8-1+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsm/libsm6_1.2.2-1+b3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsndfile/libsndfile1_1.0.28-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup2.4-1_2.64.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.64.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtasn1-6/libtasn1-6_4.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libt/libthai/libthai0_0.1.28-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libt/libthai/libthai0_0.1.28-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtool/libltdl7_2.4.6-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libu/libunistring/libunistring2_0.9.10-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva2_2.3.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-dev_2.3.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-drm2_2.3.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-glx2_2.3.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-wayland2_2.3.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-x11-2_2.3.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbis0a_1.3.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx5_1.7.0-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx-dev_1.7.0-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp-dev_0.6.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpmux3_0.6.1-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-6_1.6.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-dev_1.6.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb1_1.6.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb-dev_1.6.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau6_1.0.8-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1-dev_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri3-0_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0-dev_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-present0_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0-dev_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0-dev_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-sync1_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-xfixes0_1.13-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor1_1.1.15-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor-dev_1.1.15-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage1_1.1.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage-dev_1.1.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext6_1.3.3-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi6_1.7.9-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi-dev_1.7.9-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama1_1.1.4-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender1_0.9.10-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1.1_1.1.32-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss1_1.2.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss-dev_1.2.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt6_1.1.5-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt-dev_1.1.5-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst6_1.2.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/l/lcms2/liblcms2-2_2.9-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/l/linux/linux-libc-dev_4.18.6-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/l/lz4/liblz4-1_1.8.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/l/lzo2/liblzo2-2_2.10-0.1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa-dev_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm1_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm-dev_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-dev_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-glx_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libglapi-mesa_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libwayland-egl1-mesa_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/mesa-common-dev_18.1.8-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip1_1.1-8+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip-dev_1.1-8+b1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libhogweed4_3.4-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libnettle6_3.4-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4_4.20-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4-dev_4.20-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3_3.39-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3-dev_3.39-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2o-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.1-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus0_1.3~beta+20180518-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus-dev_1.3~beta+20180518-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit-2-0_2.14.19-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit2_2.14.19-4_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/p11-kit/libp11-kit0_0.23.14-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g_1.1.8-3.8_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g-dev_1.1.8-3.8_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci3_3.5.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci-dev_3.5.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre16-3_8.39-11_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre32-3_8.39-11_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3_8.39-11_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3-dev_8.39-11_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcrecpp0v5_8.39-11_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-1_0.2.3-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.3-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.3-3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-0_0.34.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-dev_0.34.0-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse0_12.2-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-dev_12.2-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-mainloop-glib0_12.2-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-4_20180901+dfsg-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-dev_20180901+dfsg-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy1v5_1.1.7-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy-dev_1.1.7-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd2_0.8.8-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd-dev_0.8.8-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/speech-dispatcher_0.8.8-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/sqlite3/libsqlite3-0_3.25.2-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libsystemd0_239-10_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev1_239-10_arm64.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev-dev_239-10_arm64.deb -http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-27_arm64.deb -http://ftp.us.debian.org/debian/pool/main/t/tiff/libtiff5_4.0.9-6_arm64.deb -http://ftp.us.debian.org/debian/pool/main/u/unbound/libunbound8_1.8.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libblkid1_2.32.1-0.1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libmount1_2.32.1-0.1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libuuid1_2.32.1-0.1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/uuid-dev_2.32.1-0.1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-client0_1.16.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-cursor0_1.16.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-dev_1.16.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-egl1_1.16.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-server0_1.16.0-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland-protocols/wayland-protocols_1.16-1_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xft/libxft2_2.3.2-2_arm64.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xz-utils/liblzma5_5.2.2-1.3_arm64.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1_arm64.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2_1.1.8-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2-dev_1.1.8-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-0_2.34.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-dev_2.34.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.34.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.34.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.34.0-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.34.0-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/attr/libattr1_2.4.48-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/audit/libaudit1_2.8.5-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth3_5.50-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth-dev_5.50-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi-dev_6.0+dfsg-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brotli/libbrotli1_1.0.7-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2_1.16.0-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2-dev_1.16.0-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/colord/libcolord2_1.4.4-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2_2.3.0-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2-dev_2.3.0-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2_2.3.0-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2-dev_2.3.0-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-3_1.12.16-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-dev_1.12.16-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.45.4-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/libcom-err2_1.45.4-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf1_0.176-1.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf-dev_0.176-1.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1_2.2.9-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1-dev_2.2.9-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac8_1.3.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac-dev_1.3.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6_2.9.1-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi0_1.0.7-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi-dev_1.0.7-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libasan4_7.4.0-14_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libgcc-7-dev_7.4.0-14_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libstdc++-7-dev_7.4.0-14_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libubsan0_7.4.0-14_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libatomic1_9.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgcc1_9.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgomp1_9.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libitm1_9.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/liblsan0_9.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libstdc++6_9.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libtsan0_9.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.40.0+dfsg-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.40.0+dfsg-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-0_2.62.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-dev_2.62.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6_2.29-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6-dev_2.29-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls28-dev_3.6.9-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls30_3.6.9-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-dane0_3.6.9-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-openssl27_3.6.9-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutlsxx28_3.6.9-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-3_1.3.13-8_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-dev_1.3.13-8_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.12-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.12-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-0_3.96.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.96.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz0b_2.6.2-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.6.2-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.6.2-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.6.2-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu/libicu63_63.2-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/keyutils/libkeyutils1_1.6-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/krb5-multidev_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssapi-krb5-2_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssrpc4_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libk5crypto3_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5clnt-mit11_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5srv-mit11_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkdb5-9_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-3_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-dev_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5support0_1.17-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libb/libbsd/libbsd0_0.10.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap2_2.25-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap-dev_2.25-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm2_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-dev_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-etnaviv1_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.99-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi6_3.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi7_3.3~rc0-8_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.5-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.5-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libegl1_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgl1_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles1_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles2_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglx0_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error0_1.36-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.36-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libice/libice6_1.0.9-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn2/libidn2-0_2.2.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn/libidn11_1.33-2.2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b8_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1_2.9-2+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1-dev_2.9-2+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1_2.9-2+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1-dev_2.9-2+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsm/libsm6_1.2.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-6_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.68.2-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.68.2-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtasn1-6/libtasn1-6_4.14-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtool/libltdl7_2.4.6-11_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libu/libunistring/libunistring2_0.9.10-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva2_2.5.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-dev_2.5.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-drm2_2.5.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-glx2_2.5.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-wayland2_2.5.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-x11-2_2.5.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx6_1.8.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx-dev_1.8.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp6_0.6.1-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-6_1.6.8-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-dev_1.6.8-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb1_1.6.8-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.8-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi6_1.7.9-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.4-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.4-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss1_1.2.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt6_1.1.5-1+b3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt-dev_1.1.5-1+b3_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libz/libzstd/libzstd1_1.4.3+dfsg-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lcms2/liblcms2-2_2.9-4_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/linux/linux-libc-dev_5.2.17-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lz4/liblz4-1_1.9.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa-dev_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm1_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm-dev_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-dev_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-glx_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libglapi-mesa_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libwayland-egl1-mesa_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/mesa-common-dev_19.2.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip1_1.1-8+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libhogweed4_3.5.1+really3.4.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libnettle6_3.5.1+really3.4.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4_4.21-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4-dev_4.21-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3_3.45-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3-dev_3.45-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl1.1_1.1.1d-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl-dev_1.1.1d-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus0_1.3-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus-dev_1.3-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/p11-kit/libp11-kit0_0.23.17-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g_1.3.1-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g-dev_1.3.1-5_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci3_3.6.2-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci-dev_3.6.2-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-16-0_10.32-5+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-32-0_10.32-5+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-8-0_10.32-5+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-dev_10.32-5+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-posix0_10.32-5+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre16-3_8.39-12+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre32-3_8.39-12+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3_8.39-12+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3-dev_8.39-12+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-12+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.5-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.5-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.5-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse0_13.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-dev_13.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_13.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-5_20190901+dfsg-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-dev_20190901+dfsg-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd2_0.9.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.9.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.9.1-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/sqlite3/libsqlite3-0_3.30.1-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libsystemd0_242-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev1_242-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev-dev_242-7_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-28_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tiff/libtiff5_4.0.10+git191003-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/unbound/libunbound8_1.9.4-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid1_2.34-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid-dev_2.34-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount1_2.34-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount-dev_2.34-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libuuid1_2.34-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/uuid-dev_2.34-0.1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/v/vulkan-loader/libvulkan1_1.1.121.0-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-client0_1.17.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-cursor0_1.17.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-dev_1.17.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-egl1_1.17.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-server0_1.17.0-1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland-protocols/wayland-protocols_1.18-1_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xft/libxft2_2.3.2-2_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xz-utils/liblzma5_5.2.4-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1+b1_arm64.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1+b1_arm64.deb diff --git a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.armel b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.armel new file mode 100644 index 00000000000..b25614ce781 --- /dev/null +++ b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.armel @@ -0,0 +1,335 @@ +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2_1.1.8-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2-dev_1.1.8-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-0_2.34.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-dev_2.34.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.34.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.34.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.34.0-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.34.0-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/attr/libattr1_2.4.48-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/audit/libaudit1_2.8.5-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth3_5.50-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth-dev_5.50-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi-dev_6.0+dfsg-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brotli/libbrotli1_1.0.7-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2_1.16.0-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2-dev_1.16.0-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/colord/libcolord2_1.4.4-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2_2.3.0-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2-dev_2.3.0-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2_2.3.0-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2-dev_2.3.0-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-3_1.12.16-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-dev_1.12.16-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.45.4-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/libcom-err2_1.45.4-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf1_0.176-1.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf-dev_0.176-1.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1_2.2.9-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1-dev_2.2.9-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac8_1.3.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac-dev_1.3.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6_2.9.1-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi0_1.0.7-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi-dev_1.0.7-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libasan4_7.4.0-14_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libcilkrts5_7.4.0-14_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libgcc-7-dev_7.4.0-14_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libstdc++-7-dev_7.4.0-14_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libubsan0_7.4.0-14_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libatomic1_9.2.1-9_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgcc1_9.2.1-9_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgomp1_9.2.1-9_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libstdc++6_9.2.1-9_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.40.0+dfsg-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.40.0+dfsg-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-0_2.62.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-dev_2.62.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6_2.29-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6-dev_2.29-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls28-dev_3.6.9-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls30_3.6.9-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-dane0_3.6.9-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-openssl27_3.6.9-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutlsxx28_3.6.9-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-3_1.3.13-8_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-dev_1.3.13-8_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.12-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.12-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-0_3.96.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.96.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz0b_2.6.2-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.6.2-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.6.2-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.6.2-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu/libicu63_63.2-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/keyutils/libkeyutils1_1.6-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/krb5-multidev_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssapi-krb5-2_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssrpc4_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libk5crypto3_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5clnt-mit11_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5srv-mit11_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkdb5-9_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-3_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-dev_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5support0_1.17-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libb/libbsd/libbsd0_0.10.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap2_2.25-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap-dev_2.25-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm2_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-dev_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-exynos1_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-freedreno1_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-omap1_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-tegra0_2.4.99-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi6_3.2.1-9_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi7_3.3~rc0-8_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.5-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.5-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libegl1_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgl1_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles1_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles2_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglx0_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error0_1.36-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.36-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libice/libice6_1.0.9-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn2/libidn2-0_2.2.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn/libidn11_1.33-2.2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b8_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1_2.9-2+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1-dev_2.9-2+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1_2.9-2+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1-dev_2.9-2+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsm/libsm6_1.2.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-6_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.68.2-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.68.2-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtasn1-6/libtasn1-6_4.14-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtool/libltdl7_2.4.6-11_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libu/libunistring/libunistring2_0.9.10-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva2_2.5.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-dev_2.5.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-drm2_2.5.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-glx2_2.5.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-wayland2_2.5.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-x11-2_2.5.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx6_1.8.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx-dev_1.8.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp6_0.6.1-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-6_1.6.8-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-dev_1.6.8-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb1_1.6.8-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.8-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi6_1.7.9-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.4-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.4-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss1_1.2.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt6_1.1.5-1+b3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt-dev_1.1.5-1+b3_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libz/libzstd/libzstd1_1.4.3+dfsg-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lcms2/liblcms2-2_2.9-4_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/linux/linux-libc-dev_5.2.17-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lz4/liblz4-1_1.9.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa-dev_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm1_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm-dev_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-dev_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-glx_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libglapi-mesa_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libwayland-egl1-mesa_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/mesa-common-dev_19.2.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip1_1.1-8+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libhogweed4_3.5.1+really3.4.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libnettle6_3.5.1+really3.4.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4_4.21-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4-dev_4.21-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3_3.45-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3-dev_3.45-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl1.1_1.1.1d-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl-dev_1.1.1d-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus0_1.3-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus-dev_1.3-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/p11-kit/libp11-kit0_0.23.17-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g_1.3.1-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g-dev_1.3.1-5_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci3_3.6.2-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci-dev_3.6.2-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-16-0_10.32-5+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-32-0_10.32-5+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-8-0_10.32-5+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-dev_10.32-5+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-posix0_10.32-5+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre16-3_8.39-12+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre32-3_8.39-12+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3_8.39-12+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3-dev_8.39-12+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-12+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.5-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.5-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.5-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse0_13.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-dev_13.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_13.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-5_20190901+dfsg-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-dev_20190901+dfsg-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd2_0.9.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.9.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.9.1-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/sqlite3/libsqlite3-0_3.30.1-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libsystemd0_242-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev1_242-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev-dev_242-7_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-28_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tiff/libtiff5_4.0.10+git191003-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/unbound/libunbound8_1.9.4-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid1_2.34-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid-dev_2.34-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount1_2.34-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount-dev_2.34-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libuuid1_2.34-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/uuid-dev_2.34-0.1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/v/vulkan-loader/libvulkan1_1.1.121.0-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-client0_1.17.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-cursor0_1.17.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-dev_1.17.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-egl1_1.17.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-server0_1.17.0-1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland-protocols/wayland-protocols_1.18-1_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xft/libxft2_2.3.2-2_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xz-utils/liblzma5_5.2.4-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1+b1_armel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1+b1_armel.deb diff --git a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.i386 b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.i386 index dee9a8415b1..6df787b7ae0 100644 --- a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.i386 +++ b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.i386 @@ -1,327 +1,335 @@ -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2_1.1.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2-dev_1.1.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-0_2.30.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-dev_2.30.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.30.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.30.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-0_2.30.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-dev_2.30.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/attr/libattr1_2.4.47-2+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/audit/libaudit1_2.8.4-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-client3_0.7-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-common3_0.7-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth3_5.50-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth-dev_5.50-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi0.6_5.6-5_i386.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi-dev_5.6-5_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2_1.15.12-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2-dev_1.15.12-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-gobject2_1.15.12-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-script-interpreter2_1.15.12-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/colord/libcolord2_1.4.3-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2_2.2.8-5_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2-dev_2.2.8-5_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2_2.2.8-5_i386.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2-dev_2.2.8-5_i386.deb -http://ftp.us.debian.org/debian/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.2_i386.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-3_1.12.10-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-dev_1.12.10-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/comerr-dev_2.1-1.44.4-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/libcom-err2_1.44.4-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf1_0.170-0.5_i386.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf-dev_0.170-0.5_i386.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1_2.2.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1-dev_2.2.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac8_1.3.2-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac-dev_1.3.2-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1_2.13.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6_2.8.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6-dev_2.8.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi0_1.0.5-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi-dev_1.0.5-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libasan3_6.4.0-22_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libgcc-6-dev_6.4.0-22_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libstdc++-6-dev_6.4.0-22_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-7/libcilkrts5_7.3.0-29_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-7/libubsan0_7.3.0-29_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libatomic1_8.2.0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgcc1_8.2.0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgomp1_8.2.0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libitm1_8.2.0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libmpx2_8.2.0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libquadmath0_8.2.0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.2.0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.38.0+dfsg-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.38.0+dfsg-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0_2.58.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-dev_2.58.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.27-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6-dev_2.27-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gmp/libgmp10_6.1.2+dfsg-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls28-dev_3.5.19-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls30_3.5.19-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-dane0_3.5.19-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-openssl27_3.5.19-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutlsxx28_3.5.19-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-0_1.8.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-dev_1.8.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-3_1.3.12-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-dev_1.3.12-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-0_3.24.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-0_3.91.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-dev_3.91.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz0b_1.9.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-dev_1.9.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-gobject0_1.9.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-icu0_1.9.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git161113-5_i386.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-9_i386.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu60_60.2-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.2-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.5.9-9.3_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/krb5-multidev_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssapi-krb5-2_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssrpc4_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libk5crypto3_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5clnt-mit11_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5srv-mit11_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkdb5-9_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-3_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-dev_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5support0_1.16.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/liba/libasyncns/libasyncns0_0.8-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/libb/libbsd/libbsd0_0.9.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap2_2.25-1.2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap-dev_2.25-1.2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdatrie/libdatrie1_0.2.12-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm2_2.4.94-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.94-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-dev_2.4.94-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-intel1_2.4.94-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-nouveau2_2.4.94-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-radeon1_2.4.94-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy0_1.5.2-0.3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy-dev_1.5.2-0.3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-8_i386.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi7_3.3~rc0-7_i386.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi-dev_3.2.1-8_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20_1.8.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libegl1_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgl1_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles1_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles2_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd0_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglx0_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libopengl0_1.1.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error0_1.32-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error-dev_1.32-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libi/libice/libice6_1.0.9-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidl/libidl-2-0_0.8.14-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn2/libidn2-0_2.0.5-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn/libidn11_1.33-2.2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator7_0.5.0-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b5_i386.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg0_1.3.2-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng16-16_1.6.34-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng-dev_1.6.34-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpsl/libpsl5_0.20.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.3-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/libr/librest/librest-0.7-0_0.8.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libs/libselinux/libselinux1_2.8-1+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsm/libsm6_1.2.2-1+b3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsndfile/libsndfile1_1.0.28-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup2.4-1_2.64.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.64.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtasn1-6/libtasn1-6_4.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libt/libthai/libthai0_0.1.28-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtool/libltdl7_2.4.6-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/libu/libunistring/libunistring2_0.9.10-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva2_2.3.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-dev_2.3.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-drm2_2.3.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-glx2_2.3.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-wayland2_2.3.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-x11-2_2.3.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbis0a_1.3.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx5_1.7.0-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx-dev_1.7.0-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp-dev_0.6.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpmux3_0.6.1-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-6_1.6.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-dev_1.6.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb1_1.6.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb-dev_1.6.6-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau6_1.0.8-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1-dev_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri3-0_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0-dev_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-present0_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0-dev_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0-dev_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-sync1_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-xfixes0_1.13-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor1_1.1.15-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor-dev_1.1.15-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage1_1.1.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage-dev_1.1.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext6_1.3.3-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi6_1.7.9-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi-dev_1.7.9-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama1_1.1.4-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender1_0.9.10-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1.1_1.1.32-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss1_1.2.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss-dev_1.2.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt6_1.1.5-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt-dev_1.1.5-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst6_1.2.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/l/lcms2/liblcms2-2_2.9-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/l/linux/linux-libc-dev_4.18.10-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/l/lz4/liblz4-1_1.8.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/l/lzo2/liblzo2-2_2.10-0.1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa-dev_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm1_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm-dev_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-dev_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-glx_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libglapi-mesa_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libwayland-egl1-mesa_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/mesa-common-dev_18.1.8-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip1_1.1-8+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip-dev_1.1-8+b1_i386.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libhogweed4_3.4-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libnettle6_3.4-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4_4.20-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4-dev_4.20-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3_3.39-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3-dev_3.39-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2o-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.1-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus0_1.3~beta+20180518-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus-dev_1.3~beta+20180518-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit-2-0_2.14.19-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit2_2.14.19-4_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/p11-kit/libp11-kit0_0.23.14-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g_1.1.8-3.8_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g-dev_1.1.8-3.8_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci3_3.5.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci-dev_3.5.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre16-3_8.39-11_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre32-3_8.39-11_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3_8.39-11_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3-dev_8.39-11_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcrecpp0v5_8.39-11_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-1_0.2.3-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.3-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.3-3_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-0_0.34.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-dev_0.34.0-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse0_12.2-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-dev_12.2-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-mainloop-glib0_12.2-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-4_20180901+dfsg-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-dev_20180901+dfsg-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy1v5_1.1.7-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy-dev_1.1.7-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd2_0.8.8-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd-dev_0.8.8-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/speech-dispatcher_0.8.8-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/sqlite3/libsqlite3-0_3.25.2-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libsystemd0_239-10_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev1_239-10_i386.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev-dev_239-10_i386.deb -http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-27_i386.deb -http://ftp.us.debian.org/debian/pool/main/t/tiff/libtiff5_4.0.9-6_i386.deb -http://ftp.us.debian.org/debian/pool/main/u/unbound/libunbound8_1.8.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libblkid1_2.32.1-0.1_i386.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libmount1_2.32.1-0.1_i386.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libuuid1_2.32.1-0.1_i386.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/uuid-dev_2.32.1-0.1_i386.deb -http://ftp.us.debian.org/debian/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-client0_1.16.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-cursor0_1.16.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-dev_1.16.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-egl1_1.16.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-server0_1.16.0-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland-protocols/wayland-protocols_1.16-1_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xft/libxft2_2.3.2-2_i386.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xz-utils/liblzma5_5.2.2-1.3_i386.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1_i386.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2_1.1.8-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2-dev_1.1.8-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-0_2.34.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-dev_2.34.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.34.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.34.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.34.0-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.34.0-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/attr/libattr1_2.4.48-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/audit/libaudit1_2.8.5-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth3_5.50-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth-dev_5.50-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi-dev_6.0+dfsg-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brotli/libbrotli1_1.0.7-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2_1.16.0-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2-dev_1.16.0-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/colord/libcolord2_1.4.4-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2_2.3.0-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2-dev_2.3.0-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2_2.3.0-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2-dev_2.3.0-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-3_1.12.16-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-dev_1.12.16-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.45.4-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/libcom-err2_1.45.4-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf1_0.176-1.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf-dev_0.176-1.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1_2.2.9-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1-dev_2.2.9-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac8_1.3.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac-dev_1.3.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6_2.9.1-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi0_1.0.7-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi-dev_1.0.7-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libasan4_7.4.0-14_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libcilkrts5_7.4.0-14_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libgcc-7-dev_7.4.0-14_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libstdc++-7-dev_7.4.0-14_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libubsan0_7.4.0-14_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-8/libmpx2_8.3.0-23_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libatomic1_9.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgcc1_9.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgomp1_9.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libitm1_9.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libquadmath0_9.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libstdc++6_9.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.40.0+dfsg-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.40.0+dfsg-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-0_2.62.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-dev_2.62.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6_2.29-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6-dev_2.29-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls28-dev_3.6.9-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls30_3.6.9-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-dane0_3.6.9-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-openssl27_3.6.9-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutlsxx28_3.6.9-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-3_1.3.13-8_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-dev_1.3.13-8_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.12-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.12-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-0_3.96.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.96.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz0b_2.6.2-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.6.2-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.6.2-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.6.2-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu/libicu63_63.2-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/keyutils/libkeyutils1_1.6-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/krb5-multidev_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssapi-krb5-2_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssrpc4_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libk5crypto3_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5clnt-mit11_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5srv-mit11_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkdb5-9_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-3_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-dev_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5support0_1.17-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libb/libbsd/libbsd0_0.10.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap2_2.25-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap-dev_2.25-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm2_2.4.99-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.99-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-dev_2.4.99-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-intel1_2.4.99-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.99-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.99-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi6_3.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi7_3.3~rc0-8_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.5-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.5-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libegl1_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgl1_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles1_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles2_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglx0_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error0_1.36-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.36-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libice/libice6_1.0.9-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn2/libidn2-0_2.2.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn/libidn11_1.33-2.2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b8_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1_2.9-2+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1-dev_2.9-2+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1_2.9-2+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1-dev_2.9-2+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsm/libsm6_1.2.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-6_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.68.2-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.68.2-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtasn1-6/libtasn1-6_4.14-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtool/libltdl7_2.4.6-11_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libu/libunistring/libunistring2_0.9.10-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva2_2.5.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-dev_2.5.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-drm2_2.5.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-glx2_2.5.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-wayland2_2.5.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-x11-2_2.5.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx6_1.8.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx-dev_1.8.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp6_0.6.1-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-6_1.6.8-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-dev_1.6.8-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb1_1.6.8-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.8-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi6_1.7.9-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.4-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.4-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss1_1.2.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt6_1.1.5-1+b3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt-dev_1.1.5-1+b3_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libz/libzstd/libzstd1_1.4.3+dfsg-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lcms2/liblcms2-2_2.9-4_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/linux/linux-libc-dev_5.2.17-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lz4/liblz4-1_1.9.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa-dev_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm1_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm-dev_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-dev_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-glx_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libglapi-mesa_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libwayland-egl1-mesa_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/mesa-common-dev_19.2.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip1_1.1-8+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libhogweed4_3.5.1+really3.4.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libnettle6_3.5.1+really3.4.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4_4.21-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4-dev_4.21-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3_3.45-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3-dev_3.45-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl1.1_1.1.1d-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl-dev_1.1.1d-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus0_1.3-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus-dev_1.3-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/p11-kit/libp11-kit0_0.23.17-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g_1.3.1-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g-dev_1.3.1-5_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci3_3.6.2-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci-dev_3.6.2-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-16-0_10.32-5+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-32-0_10.32-5+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-8-0_10.32-5+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-dev_10.32-5+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-posix0_10.32-5+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre16-3_8.39-12+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre32-3_8.39-12+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3_8.39-12+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3-dev_8.39-12+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-12+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.5-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.5-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.5-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse0_13.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-dev_13.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_13.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-5_20190901+dfsg-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-dev_20190901+dfsg-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd2_0.9.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.9.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.9.1-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/sqlite3/libsqlite3-0_3.30.1-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libsystemd0_242-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev1_242-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev-dev_242-7_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-28_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tiff/libtiff5_4.0.10+git191003-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/unbound/libunbound8_1.9.4-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid1_2.34-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid-dev_2.34-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount1_2.34-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount-dev_2.34-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libuuid1_2.34-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/uuid-dev_2.34-0.1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/v/vulkan-loader/libvulkan1_1.1.121.0-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-client0_1.17.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-cursor0_1.17.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-dev_1.17.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-egl1_1.17.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-server0_1.17.0-1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland-protocols/wayland-protocols_1.18-1_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xft/libxft2_2.3.2-2_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xz-utils/liblzma5_5.2.4-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1+b1_i386.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1+b1_i386.deb diff --git a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mips64el b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mips64el index 825d387336a..c90f3189767 100644 --- a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mips64el +++ b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mips64el @@ -1,320 +1,328 @@ -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2_1.1.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2-dev_1.1.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-0_2.30.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-dev_2.30.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.30.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.30.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-0_2.30.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-dev_2.30.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/attr/libattr1_2.4.47-2+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/audit/libaudit1_2.8.4-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-client3_0.7-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-common3_0.7-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth3_5.50-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth-dev_5.50-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi0.6_5.6-5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi-dev_5.6-5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2_1.15.12-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2-dev_1.15.12-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-gobject2_1.15.12-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-script-interpreter2_1.15.12-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/colord/libcolord2_1.4.3-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2_2.2.8-5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2-dev_2.2.8-5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2_2.2.8-5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2-dev_2.2.8-5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-3_1.12.10-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-dev_1.12.10-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/comerr-dev_2.1-1.44.4-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/libcom-err2_1.44.4-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf1_0.170-0.5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf-dev_0.170-0.5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1_2.2.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1-dev_2.2.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac8_1.3.2-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac-dev_1.3.2-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1_2.13.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6_2.8.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6-dev_2.8.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi0_1.0.5-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi-dev_1.0.5-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libgcc-6-dev_6.4.0-22_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libstdc++-6-dev_6.4.0-22_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libatomic1_8.2.0-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgcc1_8.2.0-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgomp1_8.2.0-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.2.0-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.38.0+dfsg-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.38.0+dfsg-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0_2.58.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-dev_2.58.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.27-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6-dev_2.27-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gmp/libgmp10_6.1.2+dfsg-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls28-dev_3.5.19-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls30_3.5.19-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-dane0_3.5.19-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-openssl27_3.5.19-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutlsxx28_3.5.19-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-0_1.8.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-dev_1.8.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-3_1.3.12-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-dev_1.3.12-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-0_3.24.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-0_3.91.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-dev_3.91.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz0b_1.9.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-dev_1.9.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-gobject0_1.9.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-icu0_1.9.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git161113-5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-9_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu60_60.2-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.2-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.5.9-9.3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/krb5-multidev_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssapi-krb5-2_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssrpc4_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libk5crypto3_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5clnt-mit11_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5srv-mit11_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkdb5-9_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-3_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-dev_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5support0_1.16.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/liba/libasyncns/libasyncns0_0.8-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libb/libbsd/libbsd0_0.9.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap2_2.25-1.2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap-dev_2.25-1.2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdatrie/libdatrie1_0.2.12-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm2_2.4.94-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.94-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-dev_2.4.94-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-nouveau2_2.4.94-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-radeon1_2.4.94-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy0_1.5.2-0.3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy-dev_1.5.2-0.3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-8_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi7_3.3~rc0-7_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi-dev_3.2.1-8_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20_1.8.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libegl1_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgl1_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles1_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles2_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd0_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglx0_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libopengl0_1.1.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error0_1.32-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error-dev_1.32-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libi/libice/libice6_1.0.9-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidl/libidl-2-0_0.8.14-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn2/libidn2-0_2.0.5-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn/libidn11_1.33-2.2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator7_0.5.0-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b5_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg0_1.3.2-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng16-16_1.6.34-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng-dev_1.6.34-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpsl/libpsl5_0.20.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.3-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libr/librest/librest-0.7-0_0.8.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libs/libselinux/libselinux1_2.8-1+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsm/libsm6_1.2.2-1+b3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsndfile/libsndfile1_1.0.28-4+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup2.4-1_2.64.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.64.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtasn1-6/libtasn1-6_4.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libt/libthai/libthai0_0.1.28-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtool/libltdl7_2.4.6-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libu/libunistring/libunistring2_0.9.10-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva2_2.3.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-dev_2.3.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-drm2_2.3.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-glx2_2.3.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-wayland2_2.3.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-x11-2_2.3.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbis0a_1.3.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx5_1.7.0-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx-dev_1.7.0-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp-dev_0.6.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpmux3_0.6.1-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-6_1.6.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-dev_1.6.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb1_1.6.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb-dev_1.6.6-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau6_1.0.8-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1-dev_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri3-0_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0-dev_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-present0_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0-dev_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0-dev_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-sync1_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-xfixes0_1.13-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor1_1.1.15-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor-dev_1.1.15-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage1_1.1.4-3+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage-dev_1.1.4-3+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext6_1.3.3-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi6_1.7.9-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi-dev_1.7.9-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama1_1.1.4-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender1_0.9.10-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1.1_1.1.32-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss1_1.2.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss-dev_1.2.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt6_1.1.5-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt-dev_1.1.5-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst6_1.2.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/l/lcms2/liblcms2-2_2.9-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/l/linux/linux-libc-dev_4.18.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/l/lz4/liblz4-1_1.8.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/l/lzo2/liblzo2-2_2.10-0.1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa-dev_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm1_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm-dev_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-dev_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-glx_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libglapi-mesa_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libwayland-egl1-mesa_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/mesa-common-dev_18.1.8-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip1_1.1-8+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libhogweed4_3.4-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libnettle6_3.4-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4_4.20-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4-dev_4.20-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3_3.39-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3-dev_3.39-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2o-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.1-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus0_1.3~beta+20180518-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus-dev_1.3~beta+20180518-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit-2-0_2.14.19-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit2_2.14.19-4_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/p11-kit/libp11-kit0_0.23.14-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g_1.1.8-3.8_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g-dev_1.1.8-3.8_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci3_3.5.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci-dev_3.5.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre16-3_8.39-11_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre32-3_8.39-11_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3_8.39-11_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3-dev_8.39-11_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcrecpp0v5_8.39-11_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-1_0.2.3-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.3-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.3-3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-0_0.34.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-dev_0.34.0-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse0_12.2-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-dev_12.2-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-mainloop-glib0_12.2-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-4_20180901+dfsg-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-dev_20180901+dfsg-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy1v5_1.1.7-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy-dev_1.1.7-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd2_0.8.8-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd-dev_0.8.8-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/speech-dispatcher_0.8.8-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/sqlite3/libsqlite3-0_3.25.2-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libsystemd0_239-10_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev1_239-10_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev-dev_239-10_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-27_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/t/tiff/libtiff5_4.0.9-6_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/u/unbound/libunbound8_1.8.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libblkid1_2.32.1-0.1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libmount1_2.32.1-0.1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libuuid1_2.32.1-0.1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/uuid-dev_2.32.1-0.1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-client0_1.16.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-cursor0_1.16.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-dev_1.16.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-egl1_1.16.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-server0_1.16.0-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland-protocols/wayland-protocols_1.16-1_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xft/libxft2_2.3.2-2_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xz-utils/liblzma5_5.2.2-1.3_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1_mips64el.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2_1.1.8-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2-dev_1.1.8-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-0_2.34.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-dev_2.34.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.34.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.34.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.34.0-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.34.0-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/attr/libattr1_2.4.48-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/audit/libaudit1_2.8.5-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth3_5.50-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth-dev_5.50-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi-dev_6.0+dfsg-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brotli/libbrotli1_1.0.7-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2_1.16.0-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2-dev_1.16.0-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/colord/libcolord2_1.4.4-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2_2.3.0-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2-dev_2.3.0-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2_2.3.0-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2-dev_2.3.0-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-3_1.12.16-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-dev_1.12.16-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.45.4-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/libcom-err2_1.45.4-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf1_0.176-1.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf-dev_0.176-1.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1_2.2.9-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1-dev_2.2.9-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac8_1.3.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac-dev_1.3.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6_2.9.1-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi0_1.0.7-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi-dev_1.0.7-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libgcc-7-dev_7.4.0-14_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libstdc++-7-dev_7.4.0-14_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libatomic1_9.2.1-9_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgcc1_9.2.1-9_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgomp1_9.2.1-9_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libstdc++6_9.2.1-9_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.40.0+dfsg-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.40.0+dfsg-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-0_2.62.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-dev_2.62.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6_2.29-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6-dev_2.29-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls28-dev_3.6.9-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls30_3.6.9-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-dane0_3.6.9-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-openssl27_3.6.9-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutlsxx28_3.6.9-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-3_1.3.13-8_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-dev_1.3.13-8_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.12-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.12-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-0_3.96.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.96.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz0b_2.6.2-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.6.2-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.6.2-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.6.2-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu/libicu63_63.2-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/keyutils/libkeyutils1_1.6-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/krb5-multidev_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssapi-krb5-2_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssrpc4_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libk5crypto3_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5clnt-mit11_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5srv-mit11_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkdb5-9_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-3_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-dev_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5support0_1.17-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libb/libbsd/libbsd0_0.10.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap2_2.25-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap-dev_2.25-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm2_2.4.99-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.99-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-dev_2.4.99-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.99-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.99-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi6_3.2.1-9_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi7_3.3~rc0-8_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.5-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.5-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libegl1_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgl1_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles1_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles2_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglx0_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error0_1.36-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.36-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libice/libice6_1.0.9-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn2/libidn2-0_2.2.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn/libidn11_1.33-2.2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b8_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1_2.9-2+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1-dev_2.9-2+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1_2.9-2+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1-dev_2.9-2+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsm/libsm6_1.2.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-6_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.68.2-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.68.2-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtasn1-6/libtasn1-6_4.14-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtool/libltdl7_2.4.6-11_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libu/libunistring/libunistring2_0.9.10-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva2_2.5.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-dev_2.5.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-drm2_2.5.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-glx2_2.5.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-wayland2_2.5.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-x11-2_2.5.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx6_1.8.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx-dev_1.8.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp6_0.6.1-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-6_1.6.8-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-dev_1.6.8-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb1_1.6.8-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.8-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi6_1.7.9-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.4-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.4-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss1_1.2.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt6_1.1.5-1+b3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt-dev_1.1.5-1+b3_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libz/libzstd/libzstd1_1.4.3+dfsg-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lcms2/liblcms2-2_2.9-4_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/linux/linux-libc-dev_5.2.17-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lz4/liblz4-1_1.9.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa-dev_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm1_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm-dev_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-dev_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-glx_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libglapi-mesa_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libwayland-egl1-mesa_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/mesa-common-dev_19.2.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip1_1.1-8+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libhogweed4_3.5.1+really3.4.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libnettle6_3.5.1+really3.4.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4_4.21-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4-dev_4.21-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3_3.45-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3-dev_3.45-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl1.1_1.1.1d-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl-dev_1.1.1d-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus0_1.3-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus-dev_1.3-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/p11-kit/libp11-kit0_0.23.17-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g_1.3.1-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g-dev_1.3.1-5_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci3_3.6.2-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci-dev_3.6.2-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-16-0_10.32-5+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-32-0_10.32-5+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-8-0_10.32-5+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-dev_10.32-5+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-posix0_10.32-5+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre16-3_8.39-12+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre32-3_8.39-12+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3_8.39-12+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3-dev_8.39-12+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-12+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.5-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.5-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.5-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse0_13.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-dev_13.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_13.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-5_20190901+dfsg-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-dev_20190901+dfsg-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd2_0.9.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.9.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.9.1-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/sqlite3/libsqlite3-0_3.30.1-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libsystemd0_242-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev1_242-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev-dev_242-7_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-28_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tiff/libtiff5_4.0.10+git191003-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/unbound/libunbound8_1.9.4-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid1_2.34-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid-dev_2.34-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount1_2.34-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount-dev_2.34-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libuuid1_2.34-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/uuid-dev_2.34-0.1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/v/vulkan-loader/libvulkan1_1.1.121.0-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-client0_1.17.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-cursor0_1.17.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-dev_1.17.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-egl1_1.17.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-server0_1.17.0-1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland-protocols/wayland-protocols_1.18-1_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xft/libxft2_2.3.2-2_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xz-utils/liblzma5_5.2.4-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1+b1_mips64el.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1+b1_mips64el.deb diff --git a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mipsel b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mipsel index 8317793d764..729494548bb 100644 --- a/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mipsel +++ b/chromium/build/linux/sysroot_scripts/generated_package_lists/sid.mipsel @@ -1,320 +1,328 @@ -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2_1.1.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/alsa-lib/libasound2-dev_1.1.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-0_2.30.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/atk1.0/libatk1.0-dev_2.30.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.30.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.30.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-0_2.30.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/at-spi2-core/libatspi2.0-dev_2.30.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/attr/libattr1_2.4.47-2+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/audit/libaudit1_2.8.4-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-client3_0.7-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/a/avahi/libavahi-common3_0.7-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth3_5.50-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/b/bluez/libbluetooth-dev_5.50-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi0.6_5.6-5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/b/brltty/libbrlapi-dev_5.6-5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2_1.15.12-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo2-dev_1.15.12-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-gobject2_1.15.12-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cairo/libcairo-script-interpreter2_1.15.12-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/colord/libcolord2_1.4.3-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2_2.2.8-5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcups2-dev_2.2.8-5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2_2.2.8-5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/c/cups/libcupsimage2-dev_2.2.8-5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-3_1.12.10-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/d/dbus/libdbus-1-dev_1.12.10-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/comerr-dev_2.1-1.44.4-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/e/e2fsprogs/libcom-err2_1.44.4-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf1_0.170-0.5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/e/elfutils/libelf-dev_0.170-0.5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1_2.2.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/e/expat/libexpat1-dev_2.2.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac8_1.3.2-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/flac/libflac-dev_1.3.2-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1_2.13.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6_2.8.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/freetype/libfreetype6-dev_2.8.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi0_1.0.5-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/f/fribidi/libfribidi-dev_1.0.5-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libgcc-6-dev_6.4.0-22_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-6/libstdc++-6-dev_6.4.0-22_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libatomic1_8.2.0-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgcc1_8.2.0-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libgomp1_8.2.0-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gcc-8/libstdc++6_8.2.0-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.38.0+dfsg-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.38.0+dfsg-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-0_2.58.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/glib2.0/libglib2.0-dev_2.58.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6_2.27-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/glibc/libc6-dev_2.27-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gmp/libgmp10_6.1.2+dfsg-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls28-dev_3.5.19-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls30_3.5.19-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-dane0_3.5.19-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutls-openssl27_3.5.19-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gnutls28/libgnutlsxx28_3.5.19-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-0_1.8.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/graphene/libgraphene-1.0-dev_1.8.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-3_1.3.12-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/graphite2/libgraphite2-dev_1.3.12-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-0_3.24.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-0_3.91.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/g/gtk+4.0/libgtk-4-dev_3.91.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz0b_1.9.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-dev_1.9.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-gobject0_1.9.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/h/harfbuzz/libharfbuzz-icu0_1.9.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git161113-5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu57_57.1-9_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/i/icu/libicu60_60.2-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.2-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/keyutils/libkeyutils1_1.5.9-9.3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/krb5-multidev_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssapi-krb5-2_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libgssrpc4_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libk5crypto3_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5clnt-mit11_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkadm5srv-mit11_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkdb5-9_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-3_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5-dev_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/k/krb5/libkrb5support0_1.16.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/liba/libasyncns/libasyncns0_0.8-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libb/libbsd/libbsd0_0.9.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap2_2.25-1.2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap2/libcap-dev_2.25-1.2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdatrie/libdatrie1_0.2.12-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm2_2.4.94-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.94-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-dev_2.4.94-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-nouveau2_2.4.94-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libd/libdrm/libdrm-radeon1_2.4.94-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy0_1.5.2-0.3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libe/libepoxy/libepoxy-dev_1.5.2-0.3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi6_3.2.1-8_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi7_3.3~rc0-7_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libf/libffi/libffi-dev_3.2.1-8_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20_1.8.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libegl1_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgl1_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles1_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libgles2_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd0_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libglx0_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libglvnd/libopengl0_1.1.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error0_1.32-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libg/libgpg-error/libgpg-error-dev_1.32-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libi/libice/libice6_1.0.9-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn2/libidn2-0_2.0.5-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libi/libidn/libidn11_1.33-2.2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libi/libindicator/libindicator7_0.5.0-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b5_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg0_1.3.2-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng16-16_1.6.34-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpng1.6/libpng-dev_1.6.34-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpsl/libpsl5_0.20.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.3-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libr/librest/librest-0.7-0_0.8.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libs/libselinux/libselinux1_2.8-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsm/libsm6_1.2.2-1+b3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsndfile/libsndfile1_1.0.28-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup2.4-1_2.64.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.64.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtasn1-6/libtasn1-6_4.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libt/libthai/libthai0_0.1.28-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libt/libtool/libltdl7_2.4.6-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libu/libunistring/libunistring2_0.9.10-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva2_2.3.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-dev_2.3.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-drm2_2.3.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-glx2_2.3.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-wayland2_2.3.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libva/libva-x11-2_2.3.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbis0a_1.3.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx5_1.7.0-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libv/libvpx/libvpx-dev_1.7.0-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp6_0.6.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebp-dev_0.6.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libw/libwebp/libwebpmux3_0.6.1-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-6_1.6.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-dev_1.6.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb1_1.6.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libx11/libx11-xcb-dev_1.6.6-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau6_1.0.8-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb1-dev_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-dri3-0_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-glx0-dev_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-present0_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-render0-dev_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-shm0-dev_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-sync1_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcb/libxcb-xfixes0_1.13-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor1_1.1.15-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxcursor/libxcursor-dev_1.1.15-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage1_1.1.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdamage/libxdamage-dev_1.1.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext6_1.3.3-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi6_1.7.9-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxi/libxi-dev_1.7.9-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama1_1.1.4-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender1_0.9.10-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1.1_1.1.32-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss1_1.2.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxss/libxss-dev_1.2.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt6_1.1.5-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxt/libxt-dev_1.1.5-1+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst6_1.2.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/l/lcms2/liblcms2-2_2.9-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/l/linux/linux-libc-dev_4.18.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/l/lz4/liblz4-1_1.8.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/l/lzo2/liblzo2-2_2.10-0.1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libegl1-mesa-dev_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm1_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgbm-dev_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-dev_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libgl1-mesa-glx_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libglapi-mesa_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/libwayland-egl1-mesa_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/mesa/mesa-common-dev_18.1.8-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip1_1.1-8+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libhogweed4_3.4-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/n/nettle/libnettle6_3.4-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4_4.20-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/n/nspr/libnspr4-dev_4.20-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3_3.39-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/n/nss/libnss3-dev_3.39-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl1.0/libssl1.0.2_1.0.2o-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl1.1_1.1.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl-dev_1.1.1-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus0_1.3~beta+20180518-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/o/opus/libopus-dev_1.3~beta+20180518-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit-2-0_2.14.19-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/o/orbit2/liborbit2_2.14.19-4_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/p11-kit/libp11-kit0_0.23.14-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g_1.1.8-3.8_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pam/libpam0g-dev_1.1.8-3.8_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci3_3.5.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pciutils/libpci-dev_3.5.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre16-3_8.39-11_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre32-3_8.39-11_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3_8.39-11_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcre3-dev_8.39-11_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pcre3/libpcrecpp0v5_8.39-11_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-1_0.2.3-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.3-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.3-3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-0_0.34.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pixman/libpixman-1-dev_0.34.0-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse0_12.2-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-dev_12.2-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/p/pulseaudio/libpulse-mainloop-glib0_12.2-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-4_20180901+dfsg-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/r/re2/libre2-dev_20180901+dfsg-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy1v5_1.1.7-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/snappy/libsnappy-dev_1.1.7-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd2_0.8.8-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/libspeechd-dev_0.8.8-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/speech-dispatcher/speech-dispatcher_0.8.8-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/sqlite3/libsqlite3-0_3.25.2-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libsystemd0_239-10_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev1_239-10_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/s/systemd/libudev-dev_239-10_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/t/tcp-wrappers/libwrap0_7.6.q-27_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/t/tiff/libtiff5_4.0.9-6_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/u/unbound/libunbound8_1.8.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libblkid1_2.32.1-0.1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libmount1_2.32.1-0.1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/libuuid1_2.32.1-0.1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/u/util-linux/uuid-dev_2.32.1-0.1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/v/vulkan/libvulkan1_1.1.73+dfsg-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-client0_1.16.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-cursor0_1.16.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-dev_1.16.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-egl1_1.16.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland/libwayland-server0_1.16.0-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/w/wayland-protocols/wayland-protocols_1.16-1_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xft/libxft2_2.3.2-2_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb -http://ftp.us.debian.org/debian/pool/main/x/xz-utils/liblzma5_5.2.2-1.3_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1_mipsel.deb -http://ftp.us.debian.org/debian/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2_1.1.8-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/alsa-lib/libasound2-dev_1.1.8-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-0_2.34.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/atk1.0/libatk1.0-dev_2.34.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-0_2.34.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-atk/libatk-bridge2.0-dev_2.34.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-0_2.34.0-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/at-spi2-core/libatspi2.0-dev_2.34.0-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/attr/libattr1_2.4.48-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/audit/libaudit1_2.8.5-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-client3_0.7-4+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/a/avahi/libavahi-common3_0.7-4+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth3_5.50-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/bluez/libbluetooth-dev_5.50-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi0.7_6.0+dfsg-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brltty/libbrlapi-dev_6.0+dfsg-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/b/brotli/libbrotli1_1.0.7-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2_1.16.0-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo2-dev_1.16.0-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-gobject2_1.16.0-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cairo/libcairo-script-interpreter2_1.16.0-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/colord/libcolord2_1.4.4-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2_2.3.0-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcups2-dev_2.3.0-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2_2.3.0-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/c/cups/libcupsimage2-dev_2.3.0-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/db5.3/libdb5.3_5.3.28+dfsg1-0.6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus-glib/libdbus-glib-1-2_0.110-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-3_1.12.16-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/d/dbus/libdbus-1-dev_1.12.16-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/comerr-dev_2.1-1.45.4-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/e2fsprogs/libcom-err2_1.45.4-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf1_0.176-1.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/elfutils/libelf-dev_0.176-1.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1_2.2.9-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/e/expat/libexpat1-dev_2.2.9-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac8_1.3.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/flac/libflac-dev_1.3.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1_2.13.1-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fontconfig/libfontconfig1-dev_2.13.1-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6_2.9.1-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/freetype/libfreetype6-dev_2.9.1-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi0_1.0.7-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/f/fribidi/libfribidi-dev_1.0.7-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libgcc-7-dev_7.4.0-14_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-7/libstdc++-7-dev_7.4.0-14_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libatomic1_9.2.1-9_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgcc1_9.2.1-9_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libgomp1_9.2.1-9_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gcc-9/libstdc++6_9.2.1-9_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-0_2.40.0+dfsg-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gdk-pixbuf/libgdk-pixbuf2.0-dev_2.40.0+dfsg-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-0_2.62.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glib2.0/libglib2.0-dev_2.62.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6_2.29-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/glibc/libc6-dev_2.29-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gmp/libgmp10_6.1.2+dfsg-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls28-dev_3.6.9-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls30_3.6.9-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-dane0_3.6.9-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutls-openssl27_3.6.9-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gnutls28/libgnutlsxx28_3.6.9-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-0_1.10.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphene/libgraphene-1.0-dev_1.10.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-3_1.3.13-8_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/graphite2/libgraphite2-dev_1.3.13-8_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+2.0/libgtk2.0-0_2.24.32-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-0_3.24.12-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+3.0/libgtk-3-dev_3.24.12-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-0_3.96.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/g/gtk+4.0/libgtk-4-dev_3.96.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz0b_2.6.2-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-dev_2.6.2-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-gobject0_2.6.2-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/h/harfbuzz/libharfbuzz-icu0_2.6.2-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu-le-hb/libicu-le-hb0_1.0.3+git180724-3+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/i/icu/libicu63_63.2-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/jbigkit/libjbig0_2.1-3.1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/j/json-glib/libjson-glib-1.0-0_1.4.4-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/keyutils/libkeyutils1_1.6-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/krb5-multidev_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssapi-krb5-2_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libgssrpc4_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libk5crypto3_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5clnt-mit11_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkadm5srv-mit11_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkdb5-9_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-3_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5-dev_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/k/krb5/libkrb5support0_1.17-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator1_0.4.92-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-1_0.4.92-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator3-dev_0.4.92-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libappindicator/libappindicator-dev_0.4.92-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/liba/libasyncns/libasyncns0_0.8-6+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libb/libbsd/libbsd0_0.10.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap2_2.25-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap2/libcap-dev_2.25-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libc/libcap-ng/libcap-ng0_0.7.9-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdatrie/libdatrie1_0.2.12-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib4_18.10.20180917~bzr490+repack1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-glib-dev_18.10.20180917~bzr490+repack1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk3-4_18.10.20180917~bzr490+repack1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdbusmenu/libdbusmenu-gtk4_18.10.20180917~bzr490+repack1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm2_2.4.99-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-amdgpu1_2.4.99-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-dev_2.4.99-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-nouveau2_2.4.99-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libd/libdrm/libdrm-radeon1_2.4.99-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy0_1.5.3-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libepoxy/libepoxy-dev_1.5.3-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libe/libevent/libevent-2.1-6_2.1.8-stable-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi6_3.2.1-9_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi7_3.3~rc0-8_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libf/libffi/libffi-dev_3.2.1-9_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20_1.8.5-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgcrypt20/libgcrypt20-dev_1.8.5-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libegl1_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgl1_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles1_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libgles2_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd0_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglvnd-dev_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libglx0_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libglvnd/libopengl0_1.1.0-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring0_3.12.0-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgnome-keyring/libgnome-keyring-dev_3.12.0-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error0_1.36-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libg/libgpg-error/libgpg-error-dev_1.36-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libice/libice6_1.0.9-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidl/libidl-2-0_0.8.14-4+b12_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn2/libidn2-0_2.2.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libidn/libidn11_1.33-2.2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator3-7_0.5.0-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libi/libindicator/libindicator7_0.5.0-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo_1.5.2-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjpeg-turbo/libjpeg62-turbo-dev_1.5.2-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp1_1.7.4-3+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libj/libjsoncpp/libjsoncpp-dev_1.7.4-3+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libn/libnss-db/libnss-db_2.2.3pre1-6+b8_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg0_1.3.2-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libo/libogg/libogg-dev_1.3.2-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpciaccess/libpciaccess0_0.14-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng16-16_1.6.37-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpng1.6/libpng-dev_1.6.37-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpsl/libpsl5_0.20.2-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libp/libpthread-stubs/libpthread-stubs0-dev_0.4-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libr/librest/librest-0.7-0_0.8.1-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1_2.9-2+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libselinux/libselinux1-dev_2.9-2+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1_2.9-2+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsepol/libsepol1-dev_2.9-2+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsm/libsm6_1.2.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsndfile/libsndfile1_1.0.28-6_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup2.4-1_2.68.2-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libs/libsoup2.4/libsoup-gnome2.4-1_2.68.2-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtasn1-6/libtasn1-6_4.14-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libthai/libthai0_0.1.28-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libt/libtool/libltdl7_2.4.6-11_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libu/libunistring/libunistring2_0.9.10-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva2_2.5.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-dev_2.5.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-drm2_2.5.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-glx2_2.5.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-wayland2_2.5.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libva/libva-x11-2_2.5.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbis0a_1.3.6-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvorbis/libvorbisenc2_1.3.6-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx6_1.8.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libv/libvpx/libvpx-dev_1.8.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp6_0.6.1-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpdemux2_0.6.1-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebp-dev_0.6.1-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libw/libwebp/libwebpmux3_0.6.1-2+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-6_1.6.8-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-dev_1.6.8-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb1_1.6.8-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libx11/libx11-xcb-dev_1.6.8-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau6_1.0.8-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxau/libxau-dev_1.0.8-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb1-dev_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri2-0-dev_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-dri3-0_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-glx0-dev_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-present0_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-render0-dev_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-shm0-dev_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-sync1_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcb/libxcb-xfixes0_1.13.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite1_0.4.4-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcomposite/libxcomposite-dev_0.4.4-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor1_1.2.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxcursor/libxcursor-dev_1.2.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage1_1.1.5-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdamage/libxdamage-dev_1.1.5-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp6_1.1.2-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxdmcp/libxdmcp-dev_1.1.2-3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext6_1.3.3-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxext/libxext-dev_1.3.3-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes3_5.0.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxfixes/libxfixes-dev_5.0.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi6_1.7.9-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxi/libxi-dev_1.7.9-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama1_1.1.4-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxinerama/libxinerama-dev_1.1.4-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon0_0.8.4-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxkbcommon/libxkbcommon-dev_0.8.4-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2_2.9.4+dfsg1-7+b3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxml2/libxml2-dev_2.9.4+dfsg1-7+b3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr2_1.5.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrandr/libxrandr-dev_1.5.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender1_0.9.10-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxrender/libxrender-dev_0.9.10-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxshmfence/libxshmfence1_1.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1.1_1.1.32-2.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxslt/libxslt1-dev_1.1.32-2.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss1_1.2.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxss/libxss-dev_1.2.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt6_1.1.5-1+b3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxt/libxt-dev_1.1.5-1+b3_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst6_1.2.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxtst/libxtst-dev_1.2.3-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm1_1.1.4-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libx/libxxf86vm/libxxf86vm-dev_1.1.4-1+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/libz/libzstd/libzstd1_1.4.3+dfsg-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lcms2/liblcms2-2_2.9-4_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/linux/linux-libc-dev_5.2.17-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lz4/liblz4-1_1.9.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/l/lzo2/liblzo2-2_2.10-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libegl1-mesa-dev_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm1_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgbm-dev_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-dev_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libgl1-mesa-glx_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libglapi-mesa_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/libwayland-egl1-mesa_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/mesa/mesa-common-dev_19.2.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip1_1.1-8+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/m/minizip/libminizip-dev_1.1-8+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libhogweed4_3.5.1+really3.4.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nettle/libnettle6_3.5.1+really3.4.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4_4.21-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nspr/libnspr4-dev_4.21-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3_3.45-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/n/nss/libnss3-dev_3.45-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl1.1_1.1.1d-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/openssl/libssl-dev_1.1.1d-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus0_1.3-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/o/opus/libopus-dev_1.3-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/p11-kit/libp11-kit0_0.23.17-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g_1.3.1-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pam/libpam0g-dev_1.3.1-5_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango-1.0-0_1.42.4-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpango1.0-dev_1.42.4-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangocairo-1.0-0_1.42.4-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoft2-1.0-0_1.42.4-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pango1.0/libpangoxft-1.0-0_1.42.4-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pangox-compat/libpangox-1.0-0_0.0.2-5+b2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci3_3.6.2-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pciutils/libpci-dev_3.6.2-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-16-0_10.32-5+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-32-0_10.32-5+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-8-0_10.32-5+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-dev_10.32-5+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre2/libpcre2-posix0_10.32-5+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre16-3_8.39-12+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre32-3_8.39-12+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3_8.39-12+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcre3-dev_8.39-12+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pcre3/libpcrecpp0v5_8.39-12+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-1_0.2.5-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libpipewire-0.2-dev_0.2.5-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pipewire/libspa-lib-0.1-dev_0.2.5-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-0_0.36.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pixman/libpixman-1-dev_0.36.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse0_13.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-dev_13.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/p/pulseaudio/libpulse-mainloop-glib0_13.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-5_20190901+dfsg-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/r/re2/libre2-dev_20190901+dfsg-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/shared-mime-info/shared-mime-info_1.10-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy1v5_1.1.7-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/snappy/libsnappy-dev_1.1.7-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd2_0.9.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/libspeechd-dev_0.9.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/speech-dispatcher/speech-dispatcher_0.9.1-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/sqlite3/libsqlite3-0_3.30.1-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libsystemd0_242-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev1_242-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/s/systemd/libudev-dev_242-7_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tcp-wrappers/libwrap0_7.6.q-28_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/t/tiff/libtiff5_4.0.10+git191003-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/unbound/libunbound8_1.9.4-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid1_2.34-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libblkid-dev_2.34-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount1_2.34-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libmount-dev_2.34-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/libuuid1_2.34-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/u/util-linux/uuid-dev_2.34-0.1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/v/vulkan-loader/libvulkan1_1.1.121.0-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-client0_1.17.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-cursor0_1.17.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-dev_1.17.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-egl1_1.17.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland/libwayland-server0_1.17.0-1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/w/wayland-protocols/wayland-protocols_1.18-1_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xft/libxft2_2.3.2-2_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-composite-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-damage-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-fixes-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-input-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-kb-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-randr-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-record-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-render-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-scrnsaver-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xext-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xorgproto/x11proto-xinerama-dev_2018.4-4_all.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/x/xz-utils/liblzma5_5.2.4-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g_1.2.11.dfsg-1+b1_mipsel.deb +https://snapshot.debian.org/archive/debian/20191015T084824Z/pool/main/z/zlib/zlib1g-dev_1.2.11.dfsg-1+b1_mipsel.deb diff --git a/chromium/build/linux/sysroot_scripts/sysroot-creator-sid.sh b/chromium/build/linux/sysroot_scripts/sysroot-creator-sid.sh index f3bf1de2580..95531e22672 100755 --- a/chromium/build/linux/sysroot_scripts/sysroot-creator-sid.sh +++ b/chromium/build/linux/sysroot_scripts/sysroot-creator-sid.sh @@ -14,21 +14,24 @@ DIST=sid # like libc6 would take precedence over the sid (released) versions. While this # may be useful for certain kinds of development, the standard sysroots should # continue to be shipped only with released packages. +# Also keep "stretch" before "sid" and "experimental". For now, it's needed to +# bring back libgnome-keyring-dev which has since been deprecated and removed +# from sid. It will be needed until gnome keyring is removed +# (http://crbug.com/466975 and http://crbug.com/355223). ARCHIVE_URL="https://snapshot.debian.org/archive/debian" -ARCHIVE_TIMESTAMP=20181214T150526Z -APT_SOURCES_LIST="${ARCHIVE_URL}/${ARCHIVE_TIMESTAMP}/ experimental main +ARCHIVE_TIMESTAMP=20191015T084824Z +APT_SOURCES_LIST="${ARCHIVE_URL}/${ARCHIVE_TIMESTAMP}/ stretch main +${ARCHIVE_URL}/${ARCHIVE_TIMESTAMP}/ experimental main ${ARCHIVE_URL}/${ARCHIVE_TIMESTAMP}/ sid main" -# gpg keyring file generated using: -# export KEYS="518E17E1 46925553 2B90D010 C857C906 F66AEC98 8AE22BA9 1A7B6500" -# gpg --recv-keys $KEYS -# gpg --output ./debian-archive-sid-stable.gpg --export $KEYS -KEYRING_FILE="${SCRIPT_DIR}/debian-archive-sid-stable.gpg" +# gpg keyring file generated using generate_debian_archive_unstable.sh +KEYRING_FILE="${SCRIPT_DIR}/debian_archive_unstable.gpg" HAS_ARCH_AMD64=1 HAS_ARCH_I386=1 HAS_ARCH_ARM=1 HAS_ARCH_ARM64=1 +HAS_ARCH_ARMEL=1 HAS_ARCH_MIPS=1 HAS_ARCH_MIPS64EL=1 @@ -56,11 +59,13 @@ DEBIAN_PACKAGES="\ libaudit1 libavahi-client3 libavahi-common3 + libblkid-dev libblkid1 libbluetooth-dev libbluetooth3 libbrlapi-dev - libbrlapi0.6 + libbrlapi0.7 + libbrotli1 libbsd0 libc6 libc6-dev @@ -114,7 +119,7 @@ DEBIAN_PACKAGES="\ libfribidi0 libgbm-dev libgbm1 - libgcc-6-dev + libgcc-7-dev libgcc1 libgcrypt20 libgcrypt20-dev @@ -161,7 +166,6 @@ DEBIAN_PACKAGES="\ libice6 libicu-le-hb0 libicu63 - libicu60 libidl-2-0 libidn11 libidn2-0 @@ -188,6 +192,7 @@ DEBIAN_PACKAGES="\ liblzo2-2 libminizip-dev libminizip1 + libmount-dev libmount1 libnettle6 libnspr4 @@ -200,8 +205,6 @@ DEBIAN_PACKAGES="\ libopengl0 libopus-dev libopus0 - liborbit-2-0 - liborbit2 libp11-kit0 libpam0g libpam0g-dev @@ -215,6 +218,11 @@ DEBIAN_PACKAGES="\ libpci3 libpciaccess0 libpcre16-3 + libpcre2-16-0 + libpcre2-32-0 + libpcre2-8-0 + libpcre2-dev + libpcre2-posix0 libpcre3 libpcre3-dev libpcre32-3 @@ -230,10 +238,13 @@ DEBIAN_PACKAGES="\ libpulse-dev libpulse-mainloop-glib0 libpulse0 - libre2-4 + libre2-5 libre2-dev librest-0.7-0 + libselinux1-dev libselinux1 + libsepol1-dev + libsepol1 libsm6 libsnappy-dev libsnappy1v5 @@ -245,9 +256,8 @@ DEBIAN_PACKAGES="\ libspeechd2 libsqlite3-0 libssl-dev - libssl1.0.2 libssl1.1 - libstdc++-6-dev + libstdc++-7-dev libstdc++6 libsystemd0 libtasn1-6 @@ -267,7 +277,7 @@ DEBIAN_PACKAGES="\ libvorbis0a libvorbisenc2 libvpx-dev - libvpx5 + libvpx6 libvulkan1 libwayland-client0 libwayland-cursor0 @@ -365,7 +375,7 @@ DEBIAN_PACKAGES_AMD64=" " DEBIAN_PACKAGES_X86=" - libasan3 + libasan4 libcilkrts5 libdrm-intel1 libitm1 @@ -375,7 +385,8 @@ DEBIAN_PACKAGES_X86=" " DEBIAN_PACKAGES_ARM=" - libasan3 + libasan4 + libcilkrts5 libdrm-etnaviv1 libdrm-exynos1 libdrm-freedreno1 @@ -385,14 +396,29 @@ DEBIAN_PACKAGES_ARM=" " DEBIAN_PACKAGES_ARM64=" - libasan3 + libasan4 libdrm-etnaviv1 libdrm-freedreno1 libdrm-tegra0 libgmp10 libitm1 + liblsan0 libthai0 + libtsan0 libubsan0 " +DEBIAN_PACKAGES_ARMEL=" + libasan4 + libcilkrts5 + libdrm-exynos1 + libdrm-freedreno1 + libdrm-omap1 + libdrm-tegra0 + libubsan0 +" + +DEBIAN_PACKAGES_MIPS64EL=" +" + . "${SCRIPT_DIR}/sysroot-creator.sh" diff --git a/chromium/build/linux/sysroot_scripts/sysroot-creator.sh b/chromium/build/linux/sysroot_scripts/sysroot-creator.sh index 88645dad348..9d47ddbd763 100644 --- a/chromium/build/linux/sysroot_scripts/sysroot-creator.sh +++ b/chromium/build/linux/sysroot_scripts/sysroot-creator.sh @@ -48,6 +48,7 @@ readonly HAS_ARCH_AMD64=${HAS_ARCH_AMD64:=0} readonly HAS_ARCH_I386=${HAS_ARCH_I386:=0} readonly HAS_ARCH_ARM=${HAS_ARCH_ARM:=0} readonly HAS_ARCH_ARM64=${HAS_ARCH_ARM64:=0} +readonly HAS_ARCH_ARMEL=${HAS_ARCH_ARMEL:=0} readonly HAS_ARCH_MIPS=${HAS_ARCH_MIPS:=0} readonly HAS_ARCH_MIPS64EL=${HAS_ARCH_MIPS64EL:=0} @@ -65,6 +66,7 @@ readonly DEBIAN_DEP_LIST_AMD64="generated_package_lists/${DIST}.amd64" readonly DEBIAN_DEP_LIST_I386="generated_package_lists/${DIST}.i386" readonly DEBIAN_DEP_LIST_ARM="generated_package_lists/${DIST}.arm" readonly DEBIAN_DEP_LIST_ARM64="generated_package_lists/${DIST}.arm64" +readonly DEBIAN_DEP_LIST_ARMEL="generated_package_lists/${DIST}.armel" readonly DEBIAN_DEP_LIST_MIPS="generated_package_lists/${DIST}.mipsel" readonly DEBIAN_DEP_LIST_MIPS64EL="generated_package_lists/${DIST}.mips64el" @@ -102,7 +104,10 @@ DownloadOrCopyNonUniqueFilename() { local hash="$(echo "$url" | sha256sum | cut -d' ' -f1)" DownloadOrCopy "${url}" "${dest}.${hash}" - cp "${dest}.${hash}" "$dest" + # cp the file to prevent having to redownload it, but mv it to the + # final location so that it's atomic. + cp "${dest}.${hash}" "${dest}.$$" + mv "${dest}.$$" "${dest}" } DownloadOrCopy() { @@ -117,10 +122,25 @@ DownloadOrCopy() { SubBanner "downloading from $1 -> $2" # Appending the "$$" shell pid is necessary here to prevent concurrent # instances of sysroot-creator.sh from trying to write to the same file. - # --create-dirs is added in case there are slashes in the filename, as can - # happen with the "debian/security" release class. - curl -L "$1" --create-dirs -o "${2}.partial.$$" - mv "${2}.partial.$$" $2 + local temp_file="${2}.partial.$$" + # curl --retry doesn't retry when the page gives a 4XX error, so we need to + # manually rerun. + for i in {1..10}; do + # --create-dirs is added in case there are slashes in the filename, as can + # happen with the "debian/security" release class. + local http_code=$(curl -L "$1" --create-dirs -o "${temp_file}" \ + -w "%{http_code}") + if [ ${http_code} -eq 200 ]; then + break + fi + echo "Bad HTTP code ${http_code} when downloading $1" + rm -f "${temp_file}" + sleep $i + done + if [ ! -f "${temp_file}" ]; then + exit 1 + fi + mv "${temp_file}" $2 else SubBanner "copying from $1" cp "$1" "$2" @@ -148,6 +168,9 @@ SetEnvironmentVariables() { *ARM64) ARCH=ARM64 ;; + *ARMEL) + ARCH=ARMEL + ;; *) echo "ERROR: Unable to determine architecture based on: $1" exit 1 @@ -235,7 +258,6 @@ GeneratePackageListCommon() { local packages="$3" local dists="${DIST} ${DIST_UPDATES:-}" - local repos="main ${REPO_EXTRA:-}" local list_base="${BUILD_DIR}/Packages.${DIST}_${arch}" > "${list_base}" # Create (or truncate) a zero-length file. @@ -267,6 +289,11 @@ GeneratePackageListARM64() { ${DEBIAN_PACKAGES_ARM64:=}" } +GeneratePackageListARMEL() { + GeneratePackageListCommon "$1" armel "${DEBIAN_PACKAGES} + ${DEBIAN_PACKAGES_ARMEL:=}" +} + GeneratePackageListMips() { GeneratePackageListCommon "$1" mipsel "${DEBIAN_PACKAGES}" } @@ -327,12 +354,27 @@ HacksAndPatchesCommon() { nm -D --defined-only --with-symbol-versions "${libc_so}" | \ "${SCRIPT_DIR}/find_incompatible_glibc_symbols.py" >> "${glob_h}" + # fcntl64() was introduced in glibc 2.28. Make sure to use fcntl() instead. + local fcntl_h="${INSTALL_ROOT}/usr/include/fcntl.h" + sed -i '{N; s/#ifndef \(__USE_FILE_OFFSET64\nextern int fcntl\)/#ifdef \1/}' \ + "${fcntl_h}" + # On i386, fcntl() was updated in glibc 2.28. + nm -D --defined-only --with-symbol-versions "${libc_so}" | \ + "${SCRIPT_DIR}/find_incompatible_glibc_symbols.py" >> "${fcntl_h}" + # This is for chrome's ./build/linux/pkg-config-wrapper # which overwrites PKG_CONFIG_LIBDIR internally SubBanner "Move pkgconfig scripts" mkdir -p ${INSTALL_ROOT}/usr/lib/pkgconfig mv ${INSTALL_ROOT}/usr/lib/${arch}-${os}/pkgconfig/* \ ${INSTALL_ROOT}/usr/lib/pkgconfig + + # Temporary workaround for invalid implicit conversion from void* in pipewire. + # This is already fixed upstream in [1], so this can be removed once it rolls + # into Debian. + # [1] https://github.com/PipeWire/pipewire/commit/371da358d1580dc06218d18a12a99611cac39e4e + local pipewire_utils_h="${INSTALL_ROOT}/usr/include/pipewire/utils.h" + sed -i 's/malloc/(struct spa_pod*)malloc/' "${pipewire_utils_h}" } @@ -350,13 +392,15 @@ HacksAndPatchesARM() { HacksAndPatchesCommon arm linux-gnueabihf arm-linux-gnueabihf-strip } - HacksAndPatchesARM64() { # Use the unstripped libdbus for arm64 to prevent linker errors. # https://bugs.chromium.org/p/webrtc/issues/detail?id=8535 HacksAndPatchesCommon aarch64 linux-gnu true } +HacksAndPatchesARMEL() { + HacksAndPatchesCommon arm linux-gnueabi arm-linux-gnueabi-strip +} HacksAndPatchesMips() { HacksAndPatchesCommon mipsel linux-gnu mipsel-linux-gnu-strip @@ -423,6 +467,7 @@ CleanupJailSymlinks() { if [ "${ARCH}" != "MIPS" ]; then libdirs="${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 @@ -485,6 +530,9 @@ VerifyLibraryDepsARM64() { VerifyLibraryDepsCommon aarch64 linux-gnu } +VerifyLibraryDepsARMEL() { + VerifyLibraryDepsCommon arm linux-gnueabi +} VerifyLibraryDepsMips() { VerifyLibraryDepsCommon mipsel linux-gnu @@ -577,6 +625,26 @@ BuildSysrootARM64() { } #@ +#@ BuildSysrootARMEL +#@ +#@ Build everything and package it +BuildSysrootARMEL() { + if [ "$HAS_ARCH_ARMEL" = "0" ]; then + return + fi + ClearInstallDir + local package_file="${DEBIAN_DEP_LIST_ARMEL}" + GeneratePackageListARMEL "$package_file" + local files_and_sha256sums="$(cat ${package_file})" + StripChecksumsFromPackageList "$package_file" + InstallIntoSysroot ${files_and_sha256sums} + CleanupJailSymlinks + HacksAndPatchesARMEL + VerifyLibraryDepsARMEL + CreateTarBall +} + +#@ #@ BuildSysrootMips #@ #@ Build everything and package it @@ -625,6 +693,7 @@ BuildSysrootAll() { RunCommand BuildSysrootI386 RunCommand BuildSysrootARM RunCommand BuildSysrootARM64 + RunCommand BuildSysrootARMEL RunCommand BuildSysrootMips RunCommand BuildSysrootMips64el } @@ -678,6 +747,16 @@ UploadSysrootARM64() { } #@ +#@ UploadSysrootARMEL +#@ +UploadSysrootARMEL() { + if [ "$HAS_ARCH_ARMEL" = "0" ]; then + return + fi + UploadSysroot "$@" +} + +#@ #@ UploadSysrootMips #@ UploadSysrootMips() { @@ -706,6 +785,7 @@ UploadSysrootAll() { RunCommand UploadSysrootI386 "$@" RunCommand UploadSysrootARM "$@" RunCommand UploadSysrootARM64 "$@" + RunCommand UploadSysrootARMEL "$@" RunCommand UploadSysrootMips "$@" RunCommand UploadSysrootMips64el "$@" @@ -812,6 +892,9 @@ PrintArchitectures() { if [ "$HAS_ARCH_ARM64" = "1" ]; then echo ARM64 fi + if [ "$HAS_ARCH_ARMEL" = "1" ]; then + echo ARMEL + fi if [ "$HAS_ARCH_MIPS" = "1" ]; then echo Mips fi diff --git a/chromium/build/linux/sysroot_scripts/sysroots.json b/chromium/build/linux/sysroot_scripts/sysroots.json index d49621ce045..a24042de351 100644 --- a/chromium/build/linux/sysroot_scripts/sysroots.json +++ b/chromium/build/linux/sysroot_scripts/sysroots.json @@ -1,31 +1,36 @@ { "sid_amd64": { - "Sha1Sum": "e7c53f04bd88d29d075bfd1f62b073aeb69cbe09", + "Sha1Sum": "bcc994cc6e5d4d6f0eec8b44e7f0a65f5a1a7b90", "SysrootDir": "debian_sid_amd64-sysroot", "Tarball": "debian_sid_amd64_sysroot.tar.xz" }, "sid_arm": { - "Sha1Sum": "ef5c4f84bcafb7a3796d36bb1db7826317dde51c", + "Sha1Sum": "76e6068f9f6954e2ab1ff98ce5fa236d3d85bcbd", "SysrootDir": "debian_sid_arm-sysroot", "Tarball": "debian_sid_arm_sysroot.tar.xz" }, "sid_arm64": { - "Sha1Sum": "953c2471bc7e71a788309f6c2d2003e8b703305d", + "Sha1Sum": "1b47b4930e197ab92d67c5fad1246cf27fa3b0ab", "SysrootDir": "debian_sid_arm64-sysroot", "Tarball": "debian_sid_arm64_sysroot.tar.xz" }, + "sid_armel": { + "Sha1Sum": "6f2b39bdf73db9d378c5309f4a7ec050b97e771e", + "SysrootDir": "debian_sid_armel-sysroot", + "Tarball": "debian_sid_armel_sysroot.tar.xz" + }, "sid_i386": { - "Sha1Sum": "9e6279438ece6fb42b5333ca90d5e9d0c188a403", + "Sha1Sum": "632bb77cc527cc90b94a302f550d99e99baaab87", "SysrootDir": "debian_sid_i386-sysroot", "Tarball": "debian_sid_i386_sysroot.tar.xz" }, "sid_mips": { - "Sha1Sum": "958731a68a169631c0450efb15410ccc4135ef2a", + "Sha1Sum": "8d58231734ef581d33e3ff620cfa3d6ff7a7d964", "SysrootDir": "debian_sid_mips-sysroot", "Tarball": "debian_sid_mips_sysroot.tar.xz" }, "sid_mips64el": { - "Sha1Sum": "51ca1f4092ac76ad1a1da953f0f3ce1aea947a42", + "Sha1Sum": "2a44ca6e7e1f442ed2f29c84805637c278cbe2a2", "SysrootDir": "debian_sid_mips64el-sysroot", "Tarball": "debian_sid_mips64el_sysroot.tar.xz" } diff --git a/chromium/build/sanitizers/tsan_suppressions.cc b/chromium/build/sanitizers/tsan_suppressions.cc index 52fa68d2e83..36f213bcffa 100644 --- a/chromium/build/sanitizers/tsan_suppressions.cc +++ b/chromium/build/sanitizers/tsan_suppressions.cc @@ -47,11 +47,7 @@ char kTSanDefaultSuppressions[] = // http://crbug.com/246968 "race:webrtc::VideoCodingModuleImpl::RegisterPacketRequestCallback\n" - // http://crbug.com/257396 - "race:base::trace_event::" - // http://crbug.com/258479 - "race:SamplingStateScope\n" "race:g_trace_state\n" // http://crbug.com/268924 diff --git a/chromium/build/symlink.py b/chromium/build/symlink.py index 12942aa1706..6c0586b9f8a 100755 --- a/chromium/build/symlink.py +++ b/chromium/build/symlink.py @@ -60,7 +60,7 @@ def Main(argv): stderr=subprocess.STDOUT) else: os.symlink(s, t) - except OSError, e: + except OSError as e: if e.errno == errno.EEXIST and options.force: if os.path.isdir(t): shutil.rmtree(t, ignore_errors=True) @@ -69,7 +69,7 @@ def Main(argv): os.symlink(s, t) else: raise - except subprocess.CalledProcessError, e: + except subprocess.CalledProcessError as e: # Since subprocess.check_output does not return an easily checked error # number, in the 'force' case always assume it is 'file already exists' # and retry. diff --git a/chromium/build/toolchain/clang_code_coverage_wrapper.py b/chromium/build/toolchain/clang_code_coverage_wrapper.py index 7d5daa409ab..36a5e9aa775 100755 --- a/chromium/build/toolchain/clang_code_coverage_wrapper.py +++ b/chromium/build/toolchain/clang_code_coverage_wrapper.py @@ -58,21 +58,21 @@ _COVERAGE_FLAGS = [ '-mllvm', '-limited-coverage-experimental=true' ] +# Files that should not be built with coverage flags by default. +_DEFAULT_COVERAGE_EXCLUSION_LIST = [] + # Map of exclusion lists indexed by target OS. # If no target OS is defined, or one is defined that doesn't have a specific -# entry, use the 'default' exclusion_list. Anything added to 'default' will -# apply to all platforms that don't have their own specific list. +# entry, use _DEFAULT_COVERAGE_EXCLUSION_LIST. _COVERAGE_EXCLUSION_LIST_MAP = { - 'default': [], 'linux': [ # These files caused a static initializer to be generated, which # shouldn't. # TODO(crbug.com/990948): Remove when the bug is fixed. - '../../chrome/browser/media/router/providers/cast/cast_internal_message_util.cc', #pylint: disable=line-too-long + '../../chrome/browser/media/router/providers/cast/cast_internal_message_util.cc', #pylint: disable=line-too-long '../../chrome/common/media_router/providers/cast/cast_media_source.cc', '../../components/cast_channel/cast_channel_enum.cc', - '../../components/cast_channel/cast_message_util.cc' - + '../../components/cast_channel/cast_message_util.cc', ], 'chromeos': [ # These files caused clang to crash while compiling them. They are @@ -81,10 +81,12 @@ _COVERAGE_EXCLUSION_LIST_MAP = { '../../third_party/icu/source/common/uts46.cpp', '../../third_party/icu/source/common/ucnvmbcs.cpp', '../../base/android/android_image_reader_compat.cc', - ] + ], + 'win': [], } + def _remove_flags_from_command(command): # We need to remove the coverage flags for this file, but we only want to # remove them if we see the exact sequence defined in _COVERAGE_FLAGS. @@ -128,25 +130,27 @@ def main(): if not any('clang' in s for s in compile_command): return subprocess.call(compile_command) + target_os = parsed_args.target_os + try: # The command is assumed to use Clang as the compiler, and the path to the # source file is behind the -c argument, and the path to the source path is # relative to the root build directory. For example: # clang++ -fvisibility=hidden -c ../../base/files/file_path.cc -o \ # obj/base/base/file_path.o - index_dash_c = compile_command.index('-c') + # On Windows, clang-cl.exe uses /c instead of -c. + source_flag = '/c' if target_os == 'win' else '-c' + source_flag_index = compile_command.index(source_flag) except ValueError: - print('-c argument is not found in the compile command.') + print('%s argument is not found in the compile command.' % source_flag) raise - if index_dash_c + 1 >= len(compile_command): + if source_flag_index + 1 >= len(compile_command): raise Exception('Source file to be compiled is missing from the command.') - compile_source_file = compile_command[index_dash_c + 1] - target_os = parsed_args.target_os - if target_os not in _COVERAGE_EXCLUSION_LIST_MAP: - target_os = 'default' - exclusion_list = _COVERAGE_EXCLUSION_LIST_MAP[target_os] + compile_source_file = compile_command[source_flag_index + 1] + exclusion_list = _COVERAGE_EXCLUSION_LIST_MAP.get( + target_os, _DEFAULT_COVERAGE_EXCLUSION_LIST) if compile_source_file in exclusion_list: _remove_flags_from_command(compile_command) diff --git a/chromium/build/toolchain/cros/BUILD.gn b/chromium/build/toolchain/cros/BUILD.gn index 5a9561f2320..0740fa23f29 100644 --- a/chromium/build/toolchain/cros/BUILD.gn +++ b/chromium/build/toolchain/cros/BUILD.gn @@ -125,7 +125,7 @@ gcc_toolchain("host") { is_clang = cros_host_is_clang current_cpu = host_cpu current_os = "linux" - use_sysroot = false + use_sysroot = use_sysroot } } @@ -168,6 +168,6 @@ gcc_toolchain("v8_snapshot") { } v8_current_cpu = v8_target_cpu current_os = "linux" - use_sysroot = false + use_sysroot = use_sysroot } } diff --git a/chromium/build/toolchain/goma.gni b/chromium/build/toolchain/goma.gni index 2fbf5723897..ba54c4e80d8 100644 --- a/chromium/build/toolchain/goma.gni +++ b/chromium/build/toolchain/goma.gni @@ -27,3 +27,6 @@ declare_args() { } } } + +assert(!is_win || !use_goma || is_clang, + "cl.exe does not work on goma, use clang") diff --git a/chromium/build/toolchain/mac/BUILD.gn b/chromium/build/toolchain/mac/BUILD.gn index c58a13cb10a..7acb24b6afe 100644 --- a/chromium/build/toolchain/mac/BUILD.gn +++ b/chromium/build/toolchain/mac/BUILD.gn @@ -153,7 +153,7 @@ template("mac_toolchain") { rebase_path("//build/toolchain/mac/linker_driver.py", root_build_dir) # Specify an explicit path for the strip binary. - _strippath = "$mac_bin_path" + "strip" + _strippath = mac_bin_path + "strip" linker_driver += " -Wcrl,strippath," + _strippath if (mac_deterministic_build) { @@ -192,7 +192,6 @@ template("mac_toolchain") { dsym_output_dir = "{{root_out_dir}}/{{target_output_name}}{{output_extension}}.dSYM" dsym_output = [ - "$dsym_output_dir/", "$dsym_output_dir/Contents/Info.plist", "$dsym_output_dir/Contents/Resources/DWARF/" + "{{target_output_name}}{{output_extension}}", @@ -276,7 +275,7 @@ template("mac_toolchain") { rspfile_content = "{{inputs_newline}}" # Specify explicit path for libtool. - libtool = "$mac_bin_path" + "libtool" + libtool = mac_bin_path + "libtool" command = "rm -f {{output}} && TOOL_VERSION=${tool_versions.filter_libtool} python $script $libtool -static {{arflags}} -o {{output}} -filelist $rspfile" description = "LIBTOOL-STATIC {{output}}" outputs = [ @@ -307,8 +306,8 @@ template("mac_toolchain") { # search path in /usr/bin are thin wrappers around xcrun, which requires a # full CommandLineTools or Xcode install, and still may not choose the # appropriate binary if there are multiple installs. - otool = "$mac_bin_path" + "otool" - nm = "$mac_bin_path" + "nm" + otool = mac_bin_path + "otool" + nm = mac_bin_path + "nm" does_reexport_command = "[ ! -e \"$dylib\" -o ! -e \"$tocname\" ] || $otool -l \"$dylib\" | grep -q LC_REEXPORT_DYLIB" diff --git a/chromium/build/toolchain/win/BUILD.gn b/chromium/build/toolchain/win/BUILD.gn index de31ceb25cb..25e95f164a5 100644 --- a/chromium/build/toolchain/win/BUILD.gn +++ b/chromium/build/toolchain/win/BUILD.gn @@ -130,23 +130,55 @@ template("msvc_toolchain") { # ninja does not have -t msvc other than windows, and lld doesn't depend on # mt.exe in PATH on non-Windows, so it's not needed there anyways. - if (defined(invoker.sys_lib_flags)) { + if (host_os != "win") { linker_wrapper = "" sys_lib_flags = "${invoker.sys_lib_flags} " # Note trailing space - } else if (use_lld) { + } else if (defined(invoker.sys_lib_flags)) { # Invoke ninja as wrapper instead of tool wrapper, because python # invocation requires higher cpu usage compared to ninja invocation, and # the python wrapper is only needed to work around link.exe problems. # TODO(thakis): Remove wrapper once lld-link can merge manifests without # relying on mt.exe being in %PATH% on Windows, https://crbug.com/872740 linker_wrapper = "ninja -t msvc -e $env -- " # Note trailing space. - sys_lib_flags = "" + sys_lib_flags = "${invoker.sys_lib_flags} " # Note trailing space } else { linker_wrapper = "$python_path $tool_wrapper_path link-wrapper $env False " # Note trailing space. sys_lib_flags = "" } + if (defined(toolchain_args.use_clang_coverage)) { + toolchain_use_clang_coverage = toolchain_args.use_clang_coverage + } else { + toolchain_use_clang_coverage = use_clang_coverage + } + + if (toolchain_use_clang_coverage) { + assert(toolchain_args.is_clang, + "use_clang_coverage should only be used with Clang") + if (defined(toolchain_args.coverage_instrumentation_input_file)) { + toolchain_coverage_instrumentation_input_file = + toolchain_args.coverage_instrumentation_input_file + } else { + toolchain_coverage_instrumentation_input_file = + coverage_instrumentation_input_file + } + + coverage_wrapper = + rebase_path("//build/toolchain/clang_code_coverage_wrapper.py", + root_build_dir) + coverage_wrapper = coverage_wrapper + " --target-os=" + target_os + if (toolchain_coverage_instrumentation_input_file != "") { + coverage_wrapper = + coverage_wrapper + " --files-to-instrument=" + + rebase_path(toolchain_coverage_instrumentation_input_file, + root_build_dir) + } + coverage_wrapper = "$python_path " + coverage_wrapper + " " + } else { + coverage_wrapper = "" + } + tool("cc") { precompiled_header_type = "msvc" pdbname = "{{target_out_dir}}/{{label_name}}_c.pdb" @@ -160,7 +192,7 @@ template("msvc_toolchain") { "$object_subdir/{{source_name_part}}.obj", ] - command = "$env_wrapper$cl /nologo /showIncludes $sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" + command = "$coverage_wrapper$env_wrapper$cl /nologo /showIncludes $sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_c}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" } tool("cxx") { @@ -176,7 +208,7 @@ template("msvc_toolchain") { "$object_subdir/{{source_name_part}}.obj", ] - command = "$env_wrapper$cl /nologo /showIncludes $sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" + command = "$coverage_wrapper$env_wrapper$cl /nologo /showIncludes $sys_include_flags{{defines}} {{include_dirs}} {{cflags}} {{cflags_cc}} /c {{source}} /Fo{{output}} /Fd\"$pdbname\"" } tool("rc") { @@ -356,21 +388,23 @@ template("win_toolchains") { ], "scope") - msvc_toolchain(target_name) { - environment = "environment." + toolchain_arch - cl = "${goma_prefix}\"${win_toolchain_data.vc_bin_dir}/cl.exe\"" - if (host_os != "win") { - # For win cross build - sys_lib_flags = "${win_toolchain_data.libpath_flags}" - } + # The toolchain using MSVC only makes sense when not doing cross builds. + # Chromium exclusively uses the win_clang_ toolchain below, but V8 and + # WebRTC still use this MSVC toolchain in some cases. + if (host_os == "win") { + msvc_toolchain(target_name) { + environment = "environment." + toolchain_arch + cl = "${goma_prefix}\"${win_toolchain_data.vc_bin_dir}/cl.exe\"" - toolchain_args = { - if (defined(invoker.toolchain_args)) { - forward_variables_from(invoker.toolchain_args, "*") + toolchain_args = { + if (defined(invoker.toolchain_args)) { + forward_variables_from(invoker.toolchain_args, "*") + } + is_clang = false + use_clang_coverage = false + current_os = "win" + current_cpu = toolchain_arch } - is_clang = false - current_os = "win" - current_cpu = toolchain_arch } } @@ -383,10 +417,7 @@ template("win_toolchains") { cl = string_replace(cl, "/", "\\") } sys_include_flags = "${win_toolchain_data.include_flags_imsvc}" - if (host_os != "win") { - # For win cross build - sys_lib_flags = "${win_toolchain_data.libpath_flags}" - } + sys_lib_flags = "${win_toolchain_data.libpath_flags}" toolchain_args = { if (defined(invoker.toolchain_args)) { diff --git a/chromium/build/toolchain/win/midl.py b/chromium/build/toolchain/win/midl.py index ab04546aaec..6d6fab05a50 100644 --- a/chromium/build/toolchain/win/midl.py +++ b/chromium/build/toolchain/win/midl.py @@ -2,12 +2,14 @@ # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. +from __future__ import division from __future__ import print_function import array import difflib import distutils.dir_util import filecmp +import io import operator import os import re @@ -18,6 +20,8 @@ import sys import tempfile import uuid +from functools import reduce + def ZapTimestamp(filename): contents = open(filename, 'rb').read() @@ -45,66 +49,75 @@ def ZapTimestamp(filename): # There might be more custom data after that, but these 3 blocks are always # there for file-level metadata. # All data is little-endian in the file. - assert contents[0:8] == 'MSFT\x02\x00\x01\x00' + assert contents[0:8] == b'MSFT\x02\x00\x01\x00' ntypes, = struct.unpack_from('<I', contents, 0x20) custom_off, custom_len = struct.unpack_from( '<II', contents, 0x54 + 4*ntypes + 11*16) assert custom_len >= 0x54 # First: Type string (0x8), followed by 0x3e characters. - assert contents[custom_off:custom_off+6] == '\x08\x00\x3e\x00\x00\x00' + assert contents[custom_off:custom_off + 6] == b'\x08\x00\x3e\x00\x00\x00' assert re.match( - 'Created by MIDL version 8\.\d\d\.\d{4} at ... Jan 1. ..:..:.. 2038\n', - contents[custom_off+6:custom_off+6+0x3e]) + br'Created by MIDL version 8\.\d\d\.\d{4} at ... Jan 1. ..:..:.. 2038\n', + contents[custom_off + 6:custom_off + 6 + 0x3e]) # Second: Type uint32 (0x13) storing 0x7fffffff (followed by WW / 0x57 pad) assert contents[custom_off+6+0x3e:custom_off+6+0x3e+8] == \ - '\x13\x00\xff\xff\xff\x7f\x57\x57' + b'\x13\x00\xff\xff\xff\x7f\x57\x57' # Third: Type uint32 (0x13) storing MIDL compiler version. - assert contents[custom_off+6+0x3e+8:custom_off+6+0x3e+8+2] == '\x13\x00' + assert contents[custom_off + 6 + 0x3e + 8:custom_off + 6 + 0x3e + 8 + + 2] == b'\x13\x00' # Replace "Created by" string with fixed string, and fixed MIDL version with # 8.1.622 always. - contents = (contents[0:custom_off+6] + - 'Created by MIDL version 8.xx.xxxx at a redacted point in time\n' + + contents = ( + contents[0:custom_off + 6] + + b'Created by MIDL version 8.xx.xxxx at a redacted point in time\n' + # uint32 (0x13) val 0x7fffffff, WW, uint32 (0x13), val 0x0801026e, WW - '\x13\x00\xff\xff\xff\x7f\x57\x57\x13\x00\x6e\x02\x01\x08\x57\x57' + + b'\x13\x00\xff\xff\xff\x7f\x57\x57\x13\x00\x6e\x02\x01\x08\x57\x57' + contents[custom_off + 0x54:]) else: contents = re.sub( - 'File created by MIDL compiler version 8\.\d\d\.\d{4} \*/\r\n' - '/\* at ... Jan 1. ..:..:.. 2038', - 'File created by MIDL compiler version 8.xx.xxxx */\r\n' - '/* at a redacted point in time', - contents) + br'File created by MIDL compiler version 8\.\d\d\.\d{4} \*/\r\n' + br'/\* at ... Jan 1. ..:..:.. 2038', + br'File created by MIDL compiler version 8.xx.xxxx */\r\n' + br'/* at a redacted point in time', contents) contents = re.sub( - ' Oicf, W1, Zp8, env=(.....) \(32b run\), ' - 'target_arch=(AMD64|X86) 8\.\d\d\.\d{4}', - ' Oicf, W1, Zp8, env=\\1 (32b run), target_arch=\\2 8.xx.xxxx', + br' Oicf, W1, Zp8, env=(.....) \(32b run\), ' + br'target_arch=(AMD64|X86) 8\.\d\d\.\d{4}', + br' Oicf, W1, Zp8, env=\1 (32b run), target_arch=\2 8.xx.xxxx', contents) # TODO(thakis): If we need more hacks than these, try to verify checked-in # outputs when we're using the hermetic toolchain. # midl.exe older than 8.1.622 omit '//' after #endif, fix that: - contents = contents.replace('#endif !_MIDL_USE_GUIDDEF_', - '#endif // !_MIDL_USE_GUIDDEF_') + contents = contents.replace(b'#endif !_MIDL_USE_GUIDDEF_', + b'#endif // !_MIDL_USE_GUIDDEF_') # midl.exe puts the midl version into code in one place. To have # predictable output, lie about the midl version if it's not 8.1.622. # This is unfortunate, but remember that there's beauty too in imperfection. - contents = contents.replace('0x801026c, /* MIDL Version 8.1.620 */', - '0x801026e, /* MIDL Version 8.1.622 */') + contents = contents.replace(b'0x801026c, /* MIDL Version 8.1.620 */', + b'0x801026e, /* MIDL Version 8.1.622 */') open(filename, 'wb').write(contents) def overwrite_cls_guid_h(h_file, dynamic_guid): contents = open(h_file, 'rb').read() - contents = re.sub('class DECLSPEC_UUID\("[^"]*"\)', - 'class DECLSPEC_UUID("%s")' % str(dynamic_guid), contents) + contents = re.sub(br'class DECLSPEC_UUID\("[^"]*"\)', + br'class DECLSPEC_UUID("%s")' % str(dynamic_guid).encode(), + contents) open(h_file, 'wb').write(contents) def overwrite_cls_guid_iid(iid_file, dynamic_guid): contents = open(iid_file, 'rb').read() hexuuid = '0x%08x,0x%04x,0x%04x,' % dynamic_guid.fields[0:3] - hexuuid += ','.join('0x%02x' % ord(b) for b in dynamic_guid.bytes[8:]) - contents = re.sub(r'MIDL_DEFINE_GUID\(CLSID, ([^,]*),[^)]*\)', - r'MIDL_DEFINE_GUID(CLSID, \1,%s)' % hexuuid, contents) + + # dynamic_guid.bytes is a bytestring in Py3, but a normal string in Py2. + if sys.version_info.major == 2: + hexuuid += ','.join('0x%02x' % ord(b) for b in dynamic_guid.bytes[8:]) + else: + hexuuid += ','.join('0x%02x' % b for b in dynamic_guid.bytes[8:]) + + contents = re.sub(br'MIDL_DEFINE_GUID\(CLSID, ([^,]*),[^)]*\)', + br'MIDL_DEFINE_GUID(CLSID, \1,%s)' % hexuuid.encode(), + contents) open(iid_file, 'wb').write(contents) @@ -113,27 +126,34 @@ def overwrite_cls_guid_tlb(tlb_file, dynamic_guid): # section contains type descriptions, and the first type should be our # coclass. It points to the type's GUID in section 6, the GUID section. contents = open(tlb_file, 'rb').read() - assert contents[0:8] == 'MSFT\x02\x00\x01\x00' + assert contents[0:8] == b'MSFT\x02\x00\x01\x00' ntypes, = struct.unpack_from('<I', contents, 0x20) type_off, type_len = struct.unpack_from('<II', contents, 0x54 + 4*ntypes) - assert ord(contents[type_off]) == 0x25, "expected coclass" + + # contents is a bytestring in Python 3, but a normal string in Py2. + if sys.version_info.major == 2: + coclass = ord(contents[type_off]) + else: + coclass = contents[type_off] + assert coclass == 0x25, "expected coclass" + guidind = struct.unpack_from('<I', contents, type_off + 0x2c)[0] guid_off, guid_len = struct.unpack_from( '<II', contents, 0x54 + 4*ntypes + 5*16) assert guidind + 14 <= guid_len - contents = array.array('c', contents) + contents = array.array('B', contents) struct.pack_into('<IHH8s', contents, guid_off + guidind, *(dynamic_guid.fields[0:3] + (dynamic_guid.bytes[8:],))) # The GUID is correct now, but there's also a GUID hashtable in section 5. # Need to recreate that too. Since the hash table uses chaining, it's # easiest to recompute it from scratch rather than trying to patch it up. - hashtab = [0xffffffff] * (0x80 / 4) + hashtab = [0xffffffff] * (0x80 // 4) for guidind in range(guid_off, guid_off + guid_len, 24): guidbytes, typeoff, nextguid = struct.unpack_from( '<16sII', contents, guidind) words = struct.unpack('<8H', guidbytes) # midl seems to use the following simple hash function for GUIDs: - guidhash = reduce(operator.xor, [w for w in words]) % (0x80 / 4) + guidhash = reduce(operator.xor, [w for w in words]) % (0x80 // 4) nextguid = hashtab[guidhash] struct.pack_into('<I', contents, guidind + 0x14, nextguid) hashtab[guidhash] = guidind - guid_off @@ -200,7 +220,7 @@ def main(arch, gendir, outdir, dynamic_guid, tlb, h, dlldata, iid, proxy, idl, # to filter is pairs of lines that look like this: # Processing C:\Program Files (x86)\Microsoft SDKs\...\include\objidl.idl # objidl.idl - lines = out.splitlines() + lines = out.decode('utf-8').splitlines() prefixes = ('Processing ', '64 bit Processing ') processing = set(os.path.basename(x) for x in lines if x.startswith(prefixes)) @@ -224,11 +244,11 @@ def main(arch, gendir, outdir, dynamic_guid, tlb, h, dlldata, iid, proxy, idl, tofile = os.path.join(tmp_dir, f) print(''.join( difflib.unified_diff( - open(fromfile, 'U').readlines(), - open(tofile, 'U').readlines(), fromfile, tofile))) + io.open(fromfile).readlines(), + io.open(tofile).readlines(), fromfile, tofile))) delete_tmp_dir = False print('To rebaseline:') - print(' copy /y %s\* %s' % (tmp_dir, source)) + print(r' copy /y %s\* %s' % (tmp_dir, source)) sys.exit(1) return 0 finally: diff --git a/chromium/build/toolchain/win/rc/rc.py b/chromium/build/toolchain/win/rc/rc.py index 2eff7d2fa30..a01a5ab6c3f 100755 --- a/chromium/build/toolchain/win/rc/rc.py +++ b/chromium/build/toolchain/win/rc/rc.py @@ -162,7 +162,7 @@ def RunRc(preprocessed_output, is_utf8, flags): rc_cmd.append('/fo' + flags.output) if is_utf8: rc_cmd.append('/utf-8') - # TODO(thakis): rc currently always prints full paths for /showIncludes, + # TODO(thakis): cl currently always prints full paths for /showIncludes, # but clang-cl /P doesn't. Which one is right? if flags.show_includes: rc_cmd.append('/showIncludes') @@ -172,9 +172,65 @@ def RunRc(preprocessed_output, is_utf8, flags): rc_cmd += flags.includes p = subprocess.Popen(rc_cmd, stdin=subprocess.PIPE) p.communicate(input=preprocessed_output) + + if flags.show_includes and p.returncode == 0: + # Since tool("rc") can't have deps, add deps on this script and on rc.py + # and its deps here, so that rc edges become dirty if rc.py changes. + print('Note: including file: ../../build/toolchain/win/tool_wrapper.py') + print('Note: including file: ../../build/toolchain/win/rc/rc.py') + print( + 'Note: including file: ../../build/toolchain/win/rc/linux64/rc.sha1') + print('Note: including file: ../../build/toolchain/win/rc/mac/rc.sha1') + print( + 'Note: including file: ../../build/toolchain/win/rc/win/rc.exe.sha1') + return p.returncode +def CompareToMsRcOutput(preprocessed_output, is_utf8, flags): + msrc_in = flags.output + '.preprocessed.rc' + + # Strip preprocessor line markers. + preprocessed_output = re.sub(r'^#.*$', '', preprocessed_output, flags=re.M) + if is_utf8: + preprocessed_output = preprocessed_output.decode('utf-8').encode('utf-16le') + with open(msrc_in, 'wb') as f: + f.write(preprocessed_output) + + msrc_out = flags.output + '_ms_rc' + msrc_cmd = ['rc', '/nologo', '/fo' + msrc_out] + + # Make sure rc-relative resources can be found. rc.exe looks for external + # resource files next to the file, but the preprocessed file isn't where the + # input was. + # Note that rc searches external resource files in the order of + # 1. next to the input file + # 2. relative to cwd + # 3. next to -I directories + # Changing the cwd means we'd have to rewrite all -I flags, so just add + # the input file dir as -I flag. That technically gets the order of 1 and 2 + # wrong, but in Chromium's build the cwd is the gn out dir, and generated + # files there are in obj/ and gen/, so this difference doesn't matter in + # practice. + if os.path.dirname(flags.input): + msrc_cmd += [ '-I' + os.path.dirname(flags.input) ] + + # Microsoft rc.exe searches for referenced files relative to -I flags in + # addition to the pwd, so -I flags need to be passed both to both + # the preprocessor and rc. + msrc_cmd += flags.includes + + # Input must come last. + msrc_cmd += [ msrc_in ] + + rc_exe_exit_code = subprocess.call(msrc_cmd) + # Assert Microsoft rc.exe and rc.py produced identical .res files. + if rc_exe_exit_code == 0: + import filecmp + assert filecmp.cmp(msrc_out, flags.output) + return rc_exe_exit_code + + def main(): # This driver has to do these things: # 1. Parse flags. @@ -185,7 +241,17 @@ def main(): flags = ParseFlags() rc_file_data, is_utf8 = ReadInput(flags.input) preprocessed_output = Preprocess(rc_file_data, flags) - return RunRc(preprocessed_output, is_utf8, flags) + rc_exe_exit_code = RunRc(preprocessed_output, is_utf8, flags) + + # 5. On Windows, we also call Microsoft's rc.exe and check that we produced + # the same output. + # Since Microsoft's rc has a preprocessor that only accepts 32 characters + # for macro names, feed the clang-preprocessed source into it instead + # of using ms rc's preprocessor. + if sys.platform == 'win32' and rc_exe_exit_code == 0: + rc_exe_exit_code = CompareToMsRcOutput(preprocessed_output, is_utf8, flags) + + return rc_exe_exit_code if __name__ == '__main__': diff --git a/chromium/build/toolchain/win/tool_wrapper.py b/chromium/build/toolchain/win/tool_wrapper.py index 3834cf2c01a..e5cc81b1fde 100644 --- a/chromium/build/toolchain/win/tool_wrapper.py +++ b/chromium/build/toolchain/win/tool_wrapper.py @@ -212,46 +212,11 @@ class WinTool(object): def ExecRcWrapper(self, arch, *args): """Converts .rc files to .res files.""" env = self._GetEnv(arch) - - # We run two resource compilers: - # 1. A custom one at build/toolchain/win/rc/rc.py which can run on - # non-Windows, and which has /showIncludes support so we can track - # dependencies (e.g. on .ico files) of .rc files. - # 2. On Windows, regular Microsoft rc.exe, to make sure rc.py produces - # bitwise identical output. - - # 1. Run our rc.py. - # Also pass /showIncludes to track dependencies of .rc files. args = list(args) rcpy_args = args[:] rcpy_args[0:1] = [sys.executable, os.path.join(BASE_DIR, 'rc', 'rc.py')] - rcpy_res_output = rcpy_args[-2] - assert rcpy_res_output.startswith('/fo') - assert rcpy_res_output.endswith('.res') - rc_res_output = rcpy_res_output + '_ms_rc' - args[-2] = rc_res_output rcpy_args.append('/showIncludes') - rc_exe_exit_code = subprocess.call(rcpy_args, env=env) - if rc_exe_exit_code == 0: - # Since tool("rc") can't have deps, add deps on this script and on rc.py - # and its deps here, so that rc edges become dirty if rc.py changes. - print('Note: including file: ../../build/toolchain/win/tool_wrapper.py') - print('Note: including file: ../../build/toolchain/win/rc/rc.py') - print( - 'Note: including file: ../../build/toolchain/win/rc/linux64/rc.sha1') - print('Note: including file: ../../build/toolchain/win/rc/mac/rc.sha1') - print( - 'Note: including file: ../../build/toolchain/win/rc/win/rc.exe.sha1') - - # 2. Run Microsoft rc.exe. - if sys.platform == 'win32' and rc_exe_exit_code == 0: - rc_exe_exit_code = subprocess.call(args, shell=True, env=env) - # Assert Microsoft rc.exe and rc.py produced identical .res files. - if rc_exe_exit_code == 0: - import filecmp - # Strip "/fo" prefix. - assert filecmp.cmp(rc_res_output[3:], rcpy_res_output[3:]) - return rc_exe_exit_code + return subprocess.call(rcpy_args, env=env) def ExecActionWrapper(self, arch, rspfile, *dirname): """Runs an action command line from a response file using the environment diff --git a/chromium/build/util/LASTCHANGE b/chromium/build/util/LASTCHANGE index 8bd8d107246..6b8bbfa8331 100644 --- a/chromium/build/util/LASTCHANGE +++ b/chromium/build/util/LASTCHANGE @@ -1 +1 @@ -LASTCHANGE=c1109b707b1eda5d98eb2ed6bd74083bc352f482-refs/branch-heads/3904@{#917} +LASTCHANGE=cd3a886c28f57603dea2a9050d2aadef3e8c30a4-refs/branch-heads/3945@{#1070} diff --git a/chromium/build/util/LASTCHANGE.committime b/chromium/build/util/LASTCHANGE.committime index 72cea2a3f00..c7b8003e8df 100644 --- a/chromium/build/util/LASTCHANGE.committime +++ b/chromium/build/util/LASTCHANGE.committime @@ -1 +1 @@ -1575594590
\ No newline at end of file +1579744552
\ No newline at end of file diff --git a/chromium/build/util/generate_wrapper.py b/chromium/build/util/generate_wrapper.py index 339e15ec2bb..5a7d1ee8a2f 100755 --- a/chromium/build/util/generate_wrapper.py +++ b/chromium/build/util/generate_wrapper.py @@ -101,7 +101,7 @@ def Wrap(args): template = SCRIPT_TEMPLATES[args.script_language] wrapper_script.write(template.format( script=py_contents)) - os.chmod(args.wrapper_script, 0750) + os.chmod(args.wrapper_script, 0o750) return 0 diff --git a/chromium/build/util/lib/common/chrome_test_server_spawner.py b/chromium/build/util/lib/common/chrome_test_server_spawner.py index 93ecb7127df..b556650e4c1 100644 --- a/chromium/build/util/lib/common/chrome_test_server_spawner.py +++ b/chromium/build/util/lib/common/chrome_test_server_spawner.py @@ -355,7 +355,7 @@ class SpawningServerRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): _logger.info('Test server is running on port %d forwarded to %d.' % (new_server.forwarder_device_port, new_server.host_port)) port = new_server.forwarder_device_port - assert not self.server.test_servers.has_key(port) + assert port not in self.server.test_servers self.server.test_servers[port] = new_server else: new_server.Stop() @@ -366,13 +366,13 @@ class SpawningServerRequestHandler(BaseHTTPServer.BaseHTTPRequestHandler): """Stops the test server instance.""" try: port = int(params['port'][0]) - except ValueError, KeyError: + except ValueError: port = None if port == None or port <= 0: self._SendResponse(400, 'Invalid request.', {}, 'port must be specified') return - if not self.server.test_servers.has_key(port): + if port not in self.server.test_servers: self._SendResponse(400, 'Invalid request.', {}, "testserver isn't running on port %d" % port) return diff --git a/chromium/build/util/version.gni b/chromium/build/util/version.gni index ef52bf6ce64..81beb82481c 100644 --- a/chromium/build/util/version.gni +++ b/chromium/build/util/version.gni @@ -26,7 +26,7 @@ chrome_version_file = "//chrome/VERSION" _script_arguments = [] -if (target_os == "mac") { +if (is_mac) { _version_dictionary_template += "patch_hi = @PATCH_HI@ patch_lo = @PATCH_LO@ " _script_arguments += [ @@ -89,7 +89,7 @@ chrome_version_minor = _result.minor chrome_version_build = _result.build chrome_version_patch = _result.patch -if (target_os == "mac") { +if (is_mac) { chrome_version_patch_hi = _result.patch_hi chrome_version_patch_lo = _result.patch_lo diff --git a/chromium/build/vs_toolchain.py b/chromium/build/vs_toolchain.py index 3f250612864..c3503cc4763 100755 --- a/chromium/build/vs_toolchain.py +++ b/chromium/build/vs_toolchain.py @@ -25,10 +25,15 @@ json_data_file = os.path.join(script_dir, 'win_toolchain.json') # VS versions are listed in descending order of priority (highest first). MSVS_VERSIONS = collections.OrderedDict([ - ('2017', '15.0'), ('2019', '16.0'), + ('2017', '15.0'), ]) +# List of preferred VC toolset version based on MSVS +MSVC_TOOLSET_VERSION = { + '2019' : 'VC142', + '2017' : 'VC141', +} def SetEnvironmentAndGetRuntimeDllDirs(): """Sets up os.environ to use the depot_tools VS toolchain with gyp, and @@ -241,14 +246,19 @@ def _CopyUCRTRuntime(target_dir, source_dir, target_cpu, dll_pattern, suffix): exist, but the target directory does exist.""" if target_cpu == 'arm64': # Windows ARM64 VCRuntime is located at {toolchain_root}/VC/Redist/MSVC/ - # {x.y.z}/[debug_nonredist/]arm64/Microsoft.VC141.CRT/. + # {x.y.z}/[debug_nonredist/]arm64/Microsoft.VC14x.CRT/. + # Select VC toolset directory based on Visual Studio version vc_redist_root = FindVCRedistRoot() if suffix.startswith('.'): + vc_toolset_dir = 'Microsoft.{}.CRT' \ + .format(MSVC_TOOLSET_VERSION[GetVisualStudioVersion()]) source_dir = os.path.join(vc_redist_root, - 'arm64', 'Microsoft.VC141.CRT') + 'arm64', vc_toolset_dir) else: + vc_toolset_dir = 'Microsoft.{}.DebugCRT' \ + .format(MSVC_TOOLSET_VERSION[GetVisualStudioVersion()]) source_dir = os.path.join(vc_redist_root, 'debug_nonredist', - 'arm64', 'Microsoft.VC141.DebugCRT') + 'arm64', vc_toolset_dir) for file_part in ('msvcp', 'vccorlib', 'vcruntime'): dll = dll_pattern % file_part target = os.path.join(target_dir, dll) @@ -417,17 +427,14 @@ def _GetDesiredVsToolchainHashes(): * //docs/windows_build_instructions.md mentions of VS or Windows SDK. Keeps the document consistent with the toolchain version. """ - env_version = GetVisualStudioVersion() - if env_version == '2017': - # VS 2017 Update 9 (15.9.12) with 10.0.18362 SDK, 10.0.17763 version of - # Debuggers, and 10.0.17134 version of d3dcompiler_47.dll, with ARM64 - # libraries. - toolchain_hash = '418b3076791776573a815eb298c8aa590307af63' - # Third parties that do not have access to the canonical toolchain can map - # canonical toolchain version to their own toolchain versions. - toolchain_hash_mapping_key = 'GYP_MSVS_HASH_%s' % toolchain_hash - return [os.environ.get(toolchain_hash_mapping_key, toolchain_hash)] - raise Exception('Unsupported VS version %s' % env_version) + # VS 2019 Update 9 (16.3.29324.140) with 10.0.18362 SDK, 10.0.17763 version of + # Debuggers, and 10.0.17134 version of d3dcompiler_47.dll, with ARM64 + # libraries. + toolchain_hash = '8f58c55897a3282ed617055775a77ec3db771b88' + # Third parties that do not have access to the canonical toolchain can map + # canonical toolchain version to their own toolchain versions. + toolchain_hash_mapping_key = 'GYP_MSVS_HASH_%s' % toolchain_hash + return [os.environ.get(toolchain_hash_mapping_key, toolchain_hash)] def ShouldUpdateToolchain(): diff --git a/chromium/build/win/BUILD.gn b/chromium/build/win/BUILD.gn index bd6224f245c..9be769fd075 100644 --- a/chromium/build/win/BUILD.gn +++ b/chromium/build/win/BUILD.gn @@ -17,6 +17,9 @@ windows_manifest("default_exe_manifest") { } if (is_win) { + assert(host_os != "mac" || target_cpu != "x86", + "Windows cross-builds from Mac must be 64-bit.") + action("copy_cdb_to_output") { script = "//build/win/copy_cdb_to_output.py" inputs = [ diff --git a/chromium/build/win/gn_meta_sln.py b/chromium/build/win/gn_meta_sln.py index f97f47bde3c..862d278248f 100644 --- a/chromium/build/win/gn_meta_sln.py +++ b/chromium/build/win/gn_meta_sln.py @@ -90,7 +90,7 @@ for config in configs: match_obj = re.match(project_pattern, sln_line) if match_obj: proj_name = match_obj.group(1) - if not all_projects.has_key(proj_name): + if proj_name not in all_projects: all_projects[proj_name] = [] all_projects[proj_name].append((config[0], match_obj.group(2), match_obj.group(3))) |