From d4cc0e8d5a0e29e9b66e7058c180a7aa9b2cdac7 Mon Sep 17 00:00:00 2001 From: Zach van Rijn Date: Fri, 12 May 2023 14:56:42 -0500 Subject: remove erroneous files. fixes #828. --- experimental/firefox-esr/5-e6b5aa19e999.patch | 22 - experimental/firefox-esr/fix-stack-overflow.patch | 45 - experimental/firefox-esr/python3.patch | 10397 ------------------- experimental/firefox/fix-bug-1261392.patch | 25 - legacy/heimdal/CVE-2017-17439.patch | 45 - legacy/kalarmcal/build-with-kf5-kholidays.patch | 11 - legacy/libvpx/libm-pc.patch | 11 - .../openjdk7/icedtea-jdk-no-lib-nsl-uclibc.patch | 84 - legacy/telegram/rlottie.patch | 16 - system/autoconf/autoconf-2.69-fix-perl-regex.patch | 11 - system/binutils/memory.patch | 449 - system/bzip2/CVE-2016-3189.patch | 12 - system/coreutils/no-doc.patch | 22 - system/coreutils/printf-musl.patch | 53 - system/coreutils/seq-write-error.patch | 45 - system/coreutils/sort-debug-locale.patch | 79 - system/gcc/401-libsanitizer-linux.patch | 100 - system/gcc/402-libsanitizer-utmp.patch | 75 - .../0001-gc-use-s-type-character-for-fscanf.patch | 33 - system/gmp/gmp-4.1.4-noexecstack.patch | 20 - system/vim/no-default-mouse.patch | 16 - user/assimp/built | 0 user/baloo/baloo-5.38.0-r0-x86_64-ciall.log | 2714 ----- user/blinken/test.patch | 13 - user/digikam/digikam6.patch | 36 - user/evince/CVE-2019-11459.patch | 72 - user/fts/00-static-and-shared-libs.patch | 49 - user/gcompat/no-utmp.patch | 16 - user/glib-networking/proxy-test.patch | 13 - user/gtk+2.0/automake.patch | 19 - user/gtk+3.0/releng-what-releng.patch | 12 - user/gucharmap/unicode-12.1.patch | 25 - ...ix-ridiculous-egregious-conformance-error.patch | 19 - user/kfilemetadata/test-mimetype.patch | 13 - user/khelpcenter/es-doc-fix.patch | 31 - user/ki18n/libintl.patch | 116 - user/kscreenlocker/optional-wayland.patch | 448 - user/libexif/CVE-2020-0198.patch | 58 - user/libgit2/remove-flaky-revparse-test.patch | 40 - user/libical/automake.patch | 11 - user/libice/CVE-2017-2626.patch | 142 - user/liborcus/sepples-is-a-sin.patch | 11 - user/libraw1394/fix-types.patch | 62 - user/libtasn1/CVE-2017-10790.patch | 55 - .../LibVNCServer-0.9.10-system_minilzo.patch | 67 - .../0001-tests-Support-Check-0.13.0-API.patch | 40 - user/llvm14/scc-insertion.patch | 33 - user/mozjs/python3.patch | 9552 ----------------- user/nfs-utils/nfs-utils.conf | 3 - user/orage/libical-3.patch | 76 - .../allow-build-recode-and-imap-together.patch | 20 - user/pluma-plugins/license.txt | 2166 ---- user/polkit/fix-parallel-make.patch | 40 - user/prosody/luasec-0.6-fix.patch | 14 - user/prosody/mallinfo.patch | 13 - user/prosody/prosodyctl.patch | 11 - user/qt5-qtdeclarative/broken-bgra-be.patch | 11 - user/qt5-qtwebkit/new-bison.patch | 18 - user/quassel/unterminated-mIRC-codes.patch | 40 - user/ruby-diff-lcs/gemspec.patch | 16 - user/thunderbird/stab.h | 71 - user/tinyfugue/0001-Add-DESTDIR-support.patch | 143 - user/tinyfugue/0003-Minor-man-page-fixes.patch | 112 - user/tinyfugue/0006-Fix-library-install-path.patch | 38 - user/tinyfugue/0007-Fix-spelling-errors.patch | 59 - user/upower/daemon-fix-get_critical_action.patch | 28 - ...rror-and-cancellable-handling-to-UpClient.patch | 184 - user/valgrind/uclibc.patch | 10 - user/xorg-server/20-modules.conf | 18 - 69 files changed, 28329 deletions(-) delete mode 100644 experimental/firefox-esr/5-e6b5aa19e999.patch delete mode 100644 experimental/firefox-esr/fix-stack-overflow.patch delete mode 100644 experimental/firefox-esr/python3.patch delete mode 100644 experimental/firefox/fix-bug-1261392.patch delete mode 100644 legacy/heimdal/CVE-2017-17439.patch delete mode 100644 legacy/kalarmcal/build-with-kf5-kholidays.patch delete mode 100644 legacy/libvpx/libm-pc.patch delete mode 100644 legacy/openjdk7/icedtea-jdk-no-lib-nsl-uclibc.patch delete mode 100644 legacy/telegram/rlottie.patch delete mode 100644 system/autoconf/autoconf-2.69-fix-perl-regex.patch delete mode 100644 system/binutils/memory.patch delete mode 100644 system/bzip2/CVE-2016-3189.patch delete mode 100644 system/coreutils/no-doc.patch delete mode 100644 system/coreutils/printf-musl.patch delete mode 100644 system/coreutils/seq-write-error.patch delete mode 100644 system/coreutils/sort-debug-locale.patch delete mode 100644 system/gcc/401-libsanitizer-linux.patch delete mode 100644 system/gcc/402-libsanitizer-utmp.patch delete mode 100644 system/git/0001-gc-use-s-type-character-for-fscanf.patch delete mode 100644 system/gmp/gmp-4.1.4-noexecstack.patch delete mode 100644 system/vim/no-default-mouse.patch delete mode 100644 user/assimp/built delete mode 100644 user/baloo/baloo-5.38.0-r0-x86_64-ciall.log delete mode 100644 user/blinken/test.patch delete mode 100644 user/digikam/digikam6.patch delete mode 100644 user/evince/CVE-2019-11459.patch delete mode 100644 user/fts/00-static-and-shared-libs.patch delete mode 100644 user/gcompat/no-utmp.patch delete mode 100644 user/glib-networking/proxy-test.patch delete mode 100644 user/gtk+2.0/automake.patch delete mode 100644 user/gtk+3.0/releng-what-releng.patch delete mode 100644 user/gucharmap/unicode-12.1.patch delete mode 100644 user/irssi/fix-ridiculous-egregious-conformance-error.patch delete mode 100644 user/kfilemetadata/test-mimetype.patch delete mode 100644 user/khelpcenter/es-doc-fix.patch delete mode 100644 user/ki18n/libintl.patch delete mode 100644 user/kscreenlocker/optional-wayland.patch delete mode 100644 user/libexif/CVE-2020-0198.patch delete mode 100644 user/libgit2/remove-flaky-revparse-test.patch delete mode 100644 user/libical/automake.patch delete mode 100644 user/libice/CVE-2017-2626.patch delete mode 100644 user/liborcus/sepples-is-a-sin.patch delete mode 100644 user/libraw1394/fix-types.patch delete mode 100644 user/libtasn1/CVE-2017-10790.patch delete mode 100644 user/libvncserver/LibVNCServer-0.9.10-system_minilzo.patch delete mode 100644 user/libxcb/0001-tests-Support-Check-0.13.0-API.patch delete mode 100644 user/llvm14/scc-insertion.patch delete mode 100644 user/mozjs/python3.patch delete mode 100644 user/nfs-utils/nfs-utils.conf delete mode 100644 user/orage/libical-3.patch delete mode 100644 user/php7/allow-build-recode-and-imap-together.patch delete mode 100644 user/pluma-plugins/license.txt delete mode 100644 user/polkit/fix-parallel-make.patch delete mode 100644 user/prosody/luasec-0.6-fix.patch delete mode 100644 user/prosody/mallinfo.patch delete mode 100644 user/prosody/prosodyctl.patch delete mode 100644 user/qt5-qtdeclarative/broken-bgra-be.patch delete mode 100644 user/qt5-qtwebkit/new-bison.patch delete mode 100644 user/quassel/unterminated-mIRC-codes.patch delete mode 100644 user/ruby-diff-lcs/gemspec.patch delete mode 100644 user/thunderbird/stab.h delete mode 100644 user/tinyfugue/0001-Add-DESTDIR-support.patch delete mode 100644 user/tinyfugue/0003-Minor-man-page-fixes.patch delete mode 100644 user/tinyfugue/0006-Fix-library-install-path.patch delete mode 100644 user/tinyfugue/0007-Fix-spelling-errors.patch delete mode 100644 user/upower/daemon-fix-get_critical_action.patch delete mode 100644 user/upower/lib-add-propererror-and-cancellable-handling-to-UpClient.patch delete mode 100644 user/valgrind/uclibc.patch delete mode 100644 user/xorg-server/20-modules.conf diff --git a/experimental/firefox-esr/5-e6b5aa19e999.patch b/experimental/firefox-esr/5-e6b5aa19e999.patch deleted file mode 100644 index d33914b78..000000000 --- a/experimental/firefox-esr/5-e6b5aa19e999.patch +++ /dev/null @@ -1,22 +0,0 @@ -# HG changeset patch -# User A. Wilcox -# Date 1539810007 0 -# Wed Oct 17 21:00:07 2018 +0000 -# Node ID e6b5aa19e9990adaddb2b80061620f3ceb7335e0 -# Parent 34f9863ef26ae1f8e494b3fc8e87fb7e26a480b3 -NOT FOR INBOUND: fix u2fhid on ppc64/musl - -diff -r 34f9863ef26a -r e6b5aa19e999 dom/webauthn/u2f-hid-rs/src/linux/hidraw.rs ---- a/dom/webauthn/u2f-hid-rs/src/linux/hidraw.rs Wed Oct 17 20:59:47 2018 +0000 -+++ b/dom/webauthn/u2f-hid-rs/src/linux/hidraw.rs Wed Oct 17 21:00:07 2018 +0000 -@@ -41,10 +41,7 @@ - | (($nr as u32) << NRSHIFT) - | ((size as u32) << SIZESHIFT); - -- #[cfg(not(target_env = "musl"))] - type IocType = libc::c_ulong; -- #[cfg(target_env = "musl")] -- type IocType = libc::c_int; - - from_unix_result(libc::ioctl(fd, ioc as IocType, val)) - } diff --git a/experimental/firefox-esr/fix-stack-overflow.patch b/experimental/firefox-esr/fix-stack-overflow.patch deleted file mode 100644 index e164fc69b..000000000 --- a/experimental/firefox-esr/fix-stack-overflow.patch +++ /dev/null @@ -1,45 +0,0 @@ -https://bugs.alpinelinux.org/issues/5559 -https://bugzilla.mozilla.org/show_bug.cgi?id=1274732 - -diff --git a/netwerk/streamconv/converters/nsHTTPCompressConv.cpp b/netwerk/streamconv/converters/nsHTTPCompressConv.cpp -index 1193529..aeb96b5 100644 ---- a/netwerk/streamconv/converters/nsHTTPCompressConv.cpp -+++ b/netwerk/streamconv/converters/nsHTTPCompressConv.cpp -@@ -165,9 +165,8 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c - nsHTTPCompressConv *self = static_cast(closure); - *countRead = 0; - -- const uint32_t kOutSize = 128 * 1024; // just a chunk size, we call in a loop -- unsigned char outBuffer[kOutSize]; -- unsigned char *outPtr; -+ const size_t kOutSize = 128 * 1024; // just a chunk size, we call in a loop -+ uint8_t *outPtr; - size_t outSize; - size_t avail = aAvail; - BrotliResult res; -@@ -177,9 +176,15 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c - return NS_OK; - } - -+ auto outBuffer = MakeUniqueFallible(kOutSize); -+ if (outBuffer == nullptr) { -+ self->mBrotli->mStatus = NS_ERROR_OUT_OF_MEMORY; -+ return self->mBrotli->mStatus; -+ } -+ - do { - outSize = kOutSize; -- outPtr = outBuffer; -+ outPtr = outBuffer.get(); - - // brotli api is documented in brotli/dec/decode.h and brotli/dec/decode.c - LOG(("nsHttpCompresssConv %p brotlihandler decompress %d\n", self, avail)); -@@ -210,7 +215,7 @@ nsHTTPCompressConv::BrotliHandler(nsIInputStream *stream, void *closure, const c - nsresult rv = self->do_OnDataAvailable(self->mBrotli->mRequest, - self->mBrotli->mContext, - self->mBrotli->mSourceOffset, -- reinterpret_cast(outBuffer), -+ reinterpret_cast(outBuffer.get()), - outSize); - LOG(("nsHttpCompressConv %p BrotliHandler ODA rv=%x", self, rv)); - if (NS_FAILED(rv)) { diff --git a/experimental/firefox-esr/python3.patch b/experimental/firefox-esr/python3.patch deleted file mode 100644 index b13be2229..000000000 --- a/experimental/firefox-esr/python3.patch +++ /dev/null @@ -1,10397 +0,0 @@ ---- firefox-52.9.0esr/python/mozbuild/dumbmake/dumbmake.py (original) -+++ firefox-52.9.0esr/python/mozbuild/dumbmake/dumbmake.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - from collections import OrderedDict - from itertools import groupby -@@ -36,7 +36,7 @@ - deps = {} - - for i, (indent, target) in enumerate(pairs): -- if not deps.has_key(target): -+ if target not in deps: - deps[target] = [] - - for j in range(i+1, len(pairs)): -@@ -68,7 +68,7 @@ - del all_targets[dependency] - all_targets[dependency] = True - -- return all_targets.keys() -+ return list(all_targets.keys()) - - def get_components(path): - """Take a path and return all the components of the path.""" -@@ -114,7 +114,7 @@ - make_dirs[make_dir] = True - - all_components = [] -- for make_dir in make_dirs.iterkeys(): -+ for make_dir in make_dirs.keys(): - all_components.extend(get_components(make_dir)) - - for i in all_dependencies(*all_components, dependency_map=dependency_map): ---- firefox-52.9.0esr/python/mozbuild/dumbmake/test/test_dumbmake.py (original) -+++ firefox-52.9.0esr/python/mozbuild/dumbmake/test/test_dumbmake.py (refactored) -@@ -1,7 +1,7 @@ - # This Source Code Form is subject to the terms of the Mozilla Public - # License, v. 2.0. If a copy of the MPL was not distributed with this file, - # You can obtain one at http://mozilla.org/MPL/2.0/. --from __future__ import unicode_literals -+ - - import unittest - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/android_version_code.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/android_version_code.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function -+ - - import argparse - import math ---- firefox-52.9.0esr/python/mozbuild/mozbuild/artifacts.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/artifacts.py (refactored) -@@ -40,7 +40,7 @@ - ''' - - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import collections - import functools -@@ -57,7 +57,7 @@ - import subprocess - import tarfile - import tempfile --import urlparse -+import urllib.parse - import zipfile - - import pylru -@@ -183,7 +183,7 @@ - - with JarWriter(file=processed_filename, optimize=False, compress_level=5) as writer: - reader = JarReader(filename) -- for filename, entry in reader.entries.iteritems(): -+ for filename, entry in reader.entries.items(): - for pattern, (src_prefix, dest_prefix) in self.test_artifact_patterns: - if not mozpath.match(filename, pattern): - continue -@@ -552,7 +552,7 @@ - - def print_cache(self): - with self: -- for item in self._cache.items(): -+ for item in list(self._cache.items()): - self.log(logging.INFO, 'artifact', - {'item': item}, - '{item}') -@@ -565,7 +565,7 @@ - # We use the persisted LRU caches to our advantage. The first item is - # most recent. - with self: -- item = next(self._cache.items(), None) -+ item = next(list(self._cache.items()), None) - if item is not None: - (name, args, sorted_kwargs), result = item - self.print_last_item(args, sorted_kwargs, result) -@@ -593,10 +593,10 @@ - 'changeset={changeset}&version=2&tipsonly=1') - req = requests.get(cset_url_tmpl.format(tree=tree, changeset=revision), - headers={'Accept': 'application/json'}) -- if req.status_code not in range(200, 300): -+ if req.status_code not in list(range(200, 300)): - raise ValueError - result = req.json() -- [found_pushid] = result['pushes'].keys() -+ [found_pushid] = list(result['pushes'].keys()) - return int(found_pushid) - - @cachedmethod(operator.attrgetter('_cache')) -@@ -609,7 +609,7 @@ - headers={'Accept': 'application/json'}) - result = req.json() - return [ -- p['changesets'][-1] for p in result['pushes'].values() -+ p['changesets'][-1] for p in list(result['pushes'].values()) - ] - - class TaskCache(CacheManager): -@@ -847,7 +847,7 @@ - - candidate_pushheads = collections.defaultdict(list) - -- for tree, pushid in found_pushids.iteritems(): -+ for tree, pushid in found_pushids.items(): - end = pushid - start = pushid - NUM_PUSHHEADS_TO_QUERY_PER_PARENT - -@@ -1052,7 +1052,7 @@ - """ - if source and os.path.isfile(source): - return self.install_from_file(source, distdir) -- elif source and urlparse.urlparse(source).scheme: -+ elif source and urllib.parse.urlparse(source).scheme: - return self.install_from_url(source, distdir) - else: - if source is None and 'MOZ_ARTIFACT_REVISION' in os.environ: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/base.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/base.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import json - import logging -@@ -482,7 +482,7 @@ - for flag in flags: - if flag == '-j': - try: -- flag = flags.next() -+ flag = next(flags) - except StopIteration: - break - try: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/config_status.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/config_status.py (refactored) -@@ -6,7 +6,7 @@ - # drop-in replacement for autoconf 2.13's config.status, with features - # borrowed from autoconf > 2.5, and additional features. - --from __future__ import absolute_import, print_function -+ - - import logging - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/doctor.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/doctor.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, # You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import subprocess -@@ -83,7 +83,7 @@ - valid = False - while not valid and limit > 0: - try: -- choice = strtobool(raw_input(prompt + '[Y/N]\n')) -+ choice = strtobool(input(prompt + '[Y/N]\n')) - valid = True - except ValueError: - print("ERROR! Please enter a valid option!") -@@ -103,11 +103,11 @@ - if status == 'SKIPPED': - continue - self.results.append(result) -- print('%s...\t%s\n' % ( -+ print(('%s...\t%s\n' % ( - result.get('desc', ''), - status - ) -- ).expandtabs(40) -+ ).expandtabs(40)) - - @property - def platform(self): -@@ -212,7 +212,7 @@ - fsutil_output = subprocess.check_output(command) - status = 'GOOD, FIXED' - desc = 'lastaccess disabled systemwide' -- except subprocess.CalledProcessError, e: -+ except subprocess.CalledProcessError as e: - desc = 'lastaccess enabled systemwide' - if e.output.find('denied') != -1: - status = 'BAD, FIX DENIED' ---- firefox-52.9.0esr/python/mozbuild/mozbuild/dotproperties.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/dotproperties.py (refactored) -@@ -5,7 +5,7 @@ - # This file contains utility functions for reading .properties files, like - # region.properties. - --from __future__ import absolute_import, unicode_literals -+ - - import codecs - import re -@@ -14,7 +14,7 @@ - if sys.version_info[0] == 3: - str_type = str - else: -- str_type = basestring -+ str_type = str - - class DotProperties: - r'''A thin representation of a key=value .properties file.''' -@@ -52,7 +52,7 @@ - if not prefix.endswith('.'): - prefix = prefix + '.' - indexes = [] -- for k, v in self._properties.iteritems(): -+ for k, v in self._properties.items(): - if not k.startswith(prefix): - continue - key = k[len(prefix):] -@@ -73,7 +73,7 @@ - if not prefix.endswith('.'): - prefix = prefix + '.' - -- D = dict((k[len(prefix):], v) for k, v in self._properties.iteritems() -+ D = dict((k[len(prefix):], v) for k, v in self._properties.items() - if k.startswith(prefix) and '.' not in k[len(prefix):]) - - for required_key in required_keys: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/html_build_viewer.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/html_build_viewer.py (refactored) -@@ -4,16 +4,16 @@ - - # This module contains code for running an HTTP server to view build info. - --from __future__ import absolute_import, unicode_literals - --import BaseHTTPServer -+ -+import http.server - import json - import os - - import requests - - --class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): -+class HTTPHandler(http.server.BaseHTTPRequestHandler): - def do_GET(self): - s = self.server.wrapper - p = self.path -@@ -92,7 +92,7 @@ - self.doc_root = doc_root - self.json_files = {} - -- self.server = BaseHTTPServer.HTTPServer((address, port), HTTPHandler) -+ self.server = http.server.HTTPServer((address, port), HTTPHandler) - self.server.wrapper = self - self.do_shutdown = False - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/jar.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/jar.py (refactored) -@@ -8,7 +8,7 @@ - See the documentation for jar.mn on MDC for further details on the format. - ''' - --from __future__ import absolute_import -+ - - import sys - import os -@@ -17,7 +17,7 @@ - import logging - from time import localtime - from MozZipFile import ZipFile --from cStringIO import StringIO -+from io import StringIO - from collections import defaultdict - - from mozbuild.preprocessor import Preprocessor -@@ -302,9 +302,9 @@ - '''updateManifest replaces the % in the chrome registration entries - with the given chrome base path, and updates the given manifest file. - ''' -- myregister = dict.fromkeys(map(lambda s: s.replace('%', -- chromebasepath), register)) -- addEntriesToListFile(manifestPath, myregister.iterkeys()) -+ myregister = dict.fromkeys([s.replace('%', -+ chromebasepath) for s in register]) -+ addEntriesToListFile(manifestPath, iter(myregister.keys())) - - def makeJar(self, infile, jardir): - '''makeJar is the main entry point to JarMaker. -@@ -322,7 +322,7 @@ - elif self.relativesrcdir: - self.localedirs = \ - self.generateLocaleDirs(self.relativesrcdir) -- if isinstance(infile, basestring): -+ if isinstance(infile, str): - logging.info('processing ' + infile) - self.sourcedirs.append(_normpath(os.path.dirname(infile))) - pp = self.pp.clone() -@@ -372,7 +372,7 @@ - jarfilepath = jarfile + '.jar' - try: - os.makedirs(os.path.dirname(jarfilepath)) -- except OSError, error: -+ except OSError as error: - if error.errno != errno.EEXIST: - raise - jf = ZipFile(jarfilepath, 'a', lock=True) -@@ -514,7 +514,7 @@ - # remove previous link or file - try: - os.remove(out) -- except OSError, e: -+ except OSError as e: - if e.errno != errno.ENOENT: - raise - return open(out, 'wb') -@@ -525,7 +525,7 @@ - if not os.path.isdir(outdir): - try: - os.makedirs(outdir) -- except OSError, error: -+ except OSError as error: - if error.errno != errno.EEXIST: - raise - return out -@@ -541,7 +541,7 @@ - # remove previous link or file - try: - os.remove(out) -- except OSError, e: -+ except OSError as e: - if e.errno != errno.ENOENT: - raise - if sys.platform != 'win32': ---- firefox-52.9.0esr/python/mozbuild/mozbuild/mach_commands.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/mach_commands.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, # You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import errno -@@ -136,7 +136,7 @@ - # terminal is a blessings.Terminal. - self._t = terminal - self._fh = sys.stdout -- self.tiers = monitor.tiers.tier_status.viewitems() -+ self.tiers = monitor.tiers.tier_status.items() - - def clear(self): - """Removes the footer from the current terminal.""" -@@ -802,7 +802,7 @@ - dirpath = None - - type_counts = database.type_counts(dirpath) -- sorted_counts = sorted(type_counts.iteritems(), -+ sorted_counts = sorted(iter(type_counts.items()), - key=operator.itemgetter(1)) - - total = 0 -@@ -957,7 +957,7 @@ - processes[i].run() - - exit_code = 0 -- for process in processes.values(): -+ for process in list(processes.values()): - status = process.wait() - if status: - exit_code = status ---- firefox-52.9.0esr/python/mozbuild/mozbuild/makeutil.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/makeutil.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import re -@@ -66,7 +66,7 @@ - self._list = [] - self._set = set() - -- def __nonzero__(self): -+ def __bool__(self): - return bool(self._set) - - def __iter__(self): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/milestone.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/milestone.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/mozconfig.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/mozconfig.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import filecmp - import os -@@ -306,7 +306,7 @@ - - # Environment variables also appear as shell variables, but that's - # uninteresting duplication of information. Filter them out. -- filt = lambda x, y: {k: v for k, v in x.items() if k not in y} -+ filt = lambda x, y: {k: v for k, v in list(x.items()) if k not in y} - result['vars'] = diff_vars( - filt(parsed['vars_before'], parsed['env_before']), - filt(parsed['vars_after'], parsed['env_after']) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/mozinfo.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/mozinfo.py (refactored) -@@ -5,7 +5,7 @@ - # This module produces a JSON file that provides basic build info and - # configuration metadata. - --from __future__ import absolute_import -+ - - import os - import re -@@ -154,7 +154,7 @@ - and what keys are produced. - """ - build_conf = build_dict(config, env) -- if isinstance(file, basestring): -+ if isinstance(file, str): - file = open(file, 'wb') - - json.dump(build_conf, file, sort_keys=True, indent=4) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/preprocessor.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/preprocessor.py (refactored) -@@ -27,7 +27,8 @@ - import re - from optparse import OptionParser - import errno --from makeutil import Makefile -+from .makeutil import Makefile -+from functools import reduce - - # hack around win32 mangling our line endings - # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65443 -@@ -56,7 +57,7 @@ - self.__ignore_whitespace() - self.e = self.__get_logical_or() - if self.content: -- raise Expression.ParseError, self -+ raise Expression.ParseError(self) - - def __get_logical_or(self): - """ -@@ -157,7 +158,7 @@ - if word_len: - rv = Expression.__ASTLeaf('string', self.content[:word_len]) - else: -- raise Expression.ParseError, self -+ raise Expression.ParseError(self) - self.__strip(word_len) - self.__ignore_whitespace() - return rv -@@ -196,7 +197,7 @@ - return left and right - elif tok[1].value == '||': - return left or right -- raise Expression.ParseError, self -+ raise Expression.ParseError(self) - - # Mapping from token types to evaluator functions - # Apart from (non-)equality, all these can be simple lambda forms. -@@ -230,7 +231,7 @@ - def __repr__(self): - return self.value.__repr__() - -- class ParseError(StandardError): -+ class ParseError(Exception): - """ - Error raised when parsing fails. - It has two members, offset and content, which give the offset of the -@@ -278,7 +279,7 @@ - self.context = Context() - for k,v in {'FILE': '', - 'LINE': 0, -- 'DIRECTORY': os.path.abspath('.')}.iteritems(): -+ 'DIRECTORY': os.path.abspath('.')}.items(): - self.context[k] = v - self.actionLevel = 0 - self.disableLevel = 0 -@@ -292,21 +293,21 @@ - self.cmds = {} - for cmd, level in {'define': 0, - 'undef': 0, -- 'if': sys.maxint, -- 'ifdef': sys.maxint, -- 'ifndef': sys.maxint, -+ 'if': sys.maxsize, -+ 'ifdef': sys.maxsize, -+ 'ifndef': sys.maxsize, - 'else': 1, - 'elif': 1, - 'elifdef': 1, - 'elifndef': 1, -- 'endif': sys.maxint, -+ 'endif': sys.maxsize, - 'expand': 0, - 'literal': 0, - 'filter': 0, - 'unfilter': 0, - 'include': 0, - 'includesubst': 0, -- 'error': 0}.iteritems(): -+ 'error': 0}.items(): - self.cmds[cmd] = (level, getattr(self, 'do_' + cmd)) - self.out = sys.stdout - self.setMarker(marker) -@@ -469,7 +470,7 @@ - raise Preprocessor.Error(self, "--depend doesn't work with stdout", - None) - try: -- from makeutil import Makefile -+ from .makeutil import Makefile - except: - raise Preprocessor.Error(self, "--depend requires the " - "mozbuild.makeutil module", None) -@@ -684,7 +685,7 @@ - current = dict(self.filters) - for f in filters: - current[f] = getattr(self, 'filter_' + f) -- filterNames = current.keys() -+ filterNames = list(current.keys()) - filterNames.sort() - self.filters = [(fn, current[fn]) for fn in filterNames] - return -@@ -694,7 +695,7 @@ - for f in filters: - if f in current: - del current[f] -- filterNames = current.keys() -+ filterNames = list(current.keys()) - filterNames.sort() - self.filters = [(fn, current[fn]) for fn in filterNames] - return -@@ -739,7 +740,7 @@ - args can either be a file name, or a file-like object. - Files should be opened, and will be closed after processing. - """ -- isName = type(args) == str or type(args) == unicode -+ isName = type(args) == str or type(args) == str - oldCheckLineNumbers = self.checkLineNumbers - self.checkLineNumbers = False - if isName: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/pythonutil.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/pythonutil.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import sys -@@ -11,7 +11,7 @@ - def iter_modules_in_path(*paths): - paths = [os.path.abspath(os.path.normcase(p)) + os.sep - for p in paths] -- for name, module in sys.modules.items(): -+ for name, module in list(sys.modules.items()): - if not hasattr(module, '__file__'): - continue - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/shellutil.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/shellutil.py (refactored) -@@ -15,7 +15,7 @@ - # which matches the pattern and captures it in a named match group. - # The group names and patterns are given as arguments. - all_tokens = '|'.join('(?P<%s>%s)' % (name, value) -- for name, value in tokens.iteritems()) -+ for name, value in tokens.items()) - nonescaped = r'(? ABC DEF Gxx" - args = [iter(iterable)] * n -- return itertools.izip_longest(fillvalue=dummy_fill_value, *args) -+ return itertools.zip_longest(fillvalue=dummy_fill_value, *args) - - for i, unified_group in enumerate(grouper(files_per_unified_file, - files)): -@@ -1104,7 +1104,7 @@ - [(1,2), (3,4), (5,6)] - ''' - i = iter(iterable) -- return itertools.izip_longest(i, i) -+ return itertools.zip_longest(i, i) - - - VARIABLES_RE = re.compile('\$\((\w+)\)') -@@ -1122,7 +1122,7 @@ - value = variables.get(name) - if not value: - continue -- if not isinstance(value, types.StringTypes): -+ if not isinstance(value, (str,)): - value = ' '.join(value) - result += value - return result -@@ -1149,7 +1149,7 @@ - pass - - --class EnumString(unicode): -+class EnumString(str): - '''A string type that only can have a limited set of values, similarly to - an Enum, and can only be compared against that set of values. - -@@ -1185,19 +1185,18 @@ - # quoting could be done with either ' or ". - if c == "'": - return "\\'" -- return unicode(c.encode('unicode_escape')) -+ return str(c.encode('unicode_escape')) - - # Mapping table between raw characters below \x80 and their escaped - # counterpart, when they differ - _INDENTED_REPR_TABLE = { - c: e -- for c, e in map(lambda x: (x, _escape_char(x)), -- map(unichr, range(128))) -+ for c, e in [(x, _escape_char(x)) for x in list(map(chr, list(range(128))))] - if c != e - } - # Regexp matching all characters to escape. - _INDENTED_REPR_RE = re.compile( -- '([' + ''.join(_INDENTED_REPR_TABLE.values()) + ']+)') -+ '([' + ''.join(list(_INDENTED_REPR_TABLE.values())) + ']+)') - - - def indented_repr(o, indent=4): -@@ -1223,7 +1222,7 @@ - elif isinstance(o, bytes): - yield 'b' - yield repr(o) -- elif isinstance(o, unicode): -+ elif isinstance(o, str): - yield "'" - # We want a readable string (non escaped unicode), but some - # special characters need escaping (e.g. \n, \t, etc.) -@@ -1253,11 +1252,11 @@ - if isinstance(obj, dict): - return { - encode(k, encoding): encode(v, encoding) -- for k, v in obj.iteritems() -+ for k, v in obj.items() - } - if isinstance(obj, bytes): - return obj -- if isinstance(obj, unicode): -+ if isinstance(obj, str): - return obj.encode(encoding) - if isinstance(obj, Iterable): - return [encode(i, encoding) for i in obj] ---- firefox-52.9.0esr/python/mozbuild/mozbuild/vendor_rust.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/vendor_rust.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, # You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from distutils.version import LooseVersion - import logging ---- firefox-52.9.0esr/python/mozbuild/mozbuild/virtualenv.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/virtualenv.py (refactored) -@@ -5,7 +5,7 @@ - # This file contains code for populating the virtualenv environment for - # Mozilla's build system. It is typically called as part of configure. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import distutils.sysconfig - import os -@@ -461,8 +461,8 @@ - and call .ensure() and .activate() to make the virtualenv active. - """ - -- execfile(self.activate_path, dict(__file__=self.activate_path)) -- if isinstance(os.environ['PATH'], unicode): -+ exec(compile(open(self.activate_path).read(), self.activate_path, 'exec'), dict(__file__=self.activate_path)) -+ if isinstance(os.environ['PATH'], str): - os.environ['PATH'] = os.environ['PATH'].encode('utf-8') - - def install_pip_package(self, package): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/buildlist.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/buildlist.py (refactored) -@@ -7,7 +7,7 @@ - - Usage: buildlist.py [ ...] - ''' --from __future__ import absolute_import, print_function -+ - - import sys - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/cl.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/cl.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import ctypes - import os -@@ -55,7 +55,7 @@ - break - - if target is None: -- print >>sys.stderr, "No target set" -+ print("No target set", file=sys.stderr) - return 1 - - # Assume the source file is the last argument ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/dump_env.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/dump_env.py (refactored) -@@ -6,5 +6,5 @@ - # native paths printed on Windows so that these paths can be incorporated - # into Python configure's environment. - import os --for key, value in os.environ.items(): -- print('%s=%s' % (key, value)) -+for key, value in list(os.environ.items()): -+ print(('%s=%s' % (key, value))) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/explode_aar.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/explode_aar.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import errno -@@ -44,7 +44,7 @@ - assets = mozpath.join(destdir, 'assets') - try: - os.rmdir(assets) -- except OSError, e: -+ except OSError as e: - if e.errno in (errno.ENOTEMPTY, errno.ENOENT): - pass - else: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/file_generate.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/file_generate.py (refactored) -@@ -6,7 +6,7 @@ - # the arguments that can be used to generate the output file, call the - # script's |main| method with appropriate arguments. - --from __future__ import absolute_import, print_function -+ - - import argparse - import imp ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/generate_suggestedsites.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/generate_suggestedsites.py (refactored) -@@ -26,7 +26,7 @@ - directory e.g. raw/suggestedsites.json, raw-pt-rBR/suggestedsites.json. - ''' - --from __future__ import absolute_import, print_function -+ - - import argparse - import copy ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/generate_symbols_file.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/generate_symbols_file.py (refactored) -@@ -2,12 +2,12 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import buildconfig - import os --from StringIO import StringIO -+from io import StringIO - from mozbuild.preprocessor import Preprocessor - from mozbuild.util import DefinesAction - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/jar_maker.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/jar_maker.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/make_dmg.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/make_dmg.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import print_function -+ - - from mozbuild.base import MozbuildObject - from mozpack import dmg ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/output_searchplugins_list.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/output_searchplugins_list.py (refactored) -@@ -18,4 +18,4 @@ - else: - engines = searchinfo["default"]["visibleDefaultEngines"] - --print '\n'.join(engines) -+print('\n'.join(engines)) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/package_fennec_apk.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/package_fennec_apk.py (refactored) -@@ -6,7 +6,7 @@ - Script to produce an Android package (.apk) for Fennec. - ''' - --from __future__ import absolute_import, print_function -+ - - import argparse - import buildconfig ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/preprocessor.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/preprocessor.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/process_define_files.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/process_define_files.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import os -@@ -55,7 +55,7 @@ - 'CONFIGURE_DEFINE_FILE') - defines = '\n'.join(sorted( - '#define %s %s' % (name, val) -- for name, val in config.defines.iteritems() -+ for name, val in config.defines.items() - if name not in config.non_global_defines)) - l = l[:m.start('cmd') - 1] \ - + defines + l[m.end('name'):] ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/process_install_manifest.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/process_install_manifest.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/test_archive.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/test_archive.py (refactored) -@@ -8,7 +8,7 @@ - # It is defined inline because this was easiest to make test archive - # generation faster. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import itertools -@@ -433,7 +433,7 @@ - # "common" is our catch all archive and it ignores things from other archives. - # Verify nothing sneaks into ARCHIVE_FILES without a corresponding exclusion - # rule in the "common" archive. --for k, v in ARCHIVE_FILES.items(): -+for k, v in list(ARCHIVE_FILES.items()): - # Skip mozharness because it isn't staged. - if k in ('common', 'mozharness'): - continue ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/webidl.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/webidl.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/xpccheck.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/xpccheck.py (refactored) -@@ -8,7 +8,7 @@ - Usage: xpccheck.py [ ...] - ''' - --from __future__ import absolute_import -+ - - import sys - import os -@@ -40,7 +40,7 @@ - break - - if not found: -- print >>sys.stderr, "TEST-UNEXPECTED-FAIL | xpccheck | test %s is missing from test manifest %s!" % (name, os.path.join(directory, 'xpcshell.ini')) -+ print("TEST-UNEXPECTED-FAIL | xpccheck | test %s is missing from test manifest %s!" % (name, os.path.join(directory, 'xpcshell.ini')), file=sys.stderr) - sys.exit(1) - - def verifyIniFile(initests, directory): -@@ -60,12 +60,12 @@ - break - - if not found: -- print >>sys.stderr, "TEST-UNEXPECTED-FAIL | xpccheck | found %s in xpcshell.ini and not in directory '%s'" % (name, directory) -+ print("TEST-UNEXPECTED-FAIL | xpccheck | found %s in xpcshell.ini and not in directory '%s'" % (name, directory), file=sys.stderr) - sys.exit(1) - - def main(argv): - if len(argv) < 2: -- print >>sys.stderr, "Usage: xpccheck.py [ ...]" -+ print("Usage: xpccheck.py [ ...]", file=sys.stderr) - sys.exit(1) - - topsrcdir = argv[0] ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/xpidl-process.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/xpidl-process.py (refactored) -@@ -7,7 +7,7 @@ - # input IDL file(s). It's purpose is to directly support the build - # system. The API will change to meet the needs of the build system. - --from __future__ import absolute_import -+ - - import argparse - import os -@@ -58,7 +58,7 @@ - - # TODO use FileAvoidWrite once it supports binary mode. - xpt_path = os.path.join(xpt_dir, '%s.xpt' % module) -- xpt_link(xpts.values()).write(xpt_path) -+ xpt_link(list(xpts.values())).write(xpt_path) - - rule.add_targets([xpt_path]) - if deps_dir: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/action/zip.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/action/zip.py (refactored) -@@ -5,7 +5,7 @@ - # This script creates a zip file, but will also strip any binaries - # it finds before adding them to the zip. - --from __future__ import absolute_import -+ - - from mozpack.files import FileFinder - from mozpack.copier import Jarrer ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/android_eclipse.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/android_eclipse.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import itertools - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/base.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/base.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - from abc import ( - ABCMeta, -@@ -30,15 +30,13 @@ - from mozbuild.base import ExecutionSummary - - --class BuildBackend(LoggingMixin): -+class BuildBackend(LoggingMixin, metaclass=ABCMeta): - """Abstract base class for build backends. - - A build backend is merely a consumer of the build configuration (the output - of the frontend processing). It does something with said data. What exactly - is the discretion of the specific implementation. - """ -- -- __metaclass__ = ABCMeta - - def __init__(self, environment): - assert isinstance(environment, ConfigEnvironment) -@@ -252,7 +250,7 @@ - srcdir = mozpath.dirname(obj.input_path) - pp.context.update({ - k: ' '.join(v) if isinstance(v, list) else v -- for k, v in obj.config.substs.iteritems() -+ for k, v in obj.config.substs.items() - }) - pp.context.update( - top_srcdir=obj.topsrcdir, ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/common.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/common.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -- --import cPickle as pickle -+ -+ -+import pickle as pickle - import itertools - import json - import os -@@ -194,11 +194,11 @@ - def add_defaults(self, manifest): - if not hasattr(manifest, 'manifest_defaults'): - return -- for sub_manifest, defaults in manifest.manifest_defaults.items(): -+ for sub_manifest, defaults in list(manifest.manifest_defaults.items()): - self.manifest_defaults[sub_manifest] = defaults - - def add_installs(self, obj, topsrcdir): -- for src, (dest, _) in obj.installs.iteritems(): -+ for src, (dest, _) in obj.installs.items(): - key = src[len(topsrcdir)+1:] - self.installs_by_path[key].append((src, dest)) - for src, pat, dest in obj.pattern_installs: -@@ -379,7 +379,7 @@ - - path = mozpath.join(self.environment.topobjdir, 'test-installs.pkl') - with self._write_file(path, mode='rb') as fh: -- pickle.dump({k: v for k, v in self._test_manager.installs_by_path.items() -+ pickle.dump({k: v for k, v in list(self._test_manager.installs_by_path.items()) - if k in self._test_manager.deferred_installs}, - fh, - protocol=2) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/configenvironment.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/configenvironment.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import sys -@@ -17,7 +17,7 @@ - - - if sys.version_info.major == 2: -- text_type = unicode -+ text_type = str - else: - text_type = str - -@@ -176,7 +176,7 @@ - except UnicodeDecodeError: - return v.decode('utf-8', 'replace') - -- for k, v in self.substs.items(): -+ for k, v in list(self.substs.items()): - if not isinstance(v, StringTypes): - if isinstance(v, Iterable): - type(v)(decode(i) for i in v) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/cpp_eclipse.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/cpp_eclipse.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import errno - import random -@@ -218,12 +218,12 @@ - cproject_header = cproject_header.replace('@MACH_COMMAND@', os.path.join(self.environment.topsrcdir, 'mach')) - fh.write(cproject_header) - -- for path, defines in self._paths_to_defines.items(): -+ for path, defines in list(self._paths_to_defines.items()): - folderinfo = CPROJECT_TEMPLATE_FOLDER_INFO_HEADER - folderinfo = folderinfo.replace('@FOLDER_ID@', str(random.randint(1000000, 99999999999))) - folderinfo = folderinfo.replace('@FOLDER_NAME@', 'tree/' + path) - fh.write(folderinfo) -- for k, v in defines.items(): -+ for k, v in list(defines.items()): - define = ET.Element('listOptionValue') - define.set('builtIn', 'false') - define.set('value', str(k) + "=" + str(v)) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/fastermake.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/fastermake.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals, print_function -+ - - from mozbuild.backend.base import PartialBackend - from mozbuild.backend.common import CommonBackend -@@ -130,12 +130,12 @@ - if value is not None: - mk.add_statement('%s = %s' % (var, value)) - -- install_manifests_bases = self._install_manifests.keys() -+ install_manifests_bases = list(self._install_manifests.keys()) - - # Add information for chrome manifest generation - manifest_targets = [] - -- for target, entries in self._manifest_entries.iteritems(): -+ for target, entries in self._manifest_entries.items(): - manifest_targets.append(target) - install_target = mozpath.basedir(target, install_manifests_bases) - self._install_manifests[install_target].add_content( -@@ -144,16 +144,16 @@ - - # Add information for install manifests. - mk.add_statement('INSTALL_MANIFESTS = %s' -- % ' '.join(self._install_manifests.keys())) -+ % ' '.join(list(self._install_manifests.keys()))) - - # Add dependencies we infered: -- for target, deps in self._dependencies.iteritems(): -+ for target, deps in self._dependencies.items(): - mk.create_rule([target]).add_dependencies( - '$(TOPOBJDIR)/%s' % d for d in deps) - - mk.add_statement('include $(TOPSRCDIR)/config/faster/rules.mk') - -- for base, install_manifest in self._install_manifests.iteritems(): -+ for base, install_manifest in self._install_manifests.items(): - with self._write_file( - mozpath.join(self.environment.topobjdir, 'faster', - 'install_%s' % base.replace('/', '_'))) as fh: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/mach_commands.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/mach_commands.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/recursivemake.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/recursivemake.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import logging - import os -@@ -12,7 +12,7 @@ - defaultdict, - namedtuple, - ) --from StringIO import StringIO -+from io import StringIO - from itertools import chain - - from mozpack.manifests import ( -@@ -74,6 +74,7 @@ - ) - from ..makeutil import Makefile - from mozbuild.shellutil import quote as shell_quote -+from functools import reduce - - MOZBUILD_VARIABLES = [ - b'ANDROID_APK_NAME', -@@ -214,7 +215,7 @@ - self.fh.write(buf) - - def write_once(self, buf): -- if isinstance(buf, unicode): -+ if isinstance(buf, str): - buf = buf.encode('utf-8') - if b'\n' + buf not in self.fh.getvalue(): - self.write(buf) -@@ -283,8 +284,8 @@ - Helper function to call a filter from compute_dependencies and - traverse. - """ -- return filter(current, self._traversal.get(current, -- self.SubDirectories())) -+ return list(filter(current, self._traversal.get(current, -+ self.SubDirectories()))) - - def compute_dependencies(self, filter=None): - """ -@@ -638,7 +639,7 @@ - convenience variables, and the other dependency definitions for a - hopefully proper directory traversal. - """ -- for tier, no_skip in self._no_skip.items(): -+ for tier, no_skip in list(self._no_skip.items()): - self.log(logging.DEBUG, 'fill_root_mk', { - 'number': len(no_skip), 'tier': tier - }, 'Using {number} directories during {tier}') -@@ -684,7 +685,7 @@ - for tier, filter in filters: - main, all_deps = \ - self._traversal.compute_dependencies(filter) -- for dir, deps in all_deps.items(): -+ for dir, deps in list(all_deps.items()): - if deps is not None or (dir in self._idl_dirs \ - and tier == 'export'): - rule = root_deps_mk.create_rule(['%s/%s' % (dir, tier)]) -@@ -697,7 +698,7 @@ - rule.add_dependencies('%s/%s' % (d, tier) for d in main) - - all_compile_deps = reduce(lambda x,y: x|y, -- self._compile_graph.values()) if self._compile_graph else set() -+ list(self._compile_graph.values())) if self._compile_graph else set() - compile_roots = set(self._compile_graph.keys()) - all_compile_deps - - rule = root_deps_mk.create_rule(['recurse_compile']) -@@ -839,7 +840,7 @@ - self._fill_root_mk() - - # Make the master test manifest files. -- for flavor, t in self._test_manifests.items(): -+ for flavor, t in list(self._test_manifests.items()): - install_prefix, manifests = t - manifest_stem = mozpath.join(install_prefix, '%s.ini' % flavor) - self._write_master_test_manifest(mozpath.join( -@@ -945,7 +946,7 @@ - for p in ('Makefile', 'backend.mk', '.deps/.mkdir.done'): - build_files.add_optional_exists(p) - -- for idl in manager.idls.values(): -+ for idl in list(manager.idls.values()): - self._install_manifests['dist_idl'].add_symlink(idl['source'], - idl['basename']) - self._install_manifests['dist_include'].add_optional_exists('%s.h' -@@ -992,7 +993,7 @@ - - interfaces_manifests = [] - dist_dir = mozpath.join(self.environment.topobjdir, 'dist') -- for manifest, entries in manager.interface_manifests.items(): -+ for manifest, entries in list(manager.interface_manifests.items()): - interfaces_manifests.append(mozpath.join('$(DEPTH)', manifest)) - for xpt in sorted(entries): - registered_xpt_files.add(mozpath.join( -@@ -1052,7 +1053,7 @@ - # Don't allow files to be defined multiple times unless it is allowed. - # We currently allow duplicates for non-test files or test files if - # the manifest is listed as a duplicate. -- for source, (dest, is_test) in obj.installs.items(): -+ for source, (dest, is_test) in list(obj.installs.items()): - try: - self._install_manifests['_test_files'].add_symlink(source, dest) - except ValueError: -@@ -1386,7 +1387,7 @@ - man_dir = mozpath.join(self.environment.topobjdir, '_build_manifests', - dest) - -- for k, manifest in manifests.items(): -+ for k, manifest in list(manifests.items()): - with self._write_file(mozpath.join(man_dir, k)) as fh: - manifest.write(fileobj=fh) - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/tup.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/tup.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import os - -@@ -253,7 +253,7 @@ - backend_file = self._get_backend_file('xpcom/xpidl') - backend_file.export_shell() - -- for module, data in sorted(manager.modules.iteritems()): -+ for module, data in sorted(manager.modules.items()): - dest, idls = data - cmd = [ - '$(PYTHON_PATH)', ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/visualstudio.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/visualstudio.py (refactored) -@@ -5,7 +5,7 @@ - # This file contains a build backend for generating Visual Studio project - # files. - --from __future__ import absolute_import, unicode_literals -+ - - import errno - import os -@@ -218,7 +218,7 @@ - includes = [os.path.normpath(i) for i in includes] - - defines = [] -- for k, v in self._paths_to_defines.get(path, {}).items(): -+ for k, v in list(self._paths_to_defines.get(path, {}).items()): - if v is True: - defines.append(k) - else: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/codecoverage/chrome_map.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/codecoverage/chrome_map.py (refactored) -@@ -5,7 +5,7 @@ - from collections import defaultdict - import json - import os --import urlparse -+import urllib.parse - - from mach.config import ConfigSettings - from mach.logging import LoggingManager -@@ -42,7 +42,7 @@ - if isinstance(entry, (ManifestChrome, ManifestResource)): - if isinstance(entry, ManifestResource): - dest = entry.target -- url = urlparse.urlparse(dest) -+ url = urllib.parse.urlparse(dest) - if not url.scheme: - dest = mozpath.normpath(mozpath.join(entry.base, dest)) - if url.scheme == 'file': -@@ -99,7 +99,7 @@ - chrome_mapping = self.manifest_handler.chrome_mapping - overrides = self.manifest_handler.overrides - json.dump([ -- {k: list(v) for k, v in chrome_mapping.iteritems()}, -+ {k: list(v) for k, v in chrome_mapping.items()}, - overrides, - self._install_mapping, - ], fh, sort_keys=True, indent=2) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/codecoverage/packager.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/codecoverage/packager.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function -+ - - import argparse - import sys -@@ -12,7 +12,7 @@ - - def package_gcno_tree(root, output_file): - # XXX JarWriter doesn't support unicode strings, see bug 1056859 -- if isinstance(root, unicode): -+ if isinstance(root, str): - root = root.encode('utf-8') - - finder = FileFinder(root) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/compilation/codecomplete.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/compilation/codecomplete.py (refactored) -@@ -4,7 +4,7 @@ - - # This modules provides functionality for dealing with code completion. - --from __future__ import absolute_import -+ - - import os - -@@ -59,5 +59,5 @@ - # Drop the first flag since that is the pathname of the compiler. - flags = (shell_split(build_vars[cc]) + shell_split(build_vars[name]))[1:] - -- print(' '.join(shell_quote(arg) -- for arg in util.sanitize_cflags(flags))) -+ print((' '.join(shell_quote(arg) -+ for arg in util.sanitize_cflags(flags)))) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/compilation/database.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/compilation/database.py (refactored) -@@ -118,7 +118,7 @@ - - db = [] - -- for (directory, filename), cmd in self._db.iteritems(): -+ for (directory, filename), cmd in self._db.items(): - env = self._envs[directory] - cmd = list(cmd) - cmd.append(filename) -@@ -151,7 +151,7 @@ - a = expand_variables(a, variables).split() - if not a: - continue -- if isinstance(a, types.StringTypes): -+ if isinstance(a, (str,)): - c.append(a) - else: - c.extend(a) -@@ -216,7 +216,7 @@ - value = cenv.substs.get(name) - if not value: - return -- if isinstance(value, types.StringTypes): -+ if isinstance(value, (str,)): - value = value.split() - db.extend(value) - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/compilation/warnings.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/compilation/warnings.py (refactored) -@@ -4,7 +4,7 @@ - - # This modules provides functionality for dealing with compiler warnings. - --from __future__ import absolute_import, unicode_literals -+ - - import errno - import json -@@ -123,18 +123,18 @@ - - def __len__(self): - i = 0 -- for value in self._files.values(): -+ for value in list(self._files.values()): - i += len(value['warnings']) - - return i - - def __iter__(self): -- for value in self._files.values(): -+ for value in list(self._files.values()): - for warning in value['warnings']: - yield warning - - def __contains__(self, item): -- for value in self._files.values(): -+ for value in list(self._files.values()): - for warning in value['warnings']: - if warning == item: - return True -@@ -144,7 +144,7 @@ - @property - def warnings(self): - """All the CompilerWarning instances in this database.""" -- for value in self._files.values(): -+ for value in list(self._files.values()): - for w in value['warnings']: - yield w - -@@ -152,7 +152,7 @@ - """Returns a mapping of warning types to their counts.""" - - types = {} -- for value in self._files.values(): -+ for value in list(self._files.values()): - for warning in value['warnings']: - if dirpath and not mozpath.normsep(warning['filename']).startswith(dirpath): - continue -@@ -210,7 +210,7 @@ - """ - - # Need to calculate up front since we are mutating original object. -- filenames = self._files.keys() -+ filenames = list(self._files.keys()) - for filename in filenames: - if not os.path.exists(filename): - del self._files[filename] -@@ -229,10 +229,10 @@ - obj = {'files': {}} - - # All this hackery because JSON can't handle sets. -- for k, v in self._files.iteritems(): -+ for k, v in self._files.items(): - obj['files'][k] = {} - -- for k2, v2 in v.iteritems(): -+ for k2, v2 in v.items(): - normalized = v2 - - if k2 == 'warnings': -@@ -249,8 +249,8 @@ - self._files = obj['files'] - - # Normalize data types. -- for filename, value in self._files.iteritems(): -- for k, v in value.iteritems(): -+ for filename, value in self._files.items(): -+ for k, v in value.items(): - if k != 'warnings': - continue - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/__init__.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/__init__.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import inspect - import logging -@@ -193,7 +193,7 @@ - for b in ('None', 'False', 'True', 'int', 'bool', 'any', 'all', 'len', - 'list', 'tuple', 'set', 'dict', 'isinstance', 'getattr', - 'hasattr', 'enumerate', 'range', 'zip') -- }, __import__=forbidden_import, str=unicode) -+ }, __import__=forbidden_import, str=str) - - # Expose a limited set of functions from os.path - OS = ReadOnlyNamespace(path=ReadOnlyNamespace(**{ -@@ -333,7 +333,7 @@ - if path: - self.include_file(path) - -- for option in self._options.itervalues(): -+ for option in self._options.values(): - # All options must be referenced by some @depends function - if option not in self._seen: - raise ConfigureError( -@@ -437,7 +437,7 @@ - value = PositiveOptionValue() - elif value is False or value == (): - value = NegativeOptionValue() -- elif isinstance(value, types.StringTypes): -+ elif isinstance(value, (str,)): - value = PositiveOptionValue((value,)) - elif isinstance(value, tuple): - value = PositiveOptionValue(value) -@@ -477,7 +477,7 @@ - return value - - def _dependency(self, arg, callee_name, arg_name=None): -- if isinstance(arg, types.StringTypes): -+ if isinstance(arg, (str,)): - prefix, name, values = Option.split_option(arg) - if values != (): - raise ConfigureError("Option must not contain an '='") -@@ -541,7 +541,7 @@ - ''' - when = self._normalize_when(kwargs.get('when'), 'option') - args = [self._resolve(arg) for arg in args] -- kwargs = {k: self._resolve(v) for k, v in kwargs.iteritems() -+ kwargs = {k: self._resolve(v) for k, v in kwargs.items() - if k != 'when'} - option = Option(*args, **kwargs) - if when: -@@ -622,7 +622,7 @@ - with self.only_when_impl(when): - what = self._resolve(what) - if what: -- if not isinstance(what, types.StringTypes): -+ if not isinstance(what, (str,)): - raise TypeError("Unexpected type: '%s'" % type(what).__name__) - self.include_file(what) - -@@ -640,7 +640,7 @@ - (k[:-len('_impl')], getattr(self, k)) - for k in dir(self) if k.endswith('_impl') and k != 'template_impl' - ) -- glob.update((k, v) for k, v in self.iteritems() if k not in glob) -+ glob.update((k, v) for k, v in self.items() if k not in glob) - - # Any function argument to the template must be prepared to be sandboxed. - # If the template itself returns a function (in which case, it's very -@@ -664,7 +664,7 @@ - def wrapper(*args, **kwargs): - args = [maybe_prepare_function(arg) for arg in args] - kwargs = {k: maybe_prepare_function(v) -- for k, v in kwargs.iteritems()} -+ for k, v in kwargs.items()} - ret = template(*args, **kwargs) - if isfunction(ret): - # We can't expect the sandboxed code to think about all the -@@ -696,7 +696,7 @@ - for value, required in ( - (_import, True), (_from, False), (_as, False)): - -- if not isinstance(value, types.StringTypes) and ( -+ if not isinstance(value, (str,)) and ( - required or value is not None): - raise TypeError("Unexpected type: '%s'" % type(value).__name__) - if value is not None and not self.RE_MODULE.match(value): -@@ -759,7 +759,7 @@ - name = self._resolve(name, need_help_dependency=False) - if name is None: - return -- if not isinstance(name, types.StringTypes): -+ if not isinstance(name, (str,)): - raise TypeError("Unexpected type: '%s'" % type(name).__name__) - if name in data: - raise ConfigureError( -@@ -849,7 +849,7 @@ - if isinstance(possible_reasons[0], Option): - reason = possible_reasons[0] - if not reason and (isinstance(value, (bool, tuple)) or -- isinstance(value, types.StringTypes)): -+ isinstance(value, (str,))): - # A reason can be provided automatically when imply_option - # is called with an immediate value. - _, filename, line, _, _, _ = inspect.stack()[1] -@@ -884,10 +884,10 @@ - if not inspect.isfunction(func): - raise TypeError("Unexpected type: '%s'" % type(func).__name__) - if func in self._prepared_functions: -- return func, func.func_globals -+ return func, func.__globals__ - - glob = SandboxedGlobal( -- (k, v) for k, v in func.func_globals.iteritems() -+ (k, v) for k, v in func.__globals__.items() - if (inspect.isfunction(v) and v not in self._templates) or ( - inspect.isclass(v) and issubclass(v, Exception)) - ) -@@ -908,20 +908,20 @@ - # Note this is not entirely bullet proof (if the value is e.g. a list, - # the list contents could have changed), but covers the bases. - closure = None -- if func.func_closure: -+ if func.__closure__: - def makecell(content): - def f(): - content -- return f.func_closure[0] -+ return f.__closure__[0] - - closure = tuple(makecell(cell.cell_contents) -- for cell in func.func_closure) -+ for cell in func.__closure__) - - new_func = wraps(func)(types.FunctionType( -- func.func_code, -+ func.__code__, - glob, - func.__name__, -- func.func_defaults, -+ func.__defaults__, - closure - )) - @wraps(new_func) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/check_debug_ranges.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/check_debug_ranges.py (refactored) -@@ -6,7 +6,7 @@ - # to a given compilation unit. This is used as a helper to find a bug in some - # versions of GNU ld. - --from __future__ import absolute_import -+ - - import subprocess - import sys -@@ -59,4 +59,4 @@ - - - if __name__ == '__main__': -- print main(*sys.argv[1:]) -+ print(main(*sys.argv[1:])) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from mozbuild.util import EnumString - from collections import OrderedDict -@@ -56,7 +56,7 @@ - 'x86_64': 64, - } - --CPU = EnumString.subclass(*CPU_bitness.keys()) -+CPU = EnumString.subclass(*list(CPU_bitness.keys())) - - Endianness = EnumString.subclass( - 'big', ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/help.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/help.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - from mozbuild.configure.options import Option ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/libstdcxx.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/libstdcxx.py (refactored) -@@ -13,7 +13,7 @@ - # will be used from shell, we just print the two assignments and evaluate - # them from shell. - --from __future__ import absolute_import -+ - - import os - import subprocess -@@ -76,6 +76,6 @@ - - if __name__ == '__main__': - cxx_env = os.environ['CXX'] -- print 'MOZ_LIBSTDCXX_TARGET_VERSION=%s' % find_version(cxx_env) -+ print('MOZ_LIBSTDCXX_TARGET_VERSION=%s' % find_version(cxx_env)) - host_cxx_env = os.environ.get('HOST_CXX', cxx_env) -- print 'MOZ_LIBSTDCXX_HOST_VERSION=%s' % find_version(host_cxx_env) -+ print('MOZ_LIBSTDCXX_HOST_VERSION=%s' % find_version(host_cxx_env)) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/lint.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/lint.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals - --from StringIO import StringIO -+ -+from io import StringIO - from . import ( - CombinedDependsFunction, - ConfigureError, -@@ -42,7 +42,7 @@ - # - don't use @imports - # - don't have a closure - # - don't use global variables -- if func in self._imports or func.func_closure: -+ if func in self._imports or func.__closure__: - return True - for op, arg in disassemble_as_iter(func): - if op in ('LOAD_GLOBAL', 'STORE_GLOBAL'): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/lint_util.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/lint_util.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import dis - import inspect -@@ -12,9 +12,9 @@ - # returns an iterator. - def disassemble_as_iter(co): - if inspect.ismethod(co): -- co = co.im_func -+ co = co.__func__ - if inspect.isfunction(co): -- co = co.func_code -+ co = co.__code__ - code = co.co_code - n = len(code) - i = 0 -@@ -30,7 +30,7 @@ - extended_arg = 0 - i += 2 - if op == dis.EXTENDED_ARG: -- extended_arg = arg * 65536L -+ extended_arg = arg * 65536 - continue - if op in dis.hasconst: - yield opname, co.co_consts[arg] ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/options.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/options.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - import sys -@@ -12,7 +12,7 @@ - - def istupleofstrings(obj): - return isinstance(obj, tuple) and len(obj) and all( -- isinstance(o, types.StringTypes) for o in obj) -+ isinstance(o, (str,)) for o in obj) - - - class OptionValue(tuple): -@@ -71,7 +71,7 @@ - in the form of a tuple for when values are given to the option (in the form - --option=value[,value2...]. - ''' -- def __nonzero__(self): -+ def __bool__(self): - return True - - -@@ -96,7 +96,7 @@ - if format_data: - message = message.format(**format_data) - super(ConflictingOptionError, self).__init__(message) -- for k, v in format_data.iteritems(): -+ for k, v in format_data.items(): - setattr(self, k, v) - - -@@ -132,7 +132,7 @@ - 'At least an option name or an environment variable name must ' - 'be given') - if name: -- if not isinstance(name, types.StringTypes): -+ if not isinstance(name, (str,)): - raise InvalidOptionError('Option must be a string') - if not name.startswith('--'): - raise InvalidOptionError('Option must start with `--`') -@@ -141,7 +141,7 @@ - if not name.islower(): - raise InvalidOptionError('Option must be all lowercase') - if env: -- if not isinstance(env, types.StringTypes): -+ if not isinstance(env, (str,)): - raise InvalidOptionError( - 'Environment variable name must be a string') - if not env.isupper(): -@@ -151,8 +151,8 @@ - isinstance(nargs, int) and nargs >= 0): - raise InvalidOptionError( - "nargs must be a positive integer, '?', '*' or '+'") -- if (not isinstance(default, types.StringTypes) and -- not isinstance(default, (bool, types.NoneType)) and -+ if (not isinstance(default, (str,)) and -+ not isinstance(default, (bool, type(None))) and - not istupleofstrings(default)): - raise InvalidOptionError( - 'default must be a bool, a string or a tuple of strings') -@@ -224,7 +224,7 @@ - ', '.join("'%s'" % c for c in choices)) - elif has_choices: - maxargs = self.maxargs -- if len(choices) < maxargs and maxargs != sys.maxint: -+ if len(choices) < maxargs and maxargs != sys.maxsize: - raise InvalidOptionError('Not enough `choices` for `nargs`') - self.choices = choices - self.help = help -@@ -238,7 +238,7 @@ - where prefix is one of 'with', 'without', 'enable' or 'disable'. - The '=values' part is optional. Values are separated with commas. - ''' -- if not isinstance(option, types.StringTypes): -+ if not isinstance(option, (str,)): - raise InvalidOptionError('Option must be a string') - - elements = option.split('=', 1) -@@ -291,7 +291,7 @@ - def maxargs(self): - if isinstance(self.nargs, int): - return self.nargs -- return 1 if self.nargs == '?' else sys.maxint -+ return 1 if self.nargs == '?' else sys.maxsize - - def _validate_nargs(self, num): - minargs, maxargs = self.minargs, self.maxargs -@@ -485,5 +485,5 @@ - - def __iter__(self): - for d in (self._args, self._extra_args): -- for arg, pos in d.itervalues(): -+ for arg, pos in d.values(): - yield arg ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/util.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/util.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import codecs - import itertools -@@ -52,7 +52,7 @@ - - def __cmp__(self, other): - # LooseVersion checks isinstance(StringType), so work around it. -- if isinstance(other, unicode): -+ if isinstance(other, str): - other = other.encode('ascii') - return LooseVersion.__cmp__(self, other) - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/controller/building.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/controller/building.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import getpass - import json -@@ -108,7 +108,7 @@ - """ - o = [] - -- for tier, state in self.tiers.items(): -+ for tier, state in list(self.tiers.items()): - t_entry = dict( - name=tier, - start=state['begin_time'], -@@ -643,8 +643,8 @@ - - return '\n'.join(lines) - -- def __nonzero__(self): -- relative_values = [v for k, v in self._values.items() -+ def __bool__(self): -+ relative_values = [v for k, v in list(self._values.items()) - if k not in self.ABSOLUTE_KEYS] - return (all(v >= 0 for v in relative_values) and - any(v > 0 for v in relative_values)) -@@ -666,8 +666,8 @@ - """Install test files.""" - - if self.is_clobber_needed(): -- print(INSTALL_TESTS_CLOBBER.format( -- clobber_file=os.path.join(self.topobjdir, 'CLOBBER'))) -+ print((INSTALL_TESTS_CLOBBER.format( -+ clobber_file=os.path.join(self.topobjdir, 'CLOBBER')))) - sys.exit(1) - - if not test_objs: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/controller/clobber.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/controller/clobber.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function -+ - - r'''This module contains code for managing clobbering of the tree.''' - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/context.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/context.py (refactored) -@@ -14,7 +14,7 @@ - contain, you've come to the right place. - """ - --from __future__ import absolute_import, unicode_literals -+ - - import os - -@@ -234,15 +234,15 @@ - This function is transactional: if setitem fails for one of the values, - the context is not updated at all.""" - if isinstance(iterable, dict): -- iterable = iterable.items() -+ iterable = list(iterable.items()) - - update = {} -- for key, value in itertools.chain(iterable, kwargs.items()): -+ for key, value in itertools.chain(iterable, list(kwargs.items())): - stored_type = self._validate(key, value) - # Don't create an instance of stored_type if coercion is needed, - # until all values are validated. - update[key] = (value, stored_type) -- for key, (value, stored_type) in update.items(): -+ for key, (value, stored_type) in list(update.items()): - if not isinstance(value, stored_type): - update[key] = stored_type(value) - else: -@@ -297,7 +297,7 @@ - self.update(value) - - --class FinalTargetValue(ContextDerivedValue, unicode): -+class FinalTargetValue(ContextDerivedValue, str): - def __new__(cls, context, value=""): - if not value: - value = 'dist/' -@@ -307,7 +307,7 @@ - value += 'bin' - if context['DIST_SUBDIR']: - value += '/' + context['DIST_SUBDIR'] -- return unicode.__new__(cls, value) -+ return str.__new__(cls, value) - - - def Enum(*values): -@@ -355,7 +355,7 @@ - cls = SourcePath - return super(PathMeta, cls).__call__(context, value) - --class Path(ContextDerivedValue, unicode): -+class Path(ContextDerivedValue, str, metaclass=PathMeta): - """Stores and resolves a source path relative to a given context - - This class is used as a backing type for some of the sandbox variables. -@@ -366,7 +366,6 @@ - - '!objdir/relative/paths' - - '%/filesystem/absolute/paths' - """ -- __metaclass__ = PathMeta - - def __new__(cls, context, value=None): - return super(Path, cls).__new__(cls, value) -@@ -386,7 +385,7 @@ - def __cmp__(self, other): - if isinstance(other, Path) and self.srcdir != other.srcdir: - return cmp(self.full_path, other.full_path) -- return cmp(unicode(self), other) -+ return cmp(str(self), other) - - # __cmp__ is not enough because unicode has __eq__, __ne__, etc. defined - # and __cmp__ is only used for those when they don't exist. -@@ -544,7 +543,7 @@ - __slots__ = tuple([name for name, _ in fields]) - - def __init__(self, context): -- for fname, ftype in self._fields.items(): -+ for fname, ftype in list(self._fields.items()): - if issubclass(ftype, ContextDerivedValue): - setattr(self, fname, self._fields[fname](context)) - else: -@@ -614,8 +613,8 @@ - return _TypedListWithAction - - WebPlatformTestManifest = TypedNamedTuple("WebPlatformTestManifest", -- [("manifest_path", unicode), -- ("test_root", unicode)]) -+ [("manifest_path", str), -+ ("test_root", str)]) - ManifestparserManifestList = OrderedListWithAction(read_manifestparser_manifest) - ReftestManifestList = OrderedListWithAction(read_reftest_manifest) - WptManifestList = TypedListWithAction(WebPlatformTestManifest, read_wpt_manifest) -@@ -623,12 +622,12 @@ - OrderedSourceList = ContextDerivedTypedList(SourcePath, StrictOrderingOnAppendList) - OrderedTestFlavorList = TypedList(Enum(*all_test_flavors()), - StrictOrderingOnAppendList) --OrderedStringList = TypedList(unicode, StrictOrderingOnAppendList) -+OrderedStringList = TypedList(str, StrictOrderingOnAppendList) - DependentTestsEntry = ContextDerivedTypedRecord(('files', OrderedSourceList), - ('tags', OrderedStringList), - ('flavors', OrderedTestFlavorList)) - BugzillaComponent = TypedNamedTuple('BugzillaComponent', -- [('product', unicode), ('component', unicode)]) -+ [('product', str), ('component', str)]) - - - class Files(SubContext): -@@ -764,7 +763,7 @@ - self.test_tags |= other.test_tags - self.test_flavors |= other.test_flavors - -- for k, v in other.items(): -+ for k, v in list(other.items()): - if k == 'IMPACTED_TESTS': - self.test_files |= set(mozpath.relpath(e.full_path, e.context.config.topsrcdir) - for e in v.files) -@@ -818,7 +817,7 @@ - - bug_components = Counter() - -- for f in files.values(): -+ for f in list(files.values()): - bug_component = f.get('BUG_COMPONENT') - if bug_component: - bug_components[bug_component] += 1 -@@ -889,11 +888,11 @@ - file. - """), - -- 'ANDROID_APK_NAME': (unicode, unicode, -+ 'ANDROID_APK_NAME': (str, str, - """The name of an Android APK file to generate. - """), - -- 'ANDROID_APK_PACKAGE': (unicode, unicode, -+ 'ANDROID_APK_PACKAGE': (str, str, - """The name of the Android package to generate R.java for, like org.mozilla.gecko. - """), - -@@ -962,7 +961,7 @@ - """), - - 'GENERATED_FILES': (StrictOrderingOnAppendListWithFlagsFactory({ -- 'script': unicode, -+ 'script': str, - 'inputs': list }), list, - """Generic generated files. - -@@ -1107,7 +1106,7 @@ - """Like ``OBJDIR_FILES``, with preprocessing. Use sparingly. - """), - -- 'FINAL_LIBRARY': (unicode, unicode, -+ 'FINAL_LIBRARY': (str, str, - """Library in which the objects of the current directory will be linked. - - This variable contains the name of a library, defined elsewhere with -@@ -1158,7 +1157,7 @@ - """A list of python unit tests. - """), - -- 'HOST_LIBRARY_NAME': (unicode, unicode, -+ 'HOST_LIBRARY_NAME': (str, str, - """Name of target library generated when cross compiling. - """), - -@@ -1176,7 +1175,7 @@ - libraries that link into this library via FINAL_LIBRARY. - """), - -- 'LIBRARY_NAME': (unicode, unicode, -+ 'LIBRARY_NAME': (str, str, - """The code name of the library generated for a directory. - - By default STATIC_LIBRARY_NAME and SHARED_LIBRARY_NAME take this name. -@@ -1188,7 +1187,7 @@ - ``example/components/xpcomsample.lib`` on Windows. - """), - -- 'SHARED_LIBRARY_NAME': (unicode, unicode, -+ 'SHARED_LIBRARY_NAME': (str, str, - """The name of the static library generated for a directory, if it needs to - differ from the library code name. - -@@ -1202,7 +1201,7 @@ - Implies FORCE_SHARED_LIB. - """), - -- 'STATIC_LIBRARY_NAME': (unicode, unicode, -+ 'STATIC_LIBRARY_NAME': (str, str, - """The name of the static library generated for a directory, if it needs to - differ from the library code name. - -@@ -1238,37 +1237,37 @@ - - This variable contains a list of system libaries to link against. - """), -- 'RCFILE': (unicode, unicode, -+ 'RCFILE': (str, str, - """The program .rc file. - - This variable can only be used on Windows. - """), - -- 'RESFILE': (unicode, unicode, -+ 'RESFILE': (str, str, - """The program .res file. - - This variable can only be used on Windows. - """), - -- 'RCINCLUDE': (unicode, unicode, -+ 'RCINCLUDE': (str, str, - """The resource script file to be included in the default .res file. - - This variable can only be used on Windows. - """), - -- 'DEFFILE': (unicode, unicode, -+ 'DEFFILE': (str, str, - """The program .def (module definition) file. - - This variable can only be used on Windows. - """), - -- 'LD_VERSION_SCRIPT': (unicode, unicode, -+ 'LD_VERSION_SCRIPT': (str, str, - """The linker version script for shared libraries. - - This variable can only be used on Linux. - """), - -- 'SYMBOLS_FILE': (Path, unicode, -+ 'SYMBOLS_FILE': (Path, str, - """A file containing a list of symbols to export from a shared library. - - The given file contains a list of symbols to be exported, and is -@@ -1323,7 +1322,7 @@ - ``BIN_SUFFIX``, the name will remain unchanged. - """), - -- 'SONAME': (unicode, unicode, -+ 'SONAME': (str, str, - """The soname of the shared object currently being linked - - soname is the "logical name" of a shared object, often used to provide -@@ -1379,7 +1378,7 @@ - ``GENERATED_FILES``. - """), - -- 'PROGRAM' : (unicode, unicode, -+ 'PROGRAM' : (str, str, - """Compiled executable name. - - If the configuration token ``BIN_SUFFIX`` is set, its value will be -@@ -1387,7 +1386,7 @@ - ``BIN_SUFFIX``, ``PROGRAM`` will remain unchanged. - """), - -- 'HOST_PROGRAM' : (unicode, unicode, -+ 'HOST_PROGRAM' : (str, str, - """Compiled host executable name. - - If the configuration token ``HOST_BIN_SUFFIX`` is set, its value will be -@@ -1425,7 +1424,7 @@ - files. - """), - -- 'XPIDL_MODULE': (unicode, unicode, -+ 'XPIDL_MODULE': (str, str, - """XPCOM Interface Definition Module Name. - - This is the name of the ``.xpt`` file that is created by linking -@@ -1576,14 +1575,14 @@ - """), - - # The following variables are used to control the target of installed files. -- 'XPI_NAME': (unicode, unicode, -+ 'XPI_NAME': (str, str, - """The name of an extension XPI to generate. - - When this variable is present, the results of this directory will end up - being packaged into an extension instead of the main dist/bin results. - """), - -- 'DIST_SUBDIR': (unicode, unicode, -+ 'DIST_SUBDIR': (str, str, - """The name of an alternate directory to install files to. - - When this variable is present, the results of this directory will end up -@@ -1591,7 +1590,7 @@ - otherwise be placed. - """), - -- 'FINAL_TARGET': (FinalTargetValue, unicode, -+ 'FINAL_TARGET': (FinalTargetValue, str, - """The name of the directory to install targets to. - - The directory is relative to the top of the object directory. The -@@ -1622,7 +1621,7 @@ - - 'GYP_DIRS': (StrictOrderingOnAppendListWithFlagsFactory({ - 'variables': dict, -- 'input': unicode, -+ 'input': str, - 'sandbox_vars': dict, - 'non_unified_sources': StrictOrderingOnAppendList, - }), list, -@@ -1799,7 +1798,7 @@ - } - - # Sanity check: we don't want any variable above to have a list as storage type. --for name, (storage_type, input_types, docs) in VARIABLES.items(): -+for name, (storage_type, input_types, docs) in list(VARIABLES.items()): - if storage_type == list: - raise RuntimeError('%s has a "list" storage type. Use "List" instead.' - % name) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/data.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/data.py (refactored) -@@ -15,7 +15,7 @@ - structures. - """ - --from __future__ import absolute_import, unicode_literals -+ - - from mozbuild.util import StrictOrderingOnAppendList - from mozpack.chrome.manifest import ManifestEntry -@@ -186,7 +186,7 @@ - self.defines = defines - - def get_defines(self): -- for define, value in self.defines.iteritems(): -+ for define, value in self.defines.items(): - if value is True: - yield('-D%s' % define) - elif value is False: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/emitter.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/emitter.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import itertools - import logging -@@ -120,8 +120,8 @@ - # arguments. This gross hack works around the problem until we - # rid ourselves of 2.6. - self.info = {} -- for k, v in mozinfo.info.items(): -- if isinstance(k, unicode): -+ for k, v in list(mozinfo.info.items()): -+ if isinstance(k, str): - k = k.encode('ascii') - self.info[k] = v - -@@ -197,7 +197,7 @@ - - def _emit_libs_derived(self, contexts): - # First do FINAL_LIBRARY linkage. -- for lib in (l for libs in self._libs.values() for l in libs): -+ for lib in (l for libs in list(self._libs.values()) for l in libs): - if not isinstance(lib, (StaticLibrary, RustLibrary)) or not lib.link_into: - continue - if lib.link_into not in self._libs: -@@ -257,12 +257,12 @@ - lib.link_into == outerlib.basename): - propagate_defines(lib, defines) - -- for lib in (l for libs in self._libs.values() for l in libs): -+ for lib in (l for libs in list(self._libs.values()) for l in libs): - if isinstance(lib, Library): - propagate_defines(lib, lib.lib_defines) - yield lib - -- for obj in self._binaries.values(): -+ for obj in list(self._binaries.values()): - yield obj - - LIBRARY_NAME_VAR = { -@@ -321,7 +321,7 @@ - libs[key] = l - if key not in libs: - libs[key] = l -- candidates = libs.values() -+ candidates = list(libs.values()) - if force_static and not candidates: - if dir: - raise SandboxValidationError( -@@ -383,9 +383,9 @@ - - def _verify_deps(self, context, crate_dir, crate_name, dependencies, description='Dependency'): - """Verify that a crate's dependencies all specify local paths.""" -- for dep_crate_name, values in dependencies.iteritems(): -+ for dep_crate_name, values in dependencies.items(): - # A simple version number. -- if isinstance(values, (str, unicode)): -+ if isinstance(values, str): - raise SandboxValidationError( - '%s %s of crate %s does not list a path' % (description, dep_crate_name, crate_name), - context) -@@ -463,7 +463,7 @@ - ' in [profile.%s] section') % (libname, profile_name), - context) - -- dependencies = set(config.get('dependencies', {}).iterkeys()) -+ dependencies = set(config.get('dependencies', {}).keys()) - - return RustLibrary(context, libname, cargo_file, crate_type, - dependencies, **static_args) -@@ -738,7 +738,7 @@ - assert not gen_sources['UNIFIED_SOURCES'] - - no_pgo = context.get('NO_PGO') -- no_pgo_sources = [f for f, flags in all_flags.iteritems() -+ no_pgo_sources = [f for f, flags in all_flags.items() - if flags.no_pgo] - if no_pgo: - if no_pgo_sources: -@@ -765,7 +765,7 @@ - - # The inverse of the above, mapping suffixes to their canonical suffix. - canonicalized_suffix_map = {} -- for suffix, alternatives in suffix_map.iteritems(): -+ for suffix, alternatives in suffix_map.items(): - alternatives.add(suffix) - for a in alternatives: - canonicalized_suffix_map[a] = suffix -@@ -786,7 +786,7 @@ - # a directory with mixed C and C++ source, but it's not that important. - cxx_sources = defaultdict(bool) - -- for variable, (klass, gen_klass, suffixes) in varmap.items(): -+ for variable, (klass, gen_klass, suffixes) in list(varmap.items()): - allowed_suffixes = set().union(*[suffix_map[s] for s in suffixes]) - - # First ensure that we haven't been given filetypes that we don't -@@ -812,7 +812,7 @@ - obj = cls(*arglist) - yield obj - -- for f, flags in all_flags.iteritems(): -+ for f, flags in all_flags.items(): - if flags.flags: - ext = mozpath.splitext(f)[1] - yield PerSourceFlag(context, f, flags.flags) -@@ -958,7 +958,7 @@ - for obj in self._handle_linkables(context, passthru, generated_files): - yield obj - -- generated_files.update(['%s%s' % (k, self.config.substs.get('BIN_SUFFIX', '')) for k in self._binaries.keys()]) -+ generated_files.update(['%s%s' % (k, self.config.substs.get('BIN_SUFFIX', '')) for k in list(self._binaries.keys())]) - - components = [] - for var, cls in ( -@@ -1055,10 +1055,10 @@ - for obj in self._process_jar_manifests(context): - yield obj - -- for name, jar in context.get('JAVA_JAR_TARGETS', {}).items(): -+ for name, jar in list(context.get('JAVA_JAR_TARGETS', {}).items()): - yield ContextWrapped(context, jar) - -- for name, data in context.get('ANDROID_ECLIPSE_PROJECT_TARGETS', {}).items(): -+ for name, data in list(context.get('ANDROID_ECLIPSE_PROJECT_TARGETS', {}).items()): - yield ContextWrapped(context, data) - - if context.get('USE_YASM') is True: -@@ -1127,7 +1127,7 @@ - script = mozpath.join(mozpath.dirname(mozpath.dirname(__file__)), - 'action', 'process_define_files.py') - yield GeneratedFile(context, script, 'process_define_file', -- unicode(path), -+ str(path), - [Path(context, path + '.in')]) - - generated_files = context.get('GENERATED_FILES') -@@ -1170,7 +1170,7 @@ - yield GeneratedFile(context, script, method, outputs, inputs) - - def _process_test_manifests(self, context): -- for prefix, info in TEST_MANIFESTS.items(): -+ for prefix, info in list(TEST_MANIFESTS.items()): - for path, manifest in context.get('%s_MANIFESTS' % prefix, []): - for obj in self._process_test_manifest(context, info, path, manifest): - yield obj -@@ -1261,7 +1261,7 @@ - - process_support_files(test) - -- for path, m_defaults in mpmanifest.manifest_defaults.items(): -+ for path, m_defaults in list(mpmanifest.manifest_defaults.items()): - process_support_files(m_defaults) - - # We also copy manifests into the output directory, ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/gyp_reader.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/gyp_reader.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import gyp - import sys -@@ -69,7 +69,7 @@ - - - def encode(value): -- if isinstance(value, unicode): -+ if isinstance(value, str): - return value.encode('utf-8') - return value - -@@ -87,7 +87,7 @@ - # gyp expects plain str instead of unicode. The frontend code gives us - # unicode strings, so convert them. - path = encode(path) -- str_vars = dict((name, encode(value)) for name, value in vars.items()) -+ str_vars = dict((name, encode(value)) for name, value in list(vars.items())) - - params = { - b'parallel': False, -@@ -222,7 +222,7 @@ - if not f: - continue - # the result may be a string or a list. -- if isinstance(f, types.StringTypes): -+ if isinstance(f, (str,)): - context[var].append(f) - else: - context[var].extend(f) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/mach_commands.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/mach_commands.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from collections import defaultdict - import os -@@ -105,13 +105,13 @@ - """ - components = defaultdict(set) - try: -- for p, m in self._get_files_info(paths, rev=rev).items(): -+ for p, m in list(self._get_files_info(paths, rev=rev).items()): - components[m.get('BUG_COMPONENT')].add(p) - except InvalidPathException as e: - print(e.message) - return 1 - -- for component, files in sorted(components.items(), key=lambda x: (x is None, x)): -+ for component, files in sorted(list(components.items()), key=lambda x: (x is None, x)): - print('%s :: %s' % (component.product, component.component) if component else 'UNKNOWN') - for f in sorted(files): - print(' %s' % f) -@@ -139,7 +139,7 @@ - help='Paths whose data to query') - def file_info_test_deps(self, paths, rev=None): - try: -- for p, m in self._get_files_info(paths, rev=rev).items(): -+ for p, m in list(self._get_files_info(paths, rev=rev).items()): - print('%s:' % mozpath.relpath(p, self.topsrcdir)) - if m.test_files: - print('\tTest file patterns:') ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/reader.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/reader.py (refactored) -@@ -16,7 +16,7 @@ - It does this by examining specific variables populated during execution. - """ - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import ast - import inspect -@@ -80,11 +80,12 @@ - ) - - from mozbuild.base import ExecutionSummary -+from functools import reduce - - - if sys.version_info.major == 2: -- text_type = unicode -- type_type = types.TypeType -+ text_type = str -+ type_type = type - else: - text_type = str - type_type = type -@@ -126,7 +127,7 @@ - b'JS_STANDALONE': b'1', - }) - udict = {} -- for k, v in self.substs.items(): -+ for k, v in list(self.substs.items()): - if isinstance(v, str): - udict[k.decode('utf-8')] = v.decode('utf-8') - else: -@@ -338,7 +339,7 @@ - raise Exception('`template` is a function decorator. You must ' - 'use it as `@template` preceding a function declaration.') - -- name = func.func_name -+ name = func.__name__ - - if name in self.templates: - raise KeyError( -@@ -417,7 +418,7 @@ - klass = self._context.__class__ - self._context.__class__ = TemplateContext - # The sandbox will do all the necessary checks for these merges. -- for key, value in context.items(): -+ for key, value in list(context.items()): - if isinstance(value, dict): - self[key].update(value) - elif isinstance(value, (list, HierarchicalStringList)): -@@ -434,10 +435,10 @@ - - class TemplateFunction(object): - def __init__(self, func, sandbox): -- self.path = func.func_code.co_filename -- self.name = func.func_name -- -- code = func.func_code -+ self.path = func.__code__.co_filename -+ self.name = func.__name__ -+ -+ code = func.__code__ - firstlineno = code.co_firstlineno - lines = sandbox._current_source.splitlines(True) - lines = inspect.getblock(lines[firstlineno - 1:]) -@@ -476,8 +477,8 @@ - compile(func_ast, self.path, 'exec'), - glob, - self.name, -- func.func_defaults, -- func.func_closure, -+ func.__defaults__, -+ func.__closure__, - ) - func() - -@@ -491,11 +492,11 @@ - '__builtins__': sandbox._builtins - } - func = types.FunctionType( -- self._func.func_code, -+ self._func.__code__, - glob, - self.name, -- self._func.func_defaults, -- self._func.func_closure -+ self._func.__defaults__, -+ self._func.__closure__ - ) - sandbox.exec_function(func, args, kwargs, self.path, - becomes_current_path=False) -@@ -511,7 +512,7 @@ - def visit_Str(self, node): - # String nodes we got from the AST parser are str, but we want - # unicode literals everywhere, so transform them. -- node.s = unicode(node.s) -+ node.s = str(node.s) - return node - - def visit_Name(self, node): -@@ -644,7 +645,7 @@ - - for l in traceback.format_exception(type(self.other), self.other, - self.trace): -- s.write(unicode(l)) -+ s.write(str(l)) - - return s.getvalue() - -@@ -794,7 +795,7 @@ - s.write(' %s\n' % inner.args[2]) - s.write('\n') - close_matches = difflib.get_close_matches(inner.args[2], -- VARIABLES.keys(), 2) -+ list(VARIABLES.keys()), 2) - if close_matches: - s.write('Maybe you meant %s?\n' % ' or '.join(close_matches)) - s.write('\n') -@@ -1196,7 +1197,7 @@ - - recurse_info[d][key] = dict(sandbox.metadata[key]) - -- for path, child_metadata in recurse_info.items(): -+ for path, child_metadata in list(recurse_info.items()): - child_path = path.join('moz.build').full_path - - # Ensure we don't break out of the topsrcdir. We don't do realpath -@@ -1288,7 +1289,7 @@ - # There is room to improve this code (and the code in - # _find_relevant_mozbuilds) to better handle multiple files in the same - # directory. Bug 1136966 tracks. -- for path, mbpaths in relevants.items(): -+ for path, mbpaths in list(relevants.items()): - path_mozbuilds[path] = [mozpath.join(topsrcdir, p) for p in mbpaths] - - for i, mbpath in enumerate(mbpaths[0:-1]): -@@ -1325,7 +1326,7 @@ - all_contexts.append(context) - - result = {} -- for path, paths in path_mozbuilds.items(): -+ for path, paths in list(path_mozbuilds.items()): - result[path] = reduce(lambda x, y: x + y, (contexts[p] for p in paths), []) - - return result, all_contexts -@@ -1352,7 +1353,7 @@ - - r = {} - -- for path, ctxs in paths.items(): -+ for path, ctxs in list(paths.items()): - flags = Files(Context()) - - for ctx in ctxs: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/sandbox.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/sandbox.py (refactored) -@@ -17,7 +17,7 @@ - user-friendly error messages in the case of errors. - """ - --from __future__ import absolute_import, unicode_literals -+ - - import os - import sys ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/common.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/common.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - from mach.logging import LoggingManager - -@@ -36,7 +36,7 @@ - }, **extra_substs) - - self.substs_unicode = ReadOnlyDict({k.decode('utf-8'): v.decode('utf-8', -- 'replace') for k, v in self.substs.items()}) -+ 'replace') for k, v in list(self.substs.items())}) - - self.defines = self.substs - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_base.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_base.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import json - import os -@@ -12,7 +12,7 @@ - import tempfile - import unittest - --from cStringIO import StringIO -+from io import StringIO - from mozfile.mozfile import NamedTemporaryFile - - from mozunit import main -@@ -93,7 +93,7 @@ - mozconfig = os.path.join(d, 'mozconfig') - with open(mozconfig, 'wt') as fh: - fh.write('mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/foo/@CONFIG_GUESS@') -- print('Wrote mozconfig %s' % mozconfig) -+ print(('Wrote mozconfig %s' % mozconfig)) - - topobjdir = os.path.join(d, 'foo', guess) - os.makedirs(topobjdir) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_containers.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_containers.py (refactored) -@@ -152,7 +152,7 @@ - - self.assertEqual(test['foo'], 1) - -- self.assertEqual(test.keys(), ['foo', 'bar' ]) -+ self.assertEqual(list(test.keys()), ['foo', 'bar' ]) - - def test_defaults(self): - test = OrderedDefaultDict(bool, {'foo': 1 }) -@@ -161,7 +161,7 @@ - - self.assertEqual(test['qux'], False) - -- self.assertEqual(test.keys(), ['foo', 'qux' ]) -+ self.assertEqual(list(test.keys()), ['foo', 'qux' ]) - - - class TestKeyedDefaultDict(unittest.TestCase): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_dotproperties.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_dotproperties.py (refactored) -@@ -1,11 +1,11 @@ - # -*- coding: utf-8 -*- - --from __future__ import unicode_literals -+ - - import os - import unittest - --from StringIO import StringIO -+from io import StringIO - - import mozpack.path as mozpath - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_expression.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_expression.py (refactored) -@@ -25,8 +25,8 @@ - - def test_in(self): - """test 'var in context' to not fall for fallback""" -- self.assert_('FAIL' in self.c) -- self.assert_('PASS' not in self.c) -+ self.assertTrue('FAIL' in self.c) -+ self.assertTrue('PASS' not in self.c) - - class TestExpression(unittest.TestCase): - """ -@@ -48,16 +48,16 @@ - - def test_not(self): - """Test for the ! operator""" -- self.assert_(Expression('!0').evaluate(self.c)) -- self.assert_(not Expression('!1').evaluate(self.c)) -+ self.assertTrue(Expression('!0').evaluate(self.c)) -+ self.assertTrue(not Expression('!1').evaluate(self.c)) - - def test_equals(self): - """ Test for the == operator""" -- self.assert_(Expression('FAIL == PASS').evaluate(self.c)) -+ self.assertTrue(Expression('FAIL == PASS').evaluate(self.c)) - - def test_notequals(self): - """ Test for the != operator""" -- self.assert_(Expression('FAIL != 1').evaluate(self.c)) -+ self.assertTrue(Expression('FAIL != 1').evaluate(self.c)) - - def test_logical_and(self): - """ Test for the && operator""" ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_jarmaker.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_jarmaker.py (refactored) -@@ -2,14 +2,14 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import print_function -+ - import unittest - - import os, sys, os.path, time, inspect - from filecmp import dircmp - from tempfile import mkdtemp - from shutil import rmtree, copy2 --from StringIO import StringIO -+from io import StringIO - from zipfile import ZipFile - import mozunit - -@@ -117,12 +117,12 @@ - """Helper to report rich results on difference between two directories. - """ - def _fillDiff(self, dc, rv, basepath="{0}"): -- rv['right_only'] += map(lambda l: basepath.format(l), dc.right_only) -- rv['left_only'] += map(lambda l: basepath.format(l), dc.left_only) -- rv['diff_files'] += map(lambda l: basepath.format(l), dc.diff_files) -- rv['funny'] += map(lambda l: basepath.format(l), dc.common_funny) -- rv['funny'] += map(lambda l: basepath.format(l), dc.funny_files) -- for subdir, _dc in dc.subdirs.iteritems(): -+ rv['right_only'] += [basepath.format(l) for l in dc.right_only] -+ rv['left_only'] += [basepath.format(l) for l in dc.left_only] -+ rv['diff_files'] += [basepath.format(l) for l in dc.diff_files] -+ rv['funny'] += [basepath.format(l) for l in dc.common_funny] -+ rv['funny'] += [basepath.format(l) for l in dc.funny_files] -+ for subdir, _dc in dc.subdirs.items(): - self._fillDiff(_dc, rv, basepath.format(subdir + "/{0}")) - def allResults(self, left, right): - rv = {'right_only':[], 'left_only':[], -@@ -295,7 +295,7 @@ - ('hoge', 'foo', '2'): ('qux', 'foo', '2'), - ('hoge', 'baz'): ('qux', 'baz'), - } -- for dest, src in expected_symlinks.iteritems(): -+ for dest, src in expected_symlinks.items(): - srcpath = os.path.join(self.srcdir, *src) - destpath = os.path.join(self.builddir, 'chrome', 'test', 'dir', - *dest) -@@ -317,7 +317,7 @@ - def test_en_US(self): - jm = self.jm - jm.makeJar(self.fake_empty_file, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, -+ self.assertEqual(jm.localedirs, - [ - os.path.join(os.path.abspath('/TOPSOURCEDIR'), - 'browser/locales', 'en-US') -@@ -326,13 +326,13 @@ - jm = self.jm - jm.l10nbase = '/L10N_BASE' - jm.makeJar(self.fake_empty_file, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, [os.path.join('/L10N_BASE', 'browser')]) -+ self.assertEqual(jm.localedirs, [os.path.join('/L10N_BASE', 'browser')]) - def test_l10n_merge(self): - jm = self.jm - jm.l10nbase = '/L10N_BASE' - jm.l10nmerge = '/L10N_MERGE' - jm.makeJar(self.fake_empty_file, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, -+ self.assertEqual(jm.localedirs, - [os.path.join('/L10N_MERGE', 'browser'), - os.path.join('/L10N_BASE', 'browser'), - os.path.join(os.path.abspath('/TOPSOURCEDIR'), -@@ -346,7 +346,7 @@ - ''') - jarcontents.name = 'override.mn' - jm.makeJar(jarcontents, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, -+ self.assertEqual(jm.localedirs, - [ - os.path.join(os.path.abspath('/TOPSOURCEDIR'), - 'dom/locales', 'en-US') -@@ -360,7 +360,7 @@ - ''') - jarcontents.name = 'override.mn' - jm.makeJar(jarcontents, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, [os.path.join('/L10N_BASE', 'dom')]) -+ self.assertEqual(jm.localedirs, [os.path.join('/L10N_BASE', 'dom')]) - - - if __name__ == '__main__': ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_line_endings.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_line_endings.py (refactored) -@@ -1,6 +1,6 @@ - import unittest - --from StringIO import StringIO -+from io import StringIO - import os - import sys - import os.path -@@ -30,17 +30,17 @@ - def testMac(self): - self.createFile(['\x0D']*3) - self.pp.do_include(self.tempnam) -- self.assertEquals(self.pp.out.getvalue(), 'a\nb\nc\n') -+ self.assertEqual(self.pp.out.getvalue(), 'a\nb\nc\n') - - def testUnix(self): - self.createFile(['\x0A']*3) - self.pp.do_include(self.tempnam) -- self.assertEquals(self.pp.out.getvalue(), 'a\nb\nc\n') -+ self.assertEqual(self.pp.out.getvalue(), 'a\nb\nc\n') - - def testWindows(self): - self.createFile(['\x0D\x0A']*3) - self.pp.do_include(self.tempnam) -- self.assertEquals(self.pp.out.getvalue(), 'a\nb\nc\n') -+ self.assertEqual(self.pp.out.getvalue(), 'a\nb\nc\n') - - if __name__ == '__main__': - mozunit.main() ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_makeutil.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_makeutil.py (refactored) -@@ -11,7 +11,7 @@ - from mozunit import main - import os - import unittest --from StringIO import StringIO -+from io import StringIO - - - class TestMakefile(unittest.TestCase): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_mozconfig.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_mozconfig.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import unittest -@@ -480,9 +480,9 @@ - - self.assertTrue(e.exception.message.startswith( - 'Evaluation of your mozconfig exited with an error')) -- self.assertEquals(e.exception.path, -+ self.assertEqual(e.exception.path, - mozconfig.name.replace(os.sep, '/')) -- self.assertEquals(e.exception.output, ['hello world']) -+ self.assertEqual(e.exception.output, ['hello world']) - - - if __name__ == '__main__': ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_mozinfo.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_mozinfo.py (refactored) -@@ -8,7 +8,7 @@ - import tempfile - import unittest - --from StringIO import StringIO -+from io import StringIO - - import mozunit - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_preprocessor.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_preprocessor.py (refactored) -@@ -4,7 +4,7 @@ - - import unittest - --from StringIO import StringIO -+from io import StringIO - import os - import shutil - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_pythonutil.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_pythonutil.py (refactored) -@@ -12,7 +12,7 @@ - def test_iter_modules_in_path(self): - mozbuild_path = os.path.normcase(os.path.dirname(os.path.dirname(__file__))) - paths = list(iter_modules_in_path(mozbuild_path)) -- self.assertEquals(sorted(paths), [ -+ self.assertEqual(sorted(paths), [ - os.path.join(os.path.abspath(mozbuild_path), '__init__.py'), - os.path.join(os.path.abspath(mozbuild_path), 'pythonutil.py'), - os.path.join(os.path.abspath(mozbuild_path), 'test', 'test_pythonutil.py'), ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_testing.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_testing.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -- --import cPickle as pickle -+ -+ -+import pickle as pickle - import os - import shutil - import tempfile ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_util.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/test_util.py (refactored) -@@ -3,7 +3,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import itertools - import hashlib -@@ -110,7 +110,7 @@ - ''' - def __call__(self, name, mode): - if 'w' in mode: -- raise Exception, 'Unexpected open with write mode' -+ raise Exception('Unexpected open with write mode') - return MockedOpen.__call__(self, name, mode) - - with MyMockedOpen({'file': 'content'}): -@@ -432,7 +432,7 @@ - self.assertEqual(len(l), 0) - original = ['a', 'b', 'c'] - l = ListWithAction(['a', 'b', 'c'], action=self.action) -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -445,7 +445,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l.extend(original) -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -455,7 +455,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l[:] = original -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -465,7 +465,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l2 = l + original -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l2) - - with self.assertRaises(ValueError): -@@ -475,7 +475,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l += original -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -524,7 +524,7 @@ - - def test_strict_ordering_on_append_list_with_flags_factory_extend(self): - FooList = StrictOrderingOnAppendListWithFlagsFactory({ -- 'foo': bool, 'bar': unicode -+ 'foo': bool, 'bar': str - }) - foo = FooList(['a', 'b', 'c']) - foo['a'].foo = True -@@ -532,7 +532,7 @@ - - # Don't allow extending lists with different flag definitions. - BarList = StrictOrderingOnAppendListWithFlagsFactory({ -- 'foo': unicode, 'baz': bool -+ 'foo': str, 'baz': bool - }) - bar = BarList(['d', 'e', 'f']) - bar['d'].foo = 'foo' -@@ -752,9 +752,9 @@ - - class TypedTestStrictOrderingOnAppendList(unittest.TestCase): - def test_init(self): -- class Unicode(unicode): -+ class Unicode(str): - def __init__(self, other): -- if not isinstance(other, unicode): -+ if not isinstance(other, str): - raise ValueError() - super(Unicode, self).__init__(other) - -@@ -776,14 +776,14 @@ - - class TestTypedNamedTuple(unittest.TestCase): - def test_simple(self): -- FooBar = TypedNamedTuple('FooBar', [('foo', unicode), ('bar', int)]) -+ FooBar = TypedNamedTuple('FooBar', [('foo', str), ('bar', int)]) - - t = FooBar(foo='foo', bar=2) -- self.assertEquals(type(t), FooBar) -- self.assertEquals(t.foo, 'foo') -- self.assertEquals(t.bar, 2) -- self.assertEquals(t[0], 'foo') -- self.assertEquals(t[1], 2) -+ self.assertEqual(type(t), FooBar) -+ self.assertEqual(t.foo, 'foo') -+ self.assertEqual(t.bar, 2) -+ self.assertEqual(t[0], 'foo') -+ self.assertEqual(t[1], 2) - - FooBar('foo', 2) - -@@ -796,7 +796,7 @@ - # arguments. - t1 = ('foo', 3) - t2 = FooBar(t1) -- self.assertEquals(type(t2), FooBar) -+ self.assertEqual(type(t2), FooBar) - self.assertEqual(FooBar(t1), FooBar('foo', 3)) - - -@@ -871,18 +871,18 @@ - CompilerType = EnumString.subclass('msvc', 'gcc', 'clang', 'clang-cl') - - type = CompilerType('msvc') -- self.assertEquals(type, 'msvc') -- self.assertNotEquals(type, 'gcc') -- self.assertNotEquals(type, 'clang') -- self.assertNotEquals(type, 'clang-cl') -+ self.assertEqual(type, 'msvc') -+ self.assertNotEqual(type, 'gcc') -+ self.assertNotEqual(type, 'clang') -+ self.assertNotEqual(type, 'clang-cl') - self.assertIn(type, ('msvc', 'clang-cl')) - self.assertNotIn(type, ('gcc', 'clang')) - - with self.assertRaises(EnumStringComparisonError): -- self.assertEquals(type, 'foo') -+ self.assertEqual(type, 'foo') - - with self.assertRaises(EnumStringComparisonError): -- self.assertNotEquals(type, 'foo') -+ self.assertNotEqual(type, 'foo') - - with self.assertRaises(EnumStringComparisonError): - self.assertIn(type, ('foo', 'gcc')) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/action/test_buildlist.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/action/test_buildlist.py (refactored) -@@ -38,11 +38,11 @@ - lines = [line.rstrip() for line in f.readlines()] - f.close() - for line in lines: -- self.assert_(len(l) > 0, -+ self.assertTrue(len(l) > 0, - "ran out of expected lines! (expected '{0}', got '{1}')" - .format(l, lines)) - self.assertEqual(line, l.pop(0)) -- self.assert_(len(l) == 0, -+ self.assertTrue(len(l) == 0, - "not enough lines in file! (expected '{0}'," - " got '{1}'".format(l, lines)) - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/action/test_generate_browsersearch.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/action/test_generate_browsersearch.py (refactored) -@@ -3,7 +3,7 @@ - # Any copyright is dedicated to the Public Domain. - # http://creativecommons.org/publicdomain/zero/1.0/ - --from __future__ import unicode_literals -+ - - import json - import os -@@ -43,8 +43,8 @@ - - def test_valid_unicode(self): - o = self._test_one('valid-zh-CN') -- self.assertEquals(o['default'], '百度') -- self.assertEquals(o['engines'], ['百度', 'Google']) -+ self.assertEqual(o['default'], '百度') -+ self.assertEqual(o['engines'], ['百度', 'Google']) - - def test_invalid_unicode(self): - with self.assertRaises(UnicodeDecodeError): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/action/test_package_fennec_apk.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/action/test_package_fennec_apk.py (refactored) -@@ -3,7 +3,7 @@ - # Any copyright is dedicated to the Public Domain. - # http://creativecommons.org/publicdomain/zero/1.0/ - --from __future__ import unicode_literals -+ - - import os - import unittest -@@ -41,14 +41,14 @@ - root_files=[data('root_file.txt')]) - - # omni.ja ends up in assets/omni.ja. -- self.assertEquals(jarrer['assets/omni.ja'].open().read().strip(), 'omni.ja') -+ self.assertEqual(jarrer['assets/omni.ja'].open().read().strip(), 'omni.ja') - - # Everything else is in place. - for name in ('classes.dex', - 'assets/asset.txt', - 'lib/lib.txt', - 'root_file.txt'): -- self.assertEquals(jarrer[name].open().read().strip(), name) -+ self.assertEqual(jarrer[name].open().read().strip(), name) - - def test_inputs(self): - # Language repacks take updated resources from an ap_ and pack them -@@ -57,8 +57,8 @@ - # overrides the first. - jarrer = package(inputs=[data('input2.apk'), data('input1.ap_')]) - -- files1 = JarReader(data('input1.ap_')).entries.keys() -- files2 = JarReader(data('input2.apk')).entries.keys() -+ files1 = list(JarReader(data('input1.ap_')).entries.keys()) -+ files2 = list(JarReader(data('input2.apk')).entries.keys()) - for name in files2: - self.assertTrue(name in files1 or - jarrer[name].open().read().startswith('input2/')) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/common.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/common.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import unittest ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_android_eclipse.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_android_eclipse.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import json - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_build.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_build.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals, print_function -+ - - import buildconfig - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_configenvironment.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_configenvironment.py (refactored) -@@ -3,7 +3,7 @@ - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - - import os, posixpath --from StringIO import StringIO -+from io import StringIO - import unittest - from mozunit import main, MockedOpen - -@@ -29,7 +29,7 @@ - self.substs = ReadOnlyDict(d) - - d = dict(self.substs_unicode) -- d[u'top_srcdir'] = top_srcdir.decode('utf-8') -+ d['top_srcdir'] = top_srcdir.decode('utf-8') - self.substs_unicode = ReadOnlyDict(d) - - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_recursivemake.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_recursivemake.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -- --import cPickle as pickle -+ -+ -+import pickle as pickle - import json - import os - import unittest -@@ -331,7 +331,7 @@ - ], - } - -- for var, val in expected.items(): -+ for var, val in list(expected.items()): - # print("test_variable_passthru[%s]" % (var)) - found = [str for str in lines if str.startswith(var)] - self.assertEqual(found, val) -@@ -370,7 +370,7 @@ - ], - } - -- for var, val in expected.items(): -+ for var, val in list(expected.items()): - found = [str for str in lines if str.startswith(var)] - self.assertEqual(found, val) - -@@ -544,7 +544,7 @@ - - # This is not the most robust test in the world, but it gets the job - # done. -- entries = [e for e in m._dests.keys() if '**' in e] -+ entries = [e for e in list(m._dests.keys()) if '**' in e] - self.assertEqual(len(entries), 1) - self.assertIn('support/**', entries[0]) - -@@ -562,7 +562,7 @@ - set(['child/test_sub.js', - 'child/data/**', - 'child/another-file.sjs'])) -- for key in test_installs.keys(): -+ for key in list(test_installs.keys()): - self.assertIn(key, test_installs) - - test_files_manifest = mozpath.join(env.topobjdir, -@@ -576,7 +576,7 @@ - # Then, synthesize one from the test-installs.pkl file. This should - # allow us to re-create a subset of the above. - synthesized_manifest = InstallManifest() -- for item, installs in test_installs.items(): -+ for item, installs in list(test_installs.items()): - for install_info in installs: - if len(install_info) == 3: - synthesized_manifest.add_pattern_symlink(*install_info) -@@ -584,7 +584,7 @@ - synthesized_manifest.add_symlink(*install_info) - - self.assertEqual(len(synthesized_manifest), 3) -- for item, info in synthesized_manifest._dests.items(): -+ for item, info in list(synthesized_manifest._dests.items()): - self.assertIn(item, m) - self.assertEqual(info, m._dests[item]) - -@@ -758,7 +758,7 @@ - expected[mozpath.join(env.topobjdir, 'final-target')] = [ - 'FINAL_TARGET = $(DEPTH)/random-final-target' - ] -- for key, expected_rules in expected.iteritems(): -+ for key, expected_rules in expected.items(): - backend_path = mozpath.join(key, 'backend.mk') - lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] - found = [str for str in lines if ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_visualstudio.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/backend/test_visualstudio.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - from xml.dom.minidom import parse - import os ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/common.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/common.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import copy - import errno -@@ -16,7 +16,7 @@ - from mozbuild.util import ReadOnlyNamespace - from mozpack import path as mozpath - --from StringIO import StringIO -+from io import StringIO - from which import WhichError - - from buildconfig import ( -@@ -78,10 +78,10 @@ - self._search_path = environ.get('PATH', '').split(os.pathsep) - - self._subprocess_paths = { -- mozpath.abspath(k): v for k, v in paths.iteritems() if v -+ mozpath.abspath(k): v for k, v in paths.items() if v - } - -- paths = paths.keys() -+ paths = list(paths.keys()) - - environ = dict(environ) - if 'CONFIG_SHELL' not in environ: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/lint.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/lint.py (refactored) -@@ -2,11 +2,11 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - import unittest --from StringIO import StringIO -+from io import StringIO - from mozunit import main - from buildconfig import ( - topobjdir, -@@ -42,9 +42,7 @@ - return type.__new__(mcs, name, bases, attrs) - - --class Lint(unittest.TestCase): -- __metaclass__ = LintMeta -- -+class Lint(unittest.TestCase, metaclass=LintMeta): - def setUp(self): - self._curdir = os.getcwd() - os.chdir(topobjdir) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_checks_configure.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_checks_configure.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -- --from StringIO import StringIO -+ -+ -+from io import StringIO - import os - import sys - import textwrap -@@ -447,7 +447,7 @@ - checking for a... %s - ''' % self.OTHER_A)) - -- dirs = map(mozpath.dirname, (self.OTHER_A, self.KNOWN_A)) -+ dirs = list(map(mozpath.dirname, (self.OTHER_A, self.KNOWN_A))) - config, out, status = self.get_result(textwrap.dedent('''\ - check_prog("A", ("known-a",), paths=["%s"]) - ''' % os.pathsep.join(dirs))) -@@ -457,7 +457,7 @@ - checking for a... %s - ''' % self.OTHER_A)) - -- dirs = map(mozpath.dirname, (self.KNOWN_A, self.KNOWN_B)) -+ dirs = list(map(mozpath.dirname, (self.KNOWN_A, self.KNOWN_B))) - config, out, status = self.get_result(textwrap.dedent('''\ - check_prog("A", ("known-a",), paths=["%s", "%s"]) - ''' % (os.pathsep.join(dirs), self.OTHER_A))) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_compile_checks.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_compile_checks.py (refactored) -@@ -2,14 +2,14 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - import textwrap - import unittest - import mozpack.path as mozpath - --from StringIO import StringIO -+from io import StringIO - - from buildconfig import topsrcdir - from common import ConfigureTestSandbox ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_configure.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_configure.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -- --from StringIO import StringIO -+ -+ -+from io import StringIO - import os - import sys - import textwrap -@@ -43,7 +43,7 @@ - - if '--help' in options: - return out.getvalue(), config -- self.assertEquals('', out.getvalue()) -+ self.assertEqual('', out.getvalue()) - return config - - def moz_configure(self, source): -@@ -55,7 +55,7 @@ - def test_defaults(self): - config = self.get_config() - self.maxDiff = None -- self.assertEquals({ -+ self.assertEqual({ - 'CHOICES': NegativeOptionValue(), - 'DEFAULTED': PositiveOptionValue(('not-simple',)), - 'IS_GCC': NegativeOptionValue(), -@@ -71,9 +71,9 @@ - def test_help(self): - help, config = self.get_config(['--help'], prog='configure') - -- self.assertEquals({}, config) -+ self.assertEqual({}, config) - self.maxDiff = None -- self.assertEquals( -+ self.assertEqual( - 'Usage: configure [options]\n' - '\n' - 'Options: [defaults in brackets after descriptions]\n' -@@ -109,7 +109,7 @@ - ): - self.assertNotIn('ENABLED_SIMPLE', config) - self.assertIn('SIMPLE', config) -- self.assertEquals(NegativeOptionValue(), config['SIMPLE']) -+ self.assertEqual(NegativeOptionValue(), config['SIMPLE']) - - for config in ( - self.get_config(['--enable-simple']), -@@ -117,7 +117,7 @@ - ): - self.assertIn('ENABLED_SIMPLE', config) - self.assertIn('SIMPLE', config) -- self.assertEquals(PositiveOptionValue(), config['SIMPLE']) -+ self.assertEqual(PositiveOptionValue(), config['SIMPLE']) - self.assertIs(config['SIMPLE'], config['ENABLED_SIMPLE']) - - # --enable-simple doesn't take values. -@@ -135,7 +135,7 @@ - env={'MOZ_WITH_ENV': '1'}), - ): - self.assertIn('WITH_ENV', config) -- self.assertEquals(NegativeOptionValue(), config['WITH_ENV']) -+ self.assertEqual(NegativeOptionValue(), config['WITH_ENV']) - - for config in ( - self.get_config(['--enable-with-env']), -@@ -145,7 +145,7 @@ - env={'MOZ_WITH_ENV': ''}), - ): - self.assertIn('WITH_ENV', config) -- self.assertEquals(PositiveOptionValue(), config['WITH_ENV']) -+ self.assertEqual(PositiveOptionValue(), config['WITH_ENV']) - - with self.assertRaises(InvalidOptionError): - self.get_config(['--enable-with-env=value']) -@@ -160,23 +160,23 @@ - self.get_config(['--enable-values', '--disable-values']), - ): - self.assertIn(name, config) -- self.assertEquals(NegativeOptionValue(), config[name]) -+ self.assertEqual(NegativeOptionValue(), config[name]) - - for config in ( - self.get_config(['--enable-values']), - self.get_config(['--disable-values', '--enable-values']), - ): - self.assertIn(name, config) -- self.assertEquals(PositiveOptionValue(), config[name]) -+ self.assertEqual(PositiveOptionValue(), config[name]) - - config = self.get_config(['--enable-values=foo']) - self.assertIn(name, config) -- self.assertEquals(PositiveOptionValue(('foo',)), config[name]) -+ self.assertEqual(PositiveOptionValue(('foo',)), config[name]) - - config = self.get_config(['--enable-values=foo,bar']) - self.assertIn(name, config) - self.assertTrue(config[name]) -- self.assertEquals(PositiveOptionValue(('foo', 'bar')), config[name]) -+ self.assertEqual(PositiveOptionValue(('foo', 'bar')), config[name]) - - def test_values2(self): - self.test_values('VALUES2') -@@ -187,12 +187,12 @@ - def test_returned_default(self): - config = self.get_config(['--enable-simple']) - self.assertIn('DEFAULTED', config) -- self.assertEquals( -+ self.assertEqual( - PositiveOptionValue(('simple',)), config['DEFAULTED']) - - config = self.get_config(['--disable-simple']) - self.assertIn('DEFAULTED', config) -- self.assertEquals( -+ self.assertEqual( - PositiveOptionValue(('not-simple',)), config['DEFAULTED']) - - def test_returned_choices(self): -@@ -200,13 +200,13 @@ - config = self.get_config( - ['--enable-values=alpha', '--returned-choices=%s' % val]) - self.assertIn('CHOICES', config) -- self.assertEquals(PositiveOptionValue((val,)), config['CHOICES']) -+ self.assertEqual(PositiveOptionValue((val,)), config['CHOICES']) - - for val in ('0', '1', '2'): - config = self.get_config( - ['--enable-values=numeric', '--returned-choices=%s' % val]) - self.assertIn('CHOICES', config) -- self.assertEquals(PositiveOptionValue((val,)), config['CHOICES']) -+ self.assertEqual(PositiveOptionValue((val,)), config['CHOICES']) - - with self.assertRaises(InvalidOptionError): - self.get_config(['--enable-values=numeric', -@@ -218,12 +218,12 @@ - def test_included(self): - config = self.get_config(env={'CC': 'gcc'}) - self.assertIn('IS_GCC', config) -- self.assertEquals(config['IS_GCC'], True) -+ self.assertEqual(config['IS_GCC'], True) - - config = self.get_config( - ['--enable-include=extra.configure', '--extra']) - self.assertIn('EXTRA', config) -- self.assertEquals(PositiveOptionValue(), config['EXTRA']) -+ self.assertEqual(PositiveOptionValue(), config['EXTRA']) - - with self.assertRaises(InvalidOptionError): - self.get_config(['--extra']) -@@ -231,7 +231,7 @@ - def test_template(self): - config = self.get_config(env={'CC': 'gcc'}) - self.assertIn('CFLAGS', config) -- self.assertEquals(config['CFLAGS'], ['-Werror=foobar']) -+ self.assertEqual(config['CFLAGS'], ['-Werror=foobar']) - - config = self.get_config(env={'CC': 'clang'}) - self.assertNotIn('CFLAGS', config) -@@ -288,7 +288,7 @@ - sandbox - ) - -- import __builtin__ -+ import builtins - self.assertIs(sandbox['foo'](), __builtin__) - - exec_(textwrap.dedent(''' -@@ -300,7 +300,7 @@ - ) - - f = sandbox['foo']() -- self.assertEquals(f.name, os.devnull) -+ self.assertEqual(f.name, os.devnull) - f.close() - - # This unlocks the sandbox -@@ -336,8 +336,8 @@ - self.assertIs(sandbox['foo'](), sandbox) - - # Nothing leaked from the function being executed -- self.assertEquals(sandbox.keys(), ['__builtins__', 'foo']) -- self.assertEquals(sandbox['__builtins__'], ConfigureSandbox.BUILTINS) -+ self.assertEqual(list(sandbox.keys()), ['__builtins__', 'foo']) -+ self.assertEqual(sandbox['__builtins__'], ConfigureSandbox.BUILTINS) - - exec_(textwrap.dedent(''' - @template -@@ -354,7 +354,7 @@ - with self.assertRaises(NameError) as e: - sandbox._depends[sandbox['bar']].result - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "global name 'sys' is not defined") - - def test_apply_imports(self): -@@ -380,28 +380,28 @@ - sandbox - ) - -- self.assertEquals(len(imports), 1) -+ self.assertEqual(len(imports), 1) - - def test_os_path(self): - config = self.get_config(['--with-imports=%s' % __file__]) - self.assertIn('HAS_ABSPATH', config) -- self.assertEquals(config['HAS_ABSPATH'], True) -+ self.assertEqual(config['HAS_ABSPATH'], True) - self.assertIn('HAS_GETATIME', config) -- self.assertEquals(config['HAS_GETATIME'], True) -+ self.assertEqual(config['HAS_GETATIME'], True) - self.assertIn('HAS_GETATIME2', config) -- self.assertEquals(config['HAS_GETATIME2'], False) -+ self.assertEqual(config['HAS_GETATIME2'], False) - - def test_template_call(self): - config = self.get_config(env={'CC': 'gcc'}) - self.assertIn('TEMPLATE_VALUE', config) -- self.assertEquals(config['TEMPLATE_VALUE'], 42) -+ self.assertEqual(config['TEMPLATE_VALUE'], 42) - self.assertIn('TEMPLATE_VALUE_2', config) -- self.assertEquals(config['TEMPLATE_VALUE_2'], 21) -+ self.assertEqual(config['TEMPLATE_VALUE_2'], 21) - - def test_template_imports(self): - config = self.get_config(['--enable-imports-in-template']) - self.assertIn('PLATFORM', config) -- self.assertEquals(config['PLATFORM'], sys.platform) -+ self.assertEqual(config['PLATFORM'], sys.platform) - - def test_decorators(self): - config = {} -@@ -419,27 +419,27 @@ - return self.get_config(*args, configure='set_config.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--set-foo']) - self.assertIn('FOO', config) -- self.assertEquals(config['FOO'], True) -+ self.assertEqual(config['FOO'], True) - - config = get_config(['--set-bar']) - self.assertNotIn('FOO', config) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], True) -+ self.assertEqual(config['BAR'], True) - - config = get_config(['--set-value=qux']) - self.assertIn('VALUE', config) -- self.assertEquals(config['VALUE'], 'qux') -+ self.assertEqual(config['VALUE'], 'qux') - - config = get_config(['--set-name=hoge']) - self.assertIn('hoge', config) -- self.assertEquals(config['hoge'], True) -+ self.assertEqual(config['hoge'], True) - - config = get_config([]) -- self.assertEquals(config, {'BAR': False}) -+ self.assertEqual(config, {'BAR': False}) - - with self.assertRaises(ConfigureError): - # Both --set-foo and --set-name=FOO are going to try to -@@ -454,11 +454,11 @@ - set_config('QUX', 'qux', when='--with-qux') - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - }) - config = self.get_config(['--with-qux']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - 'QUX': 'qux', - }) -@@ -468,27 +468,27 @@ - return self.get_config(*args, configure='set_define.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {'DEFINES': {}}) -+ self.assertEqual(config, {'DEFINES': {}}) - - config = get_config(['--set-foo']) - self.assertIn('FOO', config['DEFINES']) -- self.assertEquals(config['DEFINES']['FOO'], True) -+ self.assertEqual(config['DEFINES']['FOO'], True) - - config = get_config(['--set-bar']) - self.assertNotIn('FOO', config['DEFINES']) - self.assertIn('BAR', config['DEFINES']) -- self.assertEquals(config['DEFINES']['BAR'], True) -+ self.assertEqual(config['DEFINES']['BAR'], True) - - config = get_config(['--set-value=qux']) - self.assertIn('VALUE', config['DEFINES']) -- self.assertEquals(config['DEFINES']['VALUE'], 'qux') -+ self.assertEqual(config['DEFINES']['VALUE'], 'qux') - - config = get_config(['--set-name=hoge']) - self.assertIn('hoge', config['DEFINES']) -- self.assertEquals(config['DEFINES']['hoge'], True) -+ self.assertEqual(config['DEFINES']['hoge'], True) - - config = get_config([]) -- self.assertEquals(config['DEFINES'], {'BAR': False}) -+ self.assertEqual(config['DEFINES'], {'BAR': False}) - - with self.assertRaises(ConfigureError): - # Both --set-foo and --set-name=FOO are going to try to -@@ -503,11 +503,11 @@ - set_define('QUX', 'qux', when='--with-qux') - '''): - config = self.get_config() -- self.assertEquals(config['DEFINES'], { -+ self.assertEqual(config['DEFINES'], { - 'FOO': 'foo', - }) - config = self.get_config(['--with-qux']) -- self.assertEquals(config['DEFINES'], { -+ self.assertEqual(config['DEFINES'], { - 'FOO': 'foo', - 'QUX': 'qux', - }) -@@ -518,19 +518,19 @@ - *args, configure='imply_option/simple.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--enable-foo']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], PositiveOptionValue()) -+ self.assertEqual(config['BAR'], PositiveOptionValue()) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo', '--disable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--enable-bar' implied by '--enable-foo' conflicts with " - "'--disable-bar' from the command-line") -@@ -541,31 +541,31 @@ - *args, configure='imply_option/negative.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--enable-foo']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], NegativeOptionValue()) -+ self.assertEqual(config['BAR'], NegativeOptionValue()) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo', '--enable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--disable-bar' implied by '--enable-foo' conflicts with " - "'--enable-bar' from the command-line") - - config = get_config(['--disable-hoge']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], NegativeOptionValue()) -+ self.assertEqual(config['BAR'], NegativeOptionValue()) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--disable-hoge', '--enable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--disable-bar' implied by '--disable-hoge' conflicts with " - "'--enable-bar' from the command-line") -@@ -576,23 +576,23 @@ - *args, configure='imply_option/values.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--enable-foo=a']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], PositiveOptionValue(('a',))) -+ self.assertEqual(config['BAR'], PositiveOptionValue(('a',))) - - config = get_config(['--enable-foo=a,b']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], PositiveOptionValue(('a','b'))) -+ self.assertEqual(config['BAR'], PositiveOptionValue(('a','b'))) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo=a,b', '--disable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--enable-bar=a,b' implied by '--enable-foo' conflicts with " - "'--disable-bar' from the command-line") -@@ -603,15 +603,15 @@ - *args, configure='imply_option/infer.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo', '--disable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--enable-bar' implied by '--enable-foo' conflicts with " - "'--disable-bar' from the command-line") -@@ -619,7 +619,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config([], configure='imply_option/infer_ko.configure') - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "Cannot infer what implies '--enable-bar'. Please add a `reason` " - "to the `imply_option` call.") -@@ -630,25 +630,25 @@ - *args, configure='imply_option/imm.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config_path = mozpath.abspath( - mozpath.join(test_data_path, 'imply_option', 'imm.configure')) - -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--enable-foo' implied by 'imply_option at %s:7' conflicts with " - "'--disable-foo' from the command-line" % config_path): - get_config(['--disable-foo']) - -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--enable-bar=foo,bar' implied by 'imply_option at %s:16' conflicts" - " with '--enable-bar=a,b,c' from the command-line" % config_path): - get_config(['--enable-bar=a,b,c']) - -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--enable-baz=BAZ' implied by 'imply_option at %s:25' conflicts" - " with '--enable-baz=QUUX' from the command-line" % config_path): - get_config(['--enable-baz=QUUX']) -@@ -660,7 +660,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "`--with-foo`, emitted from `%s` line 2, is unknown." - % mozpath.join(test_data_path, 'moz.configure')) - -@@ -675,7 +675,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Unexpected type: 'int'") - - def test_imply_option_when(self): -@@ -686,12 +686,12 @@ - set_config('QUX', depends('--with-qux')(lambda x: x)) - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'QUX': NegativeOptionValue(), - }) - - config = self.get_config(['--with-foo']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'QUX': PositiveOptionValue(), - }) - -@@ -700,7 +700,7 @@ - with self.moz_configure('option("--with-foo", help="foo")'): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `--with-foo` is not handled ; reference it with a @depends' - ) -@@ -712,7 +712,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `--with-foo` already defined' - ) -@@ -724,7 +724,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `MOZ_FOO` already defined' - ) -@@ -736,7 +736,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `MOZ_FOO` already defined' - ) -@@ -748,7 +748,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `MOZ_FOO` already defined' - ) -@@ -760,7 +760,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `--with-foo` already defined' - ) -@@ -776,18 +776,18 @@ - set_config('QUX', depends('--with-qux', when='--with-foo')(lambda x: x)) - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': NegativeOptionValue(), - }) - - config = self.get_config(['--with-foo']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': PositiveOptionValue(), - 'QUX': NegativeOptionValue(), - }) - - config = self.get_config(['--with-foo', '--with-qux']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': PositiveOptionValue(), - 'QUX': PositiveOptionValue(), - }) -@@ -795,7 +795,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--with-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - '--with-bar is not available in this configuration' - ) -@@ -803,7 +803,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--with-qux']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - '--with-qux is not available in this configuration' - ) -@@ -811,18 +811,18 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['QUX=1']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'QUX is not available in this configuration' - ) - - config = self.get_config(env={'QUX': '1'}) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': NegativeOptionValue(), - }) - - help, config = self.get_config(['--help']) -- self.assertEquals(help, textwrap.dedent('''\ -+ self.assertEqual(help, textwrap.dedent('''\ - Usage: configure [options] - - Options: [defaults in brackets after descriptions] -@@ -833,7 +833,7 @@ - ''')) - - help, config = self.get_config(['--help', '--with-foo']) -- self.assertEquals(help, textwrap.dedent('''\ -+ self.assertEqual(help, textwrap.dedent('''\ - Usage: configure [options] - - Options: [defaults in brackets after descriptions] -@@ -851,7 +851,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@depends function needs the same `when` as ' - 'options it depends on') - -@@ -868,7 +868,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@depends function needs the same `when` as ' - 'options it depends on') - -@@ -877,7 +877,7 @@ - with self.moz_configure('include("../foo.configure")'): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Cannot include `%s` because it is not in a subdirectory of `%s`' - % (mozpath.normpath(mozpath.join(test_data_path, '..', -@@ -892,7 +892,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Cannot include `%s` because it was included already.' - % mozpath.normpath(mozpath.join(test_data_path, -@@ -905,7 +905,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, "Unexpected type: 'int'") -+ self.assertEqual(e.exception.message, "Unexpected type: 'int'") - - def test_include_when(self): - with MockedOpen({ -@@ -948,26 +948,26 @@ - '''), - }): - config = self.get_config() -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = self.get_config(['--with-foo']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = self.get_config(['--with-bar']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'BAR': 'bar', - }) - - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--with-qux']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - '--with-qux is not available in this configuration' - ) - - config = self.get_config(['--with-foo', '--with-foo-really']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - 'FOO2': True, - }) -@@ -979,7 +979,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, 'Cannot reassign builtins') -+ self.assertEqual(e.exception.message, 'Cannot reassign builtins') - - with self.assertRaises(KeyError) as e: - with self.moz_configure(''' -@@ -987,7 +987,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot assign `foo` because it is neither a ' - '@depends nor a @template') - -@@ -1000,7 +1000,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "@depends needs at least one argument") - - with self.assertRaises(ConfigureError) as e: -@@ -1011,7 +1011,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'--with-foo' is not a known option. Maybe it's " - "declared too late?") - -@@ -1023,7 +1023,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Option must not contain an '='") - - with self.assertRaises(TypeError) as e: -@@ -1034,7 +1034,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Cannot use object of type 'int' as argument " - "to @depends") - -@@ -1046,7 +1046,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Cannot decorate generator functions with @depends") - - with self.assertRaises(TypeError) as e: -@@ -1055,7 +1055,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Unexpected type: 'int'") - - with self.assertRaises(ConfigureError) as e: -@@ -1069,7 +1069,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `foo` function may not be called") - - with self.assertRaises(TypeError) as e: -@@ -1080,7 +1080,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "depends_impl() got an unexpected keyword argument 'foo'") - - def test_depends_when(self): -@@ -1105,12 +1105,12 @@ - set_config('QUX', qux) - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - }) - - config = self.get_config(['--with-qux']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - 'QUX': 'qux', - }) -@@ -1125,7 +1125,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@imports must appear after @template') - - with self.assertRaises(ConfigureError) as e: -@@ -1138,7 +1138,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@imports must appear after @depends') - - for import_ in ( -@@ -1155,7 +1155,7 @@ - ''' % import_): - self.get_config() - -- self.assertEquals(e.exception.message, "Unexpected type: 'int'") -+ self.assertEqual(e.exception.message, "Unexpected type: 'int'") - - with self.assertRaises(TypeError) as e: - with self.moz_configure(''' -@@ -1166,7 +1166,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, "Unexpected type: 'int'") -+ self.assertEqual(e.exception.message, "Unexpected type: 'int'") - - with self.assertRaises(ValueError) as e: - with self.moz_configure(''' -@@ -1176,7 +1176,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Invalid argument to @imports: 'os*'") - - def test_only_when(self): -@@ -1231,7 +1231,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--foo']) - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--foo is not available in this configuration') - - # Cannot depend on an option defined in a only_when block, because we -@@ -1242,7 +1242,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@depends function needs the same `when` as ' - 'options it depends on') - -@@ -1259,7 +1259,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--foo is not available in this configuration') - - # And similarly doesn't fail when the condition is true. ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_lint.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_lint.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals - --from StringIO import StringIO -+ -+from io import StringIO - import os - import textwrap - import unittest -@@ -62,7 +62,7 @@ - '''): - self.lint_test() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "`bar` depends on '--help' and `foo`. " - "`foo` must depend on '--help'") - -@@ -85,7 +85,7 @@ - '''): - self.lint_test() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "`bar` depends on '--help' and `foo`. " - "`foo` must depend on '--help'") - -@@ -111,7 +111,7 @@ - '''): - self.lint_test() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Missing @depends for `foo`: '--help'") - - # There is a default restricted `os` module when there is no explicit ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_moz_configure.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_moz_configure.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from mozunit import main - from mozpack import path as mozpath -@@ -23,10 +23,10 @@ - shell = mozpath.abspath('/bin/sh') - return result.replace('CONFIG_SHELL=%s ' % shell, '') - -- self.assertEquals('--enable-application=browser', -+ self.assertEqual('--enable-application=browser', - get_value_for(['--enable-application=browser'])) - -- self.assertEquals('--enable-application=browser ' -+ self.assertEqual('--enable-application=browser ' - 'MOZ_PROFILING=1', - get_value_for(['--enable-application=browser', - 'MOZ_PROFILING=1'])) -@@ -35,25 +35,25 @@ - environ={'MOZ_PROFILING': '1'}, - mozconfig='ac_add_options --enable-project=js') - -- self.assertEquals('--enable-project=js MOZ_PROFILING=1', -+ self.assertEqual('--enable-project=js MOZ_PROFILING=1', - value) - - # --disable-js-shell is the default, so it's filtered out. -- self.assertEquals('--enable-application=browser', -+ self.assertEqual('--enable-application=browser', - get_value_for(['--enable-application=browser', - '--disable-js-shell'])) - - # Normally, --without-foo would be filtered out because that's the - # default, but since it is a (fake) old-configure option, it always - # appears. -- self.assertEquals('--enable-application=browser --without-foo', -+ self.assertEqual('--enable-application=browser --without-foo', - get_value_for(['--enable-application=browser', - '--without-foo'])) -- self.assertEquals('--enable-application=browser --with-foo', -+ self.assertEqual('--enable-application=browser --with-foo', - get_value_for(['--enable-application=browser', - '--with-foo'])) - -- self.assertEquals("--enable-application=browser '--with-foo=foo bar'", -+ self.assertEqual("--enable-application=browser '--with-foo=foo bar'", - get_value_for(['--enable-application=browser', - '--with-foo=foo bar'])) - -@@ -65,7 +65,7 @@ - self.version = version - - def __call__(self, stdin, args): -- this.assertEquals(args, ('-version',)) -+ this.assertEqual(args, ('-version',)) - return 0, self.version, '' - - def check_nsis_version(version): -@@ -80,13 +80,13 @@ - with self.assertRaises(SystemExit) as e: - check_nsis_version('v3.0a2') - -- self.assertEquals(check_nsis_version('v3.0b1'), '3.0b1') -- self.assertEquals(check_nsis_version('v3.0b2'), '3.0b2') -- self.assertEquals(check_nsis_version('v3.0rc1'), '3.0rc1') -- self.assertEquals(check_nsis_version('v3.0'), '3.0') -- self.assertEquals(check_nsis_version('v3.0-2'), '3.0') -- self.assertEquals(check_nsis_version('v3.0.1'), '3.0') -- self.assertEquals(check_nsis_version('v3.1'), '3.1') -+ self.assertEqual(check_nsis_version('v3.0b1'), '3.0b1') -+ self.assertEqual(check_nsis_version('v3.0b2'), '3.0b2') -+ self.assertEqual(check_nsis_version('v3.0rc1'), '3.0rc1') -+ self.assertEqual(check_nsis_version('v3.0'), '3.0') -+ self.assertEqual(check_nsis_version('v3.0-2'), '3.0') -+ self.assertEqual(check_nsis_version('v3.0.1'), '3.0') -+ self.assertEqual(check_nsis_version('v3.1'), '3.1') - - - if __name__ == '__main__': ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_options.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_options.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import unittest - -@@ -27,139 +27,139 @@ - class TestOption(unittest.TestCase): - def test_option(self): - option = Option('--option') -- self.assertEquals(option.prefix, '') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, '') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertFalse(option.default) - - option = Option('--enable-option') -- self.assertEquals(option.prefix, 'enable') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'enable') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertFalse(option.default) - - option = Option('--disable-option') -- self.assertEquals(option.prefix, 'disable') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'disable') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertTrue(option.default) - - option = Option('--with-option') -- self.assertEquals(option.prefix, 'with') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'with') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertFalse(option.default) - - option = Option('--without-option') -- self.assertEquals(option.prefix, 'without') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'without') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertTrue(option.default) - - option = Option('--without-option-foo', env='MOZ_OPTION') -- self.assertEquals(option.env, 'MOZ_OPTION') -+ self.assertEqual(option.env, 'MOZ_OPTION') - - option = Option(env='MOZ_OPTION') -- self.assertEquals(option.prefix, '') -- self.assertEquals(option.name, None) -- self.assertEquals(option.env, 'MOZ_OPTION') -+ self.assertEqual(option.prefix, '') -+ self.assertEqual(option.name, None) -+ self.assertEqual(option.env, 'MOZ_OPTION') - self.assertFalse(option.default) - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=0, default=('a',)) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=1, default=()) -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'default must be a bool, a string or a tuple of strings') - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=1, default=True) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=1, default=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=2, default=()) -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'default must be a bool, a string or a tuple of strings') - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=2, default=True) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=2, default=('a',)) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='?', default=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='+', default=()) -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'default must be a bool, a string or a tuple of strings') - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='+', default=True) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - # --disable options with a nargs value that requires at least one - # argument need to be given a default. - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs=1) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs='+') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - # Test nargs inference from default value - option = Option('--with-foo', default=True) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option('--with-foo', default=False) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option('--with-foo', default='a') -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option('--with-foo', default=('a',)) -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option('--with-foo', default=('a', 'b')) -- self.assertEquals(option.nargs, '*') -+ self.assertEqual(option.nargs, '*') - - option = Option(env='FOO', default=True) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option(env='FOO', default=False) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option(env='FOO', default='a') -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option(env='FOO', default=('a',)) -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option(env='FOO', default=('a', 'b')) -- self.assertEquals(option.nargs, '*') -+ self.assertEqual(option.nargs, '*') - - def test_option_option(self): - for option in ( -@@ -169,70 +169,70 @@ - '--with-option', - '--without-option', - ): -- self.assertEquals(Option(option).option, option) -- self.assertEquals(Option(option, env='FOO').option, option) -+ self.assertEqual(Option(option).option, option) -+ self.assertEqual(Option(option, env='FOO').option, option) - - opt = Option(option, default=False) -- self.assertEquals(opt.option, -+ self.assertEqual(opt.option, - option.replace('-disable-', '-enable-') - .replace('-without-', '-with-')) - - opt = Option(option, default=True) -- self.assertEquals(opt.option, -+ self.assertEqual(opt.option, - option.replace('-enable-', '-disable-') - .replace('-with-', '-without-')) - -- self.assertEquals(Option(env='FOO').option, 'FOO') -+ self.assertEqual(Option(env='FOO').option, 'FOO') - - def test_option_choices(self): - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=3, choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Not enough `choices` for `nargs`') - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', nargs=1, choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'A `default` must be given along with `choices`') - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', nargs='+', choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'A `default` must be given along with `choices`') - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', default='c', choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `default` value must be one of 'a', 'b'") - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', default=('a', 'c',), choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `default` value must be one of 'a', 'b'") - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', default=('c',), choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `default` value must be one of 'a', 'b'") - - option = Option('--with-option', nargs='+', choices=('a', 'b')) - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=c') -- self.assertEquals(e.exception.message, "'c' is not one of 'a', 'b'") -+ self.assertEqual(e.exception.message, "'c' is not one of 'a', 'b'") - - value = option.get_value('--with-option=b,a') - self.assertTrue(value) -- self.assertEquals(PositiveOptionValue(('b', 'a')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'a')), value) - - option = Option('--without-option', nargs='*', default='a', - choices=('a', 'b')) - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=c') -- self.assertEquals(e.exception.message, "'c' is not one of 'a', 'b'") -+ self.assertEqual(e.exception.message, "'c' is not one of 'a', 'b'") - - value = option.get_value('--with-option=b,a') - self.assertTrue(value) -- self.assertEquals(PositiveOptionValue(('b', 'a')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'a')), value) - - # Test nargs inference from choices - option = Option('--with-option', choices=('a', 'b')) -@@ -243,71 +243,71 @@ - choices=('a', 'b', 'c', 'd')) - - value = option.get_value('--with-option=+d') -- self.assertEquals(PositiveOptionValue(('b', 'c', 'd')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'c', 'd')), value) - - value = option.get_value('--with-option=-b') -- self.assertEquals(PositiveOptionValue(('c',)), value) -+ self.assertEqual(PositiveOptionValue(('c',)), value) - - value = option.get_value('--with-option=-b,+d') -- self.assertEquals(PositiveOptionValue(('c','d')), value) -+ self.assertEqual(PositiveOptionValue(('c','d')), value) - - # Adding something that is in the default is fine - value = option.get_value('--with-option=+b') -- self.assertEquals(PositiveOptionValue(('b', 'c')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'c')), value) - - # Removing something that is not in the default is fine, as long as it - # is one of the choices - value = option.get_value('--with-option=-a') -- self.assertEquals(PositiveOptionValue(('b', 'c')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'c')), value) - - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=-e') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'e' is not one of 'a', 'b', 'c', 'd'") - - # Other "not a choice" errors. - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=+e') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'e' is not one of 'a', 'b', 'c', 'd'") - - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=e') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'e' is not one of 'a', 'b', 'c', 'd'") - - def test_option_value_format(self): - val = PositiveOptionValue() -- self.assertEquals('--with-value', val.format('--with-value')) -- self.assertEquals('--with-value', val.format('--without-value')) -- self.assertEquals('--enable-value', val.format('--enable-value')) -- self.assertEquals('--enable-value', val.format('--disable-value')) -- self.assertEquals('--value', val.format('--value')) -- self.assertEquals('VALUE=1', val.format('VALUE')) -+ self.assertEqual('--with-value', val.format('--with-value')) -+ self.assertEqual('--with-value', val.format('--without-value')) -+ self.assertEqual('--enable-value', val.format('--enable-value')) -+ self.assertEqual('--enable-value', val.format('--disable-value')) -+ self.assertEqual('--value', val.format('--value')) -+ self.assertEqual('VALUE=1', val.format('VALUE')) - - val = PositiveOptionValue(('a',)) -- self.assertEquals('--with-value=a', val.format('--with-value')) -- self.assertEquals('--with-value=a', val.format('--without-value')) -- self.assertEquals('--enable-value=a', val.format('--enable-value')) -- self.assertEquals('--enable-value=a', val.format('--disable-value')) -- self.assertEquals('--value=a', val.format('--value')) -- self.assertEquals('VALUE=a', val.format('VALUE')) -+ self.assertEqual('--with-value=a', val.format('--with-value')) -+ self.assertEqual('--with-value=a', val.format('--without-value')) -+ self.assertEqual('--enable-value=a', val.format('--enable-value')) -+ self.assertEqual('--enable-value=a', val.format('--disable-value')) -+ self.assertEqual('--value=a', val.format('--value')) -+ self.assertEqual('VALUE=a', val.format('VALUE')) - - val = PositiveOptionValue(('a', 'b')) -- self.assertEquals('--with-value=a,b', val.format('--with-value')) -- self.assertEquals('--with-value=a,b', val.format('--without-value')) -- self.assertEquals('--enable-value=a,b', val.format('--enable-value')) -- self.assertEquals('--enable-value=a,b', val.format('--disable-value')) -- self.assertEquals('--value=a,b', val.format('--value')) -- self.assertEquals('VALUE=a,b', val.format('VALUE')) -+ self.assertEqual('--with-value=a,b', val.format('--with-value')) -+ self.assertEqual('--with-value=a,b', val.format('--without-value')) -+ self.assertEqual('--enable-value=a,b', val.format('--enable-value')) -+ self.assertEqual('--enable-value=a,b', val.format('--disable-value')) -+ self.assertEqual('--value=a,b', val.format('--value')) -+ self.assertEqual('VALUE=a,b', val.format('VALUE')) - - val = NegativeOptionValue() -- self.assertEquals('--without-value', val.format('--with-value')) -- self.assertEquals('--without-value', val.format('--without-value')) -- self.assertEquals('--disable-value', val.format('--enable-value')) -- self.assertEquals('--disable-value', val.format('--disable-value')) -- self.assertEquals('', val.format('--value')) -- self.assertEquals('VALUE=', val.format('VALUE')) -+ self.assertEqual('--without-value', val.format('--with-value')) -+ self.assertEqual('--without-value', val.format('--without-value')) -+ self.assertEqual('--disable-value', val.format('--enable-value')) -+ self.assertEqual('--disable-value', val.format('--disable-value')) -+ self.assertEqual('', val.format('--value')) -+ self.assertEqual('VALUE=', val.format('VALUE')) - - def test_option_value(self, name='option', nargs=0, default=None): - disabled = name.startswith(('disable-', 'without-')) -@@ -324,28 +324,28 @@ - - if nargs in (0, '?', '*') or disabled: - value = option.get_value('--%s' % name, 'option') -- self.assertEquals(value, posOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, posOptionValue()) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s' % name) - if nargs == 1: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 1 value' % name) - elif nargs == '+': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 1 or more values' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 2 values' % name) - - value = option.get_value('') -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = option.get_value(None) -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - with self.assertRaises(AssertionError): - value = option.get_value('MOZ_OPTION=', 'environment') -@@ -358,47 +358,47 @@ - - if nargs in (1, '?', '*', '+') and not disabled: - value = option.get_value('--%s=' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('',))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('',))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=' % name) - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d values' % (name, nargs)) - - if nargs in (1, '?', '*', '+') and not disabled: - value = option.get_value('--%s=foo' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('foo',))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('foo',))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=foo' % name) - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d values' % (name, nargs)) - - if nargs in (2, '*', '+') and not disabled: - value = option.get_value('--%s=foo,bar' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('foo', 'bar'))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('foo', 'bar'))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=foo,bar' % name, 'option') - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - elif nargs == '?': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 0 or 1 values' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d value%s' - % (name, nargs, 's' if nargs != 1 else '')) - -@@ -406,59 +406,59 @@ - default=default) - if nargs in (0, '?', '*') or disabled: - value = option.get_value('--%s' % name, 'option') -- self.assertEquals(value, posOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, posOptionValue()) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s' % name) - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - elif nargs == '+': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 1 or more values' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d value%s' - % (name, nargs, 's' if nargs != 1 else '')) - - value = option.get_value('') -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = option.get_value(None) -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = option.get_value('MOZ_OPTION=', 'environment') -- self.assertEquals(value, NegativeOptionValue()) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, NegativeOptionValue()) -+ self.assertEqual(value.origin, 'environment') - - if nargs in (0, '?', '*'): - value = option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, PositiveOptionValue()) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue()) -+ self.assertEqual(value.origin, 'environment') - elif nargs in (1, '+'): - value = option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, PositiveOptionValue(('1',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('1',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(e.exception.message, 'MOZ_OPTION takes 2 values') -+ self.assertEqual(e.exception.message, 'MOZ_OPTION takes 2 values') - - if nargs in (1, '?', '*', '+') and not disabled: - value = option.get_value('--%s=' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('',))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('',))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=' % name, 'option') - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d values' % (name, nargs)) - - with self.assertRaises(AssertionError): -@@ -466,26 +466,26 @@ - - if nargs in (1, '?', '*', '+'): - value = option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d values' % nargs) - - if nargs in (2, '*', '+'): - value = option.get_value('MOZ_OPTION=foo,bar', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo', 'bar'))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo', 'bar'))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('MOZ_OPTION=foo,bar', 'environment') - if nargs == '?': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes 0 or 1 values') - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d value%s' - % (nargs, 's' if nargs != 1 else '')) - -@@ -497,26 +497,26 @@ - env_option.get_value('--%s' % name) - - value = env_option.get_value('') -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = env_option.get_value('MOZ_OPTION=', 'environment') -- self.assertEquals(value, negOptionValue()) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, negOptionValue()) -+ self.assertEqual(value.origin, 'environment') - - if nargs in (0, '?', '*'): - value = env_option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, posOptionValue()) -+ self.assertEqual(value, posOptionValue()) - self.assertTrue(value) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value.origin, 'environment') - elif nargs in (1, '+'): - value = env_option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, PositiveOptionValue(('1',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('1',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - env_option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(e.exception.message, 'MOZ_OPTION takes 2 values') -+ self.assertEqual(e.exception.message, 'MOZ_OPTION takes 2 values') - - with self.assertRaises(AssertionError) as e: - env_option.get_value('--%s' % name) -@@ -526,26 +526,26 @@ - - if nargs in (1, '?', '*', '+'): - value = env_option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - env_option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d values' % nargs) - - if nargs in (2, '*', '+'): - value = env_option.get_value('MOZ_OPTION=foo,bar', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo', 'bar'))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo', 'bar'))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - env_option.get_value('MOZ_OPTION=foo,bar', 'environment') - if nargs == '?': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes 0 or 1 values') - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d value%s' - % (nargs, 's' if nargs != 1 else '')) - -@@ -557,28 +557,28 @@ - default=default) - - value = option.get_value('--%s-option' % disable, 'option') -- self.assertEquals(value, NegativeOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, NegativeOptionValue()) -+ self.assertEqual(value.origin, 'option') - - option = self.test_option_value('%s-option' % disable, nargs=nargs, - default=default) - - if nargs in (0, '?', '*'): - value = option.get_value('--%s-option' % enable, 'option') -- self.assertEquals(value, PositiveOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue()) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s-option' % enable, 'option') - if nargs == 1: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s-option takes 1 value' % enable) - elif nargs == '+': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s-option takes 1 or more values' - % enable) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s-option takes 2 values' % enable) - - def test_option_value_with(self): -@@ -587,12 +587,12 @@ - def test_option_value_invalid_nargs(self): - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='foo') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "nargs must be a positive integer, '?', '*' or '+'") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=-2) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "nargs must be a positive integer, '?', '*' or '+'") - - def test_option_value_nargs_1(self): -@@ -603,7 +603,7 @@ - # A default is required - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs=1) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - def test_option_value_nargs_2(self): -@@ -614,7 +614,7 @@ - # A default is required - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs=2) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - def test_option_value_nargs_0_or_1(self): -@@ -641,7 +641,7 @@ - # A default is required - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs='+') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - -@@ -649,109 +649,109 @@ - def test_basic(self): - helper = CommandLineHelper({}, ['cmd', '--foo', '--bar']) - -- self.assertEquals(['--foo', '--bar'], list(helper)) -+ self.assertEqual(['--foo', '--bar'], list(helper)) - - helper.add('--enable-qux') - -- self.assertEquals(['--foo', '--bar', '--enable-qux'], list(helper)) -+ self.assertEqual(['--foo', '--bar', '--enable-qux'], list(helper)) - - value, option = helper.handle(Option('--bar')) -- self.assertEquals(['--foo', '--enable-qux'], list(helper)) -- self.assertEquals(PositiveOptionValue(), value) -- self.assertEquals('--bar', option) -+ self.assertEqual(['--foo', '--enable-qux'], list(helper)) -+ self.assertEqual(PositiveOptionValue(), value) -+ self.assertEqual('--bar', option) - - value, option = helper.handle(Option('--baz')) -- self.assertEquals(['--foo', '--enable-qux'], list(helper)) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals(None, option) -+ self.assertEqual(['--foo', '--enable-qux'], list(helper)) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual(None, option) - - def test_precedence(self): - foo = Option('--with-foo', nargs='*') - helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b', - '--without-foo']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--without-foo', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--without-foo', option) - - helper = CommandLineHelper({}, ['cmd', '--without-foo', - '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - foo = Option('--with-foo', env='FOO', nargs='*') - helper = CommandLineHelper({'FOO': ''}, ['cmd', '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - helper = CommandLineHelper({'FOO': 'a,b'}, ['cmd', '--without-foo']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--without-foo', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--without-foo', option) - - helper = CommandLineHelper({'FOO': ''}, ['cmd', '--with-bar=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('environment', value.origin) -- self.assertEquals('FOO=', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('environment', value.origin) -+ self.assertEqual('FOO=', option) - - helper = CommandLineHelper({'FOO': 'a,b'}, ['cmd', '--without-bar']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('environment', value.origin) -- self.assertEquals('FOO=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('environment', value.origin) -+ self.assertEqual('FOO=a,b', option) - - helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b', 'FOO=']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('FOO=', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('FOO=', option) - - helper = CommandLineHelper({}, ['cmd', '--without-foo', 'FOO=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('FOO=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('FOO=a,b', option) - - helper = CommandLineHelper({}, ['cmd', 'FOO=', '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - helper = CommandLineHelper({}, ['cmd', 'FOO=a,b', '--without-foo']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--without-foo', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--without-foo', option) - - def test_extra_args(self): - foo = Option('--with-foo', env='FOO', nargs='*') - helper = CommandLineHelper({}, ['cmd']) - helper.add('FOO=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('FOO=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('FOO=a,b,c', option) - - helper = CommandLineHelper({}, ['cmd']) - helper.add('FOO=a,b,c', 'other-origin') - helper.add('--with-foo=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('--with-foo=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('--with-foo=a,b,c', option) - - # Adding conflicting options is not allowed. - helper = CommandLineHelper({}, ['cmd']) -@@ -771,9 +771,9 @@ - # But adding the same is allowed. - helper.add('FOO=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('FOO=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('FOO=a,b,c', option) - - # The same rule as above applies when using the option form vs. the - # variable form. But we can't detect it when .add is called. -@@ -799,9 +799,9 @@ - helper.add('FOO=a,b,c', 'other-origin') - helper.add('--with-foo=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('--with-foo=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('--with-foo=a,b,c', option) - - # Conflicts are also not allowed against what is in the - # environment/on the command line. -@@ -831,19 +831,19 @@ - foo = Option('--foo', - possible_origins=('command-line',)) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--foo', option) -+ self.assertEqual(PositiveOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--foo', option) - - bar = Option('--bar', - possible_origins=('mozconfig',)) -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--bar can not be set by command-line. Values are accepted from: mozconfig"): - helper.handle(bar) - - baz = Option(env='BAZ', - possible_origins=('implied',)) -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "BAZ=1 can not be set by environment. Values are accepted from: implied"): - helper.handle(baz) - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py (refactored) -@@ -2,12 +2,12 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import logging - import os - --from StringIO import StringIO -+from io import StringIO - - from mozunit import main - -@@ -291,9 +291,9 @@ - compiler = sandbox._value_for(sandbox[var]) - # Add var on both ends to make it clear which of the - # variables is failing the test when that happens. -- self.assertEquals((var, compiler), (var, result)) -+ self.assertEqual((var, compiler), (var, result)) - except SystemExit: -- self.assertEquals((var, result), -+ self.assertEqual((var, result), - (var, self.out.getvalue().strip())) - return - -@@ -471,7 +471,7 @@ - # We'll try gcc and clang, but since there is no gcc (gcc-x.y doesn't - # count), find clang. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('gcc', 'g++') - } - self.do_toolchain_test(paths, { -@@ -506,7 +506,7 @@ - # Even if there are gcc-x.y or clang-x.y compilers available, we - # don't try them. This could be considered something to improve. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('gcc', 'g++', 'clang', 'clang++') - } - self.do_toolchain_test(paths, { -@@ -687,7 +687,7 @@ - def test_not_gcc(self): - # We won't pick GCC if it's the only thing available. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('clang', 'clang++') - } - self.do_toolchain_test(paths, { -@@ -851,7 +851,7 @@ - def test_clang_cl(self): - # We'll pick clang-cl if msvc can't be found. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) != 'cl' - } - self.do_toolchain_test(paths, { -@@ -862,7 +862,7 @@ - def test_gcc(self): - # We'll pick GCC if msvc and clang-cl can't be found. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('cl', 'clang-cl') - } - self.do_toolchain_test(paths, { -@@ -881,7 +881,7 @@ - def test_clang(self): - # We'll pick clang if nothing else is found. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('cl', 'clang-cl', 'gcc') - } - self.do_toolchain_test(paths, { ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import copy - import re -@@ -10,7 +10,7 @@ - import unittest - - from fnmatch import fnmatch --from StringIO import StringIO -+from io import StringIO - from textwrap import dedent - - from mozunit import ( -@@ -43,7 +43,7 @@ - # Hack around it enough that the configure tests work properly. - context = self.context - def normalize_numbers(value): -- if isinstance(value, types.StringTypes): -+ if isinstance(value, (str,)): - if value[-1:] == 'L' and value[:-1].isdigit(): - value = int(value[:-1]) - return value -@@ -53,7 +53,7 @@ - return self.HAS_FEATURE.sub(r'\1\2', expr) - self.context = self.Context( - (normalize_has_feature(k), normalize_numbers(v)) -- for k, v in context.iteritems() -+ for k, v in context.items() - ) - try: - return Preprocessor.do_if(self, normalize_has_feature(expression), -@@ -95,7 +95,7 @@ - input.name = 'foo' - pp.do_include(input) - -- self.assertEquals(pp.out.getvalue(), '1 . 2 . c "D"') -+ self.assertEqual(pp.out.getvalue(), '1 . 2 . c "D"') - - def test_condition(self): - pp = CompilerPreprocessor({ -@@ -125,7 +125,7 @@ - input.name = 'foo' - pp.do_include(input) - -- self.assertEquals('IFDEF_A\nIF_A\nIF_B\nIF_NOT_C\n', pp.out.getvalue()) -+ self.assertEqual('IFDEF_A\nIF_A\nIF_B\nIF_NOT_C\n', pp.out.getvalue()) - - - class FakeCompiler(dict): -@@ -164,9 +164,9 @@ - ''' - def __init__(self, *definitions): - for definition in definitions: -- if all(not isinstance(d, dict) for d in definition.itervalues()): -+ if all(not isinstance(d, dict) for d in definition.values()): - definition = {None: definition} -- for key, value in definition.iteritems(): -+ for key, value in definition.items(): - self.setdefault(key, {}).update(value) - - def __call__(self, stdin, args): -@@ -178,14 +178,14 @@ - pp = CompilerPreprocessor(self[None]) - - def apply_defn(defn): -- for k, v in defn.iteritems(): -+ for k, v in defn.items(): - if v is False: - if k in pp.context: - del pp.context[k] - else: - pp.context[k] = v - -- for glob, defn in self.iteritems(): -+ for glob, defn in self.items(): - if glob and not glob.startswith('-') and fnmatch(file, glob): - apply_defn(defn) - -@@ -216,7 +216,7 @@ - 'A': '1', - 'B': '2', - }) -- self.assertEquals(compiler(None, ['-E', 'file']), -+ self.assertEqual(compiler(None, ['-E', 'file']), - (0, '1 2 C', '')) - - compiler = FakeCompiler({ -@@ -238,25 +238,25 @@ - 'B': '42', - }, - }) -- self.assertEquals(compiler(None, ['-E', 'file']), -+ self.assertEqual(compiler(None, ['-E', 'file']), - (0, '1 2 C', '')) -- self.assertEquals(compiler(None, ['-E', '-foo', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-foo', 'file']), - (0, '1 2 foo', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-bar', 'file']), - (0, '1 bar bar', '')) -- self.assertEquals(compiler(None, ['-E', '-qux', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-qux', 'file']), - (0, '1 B C', '')) -- self.assertEquals(compiler(None, ['-E', '-foo', '-bar', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-foo', '-bar', 'file']), - (0, '1 bar bar', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', '-foo', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-bar', '-foo', 'file']), - (0, '1 bar foo', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', '-qux', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-bar', '-qux', 'file']), - (0, '1 B bar', '')) -- self.assertEquals(compiler(None, ['-E', '-qux', '-bar', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-qux', '-bar', 'file']), - (0, '1 bar bar', '')) -- self.assertEquals(compiler(None, ['-E', 'file.c']), -+ self.assertEqual(compiler(None, ['-E', 'file.c']), - (0, '1 42 C', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', 'file.c']), -+ self.assertEqual(compiler(None, ['-E', '-bar', 'file.c']), - (0, '1 bar bar', '')) - - def test_multiple_definitions(self): -@@ -267,7 +267,7 @@ - 'C': 3, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 2, -@@ -282,7 +282,7 @@ - 'C': 3, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 4, -@@ -302,7 +302,7 @@ - }, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 4, -@@ -330,7 +330,7 @@ - }, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 2, -@@ -370,7 +370,7 @@ - def __add__(self, other): - assert isinstance(other, dict) - result = copy.deepcopy(self.__dict__) -- for k, v in other.iteritems(): -+ for k, v in other.items(): - if k == 'flags': - result.setdefault(k, []).extend(v) - else: -@@ -381,7 +381,7 @@ - class TestCompilerResult(unittest.TestCase): - def test_compiler_result(self): - result = CompilerResult() -- self.assertEquals(result.__dict__, { -+ self.assertEqual(result.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath(''), - 'version': '', -@@ -397,7 +397,7 @@ - language='C', - flags=['-std=gnu99'], - ) -- self.assertEquals(result.__dict__, { -+ self.assertEqual(result.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath('/usr/bin/gcc'), - 'version': '4.2.1', -@@ -407,7 +407,7 @@ - }) - - result2 = result + {'flags': ['-m32']} -- self.assertEquals(result2.__dict__, { -+ self.assertEqual(result2.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath('/usr/bin/gcc'), - 'version': '4.2.1', -@@ -416,14 +416,14 @@ - 'flags': ['-std=gnu99', '-m32'], - }) - # Original flags are untouched. -- self.assertEquals(result.flags, ['-std=gnu99']) -+ self.assertEqual(result.flags, ['-std=gnu99']) - - result3 = result + { - 'compiler': '/usr/bin/gcc-4.7', - 'version': '4.7.3', - 'flags': ['-m32'], - } -- self.assertEquals(result3.__dict__, { -+ self.assertEqual(result3.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath('/usr/bin/gcc-4.7'), - 'version': '4.7.3', ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_util.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/configure/test_util.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import logging - import os -@@ -11,7 +11,7 @@ - import unittest - import sys - --from StringIO import StringIO -+from io import StringIO - - from mozunit import main - from mozpack import path as mozpath -@@ -434,11 +434,11 @@ - except SystemExit as e: - status = e.code - -- self.assertEquals(status, 0) -+ self.assertEqual(status, 0) - quote_char = "'" - if getpreferredencoding().lower() == 'utf-8': - quote_char = '\u00B4'.encode('utf-8') -- self.assertEquals(out.getvalue().strip(), quote_char) -+ self.assertEqual(out.getvalue().strip(), quote_char) - - - class TestVersion(unittest.TestCase): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/controller/test_ccachestats.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/controller/test_ccachestats.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import unittest - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/controller/test_clobber.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/controller/test_clobber.py (refactored) -@@ -2,14 +2,14 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import shutil - import tempfile - import unittest - --from StringIO import StringIO -+from io import StringIO - - from mozunit import main - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_context.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_context.py (refactored) -@@ -36,7 +36,7 @@ - 'baz': (dict, dict, ''), - }) - -- self.assertEqual(test.keys(), []) -+ self.assertEqual(list(test.keys()), []) - - self.assertEqual(test['foo'], 0) - -@@ -84,12 +84,12 @@ - 'baz': (dict, list, ''), - }) - -- self.assertEqual(test.keys(), []) -+ self.assertEqual(list(test.keys()), []) - - with self.assertRaises(ValueError): - test.update(bar=True, foo={}) - -- self.assertEqual(test.keys(), []) -+ self.assertEqual(list(test.keys()), []) - - test.update(bar=True, foo=1) - -@@ -258,19 +258,19 @@ - self.assertEqual(lines[-1].strip(), '') - - def test_documentation_formatting(self): -- for typ, inp, doc in VARIABLES.values(): -+ for typ, inp, doc in list(VARIABLES.values()): - self._verify_doc(doc) - -- for attr, args, doc in FUNCTIONS.values(): -+ for attr, args, doc in list(FUNCTIONS.values()): - self._verify_doc(doc) - -- for func, typ, doc in SPECIAL_VARIABLES.values(): -+ for func, typ, doc in list(SPECIAL_VARIABLES.values()): - self._verify_doc(doc) - -- for name, cls in SUBCONTEXTS.items(): -+ for name, cls in list(SUBCONTEXTS.items()): - self._verify_doc(cls.__doc__) - -- for name, v in cls.VARIABLES.items(): -+ for name, v in list(cls.VARIABLES.items()): - self._verify_doc(v[2]) - - -@@ -631,7 +631,7 @@ - class TestTypedRecord(unittest.TestCase): - - def test_fields(self): -- T = ContextDerivedTypedRecord(('field1', unicode), -+ T = ContextDerivedTypedRecord(('field1', str), - ('field2', list)) - inst = T(None) - self.assertEqual(inst.field1, '') -@@ -647,7 +647,7 @@ - inst.field3 = [] - - def test_coercion(self): -- T = ContextDerivedTypedRecord(('field1', unicode), -+ T = ContextDerivedTypedRecord(('field1', str), - ('field2', list)) - inst = T(None) - inst.field1 = 3 -@@ -673,45 +673,45 @@ - def test_single_bug_component(self): - c = Context({}) - f = Files(c, pattern='**') -- f['BUG_COMPONENT'] = (u'Product1', u'Component1') -+ f['BUG_COMPONENT'] = ('Product1', 'Component1') - - files = {'moz.build': f} - self.assertEqual(Files.aggregate(files), { -- 'bug_component_counts': [((u'Product1', u'Component1'), 1)], -- 'recommended_bug_component': (u'Product1', u'Component1'), -+ 'bug_component_counts': [(('Product1', 'Component1'), 1)], -+ 'recommended_bug_component': ('Product1', 'Component1'), - }) - - def test_multiple_bug_components(self): - c = Context({}) - f1 = Files(c, pattern='**') -- f1['BUG_COMPONENT'] = (u'Product1', u'Component1') -+ f1['BUG_COMPONENT'] = ('Product1', 'Component1') - - f2 = Files(c, pattern='**') -- f2['BUG_COMPONENT'] = (u'Product2', u'Component2') -+ f2['BUG_COMPONENT'] = ('Product2', 'Component2') - - files = {'a': f1, 'b': f2, 'c': f1} - self.assertEqual(Files.aggregate(files), { - 'bug_component_counts': [ -- ((u'Product1', u'Component1'), 2), -- ((u'Product2', u'Component2'), 1), -+ (('Product1', 'Component1'), 2), -+ (('Product2', 'Component2'), 1), - ], -- 'recommended_bug_component': (u'Product1', u'Component1'), -+ 'recommended_bug_component': ('Product1', 'Component1'), - }) - - def test_no_recommended_bug_component(self): - """If there is no clear count winner, we don't recommend a bug component.""" - c = Context({}) - f1 = Files(c, pattern='**') -- f1['BUG_COMPONENT'] = (u'Product1', u'Component1') -+ f1['BUG_COMPONENT'] = ('Product1', 'Component1') - - f2 = Files(c, pattern='**') -- f2['BUG_COMPONENT'] = (u'Product2', u'Component2') -+ f2['BUG_COMPONENT'] = ('Product2', 'Component2') - - files = {'a': f1, 'b': f2} - self.assertEqual(Files.aggregate(files), { - 'bug_component_counts': [ -- ((u'Product1', u'Component1'), 1), -- ((u'Product2', u'Component2'), 1), -+ (('Product1', 'Component1'), 1), -+ (('Product2', 'Component2'), 1), - ], - 'recommended_bug_component': None, - }) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_emitter.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_emitter.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import unittest -@@ -204,7 +204,7 @@ - def test_use_yasm(self): - # When yasm is not available, this should raise. - reader = self.reader('use-yasm') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'yasm is not available'): - self.read_topsrcdir(reader) - -@@ -267,25 +267,25 @@ - o = objs[0] - self.assertIsInstance(o, GeneratedFile) - self.assertEqual(o.outputs, ('bar.c',)) -- self.assertRegexpMatches(o.script, 'script.py$') -+ self.assertRegex(o.script, 'script.py$') - self.assertEqual(o.method, 'make_bar') - self.assertEqual(o.inputs, []) - - def test_generated_files_no_script(self): - reader = self.reader('generated-files-no-script') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Script for generating bar.c does not exist'): - self.read_topsrcdir(reader) - - def test_generated_files_no_inputs(self): - reader = self.reader('generated-files-no-inputs') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Input for generating foo.c does not exist'): - self.read_topsrcdir(reader) - - def test_generated_files_no_python_script(self): - reader = self.reader('generated-files-no-python-script') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Script for generating bar.c does not end in .py'): - self.read_topsrcdir(reader) - -@@ -314,7 +314,7 @@ - Missing files in EXPORTS is an error. - ''' - reader = self.reader('exports-missing') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'File listed in EXPORTS does not exist:'): - self.read_topsrcdir(reader) - -@@ -323,7 +323,7 @@ - An objdir file in EXPORTS that is not in GENERATED_FILES is an error. - ''' - reader = self.reader('exports-missing-generated') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Objdir file listed in EXPORTS not in GENERATED_FILES:'): - self.read_topsrcdir(reader) - -@@ -360,7 +360,7 @@ - - def test_test_harness_files_root(self): - reader = self.reader('test-harness-files-root') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Cannot install files to the root of TEST_HARNESS_FILES'): - self.read_topsrcdir(reader) - -@@ -413,14 +413,14 @@ - """A missing manifest file should result in an error.""" - reader = self.reader('test-manifest-missing-manifest') - -- with self.assertRaisesRegexp(BuildReaderError, 'IOError: Missing files'): -+ with self.assertRaisesRegex(BuildReaderError, 'IOError: Missing files'): - self.read_topsrcdir(reader) - - def test_empty_test_manifest_rejected(self): - """A test manifest without any entries is rejected.""" - reader = self.reader('test-manifest-empty') - -- with self.assertRaisesRegexp(SandboxValidationError, 'Empty test manifest'): -+ with self.assertRaisesRegex(SandboxValidationError, 'Empty test manifest'): - self.read_topsrcdir(reader) - - -@@ -428,7 +428,7 @@ - """A test manifest with no tests but support-files is not supported.""" - reader = self.reader('test-manifest-just-support') - -- with self.assertRaisesRegexp(SandboxValidationError, 'Empty test manifest'): -+ with self.assertRaisesRegex(SandboxValidationError, 'Empty test manifest'): - self.read_topsrcdir(reader) - - def test_test_manifest_dupe_support_files(self): -@@ -437,7 +437,7 @@ - """ - reader = self.reader('test-manifest-dupes') - -- with self.assertRaisesRegexp(SandboxValidationError, 'bar.js appears multiple times ' -+ with self.assertRaisesRegex(SandboxValidationError, 'bar.js appears multiple times ' - 'in a test manifest under a support-files field, please omit the duplicate entry.'): - self.read_topsrcdir(reader) - -@@ -454,7 +454,7 @@ - mozpath.join(o.install_prefix, "absolute-support.ini"), - mozpath.join(o.install_prefix, "test_file.js"), - ] -- paths = sorted([v[0] for v in o.installs.values()]) -+ paths = sorted([v[0] for v in list(o.installs.values())]) - self.assertEqual(paths, expected) - - @unittest.skip('Bug 1304316 - Items in the second set but not the first') -@@ -481,7 +481,7 @@ - """A non-existent shared support file reference produces an error.""" - reader = self.reader('test-manifest-shared-missing') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'entry in support-files not present in the srcdir'): - self.read_topsrcdir(reader) - -@@ -500,7 +500,7 @@ - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/support.txt")), - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/test_foo.html")), - ] -- paths = sorted([v[0] for v in o.installs.values()]) -+ paths = sorted([v[0] for v in list(o.installs.values())]) - self.assertEqual(paths, expected) - - def test_test_manifest_install_includes(self): -@@ -518,7 +518,7 @@ - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/mochitest.ini")), - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/test_foo.html")), - ] -- paths = sorted([v[0] for v in o.installs.values()]) -+ paths = sorted([v[0] for v in list(o.installs.values())]) - self.assertEqual(paths, expected) - - def test_test_manifest_includes(self): -@@ -541,7 +541,7 @@ - def test_python_unit_test_missing(self): - """Missing files in PYTHON_UNIT_TESTS should raise.""" - reader = self.reader('test-python-unit-test-missing') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Path specified in PYTHON_UNIT_TESTS does not exist:'): - self.read_topsrcdir(reader) - -@@ -635,7 +635,7 @@ - self.assertEqual(external_normalized, m.get('external', set())) - - self.assertEqual(len(o.installs), len(m['installs'])) -- for path in o.installs.keys(): -+ for path in list(o.installs.keys()): - self.assertTrue(path.startswith(o.directory)) - relpath = path[len(o.directory)+1:] - -@@ -648,7 +648,7 @@ - def test_test_manifest_unmatched_generated(self): - reader = self.reader('test-manifest-unmatched-generated') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'entry in generated-files not present elsewhere'): - self.read_topsrcdir(reader), - -@@ -672,7 +672,7 @@ - """Missing test files should result in error.""" - reader = self.reader('test-manifest-missing-test-file') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'lists test that does not exist: test_missing.html'): - self.read_topsrcdir(reader) - -@@ -680,7 +680,7 @@ - """Missing test files should result in error, even when the test list is not filtered.""" - reader = self.reader('test-manifest-missing-test-file-unfiltered') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'lists test that does not exist: missing.js'): - self.read_topsrcdir(reader) - -@@ -794,20 +794,20 @@ - self.assertIsInstance(obj.path, Path) - - def test_jar_manifests_multiple_files(self): -- with self.assertRaisesRegexp(SandboxValidationError, 'limited to one value'): -+ with self.assertRaisesRegex(SandboxValidationError, 'limited to one value'): - reader = self.reader('jar-manifests-multiple-files') - self.read_topsrcdir(reader) - - def test_xpidl_module_no_sources(self): - """XPIDL_MODULE without XPIDL_SOURCES should be rejected.""" -- with self.assertRaisesRegexp(SandboxValidationError, 'XPIDL_MODULE ' -+ with self.assertRaisesRegex(SandboxValidationError, 'XPIDL_MODULE ' - 'cannot be defined'): - reader = self.reader('xpidl-module-no-sources') - self.read_topsrcdir(reader) - - def test_missing_local_includes(self): - """LOCAL_INCLUDES containing non-existent directories should be rejected.""" -- with self.assertRaisesRegexp(SandboxValidationError, 'Path specified in ' -+ with self.assertRaisesRegex(SandboxValidationError, 'Path specified in ' - 'LOCAL_INCLUDES does not exist'): - reader = self.reader('missing-local-includes') - self.read_topsrcdir(reader) -@@ -852,7 +852,7 @@ - '.S': ['g.S'], - '.s': ['h.s', 'i.asm'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -905,7 +905,7 @@ - '.S': ['g.S'], - '.s': ['h.s', 'i.asm'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -931,7 +931,7 @@ - '.c': ['d.c'], - '.mm': ['e.mm', 'f.mm'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -956,7 +956,7 @@ - '.mm': ['objc1.mm', 'objc2.mm'], - '.c': ['c1.c', 'c2.c'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -982,7 +982,7 @@ - '.mm': ['objc1.mm', 'objc2.mm'], - '.c': ['c1.c', 'c2.c'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -1005,11 +1005,11 @@ - - expected = {'install.rdf', 'main.js'} - for f in files: -- self.assertTrue(unicode(f) in expected) -+ self.assertTrue(str(f) in expected) - - def test_missing_final_target_pp_files(self): - """Test that FINAL_TARGET_PP_FILES with missing files throws errors.""" -- with self.assertRaisesRegexp(SandboxValidationError, 'File listed in ' -+ with self.assertRaisesRegex(SandboxValidationError, 'File listed in ' - 'FINAL_TARGET_PP_FILES does not exist'): - reader = self.reader('dist-files-missing') - self.read_topsrcdir(reader) -@@ -1017,49 +1017,49 @@ - def test_final_target_pp_files_non_srcdir(self): - '''Test that non-srcdir paths in FINAL_TARGET_PP_FILES throws errors.''' - reader = self.reader('final-target-pp-files-non-srcdir') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Only source directory paths allowed in FINAL_TARGET_PP_FILES:'): - self.read_topsrcdir(reader) - - def test_rust_library_no_cargo_toml(self): - '''Test that defining a RustLibrary without a Cargo.toml fails.''' - reader = self.reader('rust-library-no-cargo-toml') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'No Cargo.toml file found'): - self.read_topsrcdir(reader) - - def test_rust_library_name_mismatch(self): - '''Test that defining a RustLibrary that doesn't match Cargo.toml fails.''' - reader = self.reader('rust-library-name-mismatch') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'library.*does not match Cargo.toml-defined package'): - self.read_topsrcdir(reader) - - def test_rust_library_no_lib_section(self): - '''Test that a RustLibrary Cargo.toml with no [lib] section fails.''' - reader = self.reader('rust-library-no-lib-section') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Cargo.toml for.* has no \\[lib\\] section'): - self.read_topsrcdir(reader) - - def test_rust_library_no_profile_section(self): - '''Test that a RustLibrary Cargo.toml with no [profile] section fails.''' - reader = self.reader('rust-library-no-profile-section') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Cargo.toml for.* has no \\[profile\\.dev\\] section'): - self.read_topsrcdir(reader) - - def test_rust_library_invalid_crate_type(self): - '''Test that a RustLibrary Cargo.toml has a permitted crate-type.''' - reader = self.reader('rust-library-invalid-crate-type') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'crate-type.* is not permitted'): - self.read_topsrcdir(reader) - - def test_rust_library_non_abort_panic(self): - '''Test that a RustLibrary Cargo.toml has `panic = "abort" set''' - reader = self.reader('rust-library-non-abort-panic') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'does not specify `panic = "abort"`'): - self.read_topsrcdir(reader) - -@@ -1072,15 +1072,15 @@ - self.assertEqual(len(objs), 1) - lib = objs[0] - self.assertIsInstance(lib, RustLibrary) -- self.assertRegexpMatches(lib.lib_name, "random_crate") -- self.assertRegexpMatches(lib.import_name, "random_crate") -- self.assertRegexpMatches(lib.basename, "random-crate") -+ self.assertRegex(lib.lib_name, "random_crate") -+ self.assertRegex(lib.import_name, "random_crate") -+ self.assertRegex(lib.basename, "random-crate") - - def test_multiple_rust_libraries(self): - '''Test that linking multiple Rust libraries throws an error''' - reader = self.reader('multiple-rust-libraries', - extra_substs=dict(RUST_TARGET='i686-pc-windows-msvc')) -- with self.assertRaisesRegexp(LinkageMultipleRustLibrariesError, -+ with self.assertRaisesRegex(LinkageMultipleRustLibrariesError, - 'Cannot link multiple Rust libraries'): - self.read_topsrcdir(reader) - -@@ -1107,7 +1107,7 @@ - mozpath.join(reader.config.topobjdir, 'dir2'), - '/dir3', - ] -- self.assertEquals([p.full_path for p in objs[0].paths], expected) -+ self.assertEqual([p.full_path for p in objs[0].paths], expected) - - def test_binary_components(self): - """Test that IS_COMPONENT/NO_COMPONENTS_MANIFEST work properly.""" -@@ -1163,7 +1163,7 @@ - from GENERATED_FILES is an error. - """ - reader = self.reader('test-symbols-file-objdir-missing-generated') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Objdir file specified in SYMBOLS_FILE not in GENERATED_FILES:'): - self.read_topsrcdir(reader) - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_namespaces.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_namespaces.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import unittest - -@@ -29,7 +29,7 @@ - - class Piyo(ContextDerivedValue): - def __init__(self, context, value): -- if not isinstance(value, unicode): -+ if not isinstance(value, str): - raise ValueError - self.context = context - self.value = value -@@ -48,9 +48,9 @@ - - - VARIABLES = { -- 'HOGE': (unicode, unicode, None), -- 'FUGA': (Fuga, unicode, None), -- 'PIYO': (Piyo, unicode, None), -+ 'HOGE': (str, str, None), -+ 'FUGA': (Fuga, str, None), -+ 'PIYO': (Piyo, str, None), - 'HOGERA': (ContextDerivedTypedList(Piyo, StrictOrderingOnAppendList), - list, None), - 'HOGEHOGE': (ContextDerivedTypedListWithItems( -@@ -104,7 +104,7 @@ - self.assertEqual(e[1], 'set_type') - self.assertEqual(e[2], 'HOGE') - self.assertEqual(e[3], True) -- self.assertEqual(e[4], unicode) -+ self.assertEqual(e[4], str) - - def test_key_checking(self): - # Checking for existence of a key should not populate the key if it -@@ -127,7 +127,7 @@ - self.assertEqual(e[1], 'set_type') - self.assertEqual(e[2], 'FUGA') - self.assertEqual(e[3], False) -- self.assertEqual(e[4], unicode) -+ self.assertEqual(e[4], str) - - ns['FUGA'] = 'fuga' - self.assertIsInstance(ns['FUGA'], Fuga) -@@ -150,7 +150,7 @@ - self.assertEqual(e[1], 'set_type') - self.assertEqual(e[2], 'PIYO') - self.assertEqual(e[3], False) -- self.assertEqual(e[4], unicode) -+ self.assertEqual(e[4], str) - - ns['PIYO'] = 'piyo' - self.assertIsInstance(ns['PIYO'], Piyo) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_reader.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_reader.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import sys -@@ -423,7 +423,7 @@ - 'simple/base.cpp', - ]) - -- for path, pattern_set in expected.items(): -+ for path, pattern_set in list(expected.items()): - self.assertEqual(v[path].test_files, - expected[path]) - -@@ -438,7 +438,7 @@ - 'default/tests/reftests/**']), - } - -- for path, pattern_set in expected.items(): -+ for path, pattern_set in list(expected.items()): - self.assertEqual(v[path].test_files, - expected[path]) - -@@ -454,7 +454,7 @@ - 'tagged/src/bar.jsm': set(['tagged/**.js']), - } - -- for path, pattern_set in expected_patterns.items(): -+ for path, pattern_set in list(expected_patterns.items()): - self.assertEqual(v[path].test_files, - expected_patterns[path]) - -@@ -462,7 +462,7 @@ - 'tagged/src/submodule/foo.js': set(['submodule']), - 'tagged/src/bar.jsm': set([]), - } -- for path, pattern_set in expected_tags.items(): -+ for path, pattern_set in list(expected_tags.items()): - self.assertEqual(v[path].test_tags, - expected_tags[path]) - -@@ -470,7 +470,7 @@ - 'tagged/src/bar.jsm': set(['browser-chrome']), - 'tagged/src/submodule/foo.js': set([]), - } -- for path, pattern_set in expected_flavors.items(): -+ for path, pattern_set in list(expected_flavors.items()): - self.assertEqual(v[path].test_flavors, - expected_flavors[path]) - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_sandbox.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/test/frontend/test_sandbox.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import shutil -@@ -345,7 +345,7 @@ - sandbox = MozbuildSandbox(Context(VARIABLES, config)) - - self.assertEqual(sandbox['CONFIG']['BAD_UTF8'], -- u'\ufffd\ufffd\ufffd\ufffd:') -+ '\ufffd\ufffd\ufffd\ufffd:') - - def test_invalid_exports_set_base(self): - sandbox = self.sandbox() -@@ -525,7 +525,7 @@ - source = 'a = foo(1, 2)' - sandbox.exec_source(source, 'foo.mozbuild') - -- self.assertEquals(sandbox['a'], (Foo, int)) -+ self.assertEqual(sandbox['a'], (Foo, int)) - finally: - del FUNCTIONS['foo'] - ---- firefox-52.9.0esr/python/mozbuild/mozpack/archive.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/archive.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import bz2 - import gzip ---- firefox-52.9.0esr/python/mozbuild/mozpack/copier.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/copier.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import stat -@@ -109,7 +109,7 @@ - ''' - Return all paths stored in the container, in the order they were added. - ''' -- return self._files.keys() -+ return list(self._files.keys()) - - def __len__(self): - ''' -@@ -142,7 +142,7 @@ - for path, file in registry: - (...) - ''' -- return self._files.iteritems() -+ return iter(self._files.items()) - - def required_directories(self): - ''' -@@ -151,7 +151,7 @@ - unspecified (virtual) root directory (and do not include said root - directory). - ''' -- return set(k for k, v in self._required_directories.items() if v > 0) -+ return set(k for k, v in list(self._required_directories.items()) if v > 0) - - - class FileRegistrySubtree(object): -@@ -263,7 +263,7 @@ - - Returns a FileCopyResult that details what changed. - ''' -- assert isinstance(destination, basestring) -+ assert isinstance(destination, str) - assert not os.path.exists(destination) or os.path.isdir(destination) - - result = FileCopyResult() -@@ -531,7 +531,7 @@ - def exists(self): - return self.deflater is not None - -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - assert isinstance(dest, Dest) - ---- firefox-52.9.0esr/python/mozbuild/mozpack/errors.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/errors.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - from contextlib import contextmanager -@@ -97,7 +97,7 @@ - if self._count is None: - raise ErrorMessage(msg) - self._count += 1 -- print >>self.out, msg -+ print(msg, file=self.out) - - def fatal(self, msg): - self._handle(self.FATAL, msg) ---- firefox-52.9.0esr/python/mozbuild/mozpack/executables.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/executables.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import struct ---- firefox-52.9.0esr/python/mozbuild/mozpack/files.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/files.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import errno - import os -@@ -57,7 +57,7 @@ - - def _copyfile(src, dest): - # False indicates `dest` should be overwritten if it exists already. -- if isinstance(src, unicode) and isinstance(dest, unicode): -+ if isinstance(src, str) and isinstance(dest, str): - _CopyFileW(src, dest, False) - elif isinstance(src, str) and isinstance(dest, str): - _CopyFileA(src, dest, False) -@@ -145,13 +145,13 @@ - # - keep file type (e.g. S_IFREG) - ret = stat.S_IFMT(mode) - # - expand user read and execute permissions to everyone -- if mode & 0400: -- ret |= 0444 -- if mode & 0100: -- ret |= 0111 -+ if mode & 0o400: -+ ret |= 0o444 -+ if mode & 0o100: -+ ret |= 0o111 - # - keep user write permissions -- if mode & 0200: -- ret |= 0200 -+ if mode & 0o200: -+ ret |= 0o200 - # - leave away sticky bit, setuid, setgid - return ret - -@@ -164,7 +164,7 @@ - disabled when skip_if_older is False. - Returns whether a copy was actually performed (True) or not (False). - ''' -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - else: - assert isinstance(dest, Dest) -@@ -258,11 +258,11 @@ - ''' - def copy(self, dest, skip_if_older=True): - real_dest = dest -- if not isinstance(dest, basestring): -+ if not isinstance(dest, str): - fd, dest = mkstemp() - os.close(fd) - os.remove(dest) -- assert isinstance(dest, basestring) -+ assert isinstance(dest, str) - # If File.copy didn't actually copy because dest is newer, check the - # file sizes. If dest is smaller, it means it is already stripped and - # elfhacked, so we can skip. -@@ -299,7 +299,7 @@ - File.__init__(self, path) - - def copy(self, dest, skip_if_older=True): -- assert isinstance(dest, basestring) -+ assert isinstance(dest, str) - - # The logic in this function is complicated by the fact that symlinks - # aren't universally supported. So, where symlinks aren't supported, we -@@ -400,7 +400,7 @@ - self.required = required - - def copy(self, dest, skip_if_older=True): -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - else: - assert isinstance(dest, Dest) -@@ -432,7 +432,7 @@ - ''' - Invokes the preprocessor to create the destination file. - ''' -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - else: - assert isinstance(dest, Dest) -@@ -563,7 +563,7 @@ - the individual XPTs to link. - skip_if_older is ignored. - ''' -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - assert isinstance(dest, Dest) - -@@ -1014,7 +1014,7 @@ - from mozpack.copier import FileRegistry - self.files = FileRegistry() - -- for base, finder in sorted(finders.iteritems()): -+ for base, finder in sorted(finders.items()): - if self.files.contains(base): - self.files.remove(base) - for p, f in finder.find(''): ---- firefox-52.9.0esr/python/mozbuild/mozpack/hg.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/hg.py (refactored) -@@ -27,7 +27,7 @@ - # do not wish to do so, delete this exception statement from your - # version. - --from __future__ import absolute_import -+ - - import mercurial.error as error - import mercurial.hg as hg -@@ -56,7 +56,7 @@ - - Accepts a Mercurial localrepo and changectx instance. - """ -- if isinstance(repo, (str, unicode)): -+ if isinstance(repo, str): - path = repo - repo = hg.repository(hgui.ui(), repo) - else: -@@ -85,7 +85,7 @@ - return self._get(path) - - def _get(self, path): -- if isinstance(path, unicode): -+ if isinstance(path, str): - path = path.encode('utf-8', 'replace') - - try: ---- firefox-52.9.0esr/python/mozbuild/mozpack/manifests.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/manifests.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - from contextlib import contextmanager - import json ---- firefox-52.9.0esr/python/mozbuild/mozpack/mozjar.py (original) -+++ firefox-52.9.0esr/python/mozbuild/mozpack/mozjar.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - from io import BytesIO - import struct -@@ -13,8 +13,9 @@ - ZIP_DEFLATED, - ) - from collections import OrderedDict --from urlparse import urlparse, ParseResult -+from urllib.parse import urlparse, ParseResult - import mozpack.path as mozpath -+from functools import reduce - - JAR_STORED = ZIP_STORED - JAR_DEFLATED = ZIP_DEFLATED -@@ -68,7 +69,7 @@ - an instance with empty fields. - ''' - assert self.MAGIC and isinstance(self.STRUCT, OrderedDict) -- self.size_fields = set(t for t in self.STRUCT.itervalues() -+ self.size_fields = set(t for t in self.STRUCT.values() - if not t in JarStruct.TYPE_MAPPING) - self._values = {} - if data: -@@ -90,7 +91,7 @@ - # For all fields used as other fields sizes, keep track of their value - # separately. - sizes = dict((t, 0) for t in self.size_fields) -- for name, t in self.STRUCT.iteritems(): -+ for name, t in self.STRUCT.items(): - if t in JarStruct.TYPE_MAPPING: - value, size = JarStruct.get_data(t, data[offset:]) - else: -@@ -109,7 +110,7 @@ - Initialize an instance with empty fields. - ''' - self.signature = self.MAGIC -- for name, t in self.STRUCT.iteritems(): -+ for name, t in self.STRUCT.items(): - if name in self.size_fields: - continue - self._values[name] = 0 if t in JarStruct.TYPE_MAPPING else '' -@@ -134,9 +135,9 @@ - from self.STRUCT. - ''' - serialized = struct.pack('" % (self.__class__.__name__, -@@ -374,7 +375,7 @@ - preload = JarStruct.get_data('uint32', self._data)[0] - entries = OrderedDict() - offset = self._cdir_end['cdir_offset'] -- for e in xrange(self._cdir_end['cdir_entries']): -+ for e in range(self._cdir_end['cdir_entries']): - entry = JarCdirEntry(self._data[offset:]) - offset += entry.size - # Creator host system. 0 is MSDOS, 3 is Unix -@@ -385,7 +386,7 @@ - xattr = entry['external_attr'] - # Skip directories - if (host == 0 and xattr & 0x10) or (host == 3 and -- xattr & (040000 << 16)): -+ xattr & (0o40000 << 16)): - continue - entries[entry['filename']] = entry - if entry['offset'] < preload: -@@ -436,7 +437,7 @@ - for file in jarReader: - ... - ''' -- for entry in self.entries.itervalues(): -+ for entry in self.entries.values(): - yield self._getreader(entry) - - def __getitem__(self, name): -@@ -529,7 +530,7 @@ - headers = {} - preload_size = 0 - # Prepare central directory entries -- for entry, content in self._contents.itervalues(): -+ for entry, content in self._contents.values(): - header = JarLocalFileHeader() - for name in entry.STRUCT: - if name in header: -@@ -544,7 +545,7 @@ - end['disk_entries'] = len(self._contents) - end['cdir_entries'] = end['disk_entries'] - end['cdir_size'] = reduce(lambda x, y: x + y[0].size, -- self._contents.values(), 0) -+ list(self._contents.values()), 0) - # On optimized archives, store the preloaded size and the central - # directory entries, followed by the first end of central directory. - if self._optimize: -@@ -553,18 +554,18 @@ - if preload_size: - preload_size += offset - self._data.write(struct.pack('./config.log', '>>./config.log') -+ script = script.replace(b'>./config.log', b'>>./config.log') - - with open(old_configure, 'wb') as fh: - fh.write(script) ---- firefox-52.9.0esr/build/subconfigure.py.old 2017-04-11 02:13:09.000000000 +0000 -+++ firefox-52.9.0esr/build/subconfigure.py 2018-07-10 10:38:08.910000000 +0000 -@@ -27,7 +27,7 @@ - return super(Pool, cls).__new__(cls) - - def imap_unordered(self, fn, iterable): -- return itertools.imap(fn, iterable) -+ return map(fn, iterable) - - def close(self): - pass -@@ -131,11 +131,11 @@ - is_set = cache.get('ac_cv_env_%s_set' % precious) == 'set' - value = cache.get('ac_cv_env_%s_value' % precious) if is_set else None - if value != env.get(precious): -- print 'Removing %s because of %s value change from:' \ -- % (data['cache-file'], precious) -- print ' %s' % (value if value is not None else 'undefined') -- print 'to:' -- print ' %s' % env.get(precious, 'undefined') -+ print('Removing %s because of %s value change from:' \ -+ % (data['cache-file'], precious)) -+ print(' %s' % (value if value is not None else 'undefined')) -+ print('to:') -+ print(' %s' % env.get(precious, 'undefined')) - os.remove(data['cache-file']) - return True - return False -@@ -333,8 +333,8 @@ - # We're going to run it ourselves. - command += ['--no-create'] - -- print prefix_lines('configuring', relobjdir) -- print prefix_lines('running %s' % ' '.join(command[:-1]), relobjdir) -+ print(prefix_lines('configuring', relobjdir)) -+ print(prefix_lines('running %s' % ' '.join(command[:-1]), relobjdir)) - sys.stdout.flush() - try: - output += subprocess.check_output(command, -@@ -368,7 +368,7 @@ - - if not skip_config_status: - if skip_configure: -- print prefix_lines('running config.status', relobjdir) -+ print(prefix_lines('running config.status', relobjdir)) - sys.stdout.flush() - try: - output += subprocess.check_output([data['shell'], '-c', -@@ -410,7 +410,7 @@ - pool = Pool(len(subconfigures)) - for relobjdir, returncode, output in \ - pool.imap_unordered(run, subconfigures): -- print prefix_lines(output, relobjdir) -+ print(prefix_lines(output, relobjdir)) - sys.stdout.flush() - ret = max(returncode, ret) - if ret: ---- firefox-52.9.0esr/build/moz.configure/old.configure.old 2018-07-10 10:38:53.530000000 +0000 -+++ firefox-52.9.0esr/build/moz.configure/old.configure 2018-07-10 10:41:32.560000000 +0000 -@@ -394,7 +394,7 @@ - def post_old_configure(raw_config): - for k, v in raw_config['substs']: - set_old_configure_config( -- k[1:-1], v[1:-1] if isinstance(v, types.StringTypes) else v) -+ k[1:-1], v[1:-1] if isinstance(v, str) else v) - -- for k, v in dict(raw_config['defines']).iteritems(): -+ for k, v in dict(raw_config['defines']).items(): - set_old_configure_define(k[1:-1], v[1:-1]) ---- firefox-52.9.0esr/configure.py (original) -+++ firefox-52.9.0esr/configure.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import print_function, unicode_literals -+ - - import codecs - import os -@@ -45,11 +45,11 @@ - - sanitized_config = {} - sanitized_config['substs'] = { -- k: sanitized_bools(v) for k, v in config.iteritems() -+ k: sanitized_bools(v) for k, v in config.items() - if k not in ('DEFINES', 'non_global_defines', 'TOPSRCDIR', 'TOPOBJDIR') - } - sanitized_config['defines'] = { -- k: sanitized_bools(v) for k, v in config['DEFINES'].iteritems() -+ k: sanitized_bools(v) for k, v in config['DEFINES'].items() - } - sanitized_config['non_global_defines'] = config['non_global_defines'] - sanitized_config['topsrcdir'] = config['TOPSRCDIR'] -@@ -71,7 +71,7 @@ - ''') % {'python': config['PYTHON'], 'encoding': encoding}) - # A lot of the build backend code is currently expecting byte - # strings and breaks in subtle ways with unicode strings. (bug 1296508) -- for k, v in sanitized_config.iteritems(): -+ for k, v in sanitized_config.items(): - fh.write('%s = encode(%s, encoding)\n' % (k, indented_repr(v))) - fh.write("__all__ = ['topobjdir', 'topsrcdir', 'defines', " - "'non_global_defines', 'substs', 'mozconfig']") -@@ -88,7 +88,7 @@ - # executable permissions. - os.chmod('config.status', 0o755) - if config.get('MOZ_BUILD_APP') != 'js' or config.get('JS_STANDALONE'): -- os.environ[b'WRITE_MOZINFO'] = b'1' -+ os.environ['WRITE_MOZINFO'] = '1' - from mozbuild.config_status import config_status - - # Some values in sanitized_config also have more complex types, such as ---- firefox-52.9.0esr/python/blessings/blessings/__init__.py.old 2017-04-11 02:13:23.000000000 +0000 -+++ firefox-52.9.0esr/python/blessings/blessings/__init__.py 2018-07-10 10:56:52.820000000 +0000 -@@ -333,7 +333,7 @@ - 'shadow', 'standout', 'subscript', 'superscript'])) - - --class ParametrizingString(unicode): -+class ParametrizingString(str): - """A Unicode string which can be called to parametrize it as a terminal capability""" - def __new__(cls, formatting, normal=None): - """Instantiate. -@@ -343,7 +343,7 @@ - "normal" capability. - - """ -- new = unicode.__new__(cls, formatting) -+ new = str.__new__(cls, formatting) - new._normal = normal - return new - -@@ -375,10 +375,10 @@ - raise - - --class FormattingString(unicode): -+class FormattingString(str): - """A Unicode string which can be called upon a piece of text to wrap it in formatting""" - def __new__(cls, formatting, normal): -- new = unicode.__new__(cls, formatting) -+ new = str.__new__(cls, formatting) - new._normal = normal - return new - -@@ -393,7 +393,7 @@ - return self + text + self._normal - - --class NullCallableString(unicode): -+class NullCallableString(str): - """A dummy class to stand in for ``FormattingString`` and ``ParametrizingString`` - - A callable bytestring that returns an empty Unicode when called with an int -@@ -402,7 +402,7 @@ - - """ - def __new__(cls): -- new = unicode.__new__(cls, u'') -+ new = str.__new__(cls, u'') - return new - - def __call__(self, arg): ---- firefox-52.9.0esr/testing/mozbase/mozfile/mozfile/mozfile.py (original) -+++ firefox-52.9.0esr/testing/mozbase/mozfile/mozfile/mozfile.py (refactored) -@@ -6,7 +6,7 @@ - - # We don't import all modules at the top for performance reasons. See Bug 1008943 - --from __future__ import absolute_import -+ - - from contextlib import contextmanager - import errno -@@ -55,7 +55,7 @@ - try: - bundle = zipfile.ZipFile(src) - except Exception: -- print "src: %s" % src -+ print("src: %s" % src) - raise - - namelist = bundle.namelist() -@@ -161,8 +161,8 @@ - - retry_count += 1 - -- print '%s() failed for "%s". Reason: %s (%s). Retrying...' % \ -- (func.__name__, args, e.strerror, e.errno) -+ print('%s() failed for "%s". Reason: %s (%s). Retrying...' % \ -+ (func.__name__, args, e.strerror, e.errno)) - time.sleep(retry_count * retry_delay) - else: - # If no exception has been thrown it should be done -@@ -420,9 +420,9 @@ - Return True if thing looks like a URL. - """ - -- import urlparse -- -- parsed = urlparse.urlparse(thing) -+ import urllib.parse -+ -+ parsed = urllib.parse.urlparse(thing) - if 'scheme' in parsed: - return len(parsed.scheme) >= 2 - else: -@@ -436,7 +436,7 @@ - result of urllib2.urlopen() - """ - -- import urllib2 -+ import urllib.request, urllib.error, urllib.parse - - # handle file URLs separately due to python stdlib limitations - if resource.startswith('file://'): -@@ -446,4 +446,4 @@ - # if no scheme is given, it is a file path -- return file(resource) -+ return open(resource) - -- return urllib2.urlopen(resource) -+ return urllib.request.urlopen(resource) ---- firefox-52.9.0esr/testing/mozbase/mozinfo/mozinfo/mozinfo.py (original) -+++ firefox-52.9.0esr/testing/mozbase/mozinfo/mozinfo/mozinfo.py (refactored) -@@ -8,7 +8,7 @@ - # linux) to the information; I certainly wouldn't want anyone parsing this - # information and having behaviour depend on it - --from __future__ import absolute_import -+ - - import os - import platform -@@ -24,7 +24,7 @@ - class unknown(object): - """marker class for unknown information""" - -- def __nonzero__(self): -+ def __bool__(self): - return False - - def __str__(self): -@@ -184,7 +184,7 @@ - to a json file containing the new info. - """ - -- if isinstance(new_info, basestring): -+ if isinstance(new_info, str): - # lazy import - import mozfile - import json -@@ -246,7 +246,7 @@ - update({}) - - # exports --__all__ = info.keys() -+__all__ = list(info.keys()) - __all__ += ['is' + os_name.title() for os_name in choices['os']] - __all__ += [ - 'info', -@@ -284,17 +284,17 @@ - - # print out choices if requested - flag = False -- for key, value in options.__dict__.items(): -+ for key, value in list(options.__dict__.items()): - if value is True: -- print '%s choices: %s' % (key, ' '.join([str(choice) -- for choice in choices[key]])) -+ print('%s choices: %s' % (key, ' '.join([str(choice) -+ for choice in choices[key]]))) - flag = True - if flag: - return - - # otherwise, print out all info -- for key, value in info.items(): -- print '%s: %s' % (key, value) -+ for key, value in list(info.items()): -+ print('%s: %s' % (key, value)) - - if __name__ == '__main__': - main() ---- firefox-52.9.0esr/testing/mozbase/mozinfo/mozinfo/string_version.py.old 2017-04-11 02:13:06.000000000 +0000 -+++ firefox-52.9.0esr/testing/mozbase/mozinfo/mozinfo/string_version.py 2018-07-10 11:10:56.140000000 +0000 -@@ -10,8 +10,10 @@ - A string version that can be compared with comparison operators. - """ - -+ def __new__(cls, value): -+ return str.__new__(cls, value) -+ - def __init__(self, vstring): -- str.__init__(self, vstring) - self.version = LooseVersion(vstring) - - def __repr__(self): ---- firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/manifestparser.py (original) -+++ firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/manifestparser.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this file, - # You can obtain one at http://mozilla.org/MPL/2.0/. - --from StringIO import StringIO -+from io import StringIO - import json - import fnmatch - import os -@@ -21,7 +21,7 @@ - __all__ = ['ManifestParser', 'TestManifest', 'convert'] - - relpath = os.path.relpath --string = (basestring,) -+string = (str,) - - - # path normalization -@@ -178,7 +178,7 @@ - - # otherwise an item - # apply ancestor defaults, while maintaining current file priority -- data = dict(self._ancestor_defaults.items() + data.items()) -+ data = dict(list(self._ancestor_defaults.items()) + list(data.items())) - - test = data - test['name'] = section -@@ -306,19 +306,19 @@ - # make some check functions - if inverse: - def has_tags(test): -- return not tags.intersection(test.keys()) -+ return not tags.intersection(list(test.keys())) - - def dict_query(test): -- for key, value in kwargs.items(): -+ for key, value in list(kwargs.items()): - if test.get(key) == value: - return False - return True - else: - def has_tags(test): -- return tags.issubset(test.keys()) -+ return tags.issubset(list(test.keys())) - - def dict_query(test): -- for key, value in kwargs.items(): -+ for key, value in list(kwargs.items()): - if test.get(key) != value: - return False - return True -@@ -340,7 +340,7 @@ - """ - if tests is None: - # Make sure to return all the manifests, even ones without tests. -- return self.manifest_defaults.keys() -+ return list(self.manifest_defaults.keys()) - - manifests = [] - for test in tests: -@@ -373,8 +373,8 @@ - raise IOError("Strict mode enabled, test paths must exist. " - "The following test(s) are missing: %s" % - json.dumps(missing_paths, indent=2)) -- print >> sys.stderr, "Warning: The following test(s) are missing: %s" % \ -- json.dumps(missing_paths, indent=2) -+ print("Warning: The following test(s) are missing: %s" % \ -+ json.dumps(missing_paths, indent=2), file=sys.stderr) - return missing - - def verifyDirectory(self, directories, pattern=None, extensions=None): -@@ -385,7 +385,7 @@ - """ - - files = set([]) -- if isinstance(directories, basestring): -+ if isinstance(directories, str): - directories = [directories] - - # get files in directories -@@ -449,12 +449,12 @@ - - # print the .ini manifest - if global_tags or global_kwargs: -- print >> fp, '[DEFAULT]' -+ print('[DEFAULT]', file=fp) - for tag in global_tags: -- print >> fp, '%s =' % tag -- for key, value in global_kwargs.items(): -- print >> fp, '%s = %s' % (key, value) -- print >> fp -+ print('%s =' % tag, file=fp) -+ for key, value in list(global_kwargs.items()): -+ print('%s = %s' % (key, value), file=fp) -+ print(file=fp) - - for test in tests: - test = test.copy() # don't overwrite -@@ -465,7 +465,7 @@ - if self.rootdir: - path = relpath(test['path'], self.rootdir) - path = denormalize_path(path) -- print >> fp, '[%s]' % path -+ print('[%s]' % path, file=fp) - - # reserved keywords: - reserved = ['path', 'name', 'here', 'manifest', 'relpath', 'ancestor-manifest'] -@@ -476,8 +476,8 @@ - continue - if key in global_tags and not test[key]: - continue -- print >> fp, '%s = %s' % (key, test[key]) -- print >> fp -+ print('%s = %s' % (key, test[key]), file=fp) -+ print(file=fp) - - if close: - # close the created file -@@ -565,7 +565,7 @@ - message = "Missing test: '%s' does not exist!" - if self.strict: - raise IOError(message) -- print >> sys.stderr, message + " Skipping." -+ print(message + " Skipping.", file=sys.stderr) - continue - destination = os.path.join(rootdir, _relpath) - shutil.copy(source, destination) -@@ -578,7 +578,7 @@ - internal function to import directories - """ - -- if isinstance(pattern, basestring): -+ if isinstance(pattern, str): - patterns = [pattern] - else: - patterns = pattern -@@ -670,9 +670,9 @@ - if (dirnames or filenames) and not (os.path.exists(manifest_path) and overwrite): - with file(manifest_path, 'w') as manifest: - for dirname in dirnames: -- print >> manifest, '[include:%s]' % os.path.join(dirname, filename) -+ print('[include:%s]' % os.path.join(dirname, filename), file=manifest) - for _filename in filenames: -- print >> manifest, '[%s]' % _filename -+ print('[%s]' % _filename, file=manifest) - - # add to list of manifests - manifest_dict.setdefault(directory, manifest_path) -@@ -722,8 +722,8 @@ - for filename in filenames] - - # write to manifest -- print >> write, '\n'.join(['[%s]' % denormalize_path(filename) -- for filename in filenames]) -+ print('\n'.join(['[%s]' % denormalize_path(filename) -+ for filename in filenames]), file=write) - - cls._walk_directories(directories, callback, pattern=pattern, ignore=ignore) - ---- firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/cli.py (original) -+++ firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/cli.py (refactored) -@@ -81,7 +81,7 @@ - # parse the arguments - try: - kwargs, tags, args = parse_args(args) -- except ParserError, e: -+ except ParserError as e: - self._parser.error(e.message) - - # make sure we have some manifests, otherwise it will -@@ -132,7 +132,7 @@ - manifest = convert(args, pattern=options.pattern, ignore=options.ignore, - write=options.in_place) - if manifest: -- print manifest -+ print(manifest) - - - class WriteCLI(CLICommand): -@@ -146,7 +146,7 @@ - # parse the arguments - try: - kwargs, tags, args = parse_args(args) -- except ParserError, e: -+ except ParserError as e: - self._parser.error(e.message) - - # make sure we have some manifests, otherwise it will -@@ -175,9 +175,9 @@ - commands[args[0]](self._parser).parser().print_help() - else: - self._parser.print_help() -- print '\nCommands:' -+ print('\nCommands:') - for command in sorted(commands): -- print ' %s : %s' % (command, commands[command].__doc__.strip()) -+ print(' %s : %s' % (command, commands[command].__doc__.strip())) - - - class UpdateCLI(CLICommand): -@@ -190,7 +190,7 @@ - # parse the arguments - try: - kwargs, tags, args = parse_args(args) -- except ParserError, e: -+ except ParserError as e: - self._parser.error(e.message) - - # make sure we have some manifests, otherwise it will ---- firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/expression.py (original) -+++ firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/expression.py (refactored) -@@ -275,7 +275,7 @@ - """ - if not isinstance(self.token, expected): - raise Exception("Unexpected token!") -- self.token = self.iter.next() -+ self.token = next(self.iter) - - def expression(self, rbp=0): - """ -@@ -283,11 +283,11 @@ - right binding power greater than rbp is encountered. - """ - t = self.token -- self.token = self.iter.next() -+ self.token = next(self.iter) - left = t.nud(self) - while rbp < self.token.lbp: - t = self.token -- self.token = self.iter.next() -+ self.token = next(self.iter) - left = t.led(self, left) - return left - -@@ -299,7 +299,7 @@ - """ - try: - self.iter = self._tokenize() -- self.token = self.iter.next() -+ self.token = next(self.iter) - return self.expression() - except: - extype, ex, tb = sys.exc_info() -@@ -307,7 +307,7 @@ - raise ParseError("could not parse: " - "%s\nexception: %svariables: %s" % (self.text, - formatted, -- self.valuemapping)), None, tb -+ self.valuemapping)).with_traceback(tb) - - __call__ = parse - ---- firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/filters.py (original) -+++ firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/filters.py (refactored) -@@ -92,7 +92,7 @@ - def __init__(self, *args, **kwargs): - self.fmt_args = ', '.join(itertools.chain( - [str(a) for a in args], -- ['{}={}'.format(k, v) for k, v in kwargs.iteritems()])) -+ ['{}={}'.format(k, v) for k, v in kwargs.items()])) - - def __eq__(self, other): - if self.unique: -@@ -249,7 +249,7 @@ - # be yielded for reporting purposes. Put them all in chunk 1 for - # simplicity. - if self.this_chunk == 1: -- disabled_dirs = [v for k, v in tests_by_dir.iteritems() -+ disabled_dirs = [v for k, v in tests_by_dir.items() - if k not in ordered_dirs] - for disabled_test in itertools.chain(*disabled_dirs): - yield disabled_test -@@ -326,7 +326,7 @@ - - def __init__(self, tags): - InstanceFilter.__init__(self, tags) -- if isinstance(tags, basestring): -+ if isinstance(tags, str): - tags = [tags] - self.tags = tags - -@@ -349,7 +349,7 @@ - - def __init__(self, paths): - InstanceFilter.__init__(self, paths) -- if isinstance(paths, basestring): -+ if isinstance(paths, str): - paths = [paths] - self.paths = paths - ---- firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/ini.py (original) -+++ firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/ini.py (refactored) -@@ -27,7 +27,7 @@ - sections = [] - key = value = None - section_names = set() -- if isinstance(fp, basestring): -- fp = file(fp) -+ if isinstance(fp, str): -+ fp = open(fp) - - # read the lines -@@ -131,7 +131,7 @@ - 'support-files': '%s %s', - } - final_mapping = global_vars.copy() -- for field_name, value in local_vars.items(): -+ for field_name, value in list(local_vars.items()): - if field_name not in field_patterns or field_name not in global_vars: - final_mapping[field_name] = value - continue ---- firefox-52.9.0esr/python/mozbuild/mozbuild/util.py.old 2018-07-10 11:16:10.690000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/util.py 2018-07-10 23:36:02.250000000 +0000 -@@ -1254,10 +1254,10 @@ - encode(k, encoding): encode(v, encoding) - for k, v in obj.items() - } -- if isinstance(obj, bytes): -- return obj - if isinstance(obj, str): -- return obj.encode(encoding) -+ return obj -+ if isinstance(obj, bytes): -+ return obj.decode(encoding) - if isinstance(obj, Iterable): - return [encode(i, encoding) for i in obj] - return obj ---- firefox-52.9.0esr/python/mozbuild/mozbuild/util.py.old 2018-07-10 23:36:33.980000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/util.py 2018-07-10 23:41:51.900000000 +0000 -@@ -1179,6 +1179,9 @@ - POSSIBLE_VALUES = possible_values - return EnumStringSubclass - -+ def __hash__(self): -+ return hash(str(self)) -+ - - def _escape_char(c): - # str.encode('unicode_espace') doesn't escape quotes, presumably because ---- firefox-52.9.0esr/python/mozbuild/mozbuild/mozinfo.py.old 2018-07-10 23:42:19.390000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/mozinfo.py 2018-07-11 01:45:57.930000000 +0000 -@@ -155,6 +155,6 @@ - """ - build_conf = build_dict(config, env) - if isinstance(file, str): -- file = open(file, 'wb') -+ file = open(file, 'w') - - json.dump(build_conf, file, sort_keys=True, indent=4) ---- firefox-52.9.0esr/python/mozbuild/mozbuild/jar.py.old 2018-07-11 01:46:26.540000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/jar.py 2018-07-11 02:02:36.010000000 +0000 -@@ -16,7 +16,7 @@ - import re - import logging - from time import localtime --from MozZipFile import ZipFile -+from zipfile import ZipFile - from io import StringIO - from collections import defaultdict - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/util.py.old 2018-07-11 02:05:38.530000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/util.py 2018-07-11 02:08:21.020000000 +0000 -@@ -987,8 +987,6 @@ - 'got %s, expected %s' % (fname, - type(value), ftype)) - -- super(TypedTuple, self).__init__(*args, **kwargs) -- - TypedTuple._fields = fields - - return TypedTuple ---- firefox-52.9.0esr/build/moz.configure/init.configure.old 2018-07-11 02:08:50.000000000 +0000 -+++ firefox-52.9.0esr/build/moz.configure/init.configure 2018-07-11 04:04:26.600000000 +0000 -@@ -297,7 +297,9 @@ - # There is also a quartet form: - # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM - # But we can consider the "KERNEL-OPERATING_SYSTEM" as one. -- cpu, manufacturer, os = triplet.decode('utf-8').split('-', 2) -+ if isinstance(triplet, bytes): -+ triplet = triplet.decode('utf-8') -+ cpu, manufacturer, os = triplet.split('-', 2) - - # Autoconf uses config.sub to validate and canonicalize those triplets, - # but the granularity of its results has never been satisfying to our ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/reader.py.old 2018-07-11 04:25:33.980000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/reader.py 2018-07-11 04:24:50.630000000 +0000 -@@ -441,6 +441,8 @@ - code = func.__code__ - firstlineno = code.co_firstlineno - lines = sandbox._current_source.splitlines(True) -+ if len(lines) and isinstance(lines[0], bytes): -+ lines = [l.decode('utf-8') for l in lines] - lines = inspect.getblock(lines[firstlineno - 1:]) - - # The code lines we get out of inspect.getsourcelines look like ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/reader.py.old 2018-07-11 04:25:57.090000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/reader.py 2018-07-11 04:29:46.140000000 +0000 -@@ -460,7 +460,7 @@ - # actually never calls __getitem__ and __setitem__, so we need to - # modify the AST so that accesses to globals are properly directed - # to a dict. -- self._global_name = b'_data' # AST wants str for this, not unicode -+ self._global_name = '_data' # AST wants str for this, not unicode - # In case '_data' is a name used for a variable in the function code, - # prepend more underscores until we find an unused name. - while (self._global_name in code.co_names or ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/context.py.old 2018-07-11 04:30:06.590000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/context.py 2018-07-11 04:35:38.670000000 +0000 -@@ -384,8 +384,8 @@ - - def __cmp__(self, other): - if isinstance(other, Path) and self.srcdir != other.srcdir: -- return cmp(self.full_path, other.full_path) -- return cmp(str(self), other) -+ return self.full_path == other.full_path -+ return str(self) == other - - # __cmp__ is not enough because unicode has __eq__, __ne__, etc. defined - # and __cmp__ is only used for those when they don't exist. ---- firefox-52.9.0esr/mozglue/build/moz.build.old 2018-07-11 04:40:17.930000000 +0000 -+++ firefox-52.9.0esr/mozglue/build/moz.build 2018-07-11 04:42:00.830000000 +0000 -@@ -4,20 +4,15 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --# Build mozglue as a shared lib on Windows, OSX and Android. -+# Build mozglue as a shared lib on Windows and OSX. - # If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in --if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android'): -+if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin'): - SharedLibrary('mozglue') - else: - Library('mozglue') - - SDK_LIBRARY = True - --if CONFIG['OS_TARGET'] == 'Android': -- SOURCES += [ -- 'BionicGlue.cpp', -- ] -- - if CONFIG['MOZ_ASAN']: - SOURCES += [ - 'AsanOptions.cpp', ---- firefox-52.9.0esr/js/src/moz.build.old 2017-04-11 02:13:16.000000000 +0000 -+++ firefox-52.9.0esr/js/src/moz.build 2018-07-11 04:43:59.920000000 +0000 -@@ -707,7 +707,7 @@ - CXXFLAGS += ['-wd4577'] - CXXFLAGS += ['-wd4312'] - --if CONFIG['OS_ARCH'] not in ('WINNT', 'HP-UX'): -+if CONFIG['OS_ARCH'] != 'WINNT': - OS_LIBS += [ - 'm', - ] -@@ -722,13 +722,13 @@ - 'dl', - ] - --if CONFIG['OS_ARCH'] == 'SunOS': -- OS_LIBS += [ -- 'posix4', -- 'dl', -- 'nsl', -- 'socket', -- ] -+#if CONFIG['OS_ARCH'] == 'SunOS': -+# OS_LIBS += [ -+# 'posix4', -+# 'dl', -+# 'nsl', -+# 'socket', -+# ] - - OS_LIBS += CONFIG['REALTIME_LIBS'] - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/util.py.old 2018-07-11 04:44:24.900000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/util.py 2018-07-11 04:46:47.310000000 +0000 -@@ -267,6 +267,10 @@ - if 'b' in self.mode: - writemode += 'b' - with open(self.name, writemode) as file: -+ if 'b' in self.mode and isinstance(buf, str): -+ buf = buf.encode('utf-8') -+ elif 'b' not in self.mode and isinstance(buf, bytes): -+ buf = buf.decode('utf-8') - file.write(buf) - - if self._capture_diff: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/backend/recursivemake.py.old 2018-07-11 04:47:15.020000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/backend/recursivemake.py 2018-07-11 04:53:51.750000000 +0000 -@@ -77,86 +77,86 @@ - from functools import reduce - - MOZBUILD_VARIABLES = [ -- b'ANDROID_APK_NAME', -- b'ANDROID_APK_PACKAGE', -- b'ANDROID_ASSETS_DIRS', -- b'ANDROID_EXTRA_PACKAGES', -- b'ANDROID_EXTRA_RES_DIRS', -- b'ANDROID_GENERATED_RESFILES', -- b'ANDROID_RES_DIRS', -- b'ASFLAGS', -- b'CMSRCS', -- b'CMMSRCS', -- b'CPP_UNIT_TESTS', -- b'DIRS', -- b'DIST_INSTALL', -- b'EXTRA_DSO_LDOPTS', -- b'EXTRA_JS_MODULES', -- b'EXTRA_PP_COMPONENTS', -- b'EXTRA_PP_JS_MODULES', -- b'FORCE_SHARED_LIB', -- b'FORCE_STATIC_LIB', -- b'FINAL_LIBRARY', -- b'HOST_CFLAGS', -- b'HOST_CSRCS', -- b'HOST_CMMSRCS', -- b'HOST_CXXFLAGS', -- b'HOST_EXTRA_LIBS', -- b'HOST_LIBRARY_NAME', -- b'HOST_PROGRAM', -- b'HOST_SIMPLE_PROGRAMS', -- b'IS_COMPONENT', -- b'JAR_MANIFEST', -- b'JAVA_JAR_TARGETS', -- b'LD_VERSION_SCRIPT', -- b'LIBRARY_NAME', -- b'LIBS', -- b'MAKE_FRAMEWORK', -- b'MODULE', -- b'NO_DIST_INSTALL', -- b'NO_EXPAND_LIBS', -- b'NO_INTERFACES_MANIFEST', -- b'NO_JS_MANIFEST', -- b'OS_LIBS', -- b'PARALLEL_DIRS', -- b'PREF_JS_EXPORTS', -- b'PROGRAM', -- b'PYTHON_UNIT_TESTS', -- b'RESOURCE_FILES', -- b'SDK_HEADERS', -- b'SDK_LIBRARY', -- b'SHARED_LIBRARY_LIBS', -- b'SHARED_LIBRARY_NAME', -- b'SIMPLE_PROGRAMS', -- b'SONAME', -- b'STATIC_LIBRARY_NAME', -- b'TEST_DIRS', -- b'TOOL_DIRS', -+ 'ANDROID_APK_NAME', -+ 'ANDROID_APK_PACKAGE', -+ 'ANDROID_ASSETS_DIRS', -+ 'ANDROID_EXTRA_PACKAGES', -+ 'ANDROID_EXTRA_RES_DIRS', -+ 'ANDROID_GENERATED_RESFILES', -+ 'ANDROID_RES_DIRS', -+ 'ASFLAGS', -+ 'CMSRCS', -+ 'CMMSRCS', -+ 'CPP_UNIT_TESTS', -+ 'DIRS', -+ 'DIST_INSTALL', -+ 'EXTRA_DSO_LDOPTS', -+ 'EXTRA_JS_MODULES', -+ 'EXTRA_PP_COMPONENTS', -+ 'EXTRA_PP_JS_MODULES', -+ 'FORCE_SHARED_LIB', -+ 'FORCE_STATIC_LIB', -+ 'FINAL_LIBRARY', -+ 'HOST_CFLAGS', -+ 'HOST_CSRCS', -+ 'HOST_CMMSRCS', -+ 'HOST_CXXFLAGS', -+ 'HOST_EXTRA_LIBS', -+ 'HOST_LIBRARY_NAME', -+ 'HOST_PROGRAM', -+ 'HOST_SIMPLE_PROGRAMS', -+ 'IS_COMPONENT', -+ 'JAR_MANIFEST', -+ 'JAVA_JAR_TARGETS', -+ 'LD_VERSION_SCRIPT', -+ 'LIBRARY_NAME', -+ 'LIBS', -+ 'MAKE_FRAMEWORK', -+ 'MODULE', -+ 'NO_DIST_INSTALL', -+ 'NO_EXPAND_LIBS', -+ 'NO_INTERFACES_MANIFEST', -+ 'NO_JS_MANIFEST', -+ 'OS_LIBS', -+ 'PARALLEL_DIRS', -+ 'PREF_JS_EXPORTS', -+ 'PROGRAM', -+ 'PYTHON_UNIT_TESTS', -+ 'RESOURCE_FILES', -+ 'SDK_HEADERS', -+ 'SDK_LIBRARY', -+ 'SHARED_LIBRARY_LIBS', -+ 'SHARED_LIBRARY_NAME', -+ 'SIMPLE_PROGRAMS', -+ 'SONAME', -+ 'STATIC_LIBRARY_NAME', -+ 'TEST_DIRS', -+ 'TOOL_DIRS', - # XXX config/Makefile.in specifies this in a make invocation - #'USE_EXTENSION_MANIFEST', -- b'XPCSHELL_TESTS', -- b'XPIDL_MODULE', -+ 'XPCSHELL_TESTS', -+ 'XPIDL_MODULE', - ] - - DEPRECATED_VARIABLES = [ -- b'ANDROID_RESFILES', -- b'EXPORT_LIBRARY', -- b'EXTRA_LIBS', -- b'HOST_LIBS', -- b'LIBXUL_LIBRARY', -- b'MOCHITEST_A11Y_FILES', -- b'MOCHITEST_BROWSER_FILES', -- b'MOCHITEST_BROWSER_FILES_PARTS', -- b'MOCHITEST_CHROME_FILES', -- b'MOCHITEST_FILES', -- b'MOCHITEST_FILES_PARTS', -- b'MOCHITEST_METRO_FILES', -- b'MOCHITEST_ROBOCOP_FILES', -- b'MODULE_OPTIMIZE_FLAGS', -- b'MOZ_CHROME_FILE_FORMAT', -- b'SHORT_LIBNAME', -- b'TESTING_JS_MODULES', -- b'TESTING_JS_MODULE_DIR', -+ 'ANDROID_RESFILES', -+ 'EXPORT_LIBRARY', -+ 'EXTRA_LIBS', -+ 'HOST_LIBS', -+ 'LIBXUL_LIBRARY', -+ 'MOCHITEST_A11Y_FILES', -+ 'MOCHITEST_BROWSER_FILES', -+ 'MOCHITEST_BROWSER_FILES_PARTS', -+ 'MOCHITEST_CHROME_FILES', -+ 'MOCHITEST_FILES', -+ 'MOCHITEST_FILES_PARTS', -+ 'MOCHITEST_METRO_FILES', -+ 'MOCHITEST_ROBOCOP_FILES', -+ 'MODULE_OPTIMIZE_FLAGS', -+ 'MOZ_CHROME_FILE_FORMAT', -+ 'SHORT_LIBNAME', -+ 'TESTING_JS_MODULES', -+ 'TESTING_JS_MODULE_DIR', - ] - - MOZBUILD_VARIABLES_MESSAGE = 'It should only be defined in moz.build files.' -@@ -758,7 +758,7 @@ - rule.add_dependencies(['$(CURDIR)/%: %']) - - def _check_blacklisted_variables(self, makefile_in, makefile_content): -- if b'EXTERNALLY_MANAGED_MAKE_FILE' in makefile_content: -+ if 'EXTERNALLY_MANAGED_MAKE_FILE' in makefile_content: - # Bypass the variable restrictions for externally managed makefiles. - return - -@@ -765,7 +765,7 @@ - for l in makefile_content.splitlines(): - l = l.strip() - # Don't check comments -- if l.startswith(b'#'): -+ if l.startswith('#'): - continue - for x in chain(MOZBUILD_VARIABLES, DEPRECATED_VARIABLES): - if x not in l: -@@ -822,11 +822,11 @@ - # Skip every directory but those with a Makefile - # containing a tools target, or XPI_PKGNAME or - # INSTALL_EXTENSION_ID. -- for t in (b'XPI_PKGNAME', b'INSTALL_EXTENSION_ID', -- b'tools'): -+ for t in ('XPI_PKGNAME', 'INSTALL_EXTENSION_ID', -+ 'tools'): - if t not in content: - continue -- if t == b'tools' and not re.search('(?:^|\s)tools.*::', content, re.M): -+ if t == 'tools' and not re.search('(?:^|\s)tools.*::', content, re.M): - continue - if objdir == self.environment.topobjdir: - continue -@@ -1422,20 +1422,20 @@ - pp.context.update(extra) - if not pp.context.get('autoconfmk', ''): - pp.context['autoconfmk'] = 'autoconf.mk' -- pp.handleLine(b'# THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT MODIFY BY HAND.\n'); -- pp.handleLine(b'DEPTH := @DEPTH@\n') -- pp.handleLine(b'topobjdir := @topobjdir@\n') -- pp.handleLine(b'topsrcdir := @top_srcdir@\n') -- pp.handleLine(b'srcdir := @srcdir@\n') -- pp.handleLine(b'VPATH := @srcdir@\n') -- pp.handleLine(b'relativesrcdir := @relativesrcdir@\n') -- pp.handleLine(b'include $(DEPTH)/config/@autoconfmk@\n') -+ pp.handleLine('# THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT MODIFY BY HAND.\n'); -+ pp.handleLine('DEPTH := @DEPTH@\n') -+ pp.handleLine('topobjdir := @topobjdir@\n') -+ pp.handleLine('topsrcdir := @top_srcdir@\n') -+ pp.handleLine('srcdir := @srcdir@\n') -+ pp.handleLine('VPATH := @srcdir@\n') -+ pp.handleLine('relativesrcdir := @relativesrcdir@\n') -+ pp.handleLine('include $(DEPTH)/config/@autoconfmk@\n') - if not stub: - pp.do_include(obj.input_path) - # Empty line to avoid failures when last line in Makefile.in ends - # with a backslash. -- pp.handleLine(b'\n') -- pp.handleLine(b'include $(topsrcdir)/config/recurse.mk\n') -+ pp.handleLine('\n') -+ pp.handleLine('include $(topsrcdir)/config/recurse.mk\n') - if not stub: - # Adding the Makefile.in here has the desired side-effect - # that if the Makefile.in disappears, this will force ---- firefox-52.9.0esr/python/mozbuild/mozpack/manifests.py.old 2018-07-11 04:54:39.260000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozpack/manifests.py 2018-07-11 04:57:31.710000000 +0000 -@@ -115,7 +115,7 @@ - self._source_files = set() - - if path or fileobj: -- with _auto_fileobj(path, fileobj, 'rb') as fh: -+ with _auto_fileobj(path, fileobj, 'r') as fh: - self._source_files.add(fh.name) - self._load_from_fileobj(fh) - -@@ -174,7 +174,7 @@ - dest, content = fields[1:] - - self.add_content( -- self._decode_field_entry(content).encode('utf-8'), dest) -+ self._decode_field_entry(content), dest) - continue - - # Don't fail for non-actionable items, allowing -@@ -236,7 +236,7 @@ - - It is an error if both are specified. - """ -- with _auto_fileobj(path, fileobj, 'wb') as fh: -+ with _auto_fileobj(path, fileobj, 'w') as fh: - fh.write('%d\n' % self.CURRENT_VERSION) - - for dest in sorted(self._dests): -@@ -244,8 +244,7 @@ - - parts = ['%d' % entry[0], dest] - parts.extend(entry[1:]) -- fh.write('%s\n' % self.FIELD_SEPARATOR.join( -- p.encode('utf-8') for p in parts)) -+ fh.write('%s\n' % self.FIELD_SEPARATOR.join(parts)) - - def add_symlink(self, source, dest): - """Add a symlink to this manifest. -@@ -391,7 +390,7 @@ - if install_type == self.CONTENT: - # GeneratedFile expect the buffer interface, which the unicode - # type doesn't have, so encode to a str. -- content = self._decode_field_entry(entry[1]).encode('utf-8') -+ content = self._decode_field_entry(entry[1]) - registry.add(dest, GeneratedFile(content)) - continue - ---- firefox-52.9.0esr/config/MozZipFile.py (original) -+++ firefox-52.9.0esr/config/MozZipFile.py (refactored) -@@ -18,7 +18,7 @@ - def __init__(self, file, mode="r", compression=zipfile.ZIP_STORED, - lock = False): - if lock: -- assert isinstance(file, basestring) -+ assert isinstance(file, str) - self.lockfile = lock_file(file + '.lck') - else: - self.lockfile = None -@@ -46,7 +46,7 @@ - date_time=time.localtime(time.time())) - zinfo.compress_type = self.compression - # Add some standard UNIX file access permissions (-rw-r--r--). -- zinfo.external_attr = (0x81a4 & 0xFFFF) << 16L -+ zinfo.external_attr = (0x81a4 & 0xFFFF) << 16 - else: - zinfo = zinfo_or_arcname - -@@ -58,7 +58,7 @@ - # as the old, reuse the existing entry. - - doSeek = False # store if we need to seek to the eof after overwriting -- if self.NameToInfo.has_key(zinfo.filename): -+ if zinfo.filename in self.NameToInfo: - # Find the last ZipInfo with our name. - # Last, because that's catching multiple overwrites - i = len(self.filelist) -@@ -109,14 +109,14 @@ - # adjust file mode if we originally just wrote, now we rewrite - self.fp.close() - self.fp = open(self.filename, 'r+b') -- all = map(lambda zi: (zi, True), self.filelist) + \ -- map(lambda zi: (zi, False), self._remove) -+ all = [(zi, True) for zi in self.filelist] + \ -+ [(zi, False) for zi in self._remove] - all.sort(lambda l, r: cmp(l[0].header_offset, r[0].header_offset)) - # empty _remove for multiple closes - self._remove = [] - - lengths = [all[i+1][0].header_offset - all[i][0].header_offset -- for i in xrange(len(all)-1)] -+ for i in range(len(all)-1)] - lengths.append(self.end - all[-1][0].header_offset) - to_pos = 0 - for (zi, keep), length in zip(all, lengths): ---- firefox-52.9.0esr/config/check_spidermonkey_style.py (original) -+++ firefox-52.9.0esr/config/check_spidermonkey_style.py (refactored) -@@ -35,7 +35,7 @@ - # isolation, but don't try to do any order checking between such blocks. - #---------------------------------------------------------------------------- - --from __future__ import print_function -+ - - import difflib - import os -@@ -270,7 +270,7 @@ - edges[inclname] = set() - - # Process all the JS files. -- for filename in js_names.keys(): -+ for filename in list(js_names.keys()): - inclname = js_names[filename] - file_kind = FileKind.get(filename) - if file_kind == FileKind.C or file_kind == FileKind.CPP or \ ---- firefox-52.9.0esr/config/expandlibs.py (original) -+++ firefox-52.9.0esr/config/expandlibs.py (refactored) -@@ -26,7 +26,7 @@ - descriptor contains. And for each of these LIBS, also apply the same - rules. - ''' --from __future__ import with_statement -+ - import sys, os, errno - import expandlibs_config as conf - -@@ -36,7 +36,7 @@ - if dir and not os.path.exists(dir): - try: - os.makedirs(dir) -- except OSError, error: -+ except OSError as error: - if error.errno != errno.EEXIST: - raise - -@@ -140,4 +140,4 @@ - return [relativize(arg)] - - if __name__ == '__main__': -- print " ".join(ExpandArgs(sys.argv[1:])) -+ print(" ".join(ExpandArgs(sys.argv[1:]))) ---- firefox-52.9.0esr/config/expandlibs_exec.py (original) -+++ firefox-52.9.0esr/config/expandlibs_exec.py (refactored) -@@ -20,7 +20,7 @@ - relevant linker options to change the order in which the linker puts the - symbols appear in the resulting binary. Only works for ELF targets. - ''' --from __future__ import with_statement -+ - import sys - import os - from expandlibs import ( -@@ -304,11 +304,11 @@ - return syms - - def print_command(out, args): -- print >>out, "Executing: " + " ".join(args) -+ print("Executing: " + " ".join(args), file=out) - for tmp in [f for f in args.tmp if os.path.isfile(f)]: -- print >>out, tmp + ":" -+ print(tmp + ":", file=out) - with open(tmp) as file: -- print >>out, "".join([" " + l for l in file.readlines()]) -+ print("".join([" " + l for l in file.readlines()]), file=out) - out.flush() - - def main(args, proc_callback=None): -@@ -338,8 +338,8 @@ - proc = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) - if proc_callback: - proc_callback(proc) -- except Exception, e: -- print >>sys.stderr, 'error: Launching', args, ':', e -+ except Exception as e: -+ print('error: Launching', args, ':', e, file=sys.stderr) - raise e - (stdout, stderr) = proc.communicate() - if proc.returncode and not options.verbose: ---- firefox-52.9.0esr/config/expandlibs_gen.py (original) -+++ firefox-52.9.0esr/config/expandlibs_gen.py (refactored) -@@ -5,7 +5,7 @@ - '''Given a list of object files and library names, prints a library - descriptor to standard output''' - --from __future__ import with_statement -+ - import sys - import os - import expandlibs_config as conf -@@ -38,4 +38,4 @@ - - ensureParentDir(options.output) - with open(options.output, 'w') as outfile: -- print >>outfile, generate(args) -+ print(generate(args), file=outfile) ---- firefox-52.9.0esr/config/find_OOM_errors.py (original) -+++ firefox-52.9.0esr/config/find_OOM_errors.py (refactored) -@@ -2,7 +2,7 @@ - # This Source Code Form is subject to the terms of the Mozilla Public - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. --from __future__ import print_function -+ - - usage = """%prog: A test for OOM conditions in the shell. - -@@ -95,12 +95,12 @@ - """Keep track of the amount of times individual lines occur, in order to - prioritize the errors which occur most frequently.""" - counts = {} -- for string,count in blacklist.items(): -+ for string,count in list(blacklist.items()): - for line in string.split("\n"): - counts[line] = counts.get(line, 0) + count - - lines = [] -- for k,v in counts.items(): -+ for k,v in list(counts.items()): - lines.append("{0:6}: {1}".format(v, k)) - - lines.sort() ---- firefox-52.9.0esr/config/link.py (original) -+++ firefox-52.9.0esr/config/link.py (refactored) -@@ -18,7 +18,7 @@ - time.sleep(0.5) - idleTime += 0.5 - if idleTime > 20 * 60: -- print "Still linking, 20 minutes passed..." -+ print("Still linking, 20 minutes passed...") - sys.stdout.flush() - idleTime = 0 - -@@ -42,6 +42,6 @@ - - if __name__ == "__main__": - if len(sys.argv) < 2: -- print >>sys.stderr, "Usage: link.py " -+ print("Usage: link.py ", file=sys.stderr) - sys.exit(1) - sys.exit(wrap_linker(sys.argv[1:])) ---- firefox-52.9.0esr/config/mozunit.py (original) -+++ firefox-52.9.0esr/config/mozunit.py (refactored) -@@ -140,7 +140,7 @@ - ''' - def __init__(self, files = {}): - self.files = {} -- for name, content in files.iteritems(): -+ for name, content in files.items(): - self.files[normcase(os.path.abspath(name))] = content - - def __call__(self, name, mode = 'r'): -@@ -158,19 +158,19 @@ - return file - - def __enter__(self): -- import __builtin__ -- self.open = __builtin__.open -+ import builtins -+ self.open = builtins.open - self._orig_path_exists = os.path.exists - self._orig_path_isdir = os.path.isdir - self._orig_path_isfile = os.path.isfile -- __builtin__.open = self -+ builtins.open = self - os.path.exists = self._wrapped_exists - os.path.isdir = self._wrapped_isdir - os.path.isfile = self._wrapped_isfile - - def __exit__(self, type, value, traceback): -- import __builtin__ -- __builtin__.open = self.open -+ import builtins -+ builtins.open = self.open - os.path.exists = self._orig_path_exists - os.path.isdir = self._orig_path_isdir - os.path.isfile = self._orig_path_isfile ---- firefox-52.9.0esr/config/nsinstall.py (original) -+++ firefox-52.9.0esr/config/nsinstall.py (refactored) -@@ -9,7 +9,7 @@ - # a full build environment set up. - # The basic limitation is, it doesn't even try to link and ignores - # all related options. --from __future__ import print_function -+ - from optparse import OptionParser - import mozfile - import os -@@ -149,7 +149,7 @@ - - # nsinstall as a native command is always UTF-8 - def nsinstall(argv): -- return _nsinstall_internal([unicode(arg, "utf-8") for arg in argv]) -+ return _nsinstall_internal([str(arg, "utf-8") for arg in argv]) - - if __name__ == '__main__': - # sys.argv corrupts characters outside the system code page on Windows -@@ -175,8 +175,8 @@ - else: - # For consistency, do it on Unix as well - if sys.stdin.encoding is not None: -- argv = [unicode(arg, sys.stdin.encoding) for arg in sys.argv] -+ argv = [str(arg, sys.stdin.encoding) for arg in sys.argv] - else: -- argv = [unicode(arg) for arg in sys.argv] -+ argv = [str(arg) for arg in sys.argv] - - sys.exit(_nsinstall_internal(argv[1:])) ---- firefox-52.9.0esr/config/printconfigsetting.py (original) -+++ firefox-52.9.0esr/config/printconfigsetting.py (refactored) -@@ -5,12 +5,12 @@ - import configobj - import sys - import re --from StringIO import StringIO -+from io import StringIO - - try: - (file, section, key) = sys.argv[1:] - except ValueError: -- print "Usage: printconfigsetting.py
" -+ print("Usage: printconfigsetting.py
") - sys.exit(1) - - with open(file) as fh: -@@ -21,11 +21,11 @@ - try: - s = c[section] - except KeyError: -- print >>sys.stderr, "Section [%s] not found." % section -+ print("Section [%s] not found." % section, file=sys.stderr) - sys.exit(1) - - try: -- print s[key] -+ print(s[key]) - except KeyError: -- print >>sys.stderr, "Key %s not found." % key -+ print("Key %s not found." % key, file=sys.stderr) - sys.exit(1) ---- firefox-52.9.0esr/config/pythonpath.py (original) -+++ firefox-52.9.0esr/config/pythonpath.py (refactored) -@@ -9,7 +9,7 @@ - - def main(args): - def usage(): -- print >>sys.stderr, "pythonpath.py -I directory script.py [args...]" -+ print("pythonpath.py -I directory script.py [args...]", file=sys.stderr) - sys.exit(150) - - paths = [] -@@ -45,7 +45,7 @@ - frozenglobals['__name__'] = '__main__' - frozenglobals['__file__'] = script - -- execfile(script, frozenglobals) -+ exec(compile(open(script).read(), script, 'exec'), frozenglobals) - - # Freeze scope here ... why this makes things work I have no idea ... - frozenglobals = globals() ---- firefox-52.9.0esr/config/rebuild_check.py (original) -+++ firefox-52.9.0esr/config/rebuild_check.py (refactored) -@@ -18,7 +18,7 @@ - deps = args[1:] - t = mtime(target) - if t < 0: -- print target -+ print(target) - return - - newer = [] -@@ -31,13 +31,13 @@ - newer.append(dep) - - if newer and removed: -- print 'Rebuilding %s because %s changed and %s was removed' % (target, ', '.join(newer), ', '.join(removed)) -+ print('Rebuilding %s because %s changed and %s was removed' % (target, ', '.join(newer), ', '.join(removed))) - elif newer: -- print 'Rebuilding %s because %s changed' % (target, ', '.join(newer)) -+ print('Rebuilding %s because %s changed' % (target, ', '.join(newer))) - elif removed: -- print 'Rebuilding %s because %s was removed' % (target, ', '.join(removed)) -+ print('Rebuilding %s because %s was removed' % (target, ', '.join(removed))) - else: -- print 'Rebuilding %s for an unknown reason' % target -+ print('Rebuilding %s for an unknown reason' % target) - - if __name__ == '__main__': - import sys ---- firefox-52.9.0esr/config/tests/unit-expandlibs.py (original) -+++ firefox-52.9.0esr/config/tests/unit-expandlibs.py (refactored) -@@ -7,7 +7,7 @@ - from shutil import rmtree - import mozunit - --from UserString import UserString -+from collections import UserString - # Create a controlled configuration for use by expandlibs - config_win = { - 'AR': 'lib', -@@ -120,8 +120,7 @@ - del dict[name] - return type.__new__(cls, clsName, bases, dict) - --class TestCaseWithTmpDir(unittest.TestCase): -- __metaclass__ = ReplicateTests -+class TestCaseWithTmpDir(unittest.TestCase, metaclass=ReplicateTests): - def init(self): - self.tmpdir = os.path.abspath(mkdtemp(dir=os.curdir)) - ---- firefox-52.9.0esr/config/tests/unit-nsinstall.py (original) -+++ firefox-52.9.0esr/config/tests/unit-nsinstall.py (refactored) -@@ -28,9 +28,9 @@ - # Unicode strings means non-ASCII children can be deleted properly on - # Windows - if sys.stdin.encoding is None: -- tmpdir = unicode(self.tmpdir) -+ tmpdir = str(self.tmpdir) - else: -- tmpdir = unicode(self.tmpdir, sys.stdin.encoding) -+ tmpdir = str(self.tmpdir, sys.stdin.encoding) - rmtree(tmpdir) - - # utility methods for tests -@@ -50,14 +50,14 @@ - "Test nsinstall -D " - testdir = os.path.join(self.tmpdir, "test") - self.assertEqual(nsinstall(["-D", testdir]), 0) -- self.assert_(os.path.isdir(testdir)) -+ self.assertTrue(os.path.isdir(testdir)) - - def test_nsinstall_basic(self): - "Test nsinstall " - testfile = self.touch("testfile") - testdir = self.mkdirs("testdir") - self.assertEqual(nsinstall([testfile, testdir]), 0) -- self.assert_(os.path.isfile(os.path.join(testdir, "testfile"))) -+ self.assertTrue(os.path.isfile(os.path.join(testdir, "testfile"))) - - def test_nsinstall_basic_recursive(self): - "Test nsinstall " -@@ -76,12 +76,12 @@ - '-X', Xdir]), 0) - - testdir = os.path.join(destdir, "sourcedir") -- self.assert_(os.path.isdir(testdir)) -- self.assert_(os.path.isfile(os.path.join(testdir, "testfile"))) -- self.assert_(not os.path.exists(os.path.join(testdir, "Xfile"))) -- self.assert_(os.path.isdir(os.path.join(testdir, "copieddir"))) -- self.assert_(os.path.isfile(os.path.join(testdir, "copieddir", "testfile2"))) -- self.assert_(not os.path.exists(os.path.join(testdir, "Xdir"))) -+ self.assertTrue(os.path.isdir(testdir)) -+ self.assertTrue(os.path.isfile(os.path.join(testdir, "testfile"))) -+ self.assertTrue(not os.path.exists(os.path.join(testdir, "Xfile"))) -+ self.assertTrue(os.path.isdir(os.path.join(testdir, "copieddir"))) -+ self.assertTrue(os.path.isfile(os.path.join(testdir, "copieddir", "testfile2"))) -+ self.assertTrue(not os.path.exists(os.path.join(testdir, "Xdir"))) - - def test_nsinstall_multiple(self): - "Test nsinstall " -@@ -91,7 +91,7 @@ - testdir = self.mkdirs("testdir") - self.assertEqual(nsinstall(testfiles + [testdir]), 0) - for f in testfiles: -- self.assert_(os.path.isfile(os.path.join(testdir, -+ self.assertTrue(os.path.isfile(os.path.join(testdir, - os.path.basename(f)))) - - def test_nsinstall_dir_exists(self): -@@ -99,7 +99,7 @@ - srcdir = self.mkdirs("test") - destdir = self.mkdirs("testdir/test") - self.assertEqual(nsinstall([srcdir, os.path.dirname(destdir)]), 0) -- self.assert_(os.path.isdir(destdir)) -+ self.assertTrue(os.path.isdir(destdir)) - - def test_nsinstall_t(self): - "Test that nsinstall -t works (preserve timestamp)" -@@ -110,7 +110,7 @@ - os.utime(testfile, (t, t)) - self.assertEqual(nsinstall(["-t", testfile, testdir]), 0) - destfile = os.path.join(testdir, "testfile") -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - self.assertEqual(os.stat(testfile).st_mtime, - os.stat(destfile).st_mtime) - -@@ -125,7 +125,7 @@ - self.assertEqual(nsinstall(["-m", "{0:04o}" - .format(mode), testfile, testdir]), 0) - destfile = os.path.join(testdir, "testfile") -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - self.assertEqual(os.stat(testfile).st_mode, - os.stat(destfile).st_mode) - -@@ -136,25 +136,25 @@ - testdir = self.mkdirs("testdir") - destdir = os.path.join(testdir, "subdir") - self.assertEqual(nsinstall(["-d", testfile, destdir]), 0) -- self.assert_(os.path.isdir(os.path.join(destdir, "testfile"))) -+ self.assertTrue(os.path.isdir(os.path.join(destdir, "testfile"))) - - if RUN_NON_ASCII_TESTS: - def test_nsinstall_non_ascii(self): - "Test that nsinstall handles non-ASCII files" -- filename = u"\u2325\u3452\u2415\u5081" -+ filename = "\u2325\u3452\u2415\u5081" - testfile = self.touch(filename) -- testdir = self.mkdirs(u"\u4241\u1D04\u1414") -+ testdir = self.mkdirs("\u4241\u1D04\u1414") - self.assertEqual(nsinstall([testfile.encode("utf-8"), - testdir.encode("utf-8")]), 0) - - destfile = os.path.join(testdir, filename) -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - - def test_nsinstall_non_ascii_subprocess(self): - "Test that nsinstall as a subprocess handles non-ASCII files" -- filename = u"\u2325\u3452\u2415\u5081" -+ filename = "\u2325\u3452\u2415\u5081" - testfile = self.touch(filename) -- testdir = self.mkdirs(u"\u4241\u1D04\u1414") -+ testdir = self.mkdirs("\u4241\u1D04\u1414") - # We don't use subprocess because it can't handle Unicode on - # Windows . mozprocess calls - # CreateProcessW directly so it's perfect. -@@ -166,7 +166,7 @@ - - self.assertEqual(rv, 0) - destfile = os.path.join(testdir, filename) -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - - #TODO: implement -R, -l, -L and test them! - ---- firefox-52.9.0esr/config/tests/unitMozZipFile.py (original) -+++ firefox-52.9.0esr/config/tests/unitMozZipFile.py (refactored) -@@ -11,6 +11,7 @@ - import random - import copy - from string import letters -+from functools import reduce - - ''' - Test case infrastructure for MozZipFile. -@@ -38,7 +39,7 @@ - 'firstdir/oneleaf', - 'seconddir/twoleaf', - 'thirddir/with/sub/threeleaf') --_lengths = map(lambda n: n * 64, [16, 64, 80]) -+_lengths = [n * 64 for n in [16, 64, 80]] - lengths = 3 - writes = 5 - -@@ -71,7 +72,7 @@ - def getContent(length): - 'Get pseudo random content of given length.' - rv = [None] * length -- for i in xrange(length): -+ for i in range(length): - rv[i] = random.choice(letters) - return ''.join(rv) - -@@ -133,13 +134,13 @@ - def _verifyZip(self): - zf = zipfile.ZipFile(self.f) - badEntry = zf.testzip() -- self.failIf(badEntry, badEntry) -+ self.assertFalse(badEntry, badEntry) - zlist = zf.namelist() - zlist.sort() -- vlist = self.ref.keys() -+ vlist = list(self.ref.keys()) - vlist.sort() - self.assertEqual(zlist, vlist) -- for leaf, content in self.ref.iteritems(): -+ for leaf, content in self.ref.items(): - zcontent = zf.read(leaf) - self.assertEqual(content, zcontent) - -@@ -158,16 +159,16 @@ - open(self.leaf('stage', leaf), 'w').write(content) - - # all leafs in all lengths --atomics = list(prod(xrange(len(leafs)), xrange(lengths))) -+atomics = list(prod(range(len(leafs)), range(lengths))) - - # populate TestExtensiveStore with testcases --for w in xrange(writes): -+for w in range(writes): - # Don't iterate over all files for the the first n passes, - # those are redundant as long as w < lengths. - # There are symmetries in the trailing end, too, but I don't know - # how to reduce those out right now. -- nonatomics = [list(prod(range(min(i,len(leafs))), xrange(lengths))) -- for i in xrange(1, w+1)] + [atomics] -+ nonatomics = [list(prod(list(range(min(i,len(leafs)))), range(lengths))) -+ for i in range(1, w+1)] + [atomics] - for descs in prod(*nonatomics): - suffix = getid(descs) - dicts = [dict(leaf=leaf, length=length) for leaf, length in descs] -@@ -181,9 +182,9 @@ - # and then write all atomics again. - # This should catch more or less all artifacts generated - # by the final ordering step when closing the jar. --files = [list(prod([i], xrange(lengths))) for i in xrange(len(leafs))] -+files = [list(prod([i], range(lengths))) for i in range(len(leafs))] - allfiles = reduce(lambda l,r:l+r, -- [list(prod(*files[:(i+1)])) for i in xrange(len(leafs))]) -+ [list(prod(*files[:(i+1)])) for i in range(len(leafs))]) - - for first in allfiles: - testbasename = 'test{0}_'.format(getid(first)) ---- firefox-52.9.0esr/config/expandlibs_exec.py.old 2018-07-11 05:07:18.280000000 +0000 -+++ firefox-52.9.0esr/config/expandlibs_exec.py 2018-07-11 05:08:45.670000000 +0000 -@@ -344,7 +344,7 @@ - (stdout, stderr) = proc.communicate() - if proc.returncode and not options.verbose: - print_command(sys.stderr, args) -- sys.stderr.write(stdout) -+ sys.stderr.write(stdout.decode('utf-8')) - sys.stderr.flush() - if proc.returncode: - return proc.returncode ---- firefox-52.9.0esr/js/src/jsautokw.py.old 2017-04-11 02:13:16.000000000 +0000 -+++ firefox-52.9.0esr/js/src/jsautokw.py 2018-07-11 05:11:27.080000000 +0000 -@@ -80,14 +80,14 @@ - per_column = column_dict.setdefault(keyword[column], []) - per_column.append(item) - -- return sorted(column_dict.items(), key=lambda (char, keyword): ord(char)) -+ return sorted(list(column_dict.items()), key=lambda char_keyword: ord(char_keyword[0])) - - def generate_letter_switch(opt, unprocessed_columns, keyword_list, - columns=None): - assert(len(keyword_list) != 0); - - if not columns: -- columns = range(0, unprocessed_columns) -+ columns = list(range(0, unprocessed_columns)) - - if len(keyword_list) == 1: - index, keyword = keyword_list[0] -@@ -161,7 +161,7 @@ - per_length = length_dict.setdefault(len(keyword), []) - per_length.append(item) - -- return sorted(length_dict.items(), key=lambda (length, keyword): length) -+ return sorted(list(length_dict.items()), key=lambda length_keyword: length_keyword[0]) - - def generate_switch(opt, keyword_list): - assert(len(keyword_list) != 0); ---- firefox-52.9.0esr/js/src/builtin/embedjs.py (original) -+++ firefox-52.9.0esr/js/src/builtin/embedjs.py (refactored) -@@ -36,7 +36,7 @@ - # - # It uses the C preprocessor to process its inputs. - --from __future__ import with_statement -+ - import re, sys, os, subprocess - import shlex - import which -@@ -109,7 +109,7 @@ - - with open(tmpIn, 'wb') as input: - input.write(source) -- print(' '.join(cxx + outputArg + args + [tmpIn])) -+ print((' '.join(cxx + outputArg + args + [tmpIn]))) - result = subprocess.Popen(cxx + outputArg + args + [tmpIn]).wait() - if (result != 0): - sys.exit(result); -@@ -132,7 +132,7 @@ - - def get_config_defines(buildconfig): - # Collect defines equivalent to ACDEFINES and add MOZ_DEBUG_DEFINES. -- env = {key: value for key, value in buildconfig.defines.iteritems() -+ env = {key: value for key, value in buildconfig.defines.items() - if key not in buildconfig.non_global_defines} - for define in buildconfig.substs['MOZ_DEBUG_DEFINES']: - env[define] = 1 ---- firefox-52.9.0esr/js/src/builtin/embedjs.py.old 2018-07-11 05:13:28.920000000 +0000 -+++ firefox-52.9.0esr/js/src/builtin/embedjs.py 2018-07-11 05:15:15.390000000 +0000 -@@ -107,7 +107,7 @@ - tmpOut = 'self-hosting-preprocessed.pp'; - outputArg = shlex.split(preprocessorOption + tmpOut) - -- with open(tmpIn, 'wb') as input: -+ with open(tmpIn, 'w') as input: - input.write(source) - print((' '.join(cxx + outputArg + args + [tmpIn]))) - result = subprocess.Popen(cxx + outputArg + args + [tmpIn]).wait() ---- firefox-52.9.0esr/python/mozbuild/mozbuild/preprocessor.py.old 2018-07-11 05:15:42.900000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/preprocessor.py 2018-07-11 05:23:10.870000000 +0000 -@@ -451,7 +451,7 @@ - except OSError as error: - if error.errno != errno.EEXIST: - raise -- return open(path, 'wb') -+ return open(path, 'w') - - p = self.getCommandLineParser() - options, args = p.parse_args(args=args) ---- firefox-52.9.0esr/js/src/builtin/embedjs.py.old 2018-07-11 05:15:42.950000000 +0000 -+++ firefox-52.9.0esr/js/src/builtin/embedjs.py 2018-07-11 05:20:14.280000000 +0000 -@@ -53,7 +53,7 @@ - def ToCArray(lines): - result = [] - for chr in lines: -- result.append(str(ord(chr))) -+ result.append(str(chr)) - return ", ".join(result) - - HEADER_TEMPLATE = """\ -@@ -87,7 +87,7 @@ - - js_out.write(processed) - import zlib -- compressed = zlib.compress(processed) -+ compressed = zlib.compress(processed.encode('utf-8')) - data = ToCArray(compressed) - c_out.write(HEADER_TEMPLATE % { - 'sources_type': 'unsigned char', ---- firefox-52.9.0esr/build/mach_bootstrap.py.old 2018-06-29 23:00:39.000000000 +0000 -+++ firefox-52.9.0esr/build/mach_bootstrap.py 2018-07-26 00:41:17.740000000 +0000 -@@ -12,7 +12,7 @@ - import subprocess - import sys - import uuid --import __builtin__ -+import builtins - - from types import ModuleType - -@@ -187,10 +187,10 @@ - # Ensure we are running Python 2.7+. We put this check here so we generate a - # user-friendly error message rather than a cryptic stack trace on module - # import. -- if sys.version_info[0] != 2 or sys.version_info[1] < 7: -- print('Python 2.7 or above (but not Python 3) is required to run mach.') -- print('You are running Python', platform.python_version()) -- sys.exit(1) -+ #if sys.version_info[0] != 2 or sys.version_info[1] < 7: -+ # print('Python 2.7 or above (but not Python 3) is required to run mach.') -+ # print('You are running Python', platform.python_version()) -+ # sys.exit(1) - - # Global build system and mach state is stored in a central directory. By - # default, this is ~/.mozbuild. However, it can be defined via an -@@ -410,4 +410,4 @@ - - - # Install our hook --__builtin__.__import__ = ImportHook(__builtin__.__import__) -+builtins.__import__ = ImportHook(builtins.__import__) ---- firefox-52.9.0esr/python/mach/mach/config.py (original) -+++ firefox-52.9.0esr/python/mach/mach/config.py (refactored) -@@ -163,7 +163,7 @@ - return func(*args, **kwargs) - except KeyError: - exc_class, exc, tb = sys.exc_info() -- raise AttributeError().__class__, exc, tb -+ raise AttributeError().__class__(exc).with_traceback(tb) - return _ - - -@@ -357,7 +357,7 @@ - extra -- A dict of additional key/value pairs to add to the - setting metadata. - """ -- if isinstance(type_cls, basestring): -+ if isinstance(type_cls, str_type): - type_cls = TYPE_CLASSES[type_cls] - - meta = { -@@ -397,10 +397,10 @@ - meta = self._format_metadata(provider, section, option, *setting[1:]) - config_settings[section][option] = meta - -- for section_name, settings in config_settings.items(): -+ for section_name, settings in list(config_settings.items()): - section = self._settings.get(section_name, {}) - -- for k, v in settings.items(): -+ for k, v in list(settings.items()): - if k in section: - raise ConfigException('Setting already registered: %s.%s' % - section_name, k) -@@ -432,7 +432,7 @@ - if self._finalized: - return - -- for section, settings in self._settings.items(): -+ for section, settings in list(self._settings.items()): - s = ConfigSettings.ConfigSection(self._config, section, settings) - self._sections[section] = s - -@@ -445,7 +445,7 @@ - def __iter__(self): - self._finalize() - -- return iter(self._sections.keys()) -+ return iter(list(self._sections.keys())) - - def __contains__(self, k): - return k in self._settings ---- firefox-52.9.0esr/python/mach/mach/dispatcher.py (original) -+++ firefox-52.9.0esr/python/mach/mach/dispatcher.py (refactored) -@@ -243,7 +243,7 @@ - r = self._mach_registrar - disabled_commands = [] - -- cats = [(k, v[2]) for k, v in r.categories.items()] -+ cats = [(k, v[2]) for k, v in list(r.categories.items())] - sorted_cats = sorted(cats, key=itemgetter(1), reverse=True) - for category, priority in sorted_cats: - group = None -@@ -375,7 +375,7 @@ - ' subcommand [subcommand arguments]' - group = parser.add_argument_group('Sub Commands') - -- for subcommand, subhandler in sorted(handler.subcommand_handlers.iteritems()): -+ for subcommand, subhandler in sorted(handler.subcommand_handlers.items()): - group.add_argument(subcommand, help=subhandler.description, - action='store_true') - -@@ -406,7 +406,7 @@ - - def _suggest_command(self, command): - # Make sure we don't suggest any deprecated commands. -- names = [h.name for h in self._mach_registrar.command_handlers.values() -+ names = [h.name for h in list(self._mach_registrar.command_handlers.values()) - if h.cls.__name__ != 'DeprecatedCommands'] - # We first try to look for a valid command that is very similar to the given command. - suggested_commands = difflib.get_close_matches(command, names, cutoff=0.8) -@@ -437,13 +437,13 @@ - if not docstring: - return '' - lines = docstring.expandtabs().splitlines() -- indent = sys.maxint -+ indent = sys.maxsize - for line in lines[1:]: - stripped = line.lstrip() - if stripped: - indent = min(indent, len(line) - len(stripped)) - trimmed = [lines[0].strip()] -- if indent < sys.maxint: -+ if indent < sys.maxsize: - for line in lines[1:]: - trimmed.append(line[indent:].rstrip()) - while trimmed and not trimmed[-1]: ---- firefox-52.9.0esr/python/mach/mach/main.py (original) -+++ firefox-52.9.0esr/python/mach/mach/main.py (refactored) -@@ -528,7 +528,7 @@ - - machrc, .machrc - """ -- if isinstance(paths, basestring): -+ if isinstance(paths, str): - paths = [paths] - - valid_names = ('machrc', '.machrc') -@@ -541,8 +541,8 @@ - if os.path.isfile(path): - return path - -- files = map(find_in_dir, self.settings_paths) -- files = filter(bool, files) -+ files = list(map(find_in_dir, self.settings_paths)) -+ files = list(filter(bool, files)) - - self.settings.load_files(files) - ---- firefox-52.9.0esr/python/mach/mach/registrar.py (original) -+++ firefox-52.9.0esr/python/mach/mach/registrar.py (refactored) -@@ -90,7 +90,7 @@ - result = fn(**kwargs) - - result = result or 0 -- assert isinstance(result, (int, long)) -+ assert isinstance(result, int) - - if context: - postrun = getattr(context, 'post_dispatch_handler', None) ---- firefox-52.9.0esr/python/mach/mach/terminal.py (original) -+++ firefox-52.9.0esr/python/mach/mach/terminal.py (refactored) -@@ -59,7 +59,7 @@ - self.fh = sys.stdout - - def _clear_lines(self, n): -- for i in xrange(n): -+ for i in range(n): - self.fh.write(self.t.move_x(0)) - self.fh.write(self.t.clear_eol()) - self.fh.write(self.t.move_up()) ---- firefox-52.9.0esr/python/mach/mach/main.py.old 2018-07-26 00:55:29.330000000 +0000 -+++ firefox-52.9.0esr/python/mach/mach/main.py 2018-07-26 00:57:01.260000000 +0000 -@@ -256,9 +256,9 @@ - if module_name is None: - # Ensure parent module is present otherwise we'll (likely) get - # an error due to unknown parent. -- if b'mach.commands' not in sys.modules: -- mod = imp.new_module(b'mach.commands') -- sys.modules[b'mach.commands'] = mod -+ if 'mach.commands' not in sys.modules: -+ mod = imp.new_module('mach.commands') -+ sys.modules['mach.commands'] = mod - - module_name = 'mach.commands.%s' % uuid.uuid1().get_hex() - -@@ -347,7 +347,7 @@ - # is a TTY. This provides a mechanism to allow said processes to - # enable emitting code codes, for example. - if os.isatty(orig_stdout.fileno()): -- os.environ[b'MACH_STDOUT_ISATTY'] = b'1' -+ os.environ['MACH_STDOUT_ISATTY'] = '1' - - return self._run(argv) - except KeyboardInterrupt: ---- firefox-52.9.0esr/toolkit/moz.configure.old 2017-04-11 02:13:23.000000000 +0000 -+++ firefox-52.9.0esr/toolkit/moz.configure 2018-07-26 05:32:08.590000000 +0000 -@@ -690,7 +690,7 @@ - # ============================================================== - @depends(check_build_environment, '--help') - @imports('os') --@imports(_from='__builtin__', _import='sorted') -+@imports(_from='builtins', _import='sorted') - def all_necko_protocols(build_env, _): - basedir = os.path.join(build_env.topsrcdir, 'netwerk', 'protocol') - return tuple(sorted(p for p in os.listdir(basedir) -@@ -744,7 +744,7 @@ - __sandbox__.set_define_impl(p, True) - - @depends('--enable-network-protocols') --@imports(_from='__builtin__', _import='sorted') -+@imports(_from='builtins', _import='sorted') - def necko_protocols(protocols): - return tuple(sorted(protocols)) - ---- firefox-52.9.0esr/build/moz.configure/pkg.configure.old 2017-04-11 02:13:08.000000000 +0000 -+++ firefox-52.9.0esr/build/moz.configure/pkg.configure 2018-07-26 05:36:10.990000000 +0000 -@@ -84,6 +84,8 @@ - @checking('%s_LIBS' % var, callback=lambda t: ' '.join(t)) - def pkg_libs(pkg_config, package_desc): - libs = check_cmd_output(pkg_config, '--libs', package_desc) -+ if isinstance(libs, bytes): -+ libs = libs.decode('utf-8') - # Remove evil flags like -Wl,--export-dynamic - return tuple(libs.replace('-Wl,--export-dynamic', '').split()) - ---- firefox-52.9.0esr/build/moz.configure/pkg.configure.old 2018-07-26 05:37:14.580000000 +0000 -+++ firefox-52.9.0esr/build/moz.configure/pkg.configure 2018-07-26 05:38:48.750000000 +0000 -@@ -78,6 +78,8 @@ - @checking('%s_CFLAGS' % var, callback=lambda t: ' '.join(t)) - def pkg_cflags(pkg_config, package_desc): - flags = check_cmd_output(pkg_config, '--cflags', package_desc) -+ if isinstance(flags, bytes): -+ flags = flags.decode('utf-8') - return tuple(flags.split()) - - @depends_when(pkg_config, package_desc, when=package) ---- firefox-52.9.0esr/build/subconfigure.py.old 2018-07-26 05:39:27.360000000 +0000 -+++ firefox-52.9.0esr/build/subconfigure.py 2018-07-26 09:58:41.110000000 +0000 -@@ -39,7 +39,7 @@ - class File(object): - def __init__(self, path): - self._path = path -- self._content = open(path, 'rb').read() -+ self._content = open(path, 'r').read() - stat = os.stat(path) - self._times = (stat.st_atime, stat.st_mtime) - -@@ -60,7 +60,7 @@ - - modified = True - if os.path.exists(self._path): -- if open(self._path, 'rb').read() == self._content: -+ if open(self._path, 'r').read() == self._content: - modified = False - self._modified = modified - return modified -@@ -221,7 +221,7 @@ - environ[var] = os.environ[var] - args = data['args'] - else: -- environ = os.environ -+ environ = dict(os.environ) - - args, others = parser.parse_known_args(args) - -@@ -260,7 +260,7 @@ - - def run(objdir): - ret = 0 -- output = '' -+ output = b'' - - with open(os.path.join(objdir, CONFIGURE_DATA), 'rb') as f: - data = pickle.load(f) -@@ -381,7 +381,7 @@ - for f in contents: - f.update_time() - -- return relobjdir, ret, output -+ return relobjdir, ret, output.decode('utf-8') - - - def subconfigure(args): -@@ -395,9 +395,9 @@ - args, others = parser.parse_known_args(args) - subconfigures = args.subconfigures - if args.list: -- subconfigures.extend(open(args.list, 'rb').read().splitlines()) -+ subconfigures.extend(open(args.list, 'r').read().splitlines()) - if args.skip: -- skips = set(open(args.skip, 'rb').read().splitlines()) -+ skips = set(open(args.skip, 'r').read().splitlines()) - subconfigures = [s for s in subconfigures if s not in skips] - - if not subconfigures: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/util.py.old 2018-07-26 10:43:58.540000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/util.py 2018-07-26 10:57:09.100000000 +0000 -@@ -1228,7 +1228,7 @@ - yield 'b' - yield repr(o) - elif isinstance(o, str): -- yield "'" -+ yield "'''" - # We want a readable string (non escaped unicode), but some - # special characters need escaping (e.g. \n, \t, etc.) - for i, s in enumerate(_INDENTED_REPR_RE.split(o)): -@@ -1237,7 +1237,7 @@ - yield _INDENTED_REPR_TABLE[c] - else: - yield s -- yield "'" -+ yield "'''" - elif hasattr(o, '__iter__'): - yield '[\n' - for i in o: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/util.py.old 2018-07-26 10:43:58.540000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/util.py 2018-07-26 10:49:10.780000000 +0000 -@@ -148,6 +148,8 @@ - self._stdout.flush() - stream = self._stderr - msg = '%s\n' % self.format(record) -+ if isinstance(msg, bytes): -+ msg = msg.decode('utf-8') - stream.write(msg) - stream.flush() - except (KeyboardInterrupt, SystemExit): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/util.py.old 2018-07-26 10:58:24.910000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/util.py 2018-07-26 11:08:15.430000000 +0000 -@@ -89,8 +89,8 @@ - return codecs.getwriter(encoding)(fh) - return fh - -- self._stdout = fix_encoding(stdout) -- self._stderr = fix_encoding(stderr) if stdout != stderr else self._stdout -+ self._stdout = stdout -+ self._stderr = stderr if stdout != stderr else self._stdout - try: - fd1 = self._stdout.fileno() - fd2 = self._stderr.fileno() -@@ -148,8 +148,6 @@ - self._stdout.flush() - stream = self._stderr - msg = '%s\n' % self.format(record) -- if isinstance(msg, bytes): -- msg = msg.decode('utf-8') - stream.write(msg) - stream.flush() - except (KeyboardInterrupt, SystemExit): ---- firefox-52.9.0esr/build/mach_bootstrap.py.old 2018-07-26 10:58:24.910000000 +0000 -+++ firefox-52.9.0esr/build/mach_bootstrap.py 2018-07-26 11:09:30.620000000 +0000 -@@ -361,7 +361,7 @@ - self._modules = set() - - def __call__(self, name, globals=None, locals=None, fromlist=None, -- level=-1): -+ level=0): - # name might be a relative import. Instead of figuring out what that - # resolves to, which is complex, just rely on the real import. - # Since we don't know the full module name, we can't check sys.modules, ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/check_debug_ranges.py.old 2018-07-26 11:10:15.820000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/check_debug_ranges.py 2018-07-26 11:14:51.180000000 +0000 -@@ -45,6 +45,7 @@ - def main(bin, compilation_unit): - p = subprocess.Popen(['objdump', '-W', bin], stdout = subprocess.PIPE, stderr = subprocess.PIPE) - (out, err) = p.communicate() -+ out = out.decode('utf-8') - sections = re.split('\n(Contents of the|The section) ', out) - debug_info = [s for s in sections if s.startswith('.debug_info')] - debug_ranges = [s for s in sections if s.startswith('.debug_ranges')] ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py.old 2018-07-26 11:10:15.820000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py 2018-07-26 11:18:03.750000000 +0000 -@@ -28,6 +28,7 @@ - ) - - Kernel = EnumString.subclass( -+ 'Android', - 'Darwin', - 'DragonFly', - 'FreeBSD', -@@ -90,6 +91,7 @@ - assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES) - - kernel_preprocessor_checks = { -+ 'Android': '__BIONIC__', - 'Darwin': '__APPLE__', - 'DragonFly': '__DragonFly__', - 'FreeBSD': '__FreeBSD__', ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py.old 2018-07-26 11:18:54.630000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py 2018-07-26 23:46:48.880000000 +0000 -@@ -28,6 +28,7 @@ - ) - - Kernel = EnumString.subclass( -+ 'AIX', - 'Android', - 'Darwin', - 'DragonFly', -@@ -91,6 +92,7 @@ - assert sorted(CPU_preprocessor_checks.keys()) == sorted(CPU.POSSIBLE_VALUES) - - kernel_preprocessor_checks = { -+ 'AIX': '_AIX', - 'Android': '__BIONIC__', - 'Darwin': '__APPLE__', - 'DragonFly': '__DragonFly__', ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py.old 2018-07-26 23:47:39.060000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py 2018-07-26 23:53:25.260000000 +0000 -@@ -37,6 +37,8 @@ - 'Linux', - 'NetBSD', - 'OpenBSD', -+ 'SunOS', -+ 'HP-UX', - 'WINNT', - ) - -@@ -93,14 +94,16 @@ - - kernel_preprocessor_checks = { - 'AIX': '_AIX', -- 'Android': '__BIONIC__', -+ 'Android': '__ANDROID__', - 'Darwin': '__APPLE__', - 'DragonFly': '__DragonFly__', - 'FreeBSD': '__FreeBSD__', -+ 'HP-UX': '_hpux', - 'kFreeBSD': '__FreeBSD_kernel__', - 'Linux': '__linux__', - 'NetBSD': '__NetBSD__', - 'OpenBSD': '__OpenBSD__', -+ 'SunOS': '__sun || sun', - 'WINNT': '_WIN32 || __CYGWIN__', - } - ---- firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py.old 2018-07-26 23:55:19.000000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/configure/constants.py 2018-07-26 23:58:36.750000000 +0000 -@@ -33,12 +33,15 @@ - 'Darwin', - 'DragonFly', - 'FreeBSD', -+ 'GNU', -+ 'GNU/kFreeBSD', -+ 'GNU_kFreeBSD', -+ 'HP-UX', - 'kFreeBSD', - 'Linux', - 'NetBSD', - 'OpenBSD', - 'SunOS', -- 'HP-UX', - 'WINNT', - ) - -@@ -99,6 +102,9 @@ - 'Darwin': '__APPLE__', - 'DragonFly': '__DragonFly__', - 'FreeBSD': '__FreeBSD__', -+ 'GNU': '__gnu_hurd__', -+ 'GNU/kFreeBSD': '__FreeBSD_kernel_ && __GLIBC__', -+ 'GNU_kFreeBSD': '__FreeBSD_kernel_ && __GLIBC__', - 'HP-UX': '_hpux', - 'kFreeBSD': '__FreeBSD_kernel__', - 'Linux': '__linux__', ---- firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/ini.py.old 2018-07-26 23:55:18.990000000 +0000 -+++ firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/ini.py 2018-07-27 00:04:47.460000000 +0000 -@@ -33,7 +33,7 @@ - # read the lines - for (linenum, line) in enumerate(fp.read().splitlines(), start=1): - -- stripped = line.strip() -+ stripped = line.strip().decode('utf-8') - - # ignore blank lines - if not stripped: ---- firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/ini.py.old 2018-07-27 00:09:00.850000000 +0000 -+++ firefox-52.9.0esr/testing/mozbase/manifestparser/manifestparser/ini.py 2018-07-27 00:12:03.920000000 +0000 -@@ -31,9 +31,9 @@ - fp = open(fp) - - # read the lines -- for (linenum, line) in enumerate(fp.read().splitlines(), start=1): -+ for (linenum, line) in enumerate(fp.read().decode('utf-8').splitlines(), start=1): - -- stripped = line.strip().decode('utf-8') -+ stripped = line.strip() - - # ignore blank lines - if not stripped: ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/sandbox.py.old 2018-07-27 00:12:52.240000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/sandbox.py 2018-07-27 00:18:00.010000000 +0000 -@@ -39,7 +39,8 @@ - """sorted() replacement for the sandbox, ordering alphabetically by - default. - """ -- return sorted(iterable, cmp, key, reverse) -+ ### XXX what do we do with cmp? -+ return sorted(iterable, key=key, reverse=reverse) - - - class SandboxError(Exception): ---- firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/emitter.py.old 2018-07-27 00:32:50.870000000 +0000 -+++ firefox-52.9.0esr/python/mozbuild/mozbuild/frontend/emitter.py 2018-07-27 00:32:28.770000000 +0000 -@@ -1399,7 +1399,8 @@ - # declared anywhere (they were discovered). This will detect people - # relying on the old behavior. - if os.path.exists(os.path.join(context.srcdir, 'jar.mn')): -- if 'jar.mn' not in jar_manifests: -+ if 'jar.mn' not in jar_manifests and \ -+ SourcePath(context, 'jar.mn') not in jar_manifests: - raise SandboxValidationError('A jar.mn exists but it ' - 'is not referenced in the moz.build file. ' - 'Please define JAR_MANIFESTS.', context) diff --git a/experimental/firefox/fix-bug-1261392.patch b/experimental/firefox/fix-bug-1261392.patch deleted file mode 100644 index fa40914d6..000000000 --- a/experimental/firefox/fix-bug-1261392.patch +++ /dev/null @@ -1,25 +0,0 @@ ---- a/tools/profiler/core/platform.h 2017-05-27 11:44:06.733119794 +0000 -+++ b/tools/profiler/core/platform.h 2017-05-27 11:46:16.004253520 +0000 -@@ -54,10 +54,11 @@ - #include - #include "StackTop.h" - --// We need a definition of gettid(), but old glibc versions don't provide a --// wrapper for it. --#if defined(__GLIBC__) -+// We need a definition of gettid(), but Linux libc implementations don't -+// provide a wrapper for it (except for Bionic) -+#if defined(__linux__) - # include -+#if !defined(__BIONIC__) - # include - # define gettid() static_cast(syscall(SYS_gettid)) -+#endif -@@ -71,6 +72,7 @@ - return (pid_t) syscall(SYS_thread_selfid); - } - #endif -+#endif - - #ifdef XP_WIN - #include diff --git a/legacy/heimdal/CVE-2017-17439.patch b/legacy/heimdal/CVE-2017-17439.patch deleted file mode 100644 index 8c3273971..000000000 --- a/legacy/heimdal/CVE-2017-17439.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 749d377fa357351a7bbba51f8aae72cdf0629592 Mon Sep 17 00:00:00 2001 -From: Viktor Dukhovni -Date: Tue, 5 Dec 2017 18:49:50 -0500 -Subject: [PATCH] Security: Avoid NULL structure pointer member dereference - -This can happen in the error path when processing malformed AS -requests with a NULL client name. Bug originally introduced on -Fri Feb 13 09:26:01 2015 +0100 in commit: - - a873e21d7c06f22943a90a41dc733ae76799390d - - kdc: base _kdc_fast_mk_error() on krb5_mk_error_ext() - -Original patch by Jeffrey Altman - -(cherry picked from commit 1a6a6e462dc2ac6111f9e02c6852ddec4849b887) ---- - kdc/kerberos5.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - -diff --git a/kdc/kerberos5.c b/kdc/kerberos5.c -index 95a74927f7..675b406b82 100644 ---- a/kdc/kerberos5.c -+++ b/kdc/kerberos5.c -@@ -2226,15 +2226,17 @@ _kdc_as_rep(kdc_request_t r, - /* - * In case of a non proxy error, build an error message. - */ -- if(ret != 0 && ret != HDB_ERR_NOT_FOUND_HERE && reply->length == 0) { -+ if (ret != 0 && ret != HDB_ERR_NOT_FOUND_HERE && reply->length == 0) { - ret = _kdc_fast_mk_error(context, r, - &error_method, - r->armor_crypto, - &req->req_body, - ret, r->e_text, - r->server_princ, -- &r->client_princ->name, -- &r->client_princ->realm, -+ r->client_princ ? -+ &r->client_princ->name : NULL, -+ r->client_princ ? -+ &r->client_princ->realm : NULL, - NULL, NULL, - reply); - if (ret) diff --git a/legacy/kalarmcal/build-with-kf5-kholidays.patch b/legacy/kalarmcal/build-with-kf5-kholidays.patch deleted file mode 100644 index 0d5bd88f8..000000000 --- a/legacy/kalarmcal/build-with-kf5-kholidays.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- kalarmcal-17.12.2/CMakeLists.txt.old 2018-02-06 00:37:47.000000000 +0000 -+++ kalarmcal-17.12.2/CMakeLists.txt 2018-03-04 22:17:25.340681117 +0000 -@@ -26,7 +26,7 @@ - set(KALARM_LIB_VERSION ${PIM_VERSION}) - - set(CALENDARCORE_LIB_VERSION "5.7.2") --set(HOLIDAY_LIB_VERSION "5.7.2") -+set(HOLIDAY_LIB_VERSION "5.6.2") - set(IDENTITYMANAGER_LIB_VERSION "5.7.2") - set(AKONADI_LIB_VERSION "5.7.2") - ecm_setup_version(PROJECT VARIABLE_PREFIX KALARMCAL diff --git a/legacy/libvpx/libm-pc.patch b/legacy/libvpx/libm-pc.patch deleted file mode 100644 index 87f07a398..000000000 --- a/legacy/libvpx/libm-pc.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./libs.mk.orig -+++ ./libs.mk -@@ -241,7 +241,7 @@ - $(qexec)echo 'Version: $(VERSION_MAJOR).$(VERSION_MINOR).$(VERSION_PATCH)' >> $@ - $(qexec)echo 'Requires:' >> $@ - $(qexec)echo 'Conflicts:' >> $@ -- $(qexec)echo 'Libs: -L$${libdir} -lvpx' >> $@ -+ $(qexec)echo 'Libs: -L$${libdir} -lvpx -lm' >> $@ - $(qexec)echo 'Cflags: -I$${includedir}' >> $@ - INSTALL-LIBS-yes += $(LIBSUBDIR)/pkgconfig/vpx.pc - INSTALL_MAPS += $(LIBSUBDIR)/pkgconfig/%.pc %.pc diff --git a/legacy/openjdk7/icedtea-jdk-no-lib-nsl-uclibc.patch b/legacy/openjdk7/icedtea-jdk-no-lib-nsl-uclibc.patch deleted file mode 100644 index 26f89bb54..000000000 --- a/legacy/openjdk7/icedtea-jdk-no-lib-nsl-uclibc.patch +++ /dev/null @@ -1,84 +0,0 @@ ---- openjdk.orig/hotspot/agent/src/os/solaris/dbx/Makefile -+++ openjdk/hotspot/agent/src/os/solaris/dbx/Makefile -@@ -50,7 +50,7 @@ - CFLAGS_32bit := -xarch=v8 - CFLAGS_64bit := -xarch=v9 - CFLAGS := -PIC -xO3 $(INCLUDES) --LIBS := -lsocket -lnsl -lrtld_db -+LIBS := -lsocket -lrtld_db - LDFLAGS := -G - - ifneq "$(ARCH)" "i486" ---- openjdk.orig/jdk/make/java/hpi/hpi_common.gmk -+++ openjdk/jdk/make/java/hpi/hpi_common.gmk -@@ -86,5 +86,5 @@ - # Things that must be linked in. - # - ifneq ($(PLATFORM), windows) --OTHER_LDLIBS += $(LIBSOCKET) -lnsl $(LIBM) -ldl -+OTHER_LDLIBS += $(LIBSOCKET) $(LIBM) -ldl - endif ---- openjdk.orig/jdk/make/java/java/Makefile -+++ openjdk/jdk/make/java/java/Makefile -@@ -205,7 +205,7 @@ - OTHER_LDLIBS += $(JVMLIB) -libpath:$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) fdlibm.lib \ - -libpath:$(OBJDIR)/../../../verify/$(OBJDIRNAME) verify.lib - else --OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) -lnsl -ldl \ -+OTHER_LDLIBS += $(JVMLIB) -lverify $(LIBSOCKET) -ldl \ - -L$(OBJDIR)/../../../fdlibm/$(OBJDIRNAME) -lfdlibm.$(ARCH) - endif - ---- openjdk.orig/jdk/make/java/java_hprof_demo/Makefile -+++ openjdk/jdk/make/java/java_hprof_demo/Makefile -@@ -83,7 +83,7 @@ - ifeq ($(PLATFORM), windows) - OTHER_LDLIBS += wsock32.lib winmm.lib - else -- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl -+ OTHER_LDLIBS += $(LIBSOCKET) -ldl - endif - - # ---- openjdk.orig/jdk/make/java/net/Makefile -+++ openjdk/jdk/make/java/net/Makefile -@@ -97,7 +97,7 @@ - # Will not compile at warning level 3 if warnings are fatal - COMPILER_WARNINGS_FATAL=false - else -- OTHER_LDLIBS = $(LIBSOCKET) -lnsl -ldl $(JVMLIB) -+ OTHER_LDLIBS = $(LIBSOCKET) -ldl $(JVMLIB) - endif - ifeq ($(PLATFORM), linux) - OTHER_LDLIBS += -lpthread ---- openjdk.orig/jdk/make/jpda/transport/socket/Makefile -+++ openjdk/jdk/make/jpda/transport/socket/Makefile -@@ -42,11 +42,11 @@ - endif - - ifeq ($(PLATFORM), linux) -- OTHER_LDLIBS += -lnsl $(LIBSOCKET) -lpthread -+ OTHER_LDLIBS += $(LIBSOCKET) -lpthread - endif - - ifeq ($(PLATFORM), solaris) -- OTHER_LDLIBS += -lnsl $(LIBSOCKET) -+ OTHER_LDLIBS += $(LIBSOCKET) - endif - - ifeq ($(PLATFORM), windows) ---- openjdk.orig/jdk/make/mkdemo/jvmti/hprof/Makefile -+++ openjdk/jdk/make/mkdemo/jvmti/hprof/Makefile -@@ -39,10 +39,10 @@ - EXTRA_LIBS += wsock32.lib winmm.lib - endif - ifeq ($(PLATFORM), solaris) -- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl -+ OTHER_LDLIBS += $(LIBSOCKET) -ldl - endif - ifeq ($(PLATFORM), linux) -- OTHER_LDLIBS += $(LIBSOCKET) -lnsl -ldl -lpthread -+ OTHER_LDLIBS += $(LIBSOCKET) -ldl -lpthread - endif - - # diff --git a/legacy/telegram/rlottie.patch b/legacy/telegram/rlottie.patch deleted file mode 100644 index 6bd2ff6c3..000000000 --- a/legacy/telegram/rlottie.patch +++ /dev/null @@ -1,16 +0,0 @@ -No CMake config exists for rlottie; use pkgconf instead. - ---- a/cmake/external/rlottie/CMakeLists.txt 2020-01-17 18:21:17.000000000 +0100 -+++ b/cmake/external/rlottie/CMakeLists.txt 2020-01-18 00:37:40.280438388 +0100 -@@ -8,8 +8,9 @@ - add_library(external_rlottie INTERFACE IMPORTED GLOBAL) - add_library(desktop-app::external_rlottie ALIAS external_rlottie) - -- find_package(rlottie REQUIRED) -- target_link_libraries(external_rlottie INTERFACE rlottie::rlottie) -+ find_package(PkgConfig REQUIRED) -+ pkg_check_modules(RLOTTIE REQUIRED rlottie) -+ target_link_libraries(external_rlottie INTERFACE ${RLOTTIE_LIBRARIES}) - else() - add_library(external_rlottie OBJECT) - add_library(desktop-app::external_rlottie ALIAS external_rlottie) diff --git a/system/autoconf/autoconf-2.69-fix-perl-regex.patch b/system/autoconf/autoconf-2.69-fix-perl-regex.patch deleted file mode 100644 index 9cccf912b..000000000 --- a/system/autoconf/autoconf-2.69-fix-perl-regex.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- autoconf-2.69/bin/autoscan.in.old 2012-04-25 02:37:26.000000000 +0000 -+++ autoconf-2.69/bin/autoscan.in 2017-08-03 23:59:38.720214631 +0000 -@@ -358,7 +358,7 @@ - { - # Strip out comments and variable references. - s/#.*//; -- s/\${[^\}]*}//g; -+ s/\$\{[^\}]*\}//g; - s/@[^@]*@//g; - - # Tokens in the code. diff --git a/system/binutils/memory.patch b/system/binutils/memory.patch deleted file mode 100644 index f2cfea130..000000000 --- a/system/binutils/memory.patch +++ /dev/null @@ -1,449 +0,0 @@ -From 9999de060bbcc7cca9dce213deeeec6593887a8e Mon Sep 17 00:00:00 2001 -From: "H.J. Lu" -Date: Tue, 27 Feb 2018 12:22:58 -0800 -Subject: [PATCH] Limit memory size to half of address space - -When link_info.keep_memory is TRUE, linker caches the relocation -information and symbol tables of input files in memory. On 32-bit -hosts, linker runs out of 32-bit virtual memory on input files with many -relocations. This patch limits the allocated memory size to half of -the address space for 32-bit hosts. - -bfd/ - - PR ld/18028 - * bfd-in.h (_bfd_link_keep_memory): New. - * bfd-in2.h: Regenerated. - * bfd.c (bfd): Add alloc_size. - * elf-bfd.h (_bfd_elf_link_info_read_relocs): New. - * elf32-i386.c (elf_i386_check_relocs): Use _bfd_link_keep_memory. - Update cache_size. - * elf64-x86-64.c (elf_x86_64_check_relocs): Likewise. - * elflink.c (_bfd_elf_link_read_relocs): Renamed to ... - (_bfd_elf_link_info_read_relocs): This. Update cache_size. - (_bfd_elf_link_read_relocs): New. - (_bfd_elf_link_check_relocs): Call _bfd_elf_link_info_read_relocs - instead of _bfd_elf_link_read_relocs. - (elf_link_add_object_symbols): Likewise. - (elf_link_input_bfd): Likewise. - (init_reloc_cookie_rels): Likewise. - (init_reloc_cookie): Update cache_size. Call - _bfd_elf_link_info_read_relocs instead of - _bfd_elf_link_read_relocs. - (link_info_ok): New. - (elf_gc_smash_unused_vtentry_relocs): Updated. Call - _bfd_elf_link_info_read_relocs instead of - _bfd_elf_link_read_relocs. - (bfd_elf_gc_sections): Use link_info_ok. Pass &link_info_ok - to elf_gc_smash_unused_vtentry_relocs. - * linker.c (_bfd_link_keep_memory): New. - * opncls.c (bfd_alloc): Update alloc_size. - -include/ - - PR ld/18028 - * bfdlink.h (bfd_link_info): Add cache_size and max_alloc_size. - -ld/ - - PR ld/18028 - * ldmain.c: Include "bfd_stdint.h". - (main): Set link_info.max_alloc_size to half of the address space. ---- - bfd/bfd-in.h | 2 ++ - bfd/bfd-in2.h | 5 +++ - bfd/bfd.c | 3 ++ - bfd/elf-bfd.h | 3 ++ - bfd/elf32-i386.c | 3 +- - bfd/elf64-x86-64.c | 3 +- - bfd/elflink.c | 89 ++++++++++++++++++++++++++++++++++++++++-------------- - bfd/linker.c | 33 ++++++++++++++++++++ - bfd/opncls.c | 2 ++ - include/bfdlink.h | 7 +++++ - ld/ldmain.c | 3 ++ - 11 files changed, 128 insertions(+), 25 deletions(-) - -diff --git a/bfd/bfd-in.h b/bfd/bfd-in.h -index a06cd740c0..ca4bec8aab 100644 ---- a/bfd/bfd-in.h -+++ b/bfd/bfd-in.h -@@ -600,6 +600,8 @@ struct bfd_section_already_linked; - struct bfd_elf_version_tree; - #endif - -+extern bfd_boolean _bfd_link_keep_memory (struct bfd_link_info *); -+ - extern bfd_boolean bfd_section_already_linked_table_init (void); - extern void bfd_section_already_linked_table_free (void); - extern bfd_boolean _bfd_handle_already_linked -diff --git a/bfd/bfd-in2.h b/bfd/bfd-in2.h -index 9742c1ac7f..0794bcdcdb 100644 ---- a/bfd/bfd-in2.h -+++ b/bfd/bfd-in2.h -@@ -607,6 +607,8 @@ struct bfd_section_already_linked; - struct bfd_elf_version_tree; - #endif - -+extern bfd_boolean _bfd_link_keep_memory (struct bfd_link_info *); -+ - extern bfd_boolean bfd_section_already_linked_table_init (void); - extern void bfd_section_already_linked_table_free (void); - extern bfd_boolean _bfd_handle_already_linked -@@ -6989,6 +6991,9 @@ struct bfd - be used only for archive elements. */ - int archive_pass; - -+ /* The total size of memory from bfd_alloc. */ -+ bfd_size_type alloc_size; -+ - /* Stuff only useful for object files: - The start address. */ - bfd_vma start_address; -diff --git a/bfd/bfd.c b/bfd/bfd.c -index 288b5b14fe..182b544662 100644 ---- a/bfd/bfd.c -+++ b/bfd/bfd.c -@@ -267,6 +267,9 @@ CODE_FRAGMENT - . be used only for archive elements. *} - . int archive_pass; - . -+. {* The total size of memory from bfd_alloc. *} -+. bfd_size_type alloc_size; -+. - . {* Stuff only useful for object files: - . The start address. *} - . bfd_vma start_address; -diff --git a/bfd/elf-bfd.h b/bfd/elf-bfd.h -index afd6982a92..37a7b07e51 100644 ---- a/bfd/elf-bfd.h -+++ b/bfd/elf-bfd.h -@@ -2294,6 +2294,9 @@ extern char *_bfd_elfcore_strndup - - extern Elf_Internal_Rela *_bfd_elf_link_read_relocs - (bfd *, asection *, void *, Elf_Internal_Rela *, bfd_boolean); -+extern Elf_Internal_Rela *_bfd_elf_link_info_read_relocs -+ (bfd *, struct bfd_link_info *, asection *, void *, Elf_Internal_Rela *, -+ bfd_boolean); - - extern bfd_boolean _bfd_elf_link_output_relocs - (bfd *, asection *, Elf_Internal_Shdr *, Elf_Internal_Rela *, -diff --git a/bfd/elf32-i386.c b/bfd/elf32-i386.c -index 61a14097b0..9a781dc089 100644 ---- a/bfd/elf32-i386.c -+++ b/bfd/elf32-i386.c -@@ -1909,13 +1909,14 @@ elf_i386_check_relocs (bfd *abfd, - - if (elf_section_data (sec)->this_hdr.contents != contents) - { -- if (!converted && !info->keep_memory) -+ if (!converted && !_bfd_link_keep_memory (info)) - free (contents); - else - { - /* Cache the section contents for elf_link_input_bfd if any - load is converted or --no-keep-memory isn't used. */ - elf_section_data (sec)->this_hdr.contents = contents; -+ info->cache_size += sec->size; - } - } - -diff --git a/bfd/elf64-x86-64.c b/bfd/elf64-x86-64.c -index 7016964ace..4ba15ec9fa 100644 ---- a/bfd/elf64-x86-64.c -+++ b/bfd/elf64-x86-64.c -@@ -2281,13 +2281,14 @@ elf_x86_64_check_relocs (bfd *abfd, struct bfd_link_info *info, - - if (elf_section_data (sec)->this_hdr.contents != contents) - { -- if (!converted && !info->keep_memory) -+ if (!converted && !_bfd_link_keep_memory (info)) - free (contents); - else - { - /* Cache the section contents for elf_link_input_bfd if any - load is converted or --no-keep-memory isn't used. */ - elf_section_data (sec)->this_hdr.contents = contents; -+ info->cache_size += sec->size; - } - } - -diff --git a/bfd/elflink.c b/bfd/elflink.c -index 092edaea26..831605b80a 100644 ---- a/bfd/elflink.c -+++ b/bfd/elflink.c -@@ -2475,14 +2475,16 @@ elf_link_read_relocs_from_section (bfd *abfd, - according to the KEEP_MEMORY argument. If O has two relocation - sections (both REL and RELA relocations), then the REL_HDR - relocations will appear first in INTERNAL_RELOCS, followed by the -- RELA_HDR relocations. */ -+ RELA_HDR relocations. If INFO isn't NULL and KEEP_MEMORY is TRUE, -+ update cache_size. */ - - Elf_Internal_Rela * --_bfd_elf_link_read_relocs (bfd *abfd, -- asection *o, -- void *external_relocs, -- Elf_Internal_Rela *internal_relocs, -- bfd_boolean keep_memory) -+_bfd_elf_link_info_read_relocs (bfd *abfd, -+ struct bfd_link_info *info, -+ asection *o, -+ void *external_relocs, -+ Elf_Internal_Rela *internal_relocs, -+ bfd_boolean keep_memory) - { - void *alloc1 = NULL; - Elf_Internal_Rela *alloc2 = NULL; -@@ -2502,7 +2504,11 @@ _bfd_elf_link_read_relocs (bfd *abfd, - - size = (bfd_size_type) o->reloc_count * sizeof (Elf_Internal_Rela); - if (keep_memory) -- internal_relocs = alloc2 = (Elf_Internal_Rela *) bfd_alloc (abfd, size); -+ { -+ internal_relocs = alloc2 = (Elf_Internal_Rela *) bfd_alloc (abfd, size); -+ if (info) -+ info->cache_size += size; -+ } - else - internal_relocs = alloc2 = (Elf_Internal_Rela *) bfd_malloc (size); - if (internal_relocs == NULL) -@@ -2568,6 +2574,22 @@ _bfd_elf_link_read_relocs (bfd *abfd, - return NULL; - } - -+/* This is similar to _bfd_elf_link_info_read_relocs, except for that -+ NULL is passed to _bfd_elf_link_info_read_relocs for pointer to -+ struct bfd_link_info. */ -+ -+Elf_Internal_Rela * -+_bfd_elf_link_read_relocs (bfd *abfd, -+ asection *o, -+ void *external_relocs, -+ Elf_Internal_Rela *internal_relocs, -+ bfd_boolean keep_memory) -+{ -+ return _bfd_elf_link_info_read_relocs (abfd, NULL, o, external_relocs, -+ internal_relocs, keep_memory); -+ -+} -+ - /* Compute the size of, and allocate space for, REL_HDR which is the - section header for a section containing relocations for O. */ - -@@ -3736,8 +3758,10 @@ _bfd_elf_link_check_relocs (bfd *abfd, struct bfd_link_info *info) - || bfd_is_abs_section (o->output_section)) - continue; - -- internal_relocs = _bfd_elf_link_read_relocs (abfd, o, NULL, NULL, -- info->keep_memory); -+ internal_relocs = _bfd_elf_link_info_read_relocs (abfd, info, -+ o, NULL, -+ NULL, -+ _bfd_link_keep_memory (info)); - if (internal_relocs == NULL) - return FALSE; - -@@ -4990,9 +5014,10 @@ elf_link_add_object_symbols (bfd *abfd, struct bfd_link_info *info) - && (s->flags & SEC_DEBUGGING) != 0)) - continue; - -- internal_relocs = _bfd_elf_link_read_relocs (abfd, s, NULL, -- NULL, -- info->keep_memory); -+ internal_relocs = _bfd_elf_link_info_read_relocs (abfd, info, -+ s, NULL, -+ NULL, -+ _bfd_link_keep_memory (info)); - if (internal_relocs == NULL) - goto error_free_vers; - -@@ -10518,8 +10543,10 @@ elf_link_input_bfd (struct elf_final_link_info *flinfo, bfd *input_bfd) - - /* Get the swapped relocs. */ - internal_relocs -- = _bfd_elf_link_read_relocs (input_bfd, o, flinfo->external_relocs, -- flinfo->internal_relocs, FALSE); -+ = _bfd_elf_link_info_read_relocs (input_bfd, flinfo->info, o, -+ flinfo->external_relocs, -+ flinfo->internal_relocs, -+ FALSE); - if (internal_relocs == NULL - && o->reloc_count > 0) - return FALSE; -@@ -12684,8 +12711,12 @@ init_reloc_cookie (struct elf_reloc_cookie *cookie, - info->callbacks->einfo (_("%P%X: can not read symbols: %E\n")); - return FALSE; - } -- if (info->keep_memory) -- symtab_hdr->contents = (bfd_byte *) cookie->locsyms; -+ if (_bfd_link_keep_memory (info) ) -+ { -+ symtab_hdr->contents = (bfd_byte *) cookie->locsyms; -+ info->cache_size += (cookie->locsymcount -+ * sizeof (Elf_External_Sym_Shndx)); -+ } - } - return TRUE; - } -@@ -12718,8 +12749,9 @@ init_reloc_cookie_rels (struct elf_reloc_cookie *cookie, - } - else - { -- cookie->rels = _bfd_elf_link_read_relocs (abfd, sec, NULL, NULL, -- info->keep_memory); -+ cookie->rels = _bfd_elf_link_info_read_relocs (abfd, info, sec, -+ NULL, NULL, -+ _bfd_link_keep_memory (info)); - if (cookie->rels == NULL) - return FALSE; - cookie->rel = cookie->rels; -@@ -13233,14 +13265,21 @@ elf_gc_propagate_vtable_entries_used (struct elf_link_hash_entry *h, void *okp) - return TRUE; - } - -+struct link_info_ok -+{ -+ struct bfd_link_info *info; -+ bfd_boolean ok; -+}; -+ - static bfd_boolean --elf_gc_smash_unused_vtentry_relocs (struct elf_link_hash_entry *h, void *okp) -+elf_gc_smash_unused_vtentry_relocs (struct elf_link_hash_entry *h, void *ptr) - { - asection *sec; - bfd_vma hstart, hend; - Elf_Internal_Rela *relstart, *relend, *rel; - const struct elf_backend_data *bed; - unsigned int log_file_align; -+ struct link_info_ok *info = (struct link_info_ok *) ptr; - - /* Take care of both those symbols that do not describe vtables as - well as those that are not loaded. */ -@@ -13256,9 +13295,10 @@ elf_gc_smash_unused_vtentry_relocs (struct elf_link_hash_entry *h, void *okp) - hstart = h->root.u.def.value; - hend = hstart + h->size; - -- relstart = _bfd_elf_link_read_relocs (sec->owner, sec, NULL, NULL, TRUE); -+ relstart = _bfd_elf_link_info_read_relocs (sec->owner, info->info, -+ sec, NULL, NULL, TRUE); - if (!relstart) -- return *(bfd_boolean *) okp = FALSE; -+ return info->ok = FALSE; - bed = get_elf_backend_data (sec->owner); - log_file_align = bed->s->log_file_align; - -@@ -13379,6 +13419,7 @@ bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info) - elf_gc_mark_hook_fn gc_mark_hook; - const struct elf_backend_data *bed = get_elf_backend_data (abfd); - struct elf_link_hash_table *htab; -+ struct link_info_ok info_ok; - - if (!bed->can_gc_sections - || !is_elf_hash_table (info->hash)) -@@ -13420,8 +13461,10 @@ bfd_elf_gc_sections (bfd *abfd, struct bfd_link_info *info) - return FALSE; - - /* Kill the vtable relocations that were not used. */ -- elf_link_hash_traverse (htab, elf_gc_smash_unused_vtentry_relocs, &ok); -- if (!ok) -+ info_ok.info = info; -+ info_ok.ok = TRUE; -+ elf_link_hash_traverse (htab, elf_gc_smash_unused_vtentry_relocs, &info_ok); -+ if (!info_ok.ok) - return FALSE; - - /* Mark dynamically referenced symbols. */ -diff --git a/bfd/linker.c b/bfd/linker.c -index c29a6e7e10..909d768552 100644 ---- a/bfd/linker.c -+++ b/bfd/linker.c -@@ -3471,3 +3471,36 @@ _bfd_nolink_bfd_define_start_stop (struct bfd_link_info *info ATTRIBUTE_UNUSED, - { - return (struct bfd_link_hash_entry *) _bfd_ptr_bfd_null_error (sec->owner); - } -+ -+bfd_boolean -+_bfd_link_keep_memory (struct bfd_link_info * info) -+{ -+ bfd *abfd; -+ bfd_size_type size; -+ -+ if (!info->keep_memory) -+ return FALSE; -+ -+ /* Keep allocated memory size below limit only for 32-bit hosts. */ -+ if (sizeof (void *) > 4) -+ return TRUE; -+ -+ abfd = info->input_bfds; -+ size = info->cache_size; -+ do -+ { -+ if (size >= info->max_alloc_size) -+ { -+ /* Over the limit. Reduce the memory usage. */ -+ info->keep_memory = FALSE; -+ return FALSE; -+ } -+ if (!abfd) -+ break; -+ size += abfd->alloc_size; -+ abfd = abfd->link.next; -+ } -+ while (1); -+ -+ return TRUE; -+} -diff --git a/bfd/opncls.c b/bfd/opncls.c -index 16b568c8ab..86262e1231 100644 ---- a/bfd/opncls.c -+++ b/bfd/opncls.c -@@ -949,6 +949,8 @@ bfd_alloc (bfd *abfd, bfd_size_type size) - ret = objalloc_alloc ((struct objalloc *) abfd->memory, ul_size); - if (ret == NULL) - bfd_set_error (bfd_error_no_memory); -+ else -+ abfd->alloc_size += size; - return ret; - } - -diff --git a/include/bfdlink.h b/include/bfdlink.h -index 5d637acbab..f06d5171c3 100644 ---- a/include/bfdlink.h -+++ b/include/bfdlink.h -@@ -635,6 +635,13 @@ struct bfd_link_info - - /* The version information. */ - struct bfd_elf_version_tree *version_info; -+ -+ /* Size of cache. Backend can use it to keep strace cache size. */ -+ bfd_size_type cache_size; -+ -+ /* The maximum size of allocated memory. Backend can use cache_size -+ and and max_alloc_size to decide if keep_memory should be honored. */ -+ bfd_size_type max_alloc_size; - }; - - /* This structures holds a set of callback functions. These are called -diff --git a/ld/ldmain.c b/ld/ldmain.c -index b6914db5da..14c3349c97 100644 ---- a/ld/ldmain.c -+++ b/ld/ldmain.c -@@ -21,6 +21,7 @@ - - #include "sysdep.h" - #include "bfd.h" -+#include "bfd_stdint.h" - #include "safe-ctype.h" - #include "libiberty.h" - #include "progress.h" -@@ -271,6 +272,8 @@ main (int argc, char **argv) - - link_info.allow_undefined_version = TRUE; - link_info.keep_memory = TRUE; -+ /* Limit the allocated memory size to half of the address space. */ -+ link_info.max_alloc_size = ((uintptr_t) (void *) -1) / 2; - link_info.combreloc = TRUE; - link_info.strip_discarded = TRUE; - link_info.emit_hash = DEFAULT_EMIT_SYSV_HASH; diff --git a/system/bzip2/CVE-2016-3189.patch b/system/bzip2/CVE-2016-3189.patch deleted file mode 100644 index 6622670c9..000000000 --- a/system/bzip2/CVE-2016-3189.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/bzip2recover.c b/bzip2recover.c -index f9de049..d159c92 100644 ---- a/bzip2recover.c -+++ b/bzip2recover.c -@@ -457,6 +457,7 @@ Int32 main ( Int32 argc, Char** argv ) - bsPutUChar ( bsWr, 0x50 ); bsPutUChar ( bsWr, 0x90 ); - bsPutUInt32 ( bsWr, blockCRC ); - bsClose ( bsWr ); -+ outFile = NULL; - } - if (wrBlock >= rbCtr) break; - wrBlock++; diff --git a/system/coreutils/no-doc.patch b/system/coreutils/no-doc.patch deleted file mode 100644 index a1d74623b..000000000 --- a/system/coreutils/no-doc.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- coreutils-8.27/Makefile.in.old 2017-03-09 05:24:51.000000000 +0000 -+++ coreutils-8.27/Makefile.in 2017-06-22 03:07:59.568716258 +0000 -@@ -2363,7 +2363,7 @@ - } - man1dir = $(mandir)/man1 - NROFF = nroff --MANS = $(man1_MANS) -+MANS = - HEADERS = $(noinst_HEADERS) - RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \ - distclean-recursive maintainer-clean-recursive ---- coreutils-8.27/Makefile.in.old 2017-06-22 03:08:55.821951666 +0000 -+++ coreutils-8.27/Makefile.in 2017-06-22 03:19:51.770820411 +0000 -@@ -12192,7 +12192,7 @@ - - info-am: $(INFO_DEPS) - --install-data-am: install-info-am install-man -+install-data-am: install-info-am - - install-dvi: install-dvi-recursive - diff --git a/system/coreutils/printf-musl.patch b/system/coreutils/printf-musl.patch deleted file mode 100644 index 28a951635..000000000 --- a/system/coreutils/printf-musl.patch +++ /dev/null @@ -1,53 +0,0 @@ -From ad5c14dcadd4603363e68da960ed0101b61439bd Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?P=C3=A1draig=20Brady?= -Date: Sat, 12 Aug 2017 23:53:33 -0700 -Subject: [PATCH] tests: fix false failure with large printf formats - -* tests/misc/printf-surprise.sh: With musl libc the -large printf format does succeed, outputting data. -To avoid SIGPIPE being generated we ignore that signal -and then handle the subsequent EPIPE error. -Reported by A. Wilcox ---- - tests/misc/printf-surprise.sh | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/tests/misc/printf-surprise.sh b/tests/misc/printf-surprise.sh -index 2edd34c..46c0d8f 100755 ---- a/tests/misc/printf-surprise.sh -+++ b/tests/misc/printf-surprise.sh -@@ -50,6 +50,9 @@ vm=$(get_min_ulimit_v_ env $prog %20f 0) \ - - mkfifo_or_skip_ fifo - -+(trap '' PIPE && yes | :) 2>&1 | grep -qF 'Broken pipe' || -+ skip_ 'trapping SIGPIPE is not supported' -+ - # Disable MALLOC_PERTURB_, to avoid triggering this bug - # https://bugs.debian.org/481543#77 - export MALLOC_PERTURB_=0 -@@ -60,11 +63,11 @@ cleanup_() { kill $pid 2>/dev/null && wait $pid; } - head -c 10 fifo > out & pid=$! - - # Trigger large mem allocation failure --( ulimit -v $vm && env $prog %20000000f 0 2>err-msg > fifo ) -+( trap '' PIPE && ulimit -v $vm && env $prog %20000000f 0 2>err-msg > fifo ) - exit=$? - - # Map this longer, and rarer, diagnostic to the common one. --# printf: cannot perform formatted output: Cannot allocate memory" \ -+# printf: cannot perform formatted output: Cannot allocate memory" - sed 's/cannot perform .*/write error/' err-msg > k && mv k err-msg - err_msg=$(tr '\n' : < err-msg) - -@@ -81,6 +84,7 @@ n_out=$(wc -c < out) - - case $n_out:$diagnostic:$exit in - 10:n:0) ;; # ok, succeeds w/no diagnostic: FreeBSD 6.1 -+ 10:y:1) ;; # ok, fails with EPIPE diagnostic: musl libc - 0:y:1) ;; # ok, glibc-2.8 and newer, when printf(3) fails with ENOMEM - - # With MALLOC_PERTURB_=0, this no longer happens. --- -2.9.3 - diff --git a/system/coreutils/seq-write-error.patch b/system/coreutils/seq-write-error.patch deleted file mode 100644 index 4892a82ec..000000000 --- a/system/coreutils/seq-write-error.patch +++ /dev/null @@ -1,45 +0,0 @@ -From 1e1dbbe0f95c7170009f3ba4d8380c1b98ff53c8 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?P=C3=A1draig=20Brady?= -Date: Sun, 13 Aug 2017 00:18:43 -0700 -Subject: [PATCH] seq: produce consistent error messages upon write error - -* src/seq.c (io_error): Use the same error message as would -be generated at exit time when closing the stdout stream. -The inconsistency was added with commit v8.25-26-gc92585b. -This was noticed due to an inconsistency in the expected -error message generated by seq on musl libc. -Reported by A. Wilcox. ---- - src/seq.c | 2 +- - tests/misc/seq-epipe.sh | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/src/seq.c b/src/seq.c -index bb191ba..5e5b381 100644 ---- a/src/seq.c -+++ b/src/seq.c -@@ -284,7 +284,7 @@ io_error (void) - { - /* FIXME: consider option to silently ignore errno=EPIPE */ - clearerr (stdout); -- die (EXIT_FAILURE, errno, _("standard output")); -+ die (EXIT_FAILURE, errno, _("write error")); - } - - /* Actually print the sequence of numbers in the specified range, with the -diff --git a/tests/misc/seq-epipe.sh b/tests/misc/seq-epipe.sh -index edbd563..69dd75d 100755 ---- a/tests/misc/seq-epipe.sh -+++ b/tests/misc/seq-epipe.sh -@@ -33,7 +33,7 @@ compare exp code || fail=1 - - # The error message must begin with "standard output:" - # (but don't hard-code the strerror text) --grep '^seq: standard output: ' err \ -+grep '^seq: write error: ' err \ - || { warn_ "seq emitted incorrect error on EPIPE"; \ - cat err;\ - fail=1; } --- -2.9.3 - diff --git a/system/coreutils/sort-debug-locale.patch b/system/coreutils/sort-debug-locale.patch deleted file mode 100644 index 27921abbd..000000000 --- a/system/coreutils/sort-debug-locale.patch +++ /dev/null @@ -1,79 +0,0 @@ -From b938d8966c3d1afec9730d403fd6a6eb4d856b85 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?P=C3=A1draig=20Brady?= -Date: Sun, 13 Aug 2017 00:45:32 -0700 -Subject: [PATCH] sort: handle musl locale differences in --debug reporting - -* src/sort.c (main): Don't assume hard_LC_COLLATE implies -a successful setting of the locale as musl defaults to -UTF8 when failing to set the specified locale. -* tests/misc/sort-debug-warn.sh: Adjust for the now -separated locale debug info and map the musl specific -message back to the common case. -Reported by A. Wilcox. ---- - src/sort.c | 17 +++++++++-------- - tests/misc/sort-debug-warn.sh | 9 +++++++-- - 2 files changed, 16 insertions(+), 10 deletions(-) - -diff --git a/src/sort.c b/src/sort.c -index 015e40e..ba6ceac 100644 ---- a/src/sort.c -+++ b/src/sort.c -@@ -4675,18 +4675,19 @@ main (int argc, char **argv) - - /* Always output the locale in debug mode, since this - is such a common source of confusion. */ -+ -+ /* OpenBSD can only set some categories with LC_ALL above, -+ so set LC_COLLATE explicitly to flag errors. */ -+ if (locale_ok) -+ locale_ok = !! setlocale (LC_COLLATE, ""); -+ if (! locale_ok) -+ error (0, 0, "%s", _("failed to set locale")); - if (hard_LC_COLLATE) - error (0, 0, _("using %s sorting rules"), - quote (setlocale (LC_COLLATE, NULL))); - else -- { -- /* OpenBSD can only set some categories with LC_ALL above, -- so set LC_COLLATE explicitly to flag errors. */ -- if (locale_ok) -- locale_ok = !! setlocale (LC_COLLATE, ""); -- error (0, 0, "%s%s", locale_ok ? "" : _("failed to set locale; "), -- _("using simple byte comparison")); -- } -+ error (0, 0, "%s", _("using simple byte comparison")); -+ - key_warnings (&gkey, gkey_only); - } - -diff --git a/tests/misc/sort-debug-warn.sh b/tests/misc/sort-debug-warn.sh -index 3602c84..8119693 100755 ---- a/tests/misc/sort-debug-warn.sh -+++ b/tests/misc/sort-debug-warn.sh -@@ -71,7 +71,8 @@ sort: using simple byte comparison - 17 - sort: using simple byte comparison - 18 --sort: failed to set locale; using simple byte comparison -+sort: failed to set locale -+sort: using simple byte comparison - EOF - - echo 1 >> out -@@ -109,7 +110,11 @@ sort -rM --debug /dev/null 2>>out #no warning - echo 17 >> out - sort -rM -k1,1 --debug /dev/null 2>>out #no warning - echo 18 >> out --LC_ALL=missing sort --debug /dev/null 2>>out -+LC_ALL=missing sort --debug /dev/null 2>>out.t -+# musl libc accepts "missing" and implicitly uses UTF8, -+# so adjust the expected message accordingly. -+sed 's/using .*missing.* sorting rules/using simple byte comparison/' \ -+ out.t >>out - - compare exp out || fail=1 - --- -2.9.3 - diff --git a/system/gcc/401-libsanitizer-linux.patch b/system/gcc/401-libsanitizer-linux.patch deleted file mode 100644 index 8a662a268..000000000 --- a/system/gcc/401-libsanitizer-linux.patch +++ /dev/null @@ -1,100 +0,0 @@ ---- gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_linux.cc.old 2017-10-19 11:23:59.000000000 +0000 -+++ gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_linux.cc 2019-06-27 05:39:48.258332316 +0000 -@@ -752,7 +752,9 @@ - } - - #if SANITIZER_LINUX -+#ifndef SA_RESTORER - #define SA_RESTORER 0x04000000 -+#endif - // Doesn't set sa_restorer if the caller did not set it, so use with caution - //(see below). - int internal_sigaction_norestorer(int signum, const void *act, void *oldact) { -@@ -1687,65 +1689,59 @@ - } - - static void GetPcSpBp(void *context, uptr *pc, uptr *sp, uptr *bp) { --#if defined(__arm__) - ucontext_t *ucontext = (ucontext_t*)context; -+#if defined(__arm__) - *pc = ucontext->uc_mcontext.arm_pc; - *bp = ucontext->uc_mcontext.arm_fp; - *sp = ucontext->uc_mcontext.arm_sp; - #elif defined(__aarch64__) -- ucontext_t *ucontext = (ucontext_t*)context; - *pc = ucontext->uc_mcontext.pc; - *bp = ucontext->uc_mcontext.regs[29]; - *sp = ucontext->uc_mcontext.sp; - #elif defined(__hppa__) -- ucontext_t *ucontext = (ucontext_t*)context; - *pc = ucontext->uc_mcontext.sc_iaoq[0]; - /* GCC uses %r3 whenever a frame pointer is needed. */ - *bp = ucontext->uc_mcontext.sc_gr[3]; - *sp = ucontext->uc_mcontext.sc_gr[30]; - #elif defined(__x86_64__) - # if SANITIZER_FREEBSD -- ucontext_t *ucontext = (ucontext_t*)context; - *pc = ucontext->uc_mcontext.mc_rip; - *bp = ucontext->uc_mcontext.mc_rbp; - *sp = ucontext->uc_mcontext.mc_rsp; - #elif SANITIZER_NETBSD -- ucontext_t *ucontext = (ucontext_t *)context; - *pc = ucontext->uc_mcontext.__gregs[_REG_RIP]; - *bp = ucontext->uc_mcontext.__gregs[_REG_RBP]; - *sp = ucontext->uc_mcontext.__gregs[_REG_RSP]; - # else -- ucontext_t *ucontext = (ucontext_t*)context; - *pc = ucontext->uc_mcontext.gregs[REG_RIP]; - *bp = ucontext->uc_mcontext.gregs[REG_RBP]; - *sp = ucontext->uc_mcontext.gregs[REG_RSP]; - # endif - #elif defined(__i386__) - # if SANITIZER_FREEBSD -- ucontext_t *ucontext = (ucontext_t*)context; - *pc = ucontext->uc_mcontext.mc_eip; - *bp = ucontext->uc_mcontext.mc_ebp; - *sp = ucontext->uc_mcontext.mc_esp; - #elif SANITIZER_NETBSD -- ucontext_t *ucontext = (ucontext_t *)context; - *pc = ucontext->uc_mcontext.__gregs[_REG_EIP]; - *bp = ucontext->uc_mcontext.__gregs[_REG_EBP]; - *sp = ucontext->uc_mcontext.__gregs[_REG_ESP]; - # else -- ucontext_t *ucontext = (ucontext_t*)context; - *pc = ucontext->uc_mcontext.gregs[REG_EIP]; - *bp = ucontext->uc_mcontext.gregs[REG_EBP]; - *sp = ucontext->uc_mcontext.gregs[REG_ESP]; - # endif --#elif defined(__powerpc__) || defined(__powerpc64__) -- ucontext_t *ucontext = (ucontext_t*)context; -- *pc = ucontext->uc_mcontext.regs->nip; -- *sp = ucontext->uc_mcontext.regs->gpr[PT_R1]; -+#elif defined(__powerpc64__) -+ *pc = ucontext->uc_mcontext.gp_regs[32]; -+ *sp = ucontext->uc_mcontext.gp_regs[1]; -+ *bp = ucontext->uc_mcontext.gp_regs[31]; -+#elif defined(__powerpc__) -+ *pc = ucontext->uc_mcontext.gregs[32]; -+ *sp = ucontext->uc_mcontext.gregs[1]; - // The powerpc{,64}-linux ABIs do not specify r31 as the frame - // pointer, but GCC always uses r31 when we need a frame pointer. -- *bp = ucontext->uc_mcontext.regs->gpr[PT_R31]; -+ *bp = ucontext->uc_mcontext.gregs[31]; - #elif defined(__sparc__) -- ucontext_t *ucontext = (ucontext_t*)context; - uptr *stk_ptr; - # if defined (__arch64__) - *pc = ucontext->uc_mcontext.mc_gregs[MC_PC]; -@@ -1759,12 +1755,10 @@ - *bp = stk_ptr[15]; - # endif - #elif defined(__mips__) -- ucontext_t *ucontext = (ucontext_t*)context; - *pc = ucontext->uc_mcontext.pc; - *bp = ucontext->uc_mcontext.gregs[30]; - *sp = ucontext->uc_mcontext.gregs[29]; - #elif defined(__s390__) -- ucontext_t *ucontext = (ucontext_t*)context; - # if defined(__s390x__) - *pc = ucontext->uc_mcontext.psw.addr; - # else diff --git a/system/gcc/402-libsanitizer-utmp.patch b/system/gcc/402-libsanitizer-utmp.patch deleted file mode 100644 index 7929cd8b9..000000000 --- a/system/gcc/402-libsanitizer-utmp.patch +++ /dev/null @@ -1,75 +0,0 @@ ---- gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc.old 2018-05-31 09:58:32.000000000 +0000 -+++ gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.cc 2019-06-27 08:52:53.520080465 +0000 -@@ -43,9 +43,6 @@ - #include - #include - #include --#if !SANITIZER_MAC && !SANITIZER_FREEBSD --#include --#endif - - #if !SANITIZER_IOS - #include -@@ -291,9 +288,6 @@ - int shmctl_shm_stat = (int)SHM_STAT; - #endif - --#if !SANITIZER_MAC && !SANITIZER_FREEBSD -- unsigned struct_utmp_sz = sizeof(struct utmp); --#endif - #if !SANITIZER_ANDROID - unsigned struct_utmpx_sz = sizeof(struct utmpx); - #endif ---- gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h.old 2017-10-19 11:23:59.000000000 +0000 -+++ gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_platform_limits_posix.h 2019-06-27 08:53:41.114993442 +0000 -@@ -873,9 +873,6 @@ - extern int shmctl_shm_stat; - #endif - --#if !SANITIZER_MAC && !SANITIZER_FREEBSD -- extern unsigned struct_utmp_sz; --#endif - #if !SANITIZER_ANDROID - extern unsigned struct_utmpx_sz; - #endif ---- gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc.old 2017-10-19 11:23:59.000000000 +0000 -+++ gcc-8.3.0/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc 2019-06-27 08:54:20.530780618 +0000 -@@ -6106,38 +6106,7 @@ - - // FIXME: add other *stat interceptor - --#if SANITIZER_INTERCEPT_UTMP --INTERCEPTOR(void *, getutent, int dummy) { -- void *ctx; -- COMMON_INTERCEPTOR_ENTER(ctx, getutent, dummy); -- void *res = REAL(getutent)(dummy); -- if (res) -- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, __sanitizer::struct_utmp_sz); -- return res; --} --INTERCEPTOR(void *, getutid, void *ut) { -- void *ctx; -- COMMON_INTERCEPTOR_ENTER(ctx, getutid, ut); -- void *res = REAL(getutid)(ut); -- if (res) -- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, __sanitizer::struct_utmp_sz); -- return res; --} --INTERCEPTOR(void *, getutline, void *ut) { -- void *ctx; -- COMMON_INTERCEPTOR_ENTER(ctx, getutline, ut); -- void *res = REAL(getutline)(ut); -- if (res) -- COMMON_INTERCEPTOR_INITIALIZE_RANGE(res, __sanitizer::struct_utmp_sz); -- return res; --} --#define INIT_UTMP \ -- COMMON_INTERCEPT_FUNCTION(getutent); \ -- COMMON_INTERCEPT_FUNCTION(getutid); \ -- COMMON_INTERCEPT_FUNCTION(getutline); --#else - #define INIT_UTMP --#endif - - #if SANITIZER_INTERCEPT_UTMPX - INTERCEPTOR(void *, getutxent, int dummy) { diff --git a/system/git/0001-gc-use-s-type-character-for-fscanf.patch b/system/git/0001-gc-use-s-type-character-for-fscanf.patch deleted file mode 100644 index e3fe78cf6..000000000 --- a/system/git/0001-gc-use-s-type-character-for-fscanf.patch +++ /dev/null @@ -1,33 +0,0 @@ -From afceb0f7755a87d0dd2194e95f26c9dc8f4bc688 Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" -Date: Fri, 15 Sep 2017 23:55:57 -0500 -Subject: [PATCH] gc: use 's' type character for fscanf - -The ISO C standard states that using a field width together with the 'c' -type character will read the exact amount specified; if that amount of -bytes is not available, a match error occurs. - -This patch allows the t6500 test to pass on the musl libc, and `git gc` -to behave correctly on systems utilising musl. - -Signed-off-by: A. Wilcox ---- - builtin/gc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/builtin/gc.c b/builtin/gc.c -index 3c78fcb..bb2d6c1 100644 ---- a/builtin/gc.c -+++ b/builtin/gc.c -@@ -258,7 +258,7 @@ static const char *lock_repo_for_gc(int force, pid_t* ret_pid) - int should_exit; - - if (!scan_fmt) -- scan_fmt = xstrfmt("%s %%%dc", "%"SCNuMAX, HOST_NAME_MAX); -+ scan_fmt = xstrfmt("%s %%%ds", "%"SCNuMAX, HOST_NAME_MAX); - fp = fopen(pidfile_path, "r"); - memset(locking_host, 0, sizeof(locking_host)); - should_exit = --- -2.10.0 - diff --git a/system/gmp/gmp-4.1.4-noexecstack.patch b/system/gmp/gmp-4.1.4-noexecstack.patch deleted file mode 100644 index 093bec1a5..000000000 --- a/system/gmp/gmp-4.1.4-noexecstack.patch +++ /dev/null @@ -1,20 +0,0 @@ -fixed executable stack - -http://bugs.gentoo.org/115038 - ---- gmp-4.1.4/configure -+++ gmp-4.1.4/configure -@@ -21689,6 +21689,13 @@ - fi - echo "')" >> $gmp_configm4 - echo "define(\`__CONFIG_M4_INCLUDED__')" >> $gmp_configm4 -+# Gentoo hack -+case $host_os in -+ *linux*) -+ echo '.section .note.GNU-stack,"",%progbits' >> $gmp_configm4 -+ echo '.previous' >> $gmp_configm4 -+ ;; -+esac - - # Create Makefiles - # FIXME: Upcoming version of autoconf/automake may not like broken lines. diff --git a/system/vim/no-default-mouse.patch b/system/vim/no-default-mouse.patch deleted file mode 100644 index c34b9cae7..000000000 --- a/system/vim/no-default-mouse.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff -Nurd vim-8.1.0712/runtime/defaults.vim vim-8.1.0712.new/runtime/defaults.vim ---- vim-8.1.0712/runtime/defaults.vim 2019-01-09 16:02:43.000000000 -0600 -+++ vim-8.1.0712.new/runtime/defaults.vim 2019-01-27 01:18:04.196123398 -0600 -@@ -73,12 +73,6 @@ - " Revert with ":iunmap ". - inoremap u - --" In many terminal emulators the mouse works just fine. By enabling it you --" can position the cursor, Visually select and scroll with the mouse. --if has('mouse') -- set mouse=a --endif -- - " Switch syntax highlighting on when the terminal has colors or when using the - " GUI (which always has colors). - if &t_Co > 2 || has("gui_running") diff --git a/user/assimp/built b/user/assimp/built deleted file mode 100644 index e69de29bb..000000000 diff --git a/user/baloo/baloo-5.38.0-r0-x86_64-ciall.log b/user/baloo/baloo-5.38.0-r0-x86_64-ciall.log deleted file mode 100644 index 00820eb0c..000000000 --- a/user/baloo/baloo-5.38.0-r0-x86_64-ciall.log +++ /dev/null @@ -1,2714 +0,0 @@ ->>> baloo: abuild 3.0.1-r2 -]0;abuild: baloo>>> baloo: Checking sanity of /usr/src/packages/user/baloo/APKBUILD... ->>> baloo: Analyzing dependencies... ->>> baloo: Installing for build: build-base qt5-qtbase-dev kcoreaddons-dev kconfig-dev kdbusaddons-dev lmdb-dev ki18n-dev kidletime-dev solid-dev kfilemetadata-dev kcrash-dev kio-dev cmake extra-cmake-modules python3 gettext-dev doxygen graphviz qt5-qttools-dev -(1/247) Installing fcron-pam (3.2.0-r2) -(2/247) Installing libpciaccess (0.13.5-r1) -(3/247) Installing libdrm (2.4.83-r2) -(4/247) Installing libdrm-dev (2.4.83-r2) -(5/247) Installing dri2proto (2.8-r2) -(6/247) Installing xproto (7.0.31-r1) -(7/247) Installing libxau-dev (1.0.8-r2) -(8/247) Installing xcb-proto (1.12-r1) -(9/247) Installing libpthread-stubs (0.3-r5) -(10/247) Installing libxdmcp-dev (1.1.2-r4) -(11/247) Installing libxcb-dev (1.12-r1) -(12/247) Installing xextproto (7.3.0-r2) -(13/247) Installing xf86bigfontproto-dev (1.2.0-r5) -(14/247) Installing xtrans (1.3.5-r1) -(15/247) Installing inputproto (2.3.2-r1) -(16/247) Installing kbproto (1.0.7-r2) -(17/247) Installing libx11-dev (1.6.5-r1) -(18/247) Installing libxext-dev (1.3.3-r2) -(19/247) Installing libxxf86vm (1.1.4-r1) -(20/247) Installing xf86vidmodeproto (2.3.1-r3) -(21/247) Installing libxxf86vm-dev (1.1.4-r1) -(22/247) Installing damageproto (1.2.1-r3) -(23/247) Installing fixesproto (5.0-r2) -(24/247) Installing libxfixes-dev (5.0.3-r1) -(25/247) Installing libxdamage-dev (1.1.4-r1) -(26/247) Installing glproto (1.4.17-r2) -(27/247) Installing dri3proto (1.0-r2) -(28/247) Installing presentproto (1.1-r1) -(29/247) Installing libxshmfence (1.2-r2) -(30/247) Installing libxshmfence-dev (1.2-r2) -(31/247) Installing wayland-libs-server (1.14.0-r2) -(32/247) Installing wayland-libs-cursor (1.14.0-r2) -(33/247) Installing wayland-libs-client (1.14.0-r2) -(34/247) Installing mesa-gbm (17.1.4-r2) -(35/247) Installing mesa-egl (17.1.4-r2) -(36/247) Installing mesa-glapi (17.1.4-r2) -(37/247) Installing mesa-gl (17.1.4-r2) -(38/247) Installing mesa-gles (17.1.4-r2) -(39/247) Installing mesa-libwayland-egl (17.1.4-r2) -(40/247) Installing mesa-osmesa (17.1.4-r2) -(41/247) Installing llvm4-libs (4.0.0-r5) -(42/247) Installing mesa-xatracker (17.1.4-r2) -(43/247) Installing libffi-dev (3.2.1-r4) -(44/247) Installing expat-dev (2.2.4-r0) -(45/247) Installing wayland-dev (1.14.0-r2) -(46/247) Installing mesa-dev (17.1.4-r2) -(47/247) Installing libice-dev (1.0.9-r2) -(48/247) Installing libsm-dev (1.2.2-r1) -(49/247) Installing zlib-dev (1.2.11-r1) -(50/247) Installing openssl-dev (1.0.2l-r0) -(51/247) Installing libpng-dev (1.6.32-r1) -(52/247) Installing freetype-dev (2.8.1-r1) -(53/247) Installing fontconfig-dev (2.12.4-r1) -(54/247) Installing gdbm (1.13-r1) -(55/247) Installing python3 (3.6.2-r2) -(56/247) Installing attr-dev (2.4.47-r7) -(57/247) Installing gettext-asprintf (0.19.8.1-r1) -(58/247) Installing gettext-libs (0.19.8.1-r1) -(59/247) Installing gettext (0.19.8.1-r1) -(60/247) Installing gettext-dev (0.19.8.1-r1) -(61/247) Installing bzip2-dev (1.0.6-r6) -(62/247) Installing util-linux-dev (2.30.1-r3) -(63/247) Installing libpcre16 (8.41-r1) -(64/247) Installing libpcre32 (8.41-r1) -(65/247) Installing libpcrecpp (8.41-r1) -(66/247) Installing pcre-dev (8.41-r1) -(67/247) Installing glib-dev (2.54.0-r0) -(68/247) Installing sqlite-dev (3.20.1-r0) -(69/247) Installing dbus-libs (1.10.18-r1) -(70/247) Installing dbus-dev (1.10.18-r1) -(71/247) Installing libpcre2-16 (10.30-r0) -(72/247) Installing qt5-qtbase (5.9.1-r2) -(73/247) Installing qt5-qtbase-sqlite (5.9.1-r2) -(74/247) Installing unixodbc (2.3.4-r2) -(75/247) Installing qt5-qtbase-odbc (5.9.1-r2) -(76/247) Installing libpq (9.6.4-r1) -(77/247) Installing qt5-qtbase-postgresql (5.9.1-r2) -(78/247) Installing mariadb-common (10.1.26-r1) -(79/247) Installing mariadb-client-libs (10.1.26-r1) -(80/247) Installing qt5-qtbase-mysql (5.9.1-r2) -(81/247) Installing freetds (1.00.40-r0) -(82/247) Installing qt5-qtbase-tds (5.9.1-r2) -(83/247) Installing libevdev (1.5.7-r1) -(84/247) Installing mtdev (1.1.5-r2) -(85/247) Installing eudev-libs (3.2.4-r0) -(86/247) Installing libinput-libs (1.8.1-r1) -(87/247) Installing xcb-util-wm (0.4.1-r1) -(88/247) Installing xcb-util (0.4.0-r1) -(89/247) Installing xcb-util-image (0.4.0-r1) -(90/247) Installing xcb-util-keysyms (0.4.0-r1) -(91/247) Installing xcb-util-renderutil (0.3.9-r1) -(92/247) Installing libxkbcommon (0.7.1-r1) -(93/247) Installing qt5-qtbase-x11 (5.9.1-r2) -(94/247) Installing qt5-qtbase-dev (5.9.1-r2) -(95/247) Installing kcoreaddons (5.38.0-r0) -(96/247) Installing kcoreaddons-dev (5.38.0-r0) -(97/247) Installing kconfig (5.38.0-r0) -(98/247) Installing kconfig-dev (5.38.0-r0) -(99/247) Installing qt5-qtx11extras (5.9.1-r0) -(100/247) Installing qt5-qtx11extras-dev (5.9.1-r0) -(101/247) Installing kdbusaddons (5.38.0-r0) -(102/247) Installing kdbusaddons-dev (5.38.0-r0) -(103/247) Installing lmdb-dev (0.9.21-r1) -(104/247) Installing qt5-qtscript (5.9.1-r0) -(105/247) Installing qt5-qtscript-dev (5.9.1-r0) -(106/247) Installing qt5-qtdeclarative (5.9.1-r0) -(107/247) Installing qt5-qtdeclarative-dev (5.9.1-r0) -(108/247) Installing ki18n (5.38.0-r0) -(109/247) Installing ki18n-dev (5.38.0-r0) -(110/247) Installing kidletime (5.38.0-r0) -(111/247) Installing kidletime-dev (5.38.0-r0) -(112/247) Installing udev-init-scripts (32-r1) -Executing udev-init-scripts-32-r1.post-install -(113/247) Installing kmod (24-r1) -(114/247) Installing eudev (3.2.4-r0) -(115/247) Installing eudev-dev (3.2.4-r0) -(116/247) Installing solid (5.38.0-r0) -(117/247) Installing solid-dev (5.38.0-r0) -(118/247) Installing xz-dev (5.2.3-r1) -(119/247) Installing karchive (5.38.0-r0) -(120/247) Installing karchive-dev (5.38.0-r0) -(121/247) Installing libjpeg-turbo-dev (1.5.2-r1) -(122/247) Installing renderproto (0.11.1-r3) -(123/247) Installing libxrender-dev (0.9.10-r2) -(124/247) Installing pixman-dev (0.34.0-r2) -(125/247) Installing util-macros (1.19.1-r1) -(126/247) Installing xcb-util-dev (0.4.0-r1) -(127/247) Installing cairo-tools (1.14.8-r2) -(128/247) Installing cairo-gobject (1.14.8-r2) -(129/247) Installing cairo-dev (1.14.8-r2) -(130/247) Installing icu-dev (59.1-r1) -(131/247) Installing libxml2-dev (2.9.4-r5) -(132/247) Installing lcms2 (2.8-r2) -(133/247) Installing openjpeg (2.2.0-r2) -(134/247) Installing tiff (4.0.8-r1) -(135/247) Installing poppler (0.56.0-r1) -(136/247) Installing poppler-glib (0.56.0-r1) -(137/247) Installing poppler-dev (0.56.0-r1) -(138/247) Installing tiff-dev (4.0.8-r1) -(139/247) Installing lcms2-dev (2.8-r2) -(140/247) Installing openjpeg-dev (2.2.0-r2) -(141/247) Installing poppler-qt5 (0.56.0-r0) -(142/247) Installing poppler-qt5-dev (0.56.0-r0) -(143/247) Installing exiv2 (0.26-r0) -(144/247) Installing exiv2-dev (0.26-r0) -(145/247) Installing taglib (1.11.1-r1) -(146/247) Installing taglib-dev (1.11.1-r1) -(147/247) Installing alsa-lib (1.1.4.1-r2) -(148/247) Installing libxv (1.0.11-r1) -(149/247) Installing cdparanoia-libs (10.2-r7) -(150/247) Installing gstreamer (1.12.2-r1) -(151/247) Installing libogg (1.3.2-r2) -(152/247) Installing opus (1.2.1-r0) -(153/247) Installing orc (0.4.26-r1) -(154/247) Installing libtheora (1.1.1-r13) -(155/247) Installing libvorbis (1.3.5-r2) -(156/247) Installing gst-plugins-base (1.12.1-r3) -(157/247) Installing json-c (0.12.1-r2) -(158/247) Installing flac (1.3.2-r1) -(159/247) Installing libsndfile (1.0.28-r3) -(160/247) Installing speexdsp (1.2_rc3-r4) -(161/247) Installing pulseaudio-libs (9.0-r2) -(162/247) Installing qt5-qtmultimedia (5.9.1-r1) -(163/247) Installing qt5-qtmultimedia-dev (5.9.1-r1) -(164/247) Installing catdoc (0.95-r0) -(165/247) Installing kfilemetadata (5.38.0-r0) -(166/247) Installing kfilemetadata-dev (5.38.0-r0) -(167/247) Installing xcb-util-keysyms-dev (0.4.0-r1) -(168/247) Installing kwindowsystem (5.38.0-r0) -(169/247) Installing kwindowsystem-dev (5.38.0-r0) -(170/247) Installing kcrash (5.38.0-r0) -(171/247) Installing kcrash-dev (5.38.0-r0) -(172/247) Installing kservice (5.38.0-r0) -(173/247) Installing kservice-dev (5.38.0-r0) -(174/247) Installing kcodecs (5.38.0-r0) -(175/247) Installing kcodecs-dev (5.38.0-r0) -(176/247) Installing dbus-glib (0.108-r1) -(177/247) Installing eggdbus (0.6-r5) -(178/247) Installing eggdbus-dev (0.6-r5) -(179/247) Installing dbus-glib-dev (0.108-r1) -(180/247) Installing linux-pam-dev (1.3.0-r0) -(181/247) Installing polkit (0.105-r8) -(182/247) Installing polkit-dev (0.105-r8) -(183/247) Installing polkit-qt-1 (0.112.0-r0) -(184/247) Installing polkit-qt-1-dev (0.112.0-r0) -(185/247) Installing kauth (5.38.0-r0) -(186/247) Installing kauth-dev (5.38.0-r0) -(187/247) Installing kguiaddons (5.38.0-r0) -(188/247) Installing kguiaddons-dev (5.38.0-r0) -(189/247) Installing kwidgetsaddons (5.38.0-r0) -(190/247) Installing kwidgetsaddons-dev (5.38.0-r0) -(191/247) Installing libxslt (1.1.29-r4) -(192/247) Installing libxslt-dev (1.1.29-r4) -(193/247) Installing perl-uri-escape (1.72-r0) -(194/247) Installing libxml2-utils (2.9.5-r2) -(195/247) Installing docbook-xml (4.5-r5) -Executing docbook-xml-4.5-r5.post-install -(196/247) Installing docbook-xsl (1.79.1-r0) -Executing docbook-xsl-1.79.1-r0.post-install -(197/247) Installing kdoctools (5.38.0-r0) -(198/247) Installing kdoctools-dev (5.38.0-r0) -(199/247) Installing kconfigwidgets (5.38.0-r0) -(200/247) Installing kconfigwidgets-dev (5.38.0-r0) -(201/247) Installing qt5-qtsvg (5.9.1-r0) -(202/247) Installing qt5-qtsvg-dev (5.9.1-r0) -(203/247) Installing kitemviews (5.38.0-r0) -(204/247) Installing kitemviews-dev (5.38.0-r0) -(205/247) Installing kiconthemes (5.38.0-r0) -(206/247) Installing kiconthemes-dev (5.38.0-r0) -(207/247) Installing kcompletion (5.38.0-r0) -(208/247) Installing kcompletion-dev (5.38.0-r0) -(209/247) Installing sonnet (5.38.0-r0) -(210/247) Installing sonnet-dev (5.38.0-r0) -(211/247) Installing ktextwidgets (5.38.0-r0) -(212/247) Installing ktextwidgets-dev (5.38.0-r0) -(213/247) Installing kglobalaccel (5.38.0-r0) -(214/247) Installing kglobalaccel-dev (5.38.0-r0) -(215/247) Installing attica (5.38.0-r0) -(216/247) Installing attica-dev (5.38.0-r0) -(217/247) Installing kxmlgui (5.38.0-r0) -(218/247) Installing kxmlgui-dev (5.38.0-r0) -(219/247) Installing kbookmarks (5.38.0-r0) -(220/247) Installing kbookmarks-dev (5.38.0-r0) -(221/247) Installing kjobwidgets (5.38.0-r0) -(222/247) Installing kjobwidgets-dev (5.38.0-r0) -(223/247) Installing acl-dev (2.2.52-r4) -(224/247) Installing libxtst (1.2.3-r1) -(225/247) Installing fftw-single-libs (3.3.6p2-r0) -(226/247) Installing libidl (0.8.14-r3) -(227/247) Installing orbit2 (2.14.19-r4) -(228/247) Installing gconf (3.2.6-r2) -(229/247) Installing pulseaudio (9.0-r2) -(230/247) Installing phonon (4.9.1-r0) -(231/247) Installing phonon-dev (4.9.1-r0) -(232/247) Installing libdbusmenu-qt-dev (0.9.3_pre20160218-r0) -(233/247) Installing knotifications (5.38.0-r0) -(234/247) Installing knotifications-dev (5.38.0-r0) -(235/247) Installing libgpg-error-dev (1.27-r1) -(236/247) Installing libgcrypt-dev (1.8.1-r1) -(237/247) Installing kwallet (5.38.0-r0) -(238/247) Installing kwallet-dev (5.38.0-r0) -(239/247) Installing kio (5.38.0-r0) -(240/247) Installing kio-dev (5.38.0-r0) -(241/247) Installing extra-cmake-modules (5.38.0-r0) -(242/247) Installing doxygen (1.8.13-r1) -(243/247) Installing graphviz (2.40.1-r1) -(244/247) Installing qt5-qttools (5.9.1-r1) -(245/247) Installing qt5-qttools-dev (5.9.1-r1) -(246/247) Installing .makedepends-baloo (0) -(247/247) Installing pulseaudio-zsh-completion (9.0-r2) -Executing glib-2.54.0-r0.trigger -No schema files found: doing nothing. -Executing graphviz-2.40.1-r1.trigger -Executing shared-mime-info-1.8-r1.trigger -Executing gtk-update-icon-cache-2.24.31-r1.trigger -OK: 1464 MiB in 446 packages ->>> baloo: Cleaning temporary build dirs... ->>> baloo: Fetching http://download.kde.org/stable/frameworks/5.38/baloo-5.38.0.tar.xz ->>> baloo: Fetching http://download.kde.org/stable/frameworks/5.38/baloo-5.38.0.tar.xz ->>> baloo: Checking sha512sums... -baloo-5.38.0.tar.xz: OK ->>> baloo: Unpacking /var/cache/distfiles/baloo-5.38.0.tar.xz... --- The C compiler identification is GNU 6.4.0 --- The CXX compiler identification is GNU 6.4.0 --- Check for working C compiler: /usr/bin/gcc --- Check for working C compiler: /usr/bin/gcc -- works --- Detecting C compiler ABI info --- Detecting C compiler ABI info - done --- Detecting C compile features --- Detecting C compile features - done --- Check for working CXX compiler: /usr/bin/c++ --- Check for working CXX compiler: /usr/bin/c++ -- works --- Detecting CXX compiler ABI info --- Detecting CXX compiler ABI info - done --- Detecting CXX compile features --- Detecting CXX compile features - done --- - --- Installing in the same prefix as Qt, adopting their path scheme. --- Could not set up the appstream test. appstreamcli is missing. --- Looking for __GLIBC__ --- Looking for __GLIBC__ - not found --- Performing Test _OFFT_IS_64BIT --- Performing Test _OFFT_IS_64BIT - Success --- Performing Test HAVE_DATE_TIME --- Performing Test HAVE_DATE_TIME - Success --- Found KF5CoreAddons: /usr/lib/cmake/KF5CoreAddons/KF5CoreAddonsConfig.cmake (found version "5.38.0") --- Found KF5Config: /usr/lib/cmake/KF5Config/KF5ConfigConfig.cmake (found version "5.38.0") --- Found KF5DBusAddons: /usr/lib/cmake/KF5DBusAddons/KF5DBusAddonsConfig.cmake (found version "5.38.0") --- Found Gettext: /usr/bin/msgmerge (found version "0.19.8.1") --- Found PythonInterp: /usr/bin/python (found version "3.6.2") --- Found KF5I18n: /usr/lib/cmake/KF5I18n/KF5I18nConfig.cmake (found version "5.38.0") --- Found KF5IdleTime: /usr/lib/cmake/KF5IdleTime/KF5IdleTimeConfig.cmake (found version "5.38.0") --- Found KF5Solid: /usr/lib/cmake/KF5Solid/KF5SolidConfig.cmake (found version "5.38.0") --- Found KF5FileMetaData: /usr/lib/cmake/KF5FileMetaData/KF5FileMetaDataConfig.cmake (found version "5.38.0") --- Found KF5Crash: /usr/lib/cmake/KF5Crash/KF5CrashConfig.cmake (found version "5.38.0") --- Found KF5KIO: /usr/lib/cmake/KF5KIO/KF5KIOConfig.cmake (found version "5.38.0") --- Found KF5: success (found suitable version "5.38.0", minimum required is "5.38.0") found components: CoreAddons Config DBusAddons I18n IdleTime Solid FileMetaData Crash KIO --- Found LMDB: /usr/include --- LMDB lib: /usr/lib/liblmdb.a --- LMDB include: /usr/include --- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY --- Performing Test COMPILER_HAS_HIDDEN_VISIBILITY - Success --- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY --- Performing Test COMPILER_HAS_HIDDEN_INLINE_VISIBILITY - Success --- Performing Test COMPILER_HAS_DEPRECATED_ATTR --- Performing Test COMPILER_HAS_DEPRECATED_ATTR - Success --- Found Doxygen: /usr/bin/doxygen (found suitable version "1.8.13", minimum required is "1.8.13") found components: doxygen dot --- Found QHelpGenerator executable: /usr/lib/qt5/bin/qhelpgenerator --- No such target Qt5Core_QCH defined when calling ecm_add_qch(), ignored. --- No such target KF5CoreAddons_QCH defined when calling ecm_add_qch(), ignored. --- No such target KF5FileMetaData_QCH defined when calling ecm_add_qch(), ignored. --- The following features have been enabled: - - * QCH, API documentation in QCH format (for e.g. Qt Assistant, Qt Creator & KDevelop) - --- The following OPTIONAL packages have been found: - - * Inotify - Filesystem alteration notifications using inotify - --- The following REQUIRED packages have been found: - - * ECM (required version >= 5.38.0), Extra CMake Modules, - * Qt5DBus - * Qt5Gui (required version >= 5.9.1) - * Qt5Widgets - * Qt5Network (required version >= 5.9.1) - * Qt5Qml - * Qt5Quick - * Qt5Test - * Qt5 (required version >= 5.7.0) - * KF5CoreAddons (required version >= 5.38.0) - * KF5Config (required version >= 5.38.0) - * KF5DBusAddons (required version >= 5.38.0) - * Gettext - * PythonInterp - * KF5I18n (required version >= 5.38.0) - * KF5IdleTime (required version >= 5.38.0) - * KF5Solid (required version >= 5.38.0) - * KF5FileMetaData (required version >= 5.38.0) - * KF5Crash (required version >= 5.38.0) - * KF5KIO (required version >= 5.38.0) - * KF5 (required version >= 5.38.0) - * LMDB, Lightning Memory-Mapped Database (LMDB), - * Doxygen (required version >= 1.8.13) - Needed for API dox QCH file generation - * QHelpGenerator, Part of Qt5 tools - Needed for API dox QCH file generation - * Qt5Core - --- Configuring done --- Generating done --- Build files have been written to: /usr/src/packages/user/baloo/src/baloo-5.38.0 -Scanning dependencies of target tsfiles-20019e270ed76750f8f8374aa75fc90f -Scanning dependencies of target pofiles-20019e270ed76750f8f8374aa75fc90f -Scanning dependencies of target KF5Baloo_QCH -Scanning dependencies of target KF5BalooCodecs_autogen -Scanning dependencies of target BalooDBusInterfaces -Scanning dependencies of target extractorIOTest_autogen -Scanning dependencies of target baloosearchmodule_autogen -[ 0%] Generating ts... -[ 0%] Generating src/lib/KF5Baloo.qch, src/lib/KF5Baloo.tags -[ 1%] Generating mo... -Scanning dependencies of target advancedqueryparsertest_autogen -[ 1%] Generating org.kde.baloo.main.xml -[ 2%] Automatic MOC for target extractorIOTest -[ 3%] Automatic MOC for target KF5BalooCodecs -[ 3%] Generating baloosearchmodule.json -[ 3%] Automatic MOC for target advancedqueryparsertest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h --- building... ar/baloo_file5.po to baloo_file5.mo -Generating MOC predefs moc_predefs.h -[ 4%] Generating org.kde.baloo.scheduler.xml --- building... ar/baloo_file_extractor5.po to baloo_file_extractor5.mo -[ 4%] Built target tsfiles-20019e270ed76750f8f8374aa75fc90f -About to parse service type file "kdedmodule.desktop" -Warning: Could not locate service type file kservicetypes5/kdedmodule.desktop, tried ("/home/awilcox/.local/share", "/usr/local/share", "/usr/share") and ":/kservicetypes5/kdedmodule.desktop" ((null):0, (null)) -Generating MOC compilation mocs_compilation.cpp -Unknown property type for key "X-KDE-DBus-ModuleName" -> falling back to string -Unknown property type for key "X-KDE-Kded-autoload" -> falling back to string -Unknown property type for key "X-KDE-Kded-load-on-demand" -> falling back to string -Unknown property type for key "X-KDE-Kded-phase" -> falling back to string -Generated "/usr/src/packages/user/baloo/src/baloo-5.38.0/src/kioslaves/kded/baloosearchmodule.json" - --- building... ar/balooctl5.po to balooctl5.mo -[ 4%] Automatic MOC for target baloosearchmodule -[ 4%] Generating org.kde.baloo.fileindexer.xml -[ 4%] Built target KF5BalooCodecs_autogen --- building... ar/baloomonitorplugin.po to baloomonitorplugin.mo -[ 4%] Generating maininterface.cpp, maininterface.h -Scanning dependencies of target KF5BalooCodecs --- building... ar/baloosearch5.po to baloosearch5.mo -AutoMoc: Warning: "/usr/src/packages/user/baloo/src/baloo-5.38.0/src/kioslaves/kded/baloosearchmodule.cpp" -The file includes the moc file "baloosearchmodule.moc", but does not contain a Q_OBJECT or Q_GADGET macro. - --- building... ar/balooshow5.po to balooshow5.mo -[ 4%] Generating schedulerinterface.cpp, schedulerinterface.h --- building... ar/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ar/kio5_timeline.po to kio5_timeline.mo --- building... ast/baloo_file5.po to baloo_file5.mo -[ 4%] Building CXX object src/codecs/CMakeFiles/KF5BalooCodecs.dir/doctermscodec.cpp.o --- building... ast/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... ast/balooctl5.po to balooctl5.mo -[ 4%] Generating fileindexerinterface.cpp, fileindexerinterface.h --- building... ast/baloomonitorplugin.po to baloomonitorplugin.mo -[ 4%] Generating maininterface.moc --- building... ast/baloosearch5.po to baloosearch5.mo --- building... ast/balooshow5.po to balooshow5.mo --- building... ast/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ast/kio5_tags.po to kio5_tags.mo --- building... ast/kio5_timeline.po to kio5_timeline.mo -[ 5%] Generating schedulerinterface.moc --- building... bg/baloo_file5.po to baloo_file5.mo --- building... bg/baloosearch5.po to baloosearch5.mo --- building... bg/balooshow5.po to balooshow5.mo --- building... bs/baloo_file5.po to baloo_file5.mo --- building... bs/balooctl5.po to balooctl5.mo --- building... bs/baloosearch5.po to baloosearch5.mo -Generating MOC source include/advancedqueryparsertest.moc -Generating MOC compilation mocs_compilation.cpp -Generating MOC source include/iohandlertest.moc -Generating MOC compilation mocs_compilation.cpp --- building... bs/balooshow5.po to balooshow5.mo --- building... bs/kio5_baloosearch.po to kio5_baloosearch.mo -[ 5%] Built target advancedqueryparsertest_autogen -Building up file structure... --- building... bs/kio5_tags.po to kio5_tags.mo -[ 5%] Built target extractorIOTest_autogen --- building... bs/kio5_timeline.po to kio5_timeline.mo --- building... ca/baloo_file5.po to baloo_file5.mo --- building... ca/baloo_file_extractor5.po to baloo_file_extractor5.mo -[ 5%] Generating fileindexerinterface.moc --- building... ca/balooctl5.po to balooctl5.mo -[ 5%] Building CXX object src/codecs/CMakeFiles/KF5BalooCodecs.dir/positioncodec.cpp.o --- building... ca/baloomonitorplugin.po to baloomonitorplugin.mo -Insert custom filters... -Insert help data for filter section (1 of 1)... -Insert files... -Insert contents... -Insert indices... -Documentation successfully generated. --- building... ca/baloosearch5.po to baloosearch5.mo --- building... ca/balooshow5.po to balooshow5.mo --- building... ca/kio5_baloosearch.po to kio5_baloosearch.mo -[ 5%] Built target KF5Baloo_QCH --- building... ca/kio5_tags.po to kio5_tags.mo --- building... ca/kio5_timeline.po to kio5_timeline.mo -Scanning dependencies of target advancedqueryparsertest --- building... ca@valencia/baloo_file5.po to baloo_file5.mo --- building... ca@valencia/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... ca@valencia/balooctl5.po to balooctl5.mo --- building... ca@valencia/baloomonitorplugin.po to baloomonitorplugin.mo -Generating MOC predefs moc_predefs.h -Generating MOC source include/baloosearchmodule.moc -Generating MOC source EWIEGA46WW/moc_baloosearchmodule.cpp -Generating MOC compilation mocs_compilation.cpp --- building... ca@valencia/baloosearch5.po to baloosearch5.mo -[ 6%] Building CXX object autotests/unit/lib/CMakeFiles/advancedqueryparsertest.dir/advancedqueryparsertest.cpp.o -[ 6%] Built target baloosearchmodule_autogen --- building... ca@valencia/balooshow5.po to balooshow5.mo -[ 6%] Building CXX object autotests/unit/lib/CMakeFiles/advancedqueryparsertest.dir/__/__/__/src/lib/advancedqueryparser.cpp.o -Scanning dependencies of target extractorIOTest --- building... ca@valencia/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ca@valencia/kio5_tags.po to kio5_tags.mo --- building... ca@valencia/kio5_timeline.po to kio5_timeline.mo -[ 6%] Building CXX object autotests/unit/lib/CMakeFiles/advancedqueryparsertest.dir/__/__/__/src/lib/term.cpp.o --- building... cs/baloo_file5.po to baloo_file5.mo -[ 6%] Building CXX object src/file/extractor/autotests/CMakeFiles/extractorIOTest.dir/iohandlertest.cpp.o --- building... cs/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... cs/balooctl5.po to balooctl5.mo -[ 6%] Built target BalooDBusInterfaces --- building... cs/baloomonitorplugin.po to baloomonitorplugin.mo --- building... cs/baloosearch5.po to baloosearch5.mo --- building... cs/balooshow5.po to balooshow5.mo -[ 7%] Building CXX object src/file/extractor/autotests/CMakeFiles/extractorIOTest.dir/__/iohandler.cpp.o --- building... cs/kio5_baloosearch.po to kio5_baloosearch.mo --- building... cs/kio5_tags.po to kio5_tags.mo --- building... cs/kio5_timeline.po to kio5_timeline.mo --- building... da/baloo_file5.po to baloo_file5.mo --- building... da/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... da/balooctl5.po to balooctl5.mo --- building... da/baloomonitorplugin.po to baloomonitorplugin.mo --- building... da/baloosearch5.po to baloosearch5.mo --- building... da/balooshow5.po to balooshow5.mo --- building... da/kio5_baloosearch.po to kio5_baloosearch.mo --- building... da/kio5_tags.po to kio5_tags.mo --- building... da/kio5_timeline.po to kio5_timeline.mo --- building... de/baloo_file5.po to baloo_file5.mo --- building... de/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... de/balooctl5.po to balooctl5.mo --- building... de/baloomonitorplugin.po to baloomonitorplugin.mo --- building... de/baloosearch5.po to baloosearch5.mo --- building... de/balooshow5.po to balooshow5.mo --- building... de/kio5_baloosearch.po to kio5_baloosearch.mo --- building... de/kio5_tags.po to kio5_tags.mo --- building... de/kio5_timeline.po to kio5_timeline.mo --- building... el/baloo_file5.po to baloo_file5.mo --- building... el/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... el/balooctl5.po to balooctl5.mo --- building... el/baloomonitorplugin.po to baloomonitorplugin.mo --- building... el/baloosearch5.po to baloosearch5.mo --- building... el/balooshow5.po to balooshow5.mo --- building... el/kio5_baloosearch.po to kio5_baloosearch.mo --- building... el/kio5_tags.po to kio5_tags.mo --- building... el/kio5_timeline.po to kio5_timeline.mo --- building... en_GB/baloo_file5.po to baloo_file5.mo --- building... en_GB/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... en_GB/balooctl5.po to balooctl5.mo --- building... en_GB/baloomonitorplugin.po to baloomonitorplugin.mo --- building... en_GB/baloosearch5.po to baloosearch5.mo --- building... en_GB/balooshow5.po to balooshow5.mo --- building... en_GB/kio5_baloosearch.po to kio5_baloosearch.mo --- building... en_GB/kio5_tags.po to kio5_tags.mo --- building... en_GB/kio5_timeline.po to kio5_timeline.mo --- building... es/baloo_file5.po to baloo_file5.mo --- building... es/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... es/balooctl5.po to balooctl5.mo --- building... es/baloomonitorplugin.po to baloomonitorplugin.mo --- building... es/baloosearch5.po to baloosearch5.mo --- building... es/balooshow5.po to balooshow5.mo --- building... es/kio5_baloosearch.po to kio5_baloosearch.mo --- building... es/kio5_tags.po to kio5_tags.mo --- building... es/kio5_timeline.po to kio5_timeline.mo --- building... et/baloo_file5.po to baloo_file5.mo --- building... et/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... et/balooctl5.po to balooctl5.mo --- building... et/baloomonitorplugin.po to baloomonitorplugin.mo --- building... et/baloosearch5.po to baloosearch5.mo --- building... et/balooshow5.po to balooshow5.mo --- building... et/kio5_baloosearch.po to kio5_baloosearch.mo --- building... et/kio5_tags.po to kio5_tags.mo --- building... et/kio5_timeline.po to kio5_timeline.mo --- building... eu/baloo_file5.po to baloo_file5.mo --- building... eu/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... eu/balooctl5.po to balooctl5.mo --- building... eu/baloomonitorplugin.po to baloomonitorplugin.mo --- building... eu/baloosearch5.po to baloosearch5.mo --- building... eu/balooshow5.po to balooshow5.mo --- building... eu/kio5_baloosearch.po to kio5_baloosearch.mo --- building... eu/kio5_tags.po to kio5_tags.mo --- building... eu/kio5_timeline.po to kio5_timeline.mo --- building... fi/baloo_file5.po to baloo_file5.mo --- building... fi/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... fi/balooctl5.po to balooctl5.mo --- building... fi/baloomonitorplugin.po to baloomonitorplugin.mo --- building... fi/baloosearch5.po to baloosearch5.mo --- building... fi/balooshow5.po to balooshow5.mo --- building... fi/kio5_baloosearch.po to kio5_baloosearch.mo --- building... fi/kio5_tags.po to kio5_tags.mo --- building... fi/kio5_timeline.po to kio5_timeline.mo --- building... fr/baloo_file5.po to baloo_file5.mo --- building... fr/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... fr/balooctl5.po to balooctl5.mo --- building... fr/baloomonitorplugin.po to baloomonitorplugin.mo --- building... fr/baloosearch5.po to baloosearch5.mo --- building... fr/balooshow5.po to balooshow5.mo --- building... fr/kio5_baloosearch.po to kio5_baloosearch.mo --- building... fr/kio5_tags.po to kio5_tags.mo --- building... fr/kio5_timeline.po to kio5_timeline.mo --- building... gd/baloo_file5.po to baloo_file5.mo --- building... gd/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... gd/balooctl5.po to balooctl5.mo --- building... gd/baloomonitorplugin.po to baloomonitorplugin.mo --- building... gd/baloosearch5.po to baloosearch5.mo --- building... gd/balooshow5.po to balooshow5.mo --- building... gd/kio5_baloosearch.po to kio5_baloosearch.mo --- building... gd/kio5_tags.po to kio5_tags.mo --- building... gd/kio5_timeline.po to kio5_timeline.mo --- building... gl/baloo_file5.po to baloo_file5.mo --- building... gl/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... gl/balooctl5.po to balooctl5.mo --- building... gl/baloomonitorplugin.po to baloomonitorplugin.mo --- building... gl/baloosearch5.po to baloosearch5.mo --- building... gl/balooshow5.po to balooshow5.mo --- building... gl/kio5_baloosearch.po to kio5_baloosearch.mo --- building... gl/kio5_tags.po to kio5_tags.mo --- building... gl/kio5_timeline.po to kio5_timeline.mo --- building... he/baloo_file5.po to baloo_file5.mo --- building... he/kio5_baloosearch.po to kio5_baloosearch.mo --- building... he/kio5_timeline.po to kio5_timeline.mo --- building... hu/baloo_file5.po to baloo_file5.mo --- building... hu/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... hu/balooctl5.po to balooctl5.mo --- building... hu/baloosearch5.po to baloosearch5.mo --- building... hu/balooshow5.po to balooshow5.mo --- building... hu/kio5_baloosearch.po to kio5_baloosearch.mo --- building... hu/kio5_tags.po to kio5_tags.mo --- building... hu/kio5_timeline.po to kio5_timeline.mo --- building... ia/baloo_file5.po to baloo_file5.mo --- building... ia/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... ia/balooctl5.po to balooctl5.mo --- building... ia/baloomonitorplugin.po to baloomonitorplugin.mo --- building... ia/baloosearch5.po to baloosearch5.mo --- building... ia/balooshow5.po to balooshow5.mo --- building... ia/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ia/kio5_tags.po to kio5_tags.mo --- building... ia/kio5_timeline.po to kio5_timeline.mo --- building... it/baloo_file5.po to baloo_file5.mo --- building... it/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... it/balooctl5.po to balooctl5.mo --- building... it/baloomonitorplugin.po to baloomonitorplugin.mo --- building... it/baloosearch5.po to baloosearch5.mo --- building... it/balooshow5.po to balooshow5.mo --- building... it/kio5_baloosearch.po to kio5_baloosearch.mo --- building... it/kio5_tags.po to kio5_tags.mo --- building... it/kio5_timeline.po to kio5_timeline.mo --- building... ja/baloo_file5.po to baloo_file5.mo --- building... ja/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... ja/balooctl5.po to balooctl5.mo --- building... ja/baloomonitorplugin.po to baloomonitorplugin.mo --- building... ja/baloosearch5.po to baloosearch5.mo --- building... ja/balooshow5.po to balooshow5.mo --- building... ja/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ja/kio5_tags.po to kio5_tags.mo --- building... ja/kio5_timeline.po to kio5_timeline.mo --- building... ko/baloo_file5.po to baloo_file5.mo --- building... ko/balooctl5.po to balooctl5.mo --- building... ko/baloomonitorplugin.po to baloomonitorplugin.mo --- building... ko/baloosearch5.po to baloosearch5.mo --- building... ko/balooshow5.po to balooshow5.mo --- building... ko/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ko/kio5_tags.po to kio5_tags.mo --- building... ko/kio5_timeline.po to kio5_timeline.mo --- building... lt/baloo_file5.po to baloo_file5.mo --- building... lt/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... lt/balooctl5.po to balooctl5.mo --- building... lt/baloosearch5.po to baloosearch5.mo --- building... lt/balooshow5.po to balooshow5.mo --- building... lt/kio5_baloosearch.po to kio5_baloosearch.mo --- building... lt/kio5_tags.po to kio5_tags.mo -[ 7%] Building CXX object src/codecs/CMakeFiles/KF5BalooCodecs.dir/postingcodec.cpp.o --- building... lt/kio5_timeline.po to kio5_timeline.mo --- building... nb/baloo_file5.po to baloo_file5.mo --- building... nb/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... nb/balooctl5.po to balooctl5.mo --- building... nb/baloosearch5.po to baloosearch5.mo --- building... nb/balooshow5.po to balooshow5.mo --- building... nb/kio5_baloosearch.po to kio5_baloosearch.mo --- building... nb/kio5_tags.po to kio5_tags.mo --- building... nb/kio5_timeline.po to kio5_timeline.mo --- building... nds/baloo_file5.po to baloo_file5.mo --- building... nds/balooctl5.po to balooctl5.mo --- building... nds/baloosearch5.po to baloosearch5.mo --- building... nds/balooshow5.po to balooshow5.mo --- building... nds/kio5_baloosearch.po to kio5_baloosearch.mo --- building... nds/kio5_tags.po to kio5_tags.mo --- building... nds/kio5_timeline.po to kio5_timeline.mo --- building... nl/baloo_file5.po to baloo_file5.mo --- building... nl/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... nl/balooctl5.po to balooctl5.mo --- building... nl/baloomonitorplugin.po to baloomonitorplugin.mo --- building... nl/baloosearch5.po to baloosearch5.mo --- building... nl/balooshow5.po to balooshow5.mo --- building... nl/kio5_baloosearch.po to kio5_baloosearch.mo --- building... nl/kio5_tags.po to kio5_tags.mo --- building... nl/kio5_timeline.po to kio5_timeline.mo --- building... nn/baloo_file5.po to baloo_file5.mo --- building... nn/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... nn/balooctl5.po to balooctl5.mo --- building... nn/baloomonitorplugin.po to baloomonitorplugin.mo --- building... nn/baloosearch5.po to baloosearch5.mo --- building... nn/balooshow5.po to balooshow5.mo --- building... nn/kio5_baloosearch.po to kio5_baloosearch.mo --- building... nn/kio5_tags.po to kio5_tags.mo --- building... nn/kio5_timeline.po to kio5_timeline.mo --- building... pa/baloo_file5.po to baloo_file5.mo --- building... pa/balooctl5.po to balooctl5.mo --- building... pa/baloosearch5.po to baloosearch5.mo --- building... pa/balooshow5.po to balooshow5.mo --- building... pa/kio5_baloosearch.po to kio5_baloosearch.mo --- building... pa/kio5_tags.po to kio5_tags.mo --- building... pa/kio5_timeline.po to kio5_timeline.mo --- building... pl/baloo_file5.po to baloo_file5.mo --- building... pl/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... pl/balooctl5.po to balooctl5.mo --- building... pl/baloomonitorplugin.po to baloomonitorplugin.mo --- building... pl/baloosearch5.po to baloosearch5.mo --- building... pl/balooshow5.po to balooshow5.mo --- building... pl/kio5_baloosearch.po to kio5_baloosearch.mo --- building... pl/kio5_tags.po to kio5_tags.mo --- building... pl/kio5_timeline.po to kio5_timeline.mo --- building... pt/baloo_file5.po to baloo_file5.mo --- building... pt/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... pt/balooctl5.po to balooctl5.mo --- building... pt/baloomonitorplugin.po to baloomonitorplugin.mo --- building... pt/baloosearch5.po to baloosearch5.mo --- building... pt/balooshow5.po to balooshow5.mo --- building... pt/kio5_baloosearch.po to kio5_baloosearch.mo --- building... pt/kio5_tags.po to kio5_tags.mo --- building... pt/kio5_timeline.po to kio5_timeline.mo --- building... pt_BR/baloo_file5.po to baloo_file5.mo --- building... pt_BR/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... pt_BR/balooctl5.po to balooctl5.mo --- building... pt_BR/baloomonitorplugin.po to baloomonitorplugin.mo --- building... pt_BR/baloosearch5.po to baloosearch5.mo --- building... pt_BR/balooshow5.po to balooshow5.mo --- building... pt_BR/kio5_baloosearch.po to kio5_baloosearch.mo --- building... pt_BR/kio5_tags.po to kio5_tags.mo --- building... pt_BR/kio5_timeline.po to kio5_timeline.mo --- building... ro/baloo_file5.po to baloo_file5.mo --- building... ro/balooctl5.po to balooctl5.mo --- building... ro/baloosearch5.po to baloosearch5.mo --- building... ro/balooshow5.po to balooshow5.mo --- building... ro/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ro/kio5_tags.po to kio5_tags.mo --- building... ro/kio5_timeline.po to kio5_timeline.mo --- building... ru/baloo_file5.po to baloo_file5.mo --- building... ru/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... ru/balooctl5.po to balooctl5.mo --- building... ru/baloomonitorplugin.po to baloomonitorplugin.mo --- building... ru/baloosearch5.po to baloosearch5.mo --- building... ru/balooshow5.po to balooshow5.mo -[ 8%] Building CXX object src/codecs/CMakeFiles/KF5BalooCodecs.dir/coding.cpp.o --- building... ru/kio5_baloosearch.po to kio5_baloosearch.mo --- building... ru/kio5_tags.po to kio5_tags.mo --- building... ru/kio5_timeline.po to kio5_timeline.mo --- building... sk/baloo_file5.po to baloo_file5.mo --- building... sk/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... sk/balooctl5.po to balooctl5.mo --- building... sk/baloomonitorplugin.po to baloomonitorplugin.mo --- building... sk/baloosearch5.po to baloosearch5.mo --- building... sk/balooshow5.po to balooshow5.mo --- building... sk/kio5_baloosearch.po to kio5_baloosearch.mo --- building... sk/kio5_tags.po to kio5_tags.mo --- building... sk/kio5_timeline.po to kio5_timeline.mo --- building... sl/baloo_file5.po to baloo_file5.mo --- building... sl/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... sl/balooctl5.po to balooctl5.mo --- building... sl/baloomonitorplugin.po to baloomonitorplugin.mo --- building... sl/baloosearch5.po to baloosearch5.mo --- building... sl/balooshow5.po to balooshow5.mo --- building... sl/kio5_baloosearch.po to kio5_baloosearch.mo --- building... sl/kio5_tags.po to kio5_tags.mo --- building... sl/kio5_timeline.po to kio5_timeline.mo --- building... sr/baloo_file5.po to baloo_file5.mo --- building... sr/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... sr/balooctl5.po to balooctl5.mo --- building... sr/baloomonitorplugin.po to baloomonitorplugin.mo --- building... sr/baloosearch5.po to baloosearch5.mo --- building... sr/balooshow5.po to balooshow5.mo --- building... sr/kio5_baloosearch.po to kio5_baloosearch.mo --- building... sr/kio5_tags.po to kio5_tags.mo --- building... sr/kio5_timeline.po to kio5_timeline.mo --- building... sr@ijekavian/baloo_file5.po to baloo_file5.mo --- building... sr@ijekavian/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... sr@ijekavian/balooctl5.po to balooctl5.mo --- building... sr@ijekavian/baloomonitorplugin.po to baloomonitorplugin.mo --- building... sr@ijekavian/baloosearch5.po to baloosearch5.mo --- building... sr@ijekavian/balooshow5.po to balooshow5.mo -[ 8%] Building CXX object src/file/extractor/autotests/CMakeFiles/extractorIOTest.dir/extractorIOTest_autogen/mocs_compilation.cpp.o --- building... sr@ijekavian/kio5_baloosearch.po to kio5_baloosearch.mo --- building... sr@ijekavian/kio5_tags.po to kio5_tags.mo --- building... sr@ijekavian/kio5_timeline.po to kio5_timeline.mo --- building... sr@ijekavianlatin/baloo_file5.po to baloo_file5.mo --- building... sr@ijekavianlatin/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... sr@ijekavianlatin/balooctl5.po to balooctl5.mo -[ 9%] Building CXX object autotests/unit/lib/CMakeFiles/advancedqueryparsertest.dir/advancedqueryparsertest_autogen/mocs_compilation.cpp.o --- building... sr@ijekavianlatin/baloomonitorplugin.po to baloomonitorplugin.mo --- building... sr@ijekavianlatin/baloosearch5.po to baloosearch5.mo --- building... sr@ijekavianlatin/balooshow5.po to balooshow5.mo --- building... sr@ijekavianlatin/kio5_baloosearch.po to kio5_baloosearch.mo -[ 9%] Building CXX object src/codecs/CMakeFiles/KF5BalooCodecs.dir/KF5BalooCodecs_autogen/mocs_compilation.cpp.o --- building... sr@ijekavianlatin/kio5_tags.po to kio5_tags.mo --- building... sr@ijekavianlatin/kio5_timeline.po to kio5_timeline.mo --- building... sr@latin/baloo_file5.po to baloo_file5.mo --- building... sr@latin/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... sr@latin/balooctl5.po to balooctl5.mo -Scanning dependencies of target baloosearchmodule --- building... sr@latin/baloomonitorplugin.po to baloomonitorplugin.mo -[ 9%] Linking CXX executable ../../../../bin/extractorIOTest -[ 9%] Building CXX object src/kioslaves/kded/CMakeFiles/baloosearchmodule.dir/baloosearchmodule.cpp.o --- building... sr@latin/baloosearch5.po to baloosearch5.mo --- building... sr@latin/balooshow5.po to balooshow5.mo --- building... sr@latin/kio5_baloosearch.po to kio5_baloosearch.mo --- building... sr@latin/kio5_tags.po to kio5_tags.mo --- building... sr@latin/kio5_timeline.po to kio5_timeline.mo --- building... sv/baloo_file5.po to baloo_file5.mo --- building... sv/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... sv/balooctl5.po to balooctl5.mo --- building... sv/baloomonitorplugin.po to baloomonitorplugin.mo --- building... sv/baloosearch5.po to baloosearch5.mo --- building... sv/balooshow5.po to balooshow5.mo --- building... sv/kio5_baloosearch.po to kio5_baloosearch.mo --- building... sv/kio5_tags.po to kio5_tags.mo --- building... sv/kio5_timeline.po to kio5_timeline.mo --- building... tr/baloo_file5.po to baloo_file5.mo --- building... tr/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... tr/balooctl5.po to balooctl5.mo --- building... tr/baloomonitorplugin.po to baloomonitorplugin.mo --- building... tr/baloosearch5.po to baloosearch5.mo --- building... tr/balooshow5.po to balooshow5.mo --- building... tr/kio5_baloosearch.po to kio5_baloosearch.mo --- building... tr/kio5_tags.po to kio5_tags.mo --- building... tr/kio5_timeline.po to kio5_timeline.mo --- building... uk/baloo_file5.po to baloo_file5.mo --- building... uk/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... uk/balooctl5.po to balooctl5.mo --- building... uk/baloomonitorplugin.po to baloomonitorplugin.mo --- building... uk/baloosearch5.po to baloosearch5.mo --- building... uk/balooshow5.po to balooshow5.mo --- building... uk/kio5_baloosearch.po to kio5_baloosearch.mo --- building... uk/kio5_tags.po to kio5_tags.mo -[ 9%] Built target extractorIOTest --- building... uk/kio5_timeline.po to kio5_timeline.mo --- building... zh_CN/baloo_file5.po to baloo_file5.mo -[ 9%] Building CXX object src/kioslaves/kded/CMakeFiles/baloosearchmodule.dir/baloosearchmodule_autogen/mocs_compilation.cpp.o --- building... zh_CN/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... zh_CN/balooctl5.po to balooctl5.mo --- building... zh_CN/baloomonitorplugin.po to baloomonitorplugin.mo --- building... zh_CN/baloosearch5.po to baloosearch5.mo --- building... zh_CN/balooshow5.po to balooshow5.mo --- building... zh_CN/kio5_baloosearch.po to kio5_baloosearch.mo --- building... zh_CN/kio5_tags.po to kio5_tags.mo --- building... zh_CN/kio5_timeline.po to kio5_timeline.mo --- building... zh_TW/baloo_file5.po to baloo_file5.mo --- building... zh_TW/baloo_file_extractor5.po to baloo_file_extractor5.mo --- building... zh_TW/balooctl5.po to balooctl5.mo --- building... zh_TW/baloomonitorplugin.po to baloomonitorplugin.mo --- building... zh_TW/baloosearch5.po to baloosearch5.mo --- building... zh_TW/balooshow5.po to balooshow5.mo --- building... zh_TW/kio5_baloosearch.po to kio5_baloosearch.mo --- building... zh_TW/kio5_tags.po to kio5_tags.mo --- building... zh_TW/kio5_timeline.po to kio5_timeline.mo -[ 9%] Built target pofiles-20019e270ed76750f8f8374aa75fc90f -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/codecs/coding.cpp: In function 'char* Baloo::getDifferentialVarInt32(char*, char*, QVector*)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/codecs/coding.cpp:122:26: warning: 'n' may be used uninitialized in this function [-Wmaybe-uninitialized] - values->append(n + v); - ~~^~~ -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/codecs/coding.cpp:124:15: warning: 'size' may be used uninitialized in this function [-Wmaybe-uninitialized] - size--; - ^ -[ 9%] Linking CXX static library ../../lib/libKF5BalooCodecs.a -[ 9%] Built target KF5BalooCodecs -Scanning dependencies of target positioncodectest_autogen -Scanning dependencies of target doctermscodectest_autogen -Scanning dependencies of target postingcodectest_autogen -Scanning dependencies of target KF5BalooEngine_autogen -Scanning dependencies of target positioncodecbenchmark_autogen -[ 9%] Automatic MOC for target postingcodectest -[ 10%] Automatic MOC for target positioncodectest -[ 11%] Automatic MOC for target doctermscodectest -[ 11%] Automatic MOC for target KF5BalooEngine -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -[ 12%] Automatic MOC for target positioncodecbenchmark -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC compilation mocs_compilation.cpp -[ 12%] Built target KF5BalooEngine_autogen -Scanning dependencies of target KF5BalooEngine -Generating MOC source include/postingcodectest.moc -Generating MOC compilation mocs_compilation.cpp -Generating MOC source include/doctermscodectest.moc -Generating MOC compilation mocs_compilation.cpp -[ 12%] Built target postingcodectest_autogen -[ 12%] Built target doctermscodectest_autogen -Scanning dependencies of target postingcodectest -[ 12%] Building CXX object autotests/unit/codecs/CMakeFiles/postingcodectest.dir/postingcodectest.cpp.o -Generating MOC source include/positioncodectest.moc -Generating MOC compilation mocs_compilation.cpp -[ 12%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/andpostingiterator.cpp.o -[ 12%] Built target positioncodectest_autogen -Scanning dependencies of target doctermscodectest -[ 12%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/database.cpp.o -[ 13%] Building CXX object autotests/unit/codecs/CMakeFiles/doctermscodectest.dir/doctermscodectest.cpp.o -Generating MOC source include/positioncodecbenchmark.moc -Generating MOC compilation mocs_compilation.cpp -[ 13%] Built target positioncodecbenchmark_autogen -Scanning dependencies of target positioncodectest -[ 13%] Building CXX object autotests/unit/codecs/CMakeFiles/positioncodectest.dir/positioncodectest.cpp.o -[ 13%] Building CXX object autotests/unit/codecs/CMakeFiles/positioncodectest.dir/positioncodectest_autogen/mocs_compilation.cpp.o -[ 13%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/document.cpp.o -[ 14%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/documentdb.cpp.o -[ 14%] Linking CXX executable ../../../bin/advancedqueryparsertest -[ 15%] Linking CXX shared module ../../../bin/baloosearchmodule.so -[ 15%] Built target baloosearchmodule -Scanning dependencies of target positioncodecbenchmark -[ 15%] Building CXX object autotests/benchmarks/CMakeFiles/positioncodecbenchmark.dir/positioncodecbenchmark.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/database.cpp:41:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 15%] Built target advancedqueryparsertest -[ 15%] Building CXX object autotests/benchmarks/CMakeFiles/positioncodecbenchmark.dir/positioncodecbenchmark_autogen/mocs_compilation.cpp.o -[ 15%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/documentdatadb.cpp.o -[ 16%] Building CXX object autotests/unit/codecs/CMakeFiles/postingcodectest.dir/postingcodectest_autogen/mocs_compilation.cpp.o -[ 16%] Linking CXX executable ../../../bin/postingcodectest -[ 16%] Built target postingcodectest -[ 16%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/documenturldb.cpp.o -[ 16%] Building CXX object autotests/unit/codecs/CMakeFiles/doctermscodectest.dir/doctermscodectest_autogen/mocs_compilation.cpp.o -[ 16%] Linking CXX executable ../../../bin/doctermscodectest -[ 16%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/documenttimedb.cpp.o -[ 16%] Built target doctermscodectest -[ 17%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/documentiddb.cpp.o -[ 17%] Linking CXX executable ../../../bin/positioncodectest -[ 17%] Built target positioncodectest -[ 17%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/enginequery.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/documenturldb.cpp:22:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 17%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/idtreedb.cpp.o -[ 17%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/idfilenamedb.cpp.o -[ 17%] Linking CXX executable ../../bin/positioncodecbenchmark -[ 18%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/mtimedb.cpp.o -[ 18%] Built target positioncodecbenchmark -[ 18%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/orpostingiterator.cpp.o -[ 18%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/phraseanditerator.cpp.o -[ 18%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/positiondb.cpp.o -[ 19%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/postingdb.cpp.o -[ 19%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/postingiterator.cpp.o -[ 19%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/queryparser.cpp.o -[ 20%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/termgenerator.cpp.o -[ 20%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/transaction.cpp.o -[ 20%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/vectorpostingiterator.cpp.o -[ 20%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/vectorpositioninfoiterator.cpp.o -[ 21%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/writetransaction.cpp.o -[ 21%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/global.cpp.o -[ 21%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/fsutils.cpp.o -[ 21%] Building CXX object src/engine/CMakeFiles/KF5BalooEngine.dir/KF5BalooEngine_autogen/mocs_compilation.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/writetransaction.cpp:33:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/transaction.cpp:38:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/fsutils.cpp: In function 'void Baloo::FSUtils::disableCoW(const QString&)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/fsutils.cpp:94:19: warning: overflow in implicit constant conversion [-Woverflow] - if (ioctl(fd, FS_IOC_GETFLAGS, &flags) == -1) { - ^~~~~~~~~~~~~~~ -[ 22%] Linking CXX shared library ../../bin/libKF5BalooEngine.so -[ 22%] Built target KF5BalooEngine -Scanning dependencies of target baloofilecommon_autogen -Scanning dependencies of target memorytest_autogen -Scanning dependencies of target baloo_file_extractor_autogen -Scanning dependencies of target KF5Baloo_autogen -Scanning dependencies of target documenturldb_autogen -Scanning dependencies of target databasebenchmark_autogen -Scanning dependencies of target writeiotest_autogen -Scanning dependencies of target querytest_autogen -[ 23%] Automatic MOC for target baloofilecommon -[ 23%] Automatic MOC for target KF5Baloo -[ 23%] Automatic MOC for target baloo_file_extractor -[ 23%] Automatic MOC for target memorytest -[ 23%] Automatic MOC for target documenturldb -[ 23%] Automatic MOC for target databasebenchmark -[ 23%] Automatic MOC for target writeiotest -[ 23%] Automatic MOC for target querytest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC compilation mocs_compilation.cpp -Generating MOC compilation mocs_compilation.cpp -[ 23%] Built target documenturldb_autogen -Generating MOC compilation mocs_compilation.cpp -[ 23%] Built target writeiotest_autogen -[ 23%] Built target memorytest_autogen -Scanning dependencies of target writetransactiontest_autogen -Scanning dependencies of target idtreedbtest_autogen -[ 24%] Automatic MOC for target writetransactiontest -[ 24%] Automatic MOC for target idtreedbtest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Scanning dependencies of target documenturldbtest_autogen -[ 24%] Automatic MOC for target documenturldbtest -Generating MOC predefs moc_predefs.h -Generating MOC source include/databasebenchmark.moc -Generating MOC compilation mocs_compilation.cpp -Generating MOC source include/querytest.moc -Generating MOC compilation mocs_compilation.cpp -[ 24%] Built target databasebenchmark_autogen -[ 24%] Built target querytest_autogen -Scanning dependencies of target documentiddbtest_autogen -Scanning dependencies of target positiondbtest_autogen -[ 24%] Automatic MOC for target documentiddbtest -Generating MOC predefs moc_predefs.h -[ 24%] Automatic MOC for target positiondbtest -Generating MOC predefs moc_predefs.h -Generating MOC source include/writetransactiontest.moc -Generating MOC compilation mocs_compilation.cpp -[ 24%] Built target writetransactiontest_autogen -Scanning dependencies of target idfilenamedbtest_autogen -Generating MOC source include/idtreedbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 24%] Built target idtreedbtest_autogen -[ 25%] Automatic MOC for target idfilenamedbtest -Scanning dependencies of target postingdbtest_autogen -Generating MOC predefs moc_predefs.h -[ 25%] Automatic MOC for target postingdbtest -Generating MOC predefs moc_predefs.h -Generating MOC source include/documenturldbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 25%] Built target documenturldbtest_autogen -Scanning dependencies of target mtimedbtest_autogen -Generating MOC source YH6BUZA3PE/moc_fileindexerconfig.cpp -Generating MOC source YH6BUZA3PE/moc_storagedevices.cpp -Generating MOC source EWIEGA46WW/moc_filemonitor.cpp -Generating MOC source EWIEGA46WW/moc_queryrunnable.cpp -Generating MOC source EWIEGA46WW/moc_taglistjob.cpp -Generating MOC compilation mocs_compilation.cpp -[ 25%] Built target KF5Baloo_autogen -Scanning dependencies of target documentdbtest_autogen -[ 26%] Automatic MOC for target mtimedbtest -[ 26%] Automatic MOC for target documentdbtest -Generating MOC source include/documentiddbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -[ 26%] Built target documentiddbtest_autogen -Scanning dependencies of target termgeneratortest_autogen -Generating MOC source EWIEGA46WW/moc_app.cpp -Generating MOC source EWIEGA46WW/moc_idlestatemonitor.cpp -Generating MOC source YH6BUZA3PE/moc_fileindexerconfig.cpp -Generating MOC source YH6BUZA3PE/moc_storagedevices.cpp -Generating MOC compilation mocs_compilation.cpp -[ 26%] Built target baloo_file_extractor_autogen -Generating MOC source include/positiondbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -Scanning dependencies of target queryparsertest_autogen -[ 26%] Automatic MOC for target termgeneratortest -[ 26%] Built target positiondbtest_autogen -[ 27%] Automatic MOC for target queryparsertest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Scanning dependencies of target documenttimedbtest_autogen -[ 27%] Automatic MOC for target documenttimedbtest -Generating MOC predefs moc_predefs.h -Generating MOC source include/idfilenamedbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target idfilenamedbtest_autogen -Scanning dependencies of target andpostingiteratortest_autogen -[ 27%] Automatic MOC for target andpostingiteratortest -Generating MOC predefs moc_predefs.h -Generating MOC source include/postingdbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target postingdbtest_autogen -Scanning dependencies of target transactiontest_autogen -Generating MOC source include/mtimedbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Automatic MOC for target transactiontest -[ 27%] Built target mtimedbtest_autogen -Scanning dependencies of target orpostingiteratortest_autogen -Generating MOC source include/documentdbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Automatic MOC for target orpostingiteratortest -Generating MOC predefs moc_predefs.h -[ 27%] Built target documentdbtest_autogen -Generating MOC predefs moc_predefs.h -Scanning dependencies of target phraseanditeratortest_autogen -[ 27%] Automatic MOC for target phraseanditeratortest -Generating MOC predefs moc_predefs.h -Generating MOC source include/documenttimedbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -Generating MOC source include/termgeneratortest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target termgeneratortest_autogen -[ 27%] Built target documenttimedbtest_autogen -Scanning dependencies of target documentdatadbtest_autogen -Scanning dependencies of target KF5Baloo -[ 27%] Automatic MOC for target documentdatadbtest -Generating MOC predefs moc_predefs.h -Generating MOC source include/queryparsertest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target queryparsertest_autogen -Generating MOC source include/andpostingiteratortest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target andpostingiteratortest_autogen -Scanning dependencies of target baloo_file_extractor -Scanning dependencies of target documenturldb -[ 27%] Building CXX object tests/engine/CMakeFiles/documenturldb.dir/documenturldbtest.cpp.o -[ 27%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/term.cpp.o -Generating MOC source include/orpostingiteratortest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -Generating MOC source include/transactiontest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target orpostingiteratortest_autogen -Generating MOC source include/phraseanditeratortest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target transactiontest_autogen -Scanning dependencies of target memorytest -[ 27%] Built target phraseanditeratortest_autogen -[ 27%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/query.cpp.o -Scanning dependencies of target writeiotest -[ 27%] Building CXX object tests/engine/CMakeFiles/memorytest.dir/memorytest.cpp.o -Generating MOC source include/documentdatadbtest.moc -Generating MOC source EWIEGA46WW/moc_singledbtest.cpp -Generating MOC compilation mocs_compilation.cpp -[ 27%] Built target documentdatadbtest_autogen -[ 28%] Building CXX object tests/engine/CMakeFiles/writeiotest.dir/writeiotest.cpp.o -[ 30%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/main.cpp.o -[ 30%] Building CXX object tests/engine/CMakeFiles/memorytest.dir/memorytest_autogen/mocs_compilation.cpp.o -[ 31%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/queryrunnable.cpp.o -Generating MOC source include/moc_kinotify.cpp -Generating MOC source EWIEGA46WW/moc_extractorprocess.cpp -Generating MOC source EWIEGA46WW/moc_filecontentindexer.cpp -Generating MOC source EWIEGA46WW/moc_fileindexerconfig.cpp -Generating MOC source EWIEGA46WW/moc_fileindexscheduler.cpp -Generating MOC source EWIEGA46WW/moc_filewatch.cpp -Generating MOC source EWIEGA46WW/moc_firstrunindexer.cpp -Generating MOC source EWIEGA46WW/moc_indexcleaner.cpp -Generating MOC source EWIEGA46WW/moc_mainadaptor.cpp -Generating MOC source EWIEGA46WW/moc_mainhub.cpp -Generating MOC source EWIEGA46WW/moc_metadatamover.cpp -Generating MOC source EWIEGA46WW/moc_modifiedfileindexer.cpp -Generating MOC source EWIEGA46WW/moc_newfileindexer.cpp -Generating MOC source EWIEGA46WW/moc_pendingfilequeue.cpp -Generating MOC source EWIEGA46WW/moc_powerstatemonitor.cpp -Generating MOC source EWIEGA46WW/moc_storagedevices.cpp -Generating MOC source EWIEGA46WW/moc_timeestimator.cpp -Generating MOC source EWIEGA46WW/moc_unindexedfileindexer.cpp -Generating MOC source EWIEGA46WW/moc_xattrindexer.cpp -Generating MOC compilation mocs_compilation.cpp -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/tests/engine/documenturldbtest.cpp:32:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 31%] Building CXX object tests/engine/CMakeFiles/documenturldb.dir/documenturldb_autogen/mocs_compilation.cpp.o -[ 31%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/resultiterator.cpp.o -[ 32%] Linking CXX executable ../../bin/documenturldb -[ 32%] Linking CXX executable ../../bin/memorytest -[ 32%] Building CXX object tests/engine/CMakeFiles/writeiotest.dir/writeiotest_autogen/mocs_compilation.cpp.o -[ 32%] Linking CXX executable ../../bin/writeiotest -[ 32%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/app.cpp.o -[ 32%] Built target writeiotest -[ 32%] Built target baloofilecommon_autogen -[ 32%] Built target memorytest -[ 32%] Built target documenturldb -Scanning dependencies of target databasebenchmark -Scanning dependencies of target querytest -Scanning dependencies of target writetransactiontest -Scanning dependencies of target documenturldbtest -Scanning dependencies of target idtreedbtest -[ 33%] Building CXX object autotests/benchmarks/CMakeFiles/databasebenchmark.dir/databasebenchmark.cpp.o -[ 33%] Building CXX object autotests/integration/CMakeFiles/querytest.dir/querytest.cpp.o -[ 33%] Building CXX object autotests/unit/engine/CMakeFiles/documenturldbtest.dir/documenturldbtest.cpp.o -[ 34%] Building CXX object autotests/integration/CMakeFiles/writetransactiontest.dir/writetransactiontest.cpp.o -[ 34%] Building CXX object autotests/unit/engine/CMakeFiles/idtreedbtest.dir/idtreedbtest.cpp.o -[ 34%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/advancedqueryparser.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/file/extractor/app.cpp:26:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 34%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/file.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/querytest.cpp:26:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/writetransactiontest.cpp:24:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/unit/engine/documenturldbtest.cpp:23:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/lib/file.cpp:27:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 34%] Building CXX object autotests/benchmarks/CMakeFiles/databasebenchmark.dir/databasebenchmark_autogen/mocs_compilation.cpp.o -[ 34%] Linking CXX executable ../../bin/databasebenchmark -[ 34%] Building CXX object autotests/unit/engine/CMakeFiles/idtreedbtest.dir/singledbtest.cpp.o -[ 34%] Built target databasebenchmark -Scanning dependencies of target documentiddbtest -[ 34%] Building CXX object autotests/unit/engine/CMakeFiles/documentiddbtest.dir/documentiddbtest.cpp.o -[ 35%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/filemonitor.cpp.o -[ 35%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/taglistjob.cpp.o -[ 35%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/result.cpp.o -[ 35%] Building CXX object autotests/integration/CMakeFiles/querytest.dir/querytest_autogen/mocs_compilation.cpp.o -[ 35%] Building CXX object autotests/unit/engine/CMakeFiles/documenturldbtest.dir/singledbtest.cpp.o -[ 36%] Linking CXX executable ../../bin/querytest -[ 36%] Built target querytest -Scanning dependencies of target positiondbtest -[ 36%] Building CXX object autotests/unit/engine/CMakeFiles/positiondbtest.dir/positiondbtest.cpp.o -[ 36%] Building CXX object autotests/unit/engine/CMakeFiles/idtreedbtest.dir/idtreedbtest_autogen/mocs_compilation.cpp.o -[ 37%] Building CXX object autotests/unit/engine/CMakeFiles/documentiddbtest.dir/singledbtest.cpp.o -[ 37%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/indexerconfig.cpp.o -[ 38%] Building CXX object autotests/unit/engine/CMakeFiles/documenturldbtest.dir/documenturldbtest_autogen/mocs_compilation.cpp.o -[ 39%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/__/file/fileindexerconfig.cpp.o -[ 40%] Linking CXX executable ../../../bin/idtreedbtest -[ 40%] Built target idtreedbtest -Scanning dependencies of target idfilenamedbtest -[ 40%] Building CXX object autotests/unit/engine/CMakeFiles/idfilenamedbtest.dir/idfilenamedbtest.cpp.o -[ 40%] Building CXX object autotests/unit/engine/CMakeFiles/documentiddbtest.dir/documentiddbtest_autogen/mocs_compilation.cpp.o -[ 40%] Building CXX object autotests/unit/engine/CMakeFiles/positiondbtest.dir/singledbtest.cpp.o -[ 40%] Building CXX object autotests/integration/CMakeFiles/writetransactiontest.dir/writetransactiontest_autogen/mocs_compilation.cpp.o -[ 40%] Linking CXX executable ../../bin/writetransactiontest -[ 40%] Built target writetransactiontest -[ 40%] Building CXX object autotests/unit/engine/CMakeFiles/positiondbtest.dir/positiondbtest_autogen/mocs_compilation.cpp.o -[ 40%] Linking CXX executable ../../../bin/documenturldbtest -[ 40%] Built target documenturldbtest -Scanning dependencies of target postingdbtest -[ 40%] Building CXX object autotests/unit/engine/CMakeFiles/postingdbtest.dir/postingdbtest.cpp.o -[ 41%] Building CXX object autotests/unit/engine/CMakeFiles/postingdbtest.dir/singledbtest.cpp.o -[ 41%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/__/file/storagedevices.cpp.o -[ 41%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/__/file/regexpcache.cpp.o -[ 41%] Linking CXX executable ../../../bin/documentiddbtest -[ 42%] Linking CXX executable ../../../bin/positiondbtest -[ 42%] Built target documentiddbtest -Scanning dependencies of target mtimedbtest -[ 42%] Built target positiondbtest -[ 43%] Building CXX object autotests/unit/engine/CMakeFiles/mtimedbtest.dir/mtimedbtest.cpp.o -Scanning dependencies of target documentdbtest -[ 43%] Building CXX object autotests/unit/engine/CMakeFiles/documentdbtest.dir/documentdbtest.cpp.o -[ 44%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/iohandler.cpp.o -[ 44%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/idlestatemonitor.cpp.o -[ 44%] Building CXX object autotests/unit/engine/CMakeFiles/postingdbtest.dir/postingdbtest_autogen/mocs_compilation.cpp.o -[ 44%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/__/file/fileexcludefilters.cpp.o -[ 44%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/__/priority.cpp.o -[ 45%] Building CXX object autotests/unit/engine/CMakeFiles/idfilenamedbtest.dir/singledbtest.cpp.o -[ 45%] Building CXX object autotests/unit/engine/CMakeFiles/idfilenamedbtest.dir/idfilenamedbtest_autogen/mocs_compilation.cpp.o -[ 45%] Building CXX object autotests/unit/engine/CMakeFiles/documentdbtest.dir/singledbtest.cpp.o -[ 45%] Building CXX object autotests/unit/engine/CMakeFiles/mtimedbtest.dir/singledbtest.cpp.o -[ 45%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/__/basicindexingjob.cpp.o -[ 46%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/__/file/baloodebug.cpp.o -[ 46%] Linking CXX executable ../../../bin/postingdbtest -[ 46%] Built target postingdbtest -Scanning dependencies of target termgeneratortest -[ 46%] Building CXX object autotests/unit/engine/CMakeFiles/termgeneratortest.dir/termgeneratortest.cpp.o -[ 47%] Building CXX object autotests/unit/engine/CMakeFiles/termgeneratortest.dir/singledbtest.cpp.o -[ 48%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/__/fileindexerconfig.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/file/basicindexingjob.cpp:25:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 49%] Building CXX object autotests/unit/engine/CMakeFiles/documentdbtest.dir/documentdbtest_autogen/mocs_compilation.cpp.o -[ 49%] Linking CXX executable ../../../bin/idfilenamedbtest -[ 49%] Building CXX object autotests/unit/engine/CMakeFiles/mtimedbtest.dir/mtimedbtest_autogen/mocs_compilation.cpp.o -[ 49%] Built target idfilenamedbtest -Scanning dependencies of target queryparsertest -[ 50%] Building CXX object autotests/unit/engine/CMakeFiles/queryparsertest.dir/queryparsertest.cpp.o -[ 50%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/searchstore.cpp.o -[ 50%] Building CXX object autotests/unit/engine/CMakeFiles/termgeneratortest.dir/termgeneratortest_autogen/mocs_compilation.cpp.o -[ 50%] Linking CXX executable ../../../bin/documentdbtest -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/lib/searchstore.cpp:34:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 50%] Linking CXX executable ../../../bin/mtimedbtest -[ 50%] Built target documentdbtest -Scanning dependencies of target documenttimedbtest -[ 51%] Building CXX object autotests/unit/engine/CMakeFiles/documenttimedbtest.dir/documenttimedbtest.cpp.o -[ 51%] Built target mtimedbtest -Scanning dependencies of target andpostingiteratortest -[ 51%] Building CXX object autotests/unit/engine/CMakeFiles/andpostingiteratortest.dir/andpostingiteratortest.cpp.o -[ 51%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/__/storagedevices.cpp.o -[ 51%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/__/regexpcache.cpp.o -[ 51%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/__/fileexcludefilters.cpp.o -[ 51%] Linking CXX executable ../../../bin/termgeneratortest -[ 51%] Building CXX object autotests/unit/engine/CMakeFiles/documenttimedbtest.dir/singledbtest.cpp.o -[ 51%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/__/dbus/maininterface.cpp.o -[ 51%] Built target termgeneratortest -Scanning dependencies of target transactiontest -[ 51%] Building CXX object autotests/unit/engine/CMakeFiles/transactiontest.dir/transactiontest.cpp.o -[ 52%] Building CXX object autotests/unit/engine/CMakeFiles/andpostingiteratortest.dir/singledbtest.cpp.o -[ 52%] Building CXX object autotests/unit/engine/CMakeFiles/queryparsertest.dir/singledbtest.cpp.o -[ 53%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/__/baloodebug.cpp.o -[ 53%] Building CXX object src/file/extractor/CMakeFiles/baloo_file_extractor.dir/baloo_file_extractor_autogen/mocs_compilation.cpp.o -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/queryparsertest.dir/queryparsertest_autogen/mocs_compilation.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/unit/engine/transactiontest.cpp:23:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/andpostingiteratortest.dir/andpostingiteratortest_autogen/mocs_compilation.cpp.o -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/transactiontest.dir/singledbtest.cpp.o -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/documenttimedbtest.dir/documenttimedbtest_autogen/mocs_compilation.cpp.o -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/transactiontest.dir/transactiontest_autogen/mocs_compilation.cpp.o -[ 53%] Linking CXX executable ../../../bin/baloo_file_extractor -[ 53%] Linking CXX executable ../../../bin/queryparsertest -[ 53%] Built target queryparsertest -Scanning dependencies of target orpostingiteratortest -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/orpostingiteratortest.dir/orpostingiteratortest.cpp.o -[ 53%] Building CXX object src/lib/CMakeFiles/KF5Baloo.dir/KF5Baloo_autogen/mocs_compilation.cpp.o -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/orpostingiteratortest.dir/singledbtest.cpp.o -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/orpostingiteratortest.dir/orpostingiteratortest_autogen/mocs_compilation.cpp.o -[ 53%] Linking CXX executable ../../../bin/andpostingiteratortest -[ 53%] Built target baloo_file_extractor -Scanning dependencies of target phraseanditeratortest -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/phraseanditeratortest.dir/phraseanditeratortest.cpp.o -[ 53%] Built target andpostingiteratortest -Scanning dependencies of target documentdatadbtest -[ 53%] Building CXX object autotests/unit/engine/CMakeFiles/documentdatadbtest.dir/documentdatadbtest.cpp.o -[ 54%] Linking CXX executable ../../../bin/documenttimedbtest -[ 55%] Linking CXX executable ../../../bin/transactiontest -[ 55%] Built target documenttimedbtest -Scanning dependencies of target baloofilecommon -[ 55%] Built target transactiontest -[ 55%] Building CXX object autotests/unit/engine/CMakeFiles/documentdatadbtest.dir/singledbtest.cpp.o -[ 55%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/mainhub.cpp.o -[ 55%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/mainadaptor.cpp.o -[ 56%] Linking CXX shared library ../../bin/libKF5Baloo.so -[ 57%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/fileindexerconfig.cpp.o -[ 57%] Built target KF5Baloo -Scanning dependencies of target balooplugin_autogen -[ 57%] Automatic MOC for target balooplugin -Generating MOC predefs moc_predefs.h -Generating MOC source EWIEGA46WW/moc_balooplugin.cpp -Generating MOC source EWIEGA46WW/moc_queryresultsmodel.cpp -Generating MOC compilation mocs_compilation.cpp -[ 57%] Built target balooplugin_autogen -Scanning dependencies of target baloomonitorplugin_autogen -[ 57%] Automatic MOC for target baloomonitorplugin -Generating MOC predefs moc_predefs.h -[ 58%] Linking CXX executable ../../../bin/orpostingiteratortest -[ 58%] Building CXX object autotests/unit/engine/CMakeFiles/documentdatadbtest.dir/documentdatadbtest_autogen/mocs_compilation.cpp.o -Generating MOC source EWIEGA46WW/moc_baloomonitorplugin.cpp -Generating MOC source EWIEGA46WW/moc_monitor.cpp -Generating MOC compilation mocs_compilation.cpp -[ 58%] Built target baloomonitorplugin_autogen -Scanning dependencies of target timeline_autogen -[ 59%] Automatic MOC for target timeline -Generating MOC predefs moc_predefs.h -Generating MOC compilation mocs_compilation.cpp -[ 59%] Built target timeline_autogen -Scanning dependencies of target tags_autogen -[ 59%] Automatic MOC for target tags -[ 59%] Built target orpostingiteratortest -Generating MOC predefs moc_predefs.h -Scanning dependencies of target kio_baloosearch_autogen -[ 59%] Automatic MOC for target kio_baloosearch -Generating MOC predefs moc_predefs.h -Generating MOC compilation mocs_compilation.cpp -[ 59%] Built target kio_baloosearch_autogen -[ 59%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/basicindexingjob.cpp.o -[ 59%] Building CXX object autotests/unit/engine/CMakeFiles/phraseanditeratortest.dir/singledbtest.cpp.o -Generating MOC source EWIEGA46WW/moc_kio_tags.cpp -Generating MOC compilation mocs_compilation.cpp -[ 59%] Built target tags_autogen -Scanning dependencies of target baloosearch_autogen -[ 59%] Automatic MOC for target baloosearch -Generating MOC predefs moc_predefs.h -Generating MOC compilation mocs_compilation.cpp -[ 59%] Built target baloosearch_autogen -Scanning dependencies of target balooshow_autogen -[ 59%] Automatic MOC for target balooshow -Generating MOC predefs moc_predefs.h -Generating MOC compilation mocs_compilation.cpp -[ 59%] Built target balooshow_autogen -Scanning dependencies of target filefetchjobtest_autogen -Scanning dependencies of target filemonitortest_autogen -[ 60%] Automatic MOC for target filefetchjobtest -[ 60%] Automatic MOC for target filemonitortest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC source include/filemonitortest.moc -Generating MOC compilation mocs_compilation.cpp -[ 60%] Built target filemonitortest_autogen -Scanning dependencies of target queryserializationtest_autogen -[ 60%] Automatic MOC for target queryserializationtest -Generating MOC predefs moc_predefs.h -[ 60%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/powerstatemonitor.cpp.o -Generating MOC source include/filefetchjobtest.moc -Generating MOC compilation mocs_compilation.cpp -[ 60%] Built target filefetchjobtest_autogen -Scanning dependencies of target balooplugin -[ 61%] Building CXX object src/qml/CMakeFiles/balooplugin.dir/balooplugin.cpp.o -[ 61%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/fileindexscheduler.cpp.o -Generating MOC source include/queryserializationtest.moc -Generating MOC compilation mocs_compilation.cpp -[ 61%] Built target queryserializationtest_autogen -Scanning dependencies of target baloomonitorplugin -[ 61%] Building CXX object src/qml/experimental/CMakeFiles/baloomonitorplugin.dir/baloomonitorplugin.cpp.o -[ 62%] Linking CXX executable ../../../bin/documentdatadbtest -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/file/basicindexingjob.cpp:25:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 62%] Built target documentdatadbtest -Scanning dependencies of target timeline -[ 63%] Building CXX object src/kioslaves/timeline/CMakeFiles/timeline.dir/kio_timeline.cpp.o -[ 64%] Building CXX object autotests/unit/engine/CMakeFiles/phraseanditeratortest.dir/phraseanditeratortest_autogen/mocs_compilation.cpp.o -[ 65%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/firstrunindexer.cpp.o -[ 65%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/newfileindexer.cpp.o -[ 65%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/xattrindexer.cpp.o -[ 65%] Linking CXX executable ../../../bin/phraseanditeratortest -[ 65%] Built target phraseanditeratortest -Scanning dependencies of target tags -[ 65%] Building CXX object src/kioslaves/tags/CMakeFiles/tags.dir/kio_tags.cpp.o -[ 65%] Building CXX object src/qml/CMakeFiles/balooplugin.dir/queryresultsmodel.cpp.o -[ 65%] Building CXX object src/kioslaves/timeline/CMakeFiles/timeline.dir/timelinetools.cpp.o -[ 66%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/modifiedfileindexer.cpp.o -[ 66%] Building CXX object src/qml/experimental/CMakeFiles/baloomonitorplugin.dir/monitor.cpp.o -[ 66%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/unindexedfileindexer.cpp.o -[ 66%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/filecontentindexer.cpp.o -[ 66%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/filecontentindexerprovider.cpp.o -[ 66%] Building CXX object src/qml/CMakeFiles/balooplugin.dir/balooplugin_autogen/mocs_compilation.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/file/modifiedfileindexer.cpp:23:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 66%] Building CXX object src/kioslaves/tags/CMakeFiles/tags.dir/tags_autogen/mocs_compilation.cpp.o -[ 67%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/extractorprocess.cpp.o -[ 67%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/timeestimator.cpp.o -[ 67%] Building CXX object src/kioslaves/timeline/CMakeFiles/timeline.dir/timeline_autogen/mocs_compilation.cpp.o -[ 67%] Linking CXX shared module ../../../bin/timeline.so -[ 68%] Linking CXX shared library ../../bin/libbalooplugin.so -[ 68%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/indexcleaner.cpp.o -[ 68%] Built target timeline -Scanning dependencies of target kio_baloosearch -[ 68%] Building CXX object src/kioslaves/search/CMakeFiles/kio_baloosearch.dir/kio_search.cpp.o -[ 68%] Built target balooplugin -Scanning dependencies of target baloosearch -[ 68%] Building CXX object src/tools/baloosearch/CMakeFiles/baloosearch.dir/main.cpp.o -[ 69%] Linking CXX shared module ../../../bin/tags.so -[ 69%] Building CXX object src/tools/baloosearch/CMakeFiles/baloosearch.dir/baloosearch_autogen/mocs_compilation.cpp.o -[ 70%] Building CXX object src/qml/experimental/CMakeFiles/baloomonitorplugin.dir/__/__/dbus/schedulerinterface.cpp.o -[ 70%] Building CXX object src/qml/experimental/CMakeFiles/baloomonitorplugin.dir/__/__/dbus/fileindexerinterface.cpp.o -[ 70%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/priority.cpp.o -[ 70%] Built target tags -Scanning dependencies of target balooshow -[ 70%] Building CXX object src/tools/balooshow/CMakeFiles/balooshow.dir/main.cpp.o -[ 71%] Building CXX object src/tools/balooshow/CMakeFiles/balooshow.dir/balooshow_autogen/mocs_compilation.cpp.o -[ 72%] Building CXX object src/kioslaves/search/CMakeFiles/kio_baloosearch.dir/kio_baloosearch_autogen/mocs_compilation.cpp.o -[ 73%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/regexpcache.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/file/indexcleaner.cpp:25:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 73%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/fileexcludefilters.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/tools/balooshow/main.cpp:38:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 73%] Linking CXX shared module ../../../bin/baloosearch.so -[ 74%] Linking CXX executable ../../../bin/baloosearch -[ 74%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/storagedevices.cpp.o -[ 74%] Built target kio_baloosearch -Scanning dependencies of target filefetchjobtest -[ 74%] Building CXX object autotests/unit/lib/CMakeFiles/filefetchjobtest.dir/filefetchjobtest.cpp.o -[ 74%] Built target baloosearch -[ 74%] Building CXX object autotests/unit/lib/CMakeFiles/filefetchjobtest.dir/filefetchjobtest_autogen/mocs_compilation.cpp.o -Scanning dependencies of target filemonitortest -[ 74%] Building CXX object autotests/unit/lib/CMakeFiles/filemonitortest.dir/filemonitortest.cpp.o -[ 74%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/filtereddiriterator.cpp.o -[ 75%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/unindexedfileiterator.cpp.o -[ 75%] Building CXX object src/qml/experimental/CMakeFiles/baloomonitorplugin.dir/baloomonitorplugin_autogen/mocs_compilation.cpp.o -[ 75%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/migrator.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/unit/lib/filefetchjobtest.cpp:25:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 75%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/baloodebug.cpp.o -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/file/unindexedfileiterator.cpp:23:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 75%] Linking CXX executable ../../../bin/balooshow -[ 75%] Built target balooshow -Scanning dependencies of target queryserializationtest -[ 75%] Building CXX object autotests/unit/lib/CMakeFiles/queryserializationtest.dir/queryserializationtest.cpp.o -[ 76%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/fileinfo.cpp.o -[ 76%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/filewatch.cpp.o -[ 76%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/pendingfilequeue.cpp.o -[ 76%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/metadatamover.cpp.o -[ 77%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/pendingfile.cpp.o -[ 77%] Building CXX object autotests/unit/lib/CMakeFiles/filemonitortest.dir/filemonitortest_autogen/mocs_compilation.cpp.o -[ 78%] Linking CXX executable ../../../bin/filemonitortest -[ 78%] Linking CXX shared library ../../../bin/libbaloomonitorplugin.so -[ 78%] Built target filemonitortest -[ 78%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/kinotify.cpp.o -[ 78%] Built target baloomonitorplugin -[ 78%] Building CXX object src/file/CMakeFiles/baloofilecommon.dir/baloofilecommon_autogen/mocs_compilation.cpp.o -[ 78%] Linking CXX executable ../../../bin/filefetchjobtest -[ 78%] Built target filefetchjobtest -[ 78%] Building CXX object autotests/unit/lib/CMakeFiles/queryserializationtest.dir/queryserializationtest_autogen/mocs_compilation.cpp.o -[ 79%] Linking CXX executable ../../../bin/queryserializationtest -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/file/metadatamover.cpp:24:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 79%] Built target queryserializationtest -[ 79%] Linking CXX static library ../../lib/libbaloofilecommon.a -[ 79%] Built target baloofilecommon -Scanning dependencies of target balooctl_autogen -Scanning dependencies of target baloo_file_autogen -Scanning dependencies of target unindexedfileiteratorbenchmark_autogen -Scanning dependencies of target basicindexingtest_autogen -Scanning dependencies of target filtereddiriteratorbenchmark_autogen -Scanning dependencies of target indexerconfigtest_autogen -Scanning dependencies of target inotifytest_autogen -Scanning dependencies of target storagedevicestest_autogen -[ 79%] Automatic MOC for target baloo_file -[ 79%] Automatic MOC for target unindexedfileiteratorbenchmark -[ 79%] Automatic MOC for target filtereddiriteratorbenchmark -[ 79%] Automatic MOC for target indexerconfigtest -[ 79%] Automatic MOC for target basicindexingtest -[ 79%] Automatic MOC for target balooctl -[ 79%] Automatic MOC for target inotifytest -[ 79%] Automatic MOC for target storagedevicestest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC compilation mocs_compilation.cpp -Generating MOC compilation mocs_compilation.cpp -Generating MOC compilation mocs_compilation.cpp -Generating MOC compilation mocs_compilation.cpp -Generating MOC compilation mocs_compilation.cpp -Generating MOC predefs moc_predefs.h -[ 79%] Built target unindexedfileiteratorbenchmark_autogen -[ 79%] Built target indexerconfigtest_autogen -[ 79%] Built target inotifytest_autogen -[ 79%] Built target basicindexingtest_autogen -[ 79%] Built target filtereddiriteratorbenchmark_autogen -Generating MOC compilation mocs_compilation.cpp -Generating MOC compilation mocs_compilation.cpp -[ 79%] Built target storagedevicestest_autogen -[ 79%] Built target baloo_file_autogen -Scanning dependencies of target unindexedfileiteratortest_autogen -Scanning dependencies of target kinotifytest_autogen -Scanning dependencies of target fileindexerconfigtest_autogen -Scanning dependencies of target basicindexingjobtest_autogen -Scanning dependencies of target regularexpcachebenchmark_autogen -Scanning dependencies of target filtereddiriteratortest_autogen -[ 80%] Automatic MOC for target fileindexerconfigtest -Scanning dependencies of target metadatamovertest_autogen -[ 80%] Automatic MOC for target basicindexingjobtest -[ 80%] Automatic MOC for target unindexedfileiteratortest -[ 80%] Automatic MOC for target kinotifytest -[ 80%] Automatic MOC for target regularexpcachebenchmark -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -[ 80%] Automatic MOC for target filtereddiriteratortest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -[ 80%] Automatic MOC for target metadatamovertest -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC predefs moc_predefs.h -Generating MOC source EWIEGA46WW/moc_monitorcommand.cpp -Generating MOC compilation mocs_compilation.cpp -[ 80%] Built target balooctl_autogen -Scanning dependencies of target fileinfotest_autogen -Generating MOC source include/fileindexerconfigtest.moc -Generating MOC compilation mocs_compilation.cpp -[ 80%] Built target fileindexerconfigtest_autogen -[ 81%] Automatic MOC for target fileinfotest -Generating MOC source include/unindexedfileiteratortest.moc -Generating MOC compilation mocs_compilation.cpp -Generating MOC predefs moc_predefs.h -[ 81%] Built target unindexedfileiteratortest_autogen -Generating MOC source include/regularexpcachebenchmark.moc -Generating MOC compilation mocs_compilation.cpp -Scanning dependencies of target pendingfilequeuetest_autogen -[ 81%] Built target regularexpcachebenchmark_autogen -Scanning dependencies of target filewatchtest_autogen -Generating MOC source include/basicindexingjobtest.moc -Generating MOC compilation mocs_compilation.cpp -Generating MOC source include/filtereddiriteratortest.moc -Generating MOC compilation mocs_compilation.cpp -[ 81%] Automatic MOC for target pendingfilequeuetest -[ 81%] Automatic MOC for target filewatchtest -Scanning dependencies of target baloo_file -[ 81%] Built target basicindexingjobtest_autogen -[ 81%] Built target filtereddiriteratortest_autogen -Generating MOC predefs moc_predefs.h -Generating MOC source include/kinotifytest.moc -Generating MOC compilation mocs_compilation.cpp -Scanning dependencies of target balooctl -Generating MOC source include/metadatamovertest.moc -Generating MOC compilation mocs_compilation.cpp -Generating MOC predefs moc_predefs.h -Scanning dependencies of target basicindexingtest -[ 81%] Built target kinotifytest_autogen -[ 81%] Built target metadatamovertest_autogen -Scanning dependencies of target unindexedfileiteratorbenchmark -[ 82%] Building CXX object src/file/CMakeFiles/baloo_file.dir/main.cpp.o -Scanning dependencies of target filtereddiriteratorbenchmark -[ 83%] Building CXX object tests/benchmarks/CMakeFiles/unindexedfileiteratorbenchmark.dir/unindexedfileiteratortest.cpp.o -[ 84%] Building CXX object tests/engine/CMakeFiles/basicindexingtest.dir/basicindexingtest.cpp.o -[ 84%] Building CXX object tests/file/CMakeFiles/filtereddiriteratorbenchmark.dir/filtereddiriteratorbenchmark.cpp.o -Generating MOC source include/pendingfilequeuetest.moc -Generating MOC compilation mocs_compilation.cpp -[ 84%] Built target pendingfilequeuetest_autogen -[ 85%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/main.cpp.o -[ 85%] Building CXX object tests/engine/CMakeFiles/basicindexingtest.dir/basicindexingtest_autogen/mocs_compilation.cpp.o -Generating MOC source include/filewatchtest.moc -Generating MOC compilation mocs_compilation.cpp -[ 85%] Built target filewatchtest_autogen -Generating MOC source include/fileinfotest.moc -Generating MOC compilation mocs_compilation.cpp -[ 85%] Built target fileinfotest_autogen -Scanning dependencies of target indexerconfigtest -Scanning dependencies of target storagedevicestest -[ 85%] Building CXX object src/file/CMakeFiles/baloo_file.dir/baloo_file_autogen/mocs_compilation.cpp.o -[ 85%] Building CXX object tests/file/CMakeFiles/storagedevicestest.dir/storagedevicestest.cpp.o -[ 85%] Building CXX object tests/file/CMakeFiles/indexerconfigtest.dir/indexerconfigtest.cpp.o -[ 85%] Building CXX object tests/benchmarks/CMakeFiles/unindexedfileiteratorbenchmark.dir/unindexedfileiteratorbenchmark_autogen/mocs_compilation.cpp.o -[ 85%] Building CXX object tests/file/CMakeFiles/indexerconfigtest.dir/indexerconfigtest_autogen/mocs_compilation.cpp.o -[ 85%] Building CXX object tests/file/CMakeFiles/storagedevicestest.dir/storagedevicestest_autogen/mocs_compilation.cpp.o -Scanning dependencies of target inotifytest -[ 85%] Building CXX object tests/file/CMakeFiles/inotifytest.dir/inotify.cpp.o -[ 85%] Linking CXX executable ../../bin/baloo_file -[ 86%] Linking CXX executable ../../bin/indexerconfigtest -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/tools/balooctl/main.cpp:48:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 87%] Linking CXX executable ../../bin/storagedevicestest -[ 87%] Linking CXX executable ../../bin/unindexedfileiteratorbenchmark -[ 88%] Building CXX object tests/file/CMakeFiles/filtereddiriteratorbenchmark.dir/filtereddiriteratorbenchmark_autogen/mocs_compilation.cpp.o -[ 88%] Linking CXX executable ../../bin/filtereddiriteratorbenchmark -[ 88%] Built target baloo_file -Scanning dependencies of target basicindexingjobtest -[ 89%] Building CXX object autotests/unit/file/CMakeFiles/basicindexingjobtest.dir/basicindexingjobtest.cpp.o -[ 89%] Built target storagedevicestest -Scanning dependencies of target unindexedfileiteratortest -[ 89%] Built target indexerconfigtest -Scanning dependencies of target fileindexerconfigtest -[ 90%] Building CXX object autotests/unit/file/CMakeFiles/unindexedfileiteratortest.dir/unindexedfileiteratortest.cpp.o -[ 90%] Building CXX object autotests/unit/file/CMakeFiles/fileindexerconfigtest.dir/fileindexerconfigtest.cpp.o -[ 90%] Linking CXX executable ../../bin/basicindexingtest -[ 90%] Building CXX object tests/file/CMakeFiles/inotifytest.dir/inotifytest_autogen/mocs_compilation.cpp.o -[ 91%] Linking CXX executable ../../bin/inotifytest -[ 91%] Built target unindexedfileiteratorbenchmark -Scanning dependencies of target metadatamovertest -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/metadatamovertest.dir/metadatamovertest.cpp.o -[ 91%] Built target basicindexingtest -Scanning dependencies of target kinotifytest -[ 91%] Built target filtereddiriteratorbenchmark -Scanning dependencies of target regularexpcachebenchmark -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/kinotifytest.dir/kinotifytest.cpp.o -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/regularexpcachebenchmark.dir/regularexpcachebenchmark.cpp.o -[ 91%] Built target inotifytest -Scanning dependencies of target filtereddiriteratortest -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/filtereddiriteratortest.dir/filtereddiriteratortest.cpp.o -[ 91%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/indexer.cpp.o -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/basicindexingjobtest.dir/basicindexingjobtest_autogen/mocs_compilation.cpp.o -[ 91%] Linking CXX executable ../../../bin/basicindexingjobtest -[ 91%] Built target basicindexingjobtest -Scanning dependencies of target fileinfotest -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/fileinfotest.dir/fileinfotest.cpp.o -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/regularexpcachebenchmark.dir/regularexpcachebenchmark_autogen/mocs_compilation.cpp.o -[ 91%] Building CXX object autotests/unit/file/CMakeFiles/unindexedfileiteratortest.dir/unindexedfileiteratortest_autogen/mocs_compilation.cpp.o -[ 92%] Linking CXX executable ../../../bin/regularexpcachebenchmark -[ 92%] Linking CXX executable ../../../bin/unindexedfileiteratortest -[ 92%] Built target regularexpcachebenchmark -[ 92%] Built target unindexedfileiteratortest -Scanning dependencies of target pendingfilequeuetest -Scanning dependencies of target filewatchtest -[ 92%] Building CXX object autotests/unit/file/CMakeFiles/pendingfilequeuetest.dir/pendingfilequeuetest.cpp.o -[ 92%] Building CXX object autotests/unit/file/CMakeFiles/filewatchtest.dir/filewatchtest.cpp.o -[ 92%] Building CXX object autotests/unit/file/CMakeFiles/fileindexerconfigtest.dir/fileindexerconfigtest_autogen/mocs_compilation.cpp.o -[ 92%] Linking CXX executable ../../../bin/fileindexerconfigtest -[ 93%] Building CXX object autotests/unit/file/CMakeFiles/metadatamovertest.dir/metadatamovertest_autogen/mocs_compilation.cpp.o -[ 94%] Building CXX object autotests/unit/file/CMakeFiles/filtereddiriteratortest.dir/filtereddiriteratortest_autogen/mocs_compilation.cpp.o -[ 94%] Linking CXX executable ../../../bin/metadatamovertest -[ 94%] Linking CXX executable ../../../bin/filtereddiriteratortest -[ 94%] Built target fileindexerconfigtest -[ 94%] Building CXX object autotests/unit/file/CMakeFiles/filewatchtest.dir/__/lib/xattrdetector.cpp.o -[ 94%] Building CXX object autotests/unit/file/CMakeFiles/fileinfotest.dir/fileinfotest_autogen/mocs_compilation.cpp.o -[ 94%] Linking CXX executable ../../../bin/fileinfotest -[ 94%] Built target fileinfotest -[ 95%] Building CXX object autotests/unit/file/CMakeFiles/filewatchtest.dir/filewatchtest_autogen/mocs_compilation.cpp.o -[ 95%] Building CXX object autotests/unit/file/CMakeFiles/pendingfilequeuetest.dir/pendingfilequeuetest_autogen/mocs_compilation.cpp.o -[ 95%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/command.cpp.o -[ 95%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/configcommand.cpp.o -[ 95%] Built target filtereddiriteratortest -[ 96%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/statuscommand.cpp.o -[ 96%] Built target metadatamovertest -[ 96%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/monitorcommand.cpp.o -[ 97%] Building CXX object autotests/unit/file/CMakeFiles/kinotifytest.dir/kinotifytest_autogen/mocs_compilation.cpp.o -[ 97%] Linking CXX executable ../../../bin/kinotifytest -[ 98%] Linking CXX executable ../../../bin/pendingfilequeuetest -[ 98%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/__/__/file/extractor/result.cpp.o -[ 98%] Built target kinotifytest -[ 99%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/__/__/dbus/maininterface.cpp.o -[ 99%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/__/__/dbus/schedulerinterface.cpp.o -[ 99%] Built target pendingfilequeuetest -[ 99%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/__/__/dbus/fileindexerinterface.cpp.o -[ 99%] Linking CXX executable ../../../bin/filewatchtest -In file included from /usr/src/packages/user/baloo/src/baloo-5.38.0/src/tools/balooctl/statuscommand.cpp:27:0: -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h: In function 'quint64 Baloo::devIdAndInodeToId(quint32, quint32)': -/usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/idutils.h:41:45: warning: dereferencing type-punned pointer will break strict-aliasing rules [-Wstrict-aliasing] - return *(reinterpret_cast(arr)); - ^ -[ 99%] Built target filewatchtest -[ 99%] Building CXX object src/tools/balooctl/CMakeFiles/balooctl.dir/balooctl_autogen/mocs_compilation.cpp.o -[100%] Linking CXX executable ../../../bin/balooctl -[100%] Built target balooctl ->>> baloo: Entering fakeroot... -]0;abuild: balooTest project /usr/src/packages/user/baloo/src/baloo-5.38.0 - Start 1: extractorIOTest - 1/38 Test #1: extractorIOTest .................. Passed 0.00 sec - Start 2: databasebenchmark - 2/38 Test #2: databasebenchmark ................ Passed 0.00 sec - Start 3: positioncodecbenchmark - 3/38 Test #3: positioncodecbenchmark ........... Passed 1.27 sec - Start 4: querytest - 4/38 Test #4: querytest ........................***Exception: Other 0.69 sec -********* Start testing of QueryTest ********* -Config: Using QtTest library 5.9.1, Qt 5.9.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 6.4.0) -PASS : QueryTest::initTestCase() -PASS : QueryTest::testTermEqual() - -========= Received signal, dumping stack ============== -GNU gdb (GDB) 7.12.1 -Copyright (C) 2017 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. Type "show copying" -and "show warranty" for details. -This GDB was configured as "x86_64-foxkit-linux-musl". -Type "show configuration" for configuration details. -For bug reporting instructions, please see: -. -Find the GDB manual and other documentation resources online at: -. -For help, type "help". -Type "apropos word" to search for commands related to "word". -Attaching to process 5478 -[New LWP 5479] -__cp_end () at src/thread/x86_64/syscall_cp.s:29 -(gdb) -Thread 2 (LWP 5479): -#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29 -No locals. -#1 0x00007f66d5b389f1 in __syscall_cp_c (nr=202, u=, - v=, w=, x=, - y=, z=0) at src/thread/pthread_cancel.c:35 - r = - st = -#2 0x00007f66d5b37bdf in __timedwait_cp (addr=addr@entry=0x7f66d5d728d4, - val=val@entry=2, clk=clk@entry=1, at=at@entry=0x7f66d5d72930, priv=128, - priv@entry=1) at src/thread/__timedwait.c:31 - r = - to = {tv_sec = 299, tv_nsec = 999999666} - top = -#3 0x00007f66d5b38e32 in __pthread_cond_timedwait (c=0x7f66d3f344a8, - m=0x7f66d3f34480, ts=0x7f66d5d72930) - at src/thread/pthread_cond_timedwait.c:105 - node = {prev = 0x0, next = 0x0, state = 0, barrier = 2, notify = 0x0} - e = - seq = 2 - clock = - cs = 0 - shared = 0 - oldstate = - tmp = - fut = 0x7f66d5d728d4 -#4 0x00007f66d4df4f16 in QWaitCondition::wait(QMutex*, unsigned long) () - from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#5 0x00007f66d56a3032 in QTest::WatchDog::run (this=0x7f66d568b500) - at qtestcase.cpp:990 - locker = {val = 140079643800857} -#6 0x00007f66d4df4058 in QThreadPrivate::start(void*) () - from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#7 0x00007f66d5b397a0 in start (p=0x7f66d5d72ae8) - at src/thread/pthread_create.c:145 - self = 0x7f66d5d72ae8 -#8 0x00007f66d5b45e04 in __clone () at src/thread/x86_64/clone.s:21 -No locals. -Backtrace stopped: frame did not save the PC - -Thread 1 (LWP 5478): -#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29 -No locals. -#1 0x00007f66d5b389f1 in __syscall_cp_c (nr=61, u=, - v=, w=, x=, - y=, z=0) at src/thread/pthread_cancel.c:35 - r = - st = -#2 0x00007f66d5b1eb06 in waitpid (pid=, - status=status@entry=0x7f66d58c736c , options=options@entry=0) - at src/process/waitpid.c:7 -No locals. -#3 0x00007f66d5b1e9ea in system ( - cmd=0x7f66d58c7800 "gdb --pid 5478 2>/dev/null <}}, sa_flags = 0, - sa_restorer = 0x0} - oldint = {__sa_handler = { - sa_handler = 0x7f66d5699a70 , sa_sigaction = 0x7f66d5699a70 }, - sa_mask = {__bits = {21711, 0, 140079651061400, 140079646143920, - 140079648459259, 140079651048128, 1, 101, 160, 140079646143984, - 104, 94651405916256, 63, 0, 140079651061400, 8}}, - sa_flags = -1946157056, sa_restorer = 0x66} - oldquit = {__sa_handler = { - sa_handler = 0x7f66d5699a70 , sa_sigaction = 0x7f66d5699a70 }, - sa_mask = {__bits = {21711, 101, 140079651061400, 101, - 140079646144232, 140079646144080, 140079648455426, - 94651405916400, 33636187584, 64424509439, 101, 1, - 94651405916240, 94651405916400, 140725177193184, - 140079646144192}}, sa_flags = -1946157056, sa_restorer = 0xb} - status = 32512 - ret = 0 - attr = {__flags = 12, __pgrp = 0, __def = {__bits = {6, 44, 5, - 140079634797405, 4, 0, 32, 0, 0, 32, 1, 140079651061376, - 140079651048056, 1, 140079646144288, 140079651048064}}, - __mask = {__bits = {21711, 7719224956813516832, 4209586178373323330, - 3688764892143165449, 140079646143520, 140079648458255, - 739271074867519520, 4294967297, 18446744073709551614, 64, - 3539864629463222586, 7878495878512652338, 2314885432472784208, - 0, 8, 140079646144056}}, __prio = 0, __pol = 0, __pad = { - 0 }} -#4 0x00007f66d56999ac in stackTrace () at qtestcase.cpp:222 - cmd = "gdb --pid 5478 2>/dev/null <... -#5 0x00007f66d5699a65 in stackTrace () at qtestcase.cpp:237 - ok = false - disableStackDump = -#6 0x00007f66d5699b05 in QTest::FatalSignalHandler::signal (signum=11) - at qtestcase.cpp:1417 -No locals. -#7 -No locals. -#8 0x00007f66d547e2df in mdb_cursor_open (txn=0x8b4960b5aaff1e44, dbi=2, - ret=ret@entry=0x7ffd22329150) at mdb.c:7597 -No locals. -#9 0x00007f66d5463821 in Baloo::PostingDB::iter > (this=0xc, this=0xc, - prefix=..., validate=...) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/postingdb.cpp:211 - key = {mv_size = 3, mv_data = 0x7f66d1c72fd8} - cursor = 0x0 - termIterators = {d = 0x30} - val = {mv_size = 140725177192912, - mv_data = 0x7f66d5afbb02 } - rc = -#10 Baloo::PostingDB::prefixIter (this=this@entry=0x7ffd22329220, prefix=...) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/postingdb.cpp:246 -No locals. -#11 0x00007f66d546a482 in Baloo::Transaction::postingIterator ( - this=0x7ffd22329300, query=...) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/transaction.cpp:296 - postingDb = {m_txn = 0x8b4960b5aaff1e44, m_dbi = 2} - positionDb = {m_txn = 0x8b4960b5aaff1e44, m_dbi = 3} - vec = {d = 0x1d} -#12 0x00007f66d546a4fa in Baloo::Transaction::exec (this=, - query=..., limit=-1) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/transaction.cpp:361 - results = {d = 0x7f66d5081020 } - it = -#13 0x00005615bf0fc4b5 in QueryTest::testTermStartsWith (this=0x7ffd22329e40) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/querytest.cpp:123 - q = {m_term = {d = 0x7f66d1c72fc0}, m_pos = 0, - m_op = Baloo::EngineQuery::StartsWith, m_subQueries = { - d = 0x7f66d5081020 }} - result = {d = 0x5615bf303fa0} - tr = {m_dbis = @0x7f66d1c72f78, m_txn = 0x8b4960b5aaff1e44, - m_env = 0x5615bf303e80, m_writeTrans = 0x0} -#14 0x00005615bf0fe6c5 in QueryTest::qt_static_metacall (_o=0x7ffd22329e40, - _c=, _id=, _a=) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/querytest_autogen/include/querytest.moc:93 - _t = 0x7ffd22329e40 -#15 0x00007f66d4fe6536 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#16 0x00007f66d56a1158 in QMetaMethod::invoke (val9=..., val8=..., val7=..., - val6=..., val5=..., val4=..., val3=..., val2=..., val1=..., val0=..., - connectionType=Qt::DirectConnection, object=, - this=) - at ../../include/QtCore/../../src/corelib/kernel/qmetaobject.h:123 -No locals. -#17 QTest::TestMethods::invokeTestOnData (this=this@entry=0x7ffd22329d70, - index=index@entry=1) at qtestcase.cpp:890 - invokeOk = - isBenchmark = - i = -1 - results = {d = 0x7f66d5081020 } - minimumTotalReached = -#18 0x00007f66d56a1b90 in QTest::TestMethods::invokeTest ( - this=this@entry=0x7ffd22329d70, index=index@entry=1, data=data@entry=0x0, - watchDog=watchDog@entry=0x7f66d568b500) at qtestcase.cpp:1071 - curDataIndex = 0 - dataCount = 0 - foundFunction = true - benchmarkData = {static current = 0x7ffd223299b0, result = {context = { - slotName = {static null = {}, - d = 0x7f66d5081020 }, tag = { - static null = {}, - d = 0x7f66d5081020 }, - checkpointIndex = -1}, value = -1, iterations = -1, - metric = QTest::FramesPerSecond, setByMacro = true, - valid = false}, resultAccepted = false, runOnce = false, - iterationCount = 1} - name = @0x7ffd22329998: { - d = 0x5615bf101478 } - member = "testTermStartsWith_data()\000k\325f\177\000\000\000\000\000\000\000\000\000\000]S\337\324f\177\000\000 hk\325f\177\000\000\030\233\062\"\375\177\000\000\a\000\000\000\000\000\000\000\224\315\337\324f\177\000\000`\232\062\"\375\177\000\000\235\071\257\325f\177\000\000\300\233\062\"\375\177\000\000К2\"\375\177\000\000@\233\062\"\375\177\000\000\366\232\263\325f\177\000\000 +\327\325f\177\000\000\016\232\263\325f\177\000\000H\024\020\277\025V\000\000\000,\327\325f\177\000\000\000\340\325\325f\177\000\000\361\211\263\325f\177\000\000Pk\327\325f\177\000\000\000\000\000\000\000\000\000\000\002", '\000' ... - table = {d = 0x7f66d1c72d60} - gTable = - curGlobalDataIndex = -#19 0x00007f66d56a21e1 in QTest::TestMethods::invokeTests ( - this=this@entry=0x7ffd22329d70, testObject=testObject@entry=0x7ffd22329e40) - at qtestcase.cpp:1378 - data = 0x0 - ok = - i = 1 - count = 5 - previousFailed = - metaObject = - watchDog = {d = 0x7f66d568b500} -#20 0x00007f66d56a2727 in QTest::qExec (testObject=0x7ffd22329e40, - argc=, argv=0x7ffd22329f08) at qtestcase.cpp:1793 - handler = {d = 0x7f66d3f34140} - commandLineMethods = { >> = { - _M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x0, - _M_finish = 0x0, _M_end_of_storage = 0x0}}, } - test = {m_initTestCaseMethod = {mobj = 0x0, handle = 0}, - m_initTestCaseDataMethod = {mobj = 0x0, handle = 0}, - m_cleanupTestCaseMethod = {mobj = 0x0, handle = 0}, m_initMethod = { - mobj = 0x5615bf302ba0 , handle = 14}, - m_cleanupMethod = { - mobj = 0x5615bf302ba0 , handle = 19}, - m_methods = { >> = { - _M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, - _M_start = 0x7f66d568b900, _M_finish = 0x7f66d568b950, - _M_end_of_storage = 0x7f66d568b9c0}}, }} - metaObject = - benchmarkData = {static current = 0x7ffd22329d30, - measurer = 0x7f66d568b1c0, context = {slotName = { - static null = {}, d = 0x7f66d3f349a0}, tag = { - static null = {}, - d = 0x7f66d5080fc0 }, checkpointIndex = -1}, - walltimeMinimum = -1, iterationCount = -1, - medianIterationCount = -1, createChart = false, - verboseOutput = false, callgrindOutFileBase = { - static null = {}, - d = 0x7f66d5081020 }, minimumTotal = -1, - mode_ = QBenchmarkGlobalData::WallTime} - callgrindChildExitCode = 0 -#21 0x00005615bf0fc16e in main (argc=, argv=0x7ffd22329f08) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/querytest.cpp:166 - app = - tc = { = {}, static staticMetaObject = {d = { - superdata = 0x7f66d5428660 , - stringdata = 0x5615bf101400 , - data = 0x5615bf101300 , - static_metacall = 0x5615bf0fe550 , relatedMetaObjects = 0x0, - extradata = 0x0}}, dir = 0x7f66d568b9e0, db = 0x7f66d1c72f60, - m_id1 = 16967899663105536, m_id2 = 16967903958072832, - m_id3 = 16967908253040128, m_id4 = 16967912548007424} -Detaching from program: /usr/src/packages/user/baloo/src/baloo-5.38.0/bin/querytest, process 5478 -========= End of stack trace ============== -QFATAL : QueryTest::testTermStartsWith() Received signal 11 - Function time: 67ms Total time: 151ms -FAIL! : QueryTest::testTermStartsWith() Received a fatal error. - Loc: [Unknown file(0)] -Totals: 2 passed, 1 failed, 0 skipped, 0 blacklisted, 688ms -********* Finished testing of QueryTest ********* - - Start 5: writetransactiontest - 5/38 Test #5: writetransactiontest .............***Exception: Other 0.66 sec -********* Start testing of WriteTransactionTest ********* -Config: Using QtTest library 5.9.1, Qt 5.9.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 6.4.0) -PASS : WriteTransactionTest::initTestCase() -PASS : WriteTransactionTest::testAddDocument() - -========= Received signal, dumping stack ============== -GNU gdb (GDB) 7.12.1 -Copyright (C) 2017 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. Type "show copying" -and "show warranty" for details. -This GDB was configured as "x86_64-foxkit-linux-musl". -Type "show configuration" for configuration details. -For bug reporting instructions, please see: -. -Find the GDB manual and other documentation resources online at: -. -For help, type "help". -Type "apropos word" to search for commands related to "word". -Attaching to process 5486 -[New LWP 5487] -__cp_end () at src/thread/x86_64/syscall_cp.s:29 -(gdb) -Thread 2 (LWP 5487): -#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29 -No locals. -#1 0x00007fcfa76e79f1 in __syscall_cp_c (nr=202, u=, - v=, w=, x=, - y=, z=0) at src/thread/pthread_cancel.c:35 - r = - st = -#2 0x00007fcfa76e6bdf in __timedwait_cp (addr=addr@entry=0x7fcfa79218d4, - val=val@entry=2, clk=clk@entry=1, at=at@entry=0x7fcfa7921930, priv=128, - priv@entry=1) at src/thread/__timedwait.c:31 - r = - to = {tv_sec = 299, tv_nsec = 999999708} - top = -#3 0x00007fcfa76e7e32 in __pthread_cond_timedwait (c=0x7fcfa5ae34a8, - m=0x7fcfa5ae3480, ts=0x7fcfa7921930) - at src/thread/pthread_cond_timedwait.c:105 - node = {prev = 0x0, next = 0x0, state = 0, barrier = 2, notify = 0x0} - e = - seq = 2 - clock = - cs = 0 - shared = 0 - oldstate = - tmp = - fut = 0x7fcfa79218d4 -#4 0x00007fcfa69a3f16 in QWaitCondition::wait(QMutex*, unsigned long) () - from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#5 0x00007fcfa7252032 in QTest::WatchDog::run (this=0x7fcfa723a900) - at qtestcase.cpp:990 - locker = {val = 140529839089945} -#6 0x00007fcfa69a3058 in QThreadPrivate::start(void*) () - from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#7 0x00007fcfa76e87a0 in start (p=0x7fcfa7921ae8) - at src/thread/pthread_create.c:145 - self = 0x7fcfa7921ae8 -#8 0x00007fcfa76f4e04 in __clone () at src/thread/x86_64/clone.s:21 -No locals. -Backtrace stopped: frame did not save the PC - -Thread 1 (LWP 5486): -#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29 -No locals. -#1 0x00007fcfa76e79f1 in __syscall_cp_c (nr=61, u=, - v=, w=, x=, - y=, z=0) at src/thread/pthread_cancel.c:35 - r = - st = -#2 0x00007fcfa76cdb06 in waitpid (pid=, - status=status@entry=0x7fcfa747636c , options=options@entry=0) - at src/process/waitpid.c:7 -No locals. -#3 0x00007fcfa76cd9ea in system ( - cmd=0x7fcfa7476800 "gdb --pid 5486 2>/dev/null <}}, sa_flags = 0, - sa_restorer = 0x0} - oldint = {__sa_handler = { - sa_handler = 0x7fcfa7248a70 , sa_sigaction = 0x7fcfa7248a70 }, - sa_mask = {__bits = {21711, 0, 94705615740472, 140529841431984, - 140529843747323, 140529846336960, 1, 101, 160, 140529841432048, - 104, 94705615740736, 63, 0, 94705615740472, 8}}, - sa_flags = -1946157056, sa_restorer = 0x66} - oldquit = {__sa_handler = { - sa_handler = 0x7fcfa7248a70 , sa_sigaction = 0x7fcfa7248a70 }, - sa_mask = {__bits = {21711, 101, 94705615740472, 101, - 140529841432296, 140529841432144, 140529843743490, - 94705615740880, 191773699520, 64424509439, 101, 1, - 94705615740432, 94705615740880, 140728573147760, - 140529841432256}}, sa_flags = -1946157056, sa_restorer = 0xb} - status = 32512 - ret = 0 - attr = {__flags = 12, __pgrp = 0, __def = {__bits = {6, 44, 5, - 140529830085469, 4, 140529841431786, 140529841431856, - 140529830597770, 140529841431856, 140529841432128, 1, - 140529830504092, 3472328296227680304, 3472328296227680304, - 4209577309166457610, 3472328296227680265}}, __mask = {__bits = { - 21711, 3834024671439380852, 739271074867654707, - 2308440517191626070, 140529841431584, 140529843746319, - 2314885530818447674, 188978561025, 18446744073709551614, 64, - 664920123419481610, 4049353029007188000, 5571072955364043552, 0, - 8, 140529841432120}}, __prio = 0, __pol = 0, __pad = { - 0 }} -#4 0x00007fcfa72489ac in stackTrace () at qtestcase.cpp:222 - cmd = "gdb --pid 5486 2>/dev/null <... -#5 0x00007fcfa7248a65 in stackTrace () at qtestcase.cpp:237 - ok = false - disableStackDump = -#6 0x00007fcfa7248b05 in QTest::FatalSignalHandler::signal (signum=11) - at qtestcase.cpp:1417 -No locals. -#7 -No locals. -#8 memcpy () at src/string/x86_64/memcpy.s:18 -No locals. -#9 0x00007fcfa69a6c9b in QByteArray::QByteArray(char const*, int) () - from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#10 0x00007fcfa70131c5 in Baloo::PostingDB::toTestMap (this=) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/src/engine/postingdb.cpp:288 - rc = - ba = {d = 0x7fcfa6c30020 } - plist = {d = 0x0} - cursor = 0x0 - key = {mv_size = 0, mv_data = 0x0} - val = {mv_size = 94705615690848, mv_data = 0x56225e950c50} - map = {d = 0x7fcfa6c7c9a0 } -#11 0x000056225dc03d07 in Baloo::DBState::fromTransaction (tr=) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/dbstate.h:83 - dbis = {postingDbi = , positionDBi = , - docTermsDbi = , - docFilenameTermsDbi = , - docXattrTermsDbi = , idTreeDbi = 7, - idFilenameDbi = 8, docTimeDbi = , - docDataDbi = , contentIndexingDbi = , - mtimeDbi = , failedIdDbi = } - txn = - postingDB = {m_txn = 0x56225e950880, m_dbi = 2} - positionDB = {m_txn = 0x56225e950880, m_dbi = 3} - documentTermsDB = {m_txn = 0x56225e950880, m_dbi = 4} - documentXattrTermsDB = {m_txn = 0x56225e950880, m_dbi = 6} - documentFileNameTermsDB = {m_txn = 0x56225e950880, m_dbi = 5} - docTimeDB = {m_txn = 0x56225e950880, m_dbi = 9} - docDataDB = {m_txn = 0x56225e950880, m_dbi = 10} - contentIndexingDB = {m_txn = 0x56225e950880, m_dbi = 11} - failedIdDb = {m_txn = 0x56225e950880, m_dbi = 12} - mtimeDB = {m_txn = 0x56225e950880, m_dbi = 13} - docUrlDB = {m_txn = 0x56225e950880, m_idFilenameDbi = 8, - m_idTreeDbi = 7} - state = {postingDb = {d = 0x7fcfa6c7c9a0 }, - positionDb = {d = 0x7fcfa6c7c9a0 }, - docTermsDb = {d = 0x7fcfa6c7c9a0 }, - docFileNameTermsDb = { - d = 0x7fcfa6c7c9a0 }, - docXAttrTermsDb = {d = 0x7fcfa6c7c9a0 }, - docTimeDb = {d = 0x7fcfa6c7c9a0 }, - mtimeDb = {d = 0x7fcfa6c7c9a0 }, - docDataDb = {d = 0x7fcfa6c7c9a0 }, - docUrlDb = {d = 0x7fcfa6c7c9a0 }, - contentIndexingDb = {d = 0x7fcfa6c30020 }, - failedIdDb = {d = 0x7fcfa6c30020 }} -#12 0x000056225dc05901 in WriteTransactionTest::testAddDocumentTwoDocuments ( - this=) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/writetransactiontest.cpp:160 - url1 = {d = 0x56225e94f060} - url2 = {d = 0x7fcfa7926e80} - doc1 = {m_id = 16967929727876608, m_terms = {d = 0x7fcfa5ae3940}, - m_xattrTerms = {d = 0x7fcfa6c7c9a0 }, - m_fileNameTerms = {d = 0x56225de12ec0}, m_url = { - d = 0x56225e94f060}, m_contentIndexing = false, m_mTime = 5, - m_cTime = 1, m_data = {d = 0x7fcfa6c30020 }} - doc2 = {m_id = 16967934022843904, m_terms = {d = 0x56225e94f4a0}, - m_xattrTerms = {d = 0x7fcfa6c7c9a0 }, - m_fileNameTerms = {d = 0x56225e94f5a0}, m_url = { - d = 0x7fcfa7926e80}, m_contentIndexing = false, m_mTime = 6, - m_cTime = 2, m_data = {d = 0x7fcfa6c30020 }} - tr = {m_dbis = @0x7fcfa3821db8, m_txn = 0x56225e950880, - m_env = 0x7fcfa7926ee0, m_writeTrans = 0x0} - id1 = - id2 = 16967934022843904 - state = {postingDb = {d = 0x56225e94e5a0}, positionDb = { - d = 0x7fcfa6c7c9a0 }, docTermsDb = { - d = 0x7fcfa5649c80}, docFileNameTermsDb = {d = 0x7fcfa5649e40}, - docXAttrTermsDb = {d = 0x7fcfa6c7c9a0 }, - docTimeDb = {d = 0x7fcfa5649f00}, mtimeDb = {d = 0x7fcfa5649fc0}, - docDataDb = {d = 0x7fcfa6c7c9a0 }, - docUrlDb = {d = 0x7fcfa6c7c9a0 }, - contentIndexingDb = {d = 0x7fcfa6c30020 }, - failedIdDb = {d = 0x7fcfa6c30020 }} - actualState = {postingDb = { - d = 0x7fcfa6c7c9a0 }, positionDb = { - d = 0x7fcfa6c7c9a0 }, docTermsDb = { - d = 0x7fcfa6c7c9a0 }, - docFileNameTermsDb = { - d = 0x7fcfa6c7c9a0 }, - docXAttrTermsDb = {d = 0x7fcfa6c7c9a0 }, - docTimeDb = {d = 0x7fcfa6c7c9a0 }, - mtimeDb = {d = 0x7fcfa6c7c9a0 }, - docDataDb = {d = 0x7fcfa6c7c9a0 }, - docUrlDb = {d = 0x7fcfa6c7c9a0 }, - contentIndexingDb = {d = 0x7fcfa6c30020 }, - failedIdDb = {d = 0x7fcfa6c30020 }} -#13 0x000056225dc068a5 in WriteTransactionTest::qt_static_metacall ( - _o=0x7ffdec9cc690, _c=, _id=, - _a=) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/writetransactiontest_autogen/include/writetransactiontest.moc:94 - _t = 0x7ffdec9cc690 -#14 0x00007fcfa6b95536 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#15 0x00007fcfa7250158 in QMetaMethod::invoke (val9=..., val8=..., val7=..., - val6=..., val5=..., val4=..., val3=..., val2=..., val1=..., val0=..., - connectionType=Qt::DirectConnection, object=, - this=) - at ../../include/QtCore/../../src/corelib/kernel/qmetaobject.h:123 -No locals. -#16 QTest::TestMethods::invokeTestOnData (this=this@entry=0x7ffdec9cc5c0, - index=index@entry=1) at qtestcase.cpp:890 - invokeOk = - isBenchmark = - i = -1 - results = {d = 0x7fcfa6c30020 } - minimumTotalReached = -#17 0x00007fcfa7250b90 in QTest::TestMethods::invokeTest ( - this=this@entry=0x7ffdec9cc5c0, index=index@entry=1, data=data@entry=0x0, - watchDog=watchDog@entry=0x7fcfa723a900) at qtestcase.cpp:1071 - curDataIndex = 0 - dataCount = 0 - foundFunction = true - benchmarkData = {static current = 0x7ffdec9cc200, result = {context = { - slotName = {static null = {}, - d = 0x7fcfa6c30020 }, tag = { - static null = {}, - d = 0x7fcfa6c30020 }, - checkpointIndex = -1}, value = -1, iterations = -1, - metric = QTest::FramesPerSecond, setByMacro = true, - valid = false}, resultAccepted = false, runOnce = false, - iterationCount = 1} - name = @0x7ffdec9cc1e8: { - d = 0x56225dc10a38 } - member = "testAddDocumentTwoDocuments_data()\000\000\000\000\000\000]C\232\246\317\177\000\000 X&\247\317\177\000\000hÜ\354\375\177\000\000\a\000\000\000\000\000\000\000\224\275\232\246\317\177\000\000\260\302\234\354\375\177\000\000\235)j\247\317\177\000\000\020Ĝ\354\375\177\000\000 Ü\354\375\177\000\000\220Ü\354\375\177\000\000\366\212n\247\317\177\000\000 \033\222\247\317\177\000\000\016\212n\247\317\177\000\000\b\n\301]\"V\000\000\000\034\222\247\317\177\000\000\000А\247\317\177\000\000\361yn\247\317\177\000\000P[\222\247\317\177\000\000\000\000\000\000\000\000\000\000\002", '\000' ... - table = {d = 0x7fcfa3821d60} - gTable = - curGlobalDataIndex = -#18 0x00007fcfa72511e1 in QTest::TestMethods::invokeTests ( - this=this@entry=0x7ffdec9cc5c0, testObject=testObject@entry=0x7ffdec9cc690) - at qtestcase.cpp:1378 - data = 0x0 - ok = - i = 1 - count = 5 - previousFailed = - metaObject = - watchDog = {d = 0x7fcfa723a900} -#19 0x00007fcfa7251727 in QTest::qExec (testObject=0x7ffdec9cc690, - argc=, argv=0x7ffdec9cc738) at qtestcase.cpp:1793 - handler = {d = 0x7fcfa5ae3140} - commandLineMethods = { >> = { - _M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x0, - _M_finish = 0x0, _M_end_of_storage = 0x0}}, } - test = {m_initTestCaseMethod = {mobj = 0x0, handle = 0}, - m_initTestCaseDataMethod = {mobj = 0x0, handle = 0}, - m_cleanupTestCaseMethod = {mobj = 0x0, handle = 0}, m_initMethod = { - mobj = 0x56225de11a40 , - handle = 14}, m_cleanupMethod = { - mobj = 0x56225de11a40 , - handle = 19}, - m_methods = { >> = { - _M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, - _M_start = 0x7fcfa723a500, _M_finish = 0x7fcfa723a550, - _M_end_of_storage = 0x7fcfa723a5c0}}, }} - metaObject = - benchmarkData = {static current = 0x7ffdec9cc580, - measurer = 0x7fcfa723a1c0, context = {slotName = { - static null = {}, d = 0x7fcfa3821f60}, tag = { - static null = {}, - d = 0x7fcfa6c2ffc0 }, checkpointIndex = -1}, - walltimeMinimum = -1, iterationCount = -1, - medianIterationCount = -1, createChart = false, - verboseOutput = false, callgrindOutFileBase = { - static null = {}, - d = 0x7fcfa6c30020 }, minimumTotal = -1, - mode_ = QBenchmarkGlobalData::WallTime} - callgrindChildExitCode = 0 -#20 0x000056225dc03155 in main (argc=, argv=0x7ffdec9cc738) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/integration/writetransactiontest.cpp:238 - app = - tc = { = {}, static staticMetaObject = {d = { - superdata = 0x7fcfa6fd7660 , - stringdata = 0x56225dc109c0 , data = 0x56225dc108c0 , - static_metacall = 0x56225dc06770 , relatedMetaObjects = 0x0, - extradata = 0x0}}, dir = 0x7fcfa38211e0, db = 0x7fcfa3821da0} -Detaching from program: /usr/src/packages/user/baloo/src/baloo-5.38.0/bin/writetransactiontest, process 5486 -========= End of stack trace ============== -QFATAL : WriteTransactionTest::testAddDocumentTwoDocuments() Received signal 11 - Function time: 66ms Total time: 152ms -FAIL! : WriteTransactionTest::testAddDocumentTwoDocuments() Received a fatal error. - Loc: [Unknown file(0)] -Totals: 2 passed, 1 failed, 0 skipped, 0 blacklisted, 658ms -********* Finished testing of WriteTransactionTest ********* - - Start 6: doctermscodectest - 6/38 Test #6: doctermscodectest ................ Passed 0.00 sec - Start 7: postingcodectest - 7/38 Test #7: postingcodectest ................. Passed 0.00 sec - Start 8: positioncodectest - 8/38 Test #8: positioncodectest ................ Passed 0.01 sec - Start 9: positiondbtest - 9/38 Test #9: positiondbtest ................... Passed 0.00 sec - Start 10: postingdbtest -10/38 Test #10: postingdbtest .................... Passed 0.00 sec - Start 11: documentdbtest -11/38 Test #11: documentdbtest ................... Passed 0.00 sec - Start 12: documenturldbtest -12/38 Test #12: documenturldbtest ................ Passed 0.01 sec - Start 13: documentiddbtest -13/38 Test #13: documentiddbtest ................. Passed 0.00 sec - Start 14: documentdatadbtest -14/38 Test #14: documentdatadbtest ............... Passed 0.00 sec - Start 15: documenttimedbtest -15/38 Test #15: documenttimedbtest ............... Passed 0.01 sec - Start 16: idtreedbtest -16/38 Test #16: idtreedbtest ..................... Passed 0.00 sec - Start 17: idfilenamedbtest -17/38 Test #17: idfilenamedbtest ................. Passed 0.00 sec - Start 18: mtimedbtest -18/38 Test #18: mtimedbtest ...................... Passed 0.00 sec - Start 19: termgeneratortest -19/38 Test #19: termgeneratortest ................ Passed 0.00 sec - Start 20: queryparsertest -20/38 Test #20: queryparsertest .................. Passed 0.00 sec - Start 21: andpostingiteratortest -21/38 Test #21: andpostingiteratortest ........... Passed 0.00 sec - Start 22: orpostingiteratortest -22/38 Test #22: orpostingiteratortest ............ Passed 0.00 sec - Start 23: phraseanditeratortest -23/38 Test #23: phraseanditeratortest ............ Passed 0.00 sec - Start 24: transactiontest -24/38 Test #24: transactiontest .................. Passed 0.08 sec - Start 25: kinotifytest -25/38 Test #25: kinotifytest ..................... Passed 0.52 sec - Start 26: pendingfilequeuetest -26/38 Test #26: pendingfilequeuetest ............. Passed 6.97 sec - Start 27: fileindexerconfigtest -27/38 Test #27: fileindexerconfigtest ............ Passed 0.30 sec - Start 28: basicindexingjobtest -28/38 Test #28: basicindexingjobtest ............. Passed 0.00 sec - Start 29: regularexpcachebenchmark -29/38 Test #29: regularexpcachebenchmark ......... Passed 0.30 sec - Start 30: filtereddiriteratortest -30/38 Test #30: filtereddiriteratortest .......... Passed 0.23 sec - Start 31: unindexedfileiteratortest -31/38 Test #31: unindexedfileiteratortest ........ Passed 0.00 sec - Start 32: metadatamovertest -32/38 Test #32: metadatamovertest ................ Passed 0.49 sec - Start 33: fileinfotest -33/38 Test #33: fileinfotest ..................... Passed 0.00 sec - Start 34: filewatchtest -34/38 Test #34: filewatchtest .................... Passed 0.12 sec - Start 35: queryserializationtest -35/38 Test #35: queryserializationtest ........... Passed 0.02 sec - Start 36: filemonitortest -36/38 Test #36: filemonitortest ..................***Exception: Other301.93 sec -********* Start testing of FileMonitorTest ********* -Config: Using QtTest library 5.9.1, Qt 5.9.1 (x86_64-little_endian-lp64 shared (dynamic) release build; by GCC 6.4.0) -PASS : FileMonitorTest::initTestCase() - -========= Received signal, dumping stack ============== -GNU gdb (GDB) 7.12.1 -Copyright (C) 2017 Free Software Foundation, Inc. -License GPLv3+: GNU GPL version 3 or later -This is free software: you are free to change and redistribute it. -There is NO WARRANTY, to the extent permitted by law. Type "show copying" -and "show warranty" for details. -This GDB was configured as "x86_64-foxkit-linux-musl". -Type "show configuration" for configuration details. -For bug reporting instructions, please see: -. -Find the GDB manual and other documentation resources online at: -. -For help, type "help". -Type "apropos word" to search for commands related to "word". -Attaching to process 5557 -[New LWP 5558] -[New LWP 5559] -__cp_end () at src/thread/x86_64/syscall_cp.s:29 -(gdb) -Thread 3 (LWP 5559): -#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29 -No locals. -#1 0x00007fd215ec69f1 in __syscall_cp_c (nr=7, u=, - v=, w=, x=, - y=, z=0) at src/thread/pthread_cancel.c:35 - r = - st = -#2 0x00007fd215eb61c3 in poll (fds=, n=, - timeout=) at src/select/poll.c:10 -No locals. -#3 0x00007fd212a5dcb5 in g_main_context_poll (priority=, - n_fds=1, fds=0x55e0837e59e0, timeout=, - context=0x7fd212a12d60) at gmain.c:4187 - ret = - errsv = - poll_func = 0x7fd212a6e0a0 -#4 g_main_context_iterate (context=context@entry=0x7fd212a12d60, - block=block@entry=1, dispatch=dispatch@entry=1, self=) - at gmain.c:3881 - max_priority = 2147483647 - timeout = -1 - some_ready = - nfds = 1 - allocated_nfds = - fds = 0x55e0837e59e0 -#5 0x00007fd212a5dddf in g_main_context_iteration (context=0x7fd212a12d60, - may_block=1) at gmain.c:3947 - retval = -#6 0x00007fd21514c9af in QEventDispatcherGlib::processEvents(QFlags) () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#7 0x00007fd2150f4f2a in QEventLoop::exec(QFlags) () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#8 0x00007fd214f0e063 in QThread::exec() () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#9 0x00007fd21557304d in QDBusConnectionManager::run ( - this=0x7fd2157e90a0 <(anonymous namespace)::Q_QGS__q_manager::innerFunction()::holder>) at qdbusconnection.cpp:178 - locker = -#10 0x00007fd214f13058 in QThreadPrivate::start(void*) () - from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#11 0x00007fd215ec77a0 in start (p=0x7fd2160e9ae8) - at src/thread/pthread_create.c:145 - self = 0x7fd2160e9ae8 -#12 0x00007fd215ed3e04 in __clone () at src/thread/x86_64/clone.s:21 -No locals. -Backtrace stopped: frame did not save the PC - -Thread 2 (LWP 5558): -#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29 -No locals. -#1 0x00007fd215ec69f1 in __syscall_cp_c (nr=61, u=, - v=, w=, x=, - y=, z=0) at src/thread/pthread_cancel.c:35 - r = - st = -#2 0x00007fd215eacb06 in waitpid (pid=, - status=status@entry=0x7fd21610028c, options=options@entry=0) - at src/process/waitpid.c:7 -No locals. -#3 0x00007fd215eac9ea in system ( - cmd=0x7fd216100720 "gdb --pid 5557 2>/dev/null <}}, sa_flags = 0, - sa_restorer = 0x0} - oldint = {__sa_handler = { - sa_handler = 0x7fd215a27a70 , sa_sigaction = 0x7fd215a27a70 }, - sa_mask = {__bits = {21711, 0, 140540235644504, 140540290008272, - 140540287429115, 140540290018464, 1, 101, 160, 140540290008336, - 104, 140540165574784, 63, 0, 140540235644504, 8}}, - sa_flags = -1946157056, sa_restorer = 0x66} - oldquit = {__sa_handler = { - sa_handler = 0x7fd215a27a70 , sa_sigaction = 0x7fd215a27a70 }, - sa_mask = {__bits = {21711, 101, 140540235644504, 101, - 140540290008584, 140540290008432, 140540287425282, - 140540165574928, 116315483584, 64424509439, 101, 1, - 140540165574768, 140540165574928, 0, 140540290008544}}, - sa_flags = -1946157056, sa_restorer = 0x55e0837e51a0} - status = 32512 - ret = 0 - attr = {__flags = 12, __pgrp = 0, __def = {__bits = {6, 44, 5, - 140540271215453, 4, 140540290008074, 140540290008144, - 140540271727754, 140540290008144, 140540290008416, 1, - 140540271634076, 3472328296227680304, 734139722786418736, - 664962007705282899, 3472328296227680304}}, __mask = {__bits = { - 0, 1, 512, 140540290017944, 140540290007872, 140540287428111, - 3683979817539084297, 42949672961, 18446744073709551614, 64, - 2308440353445801302, 2319979645499351072, 4921678398310990443, - 0, 8, 140540290008408}}, __prio = 0, __pol = 0, __pad = { - 0 }} -#4 0x00007fd215a279ac in stackTrace () at qtestcase.cpp:222 - cmd = "gdb --pid 5557 2>/dev/null < -#6 0x00007fd215a3103b in QTest::WatchDog::run (this=0x55e0837e5180) - at qtestcase.cpp:991 - locker = {val = 94422767128985} -#7 0x00007fd214f13058 in QThreadPrivate::start(void*) () - from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#8 0x00007fd215ec77a0 in start (p=0x7fd216100ae8) - at src/thread/pthread_create.c:145 - self = 0x7fd216100ae8 -#9 0x00007fd215ed3e04 in __clone () at src/thread/x86_64/clone.s:21 -No locals. -Backtrace stopped: frame did not save the PC - -Thread 1 (LWP 5557): -#0 __cp_end () at src/thread/x86_64/syscall_cp.s:29 -No locals. -#1 0x00007fd215ec69f1 in __syscall_cp_c (nr=7, u=, - v=, w=, x=, - y=, z=0) at src/thread/pthread_cancel.c:35 - r = - st = -#2 0x00007fd215eb61c3 in poll (fds=, n=, - timeout=) at src/select/poll.c:10 -No locals. -#3 0x00007fd212a5dcb5 in g_main_context_poll (priority=, - n_fds=1, fds=0x7fd20ffc5fe0, timeout=, - context=0x7fd213ee4b20) at gmain.c:4187 - ret = - errsv = - poll_func = 0x7fd212a6e0a0 -#4 g_main_context_iterate (context=context@entry=0x7fd213ee4b20, - block=block@entry=1, dispatch=dispatch@entry=1, self=) - at gmain.c:3881 - max_priority = 2147483647 - timeout = -1 - some_ready = - nfds = 1 - allocated_nfds = - fds = 0x7fd20ffc5fe0 -#5 0x00007fd212a5dddf in g_main_context_iteration (context=0x7fd213ee4b20, - may_block=1) at gmain.c:3947 - retval = -#6 0x00007fd21514c9af in QEventDispatcherGlib::processEvents(QFlags) () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#7 0x00007fd2150f4f2a in QEventLoop::exec(QFlags) () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#8 0x000055e0835e18fd in FileMonitorTest::test (this=) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/unit/lib/filemonitortest.cpp:87 - file = {static null = {}, d = 0x7fd2131c1f40} - spy = { = {}, >> = { >> = {}, {p = { - static shared_null = {ref = {atomic = { - _q_value = {> = { - static _S_alignment = 4, - _M_i = -1}, }}}, alloc = 0, - begin = 0, end = 0, array = {0x0}}, - d = 0x7fd2151a24c0 }, - d = 0x7fd2151a24c0 }}, sig = { - d = 0x7fd20ec80d80}, args = {d = 0x7fd20ec80f20}, - m_loop = { = {}, static staticMetaObject = { - d = {superdata = 0x7fd215547660 , - stringdata = 0x7fd215a493e0 , data = 0x7fd215a49380 , - static_metacall = 0x7fd215a440c0 , relatedMetaObjects = 0x0, - extradata = 0x0}}, inLoop = false, _timeout = false, - timerId = -1, loop = 0x0}, m_waiting = false} - message = {d_ptr = 0x7fd20ec80f60} - list = {> = {}, {p = { - static shared_null = {ref = {atomic = { - _q_value = {> = { - static _S_alignment = 4, - _M_i = -1}, }}}, alloc = 0, begin = 0, - end = 0, array = {0x0}}, d = 0x7fd212d27c40}, - d = 0x7fd212d27c40}} - vl = {> = {}, {p = { - static shared_null = {ref = {atomic = { - _q_value = {> = { - static _S_alignment = 4, - _M_i = -1}, }}}, alloc = 0, begin = 0, - end = 0, array = {0x0}}, d = 0x7fd212d27c80}, - d = 0x7fd212d27c80}} - loop = - variantList = {> = {}, { - p = {static shared_null = {ref = {atomic = { - _q_value = {> = { - static _S_alignment = 4, - _M_i = -1}, }}}, alloc = 0, begin = 0, - end = 0, array = {0x0}}, d = 0x7fd20ec80d80}, - d = 0x7fd20ec80d80}} - var = {d = {data = {c = 96 '`', uc = 96 '`', s = 4448, sc = 96 '`', - us = 4448, i = 320606560, u = 320606560, l = 140540240466272, - ul = 140540240466272, b = 96, d = 6.9436104672652768e-310, - f = 1.96985347e-27, real = 6.9436104672652768e-310, - ll = 140540240466272, ull = 140540240466272, o = 0x7fd2131c1160, - ptr = 0x7fd2131c1160, shared = 0x7fd2131c1160}, type = 0, - is_shared = 0, is_null = 0}} -#9 0x00007fd215105536 in QMetaMethod::invoke(QObject*, Qt::ConnectionType, QGenericReturnArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument, QGenericArgument) const () from /usr/lib/libQt5Core.so.5 -No symbol table info available. -#10 0x00007fd215a2f158 in QMetaMethod::invoke (val9=..., val8=..., val7=..., - val6=..., val5=..., val4=..., val3=..., val2=..., val1=..., val0=..., - connectionType=Qt::DirectConnection, object=, - this=) - at ../../include/QtCore/../../src/corelib/kernel/qmetaobject.h:123 -No locals. -#11 QTest::TestMethods::invokeTestOnData (this=this@entry=0x7ffdba11ab40, - index=index@entry=0) at qtestcase.cpp:890 - invokeOk = - isBenchmark = - i = -1 - results = {d = 0x7fd2151a0020 } - minimumTotalReached = -#12 0x00007fd215a2fb90 in QTest::TestMethods::invokeTest ( - this=this@entry=0x7ffdba11ab40, index=index@entry=0, data=data@entry=0x0, - watchDog=watchDog@entry=0x55e0837e5180) at qtestcase.cpp:1071 - curDataIndex = 0 - dataCount = 0 - foundFunction = true - benchmarkData = {static current = 0x7ffdba11a780, result = {context = { - slotName = {static null = {}, - d = 0x7fd2151a0020 }, tag = { - static null = {}, - d = 0x7fd2151a0020 }, - checkpointIndex = -1}, value = -1, iterations = -1, - metric = QTest::FramesPerSecond, setByMacro = true, - valid = false}, resultAccepted = false, runOnce = false, - iterationCount = 1} - name = @0x7ffdba11a768: { - d = 0x55e0835e33d8 } - member = "test_data()\000\000\000\000\000\350\250\021\272\375\177\000\000 H\244\025\322\177\000\000\000\000\000\000\000\000\000\000]C\361\024\322\177\000\000 H\244\025\322\177\000\000\350\250\021\272\375\177\000\000P\250\021\272\375\177\000\000\002\233\350\025\322\177\000\000\260Q~\203\340U\000\000\235\031\350\025\322\177\000\000\220\251\021\272\375\177\000\000\240\250\021\272\375\177\000\000\020\251\021\272\375\177\000\000\366z\354\025\322\177\000\000 \v\020\026\322\177\000\000\016z\354\025\322\177\000\000\300\250\021\272\375\177\000\000\000\f\020\026\322\177\000\000\000\300\016\026\322\177\000\000\361i\354\025\322\177\000\000PK\020\026\322\177\000\000\000\000\000\000\000\000\000\000\002", '\000' ... - table = {d = 0x7fd214134340} - gTable = - curGlobalDataIndex = -#13 0x00007fd215a301e1 in QTest::TestMethods::invokeTests ( - this=this@entry=0x7ffdba11ab40, testObject=testObject@entry=0x7ffdba11ac10) - at qtestcase.cpp:1378 - data = 0x0 - ok = - i = 0 - count = 8 - previousFailed = - metaObject = - watchDog = {d = 0x55e0837e5180} -#14 0x00007fd215a30727 in QTest::qExec (testObject=0x7ffdba11ac10, - argc=, argv=0x7ffdba11aca8) at qtestcase.cpp:1793 - handler = {d = 0x55e0837e50e0} - commandLineMethods = { >> = { - _M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, _M_start = 0x0, - _M_finish = 0x0, _M_end_of_storage = 0x0}}, } - test = {m_initTestCaseMethod = {mobj = 0x0, handle = 0}, - m_initTestCaseDataMethod = {mobj = 0x0, handle = 0}, - m_cleanupTestCaseMethod = {mobj = 0x0, handle = 0}, m_initMethod = { - mobj = 0x55e0837e4a80 , - handle = 19}, m_cleanupMethod = { - mobj = 0x55e0837e4a80 , - handle = 24}, - m_methods = { >> = { - _M_impl = {> = {<__gnu_cxx::new_allocator> = {}, }, - _M_start = 0x55e0837e58a0, _M_finish = 0x55e0837e5920, - _M_end_of_storage = 0x55e0837e5990}}, }} - metaObject = - benchmarkData = {static current = 0x7ffdba11ab00, - measurer = 0x7fd212faafa0, context = {slotName = { - static null = {}, d = 0x7fd214134300}, tag = { - static null = {}, - d = 0x7fd21519ffc0 }, checkpointIndex = -1}, - walltimeMinimum = -1, iterationCount = -1, - medianIterationCount = -1, createChart = false, - verboseOutput = false, callgrindOutFileBase = { - static null = {}, - d = 0x7fd2151a0020 }, minimumTotal = -1, - mode_ = QBenchmarkGlobalData::WallTime} - callgrindChildExitCode = 0 -#15 0x000055e0835e00a5 in main (argc=, argv=0x7ffdba11aca8) - at /usr/src/packages/user/baloo/src/baloo-5.38.0/autotests/unit/lib/filemonitortest.cpp:204 - app = - tc = { = {}, static staticMetaObject = {d = { - superdata = 0x7fd215547660 , - stringdata = 0x55e0835e33c0 , data = 0x55e0835e3280 , - static_metacall = 0x55e0835e1f80 , relatedMetaObjects = 0x0, - extradata = 0x0}}, m_sut = 0x7fd214134380} -Detaching from program: /usr/src/packages/user/baloo/src/baloo-5.38.0/bin/filemonitortest, process 5557 -========= End of stack trace ============== -QFATAL : FileMonitorTest::test() Test function timed out -FAIL! : FileMonitorTest::test() Received a fatal error. - Loc: [Unknown file(0)] -Totals: 1 passed, 1 failed, 0 skipped, 0 blacklisted, 301914ms -********* Finished testing of FileMonitorTest ********* - - Start 37: advancedqueryparsertest -37/38 Test #37: advancedqueryparsertest .......... Passed 0.00 sec - Start 38: filefetchjobtest -38/38 Test #38: filefetchjobtest ................. Passed 0.12 sec - -92% tests passed, 3 tests failed out of 38 - -Total Test time (real) = 313.83 sec - -The following tests FAILED: - 4 - querytest (OTHER_FAULT) - 5 - writetransactiontest (OTHER_FAULT) - 36 - filemonitortest (OTHER_FAULT) -Errors while running CTest ->>> ERROR: baloo*: check failed -]0;>>> ERROR: baloo: all failed -]0; \ No newline at end of file diff --git a/user/blinken/test.patch b/user/blinken/test.patch deleted file mode 100644 index d24c03491..000000000 --- a/user/blinken/test.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 2a1b077..019efcd 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -17,7 +17,7 @@ find_package (KF5 REQUIRED COMPONENTS - I18n XmlGui GuiAddons DocTools DBusAddons Crash - ) - --find_package (Phonon4Qt5) -+find_package (Phonon4Qt5 REQUIRED) - - include(KDEInstallDirs) - include(KDECompilerSettings NO_POLICY_SCOPE) diff --git a/user/digikam/digikam6.patch b/user/digikam/digikam6.patch deleted file mode 100644 index 58c0f0d28..000000000 --- a/user/digikam/digikam6.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/user/digikam/APKBUILD b/user/digikam/APKBUILD -index 3cdf9c37..bfffed9f 100644 ---- a/user/digikam/APKBUILD -+++ b/user/digikam/APKBUILD -@@ -1,7 +1,7 @@ - # Contributor: A. Wilcox - # Maintainer: A. Wilcox - pkgname=digikam --pkgver=5.9.0 -+pkgver=6.0.0 - pkgrel=0 - pkgdesc="Professional photo management and digital camera import" - url="https://www.digikam.org/" -@@ -20,7 +20,7 @@ makedepends="cmake extra-cmake-modules qt5-qtbase-dev qt5-qtxmlpatterns-dev - opencv opencv-dev" - # YES, both are needed. opencv-dev only pulls in -libs; CMake module in opencv - subpackages="$pkgname-doc $pkgname-lang" --source="https://download.kde.org/stable/digikam/digikam-$pkgver.tar.xz" -+source="https://download.kde.org/stable/digikam/$pkgver/digikam-$pkgver.tar.xz" - - build() { - cd "$builddir" -@@ -37,7 +37,6 @@ build() { - -DENABLE_APPSTYLES=ON \ - -DENABLE_MYSQLSUPPORT=OFF \ - -DEIGEN3_INCLUDE_DIR=/usr/include/eigen3 \ -- -DENABLE_OPENCV3=ON \ - -DBUILD_TESTING=OFF \ - ${CMAKE_CROSSOPTS} - make -@@ -48,4 +47,4 @@ package() { - make DESTDIR="$pkgdir" install - } - --sha512sums="f6134a957dcd11343e34f0bc90f5560a28ed205c47d2ffd76a5418a4c63f76706045e9179c47f1448304b59081051b524f7a6847c3c1dcee4673047ce5d90e63 digikam-5.9.0.tar.xz" -+sha512sums="b8a70dde0b3838c4ccaffa3324eacb0541642e82177c90a1f8fcbd9691c194369f2760c4ea56c58b7ae049fc1a748d5d88cb537c62e3700ed5e21bad44d01adb digikam-6.0.0.tar.xz" diff --git a/user/evince/CVE-2019-11459.patch b/user/evince/CVE-2019-11459.patch deleted file mode 100644 index b331a0c30..000000000 --- a/user/evince/CVE-2019-11459.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 234f034a4d15cd46dd556f4945f99fbd57ef5f15 Mon Sep 17 00:00:00 2001 -From: Jason Crain -Date: Mon, 15 Apr 2019 23:06:36 -0600 -Subject: [PATCH] tiff: Handle failure from TIFFReadRGBAImageOriented - -The TIFFReadRGBAImageOriented function returns zero if it was unable to -read the image. Return NULL in this case instead of displaying -uninitialized memory. - -Fixes #1129 ---- - backend/tiff/tiff-document.c | 28 ++++++++++++++++++---------- - 1 file changed, 18 insertions(+), 10 deletions(-) - -diff --git a/backend/tiff/tiff-document.c b/backend/tiff/tiff-document.c -index 7715031b..38bb3bd8 100644 ---- a/backend/tiff/tiff-document.c -+++ b/backend/tiff/tiff-document.c -@@ -292,18 +292,22 @@ tiff_document_render (EvDocument *document, - g_warning("Failed to allocate memory for rendering."); - return NULL; - } -- -+ -+ if (!TIFFReadRGBAImageOriented (tiff_document->tiff, -+ width, height, -+ (uint32 *)pixels, -+ orientation, 0)) { -+ g_warning ("Failed to read TIFF image."); -+ g_free (pixels); -+ return NULL; -+ } -+ - surface = cairo_image_surface_create_for_data (pixels, - CAIRO_FORMAT_RGB24, - width, height, - rowstride); - cairo_surface_set_user_data (surface, &key, - pixels, (cairo_destroy_func_t)g_free); -- -- TIFFReadRGBAImageOriented (tiff_document->tiff, -- width, height, -- (uint32 *)pixels, -- orientation, 0); - pop_handlers (); - - /* Convert the format returned by libtiff to -@@ -384,13 +388,17 @@ tiff_document_get_thumbnail (EvDocument *document, - if (!pixels) - return NULL; - -+ if (!TIFFReadRGBAImageOriented (tiff_document->tiff, -+ width, height, -+ (uint32 *)pixels, -+ ORIENTATION_TOPLEFT, 0)) { -+ g_free (pixels); -+ return NULL; -+ } -+ - pixbuf = gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, TRUE, 8, - width, height, rowstride, - (GdkPixbufDestroyNotify) g_free, NULL); -- TIFFReadRGBAImageOriented (tiff_document->tiff, -- width, height, -- (uint32 *)pixels, -- ORIENTATION_TOPLEFT, 0); - pop_handlers (); - - ev_render_context_compute_scaled_size (rc, width, height * (x_res / y_res), --- -2.21.0 - diff --git a/user/fts/00-static-and-shared-libs.patch b/user/fts/00-static-and-shared-libs.patch deleted file mode 100644 index b65b1d0d6..000000000 --- a/user/fts/00-static-and-shared-libs.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff --git a/.gitignore b/.gitignore -index 528fe32..663e6bb 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -10,4 +10,5 @@ config.status - configure - depcomp - install-sh -+ltmain.sh - missing -diff --git a/Makefile.am b/Makefile.am -index aa93562..f09994e 100644 ---- a/Makefile.am -+++ b/Makefile.am -@@ -1,5 +1,5 @@ - ## Makefile.am - procress this file with automake to produce Makefile.in --lib_LIBRARIES = libfts.a --libfts_a_SOURCES = fts.c --libfts_a_HEADERS = fts.h --libfts_adir = $(includedir) -+lib_LTLIBRARIES = libfts.la -+libfts_la_SOURCES = fts.c -+libfts_la_HEADERS = fts.h -+libfts_ladir = $(includedir) -diff --git a/bootstrap.sh b/bootstrap.sh -index 9e026b5..cd4a585 100755 ---- a/bootstrap.sh -+++ b/bootstrap.sh -@@ -1,4 +1,5 @@ - #!/bin/sh -+libtoolize - aclocal - autoconf - automake --add-missing -diff --git a/configure.ac b/configure.ac -index 28dd6c6..6f12859 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -7,7 +7,9 @@ AC_INIT([fts], [1.1], [Jürgen Buchmüller ]) - AM_INIT_AUTOMAKE([1.15]) - - AC_PROG_CC --AC_PROG_RANLIB -+AC_PROG_LIBTOOL -+ -+LT_INIT - - AC_CHECK_HEADERS(assert.h dirent.h errno.h fcntl.h stdlib.h string.h unistd.h sys/param.h sys/stat.h) - diff --git a/user/gcompat/no-utmp.patch b/user/gcompat/no-utmp.patch deleted file mode 100644 index c5d2251b1..000000000 --- a/user/gcompat/no-utmp.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- gcompat-0.3.0/libgcompat/utmp.c.old 2018-09-05 02:26:02.850000000 +0000 -+++ gcompat-0.3.0/libgcompat/utmp.c 2018-09-21 21:39:17.350000000 +0000 -@@ -1,12 +1,11 @@ - #include /* NULL */ --#include /* struct utmp */ - - /** - * Get user accounting database entries. - * - * LSB 5.0: LSB-Core-generic/baselib-getutent-r-3.html - */ --int getutent_r(struct utmp *buffer, struct utmp **result) -+int getutent_r(void *buffer, void **result) - { - /* musl does not implement getutent(). */ - *result = NULL; diff --git a/user/glib-networking/proxy-test.patch b/user/glib-networking/proxy-test.patch deleted file mode 100644 index 2cab5d9f6..000000000 --- a/user/glib-networking/proxy-test.patch +++ /dev/null @@ -1,13 +0,0 @@ ---- ./Makefile.am.orig -+++ ./Makefile.am -@@ -11,9 +11,9 @@ - - if HAVE_GNOME_PROXY - SUBDIRS += proxy/gnome -+SUBDIRS += proxy/tests - endif - --SUBDIRS += proxy/tests - - if HAVE_GNUTLS - SUBDIRS += tls/gnutls diff --git a/user/gtk+2.0/automake.patch b/user/gtk+2.0/automake.patch deleted file mode 100644 index 106597974..000000000 --- a/user/gtk+2.0/automake.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- ./configure.in.orig 2012-12-31 14:40:30.297439517 +0000 -+++ ./configure.in 2012-12-31 14:40:51.587629835 +0000 -@@ -51,7 +51,7 @@ - cflags_set=${CFLAGS+set} - - AM_INIT_AUTOMAKE([no-define -Wno-portability dist-bzip2]) --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADER(config.h) - - # Support silent build rules, requires at least automake-1.11. Enable - # by either passing --enable-silent-rules to configure or passing V=0 -@@ -300,7 +300,6 @@ - - # Checks for programs. - AC_ISC_POSIX --AM_PROG_CC_STDC - AM_PROG_CC_C_O - AC_PROG_INSTALL - AC_PROG_MAKE_SET diff --git a/user/gtk+3.0/releng-what-releng.patch b/user/gtk+3.0/releng-what-releng.patch deleted file mode 100644 index 5a1091de3..000000000 --- a/user/gtk+3.0/releng-what-releng.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Nurd gtk+-3.24.2/docs/tools/shooter.c gtk+-3.24.2.new/docs/tools/shooter.c ---- gtk+-3.24.2/docs/tools/shooter.c 2018-12-12 11:46:09.000000000 -0600 -+++ gtk+-3.24.2.new/docs/tools/shooter.c 2019-01-10 20:55:41.402365069 -0600 -@@ -170,7 +170,7 @@ - y_orig = 0; - } - -- if (x_orig + width > gdk_screen_get_width (gdk_screen_get_dfeault ())) -+ if (x_orig + width > gdk_screen_get_width (gdk_screen_get_default ())) - width = gdk_screen_width () - x_orig; - - if (y_orig + height > gdk_screen_get_height (gdk_screen_get_default ())) diff --git a/user/gucharmap/unicode-12.1.patch b/user/gucharmap/unicode-12.1.patch deleted file mode 100644 index 60dbb7af5..000000000 --- a/user/gucharmap/unicode-12.1.patch +++ /dev/null @@ -1,25 +0,0 @@ -diff -Naur gucharmap-12.0.1-orig/gucharmap/gucharmap-unicode-info.h gucharmap-12.0.1/gucharmap/gucharmap-unicode-info.h ---- gucharmap-12.0.1-orig/gucharmap/gucharmap-unicode-info.h 2019-03-07 21:21:27.000000000 +0100 -+++ gucharmap-12.0.1/gucharmap/gucharmap-unicode-info.h 2019-11-14 17:43:55.007583238 +0100 -@@ -51,7 +51,8 @@ - GUCHARMAP_UNICODE_VERSION_10_0, - GUCHARMAP_UNICODE_VERSION_11_0, - GUCHARMAP_UNICODE_VERSION_12_0, -- GUCHARMAP_UNICODE_VERSION_LATEST = GUCHARMAP_UNICODE_VERSION_12_0 /* private, will move forward with each revision */ -+ GUCHARMAP_UNICODE_VERSION_12_1, -+ GUCHARMAP_UNICODE_VERSION_LATEST = GUCHARMAP_UNICODE_VERSION_12_1 /* private, will move forward with each revision */ - } GucharmapUnicodeVersion; - - /* return values are read-only */ -diff -Naur gucharmap-12.0.1-orig/gucharmap/gucharmap-window.c gucharmap-12.0.1/gucharmap/gucharmap-window.c ---- gucharmap-12.0.1-orig/gucharmap/gucharmap-window.c 2019-03-07 21:21:27.000000000 +0100 -+++ gucharmap-12.0.1/gucharmap/gucharmap-window.c 2019-11-14 17:45:11.145809820 +0100 -@@ -454,7 +454,7 @@ - gtk_show_about_dialog (GTK_WINDOW (guw), - "program-name", _("GNOME Character Map"), - "version", VERSION, -- "comments", _("Based on the Unicode Character Database 12.0.0"), -+ "comments", _("Based on the Unicode Character Database 12.1.0"), - "copyright", "Copyright © 2004 Noah Levitt\n" - "Copyright © 1991–2019 Unicode, Inc.\n" - "Copyright © 2007–2019 Christian Persch\n" diff --git a/user/irssi/fix-ridiculous-egregious-conformance-error.patch b/user/irssi/fix-ridiculous-egregious-conformance-error.patch deleted file mode 100644 index ceb707c9b..000000000 --- a/user/irssi/fix-ridiculous-egregious-conformance-error.patch +++ /dev/null @@ -1,19 +0,0 @@ ---- irssi-1.2.0/tests/fe-text/test-paste-join-multiline.c.old 2019-02-11 17:27:58.000000000 +0000 -+++ irssi-1.2.0/tests/fe-text/test-paste-join-multiline.c 2019-02-19 21:28:03.250000000 +0000 -@@ -48,13 +48,15 @@ - static void test_paste_join_multiline(const paste_join_multiline_test_case *test) - { - char *resultstr, *t1; -+ glong length; - GArray *buffer = g_array_new(FALSE, FALSE, sizeof(unichar)); - - g_test_message("Testing: %s", test->description); - g_test_message("INPUT: \"%s\"", (t1 = g_strescape(test->input, NULL))); - g_free(t1); - -- buffer->data = (char *) g_utf8_to_ucs4_fast(test->input, -1, (glong *) &buffer->len); -+ buffer->data = (char *) g_utf8_to_ucs4_fast(test->input, -1, &length); -+ buffer->len = length; - paste_buffer_join_lines(buffer); - resultstr = g_ucs4_to_utf8((unichar *) buffer->data, buffer->len, NULL, NULL, NULL); - diff --git a/user/kfilemetadata/test-mimetype.patch b/user/kfilemetadata/test-mimetype.patch deleted file mode 100644 index f76824ac5..000000000 --- a/user/kfilemetadata/test-mimetype.patch +++ /dev/null @@ -1,13 +0,0 @@ -Our version of shared-mime-info differs for the AppImage MIME type. - ---- kfilemetadata-5.65.0/autotests/extractorcoveragetest.cpp.old 2019-12-12 22:37:05.000000000 +0000 -+++ kfilemetadata-5.65.0/autotests/extractorcoveragetest.cpp 2019-12-29 15:56:30.981925832 +0000 -@@ -36,7 +36,7 @@ - m_knownFiles = { - { "test.aif", "audio/x-aifc"}, - { "test.ape", "audio/x-ape"}, -- { "test.AppImage", "application/vnd.appimage"}, -+ { "test.AppImage", "application/x-iso9660-appimage"}, - { "test_apple_systemprofiler.spx", "application/x-apple-systemprofiler+xml"}, // s-m-i < 2.0 would give "application/xml" - { "test.dot", "text/vnd.graphviz"}, - { "test.eps", "image/x-eps"}, diff --git a/user/khelpcenter/es-doc-fix.patch b/user/khelpcenter/es-doc-fix.patch deleted file mode 100644 index c9f7ed11f..000000000 --- a/user/khelpcenter/es-doc-fix.patch +++ /dev/null @@ -1,31 +0,0 @@ ---- khelpcenter-19.04.1/po/es/docs/khelpcenter/index.docbook.old 2019-05-07 00:10:08.000000000 +0000 -+++ khelpcenter-19.04.1/po/es/docs/khelpcenter/index.docbook 2019-05-13 06:10:14.989405563 +0000 -@@ -136,7 +136,7 @@ - >Instalación - - &khelpcenter; forma parte de las &applications;. Se puede encontrar en el &khelpcenter; forma parte de las applications. Se puede encontrar en el sitio de descarga del proyecto &kde; o en el paquete &khelpcenter; de su sistema operativo. - -@@ -347,7 +347,7 @@ - > - - Los «Aspectos básicos» le presentan una introducción de las numerosas características de &plasma-workspaces; y de las &applications; y describe muchas tareas comunes que puede realizar en todas las &applications;. -+>Los «Aspectos básicos» le presentan una introducción de las numerosas características de Plasma Workspaces y de las applications y describe muchas tareas comunes que puede realizar en todas las applications. - - - ---- khelpcenter-19.04.1/po/es/docs/onlinehelp/index.docbook.old 2019-05-07 00:10:08.000000000 +0000 -+++ khelpcenter-19.04.1/po/es/docs/onlinehelp/index.docbook 2019-05-13 06:13:20.309243557 +0000 -@@ -114,7 +114,7 @@ - >  - - Esta página contiene la documentación completa para los usuarios de KDE en unos 25 idiomas, tanto para la versión liberada como para la versión de desarrollo de &kde-frameworks;, &plasma-workspaces; y &applications;. -+>Esta página contiene la documentación completa para los usuarios de KDE en unos 25 idiomas, tanto para la versión liberada como para la versión de desarrollo de &kde-frameworks;, &plasma-workspaces; y applications. - - - diff --git a/user/ki18n/libintl.patch b/user/ki18n/libintl.patch deleted file mode 100644 index bbe6d1e9a..000000000 --- a/user/ki18n/libintl.patch +++ /dev/null @@ -1,116 +0,0 @@ -From e2520914c446d8646088bc3aa061b5723aa52036 Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" -Date: Wed, 20 Jul 2016 21:19:14 -0500 -Subject: [PATCH] Determine if _nl_msg_cat_cntr exists before use - -GNU gettext does not guarantee that GNU libintl will be used. This -assumption breaks the build against the musl libc. - -BUG: 365917 ---- - .gitignore | 1 + - CMakeLists.txt | 3 +++ - cmake/FindLibIntl.cmake | 3 +++ - src/config.h.in | 25 +++++++++++++++++++++++++ - src/kcatalog.cpp | 5 +++-- - 5 files changed, 35 insertions(+), 2 deletions(-) - create mode 100644 src/config.h.in - -diff --git a/.gitignore b/.gitignore -index 1a6b0c4..42a96a7 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -1 +1,2 @@ - doc-gen/ -+src/config.h -diff --git a/CMakeLists.txt b/CMakeLists.txt -index 00e4001..09dc6af 100644 ---- a/CMakeLists.txt -+++ b/CMakeLists.txt -@@ -59,6 +59,9 @@ endif() - add_subdirectory(src) - add_subdirectory(autotests) - -+configure_file("${CMAKE_CURRENT_SOURCE_DIR}/src/config.h.in" -+ "${CMAKE_CURRENT_SOURCE_DIR}/src/config.h") -+ - # create a Config.cmake and a ConfigVersion.cmake file and install them - set(CMAKECONFIG_INSTALL_DIR "${KDE_INSTALL_CMAKEPACKAGEDIR}/KF5I18n") - -diff --git a/cmake/FindLibIntl.cmake b/cmake/FindLibIntl.cmake -index cde5da8..a457112 100644 ---- a/cmake/FindLibIntl.cmake -+++ b/cmake/FindLibIntl.cmake -@@ -56,3 +56,6 @@ else() - message(STATUS "libintl is a separate library.") - find_package_handle_standard_args(LibIntl REQUIRED_VARS LibIntl_INCLUDE_DIRS LibIntl_LIBRARIES) - endif() -+ -+set(CMAKE_REQUIRED_LIBRARIES ${LibIntl_LIBRARIES}) -+check_cxx_source_compiles("extern \"C\" int _nl_msg_cat_cntr; int main(void) { ++_nl_msg_cat_cntr; return 0; }" HAVE_NL_MSG_CAT_CNTR) -diff --git a/src/config.h.in b/src/config.h.in -new file mode 100644 -index 0000000..f445f88 ---- /dev/null -+++ b/src/config.h.in -@@ -0,0 +1,25 @@ -+/* This file is part of the KDE libraries -+ Copyright (c) 2016 A. Wilcox -+ -+ This library is free software; you can redistribute it and/or -+ modify it under the terms of the GNU Library General Public -+ License as published by the Free Software Foundation; either -+ version 2 of the License, or (at your option) any later version. -+ -+ This library is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -+ Library General Public License for more details. -+ -+ You should have received a copy of the GNU Library General Public License -+ along with this library; see the file COPYING.LIB. If not, write to -+ the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, -+ Boston, MA 02110-1301, USA. -+*/ -+ -+#ifndef KF5_KI18N_CONFIG_H -+#define KF5_KI18N_CONFIG_H -+ -+#cmakedefine HAVE_NL_MSG_CAT_CNTR -+ -+#endif -diff --git a/src/kcatalog.cpp b/src/kcatalog.cpp -index 6682d62..a15e661 100644 ---- a/src/kcatalog.cpp -+++ b/src/kcatalog.cpp -@@ -21,6 +21,7 @@ - #include - #include - #include "gettext.h" -+#include "config.h" - - #include - #include -@@ -41,7 +42,7 @@ - #endif - #endif - --#if defined(__USE_GNU_GETTEXT) -+#if defined(HAVE_NL_MSG_CAT_CNTR) - extern "C" int Q_DECL_IMPORT _nl_msg_cat_cntr; - #endif - -@@ -171,9 +172,9 @@ void KCatalogPrivate::setupGettextEnv() - //qDebug() << "bindtextdomain" << domain << localeDir; - bindtextdomain(domain, localeDir); - -+#if defined(HAVE_NL_MSG_CAT_CNTR) - // Magic to make sure GNU Gettext doesn't use stale cached translation - // from previous language. --#if defined(__USE_GNU_GETTEXT) - ++_nl_msg_cat_cntr; - #endif - } --- -2.9.2 - diff --git a/user/kscreenlocker/optional-wayland.patch b/user/kscreenlocker/optional-wayland.patch deleted file mode 100644 index eee3cb10e..000000000 --- a/user/kscreenlocker/optional-wayland.patch +++ /dev/null @@ -1,448 +0,0 @@ ---- kscreenlocker-5.12.9/CMakeLists.txt.old 2019-09-10 10:30:52.000000000 +0000 -+++ kscreenlocker-5.12.9/CMakeLists.txt 2019-12-29 16:39:31.945860585 +0000 -@@ -73,16 +73,16 @@ - - find_package(Qt5 ${QT_MIN_VERSION} CONFIG REQUIRED COMPONENTS X11Extras) - --find_package(KF5Wayland CONFIG REQUIRED) -+find_package(KF5Wayland) - set_package_properties(KF5Wayland PROPERTIES -- TYPE REQUIRED -- PURPOSE "Required for building screenlocker") -+ TYPE OPTIONAL -+ PURPOSE "Required for building Wayland screenlocker") - find_package(WaylandScanner) - find_package(Wayland 1.3 COMPONENTS Client Server) - - set_package_properties(Wayland PROPERTIES -- TYPE REQUIRED -- PURPOSE "Required for building screenlocker") -+ TYPE OPTIONAL -+ PURPOSE "Required for building Wayland screenlocker") - - find_package(loginctl) - set_package_properties(loginctl PROPERTIES -@@ -138,9 +138,7 @@ - interface.cpp - globalaccel.cpp - x11locker.cpp -- waylandlocker.cpp - logind.cpp -- waylandserver.cpp - powermanagement.cpp - powermanagement_inhibition.cpp - ) -@@ -149,10 +147,20 @@ - kconfig_add_kcfg_files(ksld_SRCS kcfg/kscreensaversettings.kcfgc) - qt5_add_dbus_interface(ksld_SRCS ${powerdevilpolicyagent_xml} powerdevilpolicyagent) - -+if(KF5Wayland_FOUND) -+list(APPEND ksld_SRCS -+ waylandlocker.cpp -+ waylandserver.cpp -+) - ecm_add_wayland_server_protocol(ksld_SRCS - PROTOCOL protocols/ksld.xml - BASENAME ksld - ) -+set(OPT_WL_LIBRARIES -+ KF5::WaylandServer -+ Wayland::Server -+) -+endif(KF5Wayland_FOUND) - - add_library(KScreenLocker SHARED ${ksld_SRCS}) - -@@ -171,8 +179,7 @@ - ${X11_LIBRARIES} - XCB::XCB - XCB::KEYSYMS -- KF5::WaylandServer -- Wayland::Server -+ ${OPT_WL_LIBRARIES} - ) - - if (X11_Xinput_FOUND) ---- kscreenlocker-5.12.9/ksldapp.cpp.old 2019-09-10 10:30:16.000000000 +0000 -+++ kscreenlocker-5.12.9/ksldapp.cpp 2019-12-29 17:00:37.930322855 +0000 -@@ -38,9 +38,11 @@ - #include - #include - -+#ifdef WAYLAND_FOUND - //kwayland - #include - #include -+#endif - - // Qt - #include -@@ -84,8 +86,10 @@ - , m_lockState(Unlocked) - , m_lockProcess(NULL) - , m_lockWindow(NULL) -+#ifdef WAYLAND_FOUND - , m_waylandServer(new WaylandServer(this)) - , m_waylandDisplay(nullptr) -+#endif /* WAYLAND_FOUND */ - , m_lockedTimer(QElapsedTimer()) - , m_idleId(0) - , m_lockGrace(0) -@@ -96,8 +100,12 @@ - , m_greeterEnv(QProcessEnvironment::systemEnvironment()) - , m_powerManagementInhibition(new PowerManagementInhibition(this)) - { -+#ifdef WAYLAND_FOUND - m_isX11 = QX11Info::isPlatformX11(); - m_isWayland = QCoreApplication::instance()->property("platformName").toString().startsWith( QLatin1String("wayland"), Qt::CaseInsensitive); -+#else -+ m_isX11 = true; -+#endif - } - - KSldApp::~KSldApp() -@@ -215,9 +223,11 @@ - auto finishedSignal = static_cast(&QProcess::finished); - connect(m_lockProcess, finishedSignal, this, - [this](int exitCode, QProcess::ExitStatus exitStatus) { -+#ifdef WAYLAND_FOUND - if (m_isWayland && m_waylandDisplay && m_greeterClientConnection) { - m_greeterClientConnection->destroy(); - } -+#endif /* WAYLAND_FOUND */ - if ((!exitCode && exitStatus == QProcess::NormalExit) || s_graceTimeKill || s_logindExit) { - // unlock process finished successfully - we can remove the lock grab - s_graceTimeKill = false; -@@ -240,7 +250,9 @@ - [this](QProcess::ProcessError error) { - if (error == QProcess::FailedToStart) { - doUnlock(); -+#ifdef WAYLAND_FOUND - m_waylandServer->stop(); -+#endif /* WAYLAND_FOUND */ - qCritical() << "Greeter Process not available"; - } - } -@@ -533,7 +545,9 @@ - m_lockedTimer.invalidate(); - m_greeterCrashedCounter = 0; - endGraceTime(); -+#ifdef WAYLAND_FOUND - m_waylandServer->stop(); -+#endif /* WAYLAND_FOUND */ - KNotification::event(QStringLiteral("unlocked"), - i18n("Screen unlocked"), - QPixmap(), -@@ -553,6 +567,7 @@ - { - QProcessEnvironment env = m_greeterEnv; - -+#ifdef WAYLAND_FOUND - if (m_isWayland && m_waylandDisplay) { - int sx[2]; - if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sx) < 0) { -@@ -576,6 +591,7 @@ - env.insert("WAYLAND_SOCKET", QByteArray::number(socket)); - } - } -+#endif /* WAYLAND_FOUND */ - QStringList args; - if (establishLock == EstablishLock::Immediate) { - args << QStringLiteral("--immediateLock"); -@@ -596,6 +612,7 @@ - env.insert(s_qtQuickBackend, QStringLiteral("software")); - } - -+#ifdef WAYLAND_FOUND - // start the Wayland server - int fd = m_waylandServer->start(); - if (fd == -1) { -@@ -605,10 +622,13 @@ - - args << QStringLiteral("--ksldfd"); - args << QString::number(fd); -+#endif /* WAYLAND_FOUND */ - - m_lockProcess->setProcessEnvironment(env); - m_lockProcess->start(QStringLiteral(KSCREENLOCKER_GREET_BIN), args); -+#ifdef WAYLAND_FOUND - close(fd); -+#endif - } - - void KSldApp::showLockWindow() -@@ -617,9 +637,11 @@ - if (m_isX11) { - m_lockWindow = new X11Locker(this); - } -+#ifdef WAYLAND_FOUND - if (m_isWayland) { - m_lockWindow = new WaylandLocker(m_waylandDisplay, this); - } -+#endif /* WAYLAND_FOUND */ - if (!m_lockWindow) { - return; - } -@@ -637,7 +659,9 @@ - lockScreenShown(); - } - , Qt::QueuedConnection); -+#ifdef WAYLAND_FOUND - connect(m_waylandServer, &WaylandServer::x11WindowAdded, m_lockWindow, &AbstractLocker::addAllowedWindow); -+#endif /* WAYLAND_FOUND */ - } - m_lockWindow->showLockWindow(); - if (m_isX11) { -@@ -702,12 +726,14 @@ - } - } - -+#ifdef WAYLAND_FOUND - void KSldApp::setWaylandDisplay(KWayland::Server::Display *display) - { - if (m_waylandDisplay != display) { - m_waylandDisplay = display; - } - } -+#endif /* WAYLAND_FOUND */ - - void KSldApp::lockScreenShown() - { -@@ -723,9 +749,11 @@ - void KSldApp::setGreeterEnvironment(const QProcessEnvironment &env) - { - m_greeterEnv = env; -+#ifdef WAYLAND_FOUND - if (m_isWayland) { - m_greeterEnv.insert(QStringLiteral("QT_QPA_PLATFORM"), QStringLiteral("wayland")); - } -+#endif /* WAYLAND_FOUND */ - } - - bool KSldApp::event(QEvent *event) ---- kscreenlocker-5.12.9/autotests/CMakeLists.txt.old 2019-09-10 10:30:16.000000000 +0000 -+++ kscreenlocker-5.12.9/autotests/CMakeLists.txt 2019-12-29 17:16:10.540254516 +0000 -@@ -55,6 +55,7 @@ - add_test(ksmserver-x11LockerTest x11LockerTest) - ecm_mark_as_test(x11LockerTest) - -+if(KF5Wayland_FOUND) - ####################################### - # NoScreensTest - ####################################### -@@ -67,3 +68,4 @@ - ) - add_test(ksld-noScreensTest noScreensTest) - ecm_mark_as_test(noScreensTest) -+endif() ---- kscreenlocker-5.12.9/greeter/greeterapp.cpp.old 2019-09-10 10:30:16.000000000 +0000 -+++ kscreenlocker-5.12.9/greeter/greeterapp.cpp 2019-12-29 17:14:57.458241696 +0000 -@@ -26,6 +26,7 @@ - #include "lnf_integration.h" - - #include -+#include - - // KDE - #include -@@ -40,12 +41,14 @@ - #include - #include - #include -+#ifdef WAYLAND_FOUND - // KWayland - #include - #include - #include - #include - #include -+#endif - // Qt - #include - #include -@@ -63,9 +66,11 @@ - #include - - #include -+#ifdef WAYLAND_FOUND - // Wayland - #include - #include -+#endif - // X11 - #include - #include -@@ -137,6 +142,7 @@ - } - qDeleteAll(m_views); - -+#ifdef WAYLAND_FOUND - if (m_ksldInterface) { - org_kde_ksld_destroy(m_ksldInterface); - } -@@ -148,6 +154,7 @@ - m_ksldConnectionThread->quit(); - m_ksldConnectionThread->wait(); - } -+#endif /* WAYLAND_FOUND */ - } - - Authenticator *UnlockApp::createAuthenticator() -@@ -165,7 +172,10 @@ - - void UnlockApp::initialize() - { -+#ifdef WAYLAND_FOUND - initializeWayland(); -+#endif /* WAYLAND_FOUND */ -+ - // set up the request ignore timeout, so that multiple requests to sleep/suspend/shutdown - // are not processed in quick (and confusing) succession) - m_resetRequestIgnoreTimer->setSingleShot(true); -@@ -205,6 +215,7 @@ - if (!platformName().startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { - return; - } -+#ifdef WAYLAND_FOUND - using namespace KWayland::Client; - auto *c = ConnectionThread::fromApplication(this); - if (!c) { -@@ -219,6 +230,7 @@ - return; - } - m_plasmaShell = r->createPlasmaShell(i.name, i.version, this); -+#endif /* WAYLAND_FOUND */ - } - - void UnlockApp::loadWallpaperPlugin(KQuickAddons::QuickViewSharedEngine *view) -@@ -281,6 +293,7 @@ - } - } - -+#ifdef WAYLAND_FOUND - if (m_ksldInterface) { - view->create(); - org_kde_ksld_x11window(m_ksldInterface, view->winId()); -@@ -294,6 +307,7 @@ - view->setProperty("plasmaShellSurface", QVariant::fromValue(shellSurface)); - } - } -+#endif /* WAYLAND_FOUND */ - - // engine stuff - QQmlContext* context = view->engine()->rootContext(); -@@ -353,10 +367,14 @@ - - auto screen = QGuiApplication::screens()[i]; - view->setGeometry(screen->geometry()); -+#ifdef WAYLAND_FOUND - KWayland::Client::PlasmaShellSurface *plasmaSurface = view->property("plasmaShellSurface").value(); - if (plasmaSurface) { - plasmaSurface->setPosition(view->geometry().topLeft()); - } -+#else -+ void *plasmaSurface = nullptr; -+#endif /* WAYLAND_FOUND */ - if (auto object = view->property("wallpaperGraphicsObject").value()) { - //initialize with our size to avoid as much resize events as possible - object->completeInitialization({ -@@ -370,9 +388,11 @@ - view, - [view, plasmaSurface](const QRect &geo) { - view->setGeometry(geo); -+#ifdef WAYLAND_FOUND - if (plasmaSurface) { - plasmaSurface->setPosition(view->geometry().topLeft()); - } -+#endif /* WAYLAND_FOUND */ - } - ); - -@@ -477,6 +497,7 @@ - - void UnlockApp::suspendToRam() - { -+#ifdef WAYLAND_FOUND - if (m_ignoreRequests) { - return; - } -@@ -485,11 +506,12 @@ - m_resetRequestIgnoreTimer->start(); - - org_kde_ksld_suspendSystem(m_ksldInterface); -- -+#endif /* WAYLAND_FOUND */ - } - - void UnlockApp::suspendToDisk() - { -+#ifdef WAYLAND_FOUND - if (m_ignoreRequests) { - return; - } -@@ -498,6 +520,7 @@ - m_resetRequestIgnoreTimer->start(); - - org_kde_ksld_hibernateSystem(m_ksldInterface); -+#endif /* WAYLAND_FOUND */ - } - - void UnlockApp::setTesting(bool enable) -@@ -626,7 +649,7 @@ - m_defaultToSwitchUser = defaultToSwitchUser; - } - -- -+#ifdef WAYLAND_FOUND - static void osdProgress(void *data, org_kde_ksld *org_kde_ksld, const char *icon, int32_t percent, const char *text) - { - Q_UNUSED(org_kde_ksld) -@@ -657,9 +680,11 @@ - canSuspend, - canHibernate - }; -+#endif /* WAYLAND_FOUND */ - - void UnlockApp::setKsldSocket(int socket) - { -+#ifdef WAYLAND_FOUND - using namespace KWayland::Client; - m_ksldConnection = new ConnectionThread; - m_ksldConnection->setSocketFd(socket); -@@ -697,6 +722,7 @@ - m_ksldConnection->moveToThread(m_ksldConnectionThread); - m_ksldConnectionThread->start(); - m_ksldConnection->initConnection(); -+#endif /* WAYLAND_FOUND */ - } - - void UnlockApp::osdProgress(const QString &icon, int percent, const QString &additionalText) ---- kscreenlocker-5.12.9/greeter/CMakeLists.txt.old 2019-09-10 10:30:16.000000000 +0000 -+++ kscreenlocker-5.12.9/greeter/CMakeLists.txt 2019-12-29 17:29:44.832222068 +0000 -@@ -24,10 +24,16 @@ - qt5_add_resources(kscreenlocker_greet_SRCS fallbacktheme.qrc) - kconfig_add_kcfg_files(kscreenlocker_greet_SRCS ${CMAKE_CURRENT_SOURCE_DIR}/../kcfg/kscreensaversettings.kcfgc) - -+if(KF5Wayland_FOUND) - ecm_add_wayland_client_protocol(kscreenlocker_greet_SRCS - PROTOCOL ../protocols/ksld.xml - BASENAME ksld - ) -+set(OPT_WL_CLI_LIBRARIES -+ KF5::WaylandClient -+ Wayland::Client -+) -+endif() - - add_executable(kscreenlocker_greet ${kscreenlocker_greet_SRCS}) - -@@ -43,8 +49,7 @@ - Qt5::Qml - Qt5::X11Extras - ${X11_LIBRARIES} -- KF5::WaylandClient -- Wayland::Client -+ ${OPT_WL_CLI_LIBRARIES} - ) - if(HAVE_SECCOMP) - target_link_libraries(kscreenlocker_greet Qt5::DBus Seccomp::Seccomp) diff --git a/user/libexif/CVE-2020-0198.patch b/user/libexif/CVE-2020-0198.patch deleted file mode 100644 index e0358c220..000000000 --- a/user/libexif/CVE-2020-0198.patch +++ /dev/null @@ -1,58 +0,0 @@ -From ce03ad7ef4e8aeefce79192bf5b6f69fae396f0c Mon Sep 17 00:00:00 2001 -From: Marcus Meissner -Date: Mon, 8 Jun 2020 17:27:06 +0200 -Subject: [PATCH] fixed another unsigned integer overflow - -first fixed by google in android fork, -https://android.googlesource.com/platform/external/libexif/+/1e187b62682ffab5003c702657d6d725b4278f16%5E%21/#F0 - -(use a more generic overflow check method, also check second overflow instance.) - -https://security-tracker.debian.org/tracker/CVE-2020-0198 ---- - libexif/exif-data.c | 10 ++++++---- - 1 file changed, 6 insertions(+), 4 deletions(-) - -diff --git a/libexif/exif-data.c b/libexif/exif-data.c -index 8b280d3..b495726 100644 ---- a/libexif/exif-data.c -+++ b/libexif/exif-data.c -@@ -47,6 +47,8 @@ - #undef JPEG_MARKER_APP1 - #define JPEG_MARKER_APP1 0xe1 - -+#define CHECKOVERFLOW(offset,datasize,structsize) (( offset >= datasize) || (structsize > datasize) || (offset > datasize - structsize )) -+ - static const unsigned char ExifHeader[] = {0x45, 0x78, 0x69, 0x66, 0x00, 0x00}; - - struct _ExifDataPrivate -@@ -327,7 +329,7 @@ exif_data_load_data_thumbnail (ExifData *data, const unsigned char *d, - exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", "Bogus thumbnail offset (%u).", o); - return; - } -- if (s > ds - o) { -+ if (CHECKOVERFLOW(o,ds,s)) { - exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", "Bogus thumbnail size (%u), max would be %u.", s, ds-o); - return; - } -@@ -420,9 +422,9 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd, - } - - /* Read the number of entries */ -- if ((offset + 2 < offset) || (offset + 2 < 2) || (offset + 2 > ds)) { -+ if (CHECKOVERFLOW(offset, ds, 2)) { - exif_log (data->priv->log, EXIF_LOG_CODE_CORRUPT_DATA, "ExifData", -- "Tag data past end of buffer (%u > %u)", offset+2, ds); -+ "Tag data past end of buffer (%u+2 > %u)", offset, ds); - return; - } - n = exif_get_short (d + offset, data->priv->order); -@@ -431,7 +433,7 @@ exif_data_load_data_content (ExifData *data, ExifIfd ifd, - offset += 2; - - /* Check if we have enough data. */ -- if (offset + 12 * n > ds) { -+ if (CHECKOVERFLOW(offset, ds, 12*n)) { - n = (ds - offset) / 12; - exif_log (data->priv->log, EXIF_LOG_CODE_DEBUG, "ExifData", - "Short data; only loading %hu entries...", n); diff --git a/user/libgit2/remove-flaky-revparse-test.patch b/user/libgit2/remove-flaky-revparse-test.patch deleted file mode 100644 index 94d6806b8..000000000 --- a/user/libgit2/remove-flaky-revparse-test.patch +++ /dev/null @@ -1,40 +0,0 @@ -This patch differs from upstream in the following way(s): - - * Changed paths - - * Changed "11 years ago" to "10 years ago" to match state - before libgit2 bdab22384cc61d315005a65456a9f9563bb27c8f - - * Changed a commit hash to 'NULL' to match source code - -From 7f53d7b600a838c19276e835fd0188c361a63801 Mon Sep 17 00:00:00 2001 -From: Carl Dong -Date: Mon, 9 May 2022 12:09:08 -0400 -Subject: [PATCH] revparse: Remove error-prone, redundant test - -Originally introduced in: 776a6a8e5f8e258d31aded73c0ce38df6ac7bdc4 - -This test case has recently been fixed in bdab22384cc61d315005a65456a9f9563bb27c8f, but that fix will only last for a year. Next year the same problem will crop up and the test will need to be re-edited. - -This is not ideal as -- This test case becomes an unnecessary burden for developers -- Downstream distros or even just users who want to build older versions of libgit2 are guaranteed to have this test fail - -Furthermore, this test case is entirely unnecessary, as the functionality that was originally (see 776a6a8e5f8e258d31aded73c0ce38df6ac7bdc4) intended to be tested is well-covered by subsequent tests which specify a date instead of a "x ago" specification. ---- - tests/libgit2/refs/revparse.c | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/tests/libgit2/refs/revparse.c b/tests/libgit2/refs/revparse.c -index 93d7ce6db81..56af3c939be 100644 ---- a/tests/refs/revparse.c -+++ b/tests/refs/revparse.c -@@ -399,8 +399,6 @@ void test_refs_revparse__date(void) - * a65fedf HEAD@{1335806603 -0900}: commit: - * be3563a HEAD@{1335806563 -0700}: clone: from /Users/ben/src/libgit2/tests/resour - */ -- test_object("HEAD@{10 years ago}", NULL); -- - test_object("HEAD@{1 second}", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); - test_object("HEAD@{1 second ago}", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); - test_object("HEAD@{2 days ago}", "a65fedf39aefe402d3bb6e24df4d4f5fe4547750"); diff --git a/user/libical/automake.patch b/user/libical/automake.patch deleted file mode 100644 index 757220a62..000000000 --- a/user/libical/automake.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- ./configure.in.orig 2012-12-31 20:03:51.355227119 +0000 -+++ ./configure.in 2012-12-31 20:04:03.445327143 +0000 -@@ -5,7 +5,7 @@ - AC_CANONICAL_SYSTEM - AM_INIT_AUTOMAKE - --AM_CONFIG_HEADER(config.h) -+AC_CONFIG_HEADER(config.h) - - dnl Initialize maintainer mode - AM_MAINTAINER_MODE diff --git a/user/libice/CVE-2017-2626.patch b/user/libice/CVE-2017-2626.patch deleted file mode 100644 index ea2d8835b..000000000 --- a/user/libice/CVE-2017-2626.patch +++ /dev/null @@ -1,142 +0,0 @@ -From ff5e59f32255913bb1cdf51441b98c9107ae165b Mon Sep 17 00:00:00 2001 -From: Benjamin Tissoires -Date: Tue, 4 Apr 2017 19:12:53 +0200 -Subject: Use getentropy() if arc4random_buf() is not available - -This allows to fix CVE-2017-2626 on Linux platforms without pulling in -libbsd. -The libc getentropy() is available since glibc 2.25 but also on OpenBSD. -For Linux, we need at least a v3.17 kernel. If the recommended -arc4random_buf() function is not available, emulate it by first trying -to use getentropy() on a supported glibc and kernel. If the call fails, -fall back to the current (partly vulnerable) code. - -Signed-off-by: Benjamin Tissoires -Reviewed-by: Mark Kettenis -Reviewed-by: Alan Coopersmith -Signed-off-by: Peter Hutterer ---- - configure.ac | 2 +- - src/iceauth.c | 65 ++++++++++++++++++++++++++++++++++++++++++----------------- - 2 files changed, 47 insertions(+), 20 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 458882a..c971ab6 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -38,7 +38,7 @@ AC_DEFINE(ICE_t, 1, [Xtrans transport type]) - - # Checks for library functions. - AC_CHECK_LIB([bsd], [arc4random_buf]) --AC_CHECK_FUNCS([asprintf arc4random_buf]) -+AC_CHECK_FUNCS([asprintf arc4random_buf getentropy]) - - # Allow checking code with lint, sparse, etc. - XORG_WITH_LINT -diff --git a/src/iceauth.c b/src/iceauth.c -index ed31683..de4785b 100644 ---- a/src/iceauth.c -+++ b/src/iceauth.c -@@ -44,31 +44,19 @@ Author: Ralph Mor, X Consortium - - static int was_called_state; - --/* -- * MIT-MAGIC-COOKIE-1 is a sample authentication method implemented by -- * the SI. It is not part of standard ICElib. -- */ -+#ifndef HAVE_ARC4RANDOM_BUF - -- --char * --IceGenerateMagicCookie ( -+static void -+emulate_getrandom_buf ( -+ char *auth, - int len - ) - { -- char *auth; --#ifndef HAVE_ARC4RANDOM_BUF - long ldata[2]; - int seed; - int value; - int i; --#endif - -- if ((auth = malloc (len + 1)) == NULL) -- return (NULL); -- --#ifdef HAVE_ARC4RANDOM_BUF -- arc4random_buf(auth, len); --#else - #ifdef ITIMER_REAL - { - struct timeval now; -@@ -76,13 +64,13 @@ IceGenerateMagicCookie ( - ldata[0] = now.tv_sec; - ldata[1] = now.tv_usec; - } --#else -+#else /* ITIMER_REAL */ - { - long time (); - ldata[0] = time ((long *) 0); - ldata[1] = getpid (); - } --#endif -+#endif /* ITIMER_REAL */ - seed = (ldata[0]) + (ldata[1] << 16); - srand (seed); - for (i = 0; i < len; i++) -@@ -90,7 +78,46 @@ IceGenerateMagicCookie ( - value = rand (); - auth[i] = value & 0xff; - } --#endif -+} -+ -+static void -+arc4random_buf ( -+ char *auth, -+ int len -+) -+{ -+ int ret; -+ -+#if HAVE_GETENTROPY -+ /* weak emulation of arc4random through the entropy libc */ -+ ret = getentropy (auth, len); -+ if (ret == 0) -+ return; -+#endif /* HAVE_GETENTROPY */ -+ -+ emulate_getrandom_buf (auth, len); -+} -+ -+#endif /* !defined(HAVE_ARC4RANDOM_BUF) */ -+ -+/* -+ * MIT-MAGIC-COOKIE-1 is a sample authentication method implemented by -+ * the SI. It is not part of standard ICElib. -+ */ -+ -+ -+char * -+IceGenerateMagicCookie ( -+ int len -+) -+{ -+ char *auth; -+ -+ if ((auth = malloc (len + 1)) == NULL) -+ return (NULL); -+ -+ arc4random_buf (auth, len); -+ - auth[len] = '\0'; - return (auth); - } --- -cgit v1.1 - diff --git a/user/liborcus/sepples-is-a-sin.patch b/user/liborcus/sepples-is-a-sin.patch deleted file mode 100644 index 210ef2c86..000000000 --- a/user/liborcus/sepples-is-a-sin.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- liborcus-0.15.3/src/liborcus/json_map_tree.cpp 2019-08-02 19:31:14.000000000 -0400 -+++ liborcus-0.15.3/src/liborcus/json_map_tree.cpp 2020-02-06 23:35:09.274550724 -0500 -@@ -14,6 +14,8 @@ - - namespace orcus { - -+constexpr json_map_tree::child_position_type json_map_tree::node_child_default_position; -+ - namespace { - - void throw_path_error(const char* file, int line, const pstring& path) diff --git a/user/libraw1394/fix-types.patch b/user/libraw1394/fix-types.patch deleted file mode 100644 index d82cf815a..000000000 --- a/user/libraw1394/fix-types.patch +++ /dev/null @@ -1,62 +0,0 @@ -diff -ru libraw1394-2.1.0.orig/src/fw-iso.c libraw1394-2.1.0/src/fw-iso.c ---- libraw1394-2.1.0.orig/src/fw-iso.c 2012-06-27 23:10:19.000000000 +0300 -+++ libraw1394-2.1.0/src/fw-iso.c 2013-09-30 17:38:30.070506505 +0300 -@@ -303,7 +303,7 @@ - } - - static int handle_iso_event(raw1394handle_t handle, -- struct epoll_closure *closure, __uint32_t events) -+ struct epoll_closure *closure, uint32_t events) - { - fw_handle_t fwhandle = handle->mode.fw; - struct fw_cdev_event_iso_interrupt *interrupt; -diff -ru libraw1394-2.1.0.orig/src/fw.c libraw1394-2.1.0/src/fw.c ---- libraw1394-2.1.0.orig/src/fw.c 2012-07-08 21:27:52.000000000 +0300 -+++ libraw1394-2.1.0/src/fw.c 2013-09-30 17:38:30.070506505 +0300 -@@ -187,7 +187,7 @@ - - static int - handle_echo_pipe(raw1394handle_t handle, -- struct epoll_closure *ec, __uint32_t events) -+ struct epoll_closure *ec, uint32_t events) - { - quadlet_t value; - -@@ -258,7 +258,7 @@ - - static int - handle_device_event(raw1394handle_t handle, -- struct epoll_closure *ec, __uint32_t events) -+ struct epoll_closure *ec, uint32_t events) - { - fw_handle_t fwhandle = handle->mode.fw; - union fw_cdev_event *u; -@@ -421,7 +421,7 @@ - - static int - handle_inotify(raw1394handle_t handle, struct epoll_closure *ec, -- __uint32_t events) -+ uint32_t events) - { - fw_handle_t fwhandle = handle->mode.fw; - struct inotify_event *event; -diff -ru libraw1394-2.1.0.orig/src/fw.h libraw1394-2.1.0/src/fw.h ---- libraw1394-2.1.0.orig/src/fw.h 2012-07-08 21:27:52.000000000 +0300 -+++ libraw1394-2.1.0/src/fw.h 2013-09-30 17:38:42.330440087 +0300 -@@ -12,6 +12,7 @@ - #ifndef LIBRAW1394_FW_H - #define LIBRAW1394_FW_H - -+#include - #include - #include - -@@ -48,7 +49,7 @@ - - struct epoll_closure { - int (*func)(raw1394handle_t handle, -- struct epoll_closure *closure, __uint32_t events); -+ struct epoll_closure *closure, uint32_t events); - }; - - struct port { diff --git a/user/libtasn1/CVE-2017-10790.patch b/user/libtasn1/CVE-2017-10790.patch deleted file mode 100644 index eb752c20a..000000000 --- a/user/libtasn1/CVE-2017-10790.patch +++ /dev/null @@ -1,55 +0,0 @@ -From d8d805e1f2e6799bb2dff4871a8598dc83088a39 Mon Sep 17 00:00:00 2001 -From: Nikos Mavrogiannopoulos -Date: Thu, 22 Jun 2017 16:31:37 +0200 -Subject: [PATCH] _asn1_check_identifier: safer access to values read - -Signed-off-by: Nikos Mavrogiannopoulos ---- - lib/parser_aux.c | 17 ++++++++++++----- - 1 file changed, 12 insertions(+), 5 deletions(-) - -diff --git a/lib/parser_aux.c b/lib/parser_aux.c -index 976ab38..786ea64 100644 ---- a/lib/parser_aux.c -+++ b/lib/parser_aux.c -@@ -955,7 +955,7 @@ _asn1_check_identifier (asn1_node node) - if (p2 == NULL) - { - if (p->value) -- _asn1_strcpy (_asn1_identifierMissing, p->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p->value); - else - _asn1_strcpy (_asn1_identifierMissing, "(null)"); - return ASN1_IDENTIFIER_NOT_FOUND; -@@ -968,9 +968,15 @@ _asn1_check_identifier (asn1_node node) - if (p2 && (type_field (p2->type) == ASN1_ETYPE_DEFAULT)) - { - _asn1_str_cpy (name2, sizeof (name2), node->name); -- _asn1_str_cat (name2, sizeof (name2), "."); -- _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -- _asn1_strcpy (_asn1_identifierMissing, p2->value); -+ if (p2->value) -+ { -+ _asn1_str_cat (name2, sizeof (name2), "."); -+ _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); -+ } -+ else -+ _asn1_strcpy (_asn1_identifierMissing, "(null)"); -+ - p2 = asn1_find_node (node, name2); - if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) || - !(p2->type & CONST_ASSIGN)) -@@ -990,7 +996,8 @@ _asn1_check_identifier (asn1_node node) - _asn1_str_cpy (name2, sizeof (name2), node->name); - _asn1_str_cat (name2, sizeof (name2), "."); - _asn1_str_cat (name2, sizeof (name2), (char *) p2->value); -- _asn1_strcpy (_asn1_identifierMissing, p2->value); -+ _asn1_str_cpy (_asn1_identifierMissing, sizeof(_asn1_identifierMissing), (char*)p2->value); -+ - p2 = asn1_find_node (node, name2); - if (!p2 || (type_field (p2->type) != ASN1_ETYPE_OBJECT_ID) - || !(p2->type & CONST_ASSIGN)) --- -1.9.1 - diff --git a/user/libvncserver/LibVNCServer-0.9.10-system_minilzo.patch b/user/libvncserver/LibVNCServer-0.9.10-system_minilzo.patch deleted file mode 100644 index 34e789bba..000000000 --- a/user/libvncserver/LibVNCServer-0.9.10-system_minilzo.patch +++ /dev/null @@ -1,67 +0,0 @@ -diff -up LibVNCServer-0.9.10/libvncclient/Makefile.am.system_minilzo LibVNCServer-0.9.10/libvncclient/Makefile.am ---- LibVNCServer-0.9.10/libvncclient/Makefile.am.system_minilzo 2014-04-05 18:38:35.000000000 -0500 -+++ LibVNCServer-0.9.10/libvncclient/Makefile.am 2014-04-29 08:56:27.861761880 -0500 -@@ -13,10 +13,10 @@ endif - endif - - --libvncclient_la_SOURCES=cursor.c listen.c rfbproto.c sockets.c vncviewer.c ../common/minilzo.c $(TLSSRCS) --libvncclient_la_LIBADD=$(TLSLIBS) $(VA_LIBS) -+libvncclient_la_SOURCES=cursor.c listen.c rfbproto.c sockets.c vncviewer.c $(TLSSRCS) -+libvncclient_la_LIBADD=$(TLSLIBS) $(VA_LIBS) -lminilzo - --noinst_HEADERS=../common/lzodefs.h ../common/lzoconf.h ../common/minilzo.h tls.h -+noinst_HEADERS=tls.h - - rfbproto.o: rfbproto.c corre.c hextile.c rre.c tight.c zlib.c zrle.c ultra.c - -diff -up LibVNCServer-0.9.10/libvncclient/rfbproto.c.system_minilzo LibVNCServer-0.9.10/libvncclient/rfbproto.c ---- LibVNCServer-0.9.10/libvncclient/rfbproto.c.system_minilzo 2014-04-05 18:38:35.000000000 -0500 -+++ LibVNCServer-0.9.10/libvncclient/rfbproto.c 2014-04-29 08:39:57.638331693 -0500 -@@ -61,7 +61,7 @@ - #include - #endif - --#include "minilzo.h" -+#include - #include "tls.h" - - /* -diff -up LibVNCServer-0.9.10/libvncserver/Makefile.am.system_minilzo LibVNCServer-0.9.10/libvncserver/Makefile.am ---- LibVNCServer-0.9.10/libvncserver/Makefile.am.system_minilzo 2014-04-05 18:38:35.000000000 -0500 -+++ LibVNCServer-0.9.10/libvncserver/Makefile.am 2014-04-29 08:39:57.638331693 -0500 -@@ -37,7 +37,7 @@ include_HEADERS=../rfb/rfb.h ../rfb/rfbc - - noinst_HEADERS=../common/d3des.h ../rfb/default8x16.h zrleoutstream.h \ - zrlepalettehelper.h zrletypes.h private.h scale.h rfbssl.h rfbcrypto.h \ -- ../common/minilzo.h ../common/lzoconf.h ../common/lzodefs.h ../common/md5.h ../common/sha1.h \ -+ ../common/md5.h ../common/sha1.h \ - $(TIGHTVNCFILETRANSFERHDRS) - - EXTRA_DIST=tableinit24.c tableinittctemplate.c tabletranstemplate.c \ -@@ -54,11 +54,11 @@ endif - LIB_SRCS = main.c rfbserver.c rfbregion.c auth.c sockets.c $(WEBSOCKETSSRCS) \ - stats.c corre.c hextile.c rre.c translate.c cutpaste.c \ - httpd.c cursor.c font.c \ -- draw.c selbox.c ../common/d3des.c ../common/vncauth.c cargs.c ../common/minilzo.c ultra.c scale.c \ -+ draw.c selbox.c ../common/d3des.c ../common/vncauth.c cargs.c ultra.c scale.c \ - $(ZLIBSRCS) $(TIGHTSRCS) $(TIGHTVNCFILETRANSFERSRCS) - - libvncserver_la_SOURCES=$(LIB_SRCS) --libvncserver_la_LIBADD=$(WEBSOCKETSSSLLIBS) -+libvncserver_la_LIBADD=$(WEBSOCKETSSSLLIBS) -lminilzo - - lib_LTLIBRARIES=libvncserver.la - -diff -up LibVNCServer-0.9.10/libvncserver/ultra.c.system_minilzo LibVNCServer-0.9.10/libvncserver/ultra.c ---- LibVNCServer-0.9.10/libvncserver/ultra.c.system_minilzo 2014-04-05 18:38:35.000000000 -0500 -+++ LibVNCServer-0.9.10/libvncserver/ultra.c 2014-04-29 08:39:57.638331693 -0500 -@@ -8,7 +8,7 @@ - */ - - #include --#include "minilzo.h" -+#include - - /* - * cl->beforeEncBuf contains pixel data in the client's format. diff --git a/user/libxcb/0001-tests-Support-Check-0.13.0-API.patch b/user/libxcb/0001-tests-Support-Check-0.13.0-API.patch deleted file mode 100644 index fce1f83d0..000000000 --- a/user/libxcb/0001-tests-Support-Check-0.13.0-API.patch +++ /dev/null @@ -1,40 +0,0 @@ -From a667ec3e0cf5d9cd1d1715e3fff3328e353fae84 Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" -Date: Mon, 23 Dec 2019 21:49:29 -0600 -Subject: [PATCH] tests: Support Check 0.13.0 API - ---- - tests/check_all.c | 4 ++-- - tests/check_suites.h | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tests/check_all.c b/tests/check_all.c -index 4393422..f201dec 100644 ---- a/tests/check_all.c -+++ b/tests/check_all.c -@@ -1,10 +1,10 @@ - #include - #include "check_suites.h" - --void suite_add_test(Suite *s, TFun tf, const char *name) -+void suite_add_test(Suite *s, const TTest *tt, const char *name) - { - TCase *tc = tcase_create(name); -- tcase_add_test(tc, tf); -+ tcase_add_test(tc, tt); - suite_add_tcase(s, tc); - } - -diff --git a/tests/check_suites.h b/tests/check_suites.h -index 499f1af..595923a 100644 ---- a/tests/check_suites.h -+++ b/tests/check_suites.h -@@ -1,4 +1,4 @@ - #include - --void suite_add_test(Suite *s, TFun tf, const char *name); -+void suite_add_test(Suite *s, const TTest *tt, const char *name); - Suite *public_suite(void); --- -2.24.1 - diff --git a/user/llvm14/scc-insertion.patch b/user/llvm14/scc-insertion.patch deleted file mode 100644 index b2d7d511a..000000000 --- a/user/llvm14/scc-insertion.patch +++ /dev/null @@ -1,33 +0,0 @@ -From f7e9f4f4c50245d10ca9869a9f8f3d431dfb6948 Mon Sep 17 00:00:00 2001 -From: Warren Ristow -Date: Tue, 14 Jan 2020 10:30:24 -0800 -Subject: [PATCH] SCC: Allow ReplaceNode to safely support insertion - -If scc_iterator::ReplaceNode is inserting a new entry in the map, -rather than replacing an existing entry, the possibility of growing -the map could cause a failure. This change safely implements the -insertion. - -Reviewed By: probinson - -Differential Revision: https://reviews.llvm.org/D72469 ---- - include/llvm/ADT/SCCIterator.h | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/include/llvm/ADT/SCCIterator.h b/include/llvm/ADT/SCCIterator.h -index eb1a5d0938cf..1e642b9f75d3 100644 ---- a/include/llvm/ADT/SCCIterator.h -+++ b/include/llvm/ADT/SCCIterator.h -@@ -134,7 +134,10 @@ class scc_iterator : public iterator_facade_base< - /// has been deleted, and \c New is to be used in its place. - void ReplaceNode(NodeRef Old, NodeRef New) { - assert(nodeVisitNumbers.count(Old) && "Old not in scc_iterator?"); -- nodeVisitNumbers[New] = nodeVisitNumbers[Old]; -+ // Do the assignment in two steps, in case 'New' is not yet in the map, and -+ // inserting it causes the map to grow. -+ auto tempVal = nodeVisitNumbers[Old]; -+ nodeVisitNumbers[New] = tempVal; - nodeVisitNumbers.erase(Old); - } - }; diff --git a/user/mozjs/python3.patch b/user/mozjs/python3.patch deleted file mode 100644 index 65fc9da53..000000000 --- a/user/mozjs/python3.patch +++ /dev/null @@ -1,9552 +0,0 @@ ---- mozjs-52.4.0/python/mozbuild/dumbmake/dumbmake.py (original) -+++ mozjs-52.4.0/python/mozbuild/dumbmake/dumbmake.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - from collections import OrderedDict - from itertools import groupby -@@ -36,7 +36,7 @@ - deps = {} - - for i, (indent, target) in enumerate(pairs): -- if not deps.has_key(target): -+ if target not in deps: - deps[target] = [] - - for j in range(i+1, len(pairs)): -@@ -68,7 +68,7 @@ - del all_targets[dependency] - all_targets[dependency] = True - -- return all_targets.keys() -+ return list(all_targets.keys()) - - def get_components(path): - """Take a path and return all the components of the path.""" -@@ -114,7 +114,7 @@ - make_dirs[make_dir] = True - - all_components = [] -- for make_dir in make_dirs.iterkeys(): -+ for make_dir in make_dirs.keys(): - all_components.extend(get_components(make_dir)) - - for i in all_dependencies(*all_components, dependency_map=dependency_map): ---- mozjs-52.4.0/python/mozbuild/dumbmake/test/test_dumbmake.py (original) -+++ mozjs-52.4.0/python/mozbuild/dumbmake/test/test_dumbmake.py (refactored) -@@ -1,7 +1,7 @@ - # This Source Code Form is subject to the terms of the Mozilla Public - # License, v. 2.0. If a copy of the MPL was not distributed with this file, - # You can obtain one at http://mozilla.org/MPL/2.0/. --from __future__ import unicode_literals -+ - - import unittest - ---- mozjs-52.4.0/python/mozbuild/mozbuild/android_version_code.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/android_version_code.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function -+ - - import argparse - import math ---- mozjs-52.4.0/python/mozbuild/mozbuild/artifacts.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/artifacts.py (refactored) -@@ -40,7 +40,7 @@ - ''' - - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import collections - import functools -@@ -57,7 +57,7 @@ - import subprocess - import tarfile - import tempfile --import urlparse -+import urllib.parse - import zipfile - - import pylru -@@ -183,7 +183,7 @@ - - with JarWriter(file=processed_filename, optimize=False, compress_level=5) as writer: - reader = JarReader(filename) -- for filename, entry in reader.entries.iteritems(): -+ for filename, entry in reader.entries.items(): - for pattern, (src_prefix, dest_prefix) in self.test_artifact_patterns: - if not mozpath.match(filename, pattern): - continue -@@ -552,7 +552,7 @@ - - def print_cache(self): - with self: -- for item in self._cache.items(): -+ for item in list(self._cache.items()): - self.log(logging.INFO, 'artifact', - {'item': item}, - '{item}') -@@ -565,7 +565,7 @@ - # We use the persisted LRU caches to our advantage. The first item is - # most recent. - with self: -- item = next(self._cache.items(), None) -+ item = next(list(self._cache.items()), None) - if item is not None: - (name, args, sorted_kwargs), result = item - self.print_last_item(args, sorted_kwargs, result) -@@ -593,10 +593,10 @@ - 'changeset={changeset}&version=2&tipsonly=1') - req = requests.get(cset_url_tmpl.format(tree=tree, changeset=revision), - headers={'Accept': 'application/json'}) -- if req.status_code not in range(200, 300): -+ if req.status_code not in list(range(200, 300)): - raise ValueError - result = req.json() -- [found_pushid] = result['pushes'].keys() -+ [found_pushid] = list(result['pushes'].keys()) - return int(found_pushid) - - @cachedmethod(operator.attrgetter('_cache')) -@@ -609,7 +609,7 @@ - headers={'Accept': 'application/json'}) - result = req.json() - return [ -- p['changesets'][-1] for p in result['pushes'].values() -+ p['changesets'][-1] for p in list(result['pushes'].values()) - ] - - class TaskCache(CacheManager): -@@ -847,7 +847,7 @@ - - candidate_pushheads = collections.defaultdict(list) - -- for tree, pushid in found_pushids.iteritems(): -+ for tree, pushid in found_pushids.items(): - end = pushid - start = pushid - NUM_PUSHHEADS_TO_QUERY_PER_PARENT - -@@ -1052,7 +1052,7 @@ - """ - if source and os.path.isfile(source): - return self.install_from_file(source, distdir) -- elif source and urlparse.urlparse(source).scheme: -+ elif source and urllib.parse.urlparse(source).scheme: - return self.install_from_url(source, distdir) - else: - if source is None and 'MOZ_ARTIFACT_REVISION' in os.environ: ---- mozjs-52.4.0/python/mozbuild/mozbuild/base.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/base.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import json - import logging -@@ -482,7 +482,7 @@ - for flag in flags: - if flag == '-j': - try: -- flag = flags.next() -+ flag = next(flags) - except StopIteration: - break - try: ---- mozjs-52.4.0/python/mozbuild/mozbuild/config_status.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/config_status.py (refactored) -@@ -6,7 +6,7 @@ - # drop-in replacement for autoconf 2.13's config.status, with features - # borrowed from autoconf > 2.5, and additional features. - --from __future__ import absolute_import, print_function -+ - - import logging - import os ---- mozjs-52.4.0/python/mozbuild/mozbuild/doctor.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/doctor.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, # You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import subprocess -@@ -83,7 +83,7 @@ - valid = False - while not valid and limit > 0: - try: -- choice = strtobool(raw_input(prompt + '[Y/N]\n')) -+ choice = strtobool(input(prompt + '[Y/N]\n')) - valid = True - except ValueError: - print("ERROR! Please enter a valid option!") -@@ -103,11 +103,11 @@ - if status == 'SKIPPED': - continue - self.results.append(result) -- print('%s...\t%s\n' % ( -+ print(('%s...\t%s\n' % ( - result.get('desc', ''), - status - ) -- ).expandtabs(40) -+ ).expandtabs(40)) - - @property - def platform(self): -@@ -212,7 +212,7 @@ - fsutil_output = subprocess.check_output(command) - status = 'GOOD, FIXED' - desc = 'lastaccess disabled systemwide' -- except subprocess.CalledProcessError, e: -+ except subprocess.CalledProcessError as e: - desc = 'lastaccess enabled systemwide' - if e.output.find('denied') != -1: - status = 'BAD, FIX DENIED' ---- mozjs-52.4.0/python/mozbuild/mozbuild/dotproperties.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/dotproperties.py (refactored) -@@ -5,7 +5,7 @@ - # This file contains utility functions for reading .properties files, like - # region.properties. - --from __future__ import absolute_import, unicode_literals -+ - - import codecs - import re -@@ -14,7 +14,7 @@ - if sys.version_info[0] == 3: - str_type = str - else: -- str_type = basestring -+ str_type = str - - class DotProperties: - r'''A thin representation of a key=value .properties file.''' -@@ -52,7 +52,7 @@ - if not prefix.endswith('.'): - prefix = prefix + '.' - indexes = [] -- for k, v in self._properties.iteritems(): -+ for k, v in self._properties.items(): - if not k.startswith(prefix): - continue - key = k[len(prefix):] -@@ -73,7 +73,7 @@ - if not prefix.endswith('.'): - prefix = prefix + '.' - -- D = dict((k[len(prefix):], v) for k, v in self._properties.iteritems() -+ D = dict((k[len(prefix):], v) for k, v in self._properties.items() - if k.startswith(prefix) and '.' not in k[len(prefix):]) - - for required_key in required_keys: ---- mozjs-52.4.0/python/mozbuild/mozbuild/html_build_viewer.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/html_build_viewer.py (refactored) -@@ -4,16 +4,16 @@ - - # This module contains code for running an HTTP server to view build info. - --from __future__ import absolute_import, unicode_literals - --import BaseHTTPServer -+ -+import http.server - import json - import os - - import requests - - --class HTTPHandler(BaseHTTPServer.BaseHTTPRequestHandler): -+class HTTPHandler(http.server.BaseHTTPRequestHandler): - def do_GET(self): - s = self.server.wrapper - p = self.path -@@ -92,7 +92,7 @@ - self.doc_root = doc_root - self.json_files = {} - -- self.server = BaseHTTPServer.HTTPServer((address, port), HTTPHandler) -+ self.server = http.server.HTTPServer((address, port), HTTPHandler) - self.server.wrapper = self - self.do_shutdown = False - ---- mozjs-52.4.0/python/mozbuild/mozbuild/jar.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/jar.py (refactored) -@@ -8,7 +8,7 @@ - See the documentation for jar.mn on MDC for further details on the format. - ''' - --from __future__ import absolute_import -+ - - import sys - import os -@@ -17,7 +17,7 @@ - import logging - from time import localtime - from MozZipFile import ZipFile --from cStringIO import StringIO -+from io import StringIO - from collections import defaultdict - - from mozbuild.preprocessor import Preprocessor -@@ -302,9 +302,9 @@ - '''updateManifest replaces the % in the chrome registration entries - with the given chrome base path, and updates the given manifest file. - ''' -- myregister = dict.fromkeys(map(lambda s: s.replace('%', -- chromebasepath), register)) -- addEntriesToListFile(manifestPath, myregister.iterkeys()) -+ myregister = dict.fromkeys([s.replace('%', -+ chromebasepath) for s in register]) -+ addEntriesToListFile(manifestPath, iter(myregister.keys())) - - def makeJar(self, infile, jardir): - '''makeJar is the main entry point to JarMaker. -@@ -322,7 +322,7 @@ - elif self.relativesrcdir: - self.localedirs = \ - self.generateLocaleDirs(self.relativesrcdir) -- if isinstance(infile, basestring): -+ if isinstance(infile, str): - logging.info('processing ' + infile) - self.sourcedirs.append(_normpath(os.path.dirname(infile))) - pp = self.pp.clone() -@@ -372,7 +372,7 @@ - jarfilepath = jarfile + '.jar' - try: - os.makedirs(os.path.dirname(jarfilepath)) -- except OSError, error: -+ except OSError as error: - if error.errno != errno.EEXIST: - raise - jf = ZipFile(jarfilepath, 'a', lock=True) -@@ -514,7 +514,7 @@ - # remove previous link or file - try: - os.remove(out) -- except OSError, e: -+ except OSError as e: - if e.errno != errno.ENOENT: - raise - return open(out, 'wb') -@@ -525,7 +525,7 @@ - if not os.path.isdir(outdir): - try: - os.makedirs(outdir) -- except OSError, error: -+ except OSError as error: - if error.errno != errno.EEXIST: - raise - return out -@@ -541,7 +541,7 @@ - # remove previous link or file - try: - os.remove(out) -- except OSError, e: -+ except OSError as e: - if e.errno != errno.ENOENT: - raise - if sys.platform != 'win32': ---- mozjs-52.4.0/python/mozbuild/mozbuild/mach_commands.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/mach_commands.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, # You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import errno -@@ -136,7 +136,7 @@ - # terminal is a blessings.Terminal. - self._t = terminal - self._fh = sys.stdout -- self.tiers = monitor.tiers.tier_status.viewitems() -+ self.tiers = monitor.tiers.tier_status.items() - - def clear(self): - """Removes the footer from the current terminal.""" -@@ -802,7 +802,7 @@ - dirpath = None - - type_counts = database.type_counts(dirpath) -- sorted_counts = sorted(type_counts.iteritems(), -+ sorted_counts = sorted(iter(type_counts.items()), - key=operator.itemgetter(1)) - - total = 0 -@@ -957,7 +957,7 @@ - processes[i].run() - - exit_code = 0 -- for process in processes.values(): -+ for process in list(processes.values()): - status = process.wait() - if status: - exit_code = status ---- mozjs-52.4.0/python/mozbuild/mozbuild/makeutil.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/makeutil.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import re -@@ -66,7 +66,7 @@ - self._list = [] - self._set = set() - -- def __nonzero__(self): -+ def __bool__(self): - return bool(self._set) - - def __iter__(self): ---- mozjs-52.4.0/python/mozbuild/mozbuild/mozconfig.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/mozconfig.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import filecmp - import os -@@ -306,7 +306,7 @@ - - # Environment variables also appear as shell variables, but that's - # uninteresting duplication of information. Filter them out. -- filt = lambda x, y: {k: v for k, v in x.items() if k not in y} -+ filt = lambda x, y: {k: v for k, v in list(x.items()) if k not in y} - result['vars'] = diff_vars( - filt(parsed['vars_before'], parsed['env_before']), - filt(parsed['vars_after'], parsed['env_after']) ---- mozjs-52.4.0/python/mozbuild/mozbuild/mozinfo.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/mozinfo.py (refactored) -@@ -5,7 +5,7 @@ - # This module produces a JSON file that provides basic build info and - # configuration metadata. - --from __future__ import absolute_import -+ - - import os - import re -@@ -154,7 +154,7 @@ - and what keys are produced. - """ - build_conf = build_dict(config, env) -- if isinstance(file, basestring): -+ if isinstance(file, str): - file = open(file, 'wb') - - json.dump(build_conf, file, sort_keys=True, indent=4) ---- mozjs-52.4.0/python/mozbuild/mozbuild/preprocessor.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/preprocessor.py (refactored) -@@ -27,7 +27,8 @@ - import re - from optparse import OptionParser - import errno --from makeutil import Makefile -+from .makeutil import Makefile -+from functools import reduce - - # hack around win32 mangling our line endings - # http://aspn.activestate.com/ASPN/Cookbook/Python/Recipe/65443 -@@ -56,7 +57,7 @@ - self.__ignore_whitespace() - self.e = self.__get_logical_or() - if self.content: -- raise Expression.ParseError, self -+ raise Expression.ParseError(self) - - def __get_logical_or(self): - """ -@@ -157,7 +158,7 @@ - if word_len: - rv = Expression.__ASTLeaf('string', self.content[:word_len]) - else: -- raise Expression.ParseError, self -+ raise Expression.ParseError(self) - self.__strip(word_len) - self.__ignore_whitespace() - return rv -@@ -196,7 +197,7 @@ - return left and right - elif tok[1].value == '||': - return left or right -- raise Expression.ParseError, self -+ raise Expression.ParseError(self) - - # Mapping from token types to evaluator functions - # Apart from (non-)equality, all these can be simple lambda forms. -@@ -230,7 +231,7 @@ - def __repr__(self): - return self.value.__repr__() - -- class ParseError(StandardError): -+ class ParseError(Exception): - """ - Error raised when parsing fails. - It has two members, offset and content, which give the offset of the -@@ -278,7 +279,7 @@ - self.context = Context() - for k,v in {'FILE': '', - 'LINE': 0, -- 'DIRECTORY': os.path.abspath('.')}.iteritems(): -+ 'DIRECTORY': os.path.abspath('.')}.items(): - self.context[k] = v - self.actionLevel = 0 - self.disableLevel = 0 -@@ -292,21 +293,21 @@ - self.cmds = {} - for cmd, level in {'define': 0, - 'undef': 0, -- 'if': sys.maxint, -- 'ifdef': sys.maxint, -- 'ifndef': sys.maxint, -+ 'if': sys.maxsize, -+ 'ifdef': sys.maxsize, -+ 'ifndef': sys.maxsize, - 'else': 1, - 'elif': 1, - 'elifdef': 1, - 'elifndef': 1, -- 'endif': sys.maxint, -+ 'endif': sys.maxsize, - 'expand': 0, - 'literal': 0, - 'filter': 0, - 'unfilter': 0, - 'include': 0, - 'includesubst': 0, -- 'error': 0}.iteritems(): -+ 'error': 0}.items(): - self.cmds[cmd] = (level, getattr(self, 'do_' + cmd)) - self.out = sys.stdout - self.setMarker(marker) -@@ -469,7 +470,7 @@ - raise Preprocessor.Error(self, "--depend doesn't work with stdout", - None) - try: -- from makeutil import Makefile -+ from .makeutil import Makefile - except: - raise Preprocessor.Error(self, "--depend requires the " - "mozbuild.makeutil module", None) -@@ -684,7 +685,7 @@ - current = dict(self.filters) - for f in filters: - current[f] = getattr(self, 'filter_' + f) -- filterNames = current.keys() -+ filterNames = list(current.keys()) - filterNames.sort() - self.filters = [(fn, current[fn]) for fn in filterNames] - return -@@ -694,7 +695,7 @@ - for f in filters: - if f in current: - del current[f] -- filterNames = current.keys() -+ filterNames = list(current.keys()) - filterNames.sort() - self.filters = [(fn, current[fn]) for fn in filterNames] - return -@@ -739,7 +740,7 @@ - args can either be a file name, or a file-like object. - Files should be opened, and will be closed after processing. - """ -- isName = type(args) == str or type(args) == unicode -+ isName = type(args) == str or type(args) == str - oldCheckLineNumbers = self.checkLineNumbers - self.checkLineNumbers = False - if isName: ---- mozjs-52.4.0/python/mozbuild/mozbuild/pythonutil.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/pythonutil.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import sys -@@ -11,7 +11,7 @@ - def iter_modules_in_path(*paths): - paths = [os.path.abspath(os.path.normcase(p)) + os.sep - for p in paths] -- for name, module in sys.modules.items(): -+ for name, module in list(sys.modules.items()): - if not hasattr(module, '__file__'): - continue - ---- mozjs-52.4.0/python/mozbuild/mozbuild/shellutil.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/shellutil.py (refactored) -@@ -15,7 +15,7 @@ - # which matches the pattern and captures it in a named match group. - # The group names and patterns are given as arguments. - all_tokens = '|'.join('(?P<%s>%s)' % (name, value) -- for name, value in tokens.iteritems()) -+ for name, value in tokens.items()) - nonescaped = r'(? ABC DEF Gxx" - args = [iter(iterable)] * n -- return itertools.izip_longest(fillvalue=dummy_fill_value, *args) -+ return itertools.zip_longest(fillvalue=dummy_fill_value, *args) - - for i, unified_group in enumerate(grouper(files_per_unified_file, - files)): -@@ -1104,7 +1104,7 @@ - [(1,2), (3,4), (5,6)] - ''' - i = iter(iterable) -- return itertools.izip_longest(i, i) -+ return itertools.zip_longest(i, i) - - - VARIABLES_RE = re.compile('\$\((\w+)\)') -@@ -1122,7 +1122,7 @@ - value = variables.get(name) - if not value: - continue -- if not isinstance(value, types.StringTypes): -+ if not isinstance(value, (str,)): - value = ' '.join(value) - result += value - return result -@@ -1149,7 +1149,7 @@ - pass - - --class EnumString(unicode): -+class EnumString(str): - '''A string type that only can have a limited set of values, similarly to - an Enum, and can only be compared against that set of values. - -@@ -1185,19 +1185,18 @@ - # quoting could be done with either ' or ". - if c == "'": - return "\\'" -- return unicode(c.encode('unicode_escape')) -+ return str(c.encode('unicode_escape')) - - # Mapping table between raw characters below \x80 and their escaped - # counterpart, when they differ - _INDENTED_REPR_TABLE = { - c: e -- for c, e in map(lambda x: (x, _escape_char(x)), -- map(unichr, range(128))) -+ for c, e in [(x, _escape_char(x)) for x in list(map(chr, list(range(128))))] - if c != e - } - # Regexp matching all characters to escape. - _INDENTED_REPR_RE = re.compile( -- '([' + ''.join(_INDENTED_REPR_TABLE.values()) + ']+)') -+ '([' + ''.join(list(_INDENTED_REPR_TABLE.values())) + ']+)') - - - def indented_repr(o, indent=4): -@@ -1223,7 +1222,7 @@ - elif isinstance(o, bytes): - yield 'b' - yield repr(o) -- elif isinstance(o, unicode): -+ elif isinstance(o, str): - yield "'" - # We want a readable string (non escaped unicode), but some - # special characters need escaping (e.g. \n, \t, etc.) -@@ -1253,11 +1252,11 @@ - if isinstance(obj, dict): - return { - encode(k, encoding): encode(v, encoding) -- for k, v in obj.iteritems() -+ for k, v in obj.items() - } - if isinstance(obj, bytes): - return obj -- if isinstance(obj, unicode): -+ if isinstance(obj, str): - return obj.encode(encoding) - if isinstance(obj, Iterable): - return [encode(i, encoding) for i in obj] ---- mozjs-52.4.0/python/mozbuild/mozbuild/vendor_rust.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/vendor_rust.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, # You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from distutils.version import LooseVersion - import logging ---- mozjs-52.4.0/python/mozbuild/mozbuild/virtualenv.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/virtualenv.py (refactored) -@@ -5,7 +5,7 @@ - # This file contains code for populating the virtualenv environment for - # Mozilla's build system. It is typically called as part of configure. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import distutils.sysconfig - import os -@@ -461,8 +461,8 @@ - and call .ensure() and .activate() to make the virtualenv active. - """ - -- execfile(self.activate_path, dict(__file__=self.activate_path)) -- if isinstance(os.environ['PATH'], unicode): -+ exec(compile(open(self.activate_path).read(), self.activate_path, 'exec'), dict(__file__=self.activate_path)) -+ if isinstance(os.environ['PATH'], str): - os.environ['PATH'] = os.environ['PATH'].encode('utf-8') - - def install_pip_package(self, package): ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/buildlist.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/buildlist.py (refactored) -@@ -7,7 +7,7 @@ - - Usage: buildlist.py [ ...] - ''' --from __future__ import absolute_import, print_function -+ - - import sys - import os ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/cl.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/cl.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import ctypes - import os -@@ -55,7 +55,7 @@ - break - - if target is None: -- print >>sys.stderr, "No target set" -+ print("No target set", file=sys.stderr) - return 1 - - # Assume the source file is the last argument ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/dump_env.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/dump_env.py (refactored) -@@ -6,5 +6,5 @@ - # native paths printed on Windows so that these paths can be incorporated - # into Python configure's environment. - import os --for key, value in os.environ.items(): -- print('%s=%s' % (key, value)) -+for key, value in list(os.environ.items()): -+ print(('%s=%s' % (key, value))) ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/file_generate.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/file_generate.py (refactored) -@@ -6,7 +6,7 @@ - # the arguments that can be used to generate the output file, call the - # script's |main| method with appropriate arguments. - --from __future__ import absolute_import, print_function -+ - - import argparse - import imp ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/generate_suggestedsites.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/generate_suggestedsites.py (refactored) -@@ -26,7 +26,7 @@ - directory e.g. raw/suggestedsites.json, raw-pt-rBR/suggestedsites.json. - ''' - --from __future__ import absolute_import, print_function -+ - - import argparse - import copy ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/generate_symbols_file.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/generate_symbols_file.py (refactored) -@@ -2,12 +2,12 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import buildconfig - import os --from StringIO import StringIO -+from io import StringIO - from mozbuild.preprocessor import Preprocessor - from mozbuild.util import DefinesAction - ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/jar_maker.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/jar_maker.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/make_dmg.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/make_dmg.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import print_function -+ - - from mozbuild.base import MozbuildObject - from mozpack import dmg ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/output_searchplugins_list.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/output_searchplugins_list.py (refactored) -@@ -18,4 +18,4 @@ - else: - engines = searchinfo["default"]["visibleDefaultEngines"] - --print '\n'.join(engines) -+print('\n'.join(engines)) ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/package_fennec_apk.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/package_fennec_apk.py (refactored) -@@ -6,7 +6,7 @@ - Script to produce an Android package (.apk) for Fennec. - ''' - --from __future__ import absolute_import, print_function -+ - - import argparse - import buildconfig ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/preprocessor.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/preprocessor.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/process_define_files.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/process_define_files.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import os -@@ -55,7 +55,7 @@ - 'CONFIGURE_DEFINE_FILE') - defines = '\n'.join(sorted( - '#define %s %s' % (name, val) -- for name, val in config.defines.iteritems() -+ for name, val in config.defines.items() - if name not in config.non_global_defines)) - l = l[:m.start('cmd') - 1] \ - + defines + l[m.end('name'):] ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/process_install_manifest.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/process_install_manifest.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import os ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/test_archive.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/test_archive.py (refactored) -@@ -8,7 +8,7 @@ - # It is defined inline because this was easiest to make test archive - # generation faster. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import itertools -@@ -433,7 +433,7 @@ - # "common" is our catch all archive and it ignores things from other archives. - # Verify nothing sneaks into ARCHIVE_FILES without a corresponding exclusion - # rule in the "common" archive. --for k, v in ARCHIVE_FILES.items(): -+for k, v in list(ARCHIVE_FILES.items()): - # Skip mozharness because it isn't staged. - if k in ('common', 'mozharness'): - continue ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/webidl.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/webidl.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/xpccheck.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/xpccheck.py (refactored) -@@ -8,7 +8,7 @@ - Usage: xpccheck.py [ ...] - ''' - --from __future__ import absolute_import -+ - - import sys - import os -@@ -40,7 +40,7 @@ - break - - if not found: -- print >>sys.stderr, "TEST-UNEXPECTED-FAIL | xpccheck | test %s is missing from test manifest %s!" % (name, os.path.join(directory, 'xpcshell.ini')) -+ print("TEST-UNEXPECTED-FAIL | xpccheck | test %s is missing from test manifest %s!" % (name, os.path.join(directory, 'xpcshell.ini')), file=sys.stderr) - sys.exit(1) - - def verifyIniFile(initests, directory): -@@ -60,12 +60,12 @@ - break - - if not found: -- print >>sys.stderr, "TEST-UNEXPECTED-FAIL | xpccheck | found %s in xpcshell.ini and not in directory '%s'" % (name, directory) -+ print("TEST-UNEXPECTED-FAIL | xpccheck | found %s in xpcshell.ini and not in directory '%s'" % (name, directory), file=sys.stderr) - sys.exit(1) - - def main(argv): - if len(argv) < 2: -- print >>sys.stderr, "Usage: xpccheck.py [ ...]" -+ print("Usage: xpccheck.py [ ...]", file=sys.stderr) - sys.exit(1) - - topsrcdir = argv[0] ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/xpidl-process.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/xpidl-process.py (refactored) -@@ -7,7 +7,7 @@ - # input IDL file(s). It's purpose is to directly support the build - # system. The API will change to meet the needs of the build system. - --from __future__ import absolute_import -+ - - import argparse - import os -@@ -58,7 +58,7 @@ - - # TODO use FileAvoidWrite once it supports binary mode. - xpt_path = os.path.join(xpt_dir, '%s.xpt' % module) -- xpt_link(xpts.values()).write(xpt_path) -+ xpt_link(list(xpts.values())).write(xpt_path) - - rule.add_targets([xpt_path]) - if deps_dir: ---- mozjs-52.4.0/python/mozbuild/mozbuild/action/zip.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/action/zip.py (refactored) -@@ -5,7 +5,7 @@ - # This script creates a zip file, but will also strip any binaries - # it finds before adding them to the zip. - --from __future__ import absolute_import -+ - - from mozpack.files import FileFinder - from mozpack.copier import Jarrer ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/base.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/base.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - from abc import ( - ABCMeta, -@@ -30,15 +30,13 @@ - from mozbuild.base import ExecutionSummary - - --class BuildBackend(LoggingMixin): -+class BuildBackend(LoggingMixin, metaclass=ABCMeta): - """Abstract base class for build backends. - - A build backend is merely a consumer of the build configuration (the output - of the frontend processing). It does something with said data. What exactly - is the discretion of the specific implementation. - """ -- -- __metaclass__ = ABCMeta - - def __init__(self, environment): - assert isinstance(environment, ConfigEnvironment) -@@ -252,7 +250,7 @@ - srcdir = mozpath.dirname(obj.input_path) - pp.context.update({ - k: ' '.join(v) if isinstance(v, list) else v -- for k, v in obj.config.substs.iteritems() -+ for k, v in obj.config.substs.items() - }) - pp.context.update( - top_srcdir=obj.topsrcdir, ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/common.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/common.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -- --import cPickle as pickle -+ -+ -+import pickle as pickle - import itertools - import json - import os -@@ -194,11 +194,11 @@ - def add_defaults(self, manifest): - if not hasattr(manifest, 'manifest_defaults'): - return -- for sub_manifest, defaults in manifest.manifest_defaults.items(): -+ for sub_manifest, defaults in list(manifest.manifest_defaults.items()): - self.manifest_defaults[sub_manifest] = defaults - - def add_installs(self, obj, topsrcdir): -- for src, (dest, _) in obj.installs.iteritems(): -+ for src, (dest, _) in obj.installs.items(): - key = src[len(topsrcdir)+1:] - self.installs_by_path[key].append((src, dest)) - for src, pat, dest in obj.pattern_installs: -@@ -379,7 +379,7 @@ - - path = mozpath.join(self.environment.topobjdir, 'test-installs.pkl') - with self._write_file(path, mode='rb') as fh: -- pickle.dump({k: v for k, v in self._test_manager.installs_by_path.items() -+ pickle.dump({k: v for k, v in list(self._test_manager.installs_by_path.items()) - if k in self._test_manager.deferred_installs}, - fh, - protocol=2) ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/configenvironment.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/configenvironment.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import sys -@@ -17,7 +17,7 @@ - - - if sys.version_info.major == 2: -- text_type = unicode -+ text_type = str - else: - text_type = str - -@@ -176,7 +176,7 @@ - except UnicodeDecodeError: - return v.decode('utf-8', 'replace') - -- for k, v in self.substs.items(): -+ for k, v in list(self.substs.items()): - if not isinstance(v, StringTypes): - if isinstance(v, Iterable): - type(v)(decode(i) for i in v) ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/cpp_eclipse.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/cpp_eclipse.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import errno - import random -@@ -218,12 +218,12 @@ - cproject_header = cproject_header.replace('@MACH_COMMAND@', os.path.join(self.environment.topsrcdir, 'mach')) - fh.write(cproject_header) - -- for path, defines in self._paths_to_defines.items(): -+ for path, defines in list(self._paths_to_defines.items()): - folderinfo = CPROJECT_TEMPLATE_FOLDER_INFO_HEADER - folderinfo = folderinfo.replace('@FOLDER_ID@', str(random.randint(1000000, 99999999999))) - folderinfo = folderinfo.replace('@FOLDER_NAME@', 'tree/' + path) - fh.write(folderinfo) -- for k, v in defines.items(): -+ for k, v in list(defines.items()): - define = ET.Element('listOptionValue') - define.set('builtIn', 'false') - define.set('value', str(k) + "=" + str(v)) ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/fastermake.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/fastermake.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals, print_function -+ - - from mozbuild.backend.base import PartialBackend - from mozbuild.backend.common import CommonBackend -@@ -130,12 +130,12 @@ - if value is not None: - mk.add_statement('%s = %s' % (var, value)) - -- install_manifests_bases = self._install_manifests.keys() -+ install_manifests_bases = list(self._install_manifests.keys()) - - # Add information for chrome manifest generation - manifest_targets = [] - -- for target, entries in self._manifest_entries.iteritems(): -+ for target, entries in self._manifest_entries.items(): - manifest_targets.append(target) - install_target = mozpath.basedir(target, install_manifests_bases) - self._install_manifests[install_target].add_content( -@@ -144,16 +144,16 @@ - - # Add information for install manifests. - mk.add_statement('INSTALL_MANIFESTS = %s' -- % ' '.join(self._install_manifests.keys())) -+ % ' '.join(list(self._install_manifests.keys()))) - - # Add dependencies we infered: -- for target, deps in self._dependencies.iteritems(): -+ for target, deps in self._dependencies.items(): - mk.create_rule([target]).add_dependencies( - '$(TOPOBJDIR)/%s' % d for d in deps) - - mk.add_statement('include $(TOPSRCDIR)/config/faster/rules.mk') - -- for base, install_manifest in self._install_manifests.iteritems(): -+ for base, install_manifest in self._install_manifests.items(): - with self._write_file( - mozpath.join(self.environment.topobjdir, 'faster', - 'install_%s' % base.replace('/', '_'))) as fh: ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/mach_commands.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/mach_commands.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import argparse - import os ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/recursivemake.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/recursivemake.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import logging - import os -@@ -12,7 +12,7 @@ - defaultdict, - namedtuple, - ) --from StringIO import StringIO -+from io import StringIO - from itertools import chain - - from mozpack.manifests import ( -@@ -74,6 +74,7 @@ - ) - from ..makeutil import Makefile - from mozbuild.shellutil import quote as shell_quote -+from functools import reduce - - MOZBUILD_VARIABLES = [ - b'ANDROID_APK_NAME', -@@ -214,7 +215,7 @@ - self.fh.write(buf) - - def write_once(self, buf): -- if isinstance(buf, unicode): -+ if isinstance(buf, str): - buf = buf.encode('utf-8') - if b'\n' + buf not in self.fh.getvalue(): - self.write(buf) -@@ -283,8 +284,8 @@ - Helper function to call a filter from compute_dependencies and - traverse. - """ -- return filter(current, self._traversal.get(current, -- self.SubDirectories())) -+ return list(filter(current, self._traversal.get(current, -+ self.SubDirectories()))) - - def compute_dependencies(self, filter=None): - """ -@@ -638,7 +639,7 @@ - convenience variables, and the other dependency definitions for a - hopefully proper directory traversal. - """ -- for tier, no_skip in self._no_skip.items(): -+ for tier, no_skip in list(self._no_skip.items()): - self.log(logging.DEBUG, 'fill_root_mk', { - 'number': len(no_skip), 'tier': tier - }, 'Using {number} directories during {tier}') -@@ -684,7 +685,7 @@ - for tier, filter in filters: - main, all_deps = \ - self._traversal.compute_dependencies(filter) -- for dir, deps in all_deps.items(): -+ for dir, deps in list(all_deps.items()): - if deps is not None or (dir in self._idl_dirs \ - and tier == 'export'): - rule = root_deps_mk.create_rule(['%s/%s' % (dir, tier)]) -@@ -697,7 +698,7 @@ - rule.add_dependencies('%s/%s' % (d, tier) for d in main) - - all_compile_deps = reduce(lambda x,y: x|y, -- self._compile_graph.values()) if self._compile_graph else set() -+ list(self._compile_graph.values())) if self._compile_graph else set() - compile_roots = set(self._compile_graph.keys()) - all_compile_deps - - rule = root_deps_mk.create_rule(['recurse_compile']) -@@ -839,7 +840,7 @@ - self._fill_root_mk() - - # Make the master test manifest files. -- for flavor, t in self._test_manifests.items(): -+ for flavor, t in list(self._test_manifests.items()): - install_prefix, manifests = t - manifest_stem = mozpath.join(install_prefix, '%s.ini' % flavor) - self._write_master_test_manifest(mozpath.join( -@@ -945,7 +946,7 @@ - for p in ('Makefile', 'backend.mk', '.deps/.mkdir.done'): - build_files.add_optional_exists(p) - -- for idl in manager.idls.values(): -+ for idl in list(manager.idls.values()): - self._install_manifests['dist_idl'].add_symlink(idl['source'], - idl['basename']) - self._install_manifests['dist_include'].add_optional_exists('%s.h' -@@ -992,7 +993,7 @@ - - interfaces_manifests = [] - dist_dir = mozpath.join(self.environment.topobjdir, 'dist') -- for manifest, entries in manager.interface_manifests.items(): -+ for manifest, entries in list(manager.interface_manifests.items()): - interfaces_manifests.append(mozpath.join('$(DEPTH)', manifest)) - for xpt in sorted(entries): - registered_xpt_files.add(mozpath.join( -@@ -1052,7 +1053,7 @@ - # Don't allow files to be defined multiple times unless it is allowed. - # We currently allow duplicates for non-test files or test files if - # the manifest is listed as a duplicate. -- for source, (dest, is_test) in obj.installs.items(): -+ for source, (dest, is_test) in list(obj.installs.items()): - try: - self._install_manifests['_test_files'].add_symlink(source, dest) - except ValueError: -@@ -1386,7 +1387,7 @@ - man_dir = mozpath.join(self.environment.topobjdir, '_build_manifests', - dest) - -- for k, manifest in manifests.items(): -+ for k, manifest in list(manifests.items()): - with self._write_file(mozpath.join(man_dir, k)) as fh: - manifest.write(fileobj=fh) - ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/tup.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/tup.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import os - -@@ -253,7 +253,7 @@ - backend_file = self._get_backend_file('xpcom/xpidl') - backend_file.export_shell() - -- for module, data in sorted(manager.modules.iteritems()): -+ for module, data in sorted(manager.modules.items()): - dest, idls = data - cmd = [ - '$(PYTHON_PATH)', ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/visualstudio.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/visualstudio.py (refactored) -@@ -5,7 +5,7 @@ - # This file contains a build backend for generating Visual Studio project - # files. - --from __future__ import absolute_import, unicode_literals -+ - - import errno - import os -@@ -218,7 +218,7 @@ - includes = [os.path.normpath(i) for i in includes] - - defines = [] -- for k, v in self._paths_to_defines.get(path, {}).items(): -+ for k, v in list(self._paths_to_defines.get(path, {}).items()): - if v is True: - defines.append(k) - else: ---- mozjs-52.4.0/python/mozbuild/mozbuild/codecoverage/chrome_map.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/codecoverage/chrome_map.py (refactored) -@@ -5,7 +5,7 @@ - from collections import defaultdict - import json - import os --import urlparse -+import urllib.parse - - from mach.config import ConfigSettings - from mach.logging import LoggingManager -@@ -42,7 +42,7 @@ - if isinstance(entry, (ManifestChrome, ManifestResource)): - if isinstance(entry, ManifestResource): - dest = entry.target -- url = urlparse.urlparse(dest) -+ url = urllib.parse.urlparse(dest) - if not url.scheme: - dest = mozpath.normpath(mozpath.join(entry.base, dest)) - if url.scheme == 'file': -@@ -99,7 +99,7 @@ - chrome_mapping = self.manifest_handler.chrome_mapping - overrides = self.manifest_handler.overrides - json.dump([ -- {k: list(v) for k, v in chrome_mapping.iteritems()}, -+ {k: list(v) for k, v in chrome_mapping.items()}, - overrides, - self._install_mapping, - ], fh, sort_keys=True, indent=2) ---- mozjs-52.4.0/python/mozbuild/mozbuild/codecoverage/packager.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/codecoverage/packager.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function -+ - - import argparse - import sys -@@ -12,7 +12,7 @@ - - def package_gcno_tree(root, output_file): - # XXX JarWriter doesn't support unicode strings, see bug 1056859 -- if isinstance(root, unicode): -+ if isinstance(root, str): - root = root.encode('utf-8') - - finder = FileFinder(root) ---- mozjs-52.4.0/python/mozbuild/mozbuild/compilation/codecomplete.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/compilation/codecomplete.py (refactored) -@@ -4,7 +4,7 @@ - - # This modules provides functionality for dealing with code completion. - --from __future__ import absolute_import -+ - - import os - -@@ -59,5 +59,5 @@ - # Drop the first flag since that is the pathname of the compiler. - flags = (shell_split(build_vars[cc]) + shell_split(build_vars[name]))[1:] - -- print(' '.join(shell_quote(arg) -- for arg in util.sanitize_cflags(flags))) -+ print((' '.join(shell_quote(arg) -+ for arg in util.sanitize_cflags(flags)))) ---- mozjs-52.4.0/python/mozbuild/mozbuild/compilation/database.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/compilation/database.py (refactored) -@@ -118,7 +118,7 @@ - - db = [] - -- for (directory, filename), cmd in self._db.iteritems(): -+ for (directory, filename), cmd in self._db.items(): - env = self._envs[directory] - cmd = list(cmd) - cmd.append(filename) -@@ -151,7 +151,7 @@ - a = expand_variables(a, variables).split() - if not a: - continue -- if isinstance(a, types.StringTypes): -+ if isinstance(a, (str,)): - c.append(a) - else: - c.extend(a) -@@ -216,7 +216,7 @@ - value = cenv.substs.get(name) - if not value: - return -- if isinstance(value, types.StringTypes): -+ if isinstance(value, (str,)): - value = value.split() - db.extend(value) - ---- mozjs-52.4.0/python/mozbuild/mozbuild/compilation/warnings.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/compilation/warnings.py (refactored) -@@ -4,7 +4,7 @@ - - # This modules provides functionality for dealing with compiler warnings. - --from __future__ import absolute_import, unicode_literals -+ - - import errno - import json -@@ -123,18 +123,18 @@ - - def __len__(self): - i = 0 -- for value in self._files.values(): -+ for value in list(self._files.values()): - i += len(value['warnings']) - - return i - - def __iter__(self): -- for value in self._files.values(): -+ for value in list(self._files.values()): - for warning in value['warnings']: - yield warning - - def __contains__(self, item): -- for value in self._files.values(): -+ for value in list(self._files.values()): - for warning in value['warnings']: - if warning == item: - return True -@@ -144,7 +144,7 @@ - @property - def warnings(self): - """All the CompilerWarning instances in this database.""" -- for value in self._files.values(): -+ for value in list(self._files.values()): - for w in value['warnings']: - yield w - -@@ -152,7 +152,7 @@ - """Returns a mapping of warning types to their counts.""" - - types = {} -- for value in self._files.values(): -+ for value in list(self._files.values()): - for warning in value['warnings']: - if dirpath and not mozpath.normsep(warning['filename']).startswith(dirpath): - continue -@@ -210,7 +210,7 @@ - """ - - # Need to calculate up front since we are mutating original object. -- filenames = self._files.keys() -+ filenames = list(self._files.keys()) - for filename in filenames: - if not os.path.exists(filename): - del self._files[filename] -@@ -229,10 +229,10 @@ - obj = {'files': {}} - - # All this hackery because JSON can't handle sets. -- for k, v in self._files.iteritems(): -+ for k, v in self._files.items(): - obj['files'][k] = {} - -- for k2, v2 in v.iteritems(): -+ for k2, v2 in v.items(): - normalized = v2 - - if k2 == 'warnings': -@@ -249,8 +249,8 @@ - self._files = obj['files'] - - # Normalize data types. -- for filename, value in self._files.iteritems(): -- for k, v in value.iteritems(): -+ for filename, value in self._files.items(): -+ for k, v in value.items(): - if k != 'warnings': - continue - ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/__init__.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/__init__.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import inspect - import logging -@@ -193,7 +193,7 @@ - for b in ('None', 'False', 'True', 'int', 'bool', 'any', 'all', 'len', - 'list', 'tuple', 'set', 'dict', 'isinstance', 'getattr', - 'hasattr', 'enumerate', 'range', 'zip') -- }, __import__=forbidden_import, str=unicode) -+ }, __import__=forbidden_import, str=str) - - # Expose a limited set of functions from os.path - OS = ReadOnlyNamespace(path=ReadOnlyNamespace(**{ -@@ -333,7 +333,7 @@ - if path: - self.include_file(path) - -- for option in self._options.itervalues(): -+ for option in self._options.values(): - # All options must be referenced by some @depends function - if option not in self._seen: - raise ConfigureError( -@@ -437,7 +437,7 @@ - value = PositiveOptionValue() - elif value is False or value == (): - value = NegativeOptionValue() -- elif isinstance(value, types.StringTypes): -+ elif isinstance(value, (str,)): - value = PositiveOptionValue((value,)) - elif isinstance(value, tuple): - value = PositiveOptionValue(value) -@@ -477,7 +477,7 @@ - return value - - def _dependency(self, arg, callee_name, arg_name=None): -- if isinstance(arg, types.StringTypes): -+ if isinstance(arg, (str,)): - prefix, name, values = Option.split_option(arg) - if values != (): - raise ConfigureError("Option must not contain an '='") -@@ -541,7 +541,7 @@ - ''' - when = self._normalize_when(kwargs.get('when'), 'option') - args = [self._resolve(arg) for arg in args] -- kwargs = {k: self._resolve(v) for k, v in kwargs.iteritems() -+ kwargs = {k: self._resolve(v) for k, v in kwargs.items() - if k != 'when'} - option = Option(*args, **kwargs) - if when: -@@ -622,7 +622,7 @@ - with self.only_when_impl(when): - what = self._resolve(what) - if what: -- if not isinstance(what, types.StringTypes): -+ if not isinstance(what, (str,)): - raise TypeError("Unexpected type: '%s'" % type(what).__name__) - self.include_file(what) - -@@ -640,7 +640,7 @@ - (k[:-len('_impl')], getattr(self, k)) - for k in dir(self) if k.endswith('_impl') and k != 'template_impl' - ) -- glob.update((k, v) for k, v in self.iteritems() if k not in glob) -+ glob.update((k, v) for k, v in self.items() if k not in glob) - - # Any function argument to the template must be prepared to be sandboxed. - # If the template itself returns a function (in which case, it's very -@@ -664,7 +664,7 @@ - def wrapper(*args, **kwargs): - args = [maybe_prepare_function(arg) for arg in args] - kwargs = {k: maybe_prepare_function(v) -- for k, v in kwargs.iteritems()} -+ for k, v in kwargs.items()} - ret = template(*args, **kwargs) - if isfunction(ret): - # We can't expect the sandboxed code to think about all the -@@ -696,7 +696,7 @@ - for value, required in ( - (_import, True), (_from, False), (_as, False)): - -- if not isinstance(value, types.StringTypes) and ( -+ if not isinstance(value, (str,)) and ( - required or value is not None): - raise TypeError("Unexpected type: '%s'" % type(value).__name__) - if value is not None and not self.RE_MODULE.match(value): -@@ -759,7 +759,7 @@ - name = self._resolve(name, need_help_dependency=False) - if name is None: - return -- if not isinstance(name, types.StringTypes): -+ if not isinstance(name, (str,)): - raise TypeError("Unexpected type: '%s'" % type(name).__name__) - if name in data: - raise ConfigureError( -@@ -849,7 +849,7 @@ - if isinstance(possible_reasons[0], Option): - reason = possible_reasons[0] - if not reason and (isinstance(value, (bool, tuple)) or -- isinstance(value, types.StringTypes)): -+ isinstance(value, (str,))): - # A reason can be provided automatically when imply_option - # is called with an immediate value. - _, filename, line, _, _, _ = inspect.stack()[1] -@@ -884,10 +884,10 @@ - if not inspect.isfunction(func): - raise TypeError("Unexpected type: '%s'" % type(func).__name__) - if func in self._prepared_functions: -- return func, func.func_globals -+ return func, func.__globals__ - - glob = SandboxedGlobal( -- (k, v) for k, v in func.func_globals.iteritems() -+ (k, v) for k, v in func.__globals__.items() - if (inspect.isfunction(v) and v not in self._templates) or ( - inspect.isclass(v) and issubclass(v, Exception)) - ) -@@ -908,20 +908,20 @@ - # Note this is not entirely bullet proof (if the value is e.g. a list, - # the list contents could have changed), but covers the bases. - closure = None -- if func.func_closure: -+ if func.__closure__: - def makecell(content): - def f(): - content -- return f.func_closure[0] -+ return f.__closure__[0] - - closure = tuple(makecell(cell.cell_contents) -- for cell in func.func_closure) -+ for cell in func.__closure__) - - new_func = wraps(func)(types.FunctionType( -- func.func_code, -+ func.__code__, - glob, - func.__name__, -- func.func_defaults, -+ func.__defaults__, - closure - )) - @wraps(new_func) ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/check_debug_ranges.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/check_debug_ranges.py (refactored) -@@ -6,7 +6,7 @@ - # to a given compilation unit. This is used as a helper to find a bug in some - # versions of GNU ld. - --from __future__ import absolute_import -+ - - import subprocess - import sys -@@ -59,4 +59,4 @@ - - - if __name__ == '__main__': -- print main(*sys.argv[1:]) -+ print(main(*sys.argv[1:])) ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/constants.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/constants.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from mozbuild.util import EnumString - from collections import OrderedDict -@@ -56,7 +56,7 @@ - 'x86_64': 64, - } - --CPU = EnumString.subclass(*CPU_bitness.keys()) -+CPU = EnumString.subclass(*list(CPU_bitness.keys())) - - Endianness = EnumString.subclass( - 'big', ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/help.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/help.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - from mozbuild.configure.options import Option ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/libstdcxx.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/libstdcxx.py (refactored) -@@ -13,7 +13,7 @@ - # will be used from shell, we just print the two assignments and evaluate - # them from shell. - --from __future__ import absolute_import -+ - - import os - import subprocess -@@ -76,6 +76,6 @@ - - if __name__ == '__main__': - cxx_env = os.environ['CXX'] -- print 'MOZ_LIBSTDCXX_TARGET_VERSION=%s' % find_version(cxx_env) -+ print('MOZ_LIBSTDCXX_TARGET_VERSION=%s' % find_version(cxx_env)) - host_cxx_env = os.environ.get('HOST_CXX', cxx_env) -- print 'MOZ_LIBSTDCXX_HOST_VERSION=%s' % find_version(host_cxx_env) -+ print('MOZ_LIBSTDCXX_HOST_VERSION=%s' % find_version(host_cxx_env)) ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/lint.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/lint.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals - --from StringIO import StringIO -+ -+from io import StringIO - from . import ( - CombinedDependsFunction, - ConfigureError, -@@ -42,7 +42,7 @@ - # - don't use @imports - # - don't have a closure - # - don't use global variables -- if func in self._imports or func.func_closure: -+ if func in self._imports or func.__closure__: - return True - for op, arg in disassemble_as_iter(func): - if op in ('LOAD_GLOBAL', 'STORE_GLOBAL'): ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/lint_util.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/lint_util.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import dis - import inspect -@@ -12,9 +12,9 @@ - # returns an iterator. - def disassemble_as_iter(co): - if inspect.ismethod(co): -- co = co.im_func -+ co = co.__func__ - if inspect.isfunction(co): -- co = co.func_code -+ co = co.__code__ - code = co.co_code - n = len(code) - i = 0 -@@ -30,7 +30,7 @@ - extended_arg = 0 - i += 2 - if op == dis.EXTENDED_ARG: -- extended_arg = arg * 65536L -+ extended_arg = arg * 65536 - continue - if op in dis.hasconst: - yield opname, co.co_consts[arg] ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/options.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/options.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - import sys -@@ -12,7 +12,7 @@ - - def istupleofstrings(obj): - return isinstance(obj, tuple) and len(obj) and all( -- isinstance(o, types.StringTypes) for o in obj) -+ isinstance(o, (str,)) for o in obj) - - - class OptionValue(tuple): -@@ -71,7 +71,7 @@ - in the form of a tuple for when values are given to the option (in the form - --option=value[,value2...]. - ''' -- def __nonzero__(self): -+ def __bool__(self): - return True - - -@@ -96,7 +96,7 @@ - if format_data: - message = message.format(**format_data) - super(ConflictingOptionError, self).__init__(message) -- for k, v in format_data.iteritems(): -+ for k, v in format_data.items(): - setattr(self, k, v) - - -@@ -132,7 +132,7 @@ - 'At least an option name or an environment variable name must ' - 'be given') - if name: -- if not isinstance(name, types.StringTypes): -+ if not isinstance(name, (str,)): - raise InvalidOptionError('Option must be a string') - if not name.startswith('--'): - raise InvalidOptionError('Option must start with `--`') -@@ -141,7 +141,7 @@ - if not name.islower(): - raise InvalidOptionError('Option must be all lowercase') - if env: -- if not isinstance(env, types.StringTypes): -+ if not isinstance(env, (str,)): - raise InvalidOptionError( - 'Environment variable name must be a string') - if not env.isupper(): -@@ -151,8 +151,8 @@ - isinstance(nargs, int) and nargs >= 0): - raise InvalidOptionError( - "nargs must be a positive integer, '?', '*' or '+'") -- if (not isinstance(default, types.StringTypes) and -- not isinstance(default, (bool, types.NoneType)) and -+ if (not isinstance(default, (str,)) and -+ not isinstance(default, (bool, type(None))) and - not istupleofstrings(default)): - raise InvalidOptionError( - 'default must be a bool, a string or a tuple of strings') -@@ -224,7 +224,7 @@ - ', '.join("'%s'" % c for c in choices)) - elif has_choices: - maxargs = self.maxargs -- if len(choices) < maxargs and maxargs != sys.maxint: -+ if len(choices) < maxargs and maxargs != sys.maxsize: - raise InvalidOptionError('Not enough `choices` for `nargs`') - self.choices = choices - self.help = help -@@ -238,7 +238,7 @@ - where prefix is one of 'with', 'without', 'enable' or 'disable'. - The '=values' part is optional. Values are separated with commas. - ''' -- if not isinstance(option, types.StringTypes): -+ if not isinstance(option, (str,)): - raise InvalidOptionError('Option must be a string') - - elements = option.split('=', 1) -@@ -291,7 +291,7 @@ - def maxargs(self): - if isinstance(self.nargs, int): - return self.nargs -- return 1 if self.nargs == '?' else sys.maxint -+ return 1 if self.nargs == '?' else sys.maxsize - - def _validate_nargs(self, num): - minargs, maxargs = self.minargs, self.maxargs -@@ -485,5 +485,5 @@ - - def __iter__(self): - for d in (self._args, self._extra_args): -- for arg, pos in d.itervalues(): -+ for arg, pos in d.values(): - yield arg ---- mozjs-52.4.0/python/mozbuild/mozbuild/configure/util.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/configure/util.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import codecs - import itertools -@@ -52,7 +52,7 @@ - - def __cmp__(self, other): - # LooseVersion checks isinstance(StringType), so work around it. -- if isinstance(other, unicode): -+ if isinstance(other, str): - other = other.encode('ascii') - return LooseVersion.__cmp__(self, other) - ---- mozjs-52.4.0/python/mozbuild/mozbuild/controller/building.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/controller/building.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import getpass - import json -@@ -108,7 +108,7 @@ - """ - o = [] - -- for tier, state in self.tiers.items(): -+ for tier, state in list(self.tiers.items()): - t_entry = dict( - name=tier, - start=state['begin_time'], -@@ -643,8 +643,8 @@ - - return '\n'.join(lines) - -- def __nonzero__(self): -- relative_values = [v for k, v in self._values.items() -+ def __bool__(self): -+ relative_values = [v for k, v in list(self._values.items()) - if k not in self.ABSOLUTE_KEYS] - return (all(v >= 0 for v in relative_values) and - any(v > 0 for v in relative_values)) -@@ -666,8 +666,8 @@ - """Install test files.""" - - if self.is_clobber_needed(): -- print(INSTALL_TESTS_CLOBBER.format( -- clobber_file=os.path.join(self.topobjdir, 'CLOBBER'))) -+ print((INSTALL_TESTS_CLOBBER.format( -+ clobber_file=os.path.join(self.topobjdir, 'CLOBBER')))) - sys.exit(1) - - if not test_objs: ---- mozjs-52.4.0/python/mozbuild/mozbuild/controller/clobber.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/controller/clobber.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function -+ - - r'''This module contains code for managing clobbering of the tree.''' - ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/context.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/context.py (refactored) -@@ -14,7 +14,7 @@ - contain, you've come to the right place. - """ - --from __future__ import absolute_import, unicode_literals -+ - - import os - -@@ -234,15 +234,15 @@ - This function is transactional: if setitem fails for one of the values, - the context is not updated at all.""" - if isinstance(iterable, dict): -- iterable = iterable.items() -+ iterable = list(iterable.items()) - - update = {} -- for key, value in itertools.chain(iterable, kwargs.items()): -+ for key, value in itertools.chain(iterable, list(kwargs.items())): - stored_type = self._validate(key, value) - # Don't create an instance of stored_type if coercion is needed, - # until all values are validated. - update[key] = (value, stored_type) -- for key, (value, stored_type) in update.items(): -+ for key, (value, stored_type) in list(update.items()): - if not isinstance(value, stored_type): - update[key] = stored_type(value) - else: -@@ -297,7 +297,7 @@ - self.update(value) - - --class FinalTargetValue(ContextDerivedValue, unicode): -+class FinalTargetValue(ContextDerivedValue, str): - def __new__(cls, context, value=""): - if not value: - value = 'dist/' -@@ -307,7 +307,7 @@ - value += 'bin' - if context['DIST_SUBDIR']: - value += '/' + context['DIST_SUBDIR'] -- return unicode.__new__(cls, value) -+ return str.__new__(cls, value) - - - def Enum(*values): -@@ -355,7 +355,7 @@ - cls = SourcePath - return super(PathMeta, cls).__call__(context, value) - --class Path(ContextDerivedValue, unicode): -+class Path(ContextDerivedValue, str, metaclass=PathMeta): - """Stores and resolves a source path relative to a given context - - This class is used as a backing type for some of the sandbox variables. -@@ -366,7 +366,6 @@ - - '!objdir/relative/paths' - - '%/filesystem/absolute/paths' - """ -- __metaclass__ = PathMeta - - def __new__(cls, context, value=None): - return super(Path, cls).__new__(cls, value) -@@ -386,7 +385,7 @@ - def __cmp__(self, other): - if isinstance(other, Path) and self.srcdir != other.srcdir: - return cmp(self.full_path, other.full_path) -- return cmp(unicode(self), other) -+ return cmp(str(self), other) - - # __cmp__ is not enough because unicode has __eq__, __ne__, etc. defined - # and __cmp__ is only used for those when they don't exist. -@@ -544,7 +543,7 @@ - __slots__ = tuple([name for name, _ in fields]) - - def __init__(self, context): -- for fname, ftype in self._fields.items(): -+ for fname, ftype in list(self._fields.items()): - if issubclass(ftype, ContextDerivedValue): - setattr(self, fname, self._fields[fname](context)) - else: -@@ -614,8 +613,8 @@ - return _TypedListWithAction - - WebPlatformTestManifest = TypedNamedTuple("WebPlatformTestManifest", -- [("manifest_path", unicode), -- ("test_root", unicode)]) -+ [("manifest_path", str), -+ ("test_root", str)]) - ManifestparserManifestList = OrderedListWithAction(read_manifestparser_manifest) - ReftestManifestList = OrderedListWithAction(read_reftest_manifest) - WptManifestList = TypedListWithAction(WebPlatformTestManifest, read_wpt_manifest) -@@ -623,12 +622,12 @@ - OrderedSourceList = ContextDerivedTypedList(SourcePath, StrictOrderingOnAppendList) - OrderedTestFlavorList = TypedList(Enum(*all_test_flavors()), - StrictOrderingOnAppendList) --OrderedStringList = TypedList(unicode, StrictOrderingOnAppendList) -+OrderedStringList = TypedList(str, StrictOrderingOnAppendList) - DependentTestsEntry = ContextDerivedTypedRecord(('files', OrderedSourceList), - ('tags', OrderedStringList), - ('flavors', OrderedTestFlavorList)) - BugzillaComponent = TypedNamedTuple('BugzillaComponent', -- [('product', unicode), ('component', unicode)]) -+ [('product', str), ('component', str)]) - - - class Files(SubContext): -@@ -764,7 +763,7 @@ - self.test_tags |= other.test_tags - self.test_flavors |= other.test_flavors - -- for k, v in other.items(): -+ for k, v in list(other.items()): - if k == 'IMPACTED_TESTS': - self.test_files |= set(mozpath.relpath(e.full_path, e.context.config.topsrcdir) - for e in v.files) -@@ -818,7 +817,7 @@ - - bug_components = Counter() - -- for f in files.values(): -+ for f in list(files.values()): - bug_component = f.get('BUG_COMPONENT') - if bug_component: - bug_components[bug_component] += 1 -@@ -889,11 +888,11 @@ - file. - """), - -- 'ANDROID_APK_NAME': (unicode, unicode, -+ 'ANDROID_APK_NAME': (str, str, - """The name of an Android APK file to generate. - """), - -- 'ANDROID_APK_PACKAGE': (unicode, unicode, -+ 'ANDROID_APK_PACKAGE': (str, str, - """The name of the Android package to generate R.java for, like org.mozilla.gecko. - """), - -@@ -962,7 +961,7 @@ - """), - - 'GENERATED_FILES': (StrictOrderingOnAppendListWithFlagsFactory({ -- 'script': unicode, -+ 'script': str, - 'inputs': list }), list, - """Generic generated files. - -@@ -1107,7 +1106,7 @@ - """Like ``OBJDIR_FILES``, with preprocessing. Use sparingly. - """), - -- 'FINAL_LIBRARY': (unicode, unicode, -+ 'FINAL_LIBRARY': (str, str, - """Library in which the objects of the current directory will be linked. - - This variable contains the name of a library, defined elsewhere with -@@ -1158,7 +1157,7 @@ - """A list of python unit tests. - """), - -- 'HOST_LIBRARY_NAME': (unicode, unicode, -+ 'HOST_LIBRARY_NAME': (str, str, - """Name of target library generated when cross compiling. - """), - -@@ -1176,7 +1175,7 @@ - libraries that link into this library via FINAL_LIBRARY. - """), - -- 'LIBRARY_NAME': (unicode, unicode, -+ 'LIBRARY_NAME': (str, str, - """The code name of the library generated for a directory. - - By default STATIC_LIBRARY_NAME and SHARED_LIBRARY_NAME take this name. -@@ -1188,7 +1187,7 @@ - ``example/components/xpcomsample.lib`` on Windows. - """), - -- 'SHARED_LIBRARY_NAME': (unicode, unicode, -+ 'SHARED_LIBRARY_NAME': (str, str, - """The name of the static library generated for a directory, if it needs to - differ from the library code name. - -@@ -1202,7 +1201,7 @@ - Implies FORCE_SHARED_LIB. - """), - -- 'STATIC_LIBRARY_NAME': (unicode, unicode, -+ 'STATIC_LIBRARY_NAME': (str, str, - """The name of the static library generated for a directory, if it needs to - differ from the library code name. - -@@ -1238,37 +1237,37 @@ - - This variable contains a list of system libaries to link against. - """), -- 'RCFILE': (unicode, unicode, -+ 'RCFILE': (str, str, - """The program .rc file. - - This variable can only be used on Windows. - """), - -- 'RESFILE': (unicode, unicode, -+ 'RESFILE': (str, str, - """The program .res file. - - This variable can only be used on Windows. - """), - -- 'RCINCLUDE': (unicode, unicode, -+ 'RCINCLUDE': (str, str, - """The resource script file to be included in the default .res file. - - This variable can only be used on Windows. - """), - -- 'DEFFILE': (unicode, unicode, -+ 'DEFFILE': (str, str, - """The program .def (module definition) file. - - This variable can only be used on Windows. - """), - -- 'LD_VERSION_SCRIPT': (unicode, unicode, -+ 'LD_VERSION_SCRIPT': (str, str, - """The linker version script for shared libraries. - - This variable can only be used on Linux. - """), - -- 'SYMBOLS_FILE': (Path, unicode, -+ 'SYMBOLS_FILE': (Path, str, - """A file containing a list of symbols to export from a shared library. - - The given file contains a list of symbols to be exported, and is -@@ -1323,7 +1322,7 @@ - ``BIN_SUFFIX``, the name will remain unchanged. - """), - -- 'SONAME': (unicode, unicode, -+ 'SONAME': (str, str, - """The soname of the shared object currently being linked - - soname is the "logical name" of a shared object, often used to provide -@@ -1379,7 +1378,7 @@ - ``GENERATED_FILES``. - """), - -- 'PROGRAM' : (unicode, unicode, -+ 'PROGRAM' : (str, str, - """Compiled executable name. - - If the configuration token ``BIN_SUFFIX`` is set, its value will be -@@ -1387,7 +1386,7 @@ - ``BIN_SUFFIX``, ``PROGRAM`` will remain unchanged. - """), - -- 'HOST_PROGRAM' : (unicode, unicode, -+ 'HOST_PROGRAM' : (str, str, - """Compiled host executable name. - - If the configuration token ``HOST_BIN_SUFFIX`` is set, its value will be -@@ -1425,7 +1424,7 @@ - files. - """), - -- 'XPIDL_MODULE': (unicode, unicode, -+ 'XPIDL_MODULE': (str, str, - """XPCOM Interface Definition Module Name. - - This is the name of the ``.xpt`` file that is created by linking -@@ -1576,14 +1575,14 @@ - """), - - # The following variables are used to control the target of installed files. -- 'XPI_NAME': (unicode, unicode, -+ 'XPI_NAME': (str, str, - """The name of an extension XPI to generate. - - When this variable is present, the results of this directory will end up - being packaged into an extension instead of the main dist/bin results. - """), - -- 'DIST_SUBDIR': (unicode, unicode, -+ 'DIST_SUBDIR': (str, str, - """The name of an alternate directory to install files to. - - When this variable is present, the results of this directory will end up -@@ -1591,7 +1590,7 @@ - otherwise be placed. - """), - -- 'FINAL_TARGET': (FinalTargetValue, unicode, -+ 'FINAL_TARGET': (FinalTargetValue, str, - """The name of the directory to install targets to. - - The directory is relative to the top of the object directory. The -@@ -1622,7 +1621,7 @@ - - 'GYP_DIRS': (StrictOrderingOnAppendListWithFlagsFactory({ - 'variables': dict, -- 'input': unicode, -+ 'input': str, - 'sandbox_vars': dict, - 'non_unified_sources': StrictOrderingOnAppendList, - }), list, -@@ -1799,7 +1798,7 @@ - } - - # Sanity check: we don't want any variable above to have a list as storage type. --for name, (storage_type, input_types, docs) in VARIABLES.items(): -+for name, (storage_type, input_types, docs) in list(VARIABLES.items()): - if storage_type == list: - raise RuntimeError('%s has a "list" storage type. Use "List" instead.' - % name) ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/data.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/data.py (refactored) -@@ -15,7 +15,7 @@ - structures. - """ - --from __future__ import absolute_import, unicode_literals -+ - - from mozbuild.util import StrictOrderingOnAppendList - from mozpack.chrome.manifest import ManifestEntry -@@ -186,7 +186,7 @@ - self.defines = defines - - def get_defines(self): -- for define, value in self.defines.iteritems(): -+ for define, value in self.defines.items(): - if value is True: - yield('-D%s' % define) - elif value is False: ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/emitter.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/emitter.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import itertools - import logging -@@ -120,8 +120,8 @@ - # arguments. This gross hack works around the problem until we - # rid ourselves of 2.6. - self.info = {} -- for k, v in mozinfo.info.items(): -- if isinstance(k, unicode): -+ for k, v in list(mozinfo.info.items()): -+ if isinstance(k, str): - k = k.encode('ascii') - self.info[k] = v - -@@ -197,7 +197,7 @@ - - def _emit_libs_derived(self, contexts): - # First do FINAL_LIBRARY linkage. -- for lib in (l for libs in self._libs.values() for l in libs): -+ for lib in (l for libs in list(self._libs.values()) for l in libs): - if not isinstance(lib, (StaticLibrary, RustLibrary)) or not lib.link_into: - continue - if lib.link_into not in self._libs: -@@ -257,12 +257,12 @@ - lib.link_into == outerlib.basename): - propagate_defines(lib, defines) - -- for lib in (l for libs in self._libs.values() for l in libs): -+ for lib in (l for libs in list(self._libs.values()) for l in libs): - if isinstance(lib, Library): - propagate_defines(lib, lib.lib_defines) - yield lib - -- for obj in self._binaries.values(): -+ for obj in list(self._binaries.values()): - yield obj - - LIBRARY_NAME_VAR = { -@@ -321,7 +321,7 @@ - libs[key] = l - if key not in libs: - libs[key] = l -- candidates = libs.values() -+ candidates = list(libs.values()) - if force_static and not candidates: - if dir: - raise SandboxValidationError( -@@ -383,9 +383,9 @@ - - def _verify_deps(self, context, crate_dir, crate_name, dependencies, description='Dependency'): - """Verify that a crate's dependencies all specify local paths.""" -- for dep_crate_name, values in dependencies.iteritems(): -+ for dep_crate_name, values in dependencies.items(): - # A simple version number. -- if isinstance(values, (str, unicode)): -+ if isinstance(values, str): - raise SandboxValidationError( - '%s %s of crate %s does not list a path' % (description, dep_crate_name, crate_name), - context) -@@ -463,7 +463,7 @@ - ' in [profile.%s] section') % (libname, profile_name), - context) - -- dependencies = set(config.get('dependencies', {}).iterkeys()) -+ dependencies = set(config.get('dependencies', {}).keys()) - - return RustLibrary(context, libname, cargo_file, crate_type, - dependencies, **static_args) -@@ -738,7 +738,7 @@ - assert not gen_sources['UNIFIED_SOURCES'] - - no_pgo = context.get('NO_PGO') -- no_pgo_sources = [f for f, flags in all_flags.iteritems() -+ no_pgo_sources = [f for f, flags in all_flags.items() - if flags.no_pgo] - if no_pgo: - if no_pgo_sources: -@@ -765,7 +765,7 @@ - - # The inverse of the above, mapping suffixes to their canonical suffix. - canonicalized_suffix_map = {} -- for suffix, alternatives in suffix_map.iteritems(): -+ for suffix, alternatives in suffix_map.items(): - alternatives.add(suffix) - for a in alternatives: - canonicalized_suffix_map[a] = suffix -@@ -786,7 +786,7 @@ - # a directory with mixed C and C++ source, but it's not that important. - cxx_sources = defaultdict(bool) - -- for variable, (klass, gen_klass, suffixes) in varmap.items(): -+ for variable, (klass, gen_klass, suffixes) in list(varmap.items()): - allowed_suffixes = set().union(*[suffix_map[s] for s in suffixes]) - - # First ensure that we haven't been given filetypes that we don't -@@ -812,7 +812,7 @@ - obj = cls(*arglist) - yield obj - -- for f, flags in all_flags.iteritems(): -+ for f, flags in all_flags.items(): - if flags.flags: - ext = mozpath.splitext(f)[1] - yield PerSourceFlag(context, f, flags.flags) -@@ -958,7 +958,7 @@ - for obj in self._handle_linkables(context, passthru, generated_files): - yield obj - -- generated_files.update(['%s%s' % (k, self.config.substs.get('BIN_SUFFIX', '')) for k in self._binaries.keys()]) -+ generated_files.update(['%s%s' % (k, self.config.substs.get('BIN_SUFFIX', '')) for k in list(self._binaries.keys())]) - - components = [] - for var, cls in ( -@@ -1055,10 +1055,10 @@ - for obj in self._process_jar_manifests(context): - yield obj - -- for name, jar in context.get('JAVA_JAR_TARGETS', {}).items(): -+ for name, jar in list(context.get('JAVA_JAR_TARGETS', {}).items()): - yield ContextWrapped(context, jar) - -- for name, data in context.get('ANDROID_ECLIPSE_PROJECT_TARGETS', {}).items(): -+ for name, data in list(context.get('ANDROID_ECLIPSE_PROJECT_TARGETS', {}).items()): - yield ContextWrapped(context, data) - - if context.get('USE_YASM') is True: -@@ -1127,7 +1127,7 @@ - script = mozpath.join(mozpath.dirname(mozpath.dirname(__file__)), - 'action', 'process_define_files.py') - yield GeneratedFile(context, script, 'process_define_file', -- unicode(path), -+ str(path), - [Path(context, path + '.in')]) - - generated_files = context.get('GENERATED_FILES') -@@ -1170,7 +1170,7 @@ - yield GeneratedFile(context, script, method, outputs, inputs) - - def _process_test_manifests(self, context): -- for prefix, info in TEST_MANIFESTS.items(): -+ for prefix, info in list(TEST_MANIFESTS.items()): - for path, manifest in context.get('%s_MANIFESTS' % prefix, []): - for obj in self._process_test_manifest(context, info, path, manifest): - yield obj -@@ -1261,7 +1261,7 @@ - - process_support_files(test) - -- for path, m_defaults in mpmanifest.manifest_defaults.items(): -+ for path, m_defaults in list(mpmanifest.manifest_defaults.items()): - process_support_files(m_defaults) - - # We also copy manifests into the output directory, ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/gyp_reader.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/gyp_reader.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - import gyp - import sys -@@ -69,7 +69,7 @@ - - - def encode(value): -- if isinstance(value, unicode): -+ if isinstance(value, str): - return value.encode('utf-8') - return value - -@@ -87,7 +87,7 @@ - # gyp expects plain str instead of unicode. The frontend code gives us - # unicode strings, so convert them. - path = encode(path) -- str_vars = dict((name, encode(value)) for name, value in vars.items()) -+ str_vars = dict((name, encode(value)) for name, value in list(vars.items())) - - params = { - b'parallel': False, -@@ -222,7 +222,7 @@ - if not f: - continue - # the result may be a string or a list. -- if isinstance(f, types.StringTypes): -+ if isinstance(f, (str,)): - context[var].append(f) - else: - context[var].extend(f) ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/mach_commands.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/mach_commands.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from collections import defaultdict - import os -@@ -105,13 +105,13 @@ - """ - components = defaultdict(set) - try: -- for p, m in self._get_files_info(paths, rev=rev).items(): -+ for p, m in list(self._get_files_info(paths, rev=rev).items()): - components[m.get('BUG_COMPONENT')].add(p) - except InvalidPathException as e: - print(e.message) - return 1 - -- for component, files in sorted(components.items(), key=lambda x: (x is None, x)): -+ for component, files in sorted(list(components.items()), key=lambda x: (x is None, x)): - print('%s :: %s' % (component.product, component.component) if component else 'UNKNOWN') - for f in sorted(files): - print(' %s' % f) -@@ -139,7 +139,7 @@ - help='Paths whose data to query') - def file_info_test_deps(self, paths, rev=None): - try: -- for p, m in self._get_files_info(paths, rev=rev).items(): -+ for p, m in list(self._get_files_info(paths, rev=rev).items()): - print('%s:' % mozpath.relpath(p, self.topsrcdir)) - if m.test_files: - print('\tTest file patterns:') ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/reader.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/reader.py (refactored) -@@ -16,7 +16,7 @@ - It does this by examining specific variables populated during execution. - """ - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import ast - import inspect -@@ -80,11 +80,12 @@ - ) - - from mozbuild.base import ExecutionSummary -+from functools import reduce - - - if sys.version_info.major == 2: -- text_type = unicode -- type_type = types.TypeType -+ text_type = str -+ type_type = type - else: - text_type = str - type_type = type -@@ -126,7 +127,7 @@ - b'JS_STANDALONE': b'1', - }) - udict = {} -- for k, v in self.substs.items(): -+ for k, v in list(self.substs.items()): - if isinstance(v, str): - udict[k.decode('utf-8')] = v.decode('utf-8') - else: -@@ -338,7 +339,7 @@ - raise Exception('`template` is a function decorator. You must ' - 'use it as `@template` preceding a function declaration.') - -- name = func.func_name -+ name = func.__name__ - - if name in self.templates: - raise KeyError( -@@ -417,7 +418,7 @@ - klass = self._context.__class__ - self._context.__class__ = TemplateContext - # The sandbox will do all the necessary checks for these merges. -- for key, value in context.items(): -+ for key, value in list(context.items()): - if isinstance(value, dict): - self[key].update(value) - elif isinstance(value, (list, HierarchicalStringList)): -@@ -434,10 +435,10 @@ - - class TemplateFunction(object): - def __init__(self, func, sandbox): -- self.path = func.func_code.co_filename -- self.name = func.func_name -- -- code = func.func_code -+ self.path = func.__code__.co_filename -+ self.name = func.__name__ -+ -+ code = func.__code__ - firstlineno = code.co_firstlineno - lines = sandbox._current_source.splitlines(True) - lines = inspect.getblock(lines[firstlineno - 1:]) -@@ -476,8 +477,8 @@ - compile(func_ast, self.path, 'exec'), - glob, - self.name, -- func.func_defaults, -- func.func_closure, -+ func.__defaults__, -+ func.__closure__, - ) - func() - -@@ -491,11 +492,11 @@ - '__builtins__': sandbox._builtins - } - func = types.FunctionType( -- self._func.func_code, -+ self._func.__code__, - glob, - self.name, -- self._func.func_defaults, -- self._func.func_closure -+ self._func.__defaults__, -+ self._func.__closure__ - ) - sandbox.exec_function(func, args, kwargs, self.path, - becomes_current_path=False) -@@ -511,7 +512,7 @@ - def visit_Str(self, node): - # String nodes we got from the AST parser are str, but we want - # unicode literals everywhere, so transform them. -- node.s = unicode(node.s) -+ node.s = str(node.s) - return node - - def visit_Name(self, node): -@@ -644,7 +645,7 @@ - - for l in traceback.format_exception(type(self.other), self.other, - self.trace): -- s.write(unicode(l)) -+ s.write(str(l)) - - return s.getvalue() - -@@ -794,7 +795,7 @@ - s.write(' %s\n' % inner.args[2]) - s.write('\n') - close_matches = difflib.get_close_matches(inner.args[2], -- VARIABLES.keys(), 2) -+ list(VARIABLES.keys()), 2) - if close_matches: - s.write('Maybe you meant %s?\n' % ' or '.join(close_matches)) - s.write('\n') -@@ -1196,7 +1197,7 @@ - - recurse_info[d][key] = dict(sandbox.metadata[key]) - -- for path, child_metadata in recurse_info.items(): -+ for path, child_metadata in list(recurse_info.items()): - child_path = path.join('moz.build').full_path - - # Ensure we don't break out of the topsrcdir. We don't do realpath -@@ -1288,7 +1289,7 @@ - # There is room to improve this code (and the code in - # _find_relevant_mozbuilds) to better handle multiple files in the same - # directory. Bug 1136966 tracks. -- for path, mbpaths in relevants.items(): -+ for path, mbpaths in list(relevants.items()): - path_mozbuilds[path] = [mozpath.join(topsrcdir, p) for p in mbpaths] - - for i, mbpath in enumerate(mbpaths[0:-1]): -@@ -1325,7 +1326,7 @@ - all_contexts.append(context) - - result = {} -- for path, paths in path_mozbuilds.items(): -+ for path, paths in list(path_mozbuilds.items()): - result[path] = reduce(lambda x, y: x + y, (contexts[p] for p in paths), []) - - return result, all_contexts -@@ -1352,7 +1353,7 @@ - - r = {} - -- for path, ctxs in paths.items(): -+ for path, ctxs in list(paths.items()): - flags = Files(Context()) - - for ctx in ctxs: ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/sandbox.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/sandbox.py (refactored) -@@ -17,7 +17,7 @@ - user-friendly error messages in the case of errors. - """ - --from __future__ import absolute_import, unicode_literals -+ - - import os - import sys ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/common.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/common.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - from mach.logging import LoggingManager - -@@ -36,7 +36,7 @@ - }, **extra_substs) - - self.substs_unicode = ReadOnlyDict({k.decode('utf-8'): v.decode('utf-8', -- 'replace') for k, v in self.substs.items()}) -+ 'replace') for k, v in list(self.substs.items())}) - - self.defines = self.substs - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_base.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_base.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import json - import os -@@ -12,7 +12,7 @@ - import tempfile - import unittest - --from cStringIO import StringIO -+from io import StringIO - from mozfile.mozfile import NamedTemporaryFile - - from mozunit import main -@@ -93,7 +93,7 @@ - mozconfig = os.path.join(d, 'mozconfig') - with open(mozconfig, 'wt') as fh: - fh.write('mk_add_options MOZ_OBJDIR=@TOPSRCDIR@/foo/@CONFIG_GUESS@') -- print('Wrote mozconfig %s' % mozconfig) -+ print(('Wrote mozconfig %s' % mozconfig)) - - topobjdir = os.path.join(d, 'foo', guess) - os.makedirs(topobjdir) ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_containers.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_containers.py (refactored) -@@ -152,7 +152,7 @@ - - self.assertEqual(test['foo'], 1) - -- self.assertEqual(test.keys(), ['foo', 'bar' ]) -+ self.assertEqual(list(test.keys()), ['foo', 'bar' ]) - - def test_defaults(self): - test = OrderedDefaultDict(bool, {'foo': 1 }) -@@ -161,7 +161,7 @@ - - self.assertEqual(test['qux'], False) - -- self.assertEqual(test.keys(), ['foo', 'qux' ]) -+ self.assertEqual(list(test.keys()), ['foo', 'qux' ]) - - - class TestKeyedDefaultDict(unittest.TestCase): ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_dotproperties.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_dotproperties.py (refactored) -@@ -1,11 +1,11 @@ - # -*- coding: utf-8 -*- - --from __future__ import unicode_literals -+ - - import os - import unittest - --from StringIO import StringIO -+from io import StringIO - - import mozpack.path as mozpath - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_expression.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_expression.py (refactored) -@@ -25,8 +25,8 @@ - - def test_in(self): - """test 'var in context' to not fall for fallback""" -- self.assert_('FAIL' in self.c) -- self.assert_('PASS' not in self.c) -+ self.assertTrue('FAIL' in self.c) -+ self.assertTrue('PASS' not in self.c) - - class TestExpression(unittest.TestCase): - """ -@@ -48,16 +48,16 @@ - - def test_not(self): - """Test for the ! operator""" -- self.assert_(Expression('!0').evaluate(self.c)) -- self.assert_(not Expression('!1').evaluate(self.c)) -+ self.assertTrue(Expression('!0').evaluate(self.c)) -+ self.assertTrue(not Expression('!1').evaluate(self.c)) - - def test_equals(self): - """ Test for the == operator""" -- self.assert_(Expression('FAIL == PASS').evaluate(self.c)) -+ self.assertTrue(Expression('FAIL == PASS').evaluate(self.c)) - - def test_notequals(self): - """ Test for the != operator""" -- self.assert_(Expression('FAIL != 1').evaluate(self.c)) -+ self.assertTrue(Expression('FAIL != 1').evaluate(self.c)) - - def test_logical_and(self): - """ Test for the && operator""" ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_jarmaker.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_jarmaker.py (refactored) -@@ -2,14 +2,14 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import print_function -+ - import unittest - - import os, sys, os.path, time, inspect - from filecmp import dircmp - from tempfile import mkdtemp - from shutil import rmtree, copy2 --from StringIO import StringIO -+from io import StringIO - from zipfile import ZipFile - import mozunit - -@@ -117,12 +117,12 @@ - """Helper to report rich results on difference between two directories. - """ - def _fillDiff(self, dc, rv, basepath="{0}"): -- rv['right_only'] += map(lambda l: basepath.format(l), dc.right_only) -- rv['left_only'] += map(lambda l: basepath.format(l), dc.left_only) -- rv['diff_files'] += map(lambda l: basepath.format(l), dc.diff_files) -- rv['funny'] += map(lambda l: basepath.format(l), dc.common_funny) -- rv['funny'] += map(lambda l: basepath.format(l), dc.funny_files) -- for subdir, _dc in dc.subdirs.iteritems(): -+ rv['right_only'] += [basepath.format(l) for l in dc.right_only] -+ rv['left_only'] += [basepath.format(l) for l in dc.left_only] -+ rv['diff_files'] += [basepath.format(l) for l in dc.diff_files] -+ rv['funny'] += [basepath.format(l) for l in dc.common_funny] -+ rv['funny'] += [basepath.format(l) for l in dc.funny_files] -+ for subdir, _dc in dc.subdirs.items(): - self._fillDiff(_dc, rv, basepath.format(subdir + "/{0}")) - def allResults(self, left, right): - rv = {'right_only':[], 'left_only':[], -@@ -295,7 +295,7 @@ - ('hoge', 'foo', '2'): ('qux', 'foo', '2'), - ('hoge', 'baz'): ('qux', 'baz'), - } -- for dest, src in expected_symlinks.iteritems(): -+ for dest, src in expected_symlinks.items(): - srcpath = os.path.join(self.srcdir, *src) - destpath = os.path.join(self.builddir, 'chrome', 'test', 'dir', - *dest) -@@ -317,7 +317,7 @@ - def test_en_US(self): - jm = self.jm - jm.makeJar(self.fake_empty_file, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, -+ self.assertEqual(jm.localedirs, - [ - os.path.join(os.path.abspath('/TOPSOURCEDIR'), - 'browser/locales', 'en-US') -@@ -326,13 +326,13 @@ - jm = self.jm - jm.l10nbase = '/L10N_BASE' - jm.makeJar(self.fake_empty_file, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, [os.path.join('/L10N_BASE', 'browser')]) -+ self.assertEqual(jm.localedirs, [os.path.join('/L10N_BASE', 'browser')]) - def test_l10n_merge(self): - jm = self.jm - jm.l10nbase = '/L10N_BASE' - jm.l10nmerge = '/L10N_MERGE' - jm.makeJar(self.fake_empty_file, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, -+ self.assertEqual(jm.localedirs, - [os.path.join('/L10N_MERGE', 'browser'), - os.path.join('/L10N_BASE', 'browser'), - os.path.join(os.path.abspath('/TOPSOURCEDIR'), -@@ -346,7 +346,7 @@ - ''') - jarcontents.name = 'override.mn' - jm.makeJar(jarcontents, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, -+ self.assertEqual(jm.localedirs, - [ - os.path.join(os.path.abspath('/TOPSOURCEDIR'), - 'dom/locales', 'en-US') -@@ -360,7 +360,7 @@ - ''') - jarcontents.name = 'override.mn' - jm.makeJar(jarcontents, '/NO_OUTPUT_REQUIRED') -- self.assertEquals(jm.localedirs, [os.path.join('/L10N_BASE', 'dom')]) -+ self.assertEqual(jm.localedirs, [os.path.join('/L10N_BASE', 'dom')]) - - - if __name__ == '__main__': ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_line_endings.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_line_endings.py (refactored) -@@ -1,6 +1,6 @@ - import unittest - --from StringIO import StringIO -+from io import StringIO - import os - import sys - import os.path -@@ -30,17 +30,17 @@ - def testMac(self): - self.createFile(['\x0D']*3) - self.pp.do_include(self.tempnam) -- self.assertEquals(self.pp.out.getvalue(), 'a\nb\nc\n') -+ self.assertEqual(self.pp.out.getvalue(), 'a\nb\nc\n') - - def testUnix(self): - self.createFile(['\x0A']*3) - self.pp.do_include(self.tempnam) -- self.assertEquals(self.pp.out.getvalue(), 'a\nb\nc\n') -+ self.assertEqual(self.pp.out.getvalue(), 'a\nb\nc\n') - - def testWindows(self): - self.createFile(['\x0D\x0A']*3) - self.pp.do_include(self.tempnam) -- self.assertEquals(self.pp.out.getvalue(), 'a\nb\nc\n') -+ self.assertEqual(self.pp.out.getvalue(), 'a\nb\nc\n') - - if __name__ == '__main__': - mozunit.main() ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_makeutil.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_makeutil.py (refactored) -@@ -11,7 +11,7 @@ - from mozunit import main - import os - import unittest --from StringIO import StringIO -+from io import StringIO - - - class TestMakefile(unittest.TestCase): ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_mozconfig.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_mozconfig.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import unittest -@@ -480,9 +480,9 @@ - - self.assertTrue(e.exception.message.startswith( - 'Evaluation of your mozconfig exited with an error')) -- self.assertEquals(e.exception.path, -+ self.assertEqual(e.exception.path, - mozconfig.name.replace(os.sep, '/')) -- self.assertEquals(e.exception.output, ['hello world']) -+ self.assertEqual(e.exception.output, ['hello world']) - - - if __name__ == '__main__': ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_mozinfo.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_mozinfo.py (refactored) -@@ -8,7 +8,7 @@ - import tempfile - import unittest - --from StringIO import StringIO -+from io import StringIO - - import mozunit - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_preprocessor.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_preprocessor.py (refactored) -@@ -4,7 +4,7 @@ - - import unittest - --from StringIO import StringIO -+from io import StringIO - import os - import shutil - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_pythonutil.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_pythonutil.py (refactored) -@@ -12,7 +12,7 @@ - def test_iter_modules_in_path(self): - mozbuild_path = os.path.normcase(os.path.dirname(os.path.dirname(__file__))) - paths = list(iter_modules_in_path(mozbuild_path)) -- self.assertEquals(sorted(paths), [ -+ self.assertEqual(sorted(paths), [ - os.path.join(os.path.abspath(mozbuild_path), '__init__.py'), - os.path.join(os.path.abspath(mozbuild_path), 'pythonutil.py'), - os.path.join(os.path.abspath(mozbuild_path), 'test', 'test_pythonutil.py'), ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/test_util.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/test_util.py (refactored) -@@ -3,7 +3,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import itertools - import hashlib -@@ -110,7 +110,7 @@ - ''' - def __call__(self, name, mode): - if 'w' in mode: -- raise Exception, 'Unexpected open with write mode' -+ raise Exception('Unexpected open with write mode') - return MockedOpen.__call__(self, name, mode) - - with MyMockedOpen({'file': 'content'}): -@@ -432,7 +432,7 @@ - self.assertEqual(len(l), 0) - original = ['a', 'b', 'c'] - l = ListWithAction(['a', 'b', 'c'], action=self.action) -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -445,7 +445,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l.extend(original) -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -455,7 +455,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l[:] = original -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -465,7 +465,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l2 = l + original -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l2) - - with self.assertRaises(ValueError): -@@ -475,7 +475,7 @@ - l = ListWithAction(action=self.action) - original = ['a', 'b'] - l += original -- expected = map(self.action, original) -+ expected = list(map(self.action, original)) - self.assertSameList(expected, l) - - with self.assertRaises(ValueError): -@@ -524,7 +524,7 @@ - - def test_strict_ordering_on_append_list_with_flags_factory_extend(self): - FooList = StrictOrderingOnAppendListWithFlagsFactory({ -- 'foo': bool, 'bar': unicode -+ 'foo': bool, 'bar': str - }) - foo = FooList(['a', 'b', 'c']) - foo['a'].foo = True -@@ -532,7 +532,7 @@ - - # Don't allow extending lists with different flag definitions. - BarList = StrictOrderingOnAppendListWithFlagsFactory({ -- 'foo': unicode, 'baz': bool -+ 'foo': str, 'baz': bool - }) - bar = BarList(['d', 'e', 'f']) - bar['d'].foo = 'foo' -@@ -752,9 +752,9 @@ - - class TypedTestStrictOrderingOnAppendList(unittest.TestCase): - def test_init(self): -- class Unicode(unicode): -+ class Unicode(str): - def __init__(self, other): -- if not isinstance(other, unicode): -+ if not isinstance(other, str): - raise ValueError() - super(Unicode, self).__init__(other) - -@@ -776,14 +776,14 @@ - - class TestTypedNamedTuple(unittest.TestCase): - def test_simple(self): -- FooBar = TypedNamedTuple('FooBar', [('foo', unicode), ('bar', int)]) -+ FooBar = TypedNamedTuple('FooBar', [('foo', str), ('bar', int)]) - - t = FooBar(foo='foo', bar=2) -- self.assertEquals(type(t), FooBar) -- self.assertEquals(t.foo, 'foo') -- self.assertEquals(t.bar, 2) -- self.assertEquals(t[0], 'foo') -- self.assertEquals(t[1], 2) -+ self.assertEqual(type(t), FooBar) -+ self.assertEqual(t.foo, 'foo') -+ self.assertEqual(t.bar, 2) -+ self.assertEqual(t[0], 'foo') -+ self.assertEqual(t[1], 2) - - FooBar('foo', 2) - -@@ -796,7 +796,7 @@ - # arguments. - t1 = ('foo', 3) - t2 = FooBar(t1) -- self.assertEquals(type(t2), FooBar) -+ self.assertEqual(type(t2), FooBar) - self.assertEqual(FooBar(t1), FooBar('foo', 3)) - - -@@ -871,18 +871,18 @@ - CompilerType = EnumString.subclass('msvc', 'gcc', 'clang', 'clang-cl') - - type = CompilerType('msvc') -- self.assertEquals(type, 'msvc') -- self.assertNotEquals(type, 'gcc') -- self.assertNotEquals(type, 'clang') -- self.assertNotEquals(type, 'clang-cl') -+ self.assertEqual(type, 'msvc') -+ self.assertNotEqual(type, 'gcc') -+ self.assertNotEqual(type, 'clang') -+ self.assertNotEqual(type, 'clang-cl') - self.assertIn(type, ('msvc', 'clang-cl')) - self.assertNotIn(type, ('gcc', 'clang')) - - with self.assertRaises(EnumStringComparisonError): -- self.assertEquals(type, 'foo') -+ self.assertEqual(type, 'foo') - - with self.assertRaises(EnumStringComparisonError): -- self.assertNotEquals(type, 'foo') -+ self.assertNotEqual(type, 'foo') - - with self.assertRaises(EnumStringComparisonError): - self.assertIn(type, ('foo', 'gcc')) ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/action/test_buildlist.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/action/test_buildlist.py (refactored) -@@ -38,11 +38,11 @@ - lines = [line.rstrip() for line in f.readlines()] - f.close() - for line in lines: -- self.assert_(len(l) > 0, -+ self.assertTrue(len(l) > 0, - "ran out of expected lines! (expected '{0}', got '{1}')" - .format(l, lines)) - self.assertEqual(line, l.pop(0)) -- self.assert_(len(l) == 0, -+ self.assertTrue(len(l) == 0, - "not enough lines in file! (expected '{0}'," - " got '{1}'".format(l, lines)) - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/action/test_generate_browsersearch.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/action/test_generate_browsersearch.py (refactored) -@@ -3,7 +3,7 @@ - # Any copyright is dedicated to the Public Domain. - # http://creativecommons.org/publicdomain/zero/1.0/ - --from __future__ import unicode_literals -+ - - import json - import os -@@ -43,8 +43,8 @@ - - def test_valid_unicode(self): - o = self._test_one('valid-zh-CN') -- self.assertEquals(o['default'], '百度') -- self.assertEquals(o['engines'], ['百度', 'Google']) -+ self.assertEqual(o['default'], '百度') -+ self.assertEqual(o['engines'], ['百度', 'Google']) - - def test_invalid_unicode(self): - with self.assertRaises(UnicodeDecodeError): ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/action/test_package_fennec_apk.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/action/test_package_fennec_apk.py (refactored) -@@ -3,7 +3,7 @@ - # Any copyright is dedicated to the Public Domain. - # http://creativecommons.org/publicdomain/zero/1.0/ - --from __future__ import unicode_literals -+ - - import os - import unittest -@@ -41,14 +41,14 @@ - root_files=[data('root_file.txt')]) - - # omni.ja ends up in assets/omni.ja. -- self.assertEquals(jarrer['assets/omni.ja'].open().read().strip(), 'omni.ja') -+ self.assertEqual(jarrer['assets/omni.ja'].open().read().strip(), 'omni.ja') - - # Everything else is in place. - for name in ('classes.dex', - 'assets/asset.txt', - 'lib/lib.txt', - 'root_file.txt'): -- self.assertEquals(jarrer[name].open().read().strip(), name) -+ self.assertEqual(jarrer[name].open().read().strip(), name) - - def test_inputs(self): - # Language repacks take updated resources from an ap_ and pack them -@@ -57,8 +57,8 @@ - # overrides the first. - jarrer = package(inputs=[data('input2.apk'), data('input1.ap_')]) - -- files1 = JarReader(data('input1.ap_')).entries.keys() -- files2 = JarReader(data('input2.apk')).entries.keys() -+ files1 = list(JarReader(data('input1.ap_')).entries.keys()) -+ files2 = list(JarReader(data('input2.apk')).entries.keys()) - for name in files2: - self.assertTrue(name in files1 or - jarrer[name].open().read().startswith('input2/')) ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/common.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/common.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import unittest ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_build.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_build.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals, print_function -+ - - import buildconfig - import os ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_configenvironment.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_configenvironment.py (refactored) -@@ -3,7 +3,7 @@ - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - - import os, posixpath --from StringIO import StringIO -+from io import StringIO - import unittest - from mozunit import main, MockedOpen - -@@ -29,7 +29,7 @@ - self.substs = ReadOnlyDict(d) - - d = dict(self.substs_unicode) -- d[u'top_srcdir'] = top_srcdir.decode('utf-8') -+ d['top_srcdir'] = top_srcdir.decode('utf-8') - self.substs_unicode = ReadOnlyDict(d) - - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_recursivemake.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_recursivemake.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -- --import cPickle as pickle -+ -+ -+import pickle as pickle - import json - import os - import unittest -@@ -331,7 +331,7 @@ - ], - } - -- for var, val in expected.items(): -+ for var, val in list(expected.items()): - # print("test_variable_passthru[%s]" % (var)) - found = [str for str in lines if str.startswith(var)] - self.assertEqual(found, val) -@@ -370,7 +370,7 @@ - ], - } - -- for var, val in expected.items(): -+ for var, val in list(expected.items()): - found = [str for str in lines if str.startswith(var)] - self.assertEqual(found, val) - -@@ -544,7 +544,7 @@ - - # This is not the most robust test in the world, but it gets the job - # done. -- entries = [e for e in m._dests.keys() if '**' in e] -+ entries = [e for e in list(m._dests.keys()) if '**' in e] - self.assertEqual(len(entries), 1) - self.assertIn('support/**', entries[0]) - -@@ -562,7 +562,7 @@ - set(['child/test_sub.js', - 'child/data/**', - 'child/another-file.sjs'])) -- for key in test_installs.keys(): -+ for key in list(test_installs.keys()): - self.assertIn(key, test_installs) - - test_files_manifest = mozpath.join(env.topobjdir, -@@ -576,7 +576,7 @@ - # Then, synthesize one from the test-installs.pkl file. This should - # allow us to re-create a subset of the above. - synthesized_manifest = InstallManifest() -- for item, installs in test_installs.items(): -+ for item, installs in list(test_installs.items()): - for install_info in installs: - if len(install_info) == 3: - synthesized_manifest.add_pattern_symlink(*install_info) -@@ -584,7 +584,7 @@ - synthesized_manifest.add_symlink(*install_info) - - self.assertEqual(len(synthesized_manifest), 3) -- for item, info in synthesized_manifest._dests.items(): -+ for item, info in list(synthesized_manifest._dests.items()): - self.assertIn(item, m) - self.assertEqual(info, m._dests[item]) - -@@ -758,7 +758,7 @@ - expected[mozpath.join(env.topobjdir, 'final-target')] = [ - 'FINAL_TARGET = $(DEPTH)/random-final-target' - ] -- for key, expected_rules in expected.iteritems(): -+ for key, expected_rules in expected.items(): - backend_path = mozpath.join(key, 'backend.mk') - lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]] - found = [str for str in lines if ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_visualstudio.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/backend/test_visualstudio.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - from xml.dom.minidom import parse - import os ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/common.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/common.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import copy - import errno -@@ -16,7 +16,7 @@ - from mozbuild.util import ReadOnlyNamespace - from mozpack import path as mozpath - --from StringIO import StringIO -+from io import StringIO - from which import WhichError - - from buildconfig import ( -@@ -78,10 +78,10 @@ - self._search_path = environ.get('PATH', '').split(os.pathsep) - - self._subprocess_paths = { -- mozpath.abspath(k): v for k, v in paths.iteritems() if v -+ mozpath.abspath(k): v for k, v in paths.items() if v - } - -- paths = paths.keys() -+ paths = list(paths.keys()) - - environ = dict(environ) - if 'CONFIG_SHELL' not in environ: ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/lint.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/lint.py (refactored) -@@ -2,11 +2,11 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - import unittest --from StringIO import StringIO -+from io import StringIO - from mozunit import main - from buildconfig import ( - topobjdir, -@@ -42,9 +42,7 @@ - return type.__new__(mcs, name, bases, attrs) - - --class Lint(unittest.TestCase): -- __metaclass__ = LintMeta -- -+class Lint(unittest.TestCase, metaclass=LintMeta): - def setUp(self): - self._curdir = os.getcwd() - os.chdir(topobjdir) ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_checks_configure.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_checks_configure.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -- --from StringIO import StringIO -+ -+ -+from io import StringIO - import os - import sys - import textwrap -@@ -447,7 +447,7 @@ - checking for a... %s - ''' % self.OTHER_A)) - -- dirs = map(mozpath.dirname, (self.OTHER_A, self.KNOWN_A)) -+ dirs = list(map(mozpath.dirname, (self.OTHER_A, self.KNOWN_A))) - config, out, status = self.get_result(textwrap.dedent('''\ - check_prog("A", ("known-a",), paths=["%s"]) - ''' % os.pathsep.join(dirs))) -@@ -457,7 +457,7 @@ - checking for a... %s - ''' % self.OTHER_A)) - -- dirs = map(mozpath.dirname, (self.KNOWN_A, self.KNOWN_B)) -+ dirs = list(map(mozpath.dirname, (self.KNOWN_A, self.KNOWN_B))) - config, out, status = self.get_result(textwrap.dedent('''\ - check_prog("A", ("known-a",), paths=["%s", "%s"]) - ''' % (os.pathsep.join(dirs), self.OTHER_A))) ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_compile_checks.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_compile_checks.py (refactored) -@@ -2,14 +2,14 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - import textwrap - import unittest - import mozpack.path as mozpath - --from StringIO import StringIO -+from io import StringIO - - from buildconfig import topsrcdir - from common import ConfigureTestSandbox ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_configure.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_configure.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -- --from StringIO import StringIO -+ -+ -+from io import StringIO - import os - import sys - import textwrap -@@ -43,7 +43,7 @@ - - if '--help' in options: - return out.getvalue(), config -- self.assertEquals('', out.getvalue()) -+ self.assertEqual('', out.getvalue()) - return config - - def moz_configure(self, source): -@@ -55,7 +55,7 @@ - def test_defaults(self): - config = self.get_config() - self.maxDiff = None -- self.assertEquals({ -+ self.assertEqual({ - 'CHOICES': NegativeOptionValue(), - 'DEFAULTED': PositiveOptionValue(('not-simple',)), - 'IS_GCC': NegativeOptionValue(), -@@ -71,9 +71,9 @@ - def test_help(self): - help, config = self.get_config(['--help'], prog='configure') - -- self.assertEquals({}, config) -+ self.assertEqual({}, config) - self.maxDiff = None -- self.assertEquals( -+ self.assertEqual( - 'Usage: configure [options]\n' - '\n' - 'Options: [defaults in brackets after descriptions]\n' -@@ -109,7 +109,7 @@ - ): - self.assertNotIn('ENABLED_SIMPLE', config) - self.assertIn('SIMPLE', config) -- self.assertEquals(NegativeOptionValue(), config['SIMPLE']) -+ self.assertEqual(NegativeOptionValue(), config['SIMPLE']) - - for config in ( - self.get_config(['--enable-simple']), -@@ -117,7 +117,7 @@ - ): - self.assertIn('ENABLED_SIMPLE', config) - self.assertIn('SIMPLE', config) -- self.assertEquals(PositiveOptionValue(), config['SIMPLE']) -+ self.assertEqual(PositiveOptionValue(), config['SIMPLE']) - self.assertIs(config['SIMPLE'], config['ENABLED_SIMPLE']) - - # --enable-simple doesn't take values. -@@ -135,7 +135,7 @@ - env={'MOZ_WITH_ENV': '1'}), - ): - self.assertIn('WITH_ENV', config) -- self.assertEquals(NegativeOptionValue(), config['WITH_ENV']) -+ self.assertEqual(NegativeOptionValue(), config['WITH_ENV']) - - for config in ( - self.get_config(['--enable-with-env']), -@@ -145,7 +145,7 @@ - env={'MOZ_WITH_ENV': ''}), - ): - self.assertIn('WITH_ENV', config) -- self.assertEquals(PositiveOptionValue(), config['WITH_ENV']) -+ self.assertEqual(PositiveOptionValue(), config['WITH_ENV']) - - with self.assertRaises(InvalidOptionError): - self.get_config(['--enable-with-env=value']) -@@ -160,23 +160,23 @@ - self.get_config(['--enable-values', '--disable-values']), - ): - self.assertIn(name, config) -- self.assertEquals(NegativeOptionValue(), config[name]) -+ self.assertEqual(NegativeOptionValue(), config[name]) - - for config in ( - self.get_config(['--enable-values']), - self.get_config(['--disable-values', '--enable-values']), - ): - self.assertIn(name, config) -- self.assertEquals(PositiveOptionValue(), config[name]) -+ self.assertEqual(PositiveOptionValue(), config[name]) - - config = self.get_config(['--enable-values=foo']) - self.assertIn(name, config) -- self.assertEquals(PositiveOptionValue(('foo',)), config[name]) -+ self.assertEqual(PositiveOptionValue(('foo',)), config[name]) - - config = self.get_config(['--enable-values=foo,bar']) - self.assertIn(name, config) - self.assertTrue(config[name]) -- self.assertEquals(PositiveOptionValue(('foo', 'bar')), config[name]) -+ self.assertEqual(PositiveOptionValue(('foo', 'bar')), config[name]) - - def test_values2(self): - self.test_values('VALUES2') -@@ -187,12 +187,12 @@ - def test_returned_default(self): - config = self.get_config(['--enable-simple']) - self.assertIn('DEFAULTED', config) -- self.assertEquals( -+ self.assertEqual( - PositiveOptionValue(('simple',)), config['DEFAULTED']) - - config = self.get_config(['--disable-simple']) - self.assertIn('DEFAULTED', config) -- self.assertEquals( -+ self.assertEqual( - PositiveOptionValue(('not-simple',)), config['DEFAULTED']) - - def test_returned_choices(self): -@@ -200,13 +200,13 @@ - config = self.get_config( - ['--enable-values=alpha', '--returned-choices=%s' % val]) - self.assertIn('CHOICES', config) -- self.assertEquals(PositiveOptionValue((val,)), config['CHOICES']) -+ self.assertEqual(PositiveOptionValue((val,)), config['CHOICES']) - - for val in ('0', '1', '2'): - config = self.get_config( - ['--enable-values=numeric', '--returned-choices=%s' % val]) - self.assertIn('CHOICES', config) -- self.assertEquals(PositiveOptionValue((val,)), config['CHOICES']) -+ self.assertEqual(PositiveOptionValue((val,)), config['CHOICES']) - - with self.assertRaises(InvalidOptionError): - self.get_config(['--enable-values=numeric', -@@ -218,12 +218,12 @@ - def test_included(self): - config = self.get_config(env={'CC': 'gcc'}) - self.assertIn('IS_GCC', config) -- self.assertEquals(config['IS_GCC'], True) -+ self.assertEqual(config['IS_GCC'], True) - - config = self.get_config( - ['--enable-include=extra.configure', '--extra']) - self.assertIn('EXTRA', config) -- self.assertEquals(PositiveOptionValue(), config['EXTRA']) -+ self.assertEqual(PositiveOptionValue(), config['EXTRA']) - - with self.assertRaises(InvalidOptionError): - self.get_config(['--extra']) -@@ -231,7 +231,7 @@ - def test_template(self): - config = self.get_config(env={'CC': 'gcc'}) - self.assertIn('CFLAGS', config) -- self.assertEquals(config['CFLAGS'], ['-Werror=foobar']) -+ self.assertEqual(config['CFLAGS'], ['-Werror=foobar']) - - config = self.get_config(env={'CC': 'clang'}) - self.assertNotIn('CFLAGS', config) -@@ -288,7 +288,7 @@ - sandbox - ) - -- import __builtin__ -+ import builtins - self.assertIs(sandbox['foo'](), __builtin__) - - exec_(textwrap.dedent(''' -@@ -300,7 +300,7 @@ - ) - - f = sandbox['foo']() -- self.assertEquals(f.name, os.devnull) -+ self.assertEqual(f.name, os.devnull) - f.close() - - # This unlocks the sandbox -@@ -336,8 +336,8 @@ - self.assertIs(sandbox['foo'](), sandbox) - - # Nothing leaked from the function being executed -- self.assertEquals(sandbox.keys(), ['__builtins__', 'foo']) -- self.assertEquals(sandbox['__builtins__'], ConfigureSandbox.BUILTINS) -+ self.assertEqual(list(sandbox.keys()), ['__builtins__', 'foo']) -+ self.assertEqual(sandbox['__builtins__'], ConfigureSandbox.BUILTINS) - - exec_(textwrap.dedent(''' - @template -@@ -354,7 +354,7 @@ - with self.assertRaises(NameError) as e: - sandbox._depends[sandbox['bar']].result - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "global name 'sys' is not defined") - - def test_apply_imports(self): -@@ -380,28 +380,28 @@ - sandbox - ) - -- self.assertEquals(len(imports), 1) -+ self.assertEqual(len(imports), 1) - - def test_os_path(self): - config = self.get_config(['--with-imports=%s' % __file__]) - self.assertIn('HAS_ABSPATH', config) -- self.assertEquals(config['HAS_ABSPATH'], True) -+ self.assertEqual(config['HAS_ABSPATH'], True) - self.assertIn('HAS_GETATIME', config) -- self.assertEquals(config['HAS_GETATIME'], True) -+ self.assertEqual(config['HAS_GETATIME'], True) - self.assertIn('HAS_GETATIME2', config) -- self.assertEquals(config['HAS_GETATIME2'], False) -+ self.assertEqual(config['HAS_GETATIME2'], False) - - def test_template_call(self): - config = self.get_config(env={'CC': 'gcc'}) - self.assertIn('TEMPLATE_VALUE', config) -- self.assertEquals(config['TEMPLATE_VALUE'], 42) -+ self.assertEqual(config['TEMPLATE_VALUE'], 42) - self.assertIn('TEMPLATE_VALUE_2', config) -- self.assertEquals(config['TEMPLATE_VALUE_2'], 21) -+ self.assertEqual(config['TEMPLATE_VALUE_2'], 21) - - def test_template_imports(self): - config = self.get_config(['--enable-imports-in-template']) - self.assertIn('PLATFORM', config) -- self.assertEquals(config['PLATFORM'], sys.platform) -+ self.assertEqual(config['PLATFORM'], sys.platform) - - def test_decorators(self): - config = {} -@@ -419,27 +419,27 @@ - return self.get_config(*args, configure='set_config.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--set-foo']) - self.assertIn('FOO', config) -- self.assertEquals(config['FOO'], True) -+ self.assertEqual(config['FOO'], True) - - config = get_config(['--set-bar']) - self.assertNotIn('FOO', config) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], True) -+ self.assertEqual(config['BAR'], True) - - config = get_config(['--set-value=qux']) - self.assertIn('VALUE', config) -- self.assertEquals(config['VALUE'], 'qux') -+ self.assertEqual(config['VALUE'], 'qux') - - config = get_config(['--set-name=hoge']) - self.assertIn('hoge', config) -- self.assertEquals(config['hoge'], True) -+ self.assertEqual(config['hoge'], True) - - config = get_config([]) -- self.assertEquals(config, {'BAR': False}) -+ self.assertEqual(config, {'BAR': False}) - - with self.assertRaises(ConfigureError): - # Both --set-foo and --set-name=FOO are going to try to -@@ -454,11 +454,11 @@ - set_config('QUX', 'qux', when='--with-qux') - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - }) - config = self.get_config(['--with-qux']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - 'QUX': 'qux', - }) -@@ -468,27 +468,27 @@ - return self.get_config(*args, configure='set_define.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {'DEFINES': {}}) -+ self.assertEqual(config, {'DEFINES': {}}) - - config = get_config(['--set-foo']) - self.assertIn('FOO', config['DEFINES']) -- self.assertEquals(config['DEFINES']['FOO'], True) -+ self.assertEqual(config['DEFINES']['FOO'], True) - - config = get_config(['--set-bar']) - self.assertNotIn('FOO', config['DEFINES']) - self.assertIn('BAR', config['DEFINES']) -- self.assertEquals(config['DEFINES']['BAR'], True) -+ self.assertEqual(config['DEFINES']['BAR'], True) - - config = get_config(['--set-value=qux']) - self.assertIn('VALUE', config['DEFINES']) -- self.assertEquals(config['DEFINES']['VALUE'], 'qux') -+ self.assertEqual(config['DEFINES']['VALUE'], 'qux') - - config = get_config(['--set-name=hoge']) - self.assertIn('hoge', config['DEFINES']) -- self.assertEquals(config['DEFINES']['hoge'], True) -+ self.assertEqual(config['DEFINES']['hoge'], True) - - config = get_config([]) -- self.assertEquals(config['DEFINES'], {'BAR': False}) -+ self.assertEqual(config['DEFINES'], {'BAR': False}) - - with self.assertRaises(ConfigureError): - # Both --set-foo and --set-name=FOO are going to try to -@@ -503,11 +503,11 @@ - set_define('QUX', 'qux', when='--with-qux') - '''): - config = self.get_config() -- self.assertEquals(config['DEFINES'], { -+ self.assertEqual(config['DEFINES'], { - 'FOO': 'foo', - }) - config = self.get_config(['--with-qux']) -- self.assertEquals(config['DEFINES'], { -+ self.assertEqual(config['DEFINES'], { - 'FOO': 'foo', - 'QUX': 'qux', - }) -@@ -518,19 +518,19 @@ - *args, configure='imply_option/simple.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--enable-foo']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], PositiveOptionValue()) -+ self.assertEqual(config['BAR'], PositiveOptionValue()) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo', '--disable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--enable-bar' implied by '--enable-foo' conflicts with " - "'--disable-bar' from the command-line") -@@ -541,31 +541,31 @@ - *args, configure='imply_option/negative.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--enable-foo']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], NegativeOptionValue()) -+ self.assertEqual(config['BAR'], NegativeOptionValue()) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo', '--enable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--disable-bar' implied by '--enable-foo' conflicts with " - "'--enable-bar' from the command-line") - - config = get_config(['--disable-hoge']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], NegativeOptionValue()) -+ self.assertEqual(config['BAR'], NegativeOptionValue()) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--disable-hoge', '--enable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--disable-bar' implied by '--disable-hoge' conflicts with " - "'--enable-bar' from the command-line") -@@ -576,23 +576,23 @@ - *args, configure='imply_option/values.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config(['--enable-foo=a']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], PositiveOptionValue(('a',))) -+ self.assertEqual(config['BAR'], PositiveOptionValue(('a',))) - - config = get_config(['--enable-foo=a,b']) - self.assertIn('BAR', config) -- self.assertEquals(config['BAR'], PositiveOptionValue(('a','b'))) -+ self.assertEqual(config['BAR'], PositiveOptionValue(('a','b'))) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo=a,b', '--disable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--enable-bar=a,b' implied by '--enable-foo' conflicts with " - "'--disable-bar' from the command-line") -@@ -603,15 +603,15 @@ - *args, configure='imply_option/infer.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - with self.assertRaises(InvalidOptionError) as e: - get_config(['--enable-foo', '--disable-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "'--enable-bar' implied by '--enable-foo' conflicts with " - "'--disable-bar' from the command-line") -@@ -619,7 +619,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config([], configure='imply_option/infer_ko.configure') - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - "Cannot infer what implies '--enable-bar'. Please add a `reason` " - "to the `imply_option` call.") -@@ -630,25 +630,25 @@ - *args, configure='imply_option/imm.configure') - - help, config = get_config(['--help']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = get_config([]) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config_path = mozpath.abspath( - mozpath.join(test_data_path, 'imply_option', 'imm.configure')) - -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--enable-foo' implied by 'imply_option at %s:7' conflicts with " - "'--disable-foo' from the command-line" % config_path): - get_config(['--disable-foo']) - -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--enable-bar=foo,bar' implied by 'imply_option at %s:16' conflicts" - " with '--enable-bar=a,b,c' from the command-line" % config_path): - get_config(['--enable-bar=a,b,c']) - -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--enable-baz=BAZ' implied by 'imply_option at %s:25' conflicts" - " with '--enable-baz=QUUX' from the command-line" % config_path): - get_config(['--enable-baz=QUUX']) -@@ -660,7 +660,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "`--with-foo`, emitted from `%s` line 2, is unknown." - % mozpath.join(test_data_path, 'moz.configure')) - -@@ -675,7 +675,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Unexpected type: 'int'") - - def test_imply_option_when(self): -@@ -686,12 +686,12 @@ - set_config('QUX', depends('--with-qux')(lambda x: x)) - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'QUX': NegativeOptionValue(), - }) - - config = self.get_config(['--with-foo']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'QUX': PositiveOptionValue(), - }) - -@@ -700,7 +700,7 @@ - with self.moz_configure('option("--with-foo", help="foo")'): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `--with-foo` is not handled ; reference it with a @depends' - ) -@@ -712,7 +712,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `--with-foo` already defined' - ) -@@ -724,7 +724,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `MOZ_FOO` already defined' - ) -@@ -736,7 +736,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `MOZ_FOO` already defined' - ) -@@ -748,7 +748,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `MOZ_FOO` already defined' - ) -@@ -760,7 +760,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Option `--with-foo` already defined' - ) -@@ -776,18 +776,18 @@ - set_config('QUX', depends('--with-qux', when='--with-foo')(lambda x: x)) - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': NegativeOptionValue(), - }) - - config = self.get_config(['--with-foo']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': PositiveOptionValue(), - 'QUX': NegativeOptionValue(), - }) - - config = self.get_config(['--with-foo', '--with-qux']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': PositiveOptionValue(), - 'QUX': PositiveOptionValue(), - }) -@@ -795,7 +795,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--with-bar']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - '--with-bar is not available in this configuration' - ) -@@ -803,7 +803,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--with-qux']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - '--with-qux is not available in this configuration' - ) -@@ -811,18 +811,18 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['QUX=1']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'QUX is not available in this configuration' - ) - - config = self.get_config(env={'QUX': '1'}) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': NegativeOptionValue(), - }) - - help, config = self.get_config(['--help']) -- self.assertEquals(help, textwrap.dedent('''\ -+ self.assertEqual(help, textwrap.dedent('''\ - Usage: configure [options] - - Options: [defaults in brackets after descriptions] -@@ -833,7 +833,7 @@ - ''')) - - help, config = self.get_config(['--help', '--with-foo']) -- self.assertEquals(help, textwrap.dedent('''\ -+ self.assertEqual(help, textwrap.dedent('''\ - Usage: configure [options] - - Options: [defaults in brackets after descriptions] -@@ -851,7 +851,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@depends function needs the same `when` as ' - 'options it depends on') - -@@ -868,7 +868,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@depends function needs the same `when` as ' - 'options it depends on') - -@@ -877,7 +877,7 @@ - with self.moz_configure('include("../foo.configure")'): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Cannot include `%s` because it is not in a subdirectory of `%s`' - % (mozpath.normpath(mozpath.join(test_data_path, '..', -@@ -892,7 +892,7 @@ - '''): - self.get_config() - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'Cannot include `%s` because it was included already.' - % mozpath.normpath(mozpath.join(test_data_path, -@@ -905,7 +905,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, "Unexpected type: 'int'") -+ self.assertEqual(e.exception.message, "Unexpected type: 'int'") - - def test_include_when(self): - with MockedOpen({ -@@ -948,26 +948,26 @@ - '''), - }): - config = self.get_config() -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = self.get_config(['--with-foo']) -- self.assertEquals(config, {}) -+ self.assertEqual(config, {}) - - config = self.get_config(['--with-bar']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'BAR': 'bar', - }) - - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--with-qux']) - -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - '--with-qux is not available in this configuration' - ) - - config = self.get_config(['--with-foo', '--with-foo-really']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - 'FOO2': True, - }) -@@ -979,7 +979,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, 'Cannot reassign builtins') -+ self.assertEqual(e.exception.message, 'Cannot reassign builtins') - - with self.assertRaises(KeyError) as e: - with self.moz_configure(''' -@@ -987,7 +987,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot assign `foo` because it is neither a ' - '@depends nor a @template') - -@@ -1000,7 +1000,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "@depends needs at least one argument") - - with self.assertRaises(ConfigureError) as e: -@@ -1011,7 +1011,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'--with-foo' is not a known option. Maybe it's " - "declared too late?") - -@@ -1023,7 +1023,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Option must not contain an '='") - - with self.assertRaises(TypeError) as e: -@@ -1034,7 +1034,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Cannot use object of type 'int' as argument " - "to @depends") - -@@ -1046,7 +1046,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Cannot decorate generator functions with @depends") - - with self.assertRaises(TypeError) as e: -@@ -1055,7 +1055,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Unexpected type: 'int'") - - with self.assertRaises(ConfigureError) as e: -@@ -1069,7 +1069,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `foo` function may not be called") - - with self.assertRaises(TypeError) as e: -@@ -1080,7 +1080,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "depends_impl() got an unexpected keyword argument 'foo'") - - def test_depends_when(self): -@@ -1105,12 +1105,12 @@ - set_config('QUX', qux) - '''): - config = self.get_config() -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - }) - - config = self.get_config(['--with-qux']) -- self.assertEquals(config, { -+ self.assertEqual(config, { - 'FOO': 'foo', - 'QUX': 'qux', - }) -@@ -1125,7 +1125,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@imports must appear after @template') - - with self.assertRaises(ConfigureError) as e: -@@ -1138,7 +1138,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@imports must appear after @depends') - - for import_ in ( -@@ -1155,7 +1155,7 @@ - ''' % import_): - self.get_config() - -- self.assertEquals(e.exception.message, "Unexpected type: 'int'") -+ self.assertEqual(e.exception.message, "Unexpected type: 'int'") - - with self.assertRaises(TypeError) as e: - with self.moz_configure(''' -@@ -1166,7 +1166,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, "Unexpected type: 'int'") -+ self.assertEqual(e.exception.message, "Unexpected type: 'int'") - - with self.assertRaises(ValueError) as e: - with self.moz_configure(''' -@@ -1176,7 +1176,7 @@ - '''): - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Invalid argument to @imports: 'os*'") - - def test_only_when(self): -@@ -1231,7 +1231,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config(['--foo']) - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--foo is not available in this configuration') - - # Cannot depend on an option defined in a only_when block, because we -@@ -1242,7 +1242,7 @@ - with self.assertRaises(ConfigureError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '@depends function needs the same `when` as ' - 'options it depends on') - -@@ -1259,7 +1259,7 @@ - with self.assertRaises(InvalidOptionError) as e: - self.get_config() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--foo is not available in this configuration') - - # And similarly doesn't fail when the condition is true. ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_lint.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_lint.py (refactored) -@@ -2,9 +2,9 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals - --from StringIO import StringIO -+ -+from io import StringIO - import os - import textwrap - import unittest -@@ -62,7 +62,7 @@ - '''): - self.lint_test() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "`bar` depends on '--help' and `foo`. " - "`foo` must depend on '--help'") - -@@ -85,7 +85,7 @@ - '''): - self.lint_test() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "`bar` depends on '--help' and `foo`. " - "`foo` must depend on '--help'") - -@@ -111,7 +111,7 @@ - '''): - self.lint_test() - -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "Missing @depends for `foo`: '--help'") - - # There is a default restricted `os` module when there is no explicit ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_moz_configure.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_moz_configure.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - from mozunit import main - from mozpack import path as mozpath -@@ -23,10 +23,10 @@ - shell = mozpath.abspath('/bin/sh') - return result.replace('CONFIG_SHELL=%s ' % shell, '') - -- self.assertEquals('--enable-application=browser', -+ self.assertEqual('--enable-application=browser', - get_value_for(['--enable-application=browser'])) - -- self.assertEquals('--enable-application=browser ' -+ self.assertEqual('--enable-application=browser ' - 'MOZ_PROFILING=1', - get_value_for(['--enable-application=browser', - 'MOZ_PROFILING=1'])) -@@ -35,25 +35,25 @@ - environ={'MOZ_PROFILING': '1'}, - mozconfig='ac_add_options --enable-project=js') - -- self.assertEquals('--enable-project=js MOZ_PROFILING=1', -+ self.assertEqual('--enable-project=js MOZ_PROFILING=1', - value) - - # --disable-js-shell is the default, so it's filtered out. -- self.assertEquals('--enable-application=browser', -+ self.assertEqual('--enable-application=browser', - get_value_for(['--enable-application=browser', - '--disable-js-shell'])) - - # Normally, --without-foo would be filtered out because that's the - # default, but since it is a (fake) old-configure option, it always - # appears. -- self.assertEquals('--enable-application=browser --without-foo', -+ self.assertEqual('--enable-application=browser --without-foo', - get_value_for(['--enable-application=browser', - '--without-foo'])) -- self.assertEquals('--enable-application=browser --with-foo', -+ self.assertEqual('--enable-application=browser --with-foo', - get_value_for(['--enable-application=browser', - '--with-foo'])) - -- self.assertEquals("--enable-application=browser '--with-foo=foo bar'", -+ self.assertEqual("--enable-application=browser '--with-foo=foo bar'", - get_value_for(['--enable-application=browser', - '--with-foo=foo bar'])) - -@@ -65,7 +65,7 @@ - self.version = version - - def __call__(self, stdin, args): -- this.assertEquals(args, ('-version',)) -+ this.assertEqual(args, ('-version',)) - return 0, self.version, '' - - def check_nsis_version(version): -@@ -80,13 +80,13 @@ - with self.assertRaises(SystemExit) as e: - check_nsis_version('v3.0a2') - -- self.assertEquals(check_nsis_version('v3.0b1'), '3.0b1') -- self.assertEquals(check_nsis_version('v3.0b2'), '3.0b2') -- self.assertEquals(check_nsis_version('v3.0rc1'), '3.0rc1') -- self.assertEquals(check_nsis_version('v3.0'), '3.0') -- self.assertEquals(check_nsis_version('v3.0-2'), '3.0') -- self.assertEquals(check_nsis_version('v3.0.1'), '3.0') -- self.assertEquals(check_nsis_version('v3.1'), '3.1') -+ self.assertEqual(check_nsis_version('v3.0b1'), '3.0b1') -+ self.assertEqual(check_nsis_version('v3.0b2'), '3.0b2') -+ self.assertEqual(check_nsis_version('v3.0rc1'), '3.0rc1') -+ self.assertEqual(check_nsis_version('v3.0'), '3.0') -+ self.assertEqual(check_nsis_version('v3.0-2'), '3.0') -+ self.assertEqual(check_nsis_version('v3.0.1'), '3.0') -+ self.assertEqual(check_nsis_version('v3.1'), '3.1') - - - if __name__ == '__main__': ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_options.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_options.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import unittest - -@@ -27,139 +27,139 @@ - class TestOption(unittest.TestCase): - def test_option(self): - option = Option('--option') -- self.assertEquals(option.prefix, '') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, '') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertFalse(option.default) - - option = Option('--enable-option') -- self.assertEquals(option.prefix, 'enable') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'enable') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertFalse(option.default) - - option = Option('--disable-option') -- self.assertEquals(option.prefix, 'disable') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'disable') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertTrue(option.default) - - option = Option('--with-option') -- self.assertEquals(option.prefix, 'with') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'with') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertFalse(option.default) - - option = Option('--without-option') -- self.assertEquals(option.prefix, 'without') -- self.assertEquals(option.name, 'option') -- self.assertEquals(option.env, None) -+ self.assertEqual(option.prefix, 'without') -+ self.assertEqual(option.name, 'option') -+ self.assertEqual(option.env, None) - self.assertTrue(option.default) - - option = Option('--without-option-foo', env='MOZ_OPTION') -- self.assertEquals(option.env, 'MOZ_OPTION') -+ self.assertEqual(option.env, 'MOZ_OPTION') - - option = Option(env='MOZ_OPTION') -- self.assertEquals(option.prefix, '') -- self.assertEquals(option.name, None) -- self.assertEquals(option.env, 'MOZ_OPTION') -+ self.assertEqual(option.prefix, '') -+ self.assertEqual(option.name, None) -+ self.assertEqual(option.env, 'MOZ_OPTION') - self.assertFalse(option.default) - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=0, default=('a',)) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=1, default=()) -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'default must be a bool, a string or a tuple of strings') - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=1, default=True) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=1, default=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=2, default=()) -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'default must be a bool, a string or a tuple of strings') - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=2, default=True) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=2, default=('a',)) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='?', default=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='+', default=()) -- self.assertEquals( -+ self.assertEqual( - e.exception.message, - 'default must be a bool, a string or a tuple of strings') - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='+', default=True) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - # --disable options with a nargs value that requires at least one - # argument need to be given a default. - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs=1) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs='+') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - # Test nargs inference from default value - option = Option('--with-foo', default=True) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option('--with-foo', default=False) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option('--with-foo', default='a') -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option('--with-foo', default=('a',)) -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option('--with-foo', default=('a', 'b')) -- self.assertEquals(option.nargs, '*') -+ self.assertEqual(option.nargs, '*') - - option = Option(env='FOO', default=True) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option(env='FOO', default=False) -- self.assertEquals(option.nargs, 0) -+ self.assertEqual(option.nargs, 0) - - option = Option(env='FOO', default='a') -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option(env='FOO', default=('a',)) -- self.assertEquals(option.nargs, '?') -+ self.assertEqual(option.nargs, '?') - - option = Option(env='FOO', default=('a', 'b')) -- self.assertEquals(option.nargs, '*') -+ self.assertEqual(option.nargs, '*') - - def test_option_option(self): - for option in ( -@@ -169,70 +169,70 @@ - '--with-option', - '--without-option', - ): -- self.assertEquals(Option(option).option, option) -- self.assertEquals(Option(option, env='FOO').option, option) -+ self.assertEqual(Option(option).option, option) -+ self.assertEqual(Option(option, env='FOO').option, option) - - opt = Option(option, default=False) -- self.assertEquals(opt.option, -+ self.assertEqual(opt.option, - option.replace('-disable-', '-enable-') - .replace('-without-', '-with-')) - - opt = Option(option, default=True) -- self.assertEquals(opt.option, -+ self.assertEqual(opt.option, - option.replace('-enable-', '-disable-') - .replace('-with-', '-without-')) - -- self.assertEquals(Option(env='FOO').option, 'FOO') -+ self.assertEqual(Option(env='FOO').option, 'FOO') - - def test_option_choices(self): - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=3, choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Not enough `choices` for `nargs`') - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', nargs=1, choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'A `default` must be given along with `choices`') - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', nargs='+', choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'A `default` must be given along with `choices`') - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', default='c', choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `default` value must be one of 'a', 'b'") - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', default=('a', 'c',), choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `default` value must be one of 'a', 'b'") - - with self.assertRaises(InvalidOptionError) as e: - Option('--without-option', default=('c',), choices=('a', 'b')) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The `default` value must be one of 'a', 'b'") - - option = Option('--with-option', nargs='+', choices=('a', 'b')) - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=c') -- self.assertEquals(e.exception.message, "'c' is not one of 'a', 'b'") -+ self.assertEqual(e.exception.message, "'c' is not one of 'a', 'b'") - - value = option.get_value('--with-option=b,a') - self.assertTrue(value) -- self.assertEquals(PositiveOptionValue(('b', 'a')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'a')), value) - - option = Option('--without-option', nargs='*', default='a', - choices=('a', 'b')) - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=c') -- self.assertEquals(e.exception.message, "'c' is not one of 'a', 'b'") -+ self.assertEqual(e.exception.message, "'c' is not one of 'a', 'b'") - - value = option.get_value('--with-option=b,a') - self.assertTrue(value) -- self.assertEquals(PositiveOptionValue(('b', 'a')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'a')), value) - - # Test nargs inference from choices - option = Option('--with-option', choices=('a', 'b')) -@@ -243,71 +243,71 @@ - choices=('a', 'b', 'c', 'd')) - - value = option.get_value('--with-option=+d') -- self.assertEquals(PositiveOptionValue(('b', 'c', 'd')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'c', 'd')), value) - - value = option.get_value('--with-option=-b') -- self.assertEquals(PositiveOptionValue(('c',)), value) -+ self.assertEqual(PositiveOptionValue(('c',)), value) - - value = option.get_value('--with-option=-b,+d') -- self.assertEquals(PositiveOptionValue(('c','d')), value) -+ self.assertEqual(PositiveOptionValue(('c','d')), value) - - # Adding something that is in the default is fine - value = option.get_value('--with-option=+b') -- self.assertEquals(PositiveOptionValue(('b', 'c')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'c')), value) - - # Removing something that is not in the default is fine, as long as it - # is one of the choices - value = option.get_value('--with-option=-a') -- self.assertEquals(PositiveOptionValue(('b', 'c')), value) -+ self.assertEqual(PositiveOptionValue(('b', 'c')), value) - - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=-e') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'e' is not one of 'a', 'b', 'c', 'd'") - - # Other "not a choice" errors. - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=+e') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'e' is not one of 'a', 'b', 'c', 'd'") - - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--with-option=e') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "'e' is not one of 'a', 'b', 'c', 'd'") - - def test_option_value_format(self): - val = PositiveOptionValue() -- self.assertEquals('--with-value', val.format('--with-value')) -- self.assertEquals('--with-value', val.format('--without-value')) -- self.assertEquals('--enable-value', val.format('--enable-value')) -- self.assertEquals('--enable-value', val.format('--disable-value')) -- self.assertEquals('--value', val.format('--value')) -- self.assertEquals('VALUE=1', val.format('VALUE')) -+ self.assertEqual('--with-value', val.format('--with-value')) -+ self.assertEqual('--with-value', val.format('--without-value')) -+ self.assertEqual('--enable-value', val.format('--enable-value')) -+ self.assertEqual('--enable-value', val.format('--disable-value')) -+ self.assertEqual('--value', val.format('--value')) -+ self.assertEqual('VALUE=1', val.format('VALUE')) - - val = PositiveOptionValue(('a',)) -- self.assertEquals('--with-value=a', val.format('--with-value')) -- self.assertEquals('--with-value=a', val.format('--without-value')) -- self.assertEquals('--enable-value=a', val.format('--enable-value')) -- self.assertEquals('--enable-value=a', val.format('--disable-value')) -- self.assertEquals('--value=a', val.format('--value')) -- self.assertEquals('VALUE=a', val.format('VALUE')) -+ self.assertEqual('--with-value=a', val.format('--with-value')) -+ self.assertEqual('--with-value=a', val.format('--without-value')) -+ self.assertEqual('--enable-value=a', val.format('--enable-value')) -+ self.assertEqual('--enable-value=a', val.format('--disable-value')) -+ self.assertEqual('--value=a', val.format('--value')) -+ self.assertEqual('VALUE=a', val.format('VALUE')) - - val = PositiveOptionValue(('a', 'b')) -- self.assertEquals('--with-value=a,b', val.format('--with-value')) -- self.assertEquals('--with-value=a,b', val.format('--without-value')) -- self.assertEquals('--enable-value=a,b', val.format('--enable-value')) -- self.assertEquals('--enable-value=a,b', val.format('--disable-value')) -- self.assertEquals('--value=a,b', val.format('--value')) -- self.assertEquals('VALUE=a,b', val.format('VALUE')) -+ self.assertEqual('--with-value=a,b', val.format('--with-value')) -+ self.assertEqual('--with-value=a,b', val.format('--without-value')) -+ self.assertEqual('--enable-value=a,b', val.format('--enable-value')) -+ self.assertEqual('--enable-value=a,b', val.format('--disable-value')) -+ self.assertEqual('--value=a,b', val.format('--value')) -+ self.assertEqual('VALUE=a,b', val.format('VALUE')) - - val = NegativeOptionValue() -- self.assertEquals('--without-value', val.format('--with-value')) -- self.assertEquals('--without-value', val.format('--without-value')) -- self.assertEquals('--disable-value', val.format('--enable-value')) -- self.assertEquals('--disable-value', val.format('--disable-value')) -- self.assertEquals('', val.format('--value')) -- self.assertEquals('VALUE=', val.format('VALUE')) -+ self.assertEqual('--without-value', val.format('--with-value')) -+ self.assertEqual('--without-value', val.format('--without-value')) -+ self.assertEqual('--disable-value', val.format('--enable-value')) -+ self.assertEqual('--disable-value', val.format('--disable-value')) -+ self.assertEqual('', val.format('--value')) -+ self.assertEqual('VALUE=', val.format('VALUE')) - - def test_option_value(self, name='option', nargs=0, default=None): - disabled = name.startswith(('disable-', 'without-')) -@@ -324,28 +324,28 @@ - - if nargs in (0, '?', '*') or disabled: - value = option.get_value('--%s' % name, 'option') -- self.assertEquals(value, posOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, posOptionValue()) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s' % name) - if nargs == 1: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 1 value' % name) - elif nargs == '+': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 1 or more values' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 2 values' % name) - - value = option.get_value('') -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = option.get_value(None) -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - with self.assertRaises(AssertionError): - value = option.get_value('MOZ_OPTION=', 'environment') -@@ -358,47 +358,47 @@ - - if nargs in (1, '?', '*', '+') and not disabled: - value = option.get_value('--%s=' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('',))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('',))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=' % name) - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d values' % (name, nargs)) - - if nargs in (1, '?', '*', '+') and not disabled: - value = option.get_value('--%s=foo' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('foo',))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('foo',))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=foo' % name) - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d values' % (name, nargs)) - - if nargs in (2, '*', '+') and not disabled: - value = option.get_value('--%s=foo,bar' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('foo', 'bar'))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('foo', 'bar'))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=foo,bar' % name, 'option') - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - elif nargs == '?': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 0 or 1 values' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d value%s' - % (name, nargs, 's' if nargs != 1 else '')) - -@@ -406,59 +406,59 @@ - default=default) - if nargs in (0, '?', '*') or disabled: - value = option.get_value('--%s' % name, 'option') -- self.assertEquals(value, posOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, posOptionValue()) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s' % name) - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - elif nargs == '+': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes 1 or more values' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d value%s' - % (name, nargs, 's' if nargs != 1 else '')) - - value = option.get_value('') -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = option.get_value(None) -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = option.get_value('MOZ_OPTION=', 'environment') -- self.assertEquals(value, NegativeOptionValue()) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, NegativeOptionValue()) -+ self.assertEqual(value.origin, 'environment') - - if nargs in (0, '?', '*'): - value = option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, PositiveOptionValue()) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue()) -+ self.assertEqual(value.origin, 'environment') - elif nargs in (1, '+'): - value = option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, PositiveOptionValue(('1',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('1',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(e.exception.message, 'MOZ_OPTION takes 2 values') -+ self.assertEqual(e.exception.message, 'MOZ_OPTION takes 2 values') - - if nargs in (1, '?', '*', '+') and not disabled: - value = option.get_value('--%s=' % name, 'option') -- self.assertEquals(value, PositiveOptionValue(('',))) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue(('',))) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s=' % name, 'option') - if disabled: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'Cannot pass a value to --%s' % name) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s takes %d values' % (name, nargs)) - - with self.assertRaises(AssertionError): -@@ -466,26 +466,26 @@ - - if nargs in (1, '?', '*', '+'): - value = option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d values' % nargs) - - if nargs in (2, '*', '+'): - value = option.get_value('MOZ_OPTION=foo,bar', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo', 'bar'))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo', 'bar'))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('MOZ_OPTION=foo,bar', 'environment') - if nargs == '?': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes 0 or 1 values') - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d value%s' - % (nargs, 's' if nargs != 1 else '')) - -@@ -497,26 +497,26 @@ - env_option.get_value('--%s' % name) - - value = env_option.get_value('') -- self.assertEquals(value, defaultValue) -- self.assertEquals(value.origin, 'default') -+ self.assertEqual(value, defaultValue) -+ self.assertEqual(value.origin, 'default') - - value = env_option.get_value('MOZ_OPTION=', 'environment') -- self.assertEquals(value, negOptionValue()) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, negOptionValue()) -+ self.assertEqual(value.origin, 'environment') - - if nargs in (0, '?', '*'): - value = env_option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, posOptionValue()) -+ self.assertEqual(value, posOptionValue()) - self.assertTrue(value) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value.origin, 'environment') - elif nargs in (1, '+'): - value = env_option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(value, PositiveOptionValue(('1',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('1',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - env_option.get_value('MOZ_OPTION=1', 'environment') -- self.assertEquals(e.exception.message, 'MOZ_OPTION takes 2 values') -+ self.assertEqual(e.exception.message, 'MOZ_OPTION takes 2 values') - - with self.assertRaises(AssertionError) as e: - env_option.get_value('--%s' % name) -@@ -526,26 +526,26 @@ - - if nargs in (1, '?', '*', '+'): - value = env_option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo',))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo',))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - env_option.get_value('MOZ_OPTION=foo', 'environment') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d values' % nargs) - - if nargs in (2, '*', '+'): - value = env_option.get_value('MOZ_OPTION=foo,bar', 'environment') -- self.assertEquals(value, PositiveOptionValue(('foo', 'bar'))) -- self.assertEquals(value.origin, 'environment') -+ self.assertEqual(value, PositiveOptionValue(('foo', 'bar'))) -+ self.assertEqual(value.origin, 'environment') - else: - with self.assertRaises(InvalidOptionError) as e: - env_option.get_value('MOZ_OPTION=foo,bar', 'environment') - if nargs == '?': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes 0 or 1 values') - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - 'MOZ_OPTION takes %d value%s' - % (nargs, 's' if nargs != 1 else '')) - -@@ -557,28 +557,28 @@ - default=default) - - value = option.get_value('--%s-option' % disable, 'option') -- self.assertEquals(value, NegativeOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, NegativeOptionValue()) -+ self.assertEqual(value.origin, 'option') - - option = self.test_option_value('%s-option' % disable, nargs=nargs, - default=default) - - if nargs in (0, '?', '*'): - value = option.get_value('--%s-option' % enable, 'option') -- self.assertEquals(value, PositiveOptionValue()) -- self.assertEquals(value.origin, 'option') -+ self.assertEqual(value, PositiveOptionValue()) -+ self.assertEqual(value.origin, 'option') - else: - with self.assertRaises(InvalidOptionError) as e: - option.get_value('--%s-option' % enable, 'option') - if nargs == 1: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s-option takes 1 value' % enable) - elif nargs == '+': -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s-option takes 1 or more values' - % enable) - else: -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - '--%s-option takes 2 values' % enable) - - def test_option_value_with(self): -@@ -587,12 +587,12 @@ - def test_option_value_invalid_nargs(self): - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs='foo') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "nargs must be a positive integer, '?', '*' or '+'") - - with self.assertRaises(InvalidOptionError) as e: - Option('--option', nargs=-2) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "nargs must be a positive integer, '?', '*' or '+'") - - def test_option_value_nargs_1(self): -@@ -603,7 +603,7 @@ - # A default is required - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs=1) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - def test_option_value_nargs_2(self): -@@ -614,7 +614,7 @@ - # A default is required - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs=2) -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - def test_option_value_nargs_0_or_1(self): -@@ -641,7 +641,7 @@ - # A default is required - with self.assertRaises(InvalidOptionError) as e: - Option('--disable-option', nargs='+') -- self.assertEquals(e.exception.message, -+ self.assertEqual(e.exception.message, - "The given `default` doesn't satisfy `nargs`") - - -@@ -649,109 +649,109 @@ - def test_basic(self): - helper = CommandLineHelper({}, ['cmd', '--foo', '--bar']) - -- self.assertEquals(['--foo', '--bar'], list(helper)) -+ self.assertEqual(['--foo', '--bar'], list(helper)) - - helper.add('--enable-qux') - -- self.assertEquals(['--foo', '--bar', '--enable-qux'], list(helper)) -+ self.assertEqual(['--foo', '--bar', '--enable-qux'], list(helper)) - - value, option = helper.handle(Option('--bar')) -- self.assertEquals(['--foo', '--enable-qux'], list(helper)) -- self.assertEquals(PositiveOptionValue(), value) -- self.assertEquals('--bar', option) -+ self.assertEqual(['--foo', '--enable-qux'], list(helper)) -+ self.assertEqual(PositiveOptionValue(), value) -+ self.assertEqual('--bar', option) - - value, option = helper.handle(Option('--baz')) -- self.assertEquals(['--foo', '--enable-qux'], list(helper)) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals(None, option) -+ self.assertEqual(['--foo', '--enable-qux'], list(helper)) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual(None, option) - - def test_precedence(self): - foo = Option('--with-foo', nargs='*') - helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b', - '--without-foo']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--without-foo', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--without-foo', option) - - helper = CommandLineHelper({}, ['cmd', '--without-foo', - '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - foo = Option('--with-foo', env='FOO', nargs='*') - helper = CommandLineHelper({'FOO': ''}, ['cmd', '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - helper = CommandLineHelper({'FOO': 'a,b'}, ['cmd', '--without-foo']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--without-foo', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--without-foo', option) - - helper = CommandLineHelper({'FOO': ''}, ['cmd', '--with-bar=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('environment', value.origin) -- self.assertEquals('FOO=', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('environment', value.origin) -+ self.assertEqual('FOO=', option) - - helper = CommandLineHelper({'FOO': 'a,b'}, ['cmd', '--without-bar']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('environment', value.origin) -- self.assertEquals('FOO=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('environment', value.origin) -+ self.assertEqual('FOO=a,b', option) - - helper = CommandLineHelper({}, ['cmd', '--with-foo=a,b', 'FOO=']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('FOO=', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('FOO=', option) - - helper = CommandLineHelper({}, ['cmd', '--without-foo', 'FOO=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('FOO=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('FOO=a,b', option) - - helper = CommandLineHelper({}, ['cmd', 'FOO=', '--with-foo=a,b']) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b')), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--with-foo=a,b', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b')), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--with-foo=a,b', option) - - helper = CommandLineHelper({}, ['cmd', 'FOO=a,b', '--without-foo']) - value, option = helper.handle(foo) -- self.assertEquals(NegativeOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--without-foo', option) -+ self.assertEqual(NegativeOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--without-foo', option) - - def test_extra_args(self): - foo = Option('--with-foo', env='FOO', nargs='*') - helper = CommandLineHelper({}, ['cmd']) - helper.add('FOO=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('FOO=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('FOO=a,b,c', option) - - helper = CommandLineHelper({}, ['cmd']) - helper.add('FOO=a,b,c', 'other-origin') - helper.add('--with-foo=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('--with-foo=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('--with-foo=a,b,c', option) - - # Adding conflicting options is not allowed. - helper = CommandLineHelper({}, ['cmd']) -@@ -771,9 +771,9 @@ - # But adding the same is allowed. - helper.add('FOO=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('FOO=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('FOO=a,b,c', option) - - # The same rule as above applies when using the option form vs. the - # variable form. But we can't detect it when .add is called. -@@ -799,9 +799,9 @@ - helper.add('FOO=a,b,c', 'other-origin') - helper.add('--with-foo=a,b,c', 'other-origin') - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(('a', 'b', 'c')), value) -- self.assertEquals('other-origin', value.origin) -- self.assertEquals('--with-foo=a,b,c', option) -+ self.assertEqual(PositiveOptionValue(('a', 'b', 'c')), value) -+ self.assertEqual('other-origin', value.origin) -+ self.assertEqual('--with-foo=a,b,c', option) - - # Conflicts are also not allowed against what is in the - # environment/on the command line. -@@ -831,19 +831,19 @@ - foo = Option('--foo', - possible_origins=('command-line',)) - value, option = helper.handle(foo) -- self.assertEquals(PositiveOptionValue(), value) -- self.assertEquals('command-line', value.origin) -- self.assertEquals('--foo', option) -+ self.assertEqual(PositiveOptionValue(), value) -+ self.assertEqual('command-line', value.origin) -+ self.assertEqual('--foo', option) - - bar = Option('--bar', - possible_origins=('mozconfig',)) -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "--bar can not be set by command-line. Values are accepted from: mozconfig"): - helper.handle(bar) - - baz = Option(env='BAZ', - possible_origins=('implied',)) -- with self.assertRaisesRegexp(InvalidOptionError, -+ with self.assertRaisesRegex(InvalidOptionError, - "BAZ=1 can not be set by environment. Values are accepted from: implied"): - helper.handle(baz) - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_toolchain_configure.py (refactored) -@@ -2,12 +2,12 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import logging - import os - --from StringIO import StringIO -+from io import StringIO - - from mozunit import main - -@@ -291,9 +291,9 @@ - compiler = sandbox._value_for(sandbox[var]) - # Add var on both ends to make it clear which of the - # variables is failing the test when that happens. -- self.assertEquals((var, compiler), (var, result)) -+ self.assertEqual((var, compiler), (var, result)) - except SystemExit: -- self.assertEquals((var, result), -+ self.assertEqual((var, result), - (var, self.out.getvalue().strip())) - return - -@@ -471,7 +471,7 @@ - # We'll try gcc and clang, but since there is no gcc (gcc-x.y doesn't - # count), find clang. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('gcc', 'g++') - } - self.do_toolchain_test(paths, { -@@ -506,7 +506,7 @@ - # Even if there are gcc-x.y or clang-x.y compilers available, we - # don't try them. This could be considered something to improve. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('gcc', 'g++', 'clang', 'clang++') - } - self.do_toolchain_test(paths, { -@@ -687,7 +687,7 @@ - def test_not_gcc(self): - # We won't pick GCC if it's the only thing available. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('clang', 'clang++') - } - self.do_toolchain_test(paths, { -@@ -851,7 +851,7 @@ - def test_clang_cl(self): - # We'll pick clang-cl if msvc can't be found. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) != 'cl' - } - self.do_toolchain_test(paths, { -@@ -862,7 +862,7 @@ - def test_gcc(self): - # We'll pick GCC if msvc and clang-cl can't be found. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('cl', 'clang-cl') - } - self.do_toolchain_test(paths, { -@@ -881,7 +881,7 @@ - def test_clang(self): - # We'll pick clang if nothing else is found. - paths = { -- k: v for k, v in self.PATHS.iteritems() -+ k: v for k, v in self.PATHS.items() - if os.path.basename(k) not in ('cl', 'clang-cl', 'gcc') - } - self.do_toolchain_test(paths, { ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_toolchain_helpers.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import copy - import re -@@ -10,7 +10,7 @@ - import unittest - - from fnmatch import fnmatch --from StringIO import StringIO -+from io import StringIO - from textwrap import dedent - - from mozunit import ( -@@ -43,7 +43,7 @@ - # Hack around it enough that the configure tests work properly. - context = self.context - def normalize_numbers(value): -- if isinstance(value, types.StringTypes): -+ if isinstance(value, (str,)): - if value[-1:] == 'L' and value[:-1].isdigit(): - value = int(value[:-1]) - return value -@@ -53,7 +53,7 @@ - return self.HAS_FEATURE.sub(r'\1\2', expr) - self.context = self.Context( - (normalize_has_feature(k), normalize_numbers(v)) -- for k, v in context.iteritems() -+ for k, v in context.items() - ) - try: - return Preprocessor.do_if(self, normalize_has_feature(expression), -@@ -95,7 +95,7 @@ - input.name = 'foo' - pp.do_include(input) - -- self.assertEquals(pp.out.getvalue(), '1 . 2 . c "D"') -+ self.assertEqual(pp.out.getvalue(), '1 . 2 . c "D"') - - def test_condition(self): - pp = CompilerPreprocessor({ -@@ -125,7 +125,7 @@ - input.name = 'foo' - pp.do_include(input) - -- self.assertEquals('IFDEF_A\nIF_A\nIF_B\nIF_NOT_C\n', pp.out.getvalue()) -+ self.assertEqual('IFDEF_A\nIF_A\nIF_B\nIF_NOT_C\n', pp.out.getvalue()) - - - class FakeCompiler(dict): -@@ -164,9 +164,9 @@ - ''' - def __init__(self, *definitions): - for definition in definitions: -- if all(not isinstance(d, dict) for d in definition.itervalues()): -+ if all(not isinstance(d, dict) for d in definition.values()): - definition = {None: definition} -- for key, value in definition.iteritems(): -+ for key, value in definition.items(): - self.setdefault(key, {}).update(value) - - def __call__(self, stdin, args): -@@ -178,14 +178,14 @@ - pp = CompilerPreprocessor(self[None]) - - def apply_defn(defn): -- for k, v in defn.iteritems(): -+ for k, v in defn.items(): - if v is False: - if k in pp.context: - del pp.context[k] - else: - pp.context[k] = v - -- for glob, defn in self.iteritems(): -+ for glob, defn in self.items(): - if glob and not glob.startswith('-') and fnmatch(file, glob): - apply_defn(defn) - -@@ -216,7 +216,7 @@ - 'A': '1', - 'B': '2', - }) -- self.assertEquals(compiler(None, ['-E', 'file']), -+ self.assertEqual(compiler(None, ['-E', 'file']), - (0, '1 2 C', '')) - - compiler = FakeCompiler({ -@@ -238,25 +238,25 @@ - 'B': '42', - }, - }) -- self.assertEquals(compiler(None, ['-E', 'file']), -+ self.assertEqual(compiler(None, ['-E', 'file']), - (0, '1 2 C', '')) -- self.assertEquals(compiler(None, ['-E', '-foo', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-foo', 'file']), - (0, '1 2 foo', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-bar', 'file']), - (0, '1 bar bar', '')) -- self.assertEquals(compiler(None, ['-E', '-qux', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-qux', 'file']), - (0, '1 B C', '')) -- self.assertEquals(compiler(None, ['-E', '-foo', '-bar', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-foo', '-bar', 'file']), - (0, '1 bar bar', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', '-foo', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-bar', '-foo', 'file']), - (0, '1 bar foo', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', '-qux', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-bar', '-qux', 'file']), - (0, '1 B bar', '')) -- self.assertEquals(compiler(None, ['-E', '-qux', '-bar', 'file']), -+ self.assertEqual(compiler(None, ['-E', '-qux', '-bar', 'file']), - (0, '1 bar bar', '')) -- self.assertEquals(compiler(None, ['-E', 'file.c']), -+ self.assertEqual(compiler(None, ['-E', 'file.c']), - (0, '1 42 C', '')) -- self.assertEquals(compiler(None, ['-E', '-bar', 'file.c']), -+ self.assertEqual(compiler(None, ['-E', '-bar', 'file.c']), - (0, '1 bar bar', '')) - - def test_multiple_definitions(self): -@@ -267,7 +267,7 @@ - 'C': 3, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 2, -@@ -282,7 +282,7 @@ - 'C': 3, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 4, -@@ -302,7 +302,7 @@ - }, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 4, -@@ -330,7 +330,7 @@ - }, - }) - -- self.assertEquals(compiler, { -+ self.assertEqual(compiler, { - None: { - 'A': 1, - 'B': 2, -@@ -370,7 +370,7 @@ - def __add__(self, other): - assert isinstance(other, dict) - result = copy.deepcopy(self.__dict__) -- for k, v in other.iteritems(): -+ for k, v in other.items(): - if k == 'flags': - result.setdefault(k, []).extend(v) - else: -@@ -381,7 +381,7 @@ - class TestCompilerResult(unittest.TestCase): - def test_compiler_result(self): - result = CompilerResult() -- self.assertEquals(result.__dict__, { -+ self.assertEqual(result.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath(''), - 'version': '', -@@ -397,7 +397,7 @@ - language='C', - flags=['-std=gnu99'], - ) -- self.assertEquals(result.__dict__, { -+ self.assertEqual(result.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath('/usr/bin/gcc'), - 'version': '4.2.1', -@@ -407,7 +407,7 @@ - }) - - result2 = result + {'flags': ['-m32']} -- self.assertEquals(result2.__dict__, { -+ self.assertEqual(result2.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath('/usr/bin/gcc'), - 'version': '4.2.1', -@@ -416,14 +416,14 @@ - 'flags': ['-std=gnu99', '-m32'], - }) - # Original flags are untouched. -- self.assertEquals(result.flags, ['-std=gnu99']) -+ self.assertEqual(result.flags, ['-std=gnu99']) - - result3 = result + { - 'compiler': '/usr/bin/gcc-4.7', - 'version': '4.7.3', - 'flags': ['-m32'], - } -- self.assertEquals(result3.__dict__, { -+ self.assertEqual(result3.__dict__, { - 'wrapper': [], - 'compiler': mozpath.abspath('/usr/bin/gcc-4.7'), - 'version': '4.7.3', ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_toolkit_moz_configure.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import os - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_util.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/configure/test_util.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, print_function, unicode_literals -+ - - import logging - import os -@@ -11,7 +11,7 @@ - import unittest - import sys - --from StringIO import StringIO -+from io import StringIO - - from mozunit import main - from mozpack import path as mozpath -@@ -434,11 +434,11 @@ - except SystemExit as e: - status = e.code - -- self.assertEquals(status, 0) -+ self.assertEqual(status, 0) - quote_char = "'" - if getpreferredencoding().lower() == 'utf-8': - quote_char = '\u00B4'.encode('utf-8') -- self.assertEquals(out.getvalue().strip(), quote_char) -+ self.assertEqual(out.getvalue().strip(), quote_char) - - - class TestVersion(unittest.TestCase): ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/controller/test_ccachestats.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/controller/test_ccachestats.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import unittest - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/controller/test_clobber.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/controller/test_clobber.py (refactored) -@@ -2,14 +2,14 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import shutil - import tempfile - import unittest - --from StringIO import StringIO -+from io import StringIO - - from mozunit import main - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_context.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_context.py (refactored) -@@ -36,7 +36,7 @@ - 'baz': (dict, dict, ''), - }) - -- self.assertEqual(test.keys(), []) -+ self.assertEqual(list(test.keys()), []) - - self.assertEqual(test['foo'], 0) - -@@ -84,12 +84,12 @@ - 'baz': (dict, list, ''), - }) - -- self.assertEqual(test.keys(), []) -+ self.assertEqual(list(test.keys()), []) - - with self.assertRaises(ValueError): - test.update(bar=True, foo={}) - -- self.assertEqual(test.keys(), []) -+ self.assertEqual(list(test.keys()), []) - - test.update(bar=True, foo=1) - -@@ -258,19 +258,19 @@ - self.assertEqual(lines[-1].strip(), '') - - def test_documentation_formatting(self): -- for typ, inp, doc in VARIABLES.values(): -+ for typ, inp, doc in list(VARIABLES.values()): - self._verify_doc(doc) - -- for attr, args, doc in FUNCTIONS.values(): -+ for attr, args, doc in list(FUNCTIONS.values()): - self._verify_doc(doc) - -- for func, typ, doc in SPECIAL_VARIABLES.values(): -+ for func, typ, doc in list(SPECIAL_VARIABLES.values()): - self._verify_doc(doc) - -- for name, cls in SUBCONTEXTS.items(): -+ for name, cls in list(SUBCONTEXTS.items()): - self._verify_doc(cls.__doc__) - -- for name, v in cls.VARIABLES.items(): -+ for name, v in list(cls.VARIABLES.items()): - self._verify_doc(v[2]) - - -@@ -631,7 +631,7 @@ - class TestTypedRecord(unittest.TestCase): - - def test_fields(self): -- T = ContextDerivedTypedRecord(('field1', unicode), -+ T = ContextDerivedTypedRecord(('field1', str), - ('field2', list)) - inst = T(None) - self.assertEqual(inst.field1, '') -@@ -647,7 +647,7 @@ - inst.field3 = [] - - def test_coercion(self): -- T = ContextDerivedTypedRecord(('field1', unicode), -+ T = ContextDerivedTypedRecord(('field1', str), - ('field2', list)) - inst = T(None) - inst.field1 = 3 -@@ -673,45 +673,45 @@ - def test_single_bug_component(self): - c = Context({}) - f = Files(c, pattern='**') -- f['BUG_COMPONENT'] = (u'Product1', u'Component1') -+ f['BUG_COMPONENT'] = ('Product1', 'Component1') - - files = {'moz.build': f} - self.assertEqual(Files.aggregate(files), { -- 'bug_component_counts': [((u'Product1', u'Component1'), 1)], -- 'recommended_bug_component': (u'Product1', u'Component1'), -+ 'bug_component_counts': [(('Product1', 'Component1'), 1)], -+ 'recommended_bug_component': ('Product1', 'Component1'), - }) - - def test_multiple_bug_components(self): - c = Context({}) - f1 = Files(c, pattern='**') -- f1['BUG_COMPONENT'] = (u'Product1', u'Component1') -+ f1['BUG_COMPONENT'] = ('Product1', 'Component1') - - f2 = Files(c, pattern='**') -- f2['BUG_COMPONENT'] = (u'Product2', u'Component2') -+ f2['BUG_COMPONENT'] = ('Product2', 'Component2') - - files = {'a': f1, 'b': f2, 'c': f1} - self.assertEqual(Files.aggregate(files), { - 'bug_component_counts': [ -- ((u'Product1', u'Component1'), 2), -- ((u'Product2', u'Component2'), 1), -+ (('Product1', 'Component1'), 2), -+ (('Product2', 'Component2'), 1), - ], -- 'recommended_bug_component': (u'Product1', u'Component1'), -+ 'recommended_bug_component': ('Product1', 'Component1'), - }) - - def test_no_recommended_bug_component(self): - """If there is no clear count winner, we don't recommend a bug component.""" - c = Context({}) - f1 = Files(c, pattern='**') -- f1['BUG_COMPONENT'] = (u'Product1', u'Component1') -+ f1['BUG_COMPONENT'] = ('Product1', 'Component1') - - f2 = Files(c, pattern='**') -- f2['BUG_COMPONENT'] = (u'Product2', u'Component2') -+ f2['BUG_COMPONENT'] = ('Product2', 'Component2') - - files = {'a': f1, 'b': f2} - self.assertEqual(Files.aggregate(files), { - 'bug_component_counts': [ -- ((u'Product1', u'Component1'), 1), -- ((u'Product2', u'Component2'), 1), -+ (('Product1', 'Component1'), 1), -+ (('Product2', 'Component2'), 1), - ], - 'recommended_bug_component': None, - }) ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_emitter.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_emitter.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import unittest -@@ -204,7 +204,7 @@ - def test_use_yasm(self): - # When yasm is not available, this should raise. - reader = self.reader('use-yasm') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'yasm is not available'): - self.read_topsrcdir(reader) - -@@ -267,25 +267,25 @@ - o = objs[0] - self.assertIsInstance(o, GeneratedFile) - self.assertEqual(o.outputs, ('bar.c',)) -- self.assertRegexpMatches(o.script, 'script.py$') -+ self.assertRegex(o.script, 'script.py$') - self.assertEqual(o.method, 'make_bar') - self.assertEqual(o.inputs, []) - - def test_generated_files_no_script(self): - reader = self.reader('generated-files-no-script') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Script for generating bar.c does not exist'): - self.read_topsrcdir(reader) - - def test_generated_files_no_inputs(self): - reader = self.reader('generated-files-no-inputs') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Input for generating foo.c does not exist'): - self.read_topsrcdir(reader) - - def test_generated_files_no_python_script(self): - reader = self.reader('generated-files-no-python-script') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Script for generating bar.c does not end in .py'): - self.read_topsrcdir(reader) - -@@ -314,7 +314,7 @@ - Missing files in EXPORTS is an error. - ''' - reader = self.reader('exports-missing') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'File listed in EXPORTS does not exist:'): - self.read_topsrcdir(reader) - -@@ -323,7 +323,7 @@ - An objdir file in EXPORTS that is not in GENERATED_FILES is an error. - ''' - reader = self.reader('exports-missing-generated') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Objdir file listed in EXPORTS not in GENERATED_FILES:'): - self.read_topsrcdir(reader) - -@@ -360,7 +360,7 @@ - - def test_test_harness_files_root(self): - reader = self.reader('test-harness-files-root') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Cannot install files to the root of TEST_HARNESS_FILES'): - self.read_topsrcdir(reader) - -@@ -413,14 +413,14 @@ - """A missing manifest file should result in an error.""" - reader = self.reader('test-manifest-missing-manifest') - -- with self.assertRaisesRegexp(BuildReaderError, 'IOError: Missing files'): -+ with self.assertRaisesRegex(BuildReaderError, 'IOError: Missing files'): - self.read_topsrcdir(reader) - - def test_empty_test_manifest_rejected(self): - """A test manifest without any entries is rejected.""" - reader = self.reader('test-manifest-empty') - -- with self.assertRaisesRegexp(SandboxValidationError, 'Empty test manifest'): -+ with self.assertRaisesRegex(SandboxValidationError, 'Empty test manifest'): - self.read_topsrcdir(reader) - - -@@ -428,7 +428,7 @@ - """A test manifest with no tests but support-files is not supported.""" - reader = self.reader('test-manifest-just-support') - -- with self.assertRaisesRegexp(SandboxValidationError, 'Empty test manifest'): -+ with self.assertRaisesRegex(SandboxValidationError, 'Empty test manifest'): - self.read_topsrcdir(reader) - - def test_test_manifest_dupe_support_files(self): -@@ -437,7 +437,7 @@ - """ - reader = self.reader('test-manifest-dupes') - -- with self.assertRaisesRegexp(SandboxValidationError, 'bar.js appears multiple times ' -+ with self.assertRaisesRegex(SandboxValidationError, 'bar.js appears multiple times ' - 'in a test manifest under a support-files field, please omit the duplicate entry.'): - self.read_topsrcdir(reader) - -@@ -454,7 +454,7 @@ - mozpath.join(o.install_prefix, "absolute-support.ini"), - mozpath.join(o.install_prefix, "test_file.js"), - ] -- paths = sorted([v[0] for v in o.installs.values()]) -+ paths = sorted([v[0] for v in list(o.installs.values())]) - self.assertEqual(paths, expected) - - @unittest.skip('Bug 1304316 - Items in the second set but not the first') -@@ -481,7 +481,7 @@ - """A non-existent shared support file reference produces an error.""" - reader = self.reader('test-manifest-shared-missing') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'entry in support-files not present in the srcdir'): - self.read_topsrcdir(reader) - -@@ -500,7 +500,7 @@ - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/support.txt")), - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/test_foo.html")), - ] -- paths = sorted([v[0] for v in o.installs.values()]) -+ paths = sorted([v[0] for v in list(o.installs.values())]) - self.assertEqual(paths, expected) - - def test_test_manifest_install_includes(self): -@@ -518,7 +518,7 @@ - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/mochitest.ini")), - mozpath.normpath(mozpath.join(o.install_prefix, "subdir/test_foo.html")), - ] -- paths = sorted([v[0] for v in o.installs.values()]) -+ paths = sorted([v[0] for v in list(o.installs.values())]) - self.assertEqual(paths, expected) - - def test_test_manifest_includes(self): -@@ -541,7 +541,7 @@ - def test_python_unit_test_missing(self): - """Missing files in PYTHON_UNIT_TESTS should raise.""" - reader = self.reader('test-python-unit-test-missing') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Path specified in PYTHON_UNIT_TESTS does not exist:'): - self.read_topsrcdir(reader) - -@@ -635,7 +635,7 @@ - self.assertEqual(external_normalized, m.get('external', set())) - - self.assertEqual(len(o.installs), len(m['installs'])) -- for path in o.installs.keys(): -+ for path in list(o.installs.keys()): - self.assertTrue(path.startswith(o.directory)) - relpath = path[len(o.directory)+1:] - -@@ -648,7 +648,7 @@ - def test_test_manifest_unmatched_generated(self): - reader = self.reader('test-manifest-unmatched-generated') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'entry in generated-files not present elsewhere'): - self.read_topsrcdir(reader), - -@@ -672,7 +672,7 @@ - """Missing test files should result in error.""" - reader = self.reader('test-manifest-missing-test-file') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'lists test that does not exist: test_missing.html'): - self.read_topsrcdir(reader) - -@@ -680,7 +680,7 @@ - """Missing test files should result in error, even when the test list is not filtered.""" - reader = self.reader('test-manifest-missing-test-file-unfiltered') - -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'lists test that does not exist: missing.js'): - self.read_topsrcdir(reader) - -@@ -794,20 +794,20 @@ - self.assertIsInstance(obj.path, Path) - - def test_jar_manifests_multiple_files(self): -- with self.assertRaisesRegexp(SandboxValidationError, 'limited to one value'): -+ with self.assertRaisesRegex(SandboxValidationError, 'limited to one value'): - reader = self.reader('jar-manifests-multiple-files') - self.read_topsrcdir(reader) - - def test_xpidl_module_no_sources(self): - """XPIDL_MODULE without XPIDL_SOURCES should be rejected.""" -- with self.assertRaisesRegexp(SandboxValidationError, 'XPIDL_MODULE ' -+ with self.assertRaisesRegex(SandboxValidationError, 'XPIDL_MODULE ' - 'cannot be defined'): - reader = self.reader('xpidl-module-no-sources') - self.read_topsrcdir(reader) - - def test_missing_local_includes(self): - """LOCAL_INCLUDES containing non-existent directories should be rejected.""" -- with self.assertRaisesRegexp(SandboxValidationError, 'Path specified in ' -+ with self.assertRaisesRegex(SandboxValidationError, 'Path specified in ' - 'LOCAL_INCLUDES does not exist'): - reader = self.reader('missing-local-includes') - self.read_topsrcdir(reader) -@@ -852,7 +852,7 @@ - '.S': ['g.S'], - '.s': ['h.s', 'i.asm'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -905,7 +905,7 @@ - '.S': ['g.S'], - '.s': ['h.s', 'i.asm'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -931,7 +931,7 @@ - '.c': ['d.c'], - '.mm': ['e.mm', 'f.mm'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -956,7 +956,7 @@ - '.mm': ['objc1.mm', 'objc2.mm'], - '.c': ['c1.c', 'c2.c'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -982,7 +982,7 @@ - '.mm': ['objc1.mm', 'objc2.mm'], - '.c': ['c1.c', 'c2.c'], - } -- for suffix, files in expected.items(): -+ for suffix, files in list(expected.items()): - sources = suffix_map[suffix] - self.assertEqual( - sources.files, -@@ -1005,11 +1005,11 @@ - - expected = {'install.rdf', 'main.js'} - for f in files: -- self.assertTrue(unicode(f) in expected) -+ self.assertTrue(str(f) in expected) - - def test_missing_final_target_pp_files(self): - """Test that FINAL_TARGET_PP_FILES with missing files throws errors.""" -- with self.assertRaisesRegexp(SandboxValidationError, 'File listed in ' -+ with self.assertRaisesRegex(SandboxValidationError, 'File listed in ' - 'FINAL_TARGET_PP_FILES does not exist'): - reader = self.reader('dist-files-missing') - self.read_topsrcdir(reader) -@@ -1017,49 +1017,49 @@ - def test_final_target_pp_files_non_srcdir(self): - '''Test that non-srcdir paths in FINAL_TARGET_PP_FILES throws errors.''' - reader = self.reader('final-target-pp-files-non-srcdir') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Only source directory paths allowed in FINAL_TARGET_PP_FILES:'): - self.read_topsrcdir(reader) - - def test_rust_library_no_cargo_toml(self): - '''Test that defining a RustLibrary without a Cargo.toml fails.''' - reader = self.reader('rust-library-no-cargo-toml') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'No Cargo.toml file found'): - self.read_topsrcdir(reader) - - def test_rust_library_name_mismatch(self): - '''Test that defining a RustLibrary that doesn't match Cargo.toml fails.''' - reader = self.reader('rust-library-name-mismatch') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'library.*does not match Cargo.toml-defined package'): - self.read_topsrcdir(reader) - - def test_rust_library_no_lib_section(self): - '''Test that a RustLibrary Cargo.toml with no [lib] section fails.''' - reader = self.reader('rust-library-no-lib-section') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Cargo.toml for.* has no \\[lib\\] section'): - self.read_topsrcdir(reader) - - def test_rust_library_no_profile_section(self): - '''Test that a RustLibrary Cargo.toml with no [profile] section fails.''' - reader = self.reader('rust-library-no-profile-section') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Cargo.toml for.* has no \\[profile\\.dev\\] section'): - self.read_topsrcdir(reader) - - def test_rust_library_invalid_crate_type(self): - '''Test that a RustLibrary Cargo.toml has a permitted crate-type.''' - reader = self.reader('rust-library-invalid-crate-type') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'crate-type.* is not permitted'): - self.read_topsrcdir(reader) - - def test_rust_library_non_abort_panic(self): - '''Test that a RustLibrary Cargo.toml has `panic = "abort" set''' - reader = self.reader('rust-library-non-abort-panic') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'does not specify `panic = "abort"`'): - self.read_topsrcdir(reader) - -@@ -1072,15 +1072,15 @@ - self.assertEqual(len(objs), 1) - lib = objs[0] - self.assertIsInstance(lib, RustLibrary) -- self.assertRegexpMatches(lib.lib_name, "random_crate") -- self.assertRegexpMatches(lib.import_name, "random_crate") -- self.assertRegexpMatches(lib.basename, "random-crate") -+ self.assertRegex(lib.lib_name, "random_crate") -+ self.assertRegex(lib.import_name, "random_crate") -+ self.assertRegex(lib.basename, "random-crate") - - def test_multiple_rust_libraries(self): - '''Test that linking multiple Rust libraries throws an error''' - reader = self.reader('multiple-rust-libraries', - extra_substs=dict(RUST_TARGET='i686-pc-windows-msvc')) -- with self.assertRaisesRegexp(LinkageMultipleRustLibrariesError, -+ with self.assertRaisesRegex(LinkageMultipleRustLibrariesError, - 'Cannot link multiple Rust libraries'): - self.read_topsrcdir(reader) - -@@ -1107,7 +1107,7 @@ - mozpath.join(reader.config.topobjdir, 'dir2'), - '/dir3', - ] -- self.assertEquals([p.full_path for p in objs[0].paths], expected) -+ self.assertEqual([p.full_path for p in objs[0].paths], expected) - - def test_binary_components(self): - """Test that IS_COMPONENT/NO_COMPONENTS_MANIFEST work properly.""" -@@ -1163,7 +1163,7 @@ - from GENERATED_FILES is an error. - """ - reader = self.reader('test-symbols-file-objdir-missing-generated') -- with self.assertRaisesRegexp(SandboxValidationError, -+ with self.assertRaisesRegex(SandboxValidationError, - 'Objdir file specified in SYMBOLS_FILE not in GENERATED_FILES:'): - self.read_topsrcdir(reader) - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_namespaces.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_namespaces.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import unittest - -@@ -29,7 +29,7 @@ - - class Piyo(ContextDerivedValue): - def __init__(self, context, value): -- if not isinstance(value, unicode): -+ if not isinstance(value, str): - raise ValueError - self.context = context - self.value = value -@@ -48,9 +48,9 @@ - - - VARIABLES = { -- 'HOGE': (unicode, unicode, None), -- 'FUGA': (Fuga, unicode, None), -- 'PIYO': (Piyo, unicode, None), -+ 'HOGE': (str, str, None), -+ 'FUGA': (Fuga, str, None), -+ 'PIYO': (Piyo, str, None), - 'HOGERA': (ContextDerivedTypedList(Piyo, StrictOrderingOnAppendList), - list, None), - 'HOGEHOGE': (ContextDerivedTypedListWithItems( -@@ -104,7 +104,7 @@ - self.assertEqual(e[1], 'set_type') - self.assertEqual(e[2], 'HOGE') - self.assertEqual(e[3], True) -- self.assertEqual(e[4], unicode) -+ self.assertEqual(e[4], str) - - def test_key_checking(self): - # Checking for existence of a key should not populate the key if it -@@ -127,7 +127,7 @@ - self.assertEqual(e[1], 'set_type') - self.assertEqual(e[2], 'FUGA') - self.assertEqual(e[3], False) -- self.assertEqual(e[4], unicode) -+ self.assertEqual(e[4], str) - - ns['FUGA'] = 'fuga' - self.assertIsInstance(ns['FUGA'], Fuga) -@@ -150,7 +150,7 @@ - self.assertEqual(e[1], 'set_type') - self.assertEqual(e[2], 'PIYO') - self.assertEqual(e[3], False) -- self.assertEqual(e[4], unicode) -+ self.assertEqual(e[4], str) - - ns['PIYO'] = 'piyo' - self.assertIsInstance(ns['PIYO'], Piyo) ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_reader.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_reader.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import sys -@@ -423,7 +423,7 @@ - 'simple/base.cpp', - ]) - -- for path, pattern_set in expected.items(): -+ for path, pattern_set in list(expected.items()): - self.assertEqual(v[path].test_files, - expected[path]) - -@@ -438,7 +438,7 @@ - 'default/tests/reftests/**']), - } - -- for path, pattern_set in expected.items(): -+ for path, pattern_set in list(expected.items()): - self.assertEqual(v[path].test_files, - expected[path]) - -@@ -454,7 +454,7 @@ - 'tagged/src/bar.jsm': set(['tagged/**.js']), - } - -- for path, pattern_set in expected_patterns.items(): -+ for path, pattern_set in list(expected_patterns.items()): - self.assertEqual(v[path].test_files, - expected_patterns[path]) - -@@ -462,7 +462,7 @@ - 'tagged/src/submodule/foo.js': set(['submodule']), - 'tagged/src/bar.jsm': set([]), - } -- for path, pattern_set in expected_tags.items(): -+ for path, pattern_set in list(expected_tags.items()): - self.assertEqual(v[path].test_tags, - expected_tags[path]) - -@@ -470,7 +470,7 @@ - 'tagged/src/bar.jsm': set(['browser-chrome']), - 'tagged/src/submodule/foo.js': set([]), - } -- for path, pattern_set in expected_flavors.items(): -+ for path, pattern_set in list(expected_flavors.items()): - self.assertEqual(v[path].test_flavors, - expected_flavors[path]) - ---- mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_sandbox.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozbuild/test/frontend/test_sandbox.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import unicode_literals -+ - - import os - import shutil -@@ -345,7 +345,7 @@ - sandbox = MozbuildSandbox(Context(VARIABLES, config)) - - self.assertEqual(sandbox['CONFIG']['BAD_UTF8'], -- u'\ufffd\ufffd\ufffd\ufffd:') -+ '\ufffd\ufffd\ufffd\ufffd:') - - def test_invalid_exports_set_base(self): - sandbox = self.sandbox() -@@ -525,7 +525,7 @@ - source = 'a = foo(1, 2)' - sandbox.exec_source(source, 'foo.mozbuild') - -- self.assertEquals(sandbox['a'], (Foo, int)) -+ self.assertEqual(sandbox['a'], (Foo, int)) - finally: - del FUNCTIONS['foo'] - ---- mozjs-52.4.0/python/mozbuild/mozpack/archive.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/archive.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import bz2 - import gzip ---- mozjs-52.4.0/python/mozbuild/mozpack/copier.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/copier.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import stat -@@ -109,7 +109,7 @@ - ''' - Return all paths stored in the container, in the order they were added. - ''' -- return self._files.keys() -+ return list(self._files.keys()) - - def __len__(self): - ''' -@@ -142,7 +142,7 @@ - for path, file in registry: - (...) - ''' -- return self._files.iteritems() -+ return iter(self._files.items()) - - def required_directories(self): - ''' -@@ -151,7 +151,7 @@ - unspecified (virtual) root directory (and do not include said root - directory). - ''' -- return set(k for k, v in self._required_directories.items() if v > 0) -+ return set(k for k, v in list(self._required_directories.items()) if v > 0) - - - class FileRegistrySubtree(object): -@@ -263,7 +263,7 @@ - - Returns a FileCopyResult that details what changed. - ''' -- assert isinstance(destination, basestring) -+ assert isinstance(destination, str) - assert not os.path.exists(destination) or os.path.isdir(destination) - - result = FileCopyResult() -@@ -531,7 +531,7 @@ - def exists(self): - return self.deflater is not None - -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - assert isinstance(dest, Dest) - ---- mozjs-52.4.0/python/mozbuild/mozpack/errors.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/errors.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import sys - from contextlib import contextmanager -@@ -97,7 +97,7 @@ - if self._count is None: - raise ErrorMessage(msg) - self._count += 1 -- print >>self.out, msg -+ print(msg, file=self.out) - - def fatal(self, msg): - self._handle(self.FATAL, msg) ---- mozjs-52.4.0/python/mozbuild/mozpack/executables.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/executables.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import os - import struct ---- mozjs-52.4.0/python/mozbuild/mozpack/files.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/files.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - import errno - import os -@@ -57,7 +57,7 @@ - - def _copyfile(src, dest): - # False indicates `dest` should be overwritten if it exists already. -- if isinstance(src, unicode) and isinstance(dest, unicode): -+ if isinstance(src, str) and isinstance(dest, str): - _CopyFileW(src, dest, False) - elif isinstance(src, str) and isinstance(dest, str): - _CopyFileA(src, dest, False) -@@ -145,13 +145,13 @@ - # - keep file type (e.g. S_IFREG) - ret = stat.S_IFMT(mode) - # - expand user read and execute permissions to everyone -- if mode & 0400: -- ret |= 0444 -- if mode & 0100: -- ret |= 0111 -+ if mode & 0o400: -+ ret |= 0o444 -+ if mode & 0o100: -+ ret |= 0o111 - # - keep user write permissions -- if mode & 0200: -- ret |= 0200 -+ if mode & 0o200: -+ ret |= 0o200 - # - leave away sticky bit, setuid, setgid - return ret - -@@ -164,7 +164,7 @@ - disabled when skip_if_older is False. - Returns whether a copy was actually performed (True) or not (False). - ''' -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - else: - assert isinstance(dest, Dest) -@@ -258,11 +258,11 @@ - ''' - def copy(self, dest, skip_if_older=True): - real_dest = dest -- if not isinstance(dest, basestring): -+ if not isinstance(dest, str): - fd, dest = mkstemp() - os.close(fd) - os.remove(dest) -- assert isinstance(dest, basestring) -+ assert isinstance(dest, str) - # If File.copy didn't actually copy because dest is newer, check the - # file sizes. If dest is smaller, it means it is already stripped and - # elfhacked, so we can skip. -@@ -299,7 +299,7 @@ - File.__init__(self, path) - - def copy(self, dest, skip_if_older=True): -- assert isinstance(dest, basestring) -+ assert isinstance(dest, str) - - # The logic in this function is complicated by the fact that symlinks - # aren't universally supported. So, where symlinks aren't supported, we -@@ -400,7 +400,7 @@ - self.required = required - - def copy(self, dest, skip_if_older=True): -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - else: - assert isinstance(dest, Dest) -@@ -432,7 +432,7 @@ - ''' - Invokes the preprocessor to create the destination file. - ''' -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - else: - assert isinstance(dest, Dest) -@@ -563,7 +563,7 @@ - the individual XPTs to link. - skip_if_older is ignored. - ''' -- if isinstance(dest, basestring): -+ if isinstance(dest, str): - dest = Dest(dest) - assert isinstance(dest, Dest) - -@@ -1014,7 +1014,7 @@ - from mozpack.copier import FileRegistry - self.files = FileRegistry() - -- for base, finder in sorted(finders.iteritems()): -+ for base, finder in sorted(finders.items()): - if self.files.contains(base): - self.files.remove(base) - for p, f in finder.find(''): ---- mozjs-52.4.0/python/mozbuild/mozpack/hg.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/hg.py (refactored) -@@ -27,7 +27,7 @@ - # do not wish to do so, delete this exception statement from your - # version. - --from __future__ import absolute_import -+ - - import mercurial.error as error - import mercurial.hg as hg -@@ -56,7 +56,7 @@ - - Accepts a Mercurial localrepo and changectx instance. - """ -- if isinstance(repo, (str, unicode)): -+ if isinstance(repo, str): - path = repo - repo = hg.repository(hgui.ui(), repo) - else: -@@ -85,7 +85,7 @@ - return self._get(path) - - def _get(self, path): -- if isinstance(path, unicode): -+ if isinstance(path, str): - path = path.encode('utf-8', 'replace') - - try: ---- mozjs-52.4.0/python/mozbuild/mozpack/manifests.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/manifests.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import, unicode_literals -+ - - from contextlib import contextmanager - import json ---- mozjs-52.4.0/python/mozbuild/mozpack/mozjar.py (original) -+++ mozjs-52.4.0/python/mozbuild/mozpack/mozjar.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import absolute_import -+ - - from io import BytesIO - import struct -@@ -13,8 +13,9 @@ - ZIP_DEFLATED, - ) - from collections import OrderedDict --from urlparse import urlparse, ParseResult -+from urllib.parse import urlparse, ParseResult - import mozpack.path as mozpath -+from functools import reduce - - JAR_STORED = ZIP_STORED - JAR_DEFLATED = ZIP_DEFLATED -@@ -68,7 +69,7 @@ - an instance with empty fields. - ''' - assert self.MAGIC and isinstance(self.STRUCT, OrderedDict) -- self.size_fields = set(t for t in self.STRUCT.itervalues() -+ self.size_fields = set(t for t in self.STRUCT.values() - if not t in JarStruct.TYPE_MAPPING) - self._values = {} - if data: -@@ -90,7 +91,7 @@ - # For all fields used as other fields sizes, keep track of their value - # separately. - sizes = dict((t, 0) for t in self.size_fields) -- for name, t in self.STRUCT.iteritems(): -+ for name, t in self.STRUCT.items(): - if t in JarStruct.TYPE_MAPPING: - value, size = JarStruct.get_data(t, data[offset:]) - else: -@@ -109,7 +110,7 @@ - Initialize an instance with empty fields. - ''' - self.signature = self.MAGIC -- for name, t in self.STRUCT.iteritems(): -+ for name, t in self.STRUCT.items(): - if name in self.size_fields: - continue - self._values[name] = 0 if t in JarStruct.TYPE_MAPPING else '' -@@ -134,9 +135,9 @@ - from self.STRUCT. - ''' - serialized = struct.pack('" % (self.__class__.__name__, -@@ -374,7 +375,7 @@ - preload = JarStruct.get_data('uint32', self._data)[0] - entries = OrderedDict() - offset = self._cdir_end['cdir_offset'] -- for e in xrange(self._cdir_end['cdir_entries']): -+ for e in range(self._cdir_end['cdir_entries']): - entry = JarCdirEntry(self._data[offset:]) - offset += entry.size - # Creator host system. 0 is MSDOS, 3 is Unix -@@ -385,7 +386,7 @@ - xattr = entry['external_attr'] - # Skip directories - if (host == 0 and xattr & 0x10) or (host == 3 and -- xattr & (040000 << 16)): -+ xattr & (0o40000 << 16)): - continue - entries[entry['filename']] = entry - if entry['offset'] < preload: -@@ -436,7 +437,7 @@ - for file in jarReader: - ... - ''' -- for entry in self.entries.itervalues(): -+ for entry in self.entries.values(): - yield self._getreader(entry) - - def __getitem__(self, name): -@@ -529,7 +530,7 @@ - headers = {} - preload_size = 0 - # Prepare central directory entries -- for entry, content in self._contents.itervalues(): -+ for entry, content in self._contents.values(): - header = JarLocalFileHeader() - for name in entry.STRUCT: - if name in header: -@@ -544,7 +545,7 @@ - end['disk_entries'] = len(self._contents) - end['cdir_entries'] = end['disk_entries'] - end['cdir_size'] = reduce(lambda x, y: x + y[0].size, -- self._contents.values(), 0) -+ list(self._contents.values()), 0) - # On optimized archives, store the preloaded size and the central - # directory entries, followed by the first end of central directory. - if self._optimize: -@@ -553,18 +554,18 @@ - if preload_size: - preload_size += offset - self._data.write(struct.pack('./config.log', '>>./config.log') -+ script = script.replace(b'>./config.log', b'>>./config.log') - - with open(old_configure, 'wb') as fh: - fh.write(script) ---- mozjs-52.4.0/build/subconfigure.py.old 2017-04-11 02:13:09.000000000 +0000 -+++ mozjs-52.4.0/build/subconfigure.py 2018-07-10 10:38:08.910000000 +0000 -@@ -27,7 +27,7 @@ - return super(Pool, cls).__new__(cls) - - def imap_unordered(self, fn, iterable): -- return itertools.imap(fn, iterable) -+ return map(fn, iterable) - - def close(self): - pass -@@ -131,11 +131,11 @@ - is_set = cache.get('ac_cv_env_%s_set' % precious) == 'set' - value = cache.get('ac_cv_env_%s_value' % precious) if is_set else None - if value != env.get(precious): -- print 'Removing %s because of %s value change from:' \ -- % (data['cache-file'], precious) -- print ' %s' % (value if value is not None else 'undefined') -- print 'to:' -- print ' %s' % env.get(precious, 'undefined') -+ print('Removing %s because of %s value change from:' \ -+ % (data['cache-file'], precious)) -+ print(' %s' % (value if value is not None else 'undefined')) -+ print('to:') -+ print(' %s' % env.get(precious, 'undefined')) - os.remove(data['cache-file']) - return True - return False -@@ -333,8 +333,8 @@ - # We're going to run it ourselves. - command += ['--no-create'] - -- print prefix_lines('configuring', relobjdir) -- print prefix_lines('running %s' % ' '.join(command[:-1]), relobjdir) -+ print(prefix_lines('configuring', relobjdir)) -+ print(prefix_lines('running %s' % ' '.join(command[:-1]), relobjdir)) - sys.stdout.flush() - try: - output += subprocess.check_output(command, -@@ -368,7 +368,7 @@ - - if not skip_config_status: - if skip_configure: -- print prefix_lines('running config.status', relobjdir) -+ print(prefix_lines('running config.status', relobjdir)) - sys.stdout.flush() - try: - output += subprocess.check_output([data['shell'], '-c', -@@ -410,7 +410,7 @@ - pool = Pool(len(subconfigures)) - for relobjdir, returncode, output in \ - pool.imap_unordered(run, subconfigures): -- print prefix_lines(output, relobjdir) -+ print(prefix_lines(output, relobjdir)) - sys.stdout.flush() - ret = max(returncode, ret) - if ret: ---- mozjs-52.4.0/build/moz.configure/old.configure.old 2018-07-10 10:38:53.530000000 +0000 -+++ mozjs-52.4.0/build/moz.configure/old.configure 2018-07-10 10:41:32.560000000 +0000 -@@ -394,7 +394,7 @@ - def post_old_configure(raw_config): - for k, v in raw_config['substs']: - set_old_configure_config( -- k[1:-1], v[1:-1] if isinstance(v, types.StringTypes) else v) -+ k[1:-1], v[1:-1] if isinstance(v, str) else v) - -- for k, v in dict(raw_config['defines']).iteritems(): -+ for k, v in dict(raw_config['defines']).items(): - set_old_configure_define(k[1:-1], v[1:-1]) ---- mozjs-52.4.0/configure.py (original) -+++ mozjs-52.4.0/configure.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --from __future__ import print_function, unicode_literals -+ - - import codecs - import os -@@ -45,11 +45,11 @@ - - sanitized_config = {} - sanitized_config['substs'] = { -- k: sanitized_bools(v) for k, v in config.iteritems() -+ k: sanitized_bools(v) for k, v in config.items() - if k not in ('DEFINES', 'non_global_defines', 'TOPSRCDIR', 'TOPOBJDIR') - } - sanitized_config['defines'] = { -- k: sanitized_bools(v) for k, v in config['DEFINES'].iteritems() -+ k: sanitized_bools(v) for k, v in config['DEFINES'].items() - } - sanitized_config['non_global_defines'] = config['non_global_defines'] - sanitized_config['topsrcdir'] = config['TOPSRCDIR'] -@@ -71,7 +71,7 @@ - ''') % {'python': config['PYTHON'], 'encoding': encoding}) - # A lot of the build backend code is currently expecting byte - # strings and breaks in subtle ways with unicode strings. (bug 1296508) -- for k, v in sanitized_config.iteritems(): -+ for k, v in sanitized_config.items(): - fh.write('%s = encode(%s, encoding)\n' % (k, indented_repr(v))) - fh.write("__all__ = ['topobjdir', 'topsrcdir', 'defines', " - "'non_global_defines', 'substs', 'mozconfig']") -@@ -88,7 +88,7 @@ - # executable permissions. - os.chmod('config.status', 0o755) - if config.get('MOZ_BUILD_APP') != 'js' or config.get('JS_STANDALONE'): -- os.environ[b'WRITE_MOZINFO'] = b'1' -+ os.environ['WRITE_MOZINFO'] = '1' - from mozbuild.config_status import config_status - - # Some values in sanitized_config also have more complex types, such as ---- mozjs-52.4.0/testing/mozbase/mozfile/mozfile/mozfile.py (original) -+++ mozjs-52.4.0/testing/mozbase/mozfile/mozfile/mozfile.py (refactored) -@@ -6,7 +6,7 @@ - - # We don't import all modules at the top for performance reasons. See Bug 1008943 - --from __future__ import absolute_import -+ - - from contextlib import contextmanager - import errno -@@ -55,7 +55,7 @@ - try: - bundle = zipfile.ZipFile(src) - except Exception: -- print "src: %s" % src -+ print("src: %s" % src) - raise - - namelist = bundle.namelist() -@@ -161,8 +161,8 @@ - - retry_count += 1 - -- print '%s() failed for "%s". Reason: %s (%s). Retrying...' % \ -- (func.__name__, args, e.strerror, e.errno) -+ print('%s() failed for "%s". Reason: %s (%s). Retrying...' % \ -+ (func.__name__, args, e.strerror, e.errno)) - time.sleep(retry_count * retry_delay) - else: - # If no exception has been thrown it should be done -@@ -420,9 +420,9 @@ - Return True if thing looks like a URL. - """ - -- import urlparse -- -- parsed = urlparse.urlparse(thing) -+ import urllib.parse -+ -+ parsed = urllib.parse.urlparse(thing) - if 'scheme' in parsed: - return len(parsed.scheme) >= 2 - else: -@@ -436,7 +436,7 @@ - result of urllib2.urlopen() - """ - -- import urllib2 -+ import urllib.request, urllib.error, urllib.parse - - # handle file URLs separately due to python stdlib limitations - if resource.startswith('file://'): -@@ -446,4 +446,4 @@ - # if no scheme is given, it is a file path -- return file(resource) -+ return open(resource) - -- return urllib2.urlopen(resource) -+ return urllib.request.urlopen(resource) ---- mozjs-52.4.0/testing/mozbase/mozinfo/mozinfo/mozinfo.py (original) -+++ mozjs-52.4.0/testing/mozbase/mozinfo/mozinfo/mozinfo.py (refactored) -@@ -8,7 +8,7 @@ - # linux) to the information; I certainly wouldn't want anyone parsing this - # information and having behaviour depend on it - --from __future__ import absolute_import -+ - - import os - import platform -@@ -24,7 +24,7 @@ - class unknown(object): - """marker class for unknown information""" - -- def __nonzero__(self): -+ def __bool__(self): - return False - - def __str__(self): -@@ -184,7 +184,7 @@ - to a json file containing the new info. - """ - -- if isinstance(new_info, basestring): -+ if isinstance(new_info, str): - # lazy import - import mozfile - import json -@@ -246,7 +246,7 @@ - update({}) - - # exports --__all__ = info.keys() -+__all__ = list(info.keys()) - __all__ += ['is' + os_name.title() for os_name in choices['os']] - __all__ += [ - 'info', -@@ -284,17 +284,17 @@ - - # print out choices if requested - flag = False -- for key, value in options.__dict__.items(): -+ for key, value in list(options.__dict__.items()): - if value is True: -- print '%s choices: %s' % (key, ' '.join([str(choice) -- for choice in choices[key]])) -+ print('%s choices: %s' % (key, ' '.join([str(choice) -+ for choice in choices[key]]))) - flag = True - if flag: - return - - # otherwise, print out all info -- for key, value in info.items(): -- print '%s: %s' % (key, value) -+ for key, value in list(info.items()): -+ print('%s: %s' % (key, value)) - - if __name__ == '__main__': - main() ---- mozjs-52.4.0/testing/mozbase/mozinfo/mozinfo/string_version.py.old 2017-04-11 02:13:06.000000000 +0000 -+++ mozjs-52.4.0/testing/mozbase/mozinfo/mozinfo/string_version.py 2018-07-10 11:10:56.140000000 +0000 -@@ -10,8 +10,10 @@ - A string version that can be compared with comparison operators. - """ - -+ def __new__(cls, value): -+ return str.__new__(cls, value) -+ - def __init__(self, vstring): -- str.__init__(self, vstring) - self.version = LooseVersion(vstring) - - def __repr__(self): ---- mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/manifestparser.py (original) -+++ mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/manifestparser.py (refactored) -@@ -2,7 +2,7 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this file, - # You can obtain one at http://mozilla.org/MPL/2.0/. - --from StringIO import StringIO -+from io import StringIO - import json - import fnmatch - import os -@@ -21,7 +21,7 @@ - __all__ = ['ManifestParser', 'TestManifest', 'convert'] - - relpath = os.path.relpath --string = (basestring,) -+string = (str,) - - - # path normalization -@@ -178,7 +178,7 @@ - - # otherwise an item - # apply ancestor defaults, while maintaining current file priority -- data = dict(self._ancestor_defaults.items() + data.items()) -+ data = dict(list(self._ancestor_defaults.items()) + list(data.items())) - - test = data - test['name'] = section -@@ -306,19 +306,19 @@ - # make some check functions - if inverse: - def has_tags(test): -- return not tags.intersection(test.keys()) -+ return not tags.intersection(list(test.keys())) - - def dict_query(test): -- for key, value in kwargs.items(): -+ for key, value in list(kwargs.items()): - if test.get(key) == value: - return False - return True - else: - def has_tags(test): -- return tags.issubset(test.keys()) -+ return tags.issubset(list(test.keys())) - - def dict_query(test): -- for key, value in kwargs.items(): -+ for key, value in list(kwargs.items()): - if test.get(key) != value: - return False - return True -@@ -340,7 +340,7 @@ - """ - if tests is None: - # Make sure to return all the manifests, even ones without tests. -- return self.manifest_defaults.keys() -+ return list(self.manifest_defaults.keys()) - - manifests = [] - for test in tests: -@@ -373,8 +373,8 @@ - raise IOError("Strict mode enabled, test paths must exist. " - "The following test(s) are missing: %s" % - json.dumps(missing_paths, indent=2)) -- print >> sys.stderr, "Warning: The following test(s) are missing: %s" % \ -- json.dumps(missing_paths, indent=2) -+ print("Warning: The following test(s) are missing: %s" % \ -+ json.dumps(missing_paths, indent=2), file=sys.stderr) - return missing - - def verifyDirectory(self, directories, pattern=None, extensions=None): -@@ -385,7 +385,7 @@ - """ - - files = set([]) -- if isinstance(directories, basestring): -+ if isinstance(directories, str): - directories = [directories] - - # get files in directories -@@ -449,12 +449,12 @@ - - # print the .ini manifest - if global_tags or global_kwargs: -- print >> fp, '[DEFAULT]' -+ print('[DEFAULT]', file=fp) - for tag in global_tags: -- print >> fp, '%s =' % tag -- for key, value in global_kwargs.items(): -- print >> fp, '%s = %s' % (key, value) -- print >> fp -+ print('%s =' % tag, file=fp) -+ for key, value in list(global_kwargs.items()): -+ print('%s = %s' % (key, value), file=fp) -+ print(file=fp) - - for test in tests: - test = test.copy() # don't overwrite -@@ -465,7 +465,7 @@ - if self.rootdir: - path = relpath(test['path'], self.rootdir) - path = denormalize_path(path) -- print >> fp, '[%s]' % path -+ print('[%s]' % path, file=fp) - - # reserved keywords: - reserved = ['path', 'name', 'here', 'manifest', 'relpath', 'ancestor-manifest'] -@@ -476,8 +476,8 @@ - continue - if key in global_tags and not test[key]: - continue -- print >> fp, '%s = %s' % (key, test[key]) -- print >> fp -+ print('%s = %s' % (key, test[key]), file=fp) -+ print(file=fp) - - if close: - # close the created file -@@ -565,7 +565,7 @@ - message = "Missing test: '%s' does not exist!" - if self.strict: - raise IOError(message) -- print >> sys.stderr, message + " Skipping." -+ print(message + " Skipping.", file=sys.stderr) - continue - destination = os.path.join(rootdir, _relpath) - shutil.copy(source, destination) -@@ -578,7 +578,7 @@ - internal function to import directories - """ - -- if isinstance(pattern, basestring): -+ if isinstance(pattern, str): - patterns = [pattern] - else: - patterns = pattern -@@ -670,9 +670,9 @@ - if (dirnames or filenames) and not (os.path.exists(manifest_path) and overwrite): - with file(manifest_path, 'w') as manifest: - for dirname in dirnames: -- print >> manifest, '[include:%s]' % os.path.join(dirname, filename) -+ print('[include:%s]' % os.path.join(dirname, filename), file=manifest) - for _filename in filenames: -- print >> manifest, '[%s]' % _filename -+ print('[%s]' % _filename, file=manifest) - - # add to list of manifests - manifest_dict.setdefault(directory, manifest_path) -@@ -722,8 +722,8 @@ - for filename in filenames] - - # write to manifest -- print >> write, '\n'.join(['[%s]' % denormalize_path(filename) -- for filename in filenames]) -+ print('\n'.join(['[%s]' % denormalize_path(filename) -+ for filename in filenames]), file=write) - - cls._walk_directories(directories, callback, pattern=pattern, ignore=ignore) - ---- mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/expression.py (original) -+++ mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/expression.py (refactored) -@@ -275,7 +275,7 @@ - """ - if not isinstance(self.token, expected): - raise Exception("Unexpected token!") -- self.token = self.iter.next() -+ self.token = next(self.iter) - - def expression(self, rbp=0): - """ -@@ -283,11 +283,11 @@ - right binding power greater than rbp is encountered. - """ - t = self.token -- self.token = self.iter.next() -+ self.token = next(self.iter) - left = t.nud(self) - while rbp < self.token.lbp: - t = self.token -- self.token = self.iter.next() -+ self.token = next(self.iter) - left = t.led(self, left) - return left - -@@ -299,7 +299,7 @@ - """ - try: - self.iter = self._tokenize() -- self.token = self.iter.next() -+ self.token = next(self.iter) - return self.expression() - except: - extype, ex, tb = sys.exc_info() -@@ -307,7 +307,7 @@ - raise ParseError("could not parse: " - "%s\nexception: %svariables: %s" % (self.text, - formatted, -- self.valuemapping)), None, tb -+ self.valuemapping)).with_traceback(tb) - - __call__ = parse - ---- mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/filters.py (original) -+++ mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/filters.py (refactored) -@@ -92,7 +92,7 @@ - def __init__(self, *args, **kwargs): - self.fmt_args = ', '.join(itertools.chain( - [str(a) for a in args], -- ['{}={}'.format(k, v) for k, v in kwargs.iteritems()])) -+ ['{}={}'.format(k, v) for k, v in kwargs.items()])) - - def __eq__(self, other): - if self.unique: -@@ -249,7 +249,7 @@ - # be yielded for reporting purposes. Put them all in chunk 1 for - # simplicity. - if self.this_chunk == 1: -- disabled_dirs = [v for k, v in tests_by_dir.iteritems() -+ disabled_dirs = [v for k, v in tests_by_dir.items() - if k not in ordered_dirs] - for disabled_test in itertools.chain(*disabled_dirs): - yield disabled_test -@@ -326,7 +326,7 @@ - - def __init__(self, tags): - InstanceFilter.__init__(self, tags) -- if isinstance(tags, basestring): -+ if isinstance(tags, str): - tags = [tags] - self.tags = tags - -@@ -349,7 +349,7 @@ - - def __init__(self, paths): - InstanceFilter.__init__(self, paths) -- if isinstance(paths, basestring): -+ if isinstance(paths, str): - paths = [paths] - self.paths = paths - ---- mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/ini.py (original) -+++ mozjs-52.4.0/testing/mozbase/manifestparser/manifestparser/ini.py (refactored) -@@ -27,7 +27,7 @@ - sections = [] - key = value = None - section_names = set() -- if isinstance(fp, basestring): -- fp = file(fp) -+ if isinstance(fp, str): -+ fp = open(fp) - - # read the lines -@@ -131,7 +131,7 @@ - 'support-files': '%s %s', - } - final_mapping = global_vars.copy() -- for field_name, value in local_vars.items(): -+ for field_name, value in list(local_vars.items()): - if field_name not in field_patterns or field_name not in global_vars: - final_mapping[field_name] = value - continue ---- mozjs-52.4.0/python/mozbuild/mozbuild/util.py.old 2018-07-10 11:16:10.690000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/util.py 2018-07-10 23:36:02.250000000 +0000 -@@ -1254,10 +1254,10 @@ - encode(k, encoding): encode(v, encoding) - for k, v in obj.items() - } -- if isinstance(obj, bytes): -- return obj - if isinstance(obj, str): -- return obj.encode(encoding) -+ return obj -+ if isinstance(obj, bytes): -+ return obj.decode(encoding) - if isinstance(obj, Iterable): - return [encode(i, encoding) for i in obj] - return obj ---- mozjs-52.4.0/python/mozbuild/mozbuild/util.py.old 2018-07-10 23:36:33.980000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/util.py 2018-07-10 23:41:51.900000000 +0000 -@@ -1179,6 +1179,9 @@ - POSSIBLE_VALUES = possible_values - return EnumStringSubclass - -+ def __hash__(self): -+ return hash(str(self)) -+ - - def _escape_char(c): - # str.encode('unicode_espace') doesn't escape quotes, presumably because ---- mozjs-52.4.0/python/mozbuild/mozbuild/mozinfo.py.old 2018-07-10 23:42:19.390000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/mozinfo.py 2018-07-11 01:45:57.930000000 +0000 -@@ -155,6 +155,6 @@ - """ - build_conf = build_dict(config, env) - if isinstance(file, str): -- file = open(file, 'wb') -+ file = open(file, 'w') - - json.dump(build_conf, file, sort_keys=True, indent=4) ---- mozjs-52.4.0/python/mozbuild/mozbuild/jar.py.old 2018-07-11 01:46:26.540000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/jar.py 2018-07-11 02:02:36.010000000 +0000 -@@ -16,7 +16,7 @@ - import re - import logging - from time import localtime --from MozZipFile import ZipFile -+from zipfile import ZipFile - from io import StringIO - from collections import defaultdict - ---- mozjs-52.4.0/python/mozbuild/mozbuild/util.py.old 2018-07-11 02:05:38.530000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/util.py 2018-07-11 02:08:21.020000000 +0000 -@@ -987,8 +987,6 @@ - 'got %s, expected %s' % (fname, - type(value), ftype)) - -- super(TypedTuple, self).__init__(*args, **kwargs) -- - TypedTuple._fields = fields - - return TypedTuple ---- mozjs-52.4.0/build/moz.configure/init.configure.old 2018-07-11 02:08:50.000000000 +0000 -+++ mozjs-52.4.0/build/moz.configure/init.configure 2018-07-11 04:04:26.600000000 +0000 -@@ -297,7 +297,9 @@ - # There is also a quartet form: - # CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM - # But we can consider the "KERNEL-OPERATING_SYSTEM" as one. -- cpu, manufacturer, os = triplet.decode('utf-8').split('-', 2) -+ if isinstance(triplet, bytes): -+ triplet = triplet.decode('utf-8') -+ cpu, manufacturer, os = triplet.split('-', 2) - - # Autoconf uses config.sub to validate and canonicalize those triplets, - # but the granularity of its results has never been satisfying to our ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/reader.py.old 2018-07-11 04:25:33.980000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/reader.py 2018-07-11 04:24:50.630000000 +0000 -@@ -441,6 +441,8 @@ - code = func.__code__ - firstlineno = code.co_firstlineno - lines = sandbox._current_source.splitlines(True) -+ if len(lines) and isinstance(lines[0], bytes): -+ lines = [l.decode('utf-8') for l in lines] - lines = inspect.getblock(lines[firstlineno - 1:]) - - # The code lines we get out of inspect.getsourcelines look like ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/reader.py.old 2018-07-11 04:25:57.090000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/reader.py 2018-07-11 04:29:46.140000000 +0000 -@@ -460,7 +460,7 @@ - # actually never calls __getitem__ and __setitem__, so we need to - # modify the AST so that accesses to globals are properly directed - # to a dict. -- self._global_name = b'_data' # AST wants str for this, not unicode -+ self._global_name = '_data' # AST wants str for this, not unicode - # In case '_data' is a name used for a variable in the function code, - # prepend more underscores until we find an unused name. - while (self._global_name in code.co_names or ---- mozjs-52.4.0/python/mozbuild/mozbuild/frontend/context.py.old 2018-07-11 04:30:06.590000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/frontend/context.py 2018-07-11 04:35:38.670000000 +0000 -@@ -384,8 +384,8 @@ - - def __cmp__(self, other): - if isinstance(other, Path) and self.srcdir != other.srcdir: -- return cmp(self.full_path, other.full_path) -- return cmp(str(self), other) -+ return self.full_path == other.full_path -+ return str(self) == other - - # __cmp__ is not enough because unicode has __eq__, __ne__, etc. defined - # and __cmp__ is only used for those when they don't exist. ---- mozjs-52.4.0/mozglue/build/moz.build.old 2018-07-11 04:40:17.930000000 +0000 -+++ mozjs-52.4.0/mozglue/build/moz.build 2018-07-11 04:42:00.830000000 +0000 -@@ -4,20 +4,15 @@ - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. - --# Build mozglue as a shared lib on Windows, OSX and Android. -+# Build mozglue as a shared lib on Windows and OSX. - # If this is ever changed, update MOZ_SHARED_MOZGLUE in browser/installer/Makefile.in --if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin', 'Android') and not CONFIG['JS_STANDALONE']: -+if CONFIG['OS_TARGET'] in ('WINNT', 'Darwin') and not CONFIG['JS_STANDALONE']: - SharedLibrary('mozglue') - else: - Library('mozglue') - - SDK_LIBRARY = True - --if CONFIG['OS_TARGET'] == 'Android': -- SOURCES += [ -- 'BionicGlue.cpp', -- ] -- - if CONFIG['MOZ_ASAN']: - SOURCES += [ - 'AsanOptions.cpp', ---- mozjs-52.4.0/js/src/moz.build.old 2017-04-11 02:13:16.000000000 +0000 -+++ mozjs-52.4.0/js/src/moz.build 2018-07-11 04:43:59.920000000 +0000 -@@ -707,7 +707,7 @@ - CXXFLAGS += ['-wd4577'] - CXXFLAGS += ['-wd4312'] - --if CONFIG['OS_ARCH'] not in ('WINNT', 'HP-UX'): -+if CONFIG['OS_ARCH'] != 'WINNT': - OS_LIBS += [ - 'm', - ] -@@ -722,13 +722,13 @@ - 'dl', - ] - --if CONFIG['OS_ARCH'] == 'SunOS': -- OS_LIBS += [ -- 'posix4', -- 'dl', -- 'nsl', -- 'socket', -- ] -+#if CONFIG['OS_ARCH'] == 'SunOS': -+# OS_LIBS += [ -+# 'posix4', -+# 'dl', -+# 'nsl', -+# 'socket', -+# ] - - OS_LIBS += CONFIG['REALTIME_LIBS'] - ---- mozjs-52.4.0/python/mozbuild/mozbuild/util.py.old 2018-07-11 04:44:24.900000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/util.py 2018-07-11 04:46:47.310000000 +0000 -@@ -267,6 +267,10 @@ - if 'b' in self.mode: - writemode += 'b' - with open(self.name, writemode) as file: -+ if 'b' in self.mode and isinstance(buf, str): -+ buf = buf.encode('utf-8') -+ elif 'b' not in self.mode and isinstance(buf, bytes): -+ buf = buf.decode('utf-8') - file.write(buf) - - if self._capture_diff: ---- mozjs-52.4.0/python/mozbuild/mozbuild/backend/recursivemake.py.old 2018-07-11 04:47:15.020000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/backend/recursivemake.py 2018-07-11 04:53:51.750000000 +0000 -@@ -77,86 +77,86 @@ - from functools import reduce - - MOZBUILD_VARIABLES = [ -- b'ANDROID_APK_NAME', -- b'ANDROID_APK_PACKAGE', -- b'ANDROID_ASSETS_DIRS', -- b'ANDROID_EXTRA_PACKAGES', -- b'ANDROID_EXTRA_RES_DIRS', -- b'ANDROID_GENERATED_RESFILES', -- b'ANDROID_RES_DIRS', -- b'ASFLAGS', -- b'CMSRCS', -- b'CMMSRCS', -- b'CPP_UNIT_TESTS', -- b'DIRS', -- b'DIST_INSTALL', -- b'EXTRA_DSO_LDOPTS', -- b'EXTRA_JS_MODULES', -- b'EXTRA_PP_COMPONENTS', -- b'EXTRA_PP_JS_MODULES', -- b'FORCE_SHARED_LIB', -- b'FORCE_STATIC_LIB', -- b'FINAL_LIBRARY', -- b'HOST_CFLAGS', -- b'HOST_CSRCS', -- b'HOST_CMMSRCS', -- b'HOST_CXXFLAGS', -- b'HOST_EXTRA_LIBS', -- b'HOST_LIBRARY_NAME', -- b'HOST_PROGRAM', -- b'HOST_SIMPLE_PROGRAMS', -- b'IS_COMPONENT', -- b'JAR_MANIFEST', -- b'JAVA_JAR_TARGETS', -- b'LD_VERSION_SCRIPT', -- b'LIBRARY_NAME', -- b'LIBS', -- b'MAKE_FRAMEWORK', -- b'MODULE', -- b'NO_DIST_INSTALL', -- b'NO_EXPAND_LIBS', -- b'NO_INTERFACES_MANIFEST', -- b'NO_JS_MANIFEST', -- b'OS_LIBS', -- b'PARALLEL_DIRS', -- b'PREF_JS_EXPORTS', -- b'PROGRAM', -- b'PYTHON_UNIT_TESTS', -- b'RESOURCE_FILES', -- b'SDK_HEADERS', -- b'SDK_LIBRARY', -- b'SHARED_LIBRARY_LIBS', -- b'SHARED_LIBRARY_NAME', -- b'SIMPLE_PROGRAMS', -- b'SONAME', -- b'STATIC_LIBRARY_NAME', -- b'TEST_DIRS', -- b'TOOL_DIRS', -+ 'ANDROID_APK_NAME', -+ 'ANDROID_APK_PACKAGE', -+ 'ANDROID_ASSETS_DIRS', -+ 'ANDROID_EXTRA_PACKAGES', -+ 'ANDROID_EXTRA_RES_DIRS', -+ 'ANDROID_GENERATED_RESFILES', -+ 'ANDROID_RES_DIRS', -+ 'ASFLAGS', -+ 'CMSRCS', -+ 'CMMSRCS', -+ 'CPP_UNIT_TESTS', -+ 'DIRS', -+ 'DIST_INSTALL', -+ 'EXTRA_DSO_LDOPTS', -+ 'EXTRA_JS_MODULES', -+ 'EXTRA_PP_COMPONENTS', -+ 'EXTRA_PP_JS_MODULES', -+ 'FORCE_SHARED_LIB', -+ 'FORCE_STATIC_LIB', -+ 'FINAL_LIBRARY', -+ 'HOST_CFLAGS', -+ 'HOST_CSRCS', -+ 'HOST_CMMSRCS', -+ 'HOST_CXXFLAGS', -+ 'HOST_EXTRA_LIBS', -+ 'HOST_LIBRARY_NAME', -+ 'HOST_PROGRAM', -+ 'HOST_SIMPLE_PROGRAMS', -+ 'IS_COMPONENT', -+ 'JAR_MANIFEST', -+ 'JAVA_JAR_TARGETS', -+ 'LD_VERSION_SCRIPT', -+ 'LIBRARY_NAME', -+ 'LIBS', -+ 'MAKE_FRAMEWORK', -+ 'MODULE', -+ 'NO_DIST_INSTALL', -+ 'NO_EXPAND_LIBS', -+ 'NO_INTERFACES_MANIFEST', -+ 'NO_JS_MANIFEST', -+ 'OS_LIBS', -+ 'PARALLEL_DIRS', -+ 'PREF_JS_EXPORTS', -+ 'PROGRAM', -+ 'PYTHON_UNIT_TESTS', -+ 'RESOURCE_FILES', -+ 'SDK_HEADERS', -+ 'SDK_LIBRARY', -+ 'SHARED_LIBRARY_LIBS', -+ 'SHARED_LIBRARY_NAME', -+ 'SIMPLE_PROGRAMS', -+ 'SONAME', -+ 'STATIC_LIBRARY_NAME', -+ 'TEST_DIRS', -+ 'TOOL_DIRS', - # XXX config/Makefile.in specifies this in a make invocation - #'USE_EXTENSION_MANIFEST', -- b'XPCSHELL_TESTS', -- b'XPIDL_MODULE', -+ 'XPCSHELL_TESTS', -+ 'XPIDL_MODULE', - ] - - DEPRECATED_VARIABLES = [ -- b'ANDROID_RESFILES', -- b'EXPORT_LIBRARY', -- b'EXTRA_LIBS', -- b'HOST_LIBS', -- b'LIBXUL_LIBRARY', -- b'MOCHITEST_A11Y_FILES', -- b'MOCHITEST_BROWSER_FILES', -- b'MOCHITEST_BROWSER_FILES_PARTS', -- b'MOCHITEST_CHROME_FILES', -- b'MOCHITEST_FILES', -- b'MOCHITEST_FILES_PARTS', -- b'MOCHITEST_METRO_FILES', -- b'MOCHITEST_ROBOCOP_FILES', -- b'MODULE_OPTIMIZE_FLAGS', -- b'MOZ_CHROME_FILE_FORMAT', -- b'SHORT_LIBNAME', -- b'TESTING_JS_MODULES', -- b'TESTING_JS_MODULE_DIR', -+ 'ANDROID_RESFILES', -+ 'EXPORT_LIBRARY', -+ 'EXTRA_LIBS', -+ 'HOST_LIBS', -+ 'LIBXUL_LIBRARY', -+ 'MOCHITEST_A11Y_FILES', -+ 'MOCHITEST_BROWSER_FILES', -+ 'MOCHITEST_BROWSER_FILES_PARTS', -+ 'MOCHITEST_CHROME_FILES', -+ 'MOCHITEST_FILES', -+ 'MOCHITEST_FILES_PARTS', -+ 'MOCHITEST_METRO_FILES', -+ 'MOCHITEST_ROBOCOP_FILES', -+ 'MODULE_OPTIMIZE_FLAGS', -+ 'MOZ_CHROME_FILE_FORMAT', -+ 'SHORT_LIBNAME', -+ 'TESTING_JS_MODULES', -+ 'TESTING_JS_MODULE_DIR', - ] - - MOZBUILD_VARIABLES_MESSAGE = 'It should only be defined in moz.build files.' -@@ -758,7 +758,7 @@ - rule.add_dependencies(['$(CURDIR)/%: %']) - - def _check_blacklisted_variables(self, makefile_in, makefile_content): -- if b'EXTERNALLY_MANAGED_MAKE_FILE' in makefile_content: -+ if 'EXTERNALLY_MANAGED_MAKE_FILE' in makefile_content: - # Bypass the variable restrictions for externally managed makefiles. - return - -@@ -765,7 +765,7 @@ - for l in makefile_content.splitlines(): - l = l.strip() - # Don't check comments -- if l.startswith(b'#'): -+ if l.startswith('#'): - continue - for x in chain(MOZBUILD_VARIABLES, DEPRECATED_VARIABLES): - if x not in l: -@@ -822,11 +822,11 @@ - # Skip every directory but those with a Makefile - # containing a tools target, or XPI_PKGNAME or - # INSTALL_EXTENSION_ID. -- for t in (b'XPI_PKGNAME', b'INSTALL_EXTENSION_ID', -- b'tools'): -+ for t in ('XPI_PKGNAME', 'INSTALL_EXTENSION_ID', -+ 'tools'): - if t not in content: - continue -- if t == b'tools' and not re.search('(?:^|\s)tools.*::', content, re.M): -+ if t == 'tools' and not re.search('(?:^|\s)tools.*::', content, re.M): - continue - if objdir == self.environment.topobjdir: - continue -@@ -1422,20 +1422,20 @@ - pp.context.update(extra) - if not pp.context.get('autoconfmk', ''): - pp.context['autoconfmk'] = 'autoconf.mk' -- pp.handleLine(b'# THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT MODIFY BY HAND.\n'); -- pp.handleLine(b'DEPTH := @DEPTH@\n') -- pp.handleLine(b'topobjdir := @topobjdir@\n') -- pp.handleLine(b'topsrcdir := @top_srcdir@\n') -- pp.handleLine(b'srcdir := @srcdir@\n') -- pp.handleLine(b'VPATH := @srcdir@\n') -- pp.handleLine(b'relativesrcdir := @relativesrcdir@\n') -- pp.handleLine(b'include $(DEPTH)/config/@autoconfmk@\n') -+ pp.handleLine('# THIS FILE WAS AUTOMATICALLY GENERATED. DO NOT MODIFY BY HAND.\n'); -+ pp.handleLine('DEPTH := @DEPTH@\n') -+ pp.handleLine('topobjdir := @topobjdir@\n') -+ pp.handleLine('topsrcdir := @top_srcdir@\n') -+ pp.handleLine('srcdir := @srcdir@\n') -+ pp.handleLine('VPATH := @srcdir@\n') -+ pp.handleLine('relativesrcdir := @relativesrcdir@\n') -+ pp.handleLine('include $(DEPTH)/config/@autoconfmk@\n') - if not stub: - pp.do_include(obj.input_path) - # Empty line to avoid failures when last line in Makefile.in ends - # with a backslash. -- pp.handleLine(b'\n') -- pp.handleLine(b'include $(topsrcdir)/config/recurse.mk\n') -+ pp.handleLine('\n') -+ pp.handleLine('include $(topsrcdir)/config/recurse.mk\n') - if not stub: - # Adding the Makefile.in here has the desired side-effect - # that if the Makefile.in disappears, this will force ---- mozjs-52.4.0/python/mozbuild/mozpack/manifests.py.old 2018-07-11 04:54:39.260000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozpack/manifests.py 2018-07-11 04:57:31.710000000 +0000 -@@ -115,7 +115,7 @@ - self._source_files = set() - - if path or fileobj: -- with _auto_fileobj(path, fileobj, 'rb') as fh: -+ with _auto_fileobj(path, fileobj, 'r') as fh: - self._source_files.add(fh.name) - self._load_from_fileobj(fh) - -@@ -174,7 +174,7 @@ - dest, content = fields[1:] - - self.add_content( -- self._decode_field_entry(content).encode('utf-8'), dest) -+ self._decode_field_entry(content), dest) - continue - - # Don't fail for non-actionable items, allowing -@@ -236,7 +236,7 @@ - - It is an error if both are specified. - """ -- with _auto_fileobj(path, fileobj, 'wb') as fh: -+ with _auto_fileobj(path, fileobj, 'w') as fh: - fh.write('%d\n' % self.CURRENT_VERSION) - - for dest in sorted(self._dests): -@@ -244,8 +244,7 @@ - - parts = ['%d' % entry[0], dest] - parts.extend(entry[1:]) -- fh.write('%s\n' % self.FIELD_SEPARATOR.join( -- p.encode('utf-8') for p in parts)) -+ fh.write('%s\n' % self.FIELD_SEPARATOR.join(parts)) - - def add_symlink(self, source, dest): - """Add a symlink to this manifest. -@@ -391,7 +390,7 @@ - if install_type == self.CONTENT: - # GeneratedFile expect the buffer interface, which the unicode - # type doesn't have, so encode to a str. -- content = self._decode_field_entry(entry[1]).encode('utf-8') -+ content = self._decode_field_entry(entry[1]) - registry.add(dest, GeneratedFile(content)) - continue - ---- mozjs-52.4.0/config/MozZipFile.py (original) -+++ mozjs-52.4.0/config/MozZipFile.py (refactored) -@@ -18,7 +18,7 @@ - def __init__(self, file, mode="r", compression=zipfile.ZIP_STORED, - lock = False): - if lock: -- assert isinstance(file, basestring) -+ assert isinstance(file, str) - self.lockfile = lock_file(file + '.lck') - else: - self.lockfile = None -@@ -46,7 +46,7 @@ - date_time=time.localtime(time.time())) - zinfo.compress_type = self.compression - # Add some standard UNIX file access permissions (-rw-r--r--). -- zinfo.external_attr = (0x81a4 & 0xFFFF) << 16L -+ zinfo.external_attr = (0x81a4 & 0xFFFF) << 16 - else: - zinfo = zinfo_or_arcname - -@@ -58,7 +58,7 @@ - # as the old, reuse the existing entry. - - doSeek = False # store if we need to seek to the eof after overwriting -- if self.NameToInfo.has_key(zinfo.filename): -+ if zinfo.filename in self.NameToInfo: - # Find the last ZipInfo with our name. - # Last, because that's catching multiple overwrites - i = len(self.filelist) -@@ -109,14 +109,14 @@ - # adjust file mode if we originally just wrote, now we rewrite - self.fp.close() - self.fp = open(self.filename, 'r+b') -- all = map(lambda zi: (zi, True), self.filelist) + \ -- map(lambda zi: (zi, False), self._remove) -+ all = [(zi, True) for zi in self.filelist] + \ -+ [(zi, False) for zi in self._remove] - all.sort(lambda l, r: cmp(l[0].header_offset, r[0].header_offset)) - # empty _remove for multiple closes - self._remove = [] - - lengths = [all[i+1][0].header_offset - all[i][0].header_offset -- for i in xrange(len(all)-1)] -+ for i in range(len(all)-1)] - lengths.append(self.end - all[-1][0].header_offset) - to_pos = 0 - for (zi, keep), length in zip(all, lengths): ---- mozjs-52.4.0/config/check_spidermonkey_style.py (original) -+++ mozjs-52.4.0/config/check_spidermonkey_style.py (refactored) -@@ -35,7 +35,7 @@ - # isolation, but don't try to do any order checking between such blocks. - #---------------------------------------------------------------------------- - --from __future__ import print_function -+ - - import difflib - import os -@@ -270,7 +270,7 @@ - edges[inclname] = set() - - # Process all the JS files. -- for filename in js_names.keys(): -+ for filename in list(js_names.keys()): - inclname = js_names[filename] - file_kind = FileKind.get(filename) - if file_kind == FileKind.C or file_kind == FileKind.CPP or \ ---- mozjs-52.4.0/config/expandlibs.py (original) -+++ mozjs-52.4.0/config/expandlibs.py (refactored) -@@ -26,7 +26,7 @@ - descriptor contains. And for each of these LIBS, also apply the same - rules. - ''' --from __future__ import with_statement -+ - import sys, os, errno - import expandlibs_config as conf - -@@ -36,7 +36,7 @@ - if dir and not os.path.exists(dir): - try: - os.makedirs(dir) -- except OSError, error: -+ except OSError as error: - if error.errno != errno.EEXIST: - raise - -@@ -140,4 +140,4 @@ - return [relativize(arg)] - - if __name__ == '__main__': -- print " ".join(ExpandArgs(sys.argv[1:])) -+ print(" ".join(ExpandArgs(sys.argv[1:]))) ---- mozjs-52.4.0/config/expandlibs_exec.py (original) -+++ mozjs-52.4.0/config/expandlibs_exec.py (refactored) -@@ -20,7 +20,7 @@ - relevant linker options to change the order in which the linker puts the - symbols appear in the resulting binary. Only works for ELF targets. - ''' --from __future__ import with_statement -+ - import sys - import os - from expandlibs import ( -@@ -304,11 +304,11 @@ - return syms - - def print_command(out, args): -- print >>out, "Executing: " + " ".join(args) -+ print("Executing: " + " ".join(args), file=out) - for tmp in [f for f in args.tmp if os.path.isfile(f)]: -- print >>out, tmp + ":" -+ print(tmp + ":", file=out) - with open(tmp) as file: -- print >>out, "".join([" " + l for l in file.readlines()]) -+ print("".join([" " + l for l in file.readlines()]), file=out) - out.flush() - - def main(args, proc_callback=None): -@@ -338,8 +338,8 @@ - proc = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.STDOUT) - if proc_callback: - proc_callback(proc) -- except Exception, e: -- print >>sys.stderr, 'error: Launching', args, ':', e -+ except Exception as e: -+ print('error: Launching', args, ':', e, file=sys.stderr) - raise e - (stdout, stderr) = proc.communicate() - if proc.returncode and not options.verbose: ---- mozjs-52.4.0/config/expandlibs_gen.py (original) -+++ mozjs-52.4.0/config/expandlibs_gen.py (refactored) -@@ -5,7 +5,7 @@ - '''Given a list of object files and library names, prints a library - descriptor to standard output''' - --from __future__ import with_statement -+ - import sys - import os - import expandlibs_config as conf -@@ -38,4 +38,4 @@ - - ensureParentDir(options.output) - with open(options.output, 'w') as outfile: -- print >>outfile, generate(args) -+ print(generate(args), file=outfile) ---- mozjs-52.4.0/config/find_OOM_errors.py (original) -+++ mozjs-52.4.0/config/find_OOM_errors.py (refactored) -@@ -2,7 +2,7 @@ - # This Source Code Form is subject to the terms of the Mozilla Public - # License, v. 2.0. If a copy of the MPL was not distributed with this - # file, You can obtain one at http://mozilla.org/MPL/2.0/. --from __future__ import print_function -+ - - usage = """%prog: A test for OOM conditions in the shell. - -@@ -95,12 +95,12 @@ - """Keep track of the amount of times individual lines occur, in order to - prioritize the errors which occur most frequently.""" - counts = {} -- for string,count in blacklist.items(): -+ for string,count in list(blacklist.items()): - for line in string.split("\n"): - counts[line] = counts.get(line, 0) + count - - lines = [] -- for k,v in counts.items(): -+ for k,v in list(counts.items()): - lines.append("{0:6}: {1}".format(v, k)) - - lines.sort() ---- mozjs-52.4.0/config/nsinstall.py (original) -+++ mozjs-52.4.0/config/nsinstall.py (refactored) -@@ -9,7 +9,7 @@ - # a full build environment set up. - # The basic limitation is, it doesn't even try to link and ignores - # all related options. --from __future__ import print_function -+ - from optparse import OptionParser - import mozfile - import os -@@ -149,7 +149,7 @@ - - # nsinstall as a native command is always UTF-8 - def nsinstall(argv): -- return _nsinstall_internal([unicode(arg, "utf-8") for arg in argv]) -+ return _nsinstall_internal([str(arg, "utf-8") for arg in argv]) - - if __name__ == '__main__': - # sys.argv corrupts characters outside the system code page on Windows -@@ -175,8 +175,8 @@ - else: - # For consistency, do it on Unix as well - if sys.stdin.encoding is not None: -- argv = [unicode(arg, sys.stdin.encoding) for arg in sys.argv] -+ argv = [str(arg, sys.stdin.encoding) for arg in sys.argv] - else: -- argv = [unicode(arg) for arg in sys.argv] -+ argv = [str(arg) for arg in sys.argv] - - sys.exit(_nsinstall_internal(argv[1:])) ---- mozjs-52.4.0/config/printconfigsetting.py (original) -+++ mozjs-52.4.0/config/printconfigsetting.py (refactored) -@@ -5,12 +5,12 @@ - import configobj - import sys - import re --from StringIO import StringIO -+from io import StringIO - - try: - (file, section, key) = sys.argv[1:] - except ValueError: -- print "Usage: printconfigsetting.py
" -+ print("Usage: printconfigsetting.py
") - sys.exit(1) - - with open(file) as fh: -@@ -21,11 +21,11 @@ - try: - s = c[section] - except KeyError: -- print >>sys.stderr, "Section [%s] not found." % section -+ print("Section [%s] not found." % section, file=sys.stderr) - sys.exit(1) - - try: -- print s[key] -+ print(s[key]) - except KeyError: -- print >>sys.stderr, "Key %s not found." % key -+ print("Key %s not found." % key, file=sys.stderr) - sys.exit(1) ---- mozjs-52.4.0/config/pythonpath.py (original) -+++ mozjs-52.4.0/config/pythonpath.py (refactored) -@@ -9,7 +9,7 @@ - - def main(args): - def usage(): -- print >>sys.stderr, "pythonpath.py -I directory script.py [args...]" -+ print("pythonpath.py -I directory script.py [args...]", file=sys.stderr) - sys.exit(150) - - paths = [] -@@ -45,7 +45,7 @@ - frozenglobals['__name__'] = '__main__' - frozenglobals['__file__'] = script - -- execfile(script, frozenglobals) -+ exec(compile(open(script).read(), script, 'exec'), frozenglobals) - - # Freeze scope here ... why this makes things work I have no idea ... - frozenglobals = globals() ---- mozjs-52.4.0/config/rebuild_check.py (original) -+++ mozjs-52.4.0/config/rebuild_check.py (refactored) -@@ -18,7 +18,7 @@ - deps = args[1:] - t = mtime(target) - if t < 0: -- print target -+ print(target) - return - - newer = [] -@@ -31,13 +31,13 @@ - newer.append(dep) - - if newer and removed: -- print 'Rebuilding %s because %s changed and %s was removed' % (target, ', '.join(newer), ', '.join(removed)) -+ print('Rebuilding %s because %s changed and %s was removed' % (target, ', '.join(newer), ', '.join(removed))) - elif newer: -- print 'Rebuilding %s because %s changed' % (target, ', '.join(newer)) -+ print('Rebuilding %s because %s changed' % (target, ', '.join(newer))) - elif removed: -- print 'Rebuilding %s because %s was removed' % (target, ', '.join(removed)) -+ print('Rebuilding %s because %s was removed' % (target, ', '.join(removed))) - else: -- print 'Rebuilding %s for an unknown reason' % target -+ print('Rebuilding %s for an unknown reason' % target) - - if __name__ == '__main__': - import sys ---- mozjs-52.4.0/config/tests/unit-expandlibs.py (original) -+++ mozjs-52.4.0/config/tests/unit-expandlibs.py (refactored) -@@ -7,7 +7,7 @@ - from shutil import rmtree - import mozunit - --from UserString import UserString -+from collections import UserString - # Create a controlled configuration for use by expandlibs - config_win = { - 'AR': 'lib', -@@ -120,8 +120,7 @@ - del dict[name] - return type.__new__(cls, clsName, bases, dict) - --class TestCaseWithTmpDir(unittest.TestCase): -- __metaclass__ = ReplicateTests -+class TestCaseWithTmpDir(unittest.TestCase, metaclass=ReplicateTests): - def init(self): - self.tmpdir = os.path.abspath(mkdtemp(dir=os.curdir)) - ---- mozjs-52.4.0/config/tests/unit-nsinstall.py (original) -+++ mozjs-52.4.0/config/tests/unit-nsinstall.py (refactored) -@@ -28,9 +28,9 @@ - # Unicode strings means non-ASCII children can be deleted properly on - # Windows - if sys.stdin.encoding is None: -- tmpdir = unicode(self.tmpdir) -+ tmpdir = str(self.tmpdir) - else: -- tmpdir = unicode(self.tmpdir, sys.stdin.encoding) -+ tmpdir = str(self.tmpdir, sys.stdin.encoding) - rmtree(tmpdir) - - # utility methods for tests -@@ -50,14 +50,14 @@ - "Test nsinstall -D " - testdir = os.path.join(self.tmpdir, "test") - self.assertEqual(nsinstall(["-D", testdir]), 0) -- self.assert_(os.path.isdir(testdir)) -+ self.assertTrue(os.path.isdir(testdir)) - - def test_nsinstall_basic(self): - "Test nsinstall " - testfile = self.touch("testfile") - testdir = self.mkdirs("testdir") - self.assertEqual(nsinstall([testfile, testdir]), 0) -- self.assert_(os.path.isfile(os.path.join(testdir, "testfile"))) -+ self.assertTrue(os.path.isfile(os.path.join(testdir, "testfile"))) - - def test_nsinstall_basic_recursive(self): - "Test nsinstall " -@@ -76,12 +76,12 @@ - '-X', Xdir]), 0) - - testdir = os.path.join(destdir, "sourcedir") -- self.assert_(os.path.isdir(testdir)) -- self.assert_(os.path.isfile(os.path.join(testdir, "testfile"))) -- self.assert_(not os.path.exists(os.path.join(testdir, "Xfile"))) -- self.assert_(os.path.isdir(os.path.join(testdir, "copieddir"))) -- self.assert_(os.path.isfile(os.path.join(testdir, "copieddir", "testfile2"))) -- self.assert_(not os.path.exists(os.path.join(testdir, "Xdir"))) -+ self.assertTrue(os.path.isdir(testdir)) -+ self.assertTrue(os.path.isfile(os.path.join(testdir, "testfile"))) -+ self.assertTrue(not os.path.exists(os.path.join(testdir, "Xfile"))) -+ self.assertTrue(os.path.isdir(os.path.join(testdir, "copieddir"))) -+ self.assertTrue(os.path.isfile(os.path.join(testdir, "copieddir", "testfile2"))) -+ self.assertTrue(not os.path.exists(os.path.join(testdir, "Xdir"))) - - def test_nsinstall_multiple(self): - "Test nsinstall " -@@ -91,7 +91,7 @@ - testdir = self.mkdirs("testdir") - self.assertEqual(nsinstall(testfiles + [testdir]), 0) - for f in testfiles: -- self.assert_(os.path.isfile(os.path.join(testdir, -+ self.assertTrue(os.path.isfile(os.path.join(testdir, - os.path.basename(f)))) - - def test_nsinstall_dir_exists(self): -@@ -99,7 +99,7 @@ - srcdir = self.mkdirs("test") - destdir = self.mkdirs("testdir/test") - self.assertEqual(nsinstall([srcdir, os.path.dirname(destdir)]), 0) -- self.assert_(os.path.isdir(destdir)) -+ self.assertTrue(os.path.isdir(destdir)) - - def test_nsinstall_t(self): - "Test that nsinstall -t works (preserve timestamp)" -@@ -110,7 +110,7 @@ - os.utime(testfile, (t, t)) - self.assertEqual(nsinstall(["-t", testfile, testdir]), 0) - destfile = os.path.join(testdir, "testfile") -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - self.assertEqual(os.stat(testfile).st_mtime, - os.stat(destfile).st_mtime) - -@@ -125,7 +125,7 @@ - self.assertEqual(nsinstall(["-m", "{0:04o}" - .format(mode), testfile, testdir]), 0) - destfile = os.path.join(testdir, "testfile") -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - self.assertEqual(os.stat(testfile).st_mode, - os.stat(destfile).st_mode) - -@@ -136,25 +136,25 @@ - testdir = self.mkdirs("testdir") - destdir = os.path.join(testdir, "subdir") - self.assertEqual(nsinstall(["-d", testfile, destdir]), 0) -- self.assert_(os.path.isdir(os.path.join(destdir, "testfile"))) -+ self.assertTrue(os.path.isdir(os.path.join(destdir, "testfile"))) - - if RUN_NON_ASCII_TESTS: - def test_nsinstall_non_ascii(self): - "Test that nsinstall handles non-ASCII files" -- filename = u"\u2325\u3452\u2415\u5081" -+ filename = "\u2325\u3452\u2415\u5081" - testfile = self.touch(filename) -- testdir = self.mkdirs(u"\u4241\u1D04\u1414") -+ testdir = self.mkdirs("\u4241\u1D04\u1414") - self.assertEqual(nsinstall([testfile.encode("utf-8"), - testdir.encode("utf-8")]), 0) - - destfile = os.path.join(testdir, filename) -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - - def test_nsinstall_non_ascii_subprocess(self): - "Test that nsinstall as a subprocess handles non-ASCII files" -- filename = u"\u2325\u3452\u2415\u5081" -+ filename = "\u2325\u3452\u2415\u5081" - testfile = self.touch(filename) -- testdir = self.mkdirs(u"\u4241\u1D04\u1414") -+ testdir = self.mkdirs("\u4241\u1D04\u1414") - # We don't use subprocess because it can't handle Unicode on - # Windows . mozprocess calls - # CreateProcessW directly so it's perfect. -@@ -166,7 +166,7 @@ - - self.assertEqual(rv, 0) - destfile = os.path.join(testdir, filename) -- self.assert_(os.path.isfile(destfile)) -+ self.assertTrue(os.path.isfile(destfile)) - - #TODO: implement -R, -l, -L and test them! - ---- mozjs-52.4.0/config/tests/unitMozZipFile.py (original) -+++ mozjs-52.4.0/config/tests/unitMozZipFile.py (refactored) -@@ -11,6 +11,7 @@ - import random - import copy - from string import letters -+from functools import reduce - - ''' - Test case infrastructure for MozZipFile. -@@ -38,7 +39,7 @@ - 'firstdir/oneleaf', - 'seconddir/twoleaf', - 'thirddir/with/sub/threeleaf') --_lengths = map(lambda n: n * 64, [16, 64, 80]) -+_lengths = [n * 64 for n in [16, 64, 80]] - lengths = 3 - writes = 5 - -@@ -71,7 +72,7 @@ - def getContent(length): - 'Get pseudo random content of given length.' - rv = [None] * length -- for i in xrange(length): -+ for i in range(length): - rv[i] = random.choice(letters) - return ''.join(rv) - -@@ -133,13 +134,13 @@ - def _verifyZip(self): - zf = zipfile.ZipFile(self.f) - badEntry = zf.testzip() -- self.failIf(badEntry, badEntry) -+ self.assertFalse(badEntry, badEntry) - zlist = zf.namelist() - zlist.sort() -- vlist = self.ref.keys() -+ vlist = list(self.ref.keys()) - vlist.sort() - self.assertEqual(zlist, vlist) -- for leaf, content in self.ref.iteritems(): -+ for leaf, content in self.ref.items(): - zcontent = zf.read(leaf) - self.assertEqual(content, zcontent) - -@@ -158,16 +159,16 @@ - open(self.leaf('stage', leaf), 'w').write(content) - - # all leafs in all lengths --atomics = list(prod(xrange(len(leafs)), xrange(lengths))) -+atomics = list(prod(range(len(leafs)), range(lengths))) - - # populate TestExtensiveStore with testcases --for w in xrange(writes): -+for w in range(writes): - # Don't iterate over all files for the the first n passes, - # those are redundant as long as w < lengths. - # There are symmetries in the trailing end, too, but I don't know - # how to reduce those out right now. -- nonatomics = [list(prod(range(min(i,len(leafs))), xrange(lengths))) -- for i in xrange(1, w+1)] + [atomics] -+ nonatomics = [list(prod(list(range(min(i,len(leafs)))), range(lengths))) -+ for i in range(1, w+1)] + [atomics] - for descs in prod(*nonatomics): - suffix = getid(descs) - dicts = [dict(leaf=leaf, length=length) for leaf, length in descs] -@@ -181,9 +182,9 @@ - # and then write all atomics again. - # This should catch more or less all artifacts generated - # by the final ordering step when closing the jar. --files = [list(prod([i], xrange(lengths))) for i in xrange(len(leafs))] -+files = [list(prod([i], range(lengths))) for i in range(len(leafs))] - allfiles = reduce(lambda l,r:l+r, -- [list(prod(*files[:(i+1)])) for i in xrange(len(leafs))]) -+ [list(prod(*files[:(i+1)])) for i in range(len(leafs))]) - - for first in allfiles: - testbasename = 'test{0}_'.format(getid(first)) ---- mozjs-52.4.0/config/expandlibs_exec.py.old 2018-07-11 05:07:18.280000000 +0000 -+++ mozjs-52.4.0/config/expandlibs_exec.py 2018-07-11 05:08:45.670000000 +0000 -@@ -344,7 +344,7 @@ - (stdout, stderr) = proc.communicate() - if proc.returncode and not options.verbose: - print_command(sys.stderr, args) -- sys.stderr.write(stdout) -+ sys.stderr.write(stdout.decode('utf-8')) - sys.stderr.flush() - if proc.returncode: - return proc.returncode ---- mozjs-52.4.0/js/src/builtin/embedjs.py (original) -+++ mozjs-52.4.0/js/src/builtin/embedjs.py (refactored) -@@ -36,7 +36,7 @@ - # - # It uses the C preprocessor to process its inputs. - --from __future__ import with_statement -+ - import re, sys, os, subprocess - import shlex - import which -@@ -109,7 +109,7 @@ - - with open(tmpIn, 'wb') as input: - input.write(source) -- print(' '.join(cxx + outputArg + args + [tmpIn])) -+ print((' '.join(cxx + outputArg + args + [tmpIn]))) - result = subprocess.Popen(cxx + outputArg + args + [tmpIn]).wait() - if (result != 0): - sys.exit(result); -@@ -132,7 +132,7 @@ - - def get_config_defines(buildconfig): - # Collect defines equivalent to ACDEFINES and add MOZ_DEBUG_DEFINES. -- env = {key: value for key, value in buildconfig.defines.iteritems() -+ env = {key: value for key, value in buildconfig.defines.items() - if key not in buildconfig.non_global_defines} - for define in buildconfig.substs['MOZ_DEBUG_DEFINES']: - env[define] = 1 ---- mozjs-52.4.0/js/src/builtin/embedjs.py.old 2018-07-11 05:13:28.920000000 +0000 -+++ mozjs-52.4.0/js/src/builtin/embedjs.py 2018-07-11 05:15:15.390000000 +0000 -@@ -107,7 +107,7 @@ - tmpOut = 'self-hosting-preprocessed.pp'; - outputArg = shlex.split(preprocessorOption + tmpOut) - -- with open(tmpIn, 'wb') as input: -+ with open(tmpIn, 'w') as input: - input.write(source) - print((' '.join(cxx + outputArg + args + [tmpIn]))) - result = subprocess.Popen(cxx + outputArg + args + [tmpIn]).wait() ---- mozjs-52.4.0/python/mozbuild/mozbuild/preprocessor.py.old 2018-07-11 05:15:42.900000000 +0000 -+++ mozjs-52.4.0/python/mozbuild/mozbuild/preprocessor.py 2018-07-11 05:23:10.870000000 +0000 -@@ -451,7 +451,7 @@ - except OSError as error: - if error.errno != errno.EEXIST: - raise -- return open(path, 'wb') -+ return open(path, 'w') - - p = self.getCommandLineParser() - options, args = p.parse_args(args=args) ---- mozjs-52.4.0/js/src/builtin/embedjs.py.old 2018-07-11 05:15:42.950000000 +0000 -+++ mozjs-52.4.0/js/src/builtin/embedjs.py 2018-07-11 05:20:14.280000000 +0000 -@@ -53,7 +53,7 @@ - def ToCArray(lines): - result = [] - for chr in lines: -- result.append(str(ord(chr))) -+ result.append(str(chr)) - return ", ".join(result) - - HEADER_TEMPLATE = """\ -@@ -87,7 +87,7 @@ - - js_out.write(processed) - import zlib -- compressed = zlib.compress(processed) -+ compressed = zlib.compress(processed.encode('utf-8')) - data = ToCArray(compressed) - c_out.write(HEADER_TEMPLATE % { - 'sources_type': 'unsigned char', diff --git a/user/nfs-utils/nfs-utils.conf b/user/nfs-utils/nfs-utils.conf deleted file mode 100644 index b9b586c2a..000000000 --- a/user/nfs-utils/nfs-utils.conf +++ /dev/null @@ -1,3 +0,0 @@ -d /var/lib/nfs/rpc_pipefs -d /var/lib/nfs/v4recovery -d /var/lib/nfs/v4root diff --git a/user/orage/libical-3.patch b/user/orage/libical-3.patch deleted file mode 100644 index ad57fd3cb..000000000 --- a/user/orage/libical-3.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 58e4bb4d3b982876dec33d55003d591559439598 Mon Sep 17 00:00:00 2001 -From: Stefan Seyfried -Date: Sat, 3 Mar 2018 20:25:24 +0100 -Subject: [PATCH] fix build with libical version 3 - ---- - src/ical-code.c | 12 ++++++++++++ - 1 file changed, 12 insertions(+) - -diff --git a/src/ical-code.c b/src/ical-code.c -index d5831404..c40042c3 100644 ---- a/src/ical-code.c -+++ b/src/ical-code.c -@@ -2579,7 +2579,9 @@ static struct icaltimetype count_first_alarm_time(xfical_period per - * when counting alarm time. */ - if (rel == ICAL_RELATED_START) { - per.stime.is_date = 0; -+#if ICAL_MAJOR_VERSION < 3 - per.stime.is_utc = 1; -+#endif - per.stime.is_daylight = 0; - per.stime.zone = utc_icaltimezone; - per.stime.hour = 0; -@@ -2588,7 +2590,9 @@ static struct icaltimetype count_first_alarm_time(xfical_period per - } - else { - per.etime.is_date = 0; -+#if ICAL_MAJOR_VERSION < 3 - per.etime.is_utc = 1; -+#endif - per.etime.is_daylight = 0; - per.etime.zone = utc_icaltimezone; - per.etime.hour = 0; -@@ -2613,7 +2617,9 @@ static struct icaltimetype count_next_alarm_time(struct icaltimetype start_time - /* HACK: convert to UTC time so that we can use time arithmetic - * when counting alarm time. */ - start_time.is_date = 0; -+#if ICAL_MAJOR_VERSION < 3 - start_time.is_utc = 1; -+#endif - start_time.is_daylight = 0; - start_time.zone = utc_icaltimezone; - start_time.hour = 0; -@@ -2768,7 +2774,9 @@ static alarm_struct *process_alarm_trigger(icalcomponent *c - */ - if (icaltime_is_date(per.stime)) { - if (local_icaltimezone != utc_icaltimezone) { -+#if ICAL_MAJOR_VERSION < 3 - next_alarm_time.is_utc = 0; -+#endif - next_alarm_time.is_daylight = 0; - next_alarm_time.zone = local_icaltimezone; - } -@@ -2850,7 +2858,9 @@ orage_message(120, P_N "Alarm rec loop next_start:%s next_alarm:%s per.stime:%s" - */ - if (icaltime_is_date(per.stime)) { - if (local_icaltimezone != utc_icaltimezone) { -+#if ICAL_MAJOR_VERSION < 3 - next_alarm_time.is_utc = 0; -+#endif - next_alarm_time.is_daylight = 0; - next_alarm_time.zone = local_icaltimezone; - } -@@ -2944,7 +2954,9 @@ orage_message(120, P_N "*****After loop Alarm %s %s", icaltime_as_ical_string(ne - */ - if (icaltime_is_date(per.stime)) { - if (local_icaltimezone != utc_icaltimezone) { -+#if ICAL_MAJOR_VERSION < 3 - next_alarm_time.is_utc = 0; -+#endif - next_alarm_time.is_daylight = 0; - next_alarm_time.zone = local_icaltimezone; - } --- -2.16.2 - diff --git a/user/php7/allow-build-recode-and-imap-together.patch b/user/php7/allow-build-recode-and-imap-together.patch deleted file mode 100644 index 555092f45..000000000 --- a/user/php7/allow-build-recode-and-imap-together.patch +++ /dev/null @@ -1,20 +0,0 @@ -Extensions recode and imap can't be loaded together, but they can be build -together, and that's what we want. - -Source: https://src.fedoraproject.org/cgit/rpms/php.git/tree/php-5.3.0-recode.patch?h=f26 ---- a/ext/recode/config9.m4 -+++ b/ext/recode/config9.m4 -@@ -4,13 +4,6 @@ dnl - - dnl Check for extensions with which Recode can not work - if test "$PHP_RECODE" != "no"; then -- test "$PHP_IMAP" != "no" && recode_conflict="$recode_conflict imap" -- -- if test -n "$MYSQL_LIBNAME"; then -- PHP_CHECK_LIBRARY($MYSQL_LIBNAME, hash_insert, [ -- recode_conflict="$recode_conflict mysql" -- ]) -- fi - - if test -n "$recode_conflict"; then - AC_MSG_ERROR([recode extension can not be configured together with:$recode_conflict]) diff --git a/user/pluma-plugins/license.txt b/user/pluma-plugins/license.txt deleted file mode 100644 index 2ae4fddcf..000000000 --- a/user/pluma-plugins/license.txt +++ /dev/null @@ -1,2166 +0,0 @@ -Format: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ -Upstream-Name: FIXME -Upstream-Contact: FIXME -Source: FIXME -Disclaimer: Autogenerated by licensecheck - -Files: src/pluma-plugins-1.26.0/ABOUT-NLS - src/pluma-plugins-1.26.0/ChangeLog - src/pluma-plugins-1.26.0/Makefile.am - src/pluma-plugins-1.26.0/Makefile.in - src/pluma-plugins-1.26.0/NEWS - src/pluma-plugins-1.26.0/autogen.sh - src/pluma-plugins-1.26.0/config.h.in - src/pluma-plugins-1.26.0/configure.ac - src/pluma-plugins-1.26.0/help/C/bookmarks.page - src/pluma-plugins-1.26.0/help/C/bracketcompletion.page - src/pluma-plugins-1.26.0/help/C/codecomment.page - src/pluma-plugins-1.26.0/help/C/index.page - src/pluma-plugins-1.26.0/help/C/legal-plugins.xml - src/pluma-plugins-1.26.0/help/C/synctex.page - src/pluma-plugins-1.26.0/help/C/terminal.page - src/pluma-plugins-1.26.0/help/C/wordcompletion.page - src/pluma-plugins-1.26.0/help/Makefile.am - src/pluma-plugins-1.26.0/help/Makefile.in - src/pluma-plugins-1.26.0/help/af/af.po - src/pluma-plugins-1.26.0/help/af/bookmarks.page - src/pluma-plugins-1.26.0/help/af/bracketcompletion.page - src/pluma-plugins-1.26.0/help/af/codecomment.page - src/pluma-plugins-1.26.0/help/af/index.page - src/pluma-plugins-1.26.0/help/af/legal-plugins.xml - src/pluma-plugins-1.26.0/help/af/synctex.page - src/pluma-plugins-1.26.0/help/af/terminal.page - src/pluma-plugins-1.26.0/help/af/wordcompletion.page - src/pluma-plugins-1.26.0/help/am/am.po - src/pluma-plugins-1.26.0/help/am/bookmarks.page - src/pluma-plugins-1.26.0/help/am/bracketcompletion.page - src/pluma-plugins-1.26.0/help/am/codecomment.page - src/pluma-plugins-1.26.0/help/am/index.page - src/pluma-plugins-1.26.0/help/am/legal-plugins.xml - src/pluma-plugins-1.26.0/help/am/synctex.page - src/pluma-plugins-1.26.0/help/am/terminal.page - src/pluma-plugins-1.26.0/help/am/wordcompletion.page - src/pluma-plugins-1.26.0/help/an/an.po - src/pluma-plugins-1.26.0/help/an/bookmarks.page - src/pluma-plugins-1.26.0/help/an/bracketcompletion.page - src/pluma-plugins-1.26.0/help/an/codecomment.page - src/pluma-plugins-1.26.0/help/an/index.page - src/pluma-plugins-1.26.0/help/an/legal-plugins.xml - src/pluma-plugins-1.26.0/help/an/synctex.page - src/pluma-plugins-1.26.0/help/an/terminal.page - src/pluma-plugins-1.26.0/help/an/wordcompletion.page - src/pluma-plugins-1.26.0/help/ar/bookmarks.page - src/pluma-plugins-1.26.0/help/ar/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ar/codecomment.page - src/pluma-plugins-1.26.0/help/ar/index.page - src/pluma-plugins-1.26.0/help/ar/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ar/synctex.page - src/pluma-plugins-1.26.0/help/ar/terminal.page - src/pluma-plugins-1.26.0/help/ar/wordcompletion.page - src/pluma-plugins-1.26.0/help/as/as.po - src/pluma-plugins-1.26.0/help/as/bookmarks.page - src/pluma-plugins-1.26.0/help/as/bracketcompletion.page - src/pluma-plugins-1.26.0/help/as/codecomment.page - src/pluma-plugins-1.26.0/help/as/index.page - src/pluma-plugins-1.26.0/help/as/legal-plugins.xml - src/pluma-plugins-1.26.0/help/as/synctex.page - src/pluma-plugins-1.26.0/help/as/terminal.page - src/pluma-plugins-1.26.0/help/as/wordcompletion.page - src/pluma-plugins-1.26.0/help/ast/ast.po - src/pluma-plugins-1.26.0/help/ast/bookmarks.page - src/pluma-plugins-1.26.0/help/ast/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ast/codecomment.page - src/pluma-plugins-1.26.0/help/ast/index.page - src/pluma-plugins-1.26.0/help/ast/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ast/synctex.page - src/pluma-plugins-1.26.0/help/ast/terminal.page - src/pluma-plugins-1.26.0/help/ast/wordcompletion.page - src/pluma-plugins-1.26.0/help/az/az.po - src/pluma-plugins-1.26.0/help/az/bookmarks.page - src/pluma-plugins-1.26.0/help/az/bracketcompletion.page - src/pluma-plugins-1.26.0/help/az/codecomment.page - src/pluma-plugins-1.26.0/help/az/index.page - src/pluma-plugins-1.26.0/help/az/legal-plugins.xml - src/pluma-plugins-1.26.0/help/az/synctex.page - src/pluma-plugins-1.26.0/help/az/terminal.page - src/pluma-plugins-1.26.0/help/az/wordcompletion.page - src/pluma-plugins-1.26.0/help/be/be.po - src/pluma-plugins-1.26.0/help/be/bookmarks.page - src/pluma-plugins-1.26.0/help/be/bracketcompletion.page - src/pluma-plugins-1.26.0/help/be/codecomment.page - src/pluma-plugins-1.26.0/help/be/index.page - src/pluma-plugins-1.26.0/help/be/legal-plugins.xml - src/pluma-plugins-1.26.0/help/be/synctex.page - src/pluma-plugins-1.26.0/help/be/terminal.page - src/pluma-plugins-1.26.0/help/be/wordcompletion.page - src/pluma-plugins-1.26.0/help/bg/bg.po - src/pluma-plugins-1.26.0/help/bg/bookmarks.page - src/pluma-plugins-1.26.0/help/bg/bracketcompletion.page - src/pluma-plugins-1.26.0/help/bg/codecomment.page - src/pluma-plugins-1.26.0/help/bg/index.page - src/pluma-plugins-1.26.0/help/bg/legal-plugins.xml - src/pluma-plugins-1.26.0/help/bg/synctex.page - src/pluma-plugins-1.26.0/help/bg/terminal.page - src/pluma-plugins-1.26.0/help/bg/wordcompletion.page - src/pluma-plugins-1.26.0/help/bn/bn.po - src/pluma-plugins-1.26.0/help/bn/bookmarks.page - src/pluma-plugins-1.26.0/help/bn/bracketcompletion.page - src/pluma-plugins-1.26.0/help/bn/codecomment.page - src/pluma-plugins-1.26.0/help/bn/index.page - src/pluma-plugins-1.26.0/help/bn/legal-plugins.xml - src/pluma-plugins-1.26.0/help/bn/synctex.page - src/pluma-plugins-1.26.0/help/bn/terminal.page - src/pluma-plugins-1.26.0/help/bn/wordcompletion.page - src/pluma-plugins-1.26.0/help/bn_IN/bn_IN.po - src/pluma-plugins-1.26.0/help/bn_IN/bookmarks.page - src/pluma-plugins-1.26.0/help/bn_IN/bracketcompletion.page - src/pluma-plugins-1.26.0/help/bn_IN/codecomment.page - src/pluma-plugins-1.26.0/help/bn_IN/index.page - src/pluma-plugins-1.26.0/help/bn_IN/legal-plugins.xml - src/pluma-plugins-1.26.0/help/bn_IN/synctex.page - src/pluma-plugins-1.26.0/help/bn_IN/terminal.page - src/pluma-plugins-1.26.0/help/bn_IN/wordcompletion.page - src/pluma-plugins-1.26.0/help/br/bookmarks.page - src/pluma-plugins-1.26.0/help/br/br.po - src/pluma-plugins-1.26.0/help/br/bracketcompletion.page - src/pluma-plugins-1.26.0/help/br/codecomment.page - src/pluma-plugins-1.26.0/help/br/index.page - src/pluma-plugins-1.26.0/help/br/legal-plugins.xml - src/pluma-plugins-1.26.0/help/br/synctex.page - src/pluma-plugins-1.26.0/help/br/terminal.page - src/pluma-plugins-1.26.0/help/br/wordcompletion.page - src/pluma-plugins-1.26.0/help/bs/bookmarks.page - src/pluma-plugins-1.26.0/help/bs/bracketcompletion.page - src/pluma-plugins-1.26.0/help/bs/bs.po - src/pluma-plugins-1.26.0/help/bs/codecomment.page - src/pluma-plugins-1.26.0/help/bs/index.page - src/pluma-plugins-1.26.0/help/bs/legal-plugins.xml - src/pluma-plugins-1.26.0/help/bs/synctex.page - src/pluma-plugins-1.26.0/help/bs/terminal.page - src/pluma-plugins-1.26.0/help/bs/wordcompletion.page - src/pluma-plugins-1.26.0/help/ca/bookmarks.page - src/pluma-plugins-1.26.0/help/ca/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ca/ca.po - src/pluma-plugins-1.26.0/help/ca/codecomment.page - src/pluma-plugins-1.26.0/help/ca/index.page - src/pluma-plugins-1.26.0/help/ca/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ca/synctex.page - src/pluma-plugins-1.26.0/help/ca/terminal.page - src/pluma-plugins-1.26.0/help/ca/wordcompletion.page - src/pluma-plugins-1.26.0/help/ca@valencia/bookmarks.page - src/pluma-plugins-1.26.0/help/ca@valencia/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ca@valencia/codecomment.page - src/pluma-plugins-1.26.0/help/ca@valencia/index.page - src/pluma-plugins-1.26.0/help/ca@valencia/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ca@valencia/synctex.page - src/pluma-plugins-1.26.0/help/ca@valencia/terminal.page - src/pluma-plugins-1.26.0/help/ca@valencia/wordcompletion.page - src/pluma-plugins-1.26.0/help/cmn/bookmarks.page - src/pluma-plugins-1.26.0/help/cmn/bracketcompletion.page - src/pluma-plugins-1.26.0/help/cmn/cmn.po - src/pluma-plugins-1.26.0/help/cmn/codecomment.page - src/pluma-plugins-1.26.0/help/cmn/index.page - src/pluma-plugins-1.26.0/help/cmn/legal-plugins.xml - src/pluma-plugins-1.26.0/help/cmn/synctex.page - src/pluma-plugins-1.26.0/help/cmn/terminal.page - src/pluma-plugins-1.26.0/help/cmn/wordcompletion.page - src/pluma-plugins-1.26.0/help/crh/bookmarks.page - src/pluma-plugins-1.26.0/help/crh/bracketcompletion.page - src/pluma-plugins-1.26.0/help/crh/codecomment.page - src/pluma-plugins-1.26.0/help/crh/crh.po - src/pluma-plugins-1.26.0/help/crh/index.page - src/pluma-plugins-1.26.0/help/crh/legal-plugins.xml - src/pluma-plugins-1.26.0/help/crh/synctex.page - src/pluma-plugins-1.26.0/help/crh/terminal.page - src/pluma-plugins-1.26.0/help/crh/wordcompletion.page - src/pluma-plugins-1.26.0/help/cs/bookmarks.page - src/pluma-plugins-1.26.0/help/cs/bracketcompletion.page - src/pluma-plugins-1.26.0/help/cs/codecomment.page - src/pluma-plugins-1.26.0/help/cs/cs.po - src/pluma-plugins-1.26.0/help/cs/index.page - src/pluma-plugins-1.26.0/help/cs/legal-plugins.xml - src/pluma-plugins-1.26.0/help/cs/synctex.page - src/pluma-plugins-1.26.0/help/cs/terminal.page - src/pluma-plugins-1.26.0/help/cs/wordcompletion.page - src/pluma-plugins-1.26.0/help/csb/bookmarks.page - src/pluma-plugins-1.26.0/help/csb/bracketcompletion.page - src/pluma-plugins-1.26.0/help/csb/codecomment.page - src/pluma-plugins-1.26.0/help/csb/csb.po - src/pluma-plugins-1.26.0/help/csb/index.page - src/pluma-plugins-1.26.0/help/csb/legal-plugins.xml - src/pluma-plugins-1.26.0/help/csb/synctex.page - src/pluma-plugins-1.26.0/help/csb/terminal.page - src/pluma-plugins-1.26.0/help/csb/wordcompletion.page - src/pluma-plugins-1.26.0/help/cy/bookmarks.page - src/pluma-plugins-1.26.0/help/cy/bracketcompletion.page - src/pluma-plugins-1.26.0/help/cy/codecomment.page - src/pluma-plugins-1.26.0/help/cy/cy.po - src/pluma-plugins-1.26.0/help/cy/index.page - src/pluma-plugins-1.26.0/help/cy/legal-plugins.xml - src/pluma-plugins-1.26.0/help/cy/synctex.page - src/pluma-plugins-1.26.0/help/cy/terminal.page - src/pluma-plugins-1.26.0/help/cy/wordcompletion.page - src/pluma-plugins-1.26.0/help/da/bookmarks.page - src/pluma-plugins-1.26.0/help/da/bracketcompletion.page - src/pluma-plugins-1.26.0/help/da/codecomment.page - src/pluma-plugins-1.26.0/help/da/da.po - src/pluma-plugins-1.26.0/help/da/index.page - src/pluma-plugins-1.26.0/help/da/legal-plugins.xml - src/pluma-plugins-1.26.0/help/da/synctex.page - src/pluma-plugins-1.26.0/help/da/terminal.page - src/pluma-plugins-1.26.0/help/da/wordcompletion.page - src/pluma-plugins-1.26.0/help/de/bookmarks.page - src/pluma-plugins-1.26.0/help/de/bracketcompletion.page - src/pluma-plugins-1.26.0/help/de/codecomment.page - src/pluma-plugins-1.26.0/help/de/de.po - src/pluma-plugins-1.26.0/help/de/index.page - src/pluma-plugins-1.26.0/help/de/legal-plugins.xml - src/pluma-plugins-1.26.0/help/de/synctex.page - src/pluma-plugins-1.26.0/help/de/terminal.page - src/pluma-plugins-1.26.0/help/de/wordcompletion.page - src/pluma-plugins-1.26.0/help/dz/bookmarks.page - src/pluma-plugins-1.26.0/help/dz/bracketcompletion.page - src/pluma-plugins-1.26.0/help/dz/codecomment.page - src/pluma-plugins-1.26.0/help/dz/dz.po - src/pluma-plugins-1.26.0/help/dz/index.page - src/pluma-plugins-1.26.0/help/dz/legal-plugins.xml - src/pluma-plugins-1.26.0/help/dz/synctex.page - src/pluma-plugins-1.26.0/help/dz/terminal.page - src/pluma-plugins-1.26.0/help/dz/wordcompletion.page - src/pluma-plugins-1.26.0/help/el/bookmarks.page - src/pluma-plugins-1.26.0/help/el/bracketcompletion.page - src/pluma-plugins-1.26.0/help/el/codecomment.page - src/pluma-plugins-1.26.0/help/el/el.po - src/pluma-plugins-1.26.0/help/el/index.page - src/pluma-plugins-1.26.0/help/el/legal-plugins.xml - src/pluma-plugins-1.26.0/help/el/synctex.page - src/pluma-plugins-1.26.0/help/el/terminal.page - src/pluma-plugins-1.26.0/help/el/wordcompletion.page - src/pluma-plugins-1.26.0/help/en_AU/bookmarks.page - src/pluma-plugins-1.26.0/help/en_AU/bracketcompletion.page - src/pluma-plugins-1.26.0/help/en_AU/codecomment.page - src/pluma-plugins-1.26.0/help/en_AU/en_AU.po - src/pluma-plugins-1.26.0/help/en_AU/index.page - src/pluma-plugins-1.26.0/help/en_AU/legal-plugins.xml - src/pluma-plugins-1.26.0/help/en_AU/synctex.page - src/pluma-plugins-1.26.0/help/en_AU/terminal.page - src/pluma-plugins-1.26.0/help/en_AU/wordcompletion.page - src/pluma-plugins-1.26.0/help/en_CA/bookmarks.page - src/pluma-plugins-1.26.0/help/en_CA/bracketcompletion.page - src/pluma-plugins-1.26.0/help/en_CA/codecomment.page - src/pluma-plugins-1.26.0/help/en_CA/en_CA.po - src/pluma-plugins-1.26.0/help/en_CA/index.page - src/pluma-plugins-1.26.0/help/en_CA/legal-plugins.xml - src/pluma-plugins-1.26.0/help/en_CA/synctex.page - src/pluma-plugins-1.26.0/help/en_CA/terminal.page - src/pluma-plugins-1.26.0/help/en_CA/wordcompletion.page - src/pluma-plugins-1.26.0/help/en_GB/bookmarks.page - src/pluma-plugins-1.26.0/help/en_GB/bracketcompletion.page - src/pluma-plugins-1.26.0/help/en_GB/codecomment.page - src/pluma-plugins-1.26.0/help/en_GB/en_GB.po - src/pluma-plugins-1.26.0/help/en_GB/index.page - src/pluma-plugins-1.26.0/help/en_GB/legal-plugins.xml - src/pluma-plugins-1.26.0/help/en_GB/synctex.page - src/pluma-plugins-1.26.0/help/en_GB/terminal.page - src/pluma-plugins-1.26.0/help/en_GB/wordcompletion.page - src/pluma-plugins-1.26.0/help/eo/bookmarks.page - src/pluma-plugins-1.26.0/help/eo/bracketcompletion.page - src/pluma-plugins-1.26.0/help/eo/codecomment.page - src/pluma-plugins-1.26.0/help/eo/eo.po - src/pluma-plugins-1.26.0/help/eo/index.page - src/pluma-plugins-1.26.0/help/eo/legal-plugins.xml - src/pluma-plugins-1.26.0/help/eo/synctex.page - src/pluma-plugins-1.26.0/help/eo/terminal.page - src/pluma-plugins-1.26.0/help/eo/wordcompletion.page - src/pluma-plugins-1.26.0/help/es/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es/codecomment.page - src/pluma-plugins-1.26.0/help/es/index.page - src/pluma-plugins-1.26.0/help/es/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es/synctex.page - src/pluma-plugins-1.26.0/help/es/terminal.page - src/pluma-plugins-1.26.0/help/es/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_AR/bookmarks.page - src/pluma-plugins-1.26.0/help/es_AR/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_AR/codecomment.page - src/pluma-plugins-1.26.0/help/es_AR/es_AR.po - src/pluma-plugins-1.26.0/help/es_AR/index.page - src/pluma-plugins-1.26.0/help/es_AR/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_AR/synctex.page - src/pluma-plugins-1.26.0/help/es_AR/terminal.page - src/pluma-plugins-1.26.0/help/es_AR/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_CL/bookmarks.page - src/pluma-plugins-1.26.0/help/es_CL/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_CL/codecomment.page - src/pluma-plugins-1.26.0/help/es_CL/index.page - src/pluma-plugins-1.26.0/help/es_CL/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_CL/synctex.page - src/pluma-plugins-1.26.0/help/es_CL/terminal.page - src/pluma-plugins-1.26.0/help/es_CL/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_CO/bookmarks.page - src/pluma-plugins-1.26.0/help/es_CO/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_CO/codecomment.page - src/pluma-plugins-1.26.0/help/es_CO/index.page - src/pluma-plugins-1.26.0/help/es_CO/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_CO/synctex.page - src/pluma-plugins-1.26.0/help/es_CO/terminal.page - src/pluma-plugins-1.26.0/help/es_CO/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_CR/bookmarks.page - src/pluma-plugins-1.26.0/help/es_CR/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_CR/codecomment.page - src/pluma-plugins-1.26.0/help/es_CR/es_CR.po - src/pluma-plugins-1.26.0/help/es_CR/index.page - src/pluma-plugins-1.26.0/help/es_CR/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_CR/synctex.page - src/pluma-plugins-1.26.0/help/es_CR/terminal.page - src/pluma-plugins-1.26.0/help/es_CR/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_DO/bookmarks.page - src/pluma-plugins-1.26.0/help/es_DO/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_DO/codecomment.page - src/pluma-plugins-1.26.0/help/es_DO/es_DO.po - src/pluma-plugins-1.26.0/help/es_DO/index.page - src/pluma-plugins-1.26.0/help/es_DO/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_DO/synctex.page - src/pluma-plugins-1.26.0/help/es_DO/terminal.page - src/pluma-plugins-1.26.0/help/es_DO/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_EC/bookmarks.page - src/pluma-plugins-1.26.0/help/es_EC/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_EC/codecomment.page - src/pluma-plugins-1.26.0/help/es_EC/es_EC.po - src/pluma-plugins-1.26.0/help/es_EC/index.page - src/pluma-plugins-1.26.0/help/es_EC/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_EC/synctex.page - src/pluma-plugins-1.26.0/help/es_EC/terminal.page - src/pluma-plugins-1.26.0/help/es_EC/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_ES/bookmarks.page - src/pluma-plugins-1.26.0/help/es_ES/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_ES/codecomment.page - src/pluma-plugins-1.26.0/help/es_ES/es_ES.po - src/pluma-plugins-1.26.0/help/es_ES/index.page - src/pluma-plugins-1.26.0/help/es_ES/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_ES/synctex.page - src/pluma-plugins-1.26.0/help/es_ES/terminal.page - src/pluma-plugins-1.26.0/help/es_ES/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_MX/bookmarks.page - src/pluma-plugins-1.26.0/help/es_MX/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_MX/codecomment.page - src/pluma-plugins-1.26.0/help/es_MX/es_MX.po - src/pluma-plugins-1.26.0/help/es_MX/index.page - src/pluma-plugins-1.26.0/help/es_MX/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_MX/synctex.page - src/pluma-plugins-1.26.0/help/es_MX/terminal.page - src/pluma-plugins-1.26.0/help/es_MX/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_NI/bookmarks.page - src/pluma-plugins-1.26.0/help/es_NI/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_NI/codecomment.page - src/pluma-plugins-1.26.0/help/es_NI/es_NI.po - src/pluma-plugins-1.26.0/help/es_NI/index.page - src/pluma-plugins-1.26.0/help/es_NI/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_NI/synctex.page - src/pluma-plugins-1.26.0/help/es_NI/terminal.page - src/pluma-plugins-1.26.0/help/es_NI/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_PA/bookmarks.page - src/pluma-plugins-1.26.0/help/es_PA/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_PA/codecomment.page - src/pluma-plugins-1.26.0/help/es_PA/es_PA.po - src/pluma-plugins-1.26.0/help/es_PA/index.page - src/pluma-plugins-1.26.0/help/es_PA/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_PA/synctex.page - src/pluma-plugins-1.26.0/help/es_PA/terminal.page - src/pluma-plugins-1.26.0/help/es_PA/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_PE/bookmarks.page - src/pluma-plugins-1.26.0/help/es_PE/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_PE/codecomment.page - src/pluma-plugins-1.26.0/help/es_PE/es_PE.po - src/pluma-plugins-1.26.0/help/es_PE/index.page - src/pluma-plugins-1.26.0/help/es_PE/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_PE/synctex.page - src/pluma-plugins-1.26.0/help/es_PE/terminal.page - src/pluma-plugins-1.26.0/help/es_PE/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_PR/bookmarks.page - src/pluma-plugins-1.26.0/help/es_PR/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_PR/codecomment.page - src/pluma-plugins-1.26.0/help/es_PR/es_PR.po - src/pluma-plugins-1.26.0/help/es_PR/index.page - src/pluma-plugins-1.26.0/help/es_PR/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_PR/synctex.page - src/pluma-plugins-1.26.0/help/es_PR/terminal.page - src/pluma-plugins-1.26.0/help/es_PR/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_SV/bookmarks.page - src/pluma-plugins-1.26.0/help/es_SV/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_SV/codecomment.page - src/pluma-plugins-1.26.0/help/es_SV/es_SV.po - src/pluma-plugins-1.26.0/help/es_SV/index.page - src/pluma-plugins-1.26.0/help/es_SV/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_SV/synctex.page - src/pluma-plugins-1.26.0/help/es_SV/terminal.page - src/pluma-plugins-1.26.0/help/es_SV/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_UY/bookmarks.page - src/pluma-plugins-1.26.0/help/es_UY/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_UY/codecomment.page - src/pluma-plugins-1.26.0/help/es_UY/es_UY.po - src/pluma-plugins-1.26.0/help/es_UY/index.page - src/pluma-plugins-1.26.0/help/es_UY/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_UY/synctex.page - src/pluma-plugins-1.26.0/help/es_UY/terminal.page - src/pluma-plugins-1.26.0/help/es_UY/wordcompletion.page - src/pluma-plugins-1.26.0/help/es_VE/bookmarks.page - src/pluma-plugins-1.26.0/help/es_VE/bracketcompletion.page - src/pluma-plugins-1.26.0/help/es_VE/codecomment.page - src/pluma-plugins-1.26.0/help/es_VE/es_VE.po - src/pluma-plugins-1.26.0/help/es_VE/index.page - src/pluma-plugins-1.26.0/help/es_VE/legal-plugins.xml - src/pluma-plugins-1.26.0/help/es_VE/synctex.page - src/pluma-plugins-1.26.0/help/es_VE/terminal.page - src/pluma-plugins-1.26.0/help/es_VE/wordcompletion.page - src/pluma-plugins-1.26.0/help/et/bookmarks.page - src/pluma-plugins-1.26.0/help/et/bracketcompletion.page - src/pluma-plugins-1.26.0/help/et/codecomment.page - src/pluma-plugins-1.26.0/help/et/et.po - src/pluma-plugins-1.26.0/help/et/index.page - src/pluma-plugins-1.26.0/help/et/legal-plugins.xml - src/pluma-plugins-1.26.0/help/et/synctex.page - src/pluma-plugins-1.26.0/help/et/terminal.page - src/pluma-plugins-1.26.0/help/et/wordcompletion.page - src/pluma-plugins-1.26.0/help/eu/bookmarks.page - src/pluma-plugins-1.26.0/help/eu/bracketcompletion.page - src/pluma-plugins-1.26.0/help/eu/codecomment.page - src/pluma-plugins-1.26.0/help/eu/eu.po - src/pluma-plugins-1.26.0/help/eu/index.page - src/pluma-plugins-1.26.0/help/eu/legal-plugins.xml - src/pluma-plugins-1.26.0/help/eu/synctex.page - src/pluma-plugins-1.26.0/help/eu/terminal.page - src/pluma-plugins-1.26.0/help/eu/wordcompletion.page - src/pluma-plugins-1.26.0/help/fa/bookmarks.page - src/pluma-plugins-1.26.0/help/fa/bracketcompletion.page - src/pluma-plugins-1.26.0/help/fa/codecomment.page - src/pluma-plugins-1.26.0/help/fa/fa.po - src/pluma-plugins-1.26.0/help/fa/index.page - src/pluma-plugins-1.26.0/help/fa/legal-plugins.xml - src/pluma-plugins-1.26.0/help/fa/synctex.page - src/pluma-plugins-1.26.0/help/fa/terminal.page - src/pluma-plugins-1.26.0/help/fa/wordcompletion.page - src/pluma-plugins-1.26.0/help/fi/bookmarks.page - src/pluma-plugins-1.26.0/help/fi/bracketcompletion.page - src/pluma-plugins-1.26.0/help/fi/codecomment.page - src/pluma-plugins-1.26.0/help/fi/fi.po - src/pluma-plugins-1.26.0/help/fi/index.page - src/pluma-plugins-1.26.0/help/fi/legal-plugins.xml - src/pluma-plugins-1.26.0/help/fi/synctex.page - src/pluma-plugins-1.26.0/help/fi/terminal.page - src/pluma-plugins-1.26.0/help/fi/wordcompletion.page - src/pluma-plugins-1.26.0/help/frp/bookmarks.page - src/pluma-plugins-1.26.0/help/frp/bracketcompletion.page - src/pluma-plugins-1.26.0/help/frp/codecomment.page - src/pluma-plugins-1.26.0/help/frp/frp.po - src/pluma-plugins-1.26.0/help/frp/index.page - src/pluma-plugins-1.26.0/help/frp/legal-plugins.xml - src/pluma-plugins-1.26.0/help/frp/synctex.page - src/pluma-plugins-1.26.0/help/frp/terminal.page - src/pluma-plugins-1.26.0/help/frp/wordcompletion.page - src/pluma-plugins-1.26.0/help/fur/bookmarks.page - src/pluma-plugins-1.26.0/help/fur/bracketcompletion.page - src/pluma-plugins-1.26.0/help/fur/codecomment.page - src/pluma-plugins-1.26.0/help/fur/fur.po - src/pluma-plugins-1.26.0/help/fur/index.page - src/pluma-plugins-1.26.0/help/fur/legal-plugins.xml - src/pluma-plugins-1.26.0/help/fur/synctex.page - src/pluma-plugins-1.26.0/help/fur/terminal.page - src/pluma-plugins-1.26.0/help/fur/wordcompletion.page - src/pluma-plugins-1.26.0/help/fy/bookmarks.page - src/pluma-plugins-1.26.0/help/fy/bracketcompletion.page - src/pluma-plugins-1.26.0/help/fy/codecomment.page - src/pluma-plugins-1.26.0/help/fy/fy.po - src/pluma-plugins-1.26.0/help/fy/index.page - src/pluma-plugins-1.26.0/help/fy/legal-plugins.xml - src/pluma-plugins-1.26.0/help/fy/synctex.page - src/pluma-plugins-1.26.0/help/fy/terminal.page - src/pluma-plugins-1.26.0/help/fy/wordcompletion.page - src/pluma-plugins-1.26.0/help/ga/bookmarks.page - src/pluma-plugins-1.26.0/help/ga/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ga/codecomment.page - src/pluma-plugins-1.26.0/help/ga/ga.po - src/pluma-plugins-1.26.0/help/ga/index.page - src/pluma-plugins-1.26.0/help/ga/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ga/synctex.page - src/pluma-plugins-1.26.0/help/ga/terminal.page - src/pluma-plugins-1.26.0/help/ga/wordcompletion.page - src/pluma-plugins-1.26.0/help/gl/bracketcompletion.page - src/pluma-plugins-1.26.0/help/gl/codecomment.page - src/pluma-plugins-1.26.0/help/gl/index.page - src/pluma-plugins-1.26.0/help/gl/legal-plugins.xml - src/pluma-plugins-1.26.0/help/gl/synctex.page - src/pluma-plugins-1.26.0/help/gl/wordcompletion.page - src/pluma-plugins-1.26.0/help/gu/bookmarks.page - src/pluma-plugins-1.26.0/help/gu/bracketcompletion.page - src/pluma-plugins-1.26.0/help/gu/codecomment.page - src/pluma-plugins-1.26.0/help/gu/gu.po - src/pluma-plugins-1.26.0/help/gu/index.page - src/pluma-plugins-1.26.0/help/gu/legal-plugins.xml - src/pluma-plugins-1.26.0/help/gu/synctex.page - src/pluma-plugins-1.26.0/help/gu/terminal.page - src/pluma-plugins-1.26.0/help/gu/wordcompletion.page - src/pluma-plugins-1.26.0/help/ha/bookmarks.page - src/pluma-plugins-1.26.0/help/ha/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ha/codecomment.page - src/pluma-plugins-1.26.0/help/ha/ha.po - src/pluma-plugins-1.26.0/help/ha/index.page - src/pluma-plugins-1.26.0/help/ha/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ha/synctex.page - src/pluma-plugins-1.26.0/help/ha/terminal.page - src/pluma-plugins-1.26.0/help/ha/wordcompletion.page - src/pluma-plugins-1.26.0/help/he/bookmarks.page - src/pluma-plugins-1.26.0/help/he/bracketcompletion.page - src/pluma-plugins-1.26.0/help/he/codecomment.page - src/pluma-plugins-1.26.0/help/he/he.po - src/pluma-plugins-1.26.0/help/he/index.page - src/pluma-plugins-1.26.0/help/he/legal-plugins.xml - src/pluma-plugins-1.26.0/help/he/synctex.page - src/pluma-plugins-1.26.0/help/he/terminal.page - src/pluma-plugins-1.26.0/help/he/wordcompletion.page - src/pluma-plugins-1.26.0/help/hi/bookmarks.page - src/pluma-plugins-1.26.0/help/hi/bracketcompletion.page - src/pluma-plugins-1.26.0/help/hi/codecomment.page - src/pluma-plugins-1.26.0/help/hi/hi.po - src/pluma-plugins-1.26.0/help/hi/index.page - src/pluma-plugins-1.26.0/help/hi/legal-plugins.xml - src/pluma-plugins-1.26.0/help/hi/synctex.page - src/pluma-plugins-1.26.0/help/hi/terminal.page - src/pluma-plugins-1.26.0/help/hi/wordcompletion.page - src/pluma-plugins-1.26.0/help/hr/bookmarks.page - src/pluma-plugins-1.26.0/help/hr/bracketcompletion.page - src/pluma-plugins-1.26.0/help/hr/codecomment.page - src/pluma-plugins-1.26.0/help/hr/hr.po - src/pluma-plugins-1.26.0/help/hr/index.page - src/pluma-plugins-1.26.0/help/hr/legal-plugins.xml - src/pluma-plugins-1.26.0/help/hr/synctex.page - src/pluma-plugins-1.26.0/help/hr/terminal.page - src/pluma-plugins-1.26.0/help/hr/wordcompletion.page - src/pluma-plugins-1.26.0/help/hu/bookmarks.page - src/pluma-plugins-1.26.0/help/hu/bracketcompletion.page - src/pluma-plugins-1.26.0/help/hu/codecomment.page - src/pluma-plugins-1.26.0/help/hu/hu.po - src/pluma-plugins-1.26.0/help/hu/index.page - src/pluma-plugins-1.26.0/help/hu/legal-plugins.xml - src/pluma-plugins-1.26.0/help/hu/synctex.page - src/pluma-plugins-1.26.0/help/hu/terminal.page - src/pluma-plugins-1.26.0/help/hu/wordcompletion.page - src/pluma-plugins-1.26.0/help/hy/bookmarks.page - src/pluma-plugins-1.26.0/help/hy/bracketcompletion.page - src/pluma-plugins-1.26.0/help/hy/codecomment.page - src/pluma-plugins-1.26.0/help/hy/index.page - src/pluma-plugins-1.26.0/help/hy/legal-plugins.xml - src/pluma-plugins-1.26.0/help/hy/synctex.page - src/pluma-plugins-1.26.0/help/hy/terminal.page - src/pluma-plugins-1.26.0/help/hy/wordcompletion.page - src/pluma-plugins-1.26.0/help/ia/bookmarks.page - src/pluma-plugins-1.26.0/help/ia/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ia/codecomment.page - src/pluma-plugins-1.26.0/help/ia/ia.po - src/pluma-plugins-1.26.0/help/ia/index.page - src/pluma-plugins-1.26.0/help/ia/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ia/synctex.page - src/pluma-plugins-1.26.0/help/ia/terminal.page - src/pluma-plugins-1.26.0/help/ia/wordcompletion.page - src/pluma-plugins-1.26.0/help/id/bookmarks.page - src/pluma-plugins-1.26.0/help/id/bracketcompletion.page - src/pluma-plugins-1.26.0/help/id/codecomment.page - src/pluma-plugins-1.26.0/help/id/id.po - src/pluma-plugins-1.26.0/help/id/index.page - src/pluma-plugins-1.26.0/help/id/legal-plugins.xml - src/pluma-plugins-1.26.0/help/id/synctex.page - src/pluma-plugins-1.26.0/help/id/terminal.page - src/pluma-plugins-1.26.0/help/id/wordcompletion.page - src/pluma-plugins-1.26.0/help/ie/bookmarks.page - src/pluma-plugins-1.26.0/help/ie/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ie/codecomment.page - src/pluma-plugins-1.26.0/help/ie/ie.po - src/pluma-plugins-1.26.0/help/ie/index.page - src/pluma-plugins-1.26.0/help/ie/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ie/synctex.page - src/pluma-plugins-1.26.0/help/ie/terminal.page - src/pluma-plugins-1.26.0/help/ie/wordcompletion.page - src/pluma-plugins-1.26.0/help/ig/bookmarks.page - src/pluma-plugins-1.26.0/help/ig/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ig/codecomment.page - src/pluma-plugins-1.26.0/help/ig/ig.po - src/pluma-plugins-1.26.0/help/ig/index.page - src/pluma-plugins-1.26.0/help/ig/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ig/synctex.page - src/pluma-plugins-1.26.0/help/ig/terminal.page - src/pluma-plugins-1.26.0/help/ig/wordcompletion.page - src/pluma-plugins-1.26.0/help/is/bookmarks.page - src/pluma-plugins-1.26.0/help/is/bracketcompletion.page - src/pluma-plugins-1.26.0/help/is/codecomment.page - src/pluma-plugins-1.26.0/help/is/index.page - src/pluma-plugins-1.26.0/help/is/is.po - src/pluma-plugins-1.26.0/help/is/legal-plugins.xml - src/pluma-plugins-1.26.0/help/is/synctex.page - src/pluma-plugins-1.26.0/help/is/terminal.page - src/pluma-plugins-1.26.0/help/is/wordcompletion.page - src/pluma-plugins-1.26.0/help/it/bookmarks.page - src/pluma-plugins-1.26.0/help/it/bracketcompletion.page - src/pluma-plugins-1.26.0/help/it/codecomment.page - src/pluma-plugins-1.26.0/help/it/index.page - src/pluma-plugins-1.26.0/help/it/legal-plugins.xml - src/pluma-plugins-1.26.0/help/it/terminal.page - src/pluma-plugins-1.26.0/help/it/wordcompletion.page - src/pluma-plugins-1.26.0/help/ja/synctex.page - src/pluma-plugins-1.26.0/help/ja/terminal.page - src/pluma-plugins-1.26.0/help/jv/bookmarks.page - src/pluma-plugins-1.26.0/help/jv/bracketcompletion.page - src/pluma-plugins-1.26.0/help/jv/codecomment.page - src/pluma-plugins-1.26.0/help/jv/index.page - src/pluma-plugins-1.26.0/help/jv/jv.po - src/pluma-plugins-1.26.0/help/jv/legal-plugins.xml - src/pluma-plugins-1.26.0/help/jv/synctex.page - src/pluma-plugins-1.26.0/help/jv/terminal.page - src/pluma-plugins-1.26.0/help/jv/wordcompletion.page - src/pluma-plugins-1.26.0/help/ka/bookmarks.page - src/pluma-plugins-1.26.0/help/ka/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ka/codecomment.page - src/pluma-plugins-1.26.0/help/ka/index.page - src/pluma-plugins-1.26.0/help/ka/ka.po - src/pluma-plugins-1.26.0/help/ka/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ka/synctex.page - src/pluma-plugins-1.26.0/help/ka/terminal.page - src/pluma-plugins-1.26.0/help/ka/wordcompletion.page - src/pluma-plugins-1.26.0/help/kab/bookmarks.page - src/pluma-plugins-1.26.0/help/kab/bracketcompletion.page - src/pluma-plugins-1.26.0/help/kab/codecomment.page - src/pluma-plugins-1.26.0/help/kab/index.page - src/pluma-plugins-1.26.0/help/kab/kab.po - src/pluma-plugins-1.26.0/help/kab/legal-plugins.xml - src/pluma-plugins-1.26.0/help/kab/synctex.page - src/pluma-plugins-1.26.0/help/kab/terminal.page - src/pluma-plugins-1.26.0/help/kab/wordcompletion.page - src/pluma-plugins-1.26.0/help/kk/bookmarks.page - src/pluma-plugins-1.26.0/help/kk/bracketcompletion.page - src/pluma-plugins-1.26.0/help/kk/codecomment.page - src/pluma-plugins-1.26.0/help/kk/index.page - src/pluma-plugins-1.26.0/help/kk/kk.po - src/pluma-plugins-1.26.0/help/kk/legal-plugins.xml - src/pluma-plugins-1.26.0/help/kk/synctex.page - src/pluma-plugins-1.26.0/help/kk/terminal.page - src/pluma-plugins-1.26.0/help/kk/wordcompletion.page - src/pluma-plugins-1.26.0/help/km/bookmarks.page - src/pluma-plugins-1.26.0/help/km/bracketcompletion.page - src/pluma-plugins-1.26.0/help/km/codecomment.page - src/pluma-plugins-1.26.0/help/km/index.page - src/pluma-plugins-1.26.0/help/km/km.po - src/pluma-plugins-1.26.0/help/km/legal-plugins.xml - src/pluma-plugins-1.26.0/help/km/synctex.page - src/pluma-plugins-1.26.0/help/km/terminal.page - src/pluma-plugins-1.26.0/help/km/wordcompletion.page - src/pluma-plugins-1.26.0/help/kn/bookmarks.page - src/pluma-plugins-1.26.0/help/kn/bracketcompletion.page - src/pluma-plugins-1.26.0/help/kn/codecomment.page - src/pluma-plugins-1.26.0/help/kn/index.page - src/pluma-plugins-1.26.0/help/kn/kn.po - src/pluma-plugins-1.26.0/help/kn/legal-plugins.xml - src/pluma-plugins-1.26.0/help/kn/synctex.page - src/pluma-plugins-1.26.0/help/kn/terminal.page - src/pluma-plugins-1.26.0/help/kn/wordcompletion.page - src/pluma-plugins-1.26.0/help/ko/bookmarks.page - src/pluma-plugins-1.26.0/help/ko/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ko/codecomment.page - src/pluma-plugins-1.26.0/help/ko/index.page - src/pluma-plugins-1.26.0/help/ko/ko.po - src/pluma-plugins-1.26.0/help/ko/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ko/synctex.page - src/pluma-plugins-1.26.0/help/ko/terminal.page - src/pluma-plugins-1.26.0/help/ko/wordcompletion.page - src/pluma-plugins-1.26.0/help/ks/bookmarks.page - src/pluma-plugins-1.26.0/help/ks/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ks/codecomment.page - src/pluma-plugins-1.26.0/help/ks/index.page - src/pluma-plugins-1.26.0/help/ks/ks.po - src/pluma-plugins-1.26.0/help/ks/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ks/synctex.page - src/pluma-plugins-1.26.0/help/ks/terminal.page - src/pluma-plugins-1.26.0/help/ks/wordcompletion.page - src/pluma-plugins-1.26.0/help/ku/bookmarks.page - src/pluma-plugins-1.26.0/help/ku/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ku/codecomment.page - src/pluma-plugins-1.26.0/help/ku/index.page - src/pluma-plugins-1.26.0/help/ku/ku.po - src/pluma-plugins-1.26.0/help/ku/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ku/synctex.page - src/pluma-plugins-1.26.0/help/ku/terminal.page - src/pluma-plugins-1.26.0/help/ku/wordcompletion.page - src/pluma-plugins-1.26.0/help/ky/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ky/codecomment.page - src/pluma-plugins-1.26.0/help/ky/index.page - src/pluma-plugins-1.26.0/help/ky/ky.po - src/pluma-plugins-1.26.0/help/ky/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ky/synctex.page - src/pluma-plugins-1.26.0/help/ky/terminal.page - src/pluma-plugins-1.26.0/help/ky/wordcompletion.page - src/pluma-plugins-1.26.0/help/la/bookmarks.page - src/pluma-plugins-1.26.0/help/la/bracketcompletion.page - src/pluma-plugins-1.26.0/help/la/codecomment.page - src/pluma-plugins-1.26.0/help/la/index.page - src/pluma-plugins-1.26.0/help/la/la.po - src/pluma-plugins-1.26.0/help/la/legal-plugins.xml - src/pluma-plugins-1.26.0/help/la/synctex.page - src/pluma-plugins-1.26.0/help/la/terminal.page - src/pluma-plugins-1.26.0/help/la/wordcompletion.page - src/pluma-plugins-1.26.0/help/lb/bookmarks.page - src/pluma-plugins-1.26.0/help/lb/bracketcompletion.page - src/pluma-plugins-1.26.0/help/lb/codecomment.page - src/pluma-plugins-1.26.0/help/lb/index.page - src/pluma-plugins-1.26.0/help/lb/lb.po - src/pluma-plugins-1.26.0/help/lb/legal-plugins.xml - src/pluma-plugins-1.26.0/help/lb/synctex.page - src/pluma-plugins-1.26.0/help/lb/terminal.page - src/pluma-plugins-1.26.0/help/lb/wordcompletion.page - src/pluma-plugins-1.26.0/help/lt/bookmarks.page - src/pluma-plugins-1.26.0/help/lt/bracketcompletion.page - src/pluma-plugins-1.26.0/help/lt/codecomment.page - src/pluma-plugins-1.26.0/help/lt/index.page - src/pluma-plugins-1.26.0/help/lt/legal-plugins.xml - src/pluma-plugins-1.26.0/help/lt/lt.po - src/pluma-plugins-1.26.0/help/lt/synctex.page - src/pluma-plugins-1.26.0/help/lt/terminal.page - src/pluma-plugins-1.26.0/help/lt/wordcompletion.page - src/pluma-plugins-1.26.0/help/lv/bookmarks.page - src/pluma-plugins-1.26.0/help/lv/bracketcompletion.page - src/pluma-plugins-1.26.0/help/lv/codecomment.page - src/pluma-plugins-1.26.0/help/lv/index.page - src/pluma-plugins-1.26.0/help/lv/legal-plugins.xml - src/pluma-plugins-1.26.0/help/lv/lv.po - src/pluma-plugins-1.26.0/help/lv/synctex.page - src/pluma-plugins-1.26.0/help/lv/terminal.page - src/pluma-plugins-1.26.0/help/lv/wordcompletion.page - src/pluma-plugins-1.26.0/help/mai/bookmarks.page - src/pluma-plugins-1.26.0/help/mai/bracketcompletion.page - src/pluma-plugins-1.26.0/help/mai/codecomment.page - src/pluma-plugins-1.26.0/help/mai/index.page - src/pluma-plugins-1.26.0/help/mai/legal-plugins.xml - src/pluma-plugins-1.26.0/help/mai/mai.po - src/pluma-plugins-1.26.0/help/mai/synctex.page - src/pluma-plugins-1.26.0/help/mai/terminal.page - src/pluma-plugins-1.26.0/help/mai/wordcompletion.page - src/pluma-plugins-1.26.0/help/mg/bookmarks.page - src/pluma-plugins-1.26.0/help/mg/bracketcompletion.page - src/pluma-plugins-1.26.0/help/mg/codecomment.page - src/pluma-plugins-1.26.0/help/mg/index.page - src/pluma-plugins-1.26.0/help/mg/legal-plugins.xml - src/pluma-plugins-1.26.0/help/mg/mg.po - src/pluma-plugins-1.26.0/help/mg/synctex.page - src/pluma-plugins-1.26.0/help/mg/terminal.page - src/pluma-plugins-1.26.0/help/mg/wordcompletion.page - src/pluma-plugins-1.26.0/help/mk/bookmarks.page - src/pluma-plugins-1.26.0/help/mk/bracketcompletion.page - src/pluma-plugins-1.26.0/help/mk/codecomment.page - src/pluma-plugins-1.26.0/help/mk/index.page - src/pluma-plugins-1.26.0/help/mk/legal-plugins.xml - src/pluma-plugins-1.26.0/help/mk/mk.po - src/pluma-plugins-1.26.0/help/mk/synctex.page - src/pluma-plugins-1.26.0/help/mk/terminal.page - src/pluma-plugins-1.26.0/help/mk/wordcompletion.page - src/pluma-plugins-1.26.0/help/ml/bookmarks.page - src/pluma-plugins-1.26.0/help/ml/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ml/codecomment.page - src/pluma-plugins-1.26.0/help/ml/index.page - src/pluma-plugins-1.26.0/help/ml/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ml/ml.po - src/pluma-plugins-1.26.0/help/ml/synctex.page - src/pluma-plugins-1.26.0/help/ml/terminal.page - src/pluma-plugins-1.26.0/help/ml/wordcompletion.page - src/pluma-plugins-1.26.0/help/mn/bookmarks.page - src/pluma-plugins-1.26.0/help/mn/bracketcompletion.page - src/pluma-plugins-1.26.0/help/mn/codecomment.page - src/pluma-plugins-1.26.0/help/mn/index.page - src/pluma-plugins-1.26.0/help/mn/legal-plugins.xml - src/pluma-plugins-1.26.0/help/mn/synctex.page - src/pluma-plugins-1.26.0/help/mn/terminal.page - src/pluma-plugins-1.26.0/help/mn/wordcompletion.page - src/pluma-plugins-1.26.0/help/mr/bookmarks.page - src/pluma-plugins-1.26.0/help/mr/bracketcompletion.page - src/pluma-plugins-1.26.0/help/mr/codecomment.page - src/pluma-plugins-1.26.0/help/mr/index.page - src/pluma-plugins-1.26.0/help/mr/legal-plugins.xml - src/pluma-plugins-1.26.0/help/mr/mr.po - src/pluma-plugins-1.26.0/help/mr/synctex.page - src/pluma-plugins-1.26.0/help/mr/terminal.page - src/pluma-plugins-1.26.0/help/mr/wordcompletion.page - src/pluma-plugins-1.26.0/help/ms/bookmarks.page - src/pluma-plugins-1.26.0/help/ms/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ms/codecomment.page - src/pluma-plugins-1.26.0/help/ms/index.page - src/pluma-plugins-1.26.0/help/ms/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ms/ms.po - src/pluma-plugins-1.26.0/help/ms/synctex.page - src/pluma-plugins-1.26.0/help/ms/terminal.page - src/pluma-plugins-1.26.0/help/ms/wordcompletion.page - src/pluma-plugins-1.26.0/help/nb/bracketcompletion.page - src/pluma-plugins-1.26.0/help/nb/codecomment.page - src/pluma-plugins-1.26.0/help/nb/index.page - src/pluma-plugins-1.26.0/help/nb/legal-plugins.xml - src/pluma-plugins-1.26.0/help/nb/nb.po - src/pluma-plugins-1.26.0/help/nb/synctex.page - src/pluma-plugins-1.26.0/help/nb/terminal.page - src/pluma-plugins-1.26.0/help/nb/wordcompletion.page - src/pluma-plugins-1.26.0/help/nds/bookmarks.page - src/pluma-plugins-1.26.0/help/nds/bracketcompletion.page - src/pluma-plugins-1.26.0/help/nds/codecomment.page - src/pluma-plugins-1.26.0/help/nds/index.page - src/pluma-plugins-1.26.0/help/nds/legal-plugins.xml - src/pluma-plugins-1.26.0/help/nds/nds.po - src/pluma-plugins-1.26.0/help/nds/synctex.page - src/pluma-plugins-1.26.0/help/nds/terminal.page - src/pluma-plugins-1.26.0/help/nds/wordcompletion.page - src/pluma-plugins-1.26.0/help/ne/bookmarks.page - src/pluma-plugins-1.26.0/help/ne/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ne/codecomment.page - src/pluma-plugins-1.26.0/help/ne/index.page - src/pluma-plugins-1.26.0/help/ne/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ne/ne.po - src/pluma-plugins-1.26.0/help/ne/synctex.page - src/pluma-plugins-1.26.0/help/ne/terminal.page - src/pluma-plugins-1.26.0/help/ne/wordcompletion.page - src/pluma-plugins-1.26.0/help/nl/bookmarks.page - src/pluma-plugins-1.26.0/help/nl/bracketcompletion.page - src/pluma-plugins-1.26.0/help/nl/codecomment.page - src/pluma-plugins-1.26.0/help/nl/index.page - src/pluma-plugins-1.26.0/help/nl/legal-plugins.xml - src/pluma-plugins-1.26.0/help/nl/nl.po - src/pluma-plugins-1.26.0/help/nl/synctex.page - src/pluma-plugins-1.26.0/help/nl/terminal.page - src/pluma-plugins-1.26.0/help/nl/wordcompletion.page - src/pluma-plugins-1.26.0/help/nn/bookmarks.page - src/pluma-plugins-1.26.0/help/nn/bracketcompletion.page - src/pluma-plugins-1.26.0/help/nn/codecomment.page - src/pluma-plugins-1.26.0/help/nn/index.page - src/pluma-plugins-1.26.0/help/nn/legal-plugins.xml - src/pluma-plugins-1.26.0/help/nn/nn.po - src/pluma-plugins-1.26.0/help/nn/synctex.page - src/pluma-plugins-1.26.0/help/nn/terminal.page - src/pluma-plugins-1.26.0/help/nn/wordcompletion.page - src/pluma-plugins-1.26.0/help/nso/bookmarks.page - src/pluma-plugins-1.26.0/help/nso/bracketcompletion.page - src/pluma-plugins-1.26.0/help/nso/codecomment.page - src/pluma-plugins-1.26.0/help/nso/index.page - src/pluma-plugins-1.26.0/help/nso/legal-plugins.xml - src/pluma-plugins-1.26.0/help/nso/nso.po - src/pluma-plugins-1.26.0/help/nso/synctex.page - src/pluma-plugins-1.26.0/help/nso/terminal.page - src/pluma-plugins-1.26.0/help/nso/wordcompletion.page - src/pluma-plugins-1.26.0/help/oc/bookmarks.page - src/pluma-plugins-1.26.0/help/oc/bracketcompletion.page - src/pluma-plugins-1.26.0/help/oc/codecomment.page - src/pluma-plugins-1.26.0/help/oc/index.page - src/pluma-plugins-1.26.0/help/oc/legal-plugins.xml - src/pluma-plugins-1.26.0/help/oc/synctex.page - src/pluma-plugins-1.26.0/help/oc/terminal.page - src/pluma-plugins-1.26.0/help/oc/wordcompletion.page - src/pluma-plugins-1.26.0/help/or/bookmarks.page - src/pluma-plugins-1.26.0/help/or/bracketcompletion.page - src/pluma-plugins-1.26.0/help/or/codecomment.page - src/pluma-plugins-1.26.0/help/or/index.page - src/pluma-plugins-1.26.0/help/or/legal-plugins.xml - src/pluma-plugins-1.26.0/help/or/or.po - src/pluma-plugins-1.26.0/help/or/synctex.page - src/pluma-plugins-1.26.0/help/or/terminal.page - src/pluma-plugins-1.26.0/help/or/wordcompletion.page - src/pluma-plugins-1.26.0/help/pa/bracketcompletion.page - src/pluma-plugins-1.26.0/help/pa/codecomment.page - src/pluma-plugins-1.26.0/help/pa/index.page - src/pluma-plugins-1.26.0/help/pa/legal-plugins.xml - src/pluma-plugins-1.26.0/help/pa/synctex.page - src/pluma-plugins-1.26.0/help/pa/terminal.page - src/pluma-plugins-1.26.0/help/pa/wordcompletion.page - src/pluma-plugins-1.26.0/help/pl/bookmarks.page - src/pluma-plugins-1.26.0/help/pl/bracketcompletion.page - src/pluma-plugins-1.26.0/help/pl/codecomment.page - src/pluma-plugins-1.26.0/help/pl/index.page - src/pluma-plugins-1.26.0/help/pl/legal-plugins.xml - src/pluma-plugins-1.26.0/help/pl/pl.po - src/pluma-plugins-1.26.0/help/pl/synctex.page - src/pluma-plugins-1.26.0/help/pl/terminal.page - src/pluma-plugins-1.26.0/help/pl/wordcompletion.page - src/pluma-plugins-1.26.0/help/ps/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ps/codecomment.page - src/pluma-plugins-1.26.0/help/ps/index.page - src/pluma-plugins-1.26.0/help/ps/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ps/ps.po - src/pluma-plugins-1.26.0/help/ps/synctex.page - src/pluma-plugins-1.26.0/help/ps/terminal.page - src/pluma-plugins-1.26.0/help/ps/wordcompletion.page - src/pluma-plugins-1.26.0/help/pt/bookmarks.page - src/pluma-plugins-1.26.0/help/pt/bracketcompletion.page - src/pluma-plugins-1.26.0/help/pt/codecomment.page - src/pluma-plugins-1.26.0/help/pt/index.page - src/pluma-plugins-1.26.0/help/pt/legal-plugins.xml - src/pluma-plugins-1.26.0/help/pt/pt.po - src/pluma-plugins-1.26.0/help/pt/synctex.page - src/pluma-plugins-1.26.0/help/pt/terminal.page - src/pluma-plugins-1.26.0/help/pt/wordcompletion.page - src/pluma-plugins-1.26.0/help/pt_BR/bookmarks.page - src/pluma-plugins-1.26.0/help/pt_BR/bracketcompletion.page - src/pluma-plugins-1.26.0/help/pt_BR/codecomment.page - src/pluma-plugins-1.26.0/help/pt_BR/index.page - src/pluma-plugins-1.26.0/help/pt_BR/legal-plugins.xml - src/pluma-plugins-1.26.0/help/pt_BR/synctex.page - src/pluma-plugins-1.26.0/help/pt_BR/terminal.page - src/pluma-plugins-1.26.0/help/pt_BR/wordcompletion.page - src/pluma-plugins-1.26.0/help/ro/bookmarks.page - src/pluma-plugins-1.26.0/help/ro/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ro/codecomment.page - src/pluma-plugins-1.26.0/help/ro/index.page - src/pluma-plugins-1.26.0/help/ro/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ro/ro.po - src/pluma-plugins-1.26.0/help/ro/synctex.page - src/pluma-plugins-1.26.0/help/ro/terminal.page - src/pluma-plugins-1.26.0/help/ro/wordcompletion.page - src/pluma-plugins-1.26.0/help/ru/bookmarks.page - src/pluma-plugins-1.26.0/help/ru/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ru/codecomment.page - src/pluma-plugins-1.26.0/help/ru/index.page - src/pluma-plugins-1.26.0/help/ru/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ru/ru.po - src/pluma-plugins-1.26.0/help/ru/synctex.page - src/pluma-plugins-1.26.0/help/ru/terminal.page - src/pluma-plugins-1.26.0/help/ru/wordcompletion.page - src/pluma-plugins-1.26.0/help/rw/bookmarks.page - src/pluma-plugins-1.26.0/help/rw/bracketcompletion.page - src/pluma-plugins-1.26.0/help/rw/codecomment.page - src/pluma-plugins-1.26.0/help/rw/index.page - src/pluma-plugins-1.26.0/help/rw/legal-plugins.xml - src/pluma-plugins-1.26.0/help/rw/rw.po - src/pluma-plugins-1.26.0/help/rw/synctex.page - src/pluma-plugins-1.26.0/help/rw/terminal.page - src/pluma-plugins-1.26.0/help/rw/wordcompletion.page - src/pluma-plugins-1.26.0/help/sc/bookmarks.page - src/pluma-plugins-1.26.0/help/sc/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sc/codecomment.page - src/pluma-plugins-1.26.0/help/sc/index.page - src/pluma-plugins-1.26.0/help/sc/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sc/sc.po - src/pluma-plugins-1.26.0/help/sc/synctex.page - src/pluma-plugins-1.26.0/help/sc/terminal.page - src/pluma-plugins-1.26.0/help/sc/wordcompletion.page - src/pluma-plugins-1.26.0/help/si/bookmarks.page - src/pluma-plugins-1.26.0/help/si/bracketcompletion.page - src/pluma-plugins-1.26.0/help/si/codecomment.page - src/pluma-plugins-1.26.0/help/si/index.page - src/pluma-plugins-1.26.0/help/si/legal-plugins.xml - src/pluma-plugins-1.26.0/help/si/si.po - src/pluma-plugins-1.26.0/help/si/synctex.page - src/pluma-plugins-1.26.0/help/si/terminal.page - src/pluma-plugins-1.26.0/help/si/wordcompletion.page - src/pluma-plugins-1.26.0/help/sk/bookmarks.page - src/pluma-plugins-1.26.0/help/sk/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sk/codecomment.page - src/pluma-plugins-1.26.0/help/sk/index.page - src/pluma-plugins-1.26.0/help/sk/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sk/sk.po - src/pluma-plugins-1.26.0/help/sk/synctex.page - src/pluma-plugins-1.26.0/help/sk/terminal.page - src/pluma-plugins-1.26.0/help/sk/wordcompletion.page - src/pluma-plugins-1.26.0/help/sl/bookmarks.page - src/pluma-plugins-1.26.0/help/sl/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sl/codecomment.page - src/pluma-plugins-1.26.0/help/sl/index.page - src/pluma-plugins-1.26.0/help/sl/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sl/sl.po - src/pluma-plugins-1.26.0/help/sl/synctex.page - src/pluma-plugins-1.26.0/help/sl/terminal.page - src/pluma-plugins-1.26.0/help/sl/wordcompletion.page - src/pluma-plugins-1.26.0/help/sq/bookmarks.page - src/pluma-plugins-1.26.0/help/sq/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sq/codecomment.page - src/pluma-plugins-1.26.0/help/sq/index.page - src/pluma-plugins-1.26.0/help/sq/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sq/sq.po - src/pluma-plugins-1.26.0/help/sq/synctex.page - src/pluma-plugins-1.26.0/help/sq/terminal.page - src/pluma-plugins-1.26.0/help/sq/wordcompletion.page - src/pluma-plugins-1.26.0/help/sr/bookmarks.page - src/pluma-plugins-1.26.0/help/sr/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sr/codecomment.page - src/pluma-plugins-1.26.0/help/sr/index.page - src/pluma-plugins-1.26.0/help/sr/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sr/sr.po - src/pluma-plugins-1.26.0/help/sr/synctex.page - src/pluma-plugins-1.26.0/help/sr/terminal.page - src/pluma-plugins-1.26.0/help/sr/wordcompletion.page - src/pluma-plugins-1.26.0/help/sr@latin/bookmarks.page - src/pluma-plugins-1.26.0/help/sr@latin/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sr@latin/codecomment.page - src/pluma-plugins-1.26.0/help/sr@latin/index.page - src/pluma-plugins-1.26.0/help/sr@latin/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sr@latin/sr@latin.po - src/pluma-plugins-1.26.0/help/sr@latin/synctex.page - src/pluma-plugins-1.26.0/help/sr@latin/terminal.page - src/pluma-plugins-1.26.0/help/sr@latin/wordcompletion.page - src/pluma-plugins-1.26.0/help/sv/bookmarks.page - src/pluma-plugins-1.26.0/help/sv/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sv/codecomment.page - src/pluma-plugins-1.26.0/help/sv/index.page - src/pluma-plugins-1.26.0/help/sv/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sv/sv.po - src/pluma-plugins-1.26.0/help/sv/synctex.page - src/pluma-plugins-1.26.0/help/sv/terminal.page - src/pluma-plugins-1.26.0/help/sv/wordcompletion.page - src/pluma-plugins-1.26.0/help/sw/bookmarks.page - src/pluma-plugins-1.26.0/help/sw/bracketcompletion.page - src/pluma-plugins-1.26.0/help/sw/codecomment.page - src/pluma-plugins-1.26.0/help/sw/index.page - src/pluma-plugins-1.26.0/help/sw/legal-plugins.xml - src/pluma-plugins-1.26.0/help/sw/sw.po - src/pluma-plugins-1.26.0/help/sw/synctex.page - src/pluma-plugins-1.26.0/help/sw/terminal.page - src/pluma-plugins-1.26.0/help/sw/wordcompletion.page - src/pluma-plugins-1.26.0/help/ta/bookmarks.page - src/pluma-plugins-1.26.0/help/ta/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ta/codecomment.page - src/pluma-plugins-1.26.0/help/ta/index.page - src/pluma-plugins-1.26.0/help/ta/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ta/synctex.page - src/pluma-plugins-1.26.0/help/ta/ta.po - src/pluma-plugins-1.26.0/help/ta/terminal.page - src/pluma-plugins-1.26.0/help/ta/wordcompletion.page - src/pluma-plugins-1.26.0/help/te/bookmarks.page - src/pluma-plugins-1.26.0/help/te/bracketcompletion.page - src/pluma-plugins-1.26.0/help/te/codecomment.page - src/pluma-plugins-1.26.0/help/te/index.page - src/pluma-plugins-1.26.0/help/te/legal-plugins.xml - src/pluma-plugins-1.26.0/help/te/synctex.page - src/pluma-plugins-1.26.0/help/te/te.po - src/pluma-plugins-1.26.0/help/te/terminal.page - src/pluma-plugins-1.26.0/help/te/wordcompletion.page - src/pluma-plugins-1.26.0/help/th/bookmarks.page - src/pluma-plugins-1.26.0/help/th/bracketcompletion.page - src/pluma-plugins-1.26.0/help/th/codecomment.page - src/pluma-plugins-1.26.0/help/th/index.page - src/pluma-plugins-1.26.0/help/th/legal-plugins.xml - src/pluma-plugins-1.26.0/help/th/synctex.page - src/pluma-plugins-1.26.0/help/th/terminal.page - src/pluma-plugins-1.26.0/help/th/th.po - src/pluma-plugins-1.26.0/help/th/wordcompletion.page - src/pluma-plugins-1.26.0/help/tr/bookmarks.page - src/pluma-plugins-1.26.0/help/tr/bracketcompletion.page - src/pluma-plugins-1.26.0/help/tr/codecomment.page - src/pluma-plugins-1.26.0/help/tr/index.page - src/pluma-plugins-1.26.0/help/tr/legal-plugins.xml - src/pluma-plugins-1.26.0/help/tr/synctex.page - src/pluma-plugins-1.26.0/help/tr/terminal.page - src/pluma-plugins-1.26.0/help/tr/tr.po - src/pluma-plugins-1.26.0/help/tr/wordcompletion.page - src/pluma-plugins-1.26.0/help/ug/bookmarks.page - src/pluma-plugins-1.26.0/help/ug/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ug/codecomment.page - src/pluma-plugins-1.26.0/help/ug/index.page - src/pluma-plugins-1.26.0/help/ug/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ug/synctex.page - src/pluma-plugins-1.26.0/help/ug/terminal.page - src/pluma-plugins-1.26.0/help/ug/ug.po - src/pluma-plugins-1.26.0/help/ug/wordcompletion.page - src/pluma-plugins-1.26.0/help/uk/bookmarks.page - src/pluma-plugins-1.26.0/help/uk/bracketcompletion.page - src/pluma-plugins-1.26.0/help/uk/codecomment.page - src/pluma-plugins-1.26.0/help/uk/index.page - src/pluma-plugins-1.26.0/help/uk/legal-plugins.xml - src/pluma-plugins-1.26.0/help/uk/synctex.page - src/pluma-plugins-1.26.0/help/uk/terminal.page - src/pluma-plugins-1.26.0/help/uk/uk.po - src/pluma-plugins-1.26.0/help/uk/wordcompletion.page - src/pluma-plugins-1.26.0/help/ur/bookmarks.page - src/pluma-plugins-1.26.0/help/ur/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ur/codecomment.page - src/pluma-plugins-1.26.0/help/ur/index.page - src/pluma-plugins-1.26.0/help/ur/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ur/synctex.page - src/pluma-plugins-1.26.0/help/ur/terminal.page - src/pluma-plugins-1.26.0/help/ur/wordcompletion.page - src/pluma-plugins-1.26.0/help/ur_PK/bookmarks.page - src/pluma-plugins-1.26.0/help/ur_PK/bracketcompletion.page - src/pluma-plugins-1.26.0/help/ur_PK/codecomment.page - src/pluma-plugins-1.26.0/help/ur_PK/index.page - src/pluma-plugins-1.26.0/help/ur_PK/legal-plugins.xml - src/pluma-plugins-1.26.0/help/ur_PK/synctex.page - src/pluma-plugins-1.26.0/help/ur_PK/terminal.page - src/pluma-plugins-1.26.0/help/ur_PK/wordcompletion.page - src/pluma-plugins-1.26.0/help/uz/bookmarks.page - src/pluma-plugins-1.26.0/help/uz/bracketcompletion.page - src/pluma-plugins-1.26.0/help/uz/codecomment.page - src/pluma-plugins-1.26.0/help/uz/index.page - src/pluma-plugins-1.26.0/help/uz/legal-plugins.xml - src/pluma-plugins-1.26.0/help/uz/synctex.page - src/pluma-plugins-1.26.0/help/uz/terminal.page - src/pluma-plugins-1.26.0/help/uz/uz.po - src/pluma-plugins-1.26.0/help/uz/wordcompletion.page - src/pluma-plugins-1.26.0/help/vi/bookmarks.page - src/pluma-plugins-1.26.0/help/vi/bracketcompletion.page - src/pluma-plugins-1.26.0/help/vi/codecomment.page - src/pluma-plugins-1.26.0/help/vi/index.page - src/pluma-plugins-1.26.0/help/vi/legal-plugins.xml - src/pluma-plugins-1.26.0/help/vi/synctex.page - src/pluma-plugins-1.26.0/help/vi/terminal.page - src/pluma-plugins-1.26.0/help/vi/vi.po - src/pluma-plugins-1.26.0/help/vi/wordcompletion.page - src/pluma-plugins-1.26.0/help/wa/bookmarks.page - src/pluma-plugins-1.26.0/help/wa/bracketcompletion.page - src/pluma-plugins-1.26.0/help/wa/codecomment.page - src/pluma-plugins-1.26.0/help/wa/index.page - src/pluma-plugins-1.26.0/help/wa/legal-plugins.xml - src/pluma-plugins-1.26.0/help/wa/synctex.page - src/pluma-plugins-1.26.0/help/wa/terminal.page - src/pluma-plugins-1.26.0/help/wa/wa.po - src/pluma-plugins-1.26.0/help/wa/wordcompletion.page - src/pluma-plugins-1.26.0/help/xh/bookmarks.page - src/pluma-plugins-1.26.0/help/xh/bracketcompletion.page - src/pluma-plugins-1.26.0/help/xh/codecomment.page - src/pluma-plugins-1.26.0/help/xh/index.page - src/pluma-plugins-1.26.0/help/xh/legal-plugins.xml - src/pluma-plugins-1.26.0/help/xh/synctex.page - src/pluma-plugins-1.26.0/help/xh/terminal.page - src/pluma-plugins-1.26.0/help/xh/wordcompletion.page - src/pluma-plugins-1.26.0/help/xh/xh.po - src/pluma-plugins-1.26.0/help/yo/bookmarks.page - src/pluma-plugins-1.26.0/help/yo/bracketcompletion.page - src/pluma-plugins-1.26.0/help/yo/codecomment.page - src/pluma-plugins-1.26.0/help/yo/index.page - src/pluma-plugins-1.26.0/help/yo/legal-plugins.xml - src/pluma-plugins-1.26.0/help/yo/synctex.page - src/pluma-plugins-1.26.0/help/yo/terminal.page - src/pluma-plugins-1.26.0/help/yo/wordcompletion.page - src/pluma-plugins-1.26.0/help/yo/yo.po - src/pluma-plugins-1.26.0/help/zh-Hans/bookmarks.page - src/pluma-plugins-1.26.0/help/zh-Hans/bracketcompletion.page - src/pluma-plugins-1.26.0/help/zh-Hans/codecomment.page - src/pluma-plugins-1.26.0/help/zh-Hans/index.page - src/pluma-plugins-1.26.0/help/zh-Hans/legal-plugins.xml - src/pluma-plugins-1.26.0/help/zh-Hans/synctex.page - src/pluma-plugins-1.26.0/help/zh-Hans/terminal.page - src/pluma-plugins-1.26.0/help/zh-Hans/wordcompletion.page - src/pluma-plugins-1.26.0/help/zh-Hans/zh-Hans.po - src/pluma-plugins-1.26.0/help/zh_CN/bookmarks.page - src/pluma-plugins-1.26.0/help/zh_CN/bracketcompletion.page - src/pluma-plugins-1.26.0/help/zh_CN/codecomment.page - src/pluma-plugins-1.26.0/help/zh_CN/index.page - src/pluma-plugins-1.26.0/help/zh_CN/legal-plugins.xml - src/pluma-plugins-1.26.0/help/zh_CN/synctex.page - src/pluma-plugins-1.26.0/help/zh_CN/terminal.page - src/pluma-plugins-1.26.0/help/zh_CN/wordcompletion.page - src/pluma-plugins-1.26.0/help/zh_CN/zh_CN.po - src/pluma-plugins-1.26.0/help/zh_HK/bookmarks.page - src/pluma-plugins-1.26.0/help/zh_HK/bracketcompletion.page - src/pluma-plugins-1.26.0/help/zh_HK/codecomment.page - src/pluma-plugins-1.26.0/help/zh_HK/index.page - src/pluma-plugins-1.26.0/help/zh_HK/legal-plugins.xml - src/pluma-plugins-1.26.0/help/zh_HK/synctex.page - src/pluma-plugins-1.26.0/help/zh_HK/terminal.page - src/pluma-plugins-1.26.0/help/zh_HK/wordcompletion.page - src/pluma-plugins-1.26.0/help/zh_HK/zh_HK.po - src/pluma-plugins-1.26.0/help/zh_TW/bookmarks.page - src/pluma-plugins-1.26.0/help/zh_TW/bracketcompletion.page - src/pluma-plugins-1.26.0/help/zh_TW/codecomment.page - src/pluma-plugins-1.26.0/help/zh_TW/index.page - src/pluma-plugins-1.26.0/help/zh_TW/legal-plugins.xml - src/pluma-plugins-1.26.0/help/zh_TW/synctex.page - src/pluma-plugins-1.26.0/help/zh_TW/wordcompletion.page - src/pluma-plugins-1.26.0/help/zu/bookmarks.page - src/pluma-plugins-1.26.0/help/zu/bracketcompletion.page - src/pluma-plugins-1.26.0/help/zu/codecomment.page - src/pluma-plugins-1.26.0/help/zu/index.page - src/pluma-plugins-1.26.0/help/zu/legal-plugins.xml - src/pluma-plugins-1.26.0/help/zu/synctex.page - src/pluma-plugins-1.26.0/help/zu/terminal.page - src/pluma-plugins-1.26.0/help/zu/wordcompletion.page - src/pluma-plugins-1.26.0/help/zu/zu.po - src/pluma-plugins-1.26.0/plugins/Makefile.am - src/pluma-plugins-1.26.0/plugins/Makefile.in - src/pluma-plugins-1.26.0/plugins/bookmarks/Makefile.am - src/pluma-plugins-1.26.0/plugins/bookmarks/Makefile.in - src/pluma-plugins-1.26.0/plugins/bookmarks/bookmarks.plugin.desktop.in.in - src/pluma-plugins-1.26.0/plugins/bookmarks/pluma-bookmarks.metainfo.xml.in.in - src/pluma-plugins-1.26.0/plugins/bracketcompletion/Makefile.am - src/pluma-plugins-1.26.0/plugins/bracketcompletion/Makefile.in - src/pluma-plugins-1.26.0/plugins/codecomment/Makefile.am - src/pluma-plugins-1.26.0/plugins/codecomment/Makefile.in - src/pluma-plugins-1.26.0/plugins/codecomment/codecomment.plugin.desktop.in.in - src/pluma-plugins-1.26.0/plugins/codecomment/pluma-codecomment.metainfo.xml.in.in - src/pluma-plugins-1.26.0/plugins/gpdefs.py - src/pluma-plugins-1.26.0/plugins/gpdefs.py.in - src/pluma-plugins-1.26.0/plugins/smartspaces/Makefile.am - src/pluma-plugins-1.26.0/plugins/smartspaces/Makefile.in - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/Makefile.am - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/Makefile.in - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/org.mate.pluma.plugins.sourcecodebrowser.gschema.xml.in - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser.plugin.desktop.in.in - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/Makefile.am - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/Makefile.in - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/__init__.py - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/configure_dialog.ui - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/ctags.py - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/Makefile.am - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/Makefile.in - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/missing-image.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-define.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-enumerator.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-field.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-macro.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-property.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-typedef.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/sourcecodebrowser.py - src/pluma-plugins-1.26.0/plugins/synctex/Makefile.am - src/pluma-plugins-1.26.0/plugins/synctex/Makefile.in - src/pluma-plugins-1.26.0/plugins/synctex/pluma-synctex.metainfo.xml.in.in - src/pluma-plugins-1.26.0/plugins/synctex/synctex/Makefile.am - src/pluma-plugins-1.26.0/plugins/synctex/synctex/Makefile.in - src/pluma-plugins-1.26.0/plugins/synctex/synctex/__init__.py - src/pluma-plugins-1.26.0/plugins/terminal/Makefile.am - src/pluma-plugins-1.26.0/plugins/terminal/Makefile.in - src/pluma-plugins-1.26.0/plugins/terminal/org.mate.pluma.plugins.terminal.gschema.xml.in - src/pluma-plugins-1.26.0/plugins/terminal/pluma-terminal.metainfo.xml.in.in - src/pluma-plugins-1.26.0/plugins/terminal/terminal.plugin.desktop.in.in - src/pluma-plugins-1.26.0/plugins/wordcompletion/Makefile.am - src/pluma-plugins-1.26.0/plugins/wordcompletion/Makefile.in - src/pluma-plugins-1.26.0/plugins/wordcompletion/org.mate.pluma.plugins.wordcompletion.gschema.xml.in - src/pluma-plugins-1.26.0/plugins/wordcompletion/pluma-word-completion-configure.ui - src/pluma-plugins-1.26.0/plugins/wordcompletion/pluma-word-completion.gresource.xml - src/pluma-plugins-1.26.0/plugins/wordcompletion/wordcompletion.plugin.desktop.in.in - src/pluma-plugins-1.26.0/po/LINGUAS - src/pluma-plugins-1.26.0/po/POTFILES.in - src/pluma-plugins-1.26.0/po/Rules-quot - src/pluma-plugins-1.26.0/po/af.gmo - src/pluma-plugins-1.26.0/po/am.gmo - src/pluma-plugins-1.26.0/po/az.gmo - src/pluma-plugins-1.26.0/po/be@latin.gmo - src/pluma-plugins-1.26.0/po/be@latin.po - src/pluma-plugins-1.26.0/po/bg.gmo - src/pluma-plugins-1.26.0/po/bn_IN.gmo - src/pluma-plugins-1.26.0/po/boldquot.sed - src/pluma-plugins-1.26.0/po/br.gmo - src/pluma-plugins-1.26.0/po/bs.gmo - src/pluma-plugins-1.26.0/po/crh.gmo - src/pluma-plugins-1.26.0/po/cy.gmo - src/pluma-plugins-1.26.0/po/da.gmo - src/pluma-plugins-1.26.0/po/de.gmo - src/pluma-plugins-1.26.0/po/el.gmo - src/pluma-plugins-1.26.0/po/en@boldquot.header - src/pluma-plugins-1.26.0/po/en@quot.header - src/pluma-plugins-1.26.0/po/en@shaw.gmo - src/pluma-plugins-1.26.0/po/en@shaw.po - src/pluma-plugins-1.26.0/po/en_AU.gmo - src/pluma-plugins-1.26.0/po/en_CA.gmo - src/pluma-plugins-1.26.0/po/en_GB.gmo - src/pluma-plugins-1.26.0/po/es.gmo - src/pluma-plugins-1.26.0/po/es_AR.gmo - src/pluma-plugins-1.26.0/po/es_CO.gmo - src/pluma-plugins-1.26.0/po/eu.gmo - src/pluma-plugins-1.26.0/po/fi.gmo - src/pluma-plugins-1.26.0/po/frp.gmo - src/pluma-plugins-1.26.0/po/fur.gmo - src/pluma-plugins-1.26.0/po/gu.gmo - src/pluma-plugins-1.26.0/po/he.gmo - src/pluma-plugins-1.26.0/po/hr.gmo - src/pluma-plugins-1.26.0/po/insert-header.sin - src/pluma-plugins-1.26.0/po/is.gmo - src/pluma-plugins-1.26.0/po/it.gmo - src/pluma-plugins-1.26.0/po/ka.gmo - src/pluma-plugins-1.26.0/po/kn.gmo - src/pluma-plugins-1.26.0/po/ku.gmo - src/pluma-plugins-1.26.0/po/ku_IQ.gmo - src/pluma-plugins-1.26.0/po/la.gmo - src/pluma-plugins-1.26.0/po/lt.gmo - src/pluma-plugins-1.26.0/po/lv.gmo - src/pluma-plugins-1.26.0/po/mai.gmo - src/pluma-plugins-1.26.0/po/mg.gmo - src/pluma-plugins-1.26.0/po/mi.gmo - src/pluma-plugins-1.26.0/po/mi.po - src/pluma-plugins-1.26.0/po/mk.gmo - src/pluma-plugins-1.26.0/po/ml.gmo - src/pluma-plugins-1.26.0/po/mr.gmo - src/pluma-plugins-1.26.0/po/ms.gmo - src/pluma-plugins-1.26.0/po/nds.gmo - src/pluma-plugins-1.26.0/po/nl.gmo - src/pluma-plugins-1.26.0/po/nso.gmo - src/pluma-plugins-1.26.0/po/or.gmo - src/pluma-plugins-1.26.0/po/pl.gmo - src/pluma-plugins-1.26.0/po/quot.sed - src/pluma-plugins-1.26.0/po/remove-potcdate.sin - src/pluma-plugins-1.26.0/po/ro.gmo - src/pluma-plugins-1.26.0/po/ru.gmo - src/pluma-plugins-1.26.0/po/rw.gmo - src/pluma-plugins-1.26.0/po/si.gmo - src/pluma-plugins-1.26.0/po/sl.gmo - src/pluma-plugins-1.26.0/po/sq.gmo - src/pluma-plugins-1.26.0/po/sr.gmo - src/pluma-plugins-1.26.0/po/sr@latin.gmo - src/pluma-plugins-1.26.0/po/stamp-po - src/pluma-plugins-1.26.0/po/sv.gmo - src/pluma-plugins-1.26.0/po/te.gmo - src/pluma-plugins-1.26.0/po/tk.gmo - src/pluma-plugins-1.26.0/po/tr.gmo - src/pluma-plugins-1.26.0/po/ug.gmo - src/pluma-plugins-1.26.0/po/uz.gmo - src/pluma-plugins-1.26.0/po/xh.gmo - src/pluma-plugins-1.26.0/po/zu.gmo -Copyright: 1994-2020, Free Software Foundation, Inc. - 2004, Free Software Foundation, Inc. - 2005, Paolo Borelli - 2007, THE gedit's COPYRIGHT HOLDER - 2009, Jesse van den Kieboom - 2009-2010, the GNOME Foundation. - 2011, Micah Carrick - 2014, Igor Gnatenko --> - 2020-2021, MATE Developers -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/af.po - src/pluma-plugins-1.26.0/po/am.po - src/pluma-plugins-1.26.0/po/ar.po - src/pluma-plugins-1.26.0/po/as.po - src/pluma-plugins-1.26.0/po/ast.po - src/pluma-plugins-1.26.0/po/az.po - src/pluma-plugins-1.26.0/po/be.po - src/pluma-plugins-1.26.0/po/bg.po - src/pluma-plugins-1.26.0/po/bn.po - src/pluma-plugins-1.26.0/po/bn_IN.po - src/pluma-plugins-1.26.0/po/br.po - src/pluma-plugins-1.26.0/po/bs.po - src/pluma-plugins-1.26.0/po/ca.po - src/pluma-plugins-1.26.0/po/cmn.po - src/pluma-plugins-1.26.0/po/crh.po - src/pluma-plugins-1.26.0/po/cs.po - src/pluma-plugins-1.26.0/po/cy.po - src/pluma-plugins-1.26.0/po/da.po - src/pluma-plugins-1.26.0/po/de.po - src/pluma-plugins-1.26.0/po/dz.po - src/pluma-plugins-1.26.0/po/el.po - src/pluma-plugins-1.26.0/po/en_AU.po - src/pluma-plugins-1.26.0/po/en_CA.po - src/pluma-plugins-1.26.0/po/en_GB.po - src/pluma-plugins-1.26.0/po/eo.po - src/pluma-plugins-1.26.0/po/es.po - src/pluma-plugins-1.26.0/po/es_AR.po - src/pluma-plugins-1.26.0/po/es_CO.po - src/pluma-plugins-1.26.0/po/et.po - src/pluma-plugins-1.26.0/po/eu.po - src/pluma-plugins-1.26.0/po/fa.po - src/pluma-plugins-1.26.0/po/fi.po - src/pluma-plugins-1.26.0/po/fr.po - src/pluma-plugins-1.26.0/po/frp.po - src/pluma-plugins-1.26.0/po/fur.po - src/pluma-plugins-1.26.0/po/ga.po - src/pluma-plugins-1.26.0/po/gu.po - src/pluma-plugins-1.26.0/po/he.po - src/pluma-plugins-1.26.0/po/hi.po - src/pluma-plugins-1.26.0/po/hr.po - src/pluma-plugins-1.26.0/po/hu.po - src/pluma-plugins-1.26.0/po/hy.po - src/pluma-plugins-1.26.0/po/id.po - src/pluma-plugins-1.26.0/po/ie.po - src/pluma-plugins-1.26.0/po/is.po - src/pluma-plugins-1.26.0/po/it.po - src/pluma-plugins-1.26.0/po/ja.po - src/pluma-plugins-1.26.0/po/ka.po - src/pluma-plugins-1.26.0/po/kk.po - src/pluma-plugins-1.26.0/po/kn.po - src/pluma-plugins-1.26.0/po/ko.po - src/pluma-plugins-1.26.0/po/ku.po - src/pluma-plugins-1.26.0/po/ku_IQ.po - src/pluma-plugins-1.26.0/po/ky.po - src/pluma-plugins-1.26.0/po/la.po - src/pluma-plugins-1.26.0/po/lt.po - src/pluma-plugins-1.26.0/po/lv.po - src/pluma-plugins-1.26.0/po/mai.po - src/pluma-plugins-1.26.0/po/mg.po - src/pluma-plugins-1.26.0/po/mk.po - src/pluma-plugins-1.26.0/po/ml.po - src/pluma-plugins-1.26.0/po/mn.po - src/pluma-plugins-1.26.0/po/mr.po - src/pluma-plugins-1.26.0/po/ms.po - src/pluma-plugins-1.26.0/po/nb.po - src/pluma-plugins-1.26.0/po/nds.po - src/pluma-plugins-1.26.0/po/ne.po - src/pluma-plugins-1.26.0/po/nl.po - src/pluma-plugins-1.26.0/po/nn.po - src/pluma-plugins-1.26.0/po/nso.po - src/pluma-plugins-1.26.0/po/oc.po - src/pluma-plugins-1.26.0/po/or.po - src/pluma-plugins-1.26.0/po/pa.po - src/pluma-plugins-1.26.0/po/pl.po - src/pluma-plugins-1.26.0/po/pluma-plugins.pot - src/pluma-plugins-1.26.0/po/ps.po - src/pluma-plugins-1.26.0/po/pt.po - src/pluma-plugins-1.26.0/po/pt_BR.po - src/pluma-plugins-1.26.0/po/ro.po - src/pluma-plugins-1.26.0/po/ru.po - src/pluma-plugins-1.26.0/po/rw.po - src/pluma-plugins-1.26.0/po/si.po - src/pluma-plugins-1.26.0/po/sk.po - src/pluma-plugins-1.26.0/po/sl.po - src/pluma-plugins-1.26.0/po/sq.po - src/pluma-plugins-1.26.0/po/sr.po - src/pluma-plugins-1.26.0/po/sr@latin.po - src/pluma-plugins-1.26.0/po/sv.po - src/pluma-plugins-1.26.0/po/ta.po - src/pluma-plugins-1.26.0/po/te.po - src/pluma-plugins-1.26.0/po/th.po - src/pluma-plugins-1.26.0/po/tr.po - src/pluma-plugins-1.26.0/po/ug.po - src/pluma-plugins-1.26.0/po/uk.po - src/pluma-plugins-1.26.0/po/ur.po - src/pluma-plugins-1.26.0/po/uz.po - src/pluma-plugins-1.26.0/po/vi.po - src/pluma-plugins-1.26.0/po/wa.po - src/pluma-plugins-1.26.0/po/xh.po - src/pluma-plugins-1.26.0/po/zh_CN.po - src/pluma-plugins-1.26.0/po/zh_HK.po - src/pluma-plugins-1.26.0/po/zh_TW.po - src/pluma-plugins-1.26.0/po/zu.po -Copyright: YEAR MATE Desktop Environment team -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/aclocal.m4 - src/pluma-plugins-1.26.0/config.rpath - src/pluma-plugins-1.26.0/m4/iconv.m4 - src/pluma-plugins-1.26.0/m4/lib-ld.m4 - src/pluma-plugins-1.26.0/m4/lib-link.m4 - src/pluma-plugins-1.26.0/m4/lib-prefix.m4 - src/pluma-plugins-1.26.0/m4/ltoptions.m4 - src/pluma-plugins-1.26.0/m4/ltsugar.m4 - src/pluma-plugins-1.26.0/m4/ltversion.m4 - src/pluma-plugins-1.26.0/m4/lt~obsolete.m4 -Copyright: 1996-2003, 2009-2016, Free Software Foundation, Inc. - 1996-2016, Free Software Foundation, Inc. - 1996-2020, Free Software Foundation, Inc. - 2000-2002, 2007-2014, 2016, Free Software Foundation, Inc. - 2001-2005, 2008-2016, Free Software Foundation, Inc. - 2001-2016, Free Software Foundation, Inc. - 2004, 2011-2015, Free Software Foundation, Inc. - 2004-2005, 2007, 2009, 2011-2015, Free Software - 2004-2005, 2007-2008, 2011-2015, Free Software - 2004-2005, 2007-2009, 2011-2015, Free Software -License: FSFULLR - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/bookmarks/pluma-bookmarks-plugin.c - src/pluma-plugins-1.26.0/plugins/bookmarks/pluma-bookmarks-plugin.h - src/pluma-plugins-1.26.0/plugins/bracketcompletion/bracketcompletion.py - src/pluma-plugins-1.26.0/plugins/codecomment/codecomment.py - src/pluma-plugins-1.26.0/plugins/smartspaces/smartspaces.py - src/pluma-plugins-1.26.0/plugins/synctex/synctex/atril_dbus.py - src/pluma-plugins-1.26.0/plugins/synctex/synctex/synctex.py - src/pluma-plugins-1.26.0/plugins/terminal/terminal.py - src/pluma-plugins-1.26.0/plugins/wordcompletion/pluma-word-completion-plugin.h -Copyright: 2005-2006, - Paolo Borelli - 2005-2006, Igalia - 2006, - Steve Frécinaux - 2006, Matthew Dugan - 2007, Steve Frécinaux - 2008, Jesse van den Kieboom - 2009, Ignacio Casal Quinteiro - 2010, - José Aliste - 2010, Jose Aliste - 2020-2021, MATE Developers -License: GPL-2+ - FIXME - -Files: src/pluma-plugins-1.26.0/m4/gettext.m4 - src/pluma-plugins-1.26.0/m4/intlmacosx.m4 - src/pluma-plugins-1.26.0/m4/nls.m4 - src/pluma-plugins-1.26.0/m4/po.m4 - src/pluma-plugins-1.26.0/m4/progtest.m4 -Copyright: 1995-2003, 2005-2006, 2008-2014, 2016, Free Software - 1995-2014, 2016, Free Software Foundation, Inc. - 1996-2003, 2005, 2008-2016, Free Software Foundation, Inc. - 2004-2014, 2016, Free Software Foundation, Inc. -License: FSFULLR and/or GPL and/or LGPL - FIXME - -Files: src/pluma-plugins-1.26.0/compile - src/pluma-plugins-1.26.0/depcomp - src/pluma-plugins-1.26.0/missing - src/pluma-plugins-1.26.0/py-compile -Copyright: 1996-2020, Free Software Foundation, Inc. - 1999-2020, Free Software Foundation, Inc. - 2000-2020, Free Software Foundation, Inc. -License: GPL-2+ with Autoconf-data exception - FIXME - -Files: src/pluma-plugins-1.26.0/help/fr/bracketcompletion.page - src/pluma-plugins-1.26.0/help/fr/index.page - src/pluma-plugins-1.26.0/help/fr/synctex.page - src/pluma-plugins-1.26.0/help/fr/wordcompletion.page -Copyright: Mauchin -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-function.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-member.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-method.png -Copyright: †¹©”v6ÍÖß4_À‘"3“¼¨ºÂ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/its/metainfo.its - src/pluma-plugins-1.26.0/its/metainfo.loc -Copyright: 2015, 2017, Free Software Foundation, Inc. -License: GPL-3+ - FIXME - -Files: src/pluma-plugins-1.26.0/config.guess - src/pluma-plugins-1.26.0/config.sub -Copyright: 1992-2018, Free Software Foundation, Inc. -License: GPL-3+ with Autoconf-data exception - FIXME - -Files: src/pluma-plugins-1.26.0/help/it/it.po - src/pluma-plugins-1.26.0/help/it/synctex.page -Copyright: sia di qualche utilità -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-class.png - src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-code-browser.png -Copyright: ¶”.[ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/m4/libtool.m4 -Copyright: 1996-2001, 2003-2015, Free Software Foundation, Inc. -License: (FSFULLR and/or GPL-2) with libtool exception - FIXME - -Files: src/pluma-plugins-1.26.0/install-sh -Copyright: 1994, X Consortium -License: Expat - FIXME - -Files: src/pluma-plugins-1.26.0/po/Makefile.in.in -Copyright: 1995-1997, 2000-2007, 2009-2010, Ulrich Drepper -License: FSFAP - FIXME - -Files: src/pluma-plugins-1.26.0/configure -Copyright: 1992-1996, 1998-2012, Free Software Foundation, Inc. -License: FSFUL - FIXME - -Files: src/pluma-plugins-1.26.0/po/tk.po -Copyright: 2004, Free Software Foundation - 2004, Kakilik Project -License: GPL - FIXME - -Files: src/pluma-plugins-1.26.0/COPYING -Copyright: 1989, 1991, Free Software Foundation, Inc. -License: GPL-2 - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/wordcompletion/pluma-word-completion-plugin.c -Copyright: 2009, Ignacio Casal Quinteiro - 2020-2021, MATE Developers - bastien Wilmet -License: GPL-2+ - FIXME - -Files: src/pluma-plugins-1.26.0/ltmain.sh -Copyright: 1996-2015, Free Software Foundation, Inc. -License: GPL-2+ with libtool exception - FIXME - -Files: src/pluma-plugins-1.26.0/po/ie.gmo -Copyright: ³ÅÊӘé‚‘¢¨±BookmarksEmbedded TerminalFontTerminalThe cursor appearanceProject-Id-Version: pluma-plugins 1.25.0 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/eo.gmo -Copyright: $³%Øþ» -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/bn.gmo -Copyright: b] - KÎd -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ta.gmo -Copyright: ±1[ & - ¹Ac~¥j$r -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/be.gmo -Copyright:  -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ca.gmo -Copyright: Ú )ø!""(@"Fi"°"Æ"[×"3#:J#" -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/et.gmo -Copyright: #í -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ar.gmo -Copyright: الخطإذا ضبط لصحيح فسيجعل شريط الت٠- الطرفيةللطرفيّات لوح ألوان ذي 16 لونا ستستخد٠- في٠- أس٠- الألوان بهيئة قائ٠- الخالية في حال كان خرج الطرفية كثيرا.إذا ضبط لصحيح، فسيستع٠- الطرفيّةاللون ال٠- الطرفيّة عوض الألوان ال٠- ال٠- بفواصل. يجب أن تكون أس٠- سداسية، Ù - Ù - لقطع الطرفيّةفي٠-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/cmn.gmo -Copyright: 是否使用系統提供的字型設定 - Ÿä¸Šï¼Œå› - Ÿä¿ç•™çš„列數游標可否閃爍按下任何鍵後,是否將終端機å - Ÿå - Ÿæœ‰å¤§é‡è¼¸å‡ºå - Ÿçš„é - Ÿç©ºé–“。如設定為「trueã€ï¼Œçµ‚ç«¯æ©Ÿæœƒä½¿ç”¨å¸ƒæ™¯ä¸»é¡Œæä¾›çš„è‰²å½©ï¼Œè€Œä¸æ˜¯ä½¿ç”¨è€ - Ÿéˆ´è²æ˜¯å¦ä¸ç™¼å‡ºè²éŸ³åœ¨çµ‚端機å - 。終端機保留的列數終端機的色盤終端機終端機可以使用一個 16 色的色盤,即是本設定中指定的色盤,æ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/zh_HK.gmo -Copyright: 是否使用系統提供的字型設定 - Ÿä¸Šï¼Œå› - Ÿä¿ç•™çš„行數游標可否閃爍按下任何鍵後,是否將終端機å - Ÿå - Ÿæœ‰å¤§é‡è¼¸å‡ºå - Ÿçš„é - Ÿç©ºé–“。如設定為‘trueâ€™ï¼Œçµ‚ç«¯æ©Ÿæœƒä½¿ç”¨ä½ˆæ™¯ä¸»é¡Œæä¾›çš„è‰²å½©ï¼Œè€Œä¸æ˜¯ä½¿ç”¨è€ - Ÿéˆ´è²æ˜¯å¦ä¸ç™¼å‡ºè²éŸ³åœ¨çµ‚端機å - 。終端機保留的行數終端機的色盤終端機終端機可以使用一個 16 色的色盤,即是本設定中指定的色盤,æ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/zh_TW.gmo -Copyright: 是否使用系統的字型設定文字補齊使用補齊框架將文字補齊按字母é - Ÿå±•é–‹åˆ—在初始載å - Ÿçµ‚端機可以使用一個 16 色的調色盤,即是本設定中指定的調色盤,æ - Ÿã€‚嵌å - Ÿä¿ç•™çš„列數游標可否閃爍是否啟用互動式補齊。按下任何鍵後,是否將終端機å - Ÿä¿ç•™çš„列數終端機捲動時所保留的列數。您可以回捲指定的列數;å - Ÿå - Ÿå°å·¥å - Ÿæœ‰å¤§é‡è¼¸å‡ºå - Ÿçš„調色盤顯示行號在原始碼樹中顯示行號(_L)在原始碼樹中顯示每個é - Ÿçš„é - Ÿéˆ´è²å­—å - Ÿéˆ´è²æ˜¯å¦éœéŸ³åœ¨çµ‚端機å - ºæ - ºé–“。如設定為 true,終端機會採用桌面整體指定的字型(如果它是固定寬度字型;否則會使用最接近的字型)。如設定為 trueï¼Œçµ‚ç«¯æ©Ÿæœƒä½¿ç”¨ä¸»é¡Œæä¾›çš„è‰²å½©ï¼Œè€Œä¸æ˜¯ä½¿ç”¨è€ - 。如設定為 true,當終端機有任何新的å -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/hy.gmo -Copyright: ï™9®=è&V9‹+ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/nn.gmo -Copyright: m%v%œ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/vi.gmo -Copyright: _1p2¢ÕHÜ¥%Ë2æ%-S $j B 5Ò ] -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/hi.gmo -Copyright: aUwMÍ›.EÊx N‰ Ø ·î %¦ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/as.gmo -Copyright: 'dTŒgá -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ne.gmo -Copyright: ` -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/C/figures/pluma-plugin-icon.png -Copyright: ™›Ÿ´ÀÑ^Œ”žö.Ì/Æ|SÀs‡¨E"0ßÆÉÉý¢/g3½_5{²k/j§ßµ¦R}êñ¿ýã¿Z²†ç2Y¥jýU@ÏM6#ºg2YÕüÀõxØhÖ·@­_u¡¢g¢¾] - AÄo.`®“ û/‰ëÄ«g:O¡t–¥â$R/‰mB¯ö(±,ٌ,¿«iH:¤º(uŠu<†Ó×Ñç2qêC;{~biqaÎsWâ±»îÒ˒£ƒŸefñ_TüŶ³gmכÝm«XiOÆÖÜÂÂü¼¼yäْˆyÉZþ¼ - 2‹ˆ`¬†f “UnðÜËdՈãrÄsûÇvíVÇå - TÚé‹ - ƒ©T$-ûºØìù€˜‹È®C¨)Ùê+«@±<ÚáÁ¥¸»­!Å=‰DÂõu!äý&¹ˆ*Ôk - ¡1/—?±bE2¦ûèjgn¹N¸ú€}ÑQ>9öޒXy - ËYwIßÔÙÉÛ=úã}£œYœÄ7‹ä˟v¬Ö´-cMcË+V›và›BN,³‹ïa1,äOQñsX±![ - õ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/C/figures/pluma-icon.png -Copyright: Ö¶¶âèá4µ_Žä‡¯BD69ƒœÈ"qI/jÖ]]Ï¡­m-A€,ːe78ŽDZpËn†cY?WÞ - $x^øXºÛ­`ßóÏ&£ï¹¸Ù˜þÆ¢²ºwû5;Ѳº'NœÀk¯¾ - “‚ný´Ø b{¿R^C - ·t½Ý¼Ëíª•D ˲èê¼ - ¾¥*µŸ¡%íY9+g¥‚ü·‰Œx - Äq,2Š™™|tò¤iUQB(F$: - Ô"A„ ˆ - ݥՇ€¢ - ígT̆e!ÿbžçÐÓ½¡,q;ÂeÉ먝]ž{á5‡G,€„7ÛvÌRˆq¨6*R}<–Óì  -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/id.gmo -Copyright: AQÃ,#=a@uǶ~ œ "² <Õ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/synctex/synctex.plugin.desktop.in.in -Copyright: 2010, José Aliste - Aliste -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/fr/fr.po -Copyright: Mauchin , 2006-2008. " - phane Raimbault , 2007. " - rard Baylard , 2010" -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/gl/gl.po -Copyright: Rivero Castillo , 2020 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/gl.po -Copyright: Rivero Castillo , 2020 - YEAR MATE Desktop Environment team -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/smartspaces/smartspaces.plugin.desktop.in.in -Copyright: 2006, Steve Frécinaux - cinaux -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/pt_BR/pt_BR.po -Copyright: Teodoro Moreira , 2020 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/pt.gmo -Copyright: Vieira , 2021 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ca@valencia.po -Copyright: YEAR MATE Desktop Environment team - s , 2021 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/pt_BR.gmo -Copyright: a paleta, na forma de uma lista de nomes de cores separada por caracteres de dois pontos (:). Os nomes de cores devem estar em formato hexadecimal. Exemplo: "#FF00FF"Aparência do cursorSe deve ser mantido um número ilimitado de linhas anterioresSe o cursor deve piscarRolar até a última linha ao pressionar uma teclaSe a campainha do terminal será silenciadaUsar as cores do tema no widget de terminalSe a fonte padrão do sistema deve ser usada -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ga.gmo -Copyright: amhshocraithe chúlra an teirminéilDath réamhshocraithe téacs sa teirminéalClóTeirminéalCuma an chúrsóra -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/bracketcompletion/bracketcompletion.plugin.desktop.in.in -Copyright: cinaux - cinaux -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/AUTHORS -Copyright: cinaux -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/pluma-plugins.doap -Copyright: cinaux -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/fr/codecomment.page -Copyright: commenter un bloc de code. -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/es_CL/es_CL.po -Copyright: ditos de los traductores" -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/oc/oc.po -Copyright: dric Valmary " -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/oc.gmo -Copyright: dric Valmary , 2021 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/fr.gmo -Copyright: es par l'utilisateur).Nombre de lignes à - es pour les boîtes de texte seront employées pour le terminal (à - faut de l'arrière-plan du terminalCouleur par défaut du texte dans le terminalTerminal IntégréPoliceSi vrai, presser une touche fait défiler le terminal jusqu'en bas.Si vrai, les lignes pour le défilement sont toujours conservées. Comme l'historique de défilement est stocké temporairement sur le disque, il se pourrait que le système se retrouve à - moire pour le défilementPalette pour les applications texteTerminalLe terminal a une palette de 16 couleurs que les applications texte peuvent utiliser. Cette palette est représentée par une liste de couleurs (en valeurs hexadécimales comme « - parées par des deux-points ":".Apparence du curseurIndique si un nombre illimité de lignes doit être gardé en mémoire pour le défilementIndique si le curseur doit clignoterIndique s'il faut se rendre en bas du terminal lors de l'appui sur une toucheIndique s'il faut rendre le terminal silencieuxIndique s'il faut utiliser les couleurs du thème pour le terminalIndique s'il faut utiliser la police système -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/Makevars -Copyright: for their translations to this person -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/sk.gmo -Copyright: ho miesta, ak bude terminál produkovaÅ¥ veľa výstupu.Ak je táto možnosÅ¥ vybraná, pre terminál sa použije farebná schéma témy pre textové polia namiesto farieb zadaných používateľom.Počet riadkov uchovávanej históriePaleta pre programy v termináliTerminálTerminály používajú 16-farebnú paletu, ktorú môžu použiÅ¥ programy v termináli. Toto je tá paleta, zadaná ako dvojbodkami oddelený zoznam mien farieb. Farby by mali byÅ¥ v hexadecimálnom formáte, napr. „#FF00FF“Vzhľad kurzoraUrčuje, či sa má uchovaÅ¥ neobmedzený počet riadkov v uchovávanej históriiUrčuje, či má kurzor blikaÅ¥Určuje, či sa má posunúť dolu pri stlačení klávesuUrčuje, či má byÅ¥ terminálový zvonček potichuUrčuje, či použiÅ¥ farby z témy pre prvok termináluUrčuje, či používaÅ¥ systémové písmo -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ar/ar.po -Copyright: http:www.arabeyes.org : " -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/fr/bookmarks.page -Copyright: ment référencés avec des signets. -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ca@valencia.gmo -Copyright: mer una tecla es desplaça al final.Si s'estableix a cert, les línies de desplaçament no es descartaran mai. L'historial dels desplaçaments s'emmagatzema temporalment al disc, de manera que això pot provocar que el sistema es quede sense espai al disc, si hi ha molta eixida al terminal.Si s'estableix a cert, l'esquema de colors del tema que s'utilitza per als quadres d'entrada de text s'utilitzarà - s aquesta paleta, en forma d'una llista de noms de colors separats per dos punts. Els colors han d'estar en format hexadecimal, p. ex. «#FF00FF».L'aparença del cursorSi s'ha de mantindre un nombre de línies il·limitat en el desplaçamentSi el cursor ha de parpellejarSi s'ha de desplaçar al final quan es prem una teclaSi se silencia l'avís sonor del terminalSi s'han d'utilitzar els colors del tema per al giny del terminalSi s'ha d'utilitzar el tipus de lletra del sistema -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/wa.gmo -Copyright: metowe coleur di fond pol terminÃ¥Prémetowe coleur pol tecse do terminÃ¥FonteSi metou, tchôkî so ene tape fwait aler l' - taire li xhuflet do terminÃ¥Est çk' -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/gl/bookmarks.page -Copyright: n pode desprazarse cara arriba ou abaixo entre os marcadores, o que fai que a navegación por documentos sexa un pouco máis rápida.

-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/gl/terminal.page -Copyright: n, pode premer CtrlF9.

-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/es/bookmarks.page -Copyright: ndolas más fáciles de encontrar. También puede moverse hacia arriba o hacia abajo entre los marcadores, haciendo que la navegación del documento sea un poco más rápida.

-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-table.png -Copyright: p8Œã8T*,Ûƶ,lËÆr®òáá!‹‹3µš™ðÜlÛI躀iÖB€×{ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/hu.gmo -Copyright: r alapértelmezett színeA terminál szövegének alapértelmezett színeBetűkészletHa be van állítva, gombnyomásra a gördítősáv aljára ugrik.Ha igazra van állítva, akkor a visszagörgetési sorok soha nem lesznek eldobva. A visszagörgetési előzmények ideiglenesen a lemezen lesznek tárolva, így emiatt a rendszeren elfogyhat a szabad hely, ha túl sok a kimenet a terminálon.Ha be van állítva, a téma szövegbeviteli dobozokra használt színsémáját használja a terminálra a felhasználó által megadottak helyett.A visszagörgetendő sorok számaPaletta a terminálalkalmazásokhozTerminálA terminálnak van egy 16 színű palettája, amit az alkalmazások a terminálon belül használhatnak. Ez az a paletta, színnevek vesszővel elválasztott listája formájában. A színnevek hexa alakban kell legyenek, például „#FF00FF”A kurzor megjelenéseVégtelen számú sor tárolása a visszagörgetéshezVillogjon-e a kurzorBillentyűleütésre görgessen-e a terminál aljáraElnémítsa-e a terminálcsengőtHasználja-e a terminálelem témájának színeitHasználja-e a rendszer betűkészletet -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/nb/bookmarks.page -Copyright: r til linja der bokmerket skal settes inn eller fjernes.

-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/fr/terminal.page -Copyright: rieur. -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ca@valencia/ca@valencia.po -Copyright: s , 2020 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/es_CO/es_CO.po -Copyright: s Borrero" -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/fr/legal-plugins.xml -Copyright: sous la license Creative Commons Attribution-ShareAlike 3.0 Unported. Pour visionner une copie de cette license, visitez http:creativecommons.org/licenses/by-sa/3.0/ ou envoyez un courrier à -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ast.gmo -Copyright: u quede ensin espaciu en casu d'esistir una gran cantidá de llinies na terminal.Si ye «true» (braero), l'esquema de color del tema usáu pa les caxes d'entrada de testu usarase pa la terminal, n'arróu de los colores conseñaos pol usuariu.Cantidá de llinies a caltener nel desplazamientuPaleta pa les aplicaciones de la terminalTerminalLes terminales tienen una paleta de 16 colores que les aplicaciones de terminal puen usar. Ésta ye esa paleta na forma de una llista de nomes de colores separtada por comes. Los colores tienen de tar en formatu hexadecimal, por exemplu: «#FF00FF»L'aspeutu del cursorDefine si tien de caltener un númberu illimitáu de llinies nel desplazamientu hacia atrás.Conseña si'l cursor tien de parpaguiarConseña si tien de desplazase hasta'l final cuando se calca una teclaConseña si tien de desactivase la campana de la terminal.Conseña si hai d'usar los colores del tema pa los controles de la terminalConseña si tien d'usase la fonte del sistema. -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/gl.gmo -Copyright: verdadeiro, ao premer unha tecla a barra de desprazamento vai ata o final.Se é verdadeiro, nunca se desbotarán as liñas de desprazamento cara atrás. O historial de desprazamento cara atrás almacénase temporalmente no disco, polo que isto pode causar que o seu sistema quede sen espazo de disco se hai moita saída na terminal.Se é verdadeiro, o esquema de cores do tema usado para as caixas de texto será empregado para o terminal, en vez das cores proporcionadas polo usuario.Número de liñas que se manteñen no desprazamentoPaleta para as aplicacións do terminalTerminalOs terminais teñen unha paleta de 16 cores que poden usar as aplicacións que se executen dentro del. Esta é esa paleta, na forma dunha lista de cores separadas por dous puntos. Os nomes de cores deben ter formato hexadecimal, por exemplo: «#FF00FF»Aparencia do cursorIndica se se debe manter un número de liñas non limitado no desprazamentoIndica se o cursor pestanexaIndica se se despraza ao final ao premer unha teclaIndica se se silencia a campá do terminalIndica se se usan as cores do tema no trebello do terminalIndica se se usa o tipo de letra do sistema -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/es/es.po -Copyright: vez , 2020 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/pa.gmo -Copyright: € ਜਾਵੇਗੀ ਜੇ ਸਹੀਂ ਹੋਇਆ ਤਾਂ ਸਕਰੋਲਬੈਕ ਲਾਈਨ ਨੂੰ ਕਦੇ ਵੀ ਠ- €à¨‚ ਕੀਤਾ ਜਾ ਸਕੇਗਾ। ਸਕਰੋਲਬੈਕ ਠ- €à¨¤ ਨੂੰ ਆਰਜ਼ੀ ਤੌਰ ਉੱਤੇ ਡਿਸਕ ਉੱਤੇ ਸੰਭਾਲਿਆ ਜਾਂਦਾ ਹੈ, ਇਸਕਰਕੇ ਇਹ ਸਿਸਟਮ ਉੱਤੇ ਥਾਂ ਖਤਮ ਹੋਣ ਦਾ ਕਾਰਨ ਬਣ ਸਕਦਾ ਹੈ, ਜੇ ਟਰਮੀਨਲ ਵਿੱਚ ਬਹੁਤ ਆਉਟਪੁੱਟ ਮਿਲੇ।ਜੇਕਰ ਇਹ ਸਹੀ ਹੈ ਤਾਂ, ਥੀਮ ਰੰਗ ਸਕੀਮ, ਜੋ ਕਿ ਟੈਕਸਟ ਐਂਟਰੀ ਡੱਬਿਆਂ ਲਈ ਵਰਤੀ ਜਾ ਰਹੀ ਸੀ, ਨੂੰ ਟਰਮੀਨਲ ਲਈ ਵਰਤਿਆ ਜਾਵੇਗਾ, ਯੂਜ਼ਰ ਦੇ ਚੁਣੇ ਰੰਗਾਂ ਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਾਵੇਗਾ।ਸਕਰੋਲਬੈਕ ਵਿੱਚ ਰੱਖਣ ਲਈ ਲਾਇਨਾਂ ਦੀ ਗਿਣਤੀਟਰਮੀਨਲ ਕਾਰਜਾਂ ਲਈ ਰੰਗ-ਪੱਟੀਟਰਮੀਨਲਟਰਮੀਨਲ ਕੋਲ 16-ਰੰਗ ਰੰਗ-ਪੱਟੀ ਹੈ, ਜੋ ਕਿ ਇਸ ਠ- à©±à¨•à¨®à¨¾à¨°à¨•à¨Ÿà¨°à¨®à©€à¨¨à¨² ਬੈਕਗਰਾਊਂਡ ਲਈ ਡਿਫਾਲਟ ਰੰਗਟਰਮੀਨਲ ਵਿੱਚ ਟੈਕਸਟ ਲਈ ਡਿਫਾਲਟ ਰੰਗਫੋਂਟਜੇ ਸੱਚ ਹੈ ਤਾਂ, ਇੱਕ ਕੀ ਦਬਾਉਣ ਨਾਲ ਸਕਰੋਲ-ਪੱਟੀ ਹੇਠ- °à¨¤ ਲਾਈਨਾਂ ਦੀ ਗਿਣਤੀ ਰੱਖਣੀ ਹੈਕੀ ਕਰਸਰ ਝਪਕਦੀ ਰੱਖਣੀ ਹੈਕੀ ਇੱਕ ਸਵਿੱਚ ਦਬਾਉਣ ਨਾਲ ਹੇਠ- °à¨¦à¨°à¨²à©‡ ਕਾਰਜ ਵਰਤ ਸਕਦੇ ਹਨ। ਇਹ ਉਹ ਰੰਗ-ਪੱਟੀ ਹੈ, ਰੰਗਾਂ ਦੇ ਨਾਂ ਸੂਚੀ ਵਿੱਚ ਕਾਲਨ ਨਾਲ ਵੱਖਰੇ ਕੀਤੇ ਗਏ ਹਨਰੰਗ ਦਾ ਨਾਂ ਹੈਕਸਾ ਫਾਰਮੈਟ ਵਿੱਚ ਜਿਵੇ ਕਿ "#FF00FF" ਹੋਣੇ ਚਾਹੀਦੇ ਹਨ।ਕਰਸਰ ਦਿੱਖਕੀ ਸਕਰੋਲਬੈਕ ਵਿੱਚ ਬੇਠ- ±à¨ - ±à¨² ਜਾਣਾ ਹੈਕੀ ਟਰਮੀਨਲ ਘੰਟੀ ਨੂੰ ਖਾਮੋਸ਼ ਰੱਖਣਾ ਹੈਕੀ ਟਰਮੀਨਲ ਵਿਦਜੈੱਟ ਲਈ ਸਰੂਪ ਤੋਂ ਰੰਗ ਵਰਤਣੇ ਹਨਕੀ ਸਿਸਟਮ ਫੋਂਟ ਵਰਤਣੇ ਹਨ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/pa/pa.po -Copyright: €à¨¤ ਸਿੰਘ ਆਲਮਵਾਲਾ ੨੦੦੪-੨੦੧੦ " - °à¨œà¨¾à¨¬à©€ ਓਪਨ ਸੋਰਸ ਟੀਮ (POST) " - °à¨¦à¨° ਸਿੰਘ ਫੂਲੇਵਾਲਾ ੨੦੦੪ " -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/pa/bookmarks.page -Copyright: à©±à¨•à¨®à¨¾à¨°à¨• -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-namespace.png -Copyright: þTïÏíқã·ÇéÜ;¤„ð„Ð}! mcºx¼ƒ±ÇkJ•Ëf6rÙ̘ÑzúÇæÏ'ûz,ìËV€%_¤Sçâ - Æû Erâîƒ‡ê¿ ¥"­EfqñW]_YY©FZ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-struct.png -Copyright: „có#Ÿ u7Õ - «¡vJN·–Ƹu]Ž é¼ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/plugins/sourcecodebrowser/sourcecodebrowser/icons/source-variable.png -Copyright: ûOÝîÚÚv(»ÏÔ'çK` -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/zh_TW/zh_TW.po -Copyright: Ÿ" -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/zh_TW/terminal.page -Copyright: Ÿ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ko.gmo -Copyright: ´ í - ´, 키를 눌ë - 니다.ìŠ¤í¬ë¡¤í• - 니다.참이면, 스크롤이 넘어간 줄을 계속 ê¸°ì–µí•˜ê³ - 니다.터미널터미널 프로그램에서는 터미널의 16색 팔ë - 니다. 그러므로 터미널의 출ë - 니다. 예를 들어 "#FF00FF"커서 ëª¨ì–‘ìƒˆìŠ¤í¬ë¡¤í• - 된 색 í - 여부 - 여부시스í - 이 많으면 이 기능 때문에 디스크 빈 공간을 모두 ì‚¬ìš©í• - 합니다. 사용자가 지ì -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/zh_CN.gmo -Copyright: ºé—´è€—尽。如果为真,终端就会使用文本输å -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/mn/mn.po -Copyright: Ð»Ð¼Ð°Ð½Ð´Ð°Ñ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/kk.gmo -Copyright: менге дейін айналдыру керек пеТерминал виджеті үшін тема түстерін қолдану керек пеЖүйелік қаріпті қолдану керек пе - менге өтеді.True болса, кері айналдыру жолдары ешқашан тасталмайды. Кері айналдыру Ñ‚Ð°Ñ€Ð¸Ñ - п шығыс бар болса, онда диск орны бітіп қалуы мүмкін.Айналдыру Ñ‚Ð°Ñ€Ð¸Ñ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/mn.gmo -Copyright: нгөТерминалын бичгийн стандарт өнгөШрифтХэрэв үнэн бол ямар нэг товч Ð´Ð°Ñ€Ð°Ñ - рийн тооТерминал програмын нийлүүрТерминалТүүчээ Ð°Ð½Ð¸Ð²Ñ‡Ð¸Ñ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/uk.gmo -Copyright: онайменший розмір словаКількість рядків у буфері гортанняПалітра для Ñ‚ÐµÑ€Ð¼Ñ–Ð½Ð°Ð»ÑŒÐ½Ð¸Ñ - онайменший розмір слова для заповнення.Перемикнути закладкуПеремикнути стан закладок поточного рядкаР-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ky.gmo -Copyright: п каттарАрипТерминалКурсордун көрүнүшү -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ky/bookmarks.page -Copyright: п каттар -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/hy/hy.po -Copyright: արգմանչի երախտիք" -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ur.gmo -Copyright: ا طے شُدہ رنگفونٹٹر٠- ا طے شُدہ رنگٹر٠- ا فونٹ استع٠- رسر کی ظاہری شکلکیا کرسر کو جھپکایا جائےکیا نظا٠- یا جائے - ے لیے پلیٹٹر٠- ے پس Ù -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/fa.gmo -Copyright: ار رفته برای جعبه‌های ورود Ù - اربر، ت٠- ان‌ن٠- بزند یا نهاین که هنگا٠- تخته‌رنگ Û±Û¶ رنگی دارند که برنا٠- نند. این ه٠- ه از قل٠- ه با نقطه‌ویرگول از ه٠- ه به شکلی فهرستی از نا٠- ه در حافظه‌ی لغزش نگهداری شودتخته‌رنگ برنا٠- ه Ù - کلید تا ته صفحه پایین بلغزد یا نهاین که زنگ پایانه ساکت شود یا نهاین که رنگ‌های ت٠- کلید نوار لغزش را به ته صفحه Ù -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ps.gmo -Copyright: نښېد پايالي شاليد تلواله رنګپه پايالي کې د ليکنې تلواله رنګليکبڼهد پايالو کاريالونو لپاره رنګدبلیپايالیکه چېرې ځری پړکول پکار ويکه چېرې غونډال ليکبڼه کارول پکار وي -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ps/bookmarks.page -Copyright: نښې -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ur_PK/ur_PK.po -Copyright: وڈر لینکس فور٠- ی " -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ur/ur.po -Copyright: وڈر لینکس فور٠- ی " - ی کا بلاگ " -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/th.gmo -Copyright: รถ้าเลือก การกดปุ่มใดปุ่มหนึ่งจะเลื่อนแถบเลื่อนไปท้ายสุดถ้าเลือก บรรทัดต่างๆ ที่รักษาไว้สำหรับการเลื่อนจอกลับจะไม่มีการลบทิ้งเลย ประวัติการเลื่อนกลับจะถูกเก็บไว้ในดิสก์ชั่วคราว ดังนั้น การเปิดตัวเลือกนี้อาจทำให้ดิสก์เต็มได้ ถ้ามีข้อความออกทางเทอร์มินัลจำนวนมากถ้าเลือก รายการชุดรูปแบบสีที่ใช้สำหรับกล่องป้อนข้อความจะใช้สำหรับเทอร์มินัลด้วย โดยจะแทนที่สีต่างๆ ที่ผู้ใช้กำหนดไว้จำนวนบรรทัดที่รักษาไว้สำหรับการเลื่อนกลับจานสีสำหรับโปรแกรมเทอร์มินัลเทอร์มินัลเทอร์มินัลมีจานสีชนิด 16 สี ซึ่งเทอร์มินัลสามารถใช้โปรแกรมภ- าบรรทัดสำหรับการเลื่อนกลับอย่างไม่มีขีดจำกัดหรือไม่กะพริบเคอร์เซอร์หรือไม่เลื่อนไปตำแหน่งล่างสุดเมื่อกดปุ่มใดปุ่มหนึ่งหรือไม่ปิดเสียงออดเตือนเทอร์มินัลหรือไม่ใช้สีจากชุดตกแต่งสำหรับ widget เทอร์มินัลหรือไม่ใช้แบบอักษรระบบหรือไม่ -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/dz.gmo -Copyright: ་སྒྲིག་ དཔེར་ན་"#FF00FF"ནང་འ-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/po/ja.gmo -Copyright: ã†ã‹ã‚«ãƒ¼ã‚½ãƒ«ã‚’ç‚¹æ» - うかキーが押されたら下までスクロールするかどうか端末ベルを消すかどうか端末ウィジェットに対してテーマ色を使用するかどうかシステム- ルト色端末のテキストのデフォルト色フォントTRUE にすると、キーå - ントを使用するかどうか単語補完 - ーマットにしてくだ-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ja/wordcompletion.page -Copyright: されたキーワードに基づいて表示されます。

- グインを選択します。

- グインは、既にå - グインを使用すると、å - グインを有効にします。

- グインを有効にするには -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ja/legal-plugins.xml -Copyright: はクリエイティブ・コモンズ 表示 - 継承 3.0 非移植ライセンスの下で利用許諾されています。このライセンスの写しを表示するにはhttp:creativecommons.org/licenses/by-sa/3.0/にアクセスするか、または Creative Commons,444Castro Street,Sui te900,Mountain View,California,94041,USA へç -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ja/ja.po -Copyright: グイン" -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ja/bracketcompletion.page -Copyright: グインへ移動します。

- グインは、HTML または XML の終了タグを自動的に挿å - グインは、中括弧、丸括弧、および角括弧等の閉じ括弧を自動的に補完します。

- グインを有効にします。

- グインを有効にするには -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ja/index.page -Copyright: グイン - グインを利用すると、Pluma の操作方法をユーザー向けにカスタマイズできます。 -License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ja/codecomment.page -Copyright: グインを使用すると、コードコメントを簡単にすばやく作成または削除できます。このプラグインを有効にするには、編集設定プラグインコードコメントを選択します。

- ム-License: UNKNOWN - FIXME - -Files: src/pluma-plugins-1.26.0/help/ja/bookmarks.page -Copyright: グインを有効にするには、編集設定プラグインブックマークを選択します。

- ム-License: UNKNOWN - FIXME - diff --git a/user/polkit/fix-parallel-make.patch b/user/polkit/fix-parallel-make.patch deleted file mode 100644 index b693a34dd..000000000 --- a/user/polkit/fix-parallel-make.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 7bd30764a5230684c7c979a08a83dfa6e327f719 Mon Sep 17 00:00:00 2001 -From: Ryan Lortie -Date: Tue, 13 Nov 2012 16:50:14 +0000 -Subject: build: Fix .gir generation for parallel make - -As per the intructions in the introspection Makefile, we should have a -line declaring a dependency between the .gir and .la files. - -https://bugs.freedesktop.org/show_bug.cgi?id=57077 - -Signed-off-by: David Zeuthen ---- -diff --git a/src/polkit/Makefile.am b/src/polkit/Makefile.am -index 39d6d84..d648d29 100644 ---- a/src/polkit/Makefile.am -+++ b/src/polkit/Makefile.am -@@ -106,6 +106,8 @@ if HAVE_INTROSPECTION - - INTROSPECTION_GIRS = Polkit-1.0.gir - -+Polkit-1.0.gir: libpolkit-gobject-1.la -+ - girdir = $(INTROSPECTION_GIRDIR) - gir_DATA = Polkit-1.0.gir - -diff --git a/src/polkitagent/Makefile.am b/src/polkitagent/Makefile.am -index 1cfb73c..5b7d4c7 100644 ---- a/src/polkitagent/Makefile.am -+++ b/src/polkitagent/Makefile.am -@@ -108,6 +108,8 @@ if HAVE_INTROSPECTION - girdir = $(INTROSPECTION_GIRDIR) - gir_DATA = PolkitAgent-1.0.gir - -+PolkitAgent-1.0.gir: libpolkit-agent-1.la -+ - typelibsdir = $(INTROSPECTION_TYPELIBDIR) - typelibs_DATA = PolkitAgent-1.0.typelib - --- -cgit v0.9.0.2-2-gbebe diff --git a/user/prosody/luasec-0.6-fix.patch b/user/prosody/luasec-0.6-fix.patch deleted file mode 100644 index c8e37d091..000000000 --- a/user/prosody/luasec-0.6-fix.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/util/dependencies.lua b/util/dependencies.lua -index 4d50cf6..9ea211d 100644 ---- a/util/dependencies.lua -+++ b/util/dependencies.lua -@@ -99,6 +99,9 @@ function check_dependencies() - ["luarocks"] = "luarocks install luasec"; - ["Source"] = "http://www.inf.puc-rio.br/~brunoos/luasec/"; - }, "SSL/TLS support will not be available"); -+ elseif not _G.ssl then -+ _G.ssl = ssl; -+ _G.ssl.context = require "ssl.context"; - end - - local encodings, err = softreq "util.encodings" diff --git a/user/prosody/mallinfo.patch b/user/prosody/mallinfo.patch deleted file mode 100644 index 4f9247c9b..000000000 --- a/user/prosody/mallinfo.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/util-src/pposix.c b/util-src/pposix.c -index e70a9d7..b9729ab 100644 ---- a/util-src/pposix.c -+++ b/util-src/pposix.c -@@ -52,7 +52,7 @@ - #include - #endif - --#if !defined(WITHOUT_MALLINFO) && defined(__linux__) -+#ifdef __GLIBC__ - #include - #define WITH_MALLINFO - #endif diff --git a/user/prosody/prosodyctl.patch b/user/prosody/prosodyctl.patch deleted file mode 100644 index 18333dd52..000000000 --- a/user/prosody/prosodyctl.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- prosody-0.9.10.q/prosodyctl -+++ prosody-0.9.10/prosodyctl -@@ -244,7 +244,7 @@ - local modulemanager = require "core.modulemanager" - - local prosodyctl = require "util.prosodyctl" --require "socket" -+local socket = require "socket" - ----------------------- - - -- FIXME: Duplicate code waiting for util.startup diff --git a/user/qt5-qtdeclarative/broken-bgra-be.patch b/user/qt5-qtdeclarative/broken-bgra-be.patch deleted file mode 100644 index 68cd17d77..000000000 --- a/user/qt5-qtdeclarative/broken-bgra-be.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- qtdeclarative-opensource-src-5.9.3/src/quick/scenegraph/util/qsgatlastexture.cpp.old 2017-11-17 12:15:09.000000000 -0600 -+++ qtdeclarative-opensource-src-5.9.3/src/quick/scenegraph/util/qsgatlastexture.cpp 2018-07-02 21:00:34.620000000 -0500 -@@ -147,6 +147,8 @@ - && (deviceName->compare(QLatin1String("samsung SM-T211"), Qt::CaseInsensitive) == 0 - || deviceName->compare(QLatin1String("samsung SM-T210"), Qt::CaseInsensitive) == 0 - || deviceName->compare(QLatin1String("samsung SM-T215"), Qt::CaseInsensitive) == 0); -+#elif Q_BYTE_ORDER == Q_BIG_ENDIAN -+ static bool wrongfullyReportsBgra8888Support = true; - #else - static bool wrongfullyReportsBgra8888Support = false; - // The Raspberry Pi (both 1 and 2) GPU refuses framebuffers with BGRA color attachments. diff --git a/user/qt5-qtwebkit/new-bison.patch b/user/qt5-qtwebkit/new-bison.patch deleted file mode 100644 index 57855f12e..000000000 --- a/user/qt5-qtwebkit/new-bison.patch +++ /dev/null @@ -1,18 +0,0 @@ ---- a/Source/WebCore/css/makegrammar.pl 2020-04-14 00:51:51.000000000 +0200 -+++ b/Source/WebCore/css/makegrammar.pl 2020-10-25 14:59:39.879927464 +0100 -@@ -73,7 +73,6 @@ - } - - my $fileBase = File::Spec->join($outputDir, $filename); --my @bisonCommand = ($bison, "-d", "-p", $symbolsPrefix, $grammarFilePath, "-o", "$fileBase.cpp"); -+my @bisonCommand = ($bison, "--no-lines", "--defines=$fileBase.cpp.h", "-p", $symbolsPrefix, $grammarFilePath, "--output=$fileBase.cpp"); --push @bisonCommand, "--no-lines" if $^O eq "MSWin32"; # Work around bug in bison >= 3.0 on Windows where it puts backslashes into #line directives. - system(@bisonCommand) == 0 or die; - -@@ -91,6 +91,5 @@ - print HEADER "#endif\n"; - close HEADER; - --unlink("$fileBase.cpp.h"); - unlink("$fileBase.hpp"); - diff --git a/user/quassel/unterminated-mIRC-codes.patch b/user/quassel/unterminated-mIRC-codes.patch deleted file mode 100644 index 8cedeb461..000000000 --- a/user/quassel/unterminated-mIRC-codes.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 391cdf6c2595060ff3b2adb54f5b2fc8ebd7cc04 Mon Sep 17 00:00:00 2001 -From: "A. Wilcox" -Date: Mon, 3 Jun 2019 00:16:30 -0500 -Subject: [PATCH] multilineedit: handle unterminated mIRC codes - -Currently, if an unterminated mIRC code is pasted into Quassel, trying to -go through input line history will cause a deadlock. This breaks the loop -at the cost of possibly mangling the formatting of the line somewhat. -This is seen as more acceptable than locking up, and the line is invalid -anyway. - -Reproducer: - -```sh -printf '\00303,08HONK' | xclip -selection clipboard -``` - -Paste into Quassel, send, press Up arrow key. ---- - src/uisupport/multilineedit.cpp | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/src/uisupport/multilineedit.cpp b/src/uisupport/multilineedit.cpp -index 133a2433..b13834c5 100644 ---- a/src/uisupport/multilineedit.cpp -+++ b/src/uisupport/multilineedit.cpp -@@ -645,6 +645,10 @@ QString MultiLineEdit::convertMircCodesToHtml(const QString &text) - } - - posRight = text.indexOf(mircCode.cap(), posRight + 1); -+ if (posRight == -1) { -+ words << text.mid(posLeft); -+ break; // unclosed color code; can't process -+ } - words << text.mid(posLeft, posRight + 1 - posLeft); - posLeft = posRight + 1; - } --- -2.21.0 - diff --git a/user/ruby-diff-lcs/gemspec.patch b/user/ruby-diff-lcs/gemspec.patch deleted file mode 100644 index 9c0b69ecd..000000000 --- a/user/ruby-diff-lcs/gemspec.patch +++ /dev/null @@ -1,16 +0,0 @@ ---- a/rspec-core.gemspec -+++ b/rspec-core.gemspec -@@ -13,11 +13,10 @@ - s.summary = "rspec-core-#{RSpec::Core::Version::STRING}" - s.description = "BDD for Ruby. RSpec runner and example groups." - -- s.files = `git ls-files -- lib/*`.split("\n") -- s.files += %w[README.md LICENSE.md Changelog.md .yardopts .document] -+ s.files = Dir['lib/**/*'] - s.test_files = [] - s.bindir = 'exe' -- s.executables = `git ls-files -- exe/*`.split("\n").map{ |f| File.basename(f) } -+ s.executables = Dir['exe/*'].map{ |f| File.basename(f) } - s.rdoc_options = ["--charset=UTF-8"] - s.require_path = "lib" - diff --git a/user/thunderbird/stab.h b/user/thunderbird/stab.h deleted file mode 100644 index 6f70af398..000000000 --- a/user/thunderbird/stab.h +++ /dev/null @@ -1,71 +0,0 @@ -/* $OpenBSD: stab.h,v 1.3 2003/06/02 19:34:12 millert Exp $ */ -/* $NetBSD: stab.h,v 1.4 1994/10/26 00:56:25 cgd Exp $ */ - -/*- - * Copyright (c) 1991 The Regents of the University of California. - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in the - * documentation and/or other materials provided with the distribution. - * 3. Neither the name of the University nor the names of its contributors - * may be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - * - * @(#)stab.h 5.2 (Berkeley) 4/4/91 - */ - -#ifndef _STAB_H_ -#define _STAB_H_ - -/* - * The following are symbols used by various debuggers and by the Pascal - * compiler. Each of them must have one (or more) of the bits defined by - * the N_STAB mask set. - */ - -#define N_GSYM 0x20 /* global symbol */ -#define N_FNAME 0x22 /* F77 function name */ -#define N_FUN 0x24 /* procedure name */ -#define N_STSYM 0x26 /* data segment variable */ -#define N_LCSYM 0x28 /* bss segment variable */ -#define N_MAIN 0x2a /* main function name */ -#define N_PC 0x30 /* global Pascal symbol */ -#define N_RSYM 0x40 /* register variable */ -#define N_SLINE 0x44 /* text segment line number */ -#define N_DSLINE 0x46 /* data segment line number */ -#define N_BSLINE 0x48 /* bss segment line number */ -#define N_SSYM 0x60 /* structure/union element */ -#define N_SO 0x64 /* main source file name */ -#define N_LSYM 0x80 /* stack variable */ -#define N_BINCL 0x82 /* include file beginning */ -#define N_SOL 0x84 /* included source file name */ -#define N_PSYM 0xa0 /* parameter variable */ -#define N_EINCL 0xa2 /* include file end */ -#define N_ENTRY 0xa4 /* alternate entry point */ -#define N_LBRAC 0xc0 /* left bracket */ -#define N_EXCL 0xc2 /* deleted include file */ -#define N_RBRAC 0xe0 /* right bracket */ -#define N_BCOMM 0xe2 /* begin common */ -#define N_ECOMM 0xe4 /* end common */ -#define N_ECOML 0xe8 /* end common (local name) */ -#define N_LENG 0xfe /* length of preceding entry */ - -#endif /* !_STAB_H_ */ diff --git a/user/tinyfugue/0001-Add-DESTDIR-support.patch b/user/tinyfugue/0001-Add-DESTDIR-support.patch deleted file mode 100644 index 5495a82f2..000000000 --- a/user/tinyfugue/0001-Add-DESTDIR-support.patch +++ /dev/null @@ -1,143 +0,0 @@ ---- tinyfugue-5.1.0/unix/unix.mak -+++ tinyfugue-5.1.0.new/unix/unix.mak -@@ -81,62 +81,71 @@ - -test -z "$(STRIP)" || $(STRIP) tf$(X) || true - - PREFIXDIRS: -- test -d "$(bindir)" || mkdir $(bindir) -- test -d "$(datadir)" || mkdir $(datadir) - - install_TF $(TF): tf$(X) $(BUILDERS) -- -@rm -f $(TF) -- cp tf$(X) $(TF) -- chmod $(MODE) $(TF) -+ install -Dm755 tf${X} ${DESTDIR}${bindir}/tf - - SYMLINK $(SYMLINK): $(TF) -- test -z "$(SYMLINK)" || { rm -f $(SYMLINK) && ln -s $(TF) $(SYMLINK); } - - LIBRARY $(TF_LIBDIR): ../lib/tf/tf-help ../lib/tf/tf-help.idx -- @echo '## Creating library directory...' --# @# Overly simplified shell commands, to avoid problems on ultrix -- -@test -n "$(TF_LIBDIR)" || echo "TF_LIBDIR is undefined." -- test -n "$(TF_LIBDIR)" -- test -d "$(TF_LIBDIR)" || mkdir $(TF_LIBDIR) -- -@test -d "$(TF_LIBDIR)" || echo "Can't make $(TF_LIBDIR) directory. See if" -- -@test -d "$(TF_LIBDIR)" || echo "there is already a file with that name." -- test -d "$(TF_LIBDIR)" --# --# @#rm -f $(TF_LIBDIR)/*; # wrong: this would remove local.tf, etc. -- @echo '## Copying library files...' -- cd ../lib/tf; \ -- for f in *; do test -f $$f && files="$$files $$f"; done; \ -- ( cd $(TF_LIBDIR); rm -f $$files tf.help tf.help.index; ); \ -- cp $$files $(TF_LIBDIR); \ -- cd ../../lib/py; \ -- for f in *; do test -f $$f && pyfiles="$$pyfiles $$f"; done; \ -- ( cd $(TF_LIBDIR); rm -f $$pyfiles tf.help tf.help.index; ); \ -- cp $$pyfiles $(TF_LIBDIR); \ -- cd $(TF_LIBDIR); \ -- chmod $(MODE) $$files; chmod ugo-wx $$files ;\ -- chmod $(MODE) $$pyfiles; chmod ugo-wx $$pyfiles -- -rm -f $(TF_LIBDIR)/CHANGES -- cp ../CHANGES $(TF_LIBDIR) -- chmod $(MODE) $(TF_LIBDIR)/CHANGES; chmod ugo-wx $(TF_LIBDIR)/CHANGES -- chmod $(MODE) $(TF_LIBDIR) -- -@cd $(TF_LIBDIR); old=`ls replace.tf 2>/dev/null`; \ -- if [ -n "$$old" ]; then \ -- echo "## WARNING: Obsolete files found in $(TF_LIBDIR): $$old"; \ -- fi -- @echo '## Creating links so old library names still work...' --# @# note: ln -sf isn't portable. -- @cd $(TF_LIBDIR); \ -- rm -f bind-bash.tf; ln -s kb-bash.tf bind-bash.tf; \ -- rm -f bind-emacs.tf; ln -s kb-emacs.tf bind-emacs.tf; \ -- rm -f completion.tf; ln -s complete.tf completion.tf; \ -- rm -f factorial.tf; ln -s factoral.tf factorial.tf; \ -- rm -f file-xfer.tf; ln -s filexfer.tf file-xfer.tf; \ -- rm -f local.tf.sample; ln -s local-eg.tf local.tf.sample; \ -- rm -f pref-shell.tf; ln -s psh.tf pref-shell.tf; \ -- rm -f space_page.tf; ln -s spc-page.tf space_page.tf; \ -- rm -f speedwalk.tf; ln -s spedwalk.tf speedwalk.tf; \ -- rm -f stack_queue.tf; ln -s stack-q.tf stack_queue.tf; \ -- rm -f worldqueue.tf; ln -s world-q.tf worldqueue.tf; -+ install -Dm644 ../lib/tf/lisp.tf ${DESTDIR}${datadir}/tf-lib/lisp.tf -+ install -Dm644 ../lib/tf/hanoi.tf ${DESTDIR}${datadir}/tf-lib/hanoi.tf -+ install -Dm644 ../lib/tf/spell.tf ${DESTDIR}${datadir}/tf-lib/spell.tf -+ install -Dm644 ../lib/tf/spedwalk.tf ${DESTDIR}${datadir}/tf-lib/spedwalk.tf -+ install -Dm644 ../lib/tf/kb-emacs.tf ${DESTDIR}${datadir}/tf-lib/kb-emacs.tf -+ install -Dm644 ../lib/tf/tf-help.idx ${DESTDIR}${datadir}/tf-lib/tf-help.idx -+ install -Dm644 ../lib/tf/tools.tf ${DESTDIR}${datadir}/tf-lib/tools.tf -+ install -Dm644 ../lib/tf/watch.tf ${DESTDIR}${datadir}/tf-lib/watch.tf -+ install -Dm644 ../lib/tf/kb_badterm.tf ${DESTDIR}${datadir}/tf-lib/kb_badterm.tf -+ install -Dm644 ../lib/tf/world-q.tf ${DESTDIR}${datadir}/tf-lib/world-q.tf -+ install -Dm644 ../lib/tf/changes.tf ${DESTDIR}${datadir}/tf-lib/changes.tf -+ install -Dm644 ../lib/tf/stack-q.tf ${DESTDIR}${datadir}/tf-lib/stack-q.tf -+ install -Dm644 ../lib/tf/factoral.tf ${DESTDIR}${datadir}/tf-lib/factoral.tf -+ install -Dm644 ../lib/tf/cylon.tf ${DESTDIR}${datadir}/tf-lib/cylon.tf -+ install -Dm644 ../lib/tf/quoter.tf ${DESTDIR}${datadir}/tf-lib/quoter.tf -+ install -Dm644 ../lib/tf/psh.tf ${DESTDIR}${datadir}/tf-lib/psh.tf -+ install -Dm644 ../lib/tf/textutil.tf ${DESTDIR}${datadir}/tf-lib/textutil.tf -+ install -Dm644 ../lib/tf/finger.tf ${DESTDIR}${datadir}/tf-lib/finger.tf -+ install -Dm644 ../lib/tf/savehist.tf ${DESTDIR}${datadir}/tf-lib/savehist.tf -+ install -Dm644 ../lib/tf/textencode.tf ${DESTDIR}${datadir}/tf-lib/textencode.tf -+ install -Dm644 ../lib/tf/spc-page.tf ${DESTDIR}${datadir}/tf-lib/spc-page.tf -+ install -Dm644 ../lib/tf/teraterm.keyboard.cnf ${DESTDIR}${datadir}/tf-lib/teraterm.keyboard.cnf -+ install -Dm644 ../lib/tf/testcolor.tf ${DESTDIR}${datadir}/tf-lib/testcolor.tf -+ install -Dm644 ../lib/tf/tintin.tf ${DESTDIR}${datadir}/tf-lib/tintin.tf -+ install -Dm644 ../lib/tf/grep.tf ${DESTDIR}${datadir}/tf-lib/grep.tf -+ install -Dm644 ../lib/tf/tfrc ${DESTDIR}${datadir}/tf-lib/tfrc -+ install -Dm644 ../lib/tf/rwho.tf ${DESTDIR}${datadir}/tf-lib/rwho.tf -+ install -Dm644 ../lib/tf/alias.tf ${DESTDIR}${datadir}/tf-lib/alias.tf -+ install -Dm644 ../lib/tf/kbbind.tf ${DESTDIR}${datadir}/tf-lib/kbbind.tf -+ install -Dm644 ../lib/tf/complete.tf ${DESTDIR}${datadir}/tf-lib/complete.tf -+ install -Dm644 ../lib/tf/kbregion.tf ${DESTDIR}${datadir}/tf-lib/kbregion.tf -+ install -Dm644 ../lib/tf/color.tf ${DESTDIR}${datadir}/tf-lib/color.tf -+ install -Dm644 ../lib/tf/kb-bash.tf ${DESTDIR}${datadir}/tf-lib/kb-bash.tf -+ install -Dm644 ../lib/tf/kbstack.tf ${DESTDIR}${datadir}/tf-lib/kbstack.tf -+ install -Dm644 ../lib/tf/filexfer.tf ${DESTDIR}${datadir}/tf-lib/filexfer.tf -+ install -Dm644 ../lib/tf/activity_status.tf ${DESTDIR}${datadir}/tf-lib/activity_status.tf -+ install -Dm644 ../lib/tf/tfstatus.tf ${DESTDIR}${datadir}/tf-lib/tfstatus.tf -+ install -Dm644 ../lib/tf/relog.tf ${DESTDIR}${datadir}/tf-lib/relog.tf -+ install -Dm644 ../lib/tf/local-eg.tf ${DESTDIR}${datadir}/tf-lib/local-eg.tf -+ install -Dm644 ../lib/tf/stdlib.tf ${DESTDIR}${datadir}/tf-lib/stdlib.tf -+ install -Dm644 ../lib/tf/at.tf ${DESTDIR}${datadir}/tf-lib/at.tf -+ install -Dm644 ../lib/tf/tick.tf ${DESTDIR}${datadir}/tf-lib/tick.tf -+ install -Dm644 ../lib/tf/kb-os2.tf ${DESTDIR}${datadir}/tf-lib/kb-os2.tf -+ install -Dm644 ../lib/tf/kbfunc.tf ${DESTDIR}${datadir}/tf-lib/kbfunc.tf -+ install -Dm644 ../lib/tf/pcmd.tf ${DESTDIR}${datadir}/tf-lib/pcmd.tf -+ install -Dm644 ../lib/tf/map.tf ${DESTDIR}${datadir}/tf-lib/map.tf -+ install -Dm644 ../lib/tf/activity_status2.tf ${DESTDIR}${datadir}/tf-lib/activity_status2.tf -+ install -Dm644 ../lib/tf/kb-old.tf ${DESTDIR}${datadir}/tf-lib/kb-old.tf -+ install -Dm644 ../lib/tf/tr.tf ${DESTDIR}${datadir}/tf-lib/tr.tf -+ install -Dm644 ../CHANGES ${DESTDIR}${datadir}/tf-lib/CHANGES -+ install -Dm644 ../README.md ${DESTDIR}${datadir}/tf-lib/README -+ install -Dm644 ../lib/tf/examples.old ${DESTDIR}${datadir}/tf-lib/examples.old -+ install -Dm644 ../lib/py/config.py ${DESTDIR}${datadir}/tf-lib/config.py -+ install -Dm644 ../lib/py/diffedit.py ${DESTDIR}${datadir}/tf-lib/diffedit.py -+ install -Dm644 ../lib/py/tf.py ${DESTDIR}${datadir}/tf-lib/tf.py -+ install -Dm644 ../lib/py/tf4.py ${DESTDIR}${datadir}/tf-lib/tf4.py -+ install -Dm644 ../lib/py/tfutil.py ${DESTDIR}${datadir}/tf-lib/tfutil.py -+ install -Dm644 ../lib/py/urlwatch.py ${DESTDIR}${datadir}/tf-lib/urlwatch.py - - makehelp: makehelp.c - $(CC) $(CFLAGS) -o makehelp makehelp.c ---- tinyfugue-5.1.0/unix/vars.mak.in -+++ tinyfugue-5.1.0.new/unix/vars.mak.in -@@ -12,11 +12,11 @@ - - # @configure_input@ - --prefix = ${DESTDIR}@prefix@ --exec_prefix= ${DESTDIR}@exec_prefix@ --bindir = ${DESTDIR}@bindir@ --datadir = ${DESTDIR}@datadir@ --mandir = ${DESTDIR}@mandir@ -+prefix = @prefix@ -+exec_prefix= @exec_prefix@ -+bindir = @bindir@ -+datadir = @datadir@ -+mandir = @mandir@ - - TFVERSION = @TFVERSION@ - X = @EXEEXT@ diff --git a/user/tinyfugue/0003-Minor-man-page-fixes.patch b/user/tinyfugue/0003-Minor-man-page-fixes.patch deleted file mode 100644 index 9611744a5..000000000 --- a/user/tinyfugue/0003-Minor-man-page-fixes.patch +++ /dev/null @@ -1,112 +0,0 @@ -From: Russ Allbery -Date: Sun, 17 Feb 2008 22:17:59 -0800 -Subject: Minor man page fixes - -Escape hyphens properly, add a better man page header, fix the -placement of punctuation around font changes, and fix a spelling -error. ---- - src/tf.1.nroffman | 34 +++++++++++++++++----------------- - 1 file changed, 17 insertions(+), 17 deletions(-) - -diff --git a/src/tf.1.nroffman b/src/tf.1.nroffman -index e8daaca..90691db 100644 ---- a/src/tf.1.nroffman -+++ b/src/tf.1.nroffman -@@ -1,11 +1,11 @@ - .\" $Id: tf.1.nroffman,v 34000.8 2007/01/13 23:12:39 kkeys Exp $ --.TH TF 1 LOCAL -+.TH TF 1 "2007-01-13" "TinyFugue 5.0" "TinyFugue" - .SH NAME - tf \- TinyFugue, a MUD client - .SH SYNOPSIS --.B "tf [-f\fIfile\fB] [-lnq] [\fIworld\fB]" -+.B "tf [\-f\fIfile\fB] [\-lnq] [\fIworld\fB]" - .br --.B "tf [-f\fIfile\fB] \fIhost\fB \fIport\fB" -+.B "tf [\-f\fIfile\fB] \fIhost\fB \fIport\fB" - .SH DESCRIPTION - \fITinyFugue\fR (also known as "Fugue" or "TF") is a line-based client - designed for connecting to MUD servers (note: LP, DIKU, and other servers -@@ -48,15 +48,15 @@ world and try to connect to it. - The \fBhost\fR may be an IP number or regular name format. - .PP - OPTIONS --.IP "-f\fIfile\fR" -+.IP "\-f\fIfile\fR" - Load \fIfile\fR instead of $HOME/.tfrc at startup. --.IP "-f" -+.IP "\-f" - Do not load any personal configuration file. The library will still be loaded. --.IP "-l" -+.IP "\-l" - Disable automatic login. --.IP "-n" -+.IP "\-n" - Do not connect to any world at startup. --.IP "-q" -+.IP "\-q" - Quiet login (overrides %{quiet} flag). - - .SH FEATURES -@@ -109,7 +109,7 @@ Log a session to a file. - .sp - Separate LP and Diku style prompts from normal output. - .sp --Page output using a --More-- prompt. -+Page output using a \-\-More\-\- prompt. - .sp - Recall previously received text. - -@@ -120,14 +120,14 @@ configuration file "stdlib.tf", located in TFLIBDIR. - TFLIBDIR is defined when \fITF\fR is installed, and is often - /usr/local/lib/tf.lib, or under the home directory of the installer. - This library contains many macros --and definitions essential to the correct operation of \fITF.\fR -+and definitions essential to the correct operation of \fITF\fR. - - Next, \fITF\fR will attempt to read your personal configuration - file, $HOME/.tfrc, in which you can put any \fITF\fR commands you - want executed automatically at startup. Two of the most useful - commands to use in a \fITF\fR configuration file are /addworld and /load. - --For backward compatability, \fITF\fR will also try -+For backward compatibility, \fITF\fR will also try - to read the \fITinyTalk\fR configuration file. - Its name defautls to $HOME/.tinytalk, or can be defined by the TINYTALK - environment variable. -@@ -140,19 +140,19 @@ the first Tinyclient with any great number of features, including - hiliting and suppression of text, simple triggers, and separating input and - output on the screen. - Leo Plotkin (Grod) made rather extensive modifications to \fITinytalk\fR --to produce \fITinywar,\fR which was plagued with some -+to produce \fITinywar\fR, which was plagued with some - serious bugs and was never officially released (the phrase "Tinywar - doesn't exist" is often quoted), and is now an unsupported client. - \fITF\fR began when Greg Hudson (Explorer_Bob) merged many of the new --features of \fITinywar\fR back into \fITinyTalk,\fR -+features of \fITinywar\fR back into \fITinyTalk\fR, - and added many new features of his own, most notably the split screen. - Some of the code in Greg's releases was contributed by Leo Plotkin. --After Greg moved on to \fIVaporTalk,\fR Ken Keys (Hawkeye) took over design -+After Greg moved on to \fIVaporTalk\fR, Ken Keys (Hawkeye) took over design - and maintenance of \fITF\fR in July 1991, and continues to make improvements - in features and performance. - .PP - The code size of \fITF\fR has surpassed 300K (unstripped), --and is signifigantly larger than \fITinytalk.\fR -+and is signifigantly larger than \fITinytalk\fR. - It is, in fact, more than three times the size of a number of existing servers. - As of version 3.0, it has 66 builtin commands and 57 library commands, - each documented in the helpfile. -@@ -225,8 +225,8 @@ default macro library. - .PP - The .tinytalk file may not be supported in the future; use .tfrc instead. - .PP --The '-' command line option in versions prior to 2.0 is no longer supported, --and has been replaced with '-l'. -+The '\-' command line option in versions prior to 2.0 is no longer supported, -+and has been replaced with '\-l'. - - .SH BUGS - .PP diff --git a/user/tinyfugue/0006-Fix-library-install-path.patch b/user/tinyfugue/0006-Fix-library-install-path.patch deleted file mode 100644 index c43b3873e..000000000 --- a/user/tinyfugue/0006-Fix-library-install-path.patch +++ /dev/null @@ -1,38 +0,0 @@ -From: Russ Allbery -Date: Sun, 14 Aug 2016 14:14:47 -0700 -Subject: Fix library install path - -The upstream top-level configure script doesn't correctly handle ---program-suffix without this tweak. ---- - configure.ac | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/configure.ac b/configure.ac -index e783564..c938531 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -599,13 +599,13 @@ fi - dnl The "right" way of using program_transform_name, program_prefix, and - dnl program_suffix expects you to use AC_ARG_PROGRAM here and do transformation - dnl in the Makefile, but we want the values now, so we do it ourselves. --EXENAME="tf" -+EXENAME="tf" PROGNAME="tf" - test "${program_prefix}" != "NONE" && EXENAME="${program_prefix}${EXENAME}" - test "${program_suffix}" != "NONE" && EXENAME="${EXENAME}${program_suffix}" - if test "${program_transform_name}" != "NONE"; then - EXENAME=`echo "${EXENAME}" | sed "${program_transform_name}"` - fi --LIBNAME="${EXENAME}-lib" -+LIBNAME="${PROGNAME}-lib" - - if test "$enable_symlink" = "no"; then - SYMLINK="" -@@ -616,6 +616,7 @@ else - fi - - AC_SUBST(EXENAME) -+AC_SUBST(PROGNAME) - AC_SUBST(LIBNAME) - AC_SUBST(SYMLINK) - diff --git a/user/tinyfugue/0007-Fix-spelling-errors.patch b/user/tinyfugue/0007-Fix-spelling-errors.patch deleted file mode 100644 index 8e78721b7..000000000 --- a/user/tinyfugue/0007-Fix-spelling-errors.patch +++ /dev/null @@ -1,59 +0,0 @@ -From: Russ Allbery -Date: Sun, 14 Aug 2016 14:22:52 -0700 -Subject: Fix spelling errors - -occured -> occurred everywhere ---- - CHANGES | 4 ++-- - src/command.c | 2 +- - src/signals.c | 2 +- - 3 files changed, 4 insertions(+), 4 deletions(-) - -diff --git a/CHANGES b/CHANGES -index 037c766..dfc5029 100644 ---- a/CHANGES -+++ b/CHANGES -@@ -316,7 +316,7 @@ Renamed BACKGROUND hook to BGTRIG (but old name still works). - Added BGTEXT hook. - Fixed activity_status.tf to update for lines generated by /echo -w. - Fixed: ACTIVITY and PREACTIVITY hooks didn't run in the world in which the -- activity occured when caused by /echo -w. -+ activity occurred when caused by /echo -w. - Fixed order of /dc message relative to text already queued on socket. - Fixed: under certain conditions, a dead socket would not go away and could - not be foregrounded. -@@ -972,7 +972,7 @@ Fixed compilation error involving conditional and hstrerror under some - lame compilers (socket.c:788). - Fixed output misdirection during a read() inside a command sub. - Fixed rare bug causing command line to execute in wrong world when a -- simultaneous background trigger occured. -+ simultaneous background trigger occurred. - Fixed /world with no arguments. - Fixed fatal input bug after /histsize -i. (35a21) - Fixed bug which disabled history recording after /recall on an empty history. -diff --git a/src/command.c b/src/command.c -index 0409787..624d03b 100644 ---- a/src/command.c -+++ b/src/command.c -@@ -605,7 +605,7 @@ int do_file_load(const char *args, int tinytalk) - !user_result->u.ival && !warned) - { - eprintf("(This line was implicitly treated as an /addworld " -- "because it occured before the first '/' line and did not " -+ "because it occurred before the first '/' line and did not " - "start with a '/', ';', or '#'.)"); - warned = 1; - } -diff --git a/src/signals.c b/src/signals.c -index bd96b87..a00c70e 100644 ---- a/src/signals.c -+++ b/src/signals.c -@@ -410,7 +410,7 @@ static char initial_dir[PATH_MAX+1] = "."; /* default: many users never chdir */ - static void coremsg(FILE *dumpfile) - { - fputs("Also describe what you were doing in tf when this\r\n", stderr); -- fputs("occured, and whether you can repeat it.\r\n\n", stderr); -+ fputs("occurred, and whether you can repeat it.\r\n\n", stderr); - fprintf(dumpfile, "> %.512s\r\n", version); - if (*sysname) fprintf(dumpfile, "> %.256s\r\n", sysname); - fprintf(dumpfile, "> %.256s\r\n", featurestr->data); diff --git a/user/upower/daemon-fix-get_critical_action.patch b/user/upower/daemon-fix-get_critical_action.patch deleted file mode 100644 index 6afe9b7a9..000000000 --- a/user/upower/daemon-fix-get_critical_action.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 28cee8e2845b094488c337c4ecfa84ada0b6be60 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Tue, 23 Feb 2016 09:51:07 +0100 -Subject: daemon: fix get_critical_action() - -Fix copy&paste error from e7e9156f that called the wrong _complete_ function -for up_daemon_get_critical_action(). - -https://bugs.freedesktop.org/show_bug.cgi?id=94262 - -diff --git a/src/up-daemon.c b/src/up-daemon.c -index be14cbe..e95f904 100644 ---- a/src/up-daemon.c -+++ b/src/up-daemon.c -@@ -435,8 +435,8 @@ up_daemon_get_critical_action (UpExportedDaemon *skeleton, - GDBusMethodInvocation *invocation, - UpDaemon *daemon) - { -- up_exported_daemon_complete_get_display_device (skeleton, invocation, -- up_backend_get_critical_action (daemon->priv->backend)); -+ up_exported_daemon_complete_get_critical_action (skeleton, invocation, -+ up_backend_get_critical_action (daemon->priv->backend)); - return TRUE; - } - --- -cgit v0.10.2 - diff --git a/user/upower/lib-add-propererror-and-cancellable-handling-to-UpClient.patch b/user/upower/lib-add-propererror-and-cancellable-handling-to-UpClient.patch deleted file mode 100644 index 47e2f4799..000000000 --- a/user/upower/lib-add-propererror-and-cancellable-handling-to-UpClient.patch +++ /dev/null @@ -1,184 +0,0 @@ -From 932a6a39e35754be571e1274aec4730fd42dba13 Mon Sep 17 00:00:00 2001 -From: Martin Pitt -Date: Wed, 18 May 2016 09:22:43 +0200 -Subject: lib: Add proper error and cancellable handling to UpClient - constructor - -A GObject's _init() should never fail or block, but this is currently the case -as up_client_init() connects to upowerd on D-Bus. Convert this to the GInitable -interface and provide a new constructor up_client_new_full() which accepts a -GCancellable and GError, so that clients can do proper error handling -and reporting. - -This changes up_client_new() to return NULL when connecting to upowerd fails. -This provides a more well-defined behaviour in this case as clients can check -for this and our methods stop segfaulting as they have checks like - - g_return_val_if_fail (UP_IS_CLIENT (client), ...) - -Previously we returned a valid object, but trying to call any method on it -segfaulted due to the NULL D-Bus proxy, so client code had no chance to check -whether the UpClient object was really valid. - -https://bugs.freedesktop.org/show_bug.cgi?id=95350 - -diff --git a/libupower-glib/up-client.c b/libupower-glib/up-client.c -index 5b2218f..adc0b9b 100644 ---- a/libupower-glib/up-client.c -+++ b/libupower-glib/up-client.c -@@ -39,9 +39,10 @@ - #include "up-daemon-generated.h" - #include "up-device.h" - --static void up_client_class_init (UpClientClass *klass); --static void up_client_init (UpClient *client); --static void up_client_finalize (GObject *object); -+static void up_client_class_init (UpClientClass *klass); -+static void up_client_initable_iface_init (GInitableIface *iface); -+static void up_client_init (UpClient *client); -+static void up_client_finalize (GObject *object); - - #define UP_CLIENT_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), UP_TYPE_CLIENT, UpClientPrivate)) - -@@ -73,7 +74,8 @@ enum { - static guint signals [UP_CLIENT_LAST_SIGNAL] = { 0 }; - static gpointer up_client_object = NULL; - --G_DEFINE_TYPE (UpClient, up_client, G_TYPE_OBJECT) -+G_DEFINE_TYPE_WITH_CODE (UpClient, up_client, G_TYPE_OBJECT, -+ G_IMPLEMENT_INTERFACE(G_TYPE_INITABLE, up_client_initable_iface_init)) - - /** - * up_client_get_devices: -@@ -434,11 +436,10 @@ up_client_class_init (UpClientClass *klass) - * up_client_init: - * @client: This class instance - */ --static void --up_client_init (UpClient *client) -+static gboolean -+up_client_initable_init (GInitable *initable, GCancellable *cancellable, GError **error) - { -- GError *error = NULL; -- -+ UpClient *client = UP_CLIENT (initable); - client->priv = UP_CLIENT_GET_PRIVATE (client); - - /* connect to main interface */ -@@ -446,13 +447,10 @@ up_client_init (UpClient *client) - G_DBUS_PROXY_FLAGS_NONE, - "org.freedesktop.UPower", - "/org/freedesktop/UPower", -- NULL, -- &error); -- if (client->priv->proxy == NULL) { -- g_warning ("Couldn't connect to proxy: %s", error->message); -- g_error_free (error); -- return; -- } -+ cancellable, -+ error); -+ if (client->priv->proxy == NULL) -+ return FALSE; - - /* all callbacks */ - g_signal_connect (client->priv->proxy, "device-added", -@@ -461,6 +459,23 @@ up_client_init (UpClient *client) - G_CALLBACK (up_device_removed_cb), client); - g_signal_connect (client->priv->proxy, "notify", - G_CALLBACK (up_client_notify_cb), client); -+ -+ return TRUE; -+} -+ -+static void -+up_client_initable_iface_init (GInitableIface *iface) -+{ -+ iface->init = up_client_initable_init; -+} -+ -+/* -+ * up_client_init: -+ * @client: This class instance -+ */ -+static void -+up_client_init (UpClient *client) -+{ - } - - /* -@@ -482,23 +497,52 @@ up_client_finalize (GObject *object) - } - - /** -- * up_client_new: -+ * up_client_new_full: -+ * @cancellable: (allow-none): A #GCancellable or %NULL. -+ * @error: Return location for error or %NULL. - * -- * Creates a new #UpClient object. -+ * Creates a new #UpClient object. If connecting to upowerd on D-Bus fails, -+ % this returns %NULL and sets @error. - * -- * Return value: a new UpClient object. -+ * Return value: a new UpClient object, or %NULL on failure. - * -- * Since: 0.9.0 -+ * Since: 0.99.5 - **/ - UpClient * --up_client_new (void) -+up_client_new_full (GCancellable *cancellable, GError **error) - { - if (up_client_object != NULL) { - g_object_ref (up_client_object); - } else { -- up_client_object = g_object_new (UP_TYPE_CLIENT, NULL); -- g_object_add_weak_pointer (up_client_object, &up_client_object); -+ up_client_object = g_initable_new (UP_TYPE_CLIENT, cancellable, error, NULL); -+ if (up_client_object) -+ g_object_add_weak_pointer (up_client_object, &up_client_object); - } - return UP_CLIENT (up_client_object); - } - -+/** -+ * up_client_new: -+ * -+ * Creates a new #UpClient object. If connecting to upowerd on D-Bus fails, -+ * this returns %NULL and prints out a warning with the error message. -+ * Consider using up_client_new_full() instead which allows you to handle errors -+ * and cancelling long operations yourself. -+ * -+ * Return value: a new UpClient object, or %NULL on failure. -+ * -+ * Since: 0.9.0 -+ **/ -+UpClient * -+up_client_new (void) -+{ -+ GError *error = NULL; -+ UpClient *client; -+ client = up_client_new_full (NULL, &error); -+ if (client == NULL) { -+ g_warning ("Couldn't connect to proxy: %s", error->message); -+ g_error_free (error); -+ } -+ return client; -+} -+ -diff --git a/libupower-glib/up-client.h b/libupower-glib/up-client.h -index 79c2d9e..5b9af3c 100644 ---- a/libupower-glib/up-client.h -+++ b/libupower-glib/up-client.h -@@ -72,6 +72,7 @@ typedef struct - /* general */ - GType up_client_get_type (void); - UpClient *up_client_new (void); -+UpClient *up_client_new_full (GCancellable *cancellable, GError **error); - - /* sync versions */ - UpDevice * up_client_get_display_device (UpClient *client); --- -cgit v0.10.2 - diff --git a/user/valgrind/uclibc.patch b/user/valgrind/uclibc.patch deleted file mode 100644 index 69281ab2c..000000000 --- a/user/valgrind/uclibc.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- ./coregrind/vg_preloaded.c.orig -+++ ./coregrind/vg_preloaded.c -@@ -42,6 +42,7 @@ - originates from Valgrind. - ------------------------------------------------------------------ */ - -+#include - #include "pub_core_basics.h" - #include "pub_core_clreq.h" - #include "pub_core_debuginfo.h" // Needed for pub_core_redir.h diff --git a/user/xorg-server/20-modules.conf b/user/xorg-server/20-modules.conf deleted file mode 100644 index 4ddcdd461..000000000 --- a/user/xorg-server/20-modules.conf +++ /dev/null @@ -1,18 +0,0 @@ -Section "Module" - Load "exa" -# Load "wfb" - - Load "dri" - Load "dri2" - Load "glx" - - Load "int10" - Load "vbe" - Load "fb" - Load "shadowfb" - Load "shadow" - Load "vgahw" - Load "evdev" - Load "fbdevhw" - Load "glamoregl" -EndSection -- cgit v1.2.3-70-g09d2