Browse Source

remove landed patchees

Bill Gianopoulos 3 years ago
parent
commit
7b34166797

+ 0 - 439
bug1240930-253/mozilla/1443208-1only-62a1.patch

@@ -1,439 +0,0 @@
-# HG changeset patch
-# User Nick Alexander <nalexander@mozilla.com>
-# Date 1520553846 28800
-# Node ID fe70510127c52b9ac8c1c9287ffc9c7148c414aa
-# Parent  0db6e65892e98f6fb98579b75d87b44beb65c936
-Bug 1443208 - Pre: Add force flag to GENERATED_FILES. r=ted.mielczarek
-
-The forces on the system are such that I really need to be able to
-FORCE a few RecursiveMake targets in order to make Android and Gradle
-use GENERATED_FILES and LOCALIZED_GENERATED_FILES.  Over time, I hope
-to avoid FORCE, but that time is not now.
-
-MozReview-Commit-ID: 453FpnihSRK
-
-diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
---- a/python/mozbuild/mozbuild/backend/recursivemake.py
-+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
-@@ -573,31 +573,38 @@ class RecursiveMakeBackend(CommonBackend
-                     # Android localized resources have special Makefile
-                     # handling.
-                     backend_file.write('%s:: %s\n' % (tier, first_output))
-             for output in outputs:
-                 if output != first_output:
-                     backend_file.write('%s: %s ;\n' % (output, first_output))
-                 backend_file.write('GARBAGE += %s\n' % output)
-             backend_file.write('EXTRA_MDDEPEND_FILES += %s\n' % dep_file)
-+
-+            force = ''
-+            if obj.force:
-+                force = ' FORCE'
-+            elif obj.localized:
-+                force = ' $(if $(IS_LANGUAGE_REPACK),FORCE)'
-+
-             if obj.script:
--                backend_file.write("""{output}: {script}{inputs}{backend}{repack_force}
-+                backend_file.write("""{output}: {script}{inputs}{backend}{force}
- \t$(REPORT_BUILD)
- \t$(call py_action,file_generate,{locale}{script} {method} {output} $(MDDEPDIR)/{dep_file}{inputs}{flags})
- 
- """.format(output=first_output,
-            dep_file=dep_file,
-            inputs=' ' + ' '.join(inputs) if inputs else '',
-            flags=' ' + ' '.join(shell_quote(f) for f in obj.flags) if obj.flags else '',
-            backend=' backend.mk' if obj.flags else '',
-            # Locale repacks repack multiple locales from a single configured objdir,
-            # so standard mtime dependencies won't work properly when the build is re-run
-            # with a different locale as input. IS_LANGUAGE_REPACK will reliably be set
-            # in this situation, so simply force the generation to run in that case.
--           repack_force=' $(if $(IS_LANGUAGE_REPACK),FORCE)' if obj.localized else '',
-+           force=force,
-            locale='--locale=$(AB_CD) ' if obj.localized else '',
-            script=obj.script,
-            method=obj.method))
- 
-         elif isinstance(obj, JARManifest):
-             self._no_skip['libs'].add(backend_file.relobjdir)
-             backend_file.write('JAR_MANIFEST := %s\n' % obj.path.full_path)
- 
-diff --git a/python/mozbuild/mozbuild/frontend/context.py b/python/mozbuild/mozbuild/frontend/context.py
---- a/python/mozbuild/mozbuild/frontend/context.py
-+++ b/python/mozbuild/mozbuild/frontend/context.py
-@@ -926,16 +926,17 @@ BugzillaComponent = TypedNamedTuple('Bug
-                         [('product', unicode), ('component', unicode)])
- SchedulingComponents = ContextDerivedTypedRecord(
-         ('inclusive', TypedList(unicode, StrictOrderingOnAppendList)),
-         ('exclusive', TypedList(unicode, StrictOrderingOnAppendList)))
- 
- GeneratedFilesList = StrictOrderingOnAppendListWithFlagsFactory({
-     'script': unicode,
-     'inputs': list,
-+    'force': bool,
-     'flags': list, })
- 
- 
- class Files(SubContext):
-     """Metadata attached to files.
- 
-     It is common to want to annotate files with metadata, such as which
-     Bugzilla component tracks issues with certain files. This sub-context is
-@@ -1271,18 +1272,18 @@ VARIABLES = {
-         size.
-         """),
- 
-     'GENERATED_FILES': (GeneratedFilesList, list,
-         """Generic generated files.
- 
-         This variable contains a list of files for the build system to
-         generate at export time. The generation method may be declared
--        with optional ``script``, ``inputs`` and ``flags`` attributes on
--        individual entries.
-+        with optional ``script``, ``inputs``, ``flags``, and ``force``
-+        attributes on individual entries.
-         If the optional ``script`` attribute is not present on an entry, it
-         is assumed that rules for generating the file are present in
-         the associated Makefile.in.
- 
-         Example::
- 
-            GENERATED_FILES += ['bar.c', 'baz.c', 'foo.c']
-            bar = GENERATED_FILES['bar.c']
-@@ -1310,16 +1311,21 @@ VARIABLES = {
-           bar = GENERATED_FILES['bar.c']
-           bar.script = 'generate.py:make_bar'
- 
-         The chosen script entry point may optionally return a set of strings,
-         indicating extra files the output depends on.
- 
-         When the ``flags`` attribute is present, the given list of flags is
-         passed as extra arguments following the inputs.
-+
-+        When the ``force`` attribute is present, the file is generated every
-+        build, regardless of whether it is stale.  This is special to the
-+        RecursiveMake backend and intended for special situations only (e.g.,
-+        localization).  Please consult a build peer before using ``force``.
-         """),
- 
-     'DEFINES': (InitializedDefines, dict,
-         """Dictionary of compiler defines to declare.
- 
-         These are passed in to the compiler as ``-Dkey='value'`` for string
-         values, ``-Dkey=value`` for numeric values, or ``-Dkey`` if the
-         value is True. Note that for string values, the outer-level of
-diff --git a/python/mozbuild/mozbuild/frontend/data.py b/python/mozbuild/mozbuild/frontend/data.py
---- a/python/mozbuild/mozbuild/frontend/data.py
-+++ b/python/mozbuild/mozbuild/frontend/data.py
-@@ -1117,26 +1117,29 @@ class GeneratedFile(ContextDerived):
-     __slots__ = (
-         'script',
-         'method',
-         'outputs',
-         'inputs',
-         'flags',
-         'required_for_compile',
-         'localized',
-+        'force',
-     )
- 
--    def __init__(self, context, script, method, outputs, inputs, flags=(), localized=False):
-+    def __init__(self, context, script, method, outputs, inputs,
-+                 flags=(), localized=False, force=False):
-         ContextDerived.__init__(self, context)
-         self.script = script
-         self.method = method
-         self.outputs = outputs if isinstance(outputs, tuple) else (outputs,)
-         self.inputs = inputs
-         self.flags = flags
-         self.localized = localized
-+        self.force = force
- 
-         suffixes = (
-             '.c',
-             '.cpp',
-             '.h',
-             '.inc',
-             '.py',
-             '.rs',
-diff --git a/python/mozbuild/mozbuild/frontend/emitter.py b/python/mozbuild/mozbuild/frontend/emitter.py
---- a/python/mozbuild/mozbuild/frontend/emitter.py
-+++ b/python/mozbuild/mozbuild/frontend/emitter.py
-@@ -1386,17 +1386,17 @@ class TreeMetadataEmitter(LoggingMixin):
-                     if (isinstance(p, SourcePath) and
-                             not os.path.exists(p.full_path)):
-                         raise SandboxValidationError(
-                             'Input for generating %s does not exist: %s'
-                             % (f, p.full_path), context)
-                     inputs.append(p)
- 
-                 yield GeneratedFile(context, script, method, outputs, inputs,
--                                    flags.flags, localized=localized)
-+                                    flags.flags, localized=localized, force=flags.force)
- 
-     def _process_test_manifests(self, context):
-         for prefix, info in 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
- 
-         for flavor in REFTEST_FLAVORS:
-diff --git a/python/mozbuild/mozbuild/test/backend/data/generated-files/foo-data b/python/mozbuild/mozbuild/test/backend/data/generated-files-force/foo-data
-copy from python/mozbuild/mozbuild/test/backend/data/generated-files/foo-data
-copy to python/mozbuild/mozbuild/test/backend/data/generated-files-force/foo-data
-diff --git a/python/mozbuild/mozbuild/test/backend/data/generated-files/generate-bar.py b/python/mozbuild/mozbuild/test/backend/data/generated-files-force/generate-bar.py
-copy from python/mozbuild/mozbuild/test/backend/data/generated-files/generate-bar.py
-copy to python/mozbuild/mozbuild/test/backend/data/generated-files-force/generate-bar.py
-diff --git a/python/mozbuild/mozbuild/test/backend/data/generated-files/generate-foo.py b/python/mozbuild/mozbuild/test/backend/data/generated-files-force/generate-foo.py
-copy from python/mozbuild/mozbuild/test/backend/data/generated-files/generate-foo.py
-copy to python/mozbuild/mozbuild/test/backend/data/generated-files-force/generate-foo.py
-diff --git a/python/mozbuild/mozbuild/test/backend/data/generated-files/moz.build b/python/mozbuild/mozbuild/test/backend/data/generated-files-force/moz.build
-copy from python/mozbuild/mozbuild/test/backend/data/generated-files/moz.build
-copy to python/mozbuild/mozbuild/test/backend/data/generated-files-force/moz.build
---- a/python/mozbuild/mozbuild/test/backend/data/generated-files/moz.build
-+++ b/python/mozbuild/mozbuild/test/backend/data/generated-files-force/moz.build
-@@ -1,12 +1,14 @@
- # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
- # Any copyright is dedicated to the Public Domain.
- # http://creativecommons.org/publicdomain/zero/1.0/
- 
- GENERATED_FILES += [ 'bar.c', 'foo.c', 'quux.c' ]
- 
- bar = GENERATED_FILES['bar.c']
- bar.script = 'generate-bar.py:baz'
-+bar.force = True
- 
- foo = GENERATED_FILES['foo.c']
- foo.script = 'generate-foo.py'
- foo.inputs = ['foo-data']
-+foo.force = False
-diff --git a/python/mozbuild/mozbuild/test/backend/data/localized-generated-files/en-US/localized-input b/python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/en-US/localized-input
-copy from python/mozbuild/mozbuild/test/backend/data/localized-generated-files/en-US/localized-input
-copy to python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/en-US/localized-input
-diff --git a/python/mozbuild/mozbuild/test/backend/data/localized-generated-files/foo-data b/python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/foo-data
-copy from python/mozbuild/mozbuild/test/backend/data/localized-generated-files/foo-data
-copy to python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/foo-data
-diff --git a/python/mozbuild/mozbuild/test/backend/data/localized-generated-files/generate-foo.py b/python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/generate-foo.py
-copy from python/mozbuild/mozbuild/test/backend/data/localized-generated-files/generate-foo.py
-copy to python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/generate-foo.py
-diff --git a/python/mozbuild/mozbuild/test/backend/data/localized-generated-files/moz.build b/python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/moz.build
-copy from python/mozbuild/mozbuild/test/backend/data/localized-generated-files/moz.build
-copy to python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/moz.build
---- a/python/mozbuild/mozbuild/test/backend/data/localized-generated-files/moz.build
-+++ b/python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/moz.build
-@@ -6,10 +6,17 @@ LOCALIZED_GENERATED_FILES += [ 'foo.xyz'
- 
- foo = LOCALIZED_GENERATED_FILES['foo.xyz']
- foo.script = 'generate-foo.py'
- foo.inputs = [
-     'en-US/localized-input',
-     'non-localized-input',
- ]
- 
--# Also check that using it in LOCALIZED_FILES does the right thing.
--LOCALIZED_FILES += [ '!foo.xyz' ]
-+LOCALIZED_GENERATED_FILES += [ 'abc.xyz' ]
-+
-+abc = LOCALIZED_GENERATED_FILES['abc.xyz']
-+abc.script = 'generate-foo.py'
-+abc.inputs = [
-+    'en-US/localized-input',
-+    'non-localized-input',
-+]
-+abc.force = True
-diff --git a/python/mozbuild/mozbuild/test/backend/data/localized-generated-files/non-localized-input b/python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/non-localized-input
-copy from python/mozbuild/mozbuild/test/backend/data/localized-generated-files/non-localized-input
-copy to python/mozbuild/mozbuild/test/backend/data/localized-generated-files-force/non-localized-input
-diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
---- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
-+++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
-@@ -413,16 +413,46 @@ class TestRecursiveMakeBackend(BackendTe
-             'export:: quux.c',
-             'GARBAGE += quux.c',
-             'EXTRA_MDDEPEND_FILES += quux.c.pp',
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-+    def test_generated_files_force(self):
-+        """Ensure GENERATED_FILES with .force is handled properly."""
-+        env = self._consume('generated-files-force', RecursiveMakeBackend)
-+
-+        backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-+        lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
-+
-+        expected = [
-+            'export:: bar.c',
-+            'GARBAGE += bar.c',
-+            'EXTRA_MDDEPEND_FILES += bar.c.pp',
-+            'bar.c: %s/generate-bar.py FORCE' % env.topsrcdir,
-+            '$(REPORT_BUILD)',
-+            '$(call py_action,file_generate,%s/generate-bar.py baz bar.c $(MDDEPDIR)/bar.c.pp)' % env.topsrcdir,
-+            '',
-+            'export:: foo.c',
-+            'GARBAGE += foo.c',
-+            'EXTRA_MDDEPEND_FILES += foo.c.pp',
-+            'foo.c: %s/generate-foo.py $(srcdir)/foo-data' % (env.topsrcdir),
-+            '$(REPORT_BUILD)',
-+            '$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp $(srcdir)/foo-data)' % (env.topsrcdir),
-+            '',
-+            'export:: quux.c',
-+            'GARBAGE += quux.c',
-+            'EXTRA_MDDEPEND_FILES += quux.c.pp',
-+        ]
-+
-+        self.maxDiff = None
-+        self.assertEqual(lines, expected)
-+
-     def test_localized_generated_files(self):
-         """Ensure LOCALIZED_GENERATED_FILES is handled properly."""
-         env = self._consume('localized-generated-files', RecursiveMakeBackend)
- 
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
- 
-         expected = [
-@@ -437,16 +467,43 @@ class TestRecursiveMakeBackend(BackendTe
-             'LOCALIZED_FILES_0_DEST = $(FINAL_TARGET)/',
-             'LOCALIZED_FILES_0_TARGET := libs',
-             'INSTALL_TARGETS += LOCALIZED_FILES_0',
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-+    def test_localized_generated_files_force(self):
-+        """Ensure LOCALIZED_GENERATED_FILES with .force is handled properly."""
-+        env = self._consume('localized-generated-files-force', RecursiveMakeBackend)
-+
-+        backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-+        lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
-+
-+        expected = [
-+            'libs:: foo.xyz',
-+            'GARBAGE += foo.xyz',
-+            'EXTRA_MDDEPEND_FILES += foo.xyz.pp',
-+            'foo.xyz: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-+            '$(REPORT_BUILD)',
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo.xyz $(MDDEPDIR)/foo.xyz.pp $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '',
-+            'libs:: abc.xyz',
-+            'GARBAGE += abc.xyz',
-+            'EXTRA_MDDEPEND_FILES += abc.xyz.pp',
-+            'abc.xyz: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input FORCE' % env.topsrcdir,
-+            '$(REPORT_BUILD)',
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main abc.xyz $(MDDEPDIR)/abc.xyz.pp $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '',
-+        ]
-+
-+        self.maxDiff = None
-+        self.assertEqual(lines, expected)
-+
-     def test_localized_generated_files_AB_CD(self):
-         """Ensure LOCALIZED_GENERATED_FILES is handled properly
-         when {AB_CD} and {AB_rCD} are used."""
-         env = self._consume('localized-generated-files-AB_CD', RecursiveMakeBackend)
- 
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
- 
-diff --git a/python/mozbuild/mozbuild/test/frontend/data/generated-files/moz.build b/python/mozbuild/mozbuild/test/frontend/data/generated-files-force/moz.build
-copy from python/mozbuild/mozbuild/test/frontend/data/generated-files/moz.build
-copy to python/mozbuild/mozbuild/test/frontend/data/generated-files-force/moz.build
---- a/python/mozbuild/mozbuild/test/frontend/data/generated-files/moz.build
-+++ b/python/mozbuild/mozbuild/test/frontend/data/generated-files-force/moz.build
-@@ -1,5 +1,7 @@
- # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
- # Any copyright is dedicated to the Public Domain.
- # http://creativecommons.org/publicdomain/zero/1.0/
- 
- GENERATED_FILES += [ 'bar.c', 'foo.c', ('xpidllex.py', 'xpidlyacc.py'), ]
-+GENERATED_FILES['bar.c'].force = True
-+GENERATED_FILES['foo.c'].force = False
-diff --git a/python/mozbuild/mozbuild/test/frontend/data/localized-generated-files/moz.build b/python/mozbuild/mozbuild/test/frontend/data/localized-generated-files-force/moz.build
-copy from python/mozbuild/mozbuild/test/frontend/data/localized-generated-files/moz.build
-copy to python/mozbuild/mozbuild/test/frontend/data/localized-generated-files-force/moz.build
---- a/python/mozbuild/mozbuild/test/frontend/data/localized-generated-files/moz.build
-+++ b/python/mozbuild/mozbuild/test/frontend/data/localized-generated-files-force/moz.build
-@@ -1,5 +1,6 @@
- # -*- Mode: python; indent-tabs-mode: nil; tab-width: 40 -*-
- # Any copyright is dedicated to the Public Domain.
- # http://creativecommons.org/publicdomain/zero/1.0/
- 
- LOCALIZED_GENERATED_FILES += [ 'abc.ini', ('bar', 'baz') ]
-+LOCALIZED_GENERATED_FILES['abc.ini'].force = True
-diff --git a/python/mozbuild/mozbuild/test/frontend/test_emitter.py b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
---- a/python/mozbuild/mozbuild/test/frontend/test_emitter.py
-+++ b/python/mozbuild/mozbuild/test/frontend/test_emitter.py
-@@ -446,34 +446,43 @@ class TestEmitterBasic(unittest.TestCase
-         maxDiff = self.maxDiff
-         self.maxDiff = None
-         self.assertEqual(passthru.variables,
-                          {'AS': 'yasm',
-                           'AS_DASH_C_FLAG': '',
-                           'ASOUTOPTION': '-o '})
-         self.maxDiff = maxDiff
- 
--
-     def test_generated_files(self):
-         reader = self.reader('generated-files')
-         objs = self.read_topsrcdir(reader)
- 
-         self.assertEqual(len(objs), 3)
-         for o in objs:
-             self.assertIsInstance(o, GeneratedFile)
-             self.assertFalse(o.localized)
-+            self.assertFalse(o.force)
- 
-         expected = ['bar.c', 'foo.c', ('xpidllex.py', 'xpidlyacc.py'), ]
-         for o, f in zip(objs, expected):
-             expected_filename = f if isinstance(f, tuple) else (f,)
-             self.assertEqual(o.outputs, expected_filename)
-             self.assertEqual(o.script, None)
-             self.assertEqual(o.method, None)
-             self.assertEqual(o.inputs, [])
- 
-+    def test_generated_files_force(self):
-+        reader = self.reader('generated-files-force')
-+        objs = self.read_topsrcdir(reader)
-+
-+        self.assertEqual(len(objs), 3)
-+        for o in objs:
-+            self.assertIsInstance(o, GeneratedFile)
-+            self.assertEqual(o.force, 'bar.c' in o.outputs)
-+
-     def test_localized_generated_files(self):
-         reader = self.reader('localized-generated-files')
-         objs = self.read_topsrcdir(reader)
- 
-         self.assertEqual(len(objs), 2)
-         for o in objs:
-             self.assertIsInstance(o, GeneratedFile)
-             self.assertTrue(o.localized)
-@@ -482,16 +491,26 @@ class TestEmitterBasic(unittest.TestCase
-         expected = ['abc.ini', ('bar', 'baz'), ]
-         for o, f in zip(objs, expected):
-             expected_filename = f if isinstance(f, tuple) else (f,)
-             self.assertEqual(o.outputs, expected_filename)
-             self.assertEqual(o.script, None)
-             self.assertEqual(o.method, None)
-             self.assertEqual(o.inputs, [])
- 
-+    def test_localized_generated_files_force(self):
-+        reader = self.reader('localized-generated-files-force')
-+        objs = self.read_topsrcdir(reader)
-+
-+        self.assertEqual(len(objs), 2)
-+        for o in objs:
-+            self.assertIsInstance(o, GeneratedFile)
-+            self.assertTrue(o.localized)
-+            self.assertEqual(o.force, 'abc.ini' in o.outputs)
-+
-     def test_localized_files_from_generated(self):
-         """Test that using LOCALIZED_GENERATED_FILES and then putting the output in
-         LOCALIZED_FILES as an objdir path works.
-         """
-         reader = self.reader('localized-files-from-generated')
-         objs = self.read_topsrcdir(reader)
- 
-         self.assertEqual(len(objs), 2)
-

+ 0 - 143
bug1240930-253/mozilla/1454912-2no1-62a1.patch

@@ -1,143 +0,0 @@
-# HG changeset patch
-# User Mike Shal <mshal@mozilla.com>
-# Date 1525899199 14400
-# Node ID 82c74467f638711b16996f2a0dca28a597f32a0d
-# Parent  4dbe6c1bea4db5f0ae77a3487328c32ec240a5d7
-Bug 1454912 - Only output dependencies for GENERATED_FILES with scripts; r=nalexander
-
-Some GENERATED_FILES entries don't have .scripts associated with them
-(notably midl on Windows builds). In this case, we don't want to
-generate dependencies automatically since they will be handled by the
-Makefiles.
-
-MozReview-Commit-ID: AXmN2Unk9AY
-
-diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
---- a/python/mozbuild/mozbuild/backend/recursivemake.py
-+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
-@@ -562,38 +562,38 @@ class RecursiveMakeBackend(CommonBackend
-                 else:
-                     inputs = [self._pretty_path(f, backend_file) for f in obj.inputs]
-             else:
-                 inputs = []
- 
-             if needs_AB_rCD:
-                 backend_file.write_once('include $(topsrcdir)/config/AB_rCD.mk\n')
- 
--            # If we're doing this during export that means we need it during
--            # compile, but if we have an artifact build we don't run compile,
--            # so we can skip it altogether or let the rule run as the result of
--            # something depending on it.
--            if tier != 'export' or not self.environment.is_artifact_build:
--                if not needs_AB_rCD:
--                    # Android localized resources have special Makefile
--                    # handling.
--                    backend_file.write('%s:: %s\n' % (tier, first_output))
--            for output in outputs:
--                if output != first_output:
--                    backend_file.write('%s: %s ;\n' % (output, first_output))
--                backend_file.write('GARBAGE += %s\n' % output)
--            backend_file.write('EXTRA_MDDEPEND_FILES += %s\n' % dep_file)
--
-             force = ''
-             if obj.force:
-                 force = ' FORCE'
-             elif obj.localized:
-                 force = ' $(if $(IS_LANGUAGE_REPACK),FORCE)'
- 
-             if obj.script:
-+                # If we're doing this during export that means we need it during
-+                # compile, but if we have an artifact build we don't run compile,
-+                # so we can skip it altogether or let the rule run as the result of
-+                # something depending on it.
-+                if tier != 'export' or not self.environment.is_artifact_build:
-+                    if not needs_AB_rCD:
-+                        # Android localized resources have special Makefile
-+                        # handling.
-+                        backend_file.write('%s:: %s\n' % (tier, first_output))
-+                for output in outputs:
-+                    if output != first_output:
-+                        backend_file.write('%s: %s ;\n' % (output, first_output))
-+                    backend_file.write('GARBAGE += %s\n' % output)
-+                backend_file.write('EXTRA_MDDEPEND_FILES += %s\n' % dep_file)
-+
-                 backend_file.write("""{output}: {script}{inputs}{backend}{force}
- \t$(REPORT_BUILD)
- \t$(call py_action,file_generate,{locale}{script} {method} {output} $(MDDEPDIR)/{dep_file}{inputs}{flags})
- 
- """.format(output=first_output,
-            dep_file=dep_file,
-            inputs=' ' + ' '.join(inputs) if inputs else '',
-            flags=' ' + ' '.join(shell_quote(f) for f in obj.flags) if obj.flags else '',
-diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
---- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
-+++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
-@@ -405,19 +405,16 @@ class TestRecursiveMakeBackend(BackendTe
-             '',
-             'export:: foo.c',
-             'GARBAGE += foo.c',
-             'EXTRA_MDDEPEND_FILES += foo.c.pp',
-             'foo.c: %s/generate-foo.py $(srcdir)/foo-data' % (env.topsrcdir),
-             '$(REPORT_BUILD)',
-             '$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp $(srcdir)/foo-data)' % (env.topsrcdir),
-             '',
--            'export:: quux.c',
--            'GARBAGE += quux.c',
--            'EXTRA_MDDEPEND_FILES += quux.c.pp',
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-     def test_generated_files_force(self):
-         """Ensure GENERATED_FILES with .force is handled properly."""
-         env = self._consume('generated-files-force', RecursiveMakeBackend)
-@@ -435,19 +432,16 @@ class TestRecursiveMakeBackend(BackendTe
-             '',
-             'export:: foo.c',
-             'GARBAGE += foo.c',
-             'EXTRA_MDDEPEND_FILES += foo.c.pp',
-             'foo.c: %s/generate-foo.py $(srcdir)/foo-data' % (env.topsrcdir),
-             '$(REPORT_BUILD)',
-             '$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp $(srcdir)/foo-data)' % (env.topsrcdir),
-             '',
--            'export:: quux.c',
--            'GARBAGE += quux.c',
--            'EXTRA_MDDEPEND_FILES += quux.c.pp',
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-     def test_localized_generated_files(self):
-         """Ensure LOCALIZED_GENERATED_FILES is handled properly."""
-         env = self._consume('localized-generated-files', RecursiveMakeBackend)
-@@ -544,28 +538,16 @@ class TestRecursiveMakeBackend(BackendTe
-         self.assertIn('mozilla/mozilla2.h', m)
-         self.assertIn('mozilla/dom/dom2.h', m)
-         self.assertIn('mozilla/dom/dom3.h', m)
-         # EXPORTS files that are also GENERATED_FILES should be handled as
-         # INSTALL_TARGETS.
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
-         expected = [
--            'export:: bar.h',
--            'GARBAGE += bar.h',
--            'EXTRA_MDDEPEND_FILES += bar.h.pp',
--            'export:: mozilla2.h',
--            'GARBAGE += mozilla2.h',
--            'EXTRA_MDDEPEND_FILES += mozilla2.h.pp',
--            'export:: dom2.h',
--            'GARBAGE += dom2.h',
--            'EXTRA_MDDEPEND_FILES += dom2.h.pp',
--            'export:: dom3.h',
--            'GARBAGE += dom3.h',
--            'EXTRA_MDDEPEND_FILES += dom3.h.pp',
-             'dist_include_FILES += bar.h',
-             'dist_include_DEST := $(DEPTH)/dist/include/',
-             'dist_include_TARGET := export',
-             'INSTALL_TARGETS += dist_include',
-             'dist_include_mozilla_FILES += mozilla2.h',
-             'dist_include_mozilla_DEST := $(DEPTH)/dist/include/mozilla',
-             'dist_include_mozilla_TARGET := export',
-             'INSTALL_TARGETS += dist_include_mozilla',

+ 0 - 412
bug1240930-253/mozilla/1454912-3-62a1.patch

@@ -1,412 +0,0 @@
-# HG changeset patch
-# User Mike Shal <mshal@mozilla.com>
-# Date 1525868671 14400
-# Node ID 1eb04a9bfb7a82eb6fac5e29be7c6b03999d9361
-# Parent  82c74467f638711b16996f2a0dca28a597f32a0d
-Bug 1454912 - Use a .stub file as the target for all GENERATED_FILES rules; r=nalexander
-
-The make backend was treating the first output of a GENERATED_FILES rule
-specially, since it was the target of the rule containing the script
-invocation. We want the outputs of GENERATED_FILES rules to be
-FileAvoidWrite so that we avoid triggering downstream rules if the
-outputs are unchanged, but if the target of the script invocation is
-FileAvoidWrite, then make may continually re-run the script during a
-no-op build.
-
-The solution here is to use a stub file as the target of the script
-invocation which will always be touched when the script runs. Since
-nothing else in the build depends on the stub, we don't need to
-FileAvoidWrite it. All actual outputs of the script can be
-FileAvoidWrite, and make can properly avoid work for files that haven't
-changed.
-
-MozReview-Commit-ID: 3GejZw2tpqu
-
-diff --git a/CLOBBER b/CLOBBER
---- a/CLOBBER
-+++ b/CLOBBER
-@@ -17,9 +17,9 @@
- #
- # Modifying this file will now automatically clobber the buildbot machines \o/
- #
- 
- # Are you updating CLOBBER because you think it's needed for your WebIDL
- # changes to stick? As of bug 928195, this shouldn't be necessary! Please
- # don't change CLOBBER for WebIDL changes any more.
- 
--Bug 1371485 - Moving gyp requires a clobber.
-+Bug 1454912 - Changed out GENERATED_FILES are handled in the RecursiveMake backend
-diff --git a/config/config.mk b/config/config.mk
---- a/config/config.mk
-+++ b/config/config.mk
-@@ -24,16 +24,19 @@ topsrcdir	= $(DEPTH)
- endif
- 
- ifndef INCLUDED_AUTOCONF_MK
- include $(DEPTH)/config/autoconf.mk
- endif
- 
- -include $(DEPTH)/.mozconfig.mk
- 
-+# MDDEPDIR is the subdirectory where dependency files are stored
-+MDDEPDIR := .deps
-+
- ifndef EXTERNALLY_MANAGED_MAKE_FILE
- # Import the automatically generated backend file. If this file doesn't exist,
- # the backend hasn't been properly configured. We want this to be a fatal
- # error, hence not using "-include".
- ifndef STANDALONE_MAKEFILE
- GLOBAL_DEPS += backend.mk
- include backend.mk
- endif
-@@ -418,19 +421,16 @@ endif # ! WINNT
- 
- # Make sure any compiled classes work with at least JVM 1.4
- JAVAC_FLAGS += -source 1.4
- 
- ifdef MOZ_DEBUG
- JAVAC_FLAGS += -g
- endif
- 
--# MDDEPDIR is the subdirectory where dependency files are stored
--MDDEPDIR := .deps
--
- # autoconf.mk sets OBJ_SUFFIX to an error to avoid use before including
- # this file
- OBJ_SUFFIX := $(_OBJ_SUFFIX)
- 
- OBJS_VAR_SUFFIX := OBJS
- 
- # PGO builds with GCC build objects with instrumentation in a first pass,
- # then objects optimized, without instrumentation, in a second pass. If
-diff --git a/python/mozbuild/mozbuild/action/file_generate.py b/python/mozbuild/mozbuild/action/file_generate.py
---- a/python/mozbuild/mozbuild/action/file_generate.py
-+++ b/python/mozbuild/mozbuild/action/file_generate.py
-@@ -28,16 +28,18 @@ def main(argv):
-     parser.add_argument('python_script', metavar='python-script', type=str,
-                         help='The Python script to run')
-     parser.add_argument('method_name', metavar='method-name', type=str,
-                         help='The method of the script to invoke')
-     parser.add_argument('output_file', metavar='output-file', type=str,
-                         help='The file to generate')
-     parser.add_argument('dep_file', metavar='dep-file', type=str,
-                         help='File to write any additional make dependencies to')
-+    parser.add_argument('dep_target', metavar='dep-target', type=str,
-+                        help='Make target to use in the dependencies file')
-     parser.add_argument('additional_arguments', metavar='arg',
-                         nargs=argparse.REMAINDER,
-                         help="Additional arguments to the script's main() method")
- 
-     args = parser.parse_args(argv)
- 
-     kwargs = {}
-     if args.locale:
-@@ -90,17 +92,17 @@ def main(argv):
-                 # the script.
-                 deps |= set(iter_modules_in_path(buildconfig.topsrcdir,
-                                                  buildconfig.topobjdir))
-                 # Add dependencies on any buildconfig items that were accessed
-                 # by the script.
-                 deps |= set(buildconfig.get_dependencies())
- 
-                 mk = Makefile()
--                mk.create_rule([args.output_file]).add_dependencies(deps)
-+                mk.create_rule([args.dep_target]).add_dependencies(deps)
-                 with FileAvoidWrite(args.dep_file) as dep_file:
-                     mk.dump(dep_file)
-         # Even when our file's contents haven't changed, we want to update
-         # the file's mtime so make knows this target isn't still older than
-         # whatever prerequisite caused it to be built this time around.
-         try:
-             os.utime(args.output_file, None)
-         except:
-diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
---- a/python/mozbuild/mozbuild/backend/recursivemake.py
-+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
-@@ -536,16 +536,20 @@ class RecursiveMakeBackend(CommonBackend
-                 try:
-                     outputs.append(o.format(**substs))
-                 except KeyError as e:
-                     raise ValueError('%s not in %s is not a valid substitution in %s'
-                                      % (e.args[0], ', '.join(sorted(substs.keys())), o))
- 
-             first_output = outputs[0]
-             dep_file = "%s.pp" % first_output
-+            # The stub target file needs to go in MDDEPDIR so that it doesn't
-+            # get written into generated Android resource directories, breaking
-+            # Gradle tooling and/or polluting the Android packages.
-+            stub_file = "$(MDDEPDIR)/%s.stub" % first_output
- 
-             if obj.inputs:
-                 if obj.localized:
-                     # Localized generated files can have locale-specific inputs, which are
-                     # indicated by paths starting with `en-US/` or containing `locales/en-US/`.
-                     def srcpath(p):
-                         if 'locales/en-US' in p:
-                             # We need an "absolute source path" relative to
-@@ -580,28 +584,30 @@ class RecursiveMakeBackend(CommonBackend
-                 # If we're doing this during export that means we need it during
-                 # compile, but if we have an artifact build we don't run compile,
-                 # so we can skip it altogether or let the rule run as the result of
-                 # something depending on it.
-                 if tier != 'export' or not self.environment.is_artifact_build:
-                     if not needs_AB_rCD:
-                         # Android localized resources have special Makefile
-                         # handling.
--                        backend_file.write('%s:: %s\n' % (tier, first_output))
-+                        backend_file.write('%s:: %s\n' % (tier, stub_file))
-                 for output in outputs:
--                    if output != first_output:
--                        backend_file.write('%s: %s ;\n' % (output, first_output))
-+                    backend_file.write('%s: %s ;\n' % (output, stub_file))
-                     backend_file.write('GARBAGE += %s\n' % output)
-+                backend_file.write('GARBAGE += %s\n' % stub_file)
-                 backend_file.write('EXTRA_MDDEPEND_FILES += %s\n' % dep_file)
- 
--                backend_file.write("""{output}: {script}{inputs}{backend}{force}
-+                backend_file.write("""{stub}: {script}{inputs}{backend}{force}
- \t$(REPORT_BUILD)
--\t$(call py_action,file_generate,{locale}{script} {method} {output} $(MDDEPDIR)/{dep_file}{inputs}{flags})
-+\t$(call py_action,file_generate,{locale}{script} {method} {output} $(MDDEPDIR)/{dep_file} {stub}{inputs}{flags})
-+\t@$(TOUCH) $@
- 
--""".format(output=first_output,
-+""".format(stub=stub_file,
-+           output=first_output,
-            dep_file=dep_file,
-            inputs=' ' + ' '.join(inputs) if inputs else '',
-            flags=' ' + ' '.join(shell_quote(f) for f in obj.flags) if obj.flags else '',
-            backend=' backend.mk' if obj.flags else '',
-            # Locale repacks repack multiple locales from a single configured objdir,
-            # so standard mtime dependencies won't work properly when the build is re-run
-            # with a different locale as input. IS_LANGUAGE_REPACK will reliably be set
-            # in this situation, so simply force the generation to run in that case.
-diff --git a/python/mozbuild/mozbuild/backend/tup.py b/python/mozbuild/mozbuild/backend/tup.py
---- a/python/mozbuild/mozbuild/backend/tup.py
-+++ b/python/mozbuild/mozbuild/backend/tup.py
-@@ -528,16 +528,17 @@ class TupBackend(CommonBackend):
-             cmd = self._py_action('file_generate')
-             if obj.localized:
-                 cmd.append('--locale=en-US')
-             cmd.extend([
-                 obj.script,
-                 obj.method,
-                 obj.outputs[0],
-                 '%s.pp' % obj.outputs[0], # deps file required
-+                'unused', # deps target is required
-             ])
-             full_inputs = [f.full_path for f in obj.inputs]
-             cmd.extend(full_inputs)
-             cmd.extend(shell_quote(f) for f in obj.flags)
- 
-             outputs = []
-             outputs.extend(obj.outputs)
-             outputs.append('%s.pp' % obj.outputs[0])
-diff --git a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
---- a/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
-+++ b/python/mozbuild/mozbuild/test/backend/test_recursivemake.py
-@@ -391,76 +391,91 @@ class TestRecursiveMakeBackend(BackendTe
-     def test_generated_files(self):
-         """Ensure GENERATED_FILES is handled properly."""
-         env = self._consume('generated-files', RecursiveMakeBackend)
- 
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
- 
-         expected = [
--            'export:: bar.c',
-+            'export:: $(MDDEPDIR)/bar.c.stub',
-+            'bar.c: $(MDDEPDIR)/bar.c.stub ;',
-             'GARBAGE += bar.c',
-+            'GARBAGE += $(MDDEPDIR)/bar.c.stub',
-             'EXTRA_MDDEPEND_FILES += bar.c.pp',
--            'bar.c: %s/generate-bar.py' % env.topsrcdir,
-+            '$(MDDEPDIR)/bar.c.stub: %s/generate-bar.py' % env.topsrcdir,
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,%s/generate-bar.py baz bar.c $(MDDEPDIR)/bar.c.pp)' % env.topsrcdir,
-+            '$(call py_action,file_generate,%s/generate-bar.py baz bar.c $(MDDEPDIR)/bar.c.pp $(MDDEPDIR)/bar.c.stub)' % env.topsrcdir,
-+            '@$(TOUCH) $@',
-             '',
--            'export:: foo.c',
-+            'export:: $(MDDEPDIR)/foo.c.stub',
-+            'foo.c: $(MDDEPDIR)/foo.c.stub ;',
-             'GARBAGE += foo.c',
-+            'GARBAGE += $(MDDEPDIR)/foo.c.stub',
-             'EXTRA_MDDEPEND_FILES += foo.c.pp',
--            'foo.c: %s/generate-foo.py $(srcdir)/foo-data' % (env.topsrcdir),
-+            '$(MDDEPDIR)/foo.c.stub: %s/generate-foo.py $(srcdir)/foo-data' % (env.topsrcdir),
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp $(srcdir)/foo-data)' % (env.topsrcdir),
-+            '$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp $(MDDEPDIR)/foo.c.stub $(srcdir)/foo-data)' % (env.topsrcdir),
-+            '@$(TOUCH) $@',
-             '',
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-     def test_generated_files_force(self):
-         """Ensure GENERATED_FILES with .force is handled properly."""
-         env = self._consume('generated-files-force', RecursiveMakeBackend)
- 
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
- 
-         expected = [
--            'export:: bar.c',
-+            'export:: $(MDDEPDIR)/bar.c.stub',
-+            'bar.c: $(MDDEPDIR)/bar.c.stub ;',
-             'GARBAGE += bar.c',
-+            'GARBAGE += $(MDDEPDIR)/bar.c.stub',
-             'EXTRA_MDDEPEND_FILES += bar.c.pp',
--            'bar.c: %s/generate-bar.py FORCE' % env.topsrcdir,
-+            '$(MDDEPDIR)/bar.c.stub: %s/generate-bar.py FORCE' % env.topsrcdir,
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,%s/generate-bar.py baz bar.c $(MDDEPDIR)/bar.c.pp)' % env.topsrcdir,
-+            '$(call py_action,file_generate,%s/generate-bar.py baz bar.c $(MDDEPDIR)/bar.c.pp $(MDDEPDIR)/bar.c.stub)' % env.topsrcdir,
-+            '@$(TOUCH) $@',
-             '',
--            'export:: foo.c',
-+            'export:: $(MDDEPDIR)/foo.c.stub',
-+            'foo.c: $(MDDEPDIR)/foo.c.stub ;',
-             'GARBAGE += foo.c',
-+            'GARBAGE += $(MDDEPDIR)/foo.c.stub',
-             'EXTRA_MDDEPEND_FILES += foo.c.pp',
--            'foo.c: %s/generate-foo.py $(srcdir)/foo-data' % (env.topsrcdir),
-+            '$(MDDEPDIR)/foo.c.stub: %s/generate-foo.py $(srcdir)/foo-data' % (env.topsrcdir),
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp $(srcdir)/foo-data)' % (env.topsrcdir),
-+            '$(call py_action,file_generate,%s/generate-foo.py main foo.c $(MDDEPDIR)/foo.c.pp $(MDDEPDIR)/foo.c.stub $(srcdir)/foo-data)' % (env.topsrcdir),
-+            '@$(TOUCH) $@',
-             '',
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-     def test_localized_generated_files(self):
-         """Ensure LOCALIZED_GENERATED_FILES is handled properly."""
-         env = self._consume('localized-generated-files', RecursiveMakeBackend)
- 
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
- 
-         expected = [
--            'libs:: foo.xyz',
-+            'libs:: $(MDDEPDIR)/foo.xyz.stub',
-+            'foo.xyz: $(MDDEPDIR)/foo.xyz.stub ;',
-             'GARBAGE += foo.xyz',
-+            'GARBAGE += $(MDDEPDIR)/foo.xyz.stub',
-             'EXTRA_MDDEPEND_FILES += foo.xyz.pp',
--            'foo.xyz: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-+            '$(MDDEPDIR)/foo.xyz.stub: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo.xyz $(MDDEPDIR)/foo.xyz.pp $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo.xyz $(MDDEPDIR)/foo.xyz.pp $(MDDEPDIR)/foo.xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '@$(TOUCH) $@',
-             '',
-             'LOCALIZED_FILES_0_FILES += foo.xyz',
-             'LOCALIZED_FILES_0_DEST = $(FINAL_TARGET)/',
-             'LOCALIZED_FILES_0_TARGET := libs',
-             'INSTALL_TARGETS += LOCALIZED_FILES_0',
-         ]
- 
-         self.maxDiff = None
-@@ -469,64 +484,86 @@ class TestRecursiveMakeBackend(BackendTe
-     def test_localized_generated_files_force(self):
-         """Ensure LOCALIZED_GENERATED_FILES with .force is handled properly."""
-         env = self._consume('localized-generated-files-force', RecursiveMakeBackend)
- 
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
- 
-         expected = [
--            'libs:: foo.xyz',
-+            'libs:: $(MDDEPDIR)/foo.xyz.stub',
-+            'foo.xyz: $(MDDEPDIR)/foo.xyz.stub ;',
-             'GARBAGE += foo.xyz',
-+            'GARBAGE += $(MDDEPDIR)/foo.xyz.stub',
-             'EXTRA_MDDEPEND_FILES += foo.xyz.pp',
--            'foo.xyz: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-+            '$(MDDEPDIR)/foo.xyz.stub: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo.xyz $(MDDEPDIR)/foo.xyz.pp $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo.xyz $(MDDEPDIR)/foo.xyz.pp $(MDDEPDIR)/foo.xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '@$(TOUCH) $@',
-             '',
--            'libs:: abc.xyz',
-+            'libs:: $(MDDEPDIR)/abc.xyz.stub',
-+            'abc.xyz: $(MDDEPDIR)/abc.xyz.stub ;',
-             'GARBAGE += abc.xyz',
-+            'GARBAGE += $(MDDEPDIR)/abc.xyz.stub',
-             'EXTRA_MDDEPEND_FILES += abc.xyz.pp',
--            'abc.xyz: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input FORCE' % env.topsrcdir,
-+            '$(MDDEPDIR)/abc.xyz.stub: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input FORCE' % env.topsrcdir,
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main abc.xyz $(MDDEPDIR)/abc.xyz.pp $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main abc.xyz $(MDDEPDIR)/abc.xyz.pp $(MDDEPDIR)/abc.xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-++            '@$(TOUCH) $@',
-             '',
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-     def test_localized_generated_files_AB_CD(self):
-         """Ensure LOCALIZED_GENERATED_FILES is handled properly
-         when {AB_CD} and {AB_rCD} are used."""
-         env = self._consume('localized-generated-files-AB_CD', RecursiveMakeBackend)
- 
-         backend_path = mozpath.join(env.topobjdir, 'backend.mk')
-         lines = [l.strip() for l in open(backend_path, 'rt').readlines()[2:]]
- 
-         expected = [
--            'libs:: foo$(AB_CD).xyz',
-+            'libs:: $(MDDEPDIR)/foo$(AB_CD).xyz.stub',
-+            'foo$(AB_CD).xyz: $(MDDEPDIR)/foo$(AB_CD).xyz.stub ;',
-             'GARBAGE += foo$(AB_CD).xyz',
-+            'GARBAGE += $(MDDEPDIR)/foo$(AB_CD).xyz.stub',
-             'EXTRA_MDDEPEND_FILES += foo$(AB_CD).xyz.pp',
--            'foo$(AB_CD).xyz: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-+            '$(MDDEPDIR)/foo$(AB_CD).xyz.stub: %s/generate-foo.py $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo$(AB_CD).xyz $(MDDEPDIR)/foo$(AB_CD).xyz.pp $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main foo$(AB_CD).xyz $(MDDEPDIR)/foo$(AB_CD).xyz.pp $(MDDEPDIR)/foo$(AB_CD).xyz.stub $(call MERGE_FILE,localized-input) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '@$(TOUCH) $@',
-             '',
-             'include $(topsrcdir)/config/AB_rCD.mk',
-+            'bar$(AB_rCD).xyz: $(MDDEPDIR)/bar$(AB_rCD).xyz.stub ;',
-             'GARBAGE += bar$(AB_rCD).xyz',
-+            'GARBAGE += $(MDDEPDIR)/bar$(AB_rCD).xyz.stub'
-             'EXTRA_MDDEPEND_FILES += bar$(AB_rCD).xyz.pp',
--            'bar$(AB_rCD).xyz: %s/generate-foo.py $(call MERGE_RELATIVE_FILE,localized-input,inner/locales) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-+            '$(MDDEPDIR)/bar$(AB_rCD).xyz.stub: %s/generate-foo.py $(call MERGE_RELATIVE_FILE,localized-input,inner/locales) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-             '$(REPORT_BUILD)',
--            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main bar$(AB_rCD).xyz $(MDDEPDIR)/bar$(AB_rCD).xyz.pp $(call MERGE_RELATIVE_FILE,localized-input,inner/locales) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main bar$(AB_rCD).xyz $(MDDEPDIR)/bar$(AB_rCD).xyz.pp $(MDDEPDIR)/bar$(AB_rCD).xyz.stub $(call MERGE_RELATIVE_FILE,localized-input,inner/locales) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '@$(TOUCH) $@',
-             '',
-             'GARBAGE += zot$(AB_rCD).xyz',
-             'EXTRA_MDDEPEND_FILES += zot$(AB_rCD).xyz.pp',
-             'zot$(AB_rCD).xyz: %s/generate-foo.py $(call MERGE_RELATIVE_FILE,localized-input,locales) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-             '$(REPORT_BUILD)',
-             '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main zot$(AB_rCD).xyz $(MDDEPDIR)/zot$(AB_rCD).xyz.pp $(call MERGE_RELATIVE_FILE,localized-input,locales) $(srcdir)/non-localized-input)' % env.topsrcdir,
-             '',
-+            'zot$(AB_rCD).xyz: $(MDDEPDIR)/zot$(AB_rCD).xyz.stub ;',
-+            'GARBAGE += zot$(AB_rCD).xyz',
-+            'GARBAGE += $(MDDEPDIR)/zot$(AB_rCD).xyz.stub',
-+            'EXTRA_MDDEPEND_FILES += zot$(AB_rCD).xyz.pp',
-+            '$(MDDEPDIR)/zot$(AB_rCD).xyz.stub: %s/generate-foo.py $(call MERGE_RELATIVE_FILE,localized-input,locales) $(srcdir)/non-localized-input $(if $(IS_LANGUAGE_REPACK),FORCE)' % env.topsrcdir,
-+            '$(REPORT_BUILD)',
-+            '$(call py_action,file_generate,--locale=$(AB_CD) %s/generate-foo.py main zot$(AB_rCD).xyz $(MDDEPDIR)/zot$(AB_rCD).xyz.pp $(MDDEPDIR)/zot$(AB_rCD).xyz.stub $(call MERGE_RELATIVE_FILE,localized-input,locales) $(srcdir)/non-localized-input)' % env.topsrcdir,
-+            '@$(TOUCH) $@',
-+             '',
-+
-         ]
- 
-         self.maxDiff = None
-         self.assertEqual(lines, expected)
- 
-     def test_exports_generated(self):
-         """Ensure EXPORTS that are listed in GENERATED_FILES
-         are handled properly."""

+ 0 - 44
bug1240930-253/mozilla/1454912-4-62a1.patch

@@ -1,44 +0,0 @@
-# HG changeset patch
-# User Mike Shal <mshal@mozilla.com>
-# Date 1525899064 14400
-# Node ID 9260cc524bb54d9318075578488de8a6f40677eb
-# Parent  1eb04a9bfb7a82eb6fac5e29be7c6b03999d9361
-Bug 1454912 - Revert "Bug 1218999 - Update mtimes when building a GENERATED_FILES target, even when contents don't change."; r=nalexander
-
-We no longer want to update mtimes of FileAvoidWrites so that downstream
-rules aren't triggered if the files aren't changed. Since the .stub file
-target of GENERATED_FILES are always touched, make won't continually
-rebuild them.
-
-MozReview-Commit-ID: GxrFgCJTYk
-
-diff --git a/python/mozbuild/mozbuild/action/file_generate.py b/python/mozbuild/mozbuild/action/file_generate.py
---- a/python/mozbuild/mozbuild/action/file_generate.py
-+++ b/python/mozbuild/mozbuild/action/file_generate.py
-@@ -95,25 +95,16 @@ def main(argv):
-                 # Add dependencies on any buildconfig items that were accessed
-                 # by the script.
-                 deps |= set(buildconfig.get_dependencies())
- 
-                 mk = Makefile()
-                 mk.create_rule([args.dep_target]).add_dependencies(deps)
-                 with FileAvoidWrite(args.dep_file) as dep_file:
-                     mk.dump(dep_file)
--        # Even when our file's contents haven't changed, we want to update
--        # the file's mtime so make knows this target isn't still older than
--        # whatever prerequisite caused it to be built this time around.
--        try:
--            os.utime(args.output_file, None)
--        except:
--            print('Error processing file "{0}"'.format(args.output_file),
--                  file=sys.stderr)
--            traceback.print_exc()
-     except IOError as e:
-         print('Error opening file "{0}"'.format(e.filename), file=sys.stderr)
-         traceback.print_exc()
-         return 1
-     return ret
- 
- if __name__ == '__main__':
-     sys.exit(main(sys.argv[1:]))
-

+ 0 - 33
bug1240930-253/mozilla/1461383-62a1.patch

@@ -1,33 +0,0 @@
-# HG changeset patch
-# User Nathan Froyd <froydnj@mozilla.com>
-# Date 1526393123 14400
-# Node ID 73dd77918ce5997d13cefc2cae32c7ae4644ce82
-# Parent  d52f0d61dd570ae9414bfad4dd3df88051466fdd
-Bug 1461383 - fix test_build.py for local builds; r=chmanchester,f=mshal
-
-test_build.py fails on local builds with messages like:
-
-diff --git a/Makefile.in b/Makefile.in
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -28,18 +28,18 @@ DIST_GARBAGE = config.cache config.log c
-    config/autoconf.mk \
-    mozilla-config.h \
-    netwerk/necko-config.h xpcom/xpcom-config.h xpcom/xpcom-private.h \
-    .mozconfig.mk
- 
- ifndef MOZ_PROFILE_USE
- # Automation builds should always have a new buildid, but for the sake of not
- # re-linking libxul on every incremental build we do not enforce this for
--# developer builds.
--ifneq (,$(MOZ_AUTOMATION)$(MOZ_BUILD_DATE))
-+# developer builds.  Tests always need a new buildid as well.
-+ifneq (,$(MOZ_AUTOMATION)$(MOZ_BUILD_DATE)$(TEST_MOZBUILD))
- buildid.h source-repo.h: FORCE
- endif
- endif
- 
- ifdef JS_STANDALONE
- configure_dir = $(topsrcdir)/js/src
- else
- configure_dir = $(topsrcdir)

+ 0 - 183
bug1240930-253/mozilla/1464128-PARTIAL-62a1.patch

@@ -1,183 +0,0 @@
-# HG changeset patch
-# User Nick Alexander <nalexander@mozilla.com>
-# Date 1527186527 25200
-# Node ID 0f0e532db5ecc823a013c5f417d54694d6f38284
-# Parent  40d9ab3a11e4790dc5e1e56e78d6ade7320d4eca
-Bug 1464128 - Migrate bookmarks.html.in to LOCALIZED_GENERATED_FILES. r=ted.mielczarek
-
-This one looks to be pretty straight-forward.  It irritates me that
-the jar.mn entry doesn't explicitly say that the result is coming from
-the object directory, like
-
-locale/browser/bookmarks.html (!bookmarks.html)
-
-but that's for another day.
-
-MozReview-Commit-ID: Cw8E0VJhSxv
-
-diff --git a/browser/locales/Makefile.in b/browser/locales/Makefile.in
---- a/browser/locales/Makefile.in
-+++ b/browser/locales/Makefile.in
-@@ -60,18 +60,16 @@ DIST_SUBDIRS = $(DIST_SUBDIR)
- include $(topsrcdir)/config/rules.mk
- 
- include $(topsrcdir)/toolkit/locales/l10n.mk
- 
- $(list-json): $(call mkdir_deps,$(SEARCHPLUGINS_PATH)) $(if $(IS_LANGUAGE_REPACK),FORCE)
- 	$(call py_action,generate_searchjson,$(srcdir)/search/list.json $(AB_CD) $(list-json))
- searchplugins:: $(list-json)
- 
--DEFINES += -DBOOKMARKS_INCLUDE_DIR=$(dir $(call MERGE_FILE,profile/bookmarks.inc))
--
- libs-%: AB_CD=$*
- libs-%:
- 	$(if $(filter en-US,$(AB_CD)),, @$(MAKE) merge-$*)
- 	$(NSINSTALL) -D $(DIST)/install
- 	@$(MAKE) -C ../../toolkit/locales libs-$* XPI_ROOT_APPID='$(XPI_ROOT_APPID)'
- 	@$(MAKE) -C ../../services/sync/locales AB_CD=$* XPI_NAME=locale-$*
- 	@$(MAKE) -C ../../extensions/spellcheck/locales AB_CD=$* XPI_NAME=locale-$*
- ifneq (,$(wildcard ../extensions/formautofill/locales))
-diff --git a/browser/locales/generic/profile/bookmarks.html.in b/browser/locales/generic/profile/bookmarks.html.in
---- a/browser/locales/generic/profile/bookmarks.html.in
-+++ b/browser/locales/generic/profile/bookmarks.html.in
-@@ -1,14 +1,10 @@
- #filter substitution
--#include @BOOKMARKS_INCLUDE_DIR@/bookmarks.inc
--#define ja_jp_mac ja-JP-mac
--#if AB_CD == ja_jp_mac
--#define AB_CD ja
--#endif
-+#include @BOOKMARKS_INCLUDE_PATH@
- 
- #define mozilla_icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH3gwMDAsTBZbkNwAAAB1pVFh0Q29tbWVudAAAAAAAQ3JlYXRlZCB3aXRoIEdJTVBkLmUHAAABNElEQVQ4y8WSsU0DURBE3yyWIaAJaqAAN4DPSL6AlIACKIEOyJEgRsIgOOkiInJqgAKowNg7BHdn7MOksNl+zZ//dvbDf5cAiklp22BdVtXdeTEpDYDB9m1VzU6OJuVp2NdEQCaI96fH2YHG4+mDduKYNMYINTcjcGbXzQVDEAphG0k48zUsajIbnAiMIXThpW8EICE0RAK4dvoKg9NIcTiQ589otyHOZLnwqK5nLwBFUZ4igc3iM0d1ff8CMC6mZ6Ihiaqq3gi1aUAnArD00SW1fq5OLBg0ymYmSZsR2/t4e/rGyCLW0sbp3oq+yTYqVgytQWui2FS7XYF7GFprY921T4CNQt8zr47dNzCkIX7y/jBtH+v+RGMQrc828W8pApnZbmEVQp/Ae7BlOy2ttib81/UFc+WRWEbjckIAAAAASUVORK5CYII=
- 
- #define nightly_icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA01JREFUeNpkk01oXFUUx//vzp33ZiaTzkwnyUwmsbbNRpp0GhuVKiVgQIUiLmoX7lyIG10I6qIUrG6KGyuYZbMwiATqxipSMVhQYwWhiwSJwUxKkzbz8ZJ5H/M+7/vunUIE7Vnc1f3/zjn/c46wsCbjIOI4Rlfew+Zf6/h9+RYYYzj70hymZp7GULUCSin+H8IBwLYsfLOwiOfffndK1c2LmhO84jl+2e5ZCTN6Xer0fpp5dmq+frxy5zGAY9n49IOLuHDls8uqE3y07YV0ywwQGA6oZsJRFRT0FnK2Hpw8PTl/7tXZDw8ApF/29YUvufjqxxqLPrnLQBUiQRUI4EcQHQ+EgwbjENl8Pv3H9W/f//m7W9cOAKkXzr+J4pm5umy6S/uEkiAEOlzscWHG5jTbhcsrDJiHsN1CIScJTlc5JaSlldEna9uk8fcGHNO6tOMGqfssQjNFoHOxyAXU9xF5HiRXw2AqhuUEsLs6giCkjbXG549a+O3mMhQneLnthOh0NBiaAdozkTEdpC0Hnm2hKAKR3ESJRigNFZBHCF2zn+p7SMIwRM9kRcI/D5g2xAcd1PQeMtw8xkGuafIRGRgZKfHfCbKlIu5t3IVASYYDDtMzL85il2fLuh6qIkFkWtjrARY3zjENJLwCKgqwOjLcnW30Qh/HnpmGYTJhT1bSdPL0NBpr+6rbs8qhIiPivQtRhDDJQuCViI4BxdJRrx/jBopob25BDmIMnzgZjFTK+2R4tAo4+q8iM9Ba3wBTuxirHELeM5AxFO6FCsnSsHNnFfL9XUiFIo7ypNmB9D3eQkT665nS5Xm72Q5r3KCo04be2MIRKULOUlEkPnJpAbn8AI7XJyEUy/CBhIrJlUdT6D/rP3x1u1yQFjP5bFIbH4HdbHG2j/GJMfiqzneCwVI0oFrD8OgTiKLgl5Ubi0v/uYV3ZqcrE2ff+Do2/LlUxAi/HKQZH9eegupzpxDztL4gIfTU9d3VG+ev/nh7s6/797wiz1K3VpYuDU3MvFWunXg9ly2WTNVNDZaPgIU08V3NMNXVZfmfP68lvt187Br78d5r52hoKaUkiWspQqqHx4+OCQLhFu3KAXNbCYQWzR5SBCr5X3x/M+lrHgowAMP2wWqd+FzxAAAAAElFTkSuQmCC
- 
- #define firefox_icon data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAz5JREFUeNpcU0toXFUY/s49596588ikySSmM8rk0UkJEirVTVEjYk1NUdRFFgouXZQI2k2hUCjdiYIuCi4Kuig0DbqQYgU3Yi0iFRuRCBMwaZvMZDTNY95z3/fM8b8jldpzOeeee/i/737n+/+f4ZExf730rkiaZ9NJMx/nmk5HypMqqLr+ZuD4F67N5ZYejmfRsnvhyKsLhSs3zP70SubgYKHSdFENu+gXAprQIGnvBi5ez0m1b6u7M399+PTx+UvtCKtFi2F6195qXK2byir88esy5ksfYND5DhuhRCtUKBNB0Q7w5Z8ee2GgWdjOn250fn5v5j8F5dOHlZD0kWRgAwp3hrKY0S9BJWKIcQ5PShhNG4+1bHx+IocT+RXcrRSDMfFNRvvt3Oyp/icIrRhUl9hoO4kt3F55Bxf3LkLV20jWOohbDjzXxyc/lMH0cRSyCd1xq+dFhu986t7T0CUwIzB8EkW3O5ibhj44ib7NJhiBKRoB/aS4ZWHjbxtjGQYP7nGRTjim1SaQqYiAVAREpHG8vzWJn+6PQ6CF0HPR7nQQczpYeEWHyWMUkwU8MSECGwgJxAWp9xWKNzkuH3oet+JDlIE9Momedh1G4CN0bfhVG9nsS0BQQthJx0V7j3elq7ihqV5ezQTwZmodP9ZGkU/bOPr4Nr53xtDYsaD7Dg4nNqFaH5OCYSSdGhf7daNmuv6wEKqXk/yExKGBHSznFsH6FFpKQ/JAA0ulUejWLt44lkHXsqDaX6C6Nl4Rnq8vK8s/KThDMlJhkI91YOO+iR3XwEelCdTCBLSgijNzd6DLNfhlHfZ6FtWiWBQpq/V2LdSrrNPljBQkoOjuCiPxAMutOIbkPqYSEqeequGZaTLzdhZhS0PlnlB9bvhtr5CuHj3y2Qj8hVQ/kEopxONEEsO/0yATDYXYAdWrE69JEElXq7Hyk0tro+xBU1yZmr4xrIcvptIRCZlJJAYBmRGRkD08aivA7VDvWPqt564Xn41w/AHB1/u7l1/uGxGU8mNcgodUNDIq0JDeLnpzc1uo1Qr76rWbqyf/142PjsXJqdkmN2YDnQ9oGkJNU+t57q7qUv4y9/t64+HYfwQYAN7OczrzUDvGAAAAAElFTkSuQmCC
- 
- #define bugzilla_icon data:image/x-icon;base64,AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnYCL7J0pY9wwETY9kYEM9AAAAAEBAYAhVVVUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1bjTOS1Vb/wAA2/8JEqT/Q0g8kQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJnMqoiJtJ/0haST/NEkp/yQnW/8AAPD8AAHY/RsgP/JZUI+GKitih4ObUEAAAAAAAAAAAAAAAAAAAAAAKnouwip5Lv9ooW//a6Jz/y9GIv8JBXb/AADO/gEBvf8AAK7/FRJp/z9BfP8iLGj1AAAAAAAAAAAAAAAAL4YzwiB0I/+UwJ3/bK+C/02eZ/9CTjz/DBa1/wABxf8BAOj/AACp/w8Oc/sJCv//EhCN9AAAAAAAAAAANJA6iC2MMv93tYL/TZ5U/3mzjP9NoWr/NEss/wYIU/8CBOn/ARCX/wwNqP0TD6X/Cgyex5qacDAAAAAAAAAAADKUN/ZirWj/d76R/0SgXf9Ln1P/eLSM/1mda/8rOkb/CQiD/wMQvf8UEnT/MTAt4P//MwUhZyN8AAAAAAAAAAAznDf5UqlZ/228jP9NqnD/Qp9c/0yiVP+Dv5b/VaVw/0VxXf9PZXD/S3pQ/y54Nf8jcCf/I2wn/wAAAAA0ozjIM6E4/zOeOP+Uz6z/XLR+/06scv9BoV3/TqZX/4XBmP9XqHP/hr6Z/yp+Lf8leSr1JXUqbQAAAAA3rTz7Nqo7/zWmOqM3oz7rUK1W/43Mpf9etYD/T61z/0KjXf9Rqln/msup/46/lf8pgy7/JFg6sAAAAAAAAAAAOK8+8jqvOiMAAAAAAAAAADSlOv85pT//kM6o/2K5hP9Ysnv/YLJ2/ziXPv8piS3/V6Ri/yZQQ9wAAAAAAAAAAAAAAAAAAAAAAAAAADetP0E2qzz/OKg98UWsS/+e1K3/pNe4/4XDjv8ojy3/T7df/5fIqv8sjTH/K4kw/yqFLv8AAAAAAAAAAAAAAAA4sT3xN7A8+QAAAAA4qz3yNag6/zSlOf80oTn/csJ+/6/jwv9fjHj/MmRMdQAAAAAAAAAAAAAAAAAAAAAAAAAAOrdA/zm0QHQAAAAAAAAAADasO/k2qTvuRX5lpjqGT/gznDr/O3FXigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADq9QiMAAAAAAAAAAAAAAAA4sj7/Nq09s0uOaSI1qTplM6U68wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOrc//zu0P0EAAAAAOK4+UjWsPPgAAAAAAAAAAAAAAAAAAAAA/48AAP8HAAD4AQAA8AAAAOAAAADAAQAAwAMAAMAAAACAAwAAAAMAAHADAADwAAAA5AcAAO4HAAD+bwAA/u8AAA==
-diff --git a/browser/locales/jar.mn b/browser/locales/jar.mn
---- a/browser/locales/jar.mn
-+++ b/browser/locales/jar.mn
-@@ -1,17 +1,18 @@
- #filter substitution
- # 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/.
- 
- 
- @AB_CD@.jar:
- % locale browser @AB_CD@ %locale/browser/
--*   locale/browser/bookmarks.html                  (generic/profile/bookmarks.html.in)
-+# bookmarks.html is produced by LOCALIZED_GENERATED_FILES.
-+    locale/browser/bookmarks.html                  (bookmarks.html)
-     locale/browser/aboutAccounts.dtd               (%chrome/browser/aboutAccounts.dtd)
-     locale/browser/aboutDialog.dtd                 (%chrome/browser/aboutDialog.dtd)
-     locale/browser/aboutPrivateBrowsing.dtd        (%chrome/browser/aboutPrivateBrowsing.dtd)
-     locale/browser/aboutPrivateBrowsing.properties (%chrome/browser/aboutPrivateBrowsing.properties)
-     locale/browser/aboutRobots.dtd                 (%chrome/browser/aboutRobots.dtd)
-     locale/browser/aboutHome.dtd                   (%chrome/browser/aboutHome.dtd)
-     locale/browser/accounts.properties             (%chrome/browser/accounts.properties)
-     locale/browser/aboutSearchReset.dtd            (%chrome/browser/aboutSearchReset.dtd)
-diff --git a/browser/locales/moz.build b/browser/locales/moz.build
---- a/browser/locales/moz.build
-+++ b/browser/locales/moz.build
-@@ -19,8 +19,18 @@ if CONFIG['MOZ_UPDATER']:
-     updater.inputs = [
-         'en-US/updater/updater.ini',
-         '../installer/windows/nsis/updater_append.ini',
-     ]
-     # Yes, this is weird, but what can you do? This file doesn't want to be in the DIST_SUBDIR,
-     # but we can't really move it to a different directory until we change how locale repacks
-     # work.
-     LOCALIZED_FILES['..'] += ['!updater.ini']
-+
-+LOCALIZED_GENERATED_FILES += ['bookmarks.html']
-+bookmarks = LOCALIZED_GENERATED_FILES['bookmarks.html']
-+bookmarks.script = 'generate_bookmarks.py'
-+bookmarks.inputs = [
-+    # This input will not be considered for localization.
-+    'generic/profile/bookmarks.html.in',
-+    # The `locales/en-US/` will be rewritten to the locale-specific path.
-+    'en-US/profile/bookmarks.inc',
-+]
-diff --git a/config/faster/rules.mk b/config/faster/rules.mk
---- a/config/faster/rules.mk
-+++ b/config/faster/rules.mk
-@@ -79,22 +79,20 @@ ACDEFINES += -DBUILD_FASTER
- # corresponding install manifests are named correspondingly, with forward
- # slashes replaced with underscores, and prefixed with `install_`. That is,
- # the install manifest for `dist/bin` would be `install_dist_bin`.
- $(addprefix install-,$(INSTALL_MANIFESTS)): install-%: $(addprefix $(TOPOBJDIR)/,buildid.h source-repo.h)
- 	@# For now, force preprocessed files to be reprocessed every time.
- 	@# The overhead is not that big, and this avoids waiting for proper
- 	@# support for defines tracking in process_install_manifest.
- 	@touch install_$(subst /,_,$*)
--	@# BOOKMARKS_INCLUDE_DIR is for bookmarks.html only.
- 	$(PYTHON) -m mozbuild.action.process_install_manifest \
- 		--track install_$(subst /,_,$*).track \
- 		$(TOPOBJDIR)/$* \
- 		-DAB_CD=en-US \
--		-DBOOKMARKS_INCLUDE_DIR=$(TOPSRCDIR)/browser/locales/en-US/profile \
- 		$(ACDEFINES) \
- 		install_$(subst /,_,$*)
- 
- # ============================================================================
- # Below is a set of additional dependencies and variables used to build things
- # that are not supported by data in moz.build.
- 
- # The xpidl target in config/makefiles/xpidl requires the install manifest for
-diff --git a/python/mozbuild/mozbuild/backend/tup.py b/python/mozbuild/mozbuild/backend/tup.py
---- a/python/mozbuild/mozbuild/backend/tup.py
-+++ b/python/mozbuild/mozbuild/backend/tup.py
-@@ -236,20 +236,16 @@ class TupOnly(CommonBackend, PartialBack
-                 pass
- 
-         with self._write_file(mozpath.join(self.environment.topobjdir, 'Tuprules.tup')) as fh:
-             acdefines_flags = ' '.join(['-D%s=%s' % (name, shell_quote(value))
-                 for (name, value) in sorted(self.environment.acdefines.iteritems())])
-             # TODO: AB_CD only exists in Makefiles at the moment.
-             acdefines_flags += ' -DAB_CD=en-US'
- 
--            # TODO: BOOKMARKS_INCLUDE_DIR is used by bookmarks.html.in, and is
--            # only defined in browser/locales/Makefile.in
--            acdefines_flags += ' -DBOOKMARKS_INCLUDE_DIR=%s/browser/locales/en-US/profile' % self.environment.topsrcdir
--
-             # Use BUILD_FASTER to avoid CXXFLAGS/CPPFLAGS in
-             # toolkit/content/buildconfig.html
-             acdefines_flags += ' -DBUILD_FASTER=1'
- 
-             fh.write('MOZ_OBJ_ROOT = $(TUP_CWD)\n')
-             fh.write('DIST = $(MOZ_OBJ_ROOT)/dist\n')
-             fh.write('ACDEFINES = %s\n' % acdefines_flags)
-             fh.write('topsrcdir = $(MOZ_OBJ_ROOT)/%s\n' % (
-diff --git a/python/mozbuild/mozbuild/faster_daemon.py b/python/mozbuild/mozbuild/faster_daemon.py
---- a/python/mozbuild/mozbuild/faster_daemon.py
-+++ b/python/mozbuild/mozbuild/faster_daemon.py
-@@ -64,26 +64,20 @@ class Daemon(object):
-         self.config_environment = config_environment
-         self._client = None
- 
-     @property
-     def defines(self):
-         defines = dict(self.config_environment.acdefines)
-         # These additions work around warts in the build system: see
-         # http://searchfox.org/mozilla-central/rev/ad093e98f42338effe2e2513e26c3a311dd96422/config/faster/rules.mk#92-93
--        # and
--        # http://searchfox.org/mozilla-central/rev/ad093e98f42338effe2e2513e26c3a311dd96422/python/mozbuild/mozbuild/backend/tup.py#244-253.
-         defines.update({
-             'AB_CD': 'en-US',
-             'BUILD_FASTER': '1',
-         })
--        defines.update({
--            'BOOKMARKS_INCLUDE_DIR': mozpath.join(self.config_environment.topsrcdir,
--                                                  'browser', 'locales', 'en-US', 'profile'),
--        })
-         return defines
- 
-     @mozbuild.util.memoized_property
-     def file_copier(self):
-         # TODO: invalidate the file copier when the build system
-         # itself changes, i.e., the underlying unified manifest
-         # changes.
-         file_copier = FileCopier()

+ 0 - 37
bug1240930-253/mozilla/1470552-62a1.patch

@@ -1,37 +0,0 @@
-# HG changeset patch
-# User Chris Manchester <cmanchester@mozilla.com>
-# Date 1529705439 25200
-# Node ID 1dbc843c1429a374579251d6c843e11bd211ec28
-# Parent  6aec9dc32d1c194f22d98bc51e886678ff0ba200
-Bug 1470552 - Update Makefile.in to refer to stub file target for buildid.h and source-repo.h generated in backend.mk r=froydnj
-
-MozReview-Commit-ID: CxLkQjX8veW
-
-diff --git a/Makefile.in b/Makefile.in
---- a/Makefile.in
-+++ b/Makefile.in
-@@ -30,17 +30,23 @@ DIST_GARBAGE = config.cache config.log c
-    netwerk/necko-config.h xpcom/xpcom-config.h xpcom/xpcom-private.h \
-    .mozconfig.mk
- 
- ifndef MOZ_PROFILE_USE
- # Automation builds should always have a new buildid, but for the sake of not
- # re-linking libxul on every incremental build we do not enforce this for
- # developer builds.  Tests always need a new buildid as well.
- ifneq (,$(MOZ_AUTOMATION)$(MOZ_BUILD_DATE)$(TEST_MOZBUILD))
--buildid.h source-repo.h: FORCE
-+$(MDDEPDIR)/buildid.h.stub $(MDDEPDIR)/source-repo.h.stub: FORCE
-+endif
-+# Additionally, provide a dummy target during tests, because
-+# faster/rules.mk will expect these targets to exist.
-+ifdef TEST_MOZBUILD
-+source-repo.h: $(MDDEPDIR)/source-repo.h.stub
-+buildid.h: $(MDDEPDIR)/buildid.h.stub
- endif
- endif
- 
- ifdef JS_STANDALONE
- configure_dir = $(topsrcdir)/js/src
- else
- configure_dir = $(topsrcdir)
- endif

+ 0 - 94
bug1240930-253/mozilla/1642032-1-79a1.patch

@@ -1,94 +0,0 @@
-# HG changeset patch
-# User Nathan Froyd <froydnj@mozilla.com>
-# Date 1591734204 0
-# Node ID a9239d02662726ebc80e3c0b02213b32795feaf4
-# Parent  fba4303d6219d355e1a767727f308a80328ef2b9
-Bug 1642032 - part 1 - factor out install targets for final target files; r=nalexander
-
-We're going to reuse this machinery in a subsequent patch.  I think this
-change, by virtue of moving all the output to a single place, also makes
-things clearer.
-
-Differential Revision: https://phabricator.services.mozilla.com/D78617
-
-diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
---- a/python/mozbuild/mozbuild/backend/recursivemake.py
-+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
-@@ -1427,16 +1427,24 @@ class RecursiveMakeBackend(CommonBackend
-         assert len(direct_linked) == 1
- 
-         # TODO: see bug 1310063 for checking dependencies are set up correctly.
- 
-         direct_linked = direct_linked[0]
-         backend_file.write('RUST_STATIC_LIB := %s\n' %
-                            pretty_relpath(direct_linked, direct_linked.import_name))
- 
-+    def _add_install_target(self, backend_file, install_target, tier, dest, files):
-+        self._no_skip[tier].add(backend_file.relobjdir)
-+        for f in files:
-+            backend_file.write('%s_FILES += %s\n' % (install_target, f))
-+        backend_file.write('%s_DEST := %s\n' % (install_target, dest))
-+        backend_file.write('%s_TARGET := %s\n' % (install_target, tier))
-+        backend_file.write('INSTALL_TARGETS += %s\n' % install_target)
-+
-     def _process_final_target_files(self, obj, files, backend_file):
-         target = obj.install_target
-         path = mozpath.basedir(target, (
-             'dist/bin',
-             'dist/xpi-stage',
-             '_tests',
-             'dist/include',
-         ))
-@@ -1449,17 +1457,18 @@ class RecursiveMakeBackend(CommonBackend
- 
-         manifest = path.replace('/', '_')
-         install_manifest = self._install_manifests[manifest]
-         reltarget = mozpath.relpath(target, path)
- 
-         for path, files in files.walk():
-             target_var = (mozpath.join(target, path)
-                           if path else target).replace('/', '_')
--            have_objdir_files = False
-+            objdir_files = []
-+
-             for f in files:
-                 assert not isinstance(f, RenamedSourcePath)
-                 dest = mozpath.join(reltarget, path, f.target_basename)
-                 if not isinstance(f, ObjDirPath):
-                     if '*' in f:
-                         if f.startswith('/') or isinstance(f, AbsolutePath):
-                             basepath, wild = os.path.split(f.full_path)
-                             if '*' in basepath:
-@@ -1468,27 +1477,22 @@ class RecursiveMakeBackend(CommonBackend
- 
-                             install_manifest.add_pattern_link(basepath, wild, path)
-                         else:
-                             install_manifest.add_pattern_link(f.srcdir, f, path)
-                     else:
-                         install_manifest.add_link(f.full_path, dest)
-                 else:
-                     install_manifest.add_optional_exists(dest)
--                    backend_file.write('%s_FILES += %s\n' % (
--                        target_var, self._pretty_path(f, backend_file)))
--                    have_objdir_files = True
--            if have_objdir_files:
-+                    objdir_files.append(self._pretty_path(f, backend_file))
-+            if objdir_files:
-                 tier = 'export' if obj.install_target == 'dist/include' else 'misc'
--                self._no_skip[tier].add(backend_file.relobjdir)
--                backend_file.write('%s_DEST := $(DEPTH)/%s\n'
--                                   % (target_var,
--                                      mozpath.join(target, path)))
--                backend_file.write('%s_TARGET := %s\n' % (target_var, tier))
--                backend_file.write('INSTALL_TARGETS += %s\n' % target_var)
-+                self._add_install_target(backend_file, target_var, tier,
-+                                         '$(DEPTH)/%s' % mozpath.join(target, path),
-+                                         objdir_files)
- 
-     def _process_final_target_pp_files(self, obj, files, backend_file, name):
-         # Bug 1177710 - We'd like to install these via manifests as
-         # preprocessed files. But they currently depend on non-standard flags
-         # being added via some Makefiles, so for now we just pass them through
-         # to the underlying Makefile.in.
-         #
-         # Note that if this becomes a manifest, OBJDIR_PP_FILES will likely

+ 0 - 84
bug1240930-253/mozilla/1642032-2-79a1.patch

@@ -1,84 +0,0 @@
-# HG changeset patch
-# User Nathan Froyd <froydnj@mozilla.com>
-# Date 1591734209 0
-# Node ID c1628d8da86fff9d408cb53d1a3c886c57099101
-# Parent  a9239d02662726ebc80e3c0b02213b32795feaf4
-Bug 1642032 - part 2 - install non-wildcard absolute FINAL_TARGET_FILES during misc; r=nalexander
-
-Such files are, at least as of this writing, only libraries, and we can
-get by with installing them later.  This change will also avoid having
-them added to the dependent libraries list.
-
-Differential Revision: https://phabricator.services.mozilla.com/D78618
-
-diff --git a/python/mozbuild/mozbuild/backend/recursivemake.py b/python/mozbuild/mozbuild/backend/recursivemake.py
---- a/python/mozbuild/mozbuild/backend/recursivemake.py
-+++ b/python/mozbuild/mozbuild/backend/recursivemake.py
-@@ -1451,42 +1451,64 @@ class RecursiveMakeBackend(CommonBackend
- 
-         manifest = path.replace('/', '_')
-         install_manifest = self._install_manifests[manifest]
-         reltarget = mozpath.relpath(target, path)
- 
-         for path, files in files.walk():
-             target_var = (mozpath.join(target, path)
-                           if path else target).replace('/', '_')
-+            # We don't necessarily want to combine these, because non-wildcard
-+            # absolute files tend to be libraries, and we don't want to mix
-+            # those in with objdir headers that will be installed during export.
-+            # (See bug 1642882 for details.)
-             objdir_files = []
--
-+            absolute_files = []
-+ 
-             for f in files:
-                 assert not isinstance(f, RenamedSourcePath)
-                 dest = mozpath.join(reltarget, path, f.target_basename)
-                 if not isinstance(f, ObjDirPath):
-                     if '*' in f:
-                         if f.startswith('/') or isinstance(f, AbsolutePath):
-                             basepath, wild = os.path.split(f.full_path)
-                             if '*' in basepath:
-                                 raise Exception("Wildcards are only supported in the filename part of "
-                                                 "srcdir-relative or absolute paths.")
- 
-                             install_manifest.add_pattern_link(basepath, wild, path)
-                         else:
-                             install_manifest.add_pattern_link(f.srcdir, f, path)
-+                    elif isinstance(f, AbsolutePath):
-+                        if not f.full_path.lower().endswith(('.dll', '.pdb', '.so')):
-+                            raise Exception("Absolute paths installed to FINAL_TARGET_FILES must"
-+                                            " only be shared libraries or associated debug"
-+                                            " information.")
-+                        install_manifest.add_optional_exists(dest)
-+                        absolute_files.append(f.full_path)
-                     else:
-                         install_manifest.add_link(f.full_path, dest)
-                 else:
-                     install_manifest.add_optional_exists(dest)
-                     objdir_files.append(self._pretty_path(f, backend_file))
-+            install_location = '$(DEPTH)/%s' % mozpath.join(target, path)
-             if objdir_files:
-                 tier = 'export' if obj.install_target == 'dist/include' else 'misc'
-                 self._add_install_target(backend_file, target_var, tier,
--                                         '$(DEPTH)/%s' % mozpath.join(target, path),
--                                         objdir_files)
-+                                         install_location, objdir_files)
-+            if absolute_files:
-+                # Unfortunately, we can't use _add_install_target because on
-+                # Windows, the absolute file paths that we want to install
-+                # from often have spaces.  So we write our own rule.
-+                self._no_skip['misc'].add(backend_file.relobjdir)
-+                backend_file.write('misc::\n%s\n' %
-+                                   '\n'.join(
-+                                       '\t$(INSTALL) %s %s' % (
-+                                           make_quote(shell_quote(f)), install_location)
-+                                       for f in absolute_files))
- 
-     def _process_final_target_pp_files(self, obj, files, backend_file, name):
-         # Bug 1177710 - We'd like to install these via manifests as
-         # preprocessed files. But they currently depend on non-standard flags
-         # being added via some Makefiles, so for now we just pass them through
-         # to the underlying Makefile.in.
-         #
-         # Note that if this becomes a manifest, OBJDIR_PP_FILES will likely

+ 0 - 46
bug1240930-253/mozilla/1642032-3-79a1.patch

@@ -1,46 +0,0 @@
-# HG changeset patch
-# User Nathan Froyd <froydnj@mozilla.com>
-# Date 1591823220 0
-# Node ID 7bc89fd272217c7a94ae32184c1d9c99f78e1bd4
-# Parent  167519caa6fea866d42b3ec4818255df816dcf13
-Bug 1642032 - ignore d3dcompiler_47.dll in dependentlibs determination; r=firefox-build-system-reviewers,rstewart
-
-We moved the installation of shared libraries, such as
-`d3dcompiler_47.dll` to the `misc` tier with the idea of making sure
-they weren't taken into account during the computation of the
-`dependentlibs.list`.  Unfortunately, `dependentlibs.list` is itself
-computed during `misc`, so we have an unfortunate race condition where
-sometimes libraries might wind up in the list and sometimes they won't.
-
-For this particular case, we can follow what we already do for ICU and
-ignore the library, especially since we're dynamically loading the
-library anyway.
-
-Differential Revision: https://phabricator.services.mozilla.com/D79147
-
-diff --git a/toolkit/library/dependentlibs.py b/toolkit/library/dependentlibs.py
---- a/toolkit/library/dependentlibs.py
-+++ b/toolkit/library/dependentlibs.py
-@@ -107,18 +107,20 @@ def dependentlibs(lib, libpaths, func):
-         if dep in deps or os.path.isabs(dep):
-             continue
-         for dir in libpaths:
-             deppath = os.path.join(dir, dep)
-             if os.path.exists(deppath):
-                 deps.update(dependentlibs(deppath, libpaths, func))
-                 # Black list the ICU data DLL because preloading it at startup
-                 # leads to startup performance problems because of its excessive
--                # size (around 10MB).
--                if not dep.startswith("icu"):
-+                # size (around 10MB).  Same thing with d3dcompiler_47.dll, but
-+                # to a lesser extent, and we were going to dynamically load it
-+                # anyway.
-+                if not dep.startswith(("icu", "d3dcompiler_47")):
-                     deps[dep] = deppath
-                 break
- 
-     return deps
- 
- def gen_list(output, lib):
-     libpaths = [os.path.join(substs['DIST'], 'bin')]
-     binary_type = get_type(lib)

+ 14 - 0
bug1240930-253/mozilla/orig/series-old

@@ -0,0 +1,14 @@
+1443208-1only-62a1.patch
+1454912-2no1-62a1.patch
+1454912-3-62a1.patch
+1454912-4-62a1.patch
+1461383-62a1.patch
+1470552-62a1.patch
+1642032-1-79a1.patch
+1642032-2-79a1.patch
+1642032-3-79a1.patch
+1464128-PARTIAL-62a1.patch
+# stop here for now
+1437942-62a1.patch
+1240930-80a1.patch
+1457321-1only-62a1.patch

+ 0 - 11
bug1240930-253/mozilla/series-append

@@ -1,14 +1,3 @@
-1443208-1only-62a1.patch
-1454912-2no1-62a1.patch
-1454912-3-62a1.patch
-1454912-4-62a1.patch
-1461383-62a1.patch
-1470552-62a1.patch
-1642032-1-79a1.patch
-1642032-2-79a1.patch
-1642032-3-79a1.patch
-1464128-PARTIAL-62a1.patch
-# stop here for now
 1437942-62a1.patch
 1240930-80a1.patch
 1457321-1only-62a1.patch