3535 Commits

Author SHA1 Message Date
Mike Hommey
355ab37a8f Bug 1434765 - Properly reject invalid variables in #if{,n}def. r=froydnj
The invalid variable test for #if{,n}def was only checking that the
first character in the variable was alphanumeric or underscore, not
the other characters.

More generally, preprocessor instructions were also cut out such that
whitespaces before and after arguments were part of the arguments.

There's one place in layout/tools/reftest/manifest.jsm that was using
a broken pattern, making the test never true, which, once fixed, unveils
broken tests, so the branch that was never used is removed.

--HG--
extra : rebase_source : d1fe8a299203a29c0906ff99054c326acd135000
2018-02-01 10:40:59 +09:00
Nick Alexander
4bc7052253 Bug 1386040 - Write .purgecaches sentinels during |mach watch|. r=gps
Right now, the "restart flow" that combines |mach watch| with the
Quick-Restart Firefox for Desktop shortcut key is frustrated by
inconsistencies writing the .purgecaches sentinels for the
application.  This commit uses recent work from
https://bugzilla.mozilla.org/show_bug.cgi?id=1368699 to write the
sentinels each time |mach watch| updates the object directory.

MozReview-Commit-ID: 62Aa85oT1SE

--HG--
extra : rebase_source : 746bbe5c6f1555e8b729cbbbc1f8ca57110ae9ba
2018-01-19 14:40:51 -08:00
Nick Alexander
edf219ba3b Bug 1411654 - Part 1: Upgrade to Android-Gradle 3.0+ and build-tools;26.0.2. r=maliu
New Android-Gradle plugins pin the build-tools version, and we want to
be consistent between Gradle and moz.build.

MozReview-Commit-ID: ApWS4rHzPuH

--HG--
extra : rebase_source : 22008e9333b15c594ce26c2a52f67396d6e3ab84
extra : source : f918500d9cf5112b70bc8e0a120df435b02252b7
2017-10-26 11:00:36 -07:00
Nick Alexander
c1ae449401 Bug 1411654 - Pre: Gradle is no longer experimental; IntelliJ not supported. r=maliu
IntelliJ should still work, but we're committed to Android Studio at
this point.

MozReview-Commit-ID: 3BaXB4dh4vA

--HG--
extra : rebase_source : 0bf39a7d8daddc9a5c74182cf266f5d01d17acc8
extra : source : 901b304603d9d4816856d560c61387501efceadc
2017-11-15 13:36:02 -08:00
Nick Alexander
4161679514 Bug 1368699 - Write .purgecaches sentinels every |mach build|. r=gps
This adds a new `post_build` step to each `BuildBackend`
implementation, and uses it to write .purgecaches after every |mach
build| invocation -- including after |mach build TARGET| invocations.
This approach should be more robust than the existing recursive-Make
based solution, which seems to not write the .purgecaches files in
some situations.

In addition, the recursive-Make solution does not generalize to other
backends, in particular Tup.  It is possible that the Tup backend will
handle writing the .purgecaches sentinel as part of its regular build
process, but discussions with mshal suggest that there's no convenient
way for Tup to write .purgecaches only when something *changes* during
the build.  That is, Tup can achieve the behaviour implemented by this
patch, but it's not easier to do better by not writing .purgecaches
when the caches do not in fact need to be purged.

I elected to bake in the special knowledge of
--enable-application=browser and macOS here since this whole process
is special.  If we need to generalize, we could add a moz.configure
option specifying the purgecaches directories, but it doesn't seem
worth it right now.

The ideal approach would be to determine FINAL_TARGET from the
application directory, but that is determined by DIST_SUBDIR.  In
addition, it's not clear how to present that information to the
post-build step in a build-backend agnostic manner.

This will require tweaking as we migrate the macOS bundle handling to
moz.build, especially in browser/app.  See
https://bugzilla.mozilla.org/show_bug.cgi?id=1223748, which could
improve this significantly.

MozReview-Commit-ID: 63KZy18D23i

--HG--
extra : rebase_source : e973d065cd91e965f4103ed2732858e2e7a9c546
2018-01-31 09:25:12 -08:00
Bogdan Tara
1f15df5f24 Merge mozilla-central to mozilla-inbound. a=merge CLOSED TREE 2018-01-31 12:11:39 +02:00
Marco Castelluccio
8a2bdd59ec Bug 1431388 - Rewrite LCOV files on test machines. r=chmanchester,jmaher 2018-01-24 22:58:22 +01:00
Marco Castelluccio
c15234e886 Bug 1431379 - Disable assertion that checks that rewritten source files exist. r=chmanchester 2018-01-29 20:01:26 +01:00
Marco Castelluccio
94bc709ac5 Bug 1431379 - Move ChromeManifestHandler class in a separate file. r=chmanchester 2018-01-25 15:52:34 +01:00
Marco Castelluccio
978b39e16d Bug 1431379 - Package lcov rewriter and its dependencies in the common test archive. r=chmanchester 2018-01-24 22:48:50 +01:00
Coroiu Cristina
04dc0e7243 Merge mozilla-central to autoland a=merge on a CLOSED TREE 2018-01-31 02:14:54 +02:00
Coroiu Cristina
4854a65d8c Backed out 3 changesets (bug 1368699) for bustage on Android L10n nightlies a=backout
Backed out changeset e16fc8abd345 (bug 1368699)
Backed out changeset 35a5db01b6ae (bug 1368699)
Backed out changeset 7297a1e8c4ff (bug 1368699)
2018-01-31 01:59:23 +02:00
Nick Alexander
e30619cc86 Bug 1368699 - Write .purgecaches sentinels every |mach build|. r=gps
This adds a new `post_build` step to each `BuildBackend`
implementation, and uses it to write .purgecaches after every |mach
build| invocation -- including after |mach build TARGET| invocations.
This approach should be more robust than the existing recursive-Make
based solution, which seems to not write the .purgecaches files in
some situations.

In addition, the recursive-Make solution does not generalize to other
backends, in particular Tup.  It is possible that the Tup backend will
handle writing the .purgecaches sentinel as part of its regular build
process, but discussions with mshal suggest that there's no convenient
way for Tup to write .purgecaches only when something *changes* during
the build.  That is, Tup can achieve the behaviour implemented by this
patch, but it's not easier to do better by not writing .purgecaches
when the caches do not in fact need to be purged.

I elected to bake in the special knowledge of
--enable-application=browser and macOS here since this whole process
is special.  If we need to generalize, we could add a moz.configure
option specifying the purgecaches directories, but it doesn't seem
worth it right now.

The ideal approach would be to determine FINAL_TARGET from the
application directory, but that is determined by DIST_SUBDIR.  In
addition, it's not clear how to present that information to the
post-build step in a build-backend agnostic manner.

This will require tweaking as we migrate the macOS bundle handling to
moz.build, especially in browser/app.  See
https://bugzilla.mozilla.org/show_bug.cgi?id=1223748, which could
improve this significantly.

MozReview-Commit-ID: 63KZy18D23i

--HG--
extra : rebase_source : c5f75192f1b77f08611662f51caa92dcb1ca802f
2018-01-23 19:18:16 -08:00
Nick Alexander
b8d28049fd Bug 1433285: Extract classes*.dex from .ap_ --with-gradle. r=gps,snorp
Right now, we only expect classes.dex, and even --with-gradle we copy
it out of $topobjdir/mobile/android/base.  This commit changes that
for --with-gradle: we only take classes.dex from the given .ap_ file,
and we also handle multiple classesN.dex files (for future multi-dex
support).  The moz.build system stays the same.

This avoids an issue with newer Android-Gradle plugins, where the
classes.dex produced could be either in dex/ or in dexMerger/,
depending on whether any external libraries needed merging.  By
extracting classes.dex from the .ap_ file, we don't need to know what
Gradle build steps actually occur.

The classes.dex in the package-manifest.in has been irrelevant since
Bug 1260241.

MozReview-Commit-ID: FozKwjTcMzU

--HG--
extra : rebase_source : 62b18c7ffe596be73cec4c9565333eac222b018e
2018-01-24 22:09:48 -08:00
Nick Alexander
00bbcb11bb Bug 1429815 - Fix InstallManifest::add_entries_from with non-trivial base. r=gps
There's a bug in InstallManifest::add_entries_from: some of the
manifest entries bake their destination into both the manifest key and
the manifest value, and add_entries_from with a non-empty "base"
parameter to prepend to the destination only updates the manifest key
and not the value.

This bug causes |mach watch| to fail to _read_ the unified manifest
that aggregates all of the build manifests relevant to |mach watch|
that |mach build-backend -b FasterMake| successfully _wrote_, because
the manifest keys are validated against the manifest values written to
disk.

I see no way to address this other than to manually reach into the
manifest values and patch the internal destination parameter, which
this patch does.

MozReview-Commit-ID: FVyRB41NnHa

--HG--
extra : rebase_source : 23eb18ddc0452955539ce2e7a6d7bbfd083c940c
2018-01-18 16:58:07 -08:00
Chris Manchester
e6de0d9e04 Bug 1434125 - Add xpidl + rust command line arguments and output dependencies to the tup backend. r=mshal
MozReview-Commit-ID: 9DsymfiOB8N

--HG--
extra : rebase_source : 225607b6dc99cc22f50b0db8a1f8b6bbf46d64ea
2018-01-29 15:44:58 -08:00
Andrew Halberstadt
3684054b5d Bug 1433974 - Update BUG_COMPONENT for some of the new Testing components, r=jmaher
MozReview-Commit-ID: 7jQnnAhOzEr

--HG--
extra : rebase_source : af1c9dca779c6089b5cc062eea81ef9945133d48
2018-01-29 12:57:54 -05:00
Andrew Halberstadt
a8b5fc493f Bug 1433912 - [lint] Only run codespell linter on python/mozlint and tools/lint for now, r=sylvestre
This is a bustage fix that needs to get out quickly. Once landed we can take
the time to enable it on more directories, or preferably change it to a
blacklist.

MozReview-Commit-ID: Gbf7q2L0tg3

--HG--
extra : rebase_source : a58ae64c655b24e686710a663d4538b4cfe020f7
2018-01-29 10:25:54 -05:00
Sylvestre Ledru
61536137bd Bug 1432892 - Comment the npm package dependency until Debian brings it back r=standard8
MozReview-Commit-ID: BeWtC943jw7

--HG--
extra : rebase_source : 5bb8b3315674b5c63e22c8ebbb486bc04b6267ed
2018-01-26 13:53:19 +01:00
Jan Beich
9f9d8720a3 Bug 1433395 - FreeBSD bootstrap: install LLVM as Mesa dependency. r=froydnj
Firefox generally supports the same range of LLVM versions as Mesa.
Instead of regularly updating it just pull Mesa drivers which will
be required by WebRender, anyway.

MozReview-Commit-ID: DiK4TD9tWe0

--HG--
extra : rebase_source : 5dd9c8c46ae79deee8f2fd887b27fddbc30fc22d
2018-01-25 10:27:51 +00:00
Chris Manchester
94906d6110 Bug 1432643 - Store gn gen output in the objdir per project. r=nalexander
MozReview-Commit-ID: 5yPGlwqfhho

--HG--
extra : rebase_source : 16b82d0d17347ec891089eefb5b9bfa07634a53b
2018-01-23 14:55:11 -08:00
Botond Ballo
de0cdedea7 Bug 1432919 - Configure generated eclipse projects to remove trailing whitespace in edited lines. r=jwatt
MozReview-Commit-ID: 6naw8sbWqKT

--HG--
extra : rebase_source : 435e24fd33e51fcf84ac8ad64a63c59a7827907b
2018-01-24 19:03:33 -05:00
Andrew Halberstadt
529aad2e2c Bug 1430825 - [mozlint] Split work up by paths instead of by linters, r=standard8
The initial motivation for this patch, was to prevent command lines that are
too long on Windows. To that end, there is a cap to the number of paths that
can be run per job. For now that cap is set to 50. This will allow for an
average path length of 160 characters, which should be sufficient with room to
spare.

But another big benefit of this patch is that we are running more things in
parallel. Previously, mozlint ran each linter in its own subprocess, but that's
it. If running eslint is 90% of the work, it'll still only get a single
process. This means we are wasting cores as soon as the other linters are
finished.

This patch chunks the number of specified paths such that there will be N*L
jobs where 'N' is the number of cores and 'L' is the number of linters.  This
means even when there's a dominant linter, we'll be making better use of our
resources. This isn't perfect of course, as some paths might contain a small
number of files, and some will contain a very large number of files.  But it's
a start

A limitation to this approach is that if there are fewer paths specified than
there are cores, we won't schedule enough jobs per linter to use those extra
cores. One idea might be to expand specified directories and individually list
all the paths under the directory. But this has some hairy edge cases that
would be tough to catch. Doing this in a non-hacky way would also require a
medium scale refactor.

So I propose further parallelization efforts be destined for follow-ups.

MozReview-Commit-ID: JRRu13AFaii

--HG--
extra : rebase_source : 242fb71fe0af8bd2a981bd10a7216bb897fe00ac
2018-01-16 16:01:20 -05:00
Jan Beich
d3df765835 Bug 1433036 - OpenBSD bootstrap: node-devel package doesn't exist. r=froydnj,gaston
lang/node aka node package is what actually installs node and npm executables.
https://cvsweb.openbsd.org/cgi-bin/cvsweb/ports/lang/node/pkg/PLIST?rev=HEAD

MozReview-Commit-ID: H9lZGcHmEuR

--HG--
extra : rebase_source : 31a6259c3c6890f77f3f65054c21a13af2d3aff2
2018-01-25 07:05:22 +00:00
Jan Beich
0a1567442d Bug 1433036 - FreeBSD bootstrap: add npm for linting after bug 1433036. r=froydnj
Downstream npm package already depends node package, no need to
specify it explicitly. Also, node package refers to the latest NodeJS
but npm package can be built against an older version.

MozReview-Commit-ID: KeuSFEKeStw

--HG--
extra : rebase_source : ac3ab14519f4edd8bcb5b77cad64eeaed16d2751
2018-01-25 07:02:44 +00:00
Ralph Giles
0f7ccae18e Bug 1430934 - mozboot: Update to rust 1.23.0. r=nalexander
Have `./mach boostrap` update users to at least rust 1.23.0,
which is the current stable release.

MozReview-Commit-ID: 7ukx7shu07e

--HG--
extra : rebase_source : 82ea7fd65901f0e9e00e961d157cf113d82b1d4e
2018-01-16 15:07:14 -08:00
Kartikaya Gupta
d4c9e4740d Bug 1432223 - Add an --all-crates option to mach cargo check, to check all the crates. r=froydnj
MozReview-Commit-ID: 2nst2ctsI6s

--HG--
extra : rebase_source : 92212248ae645098b0bd75254d9ba5075c076a90
2018-01-22 12:46:29 -05:00
Gabriele Svelto
2981b63774 Bug 1432954 - Make |mach bootstrap| use the latest version of Oracle's JDK when bootstrapping Fennec on Gentoo; r=nalexander
MozReview-Commit-ID: 40xYQqpMy9O

--HG--
extra : rebase_source : 84b3f8832b5f393a25357354d94ec94c9d7e53ed
2018-01-24 22:56:36 +01:00
Cosmin Sabou
7e6e71746a Merge mozilla-central to autoland. a=merge on a CLOSED TREE 2018-01-25 00:04:12 +02:00
Chris Manchester
83f62e19ad Bug 1431229 - Populate IPDLCollection from the emitter rather than the common backend. r=mshal
MozReview-Commit-ID: LSRypNDr7G8

--HG--
extra : rebase_source : 64c805abd9899ea5edb2681b7c497ed5ae3d5539
2018-01-24 13:55:06 -08:00
Chris Manchester
8eb10b3d45 Bug 1431229 - Populate WebIDLCollection from the emitter rather than the common backend. r=mshal
MozReview-Commit-ID: JVaoPF53rhY

--HG--
extra : rebase_source : 91fb470d5e1cc616a19a839542f499aa58dbfd4d
2018-01-24 13:55:06 -08:00
Chris Manchester
dc3756ba9d Bug 1431879 - Use sorted iterators when generating moz.build files from gn to make the output deterministic. r=froydnj
MozReview-Commit-ID: BrijC37ErCP

--HG--
extra : rebase_source : a96a4aaadc6f6ee75a0de534cad8a9e87a9f4dbb
2018-01-23 19:33:08 -08:00
Marco Castelluccio
47b9708b4a Bug 1431349 - Add additional tests for UrlFinder and chrome_map preprocessor info generation. r=chmanchester
--HG--
extra : rebase_source : 838a6b114e433f9179a1e3294ab53d730b672073
2018-01-23 16:00:58 +01:00
Marco Castelluccio
99049e0dcd Bug 1431349 - Fix lcov rewriter tests with the new LcovFileRewriter and UrlFinder constructors. r=chmanchester
--HG--
extra : rebase_source : 27ef8000d97152c6b27f35b9ec1a065dc0c27088
2018-01-19 11:02:05 +01:00
Marco Castelluccio
8ee287cc7c Bug 1431349 - Store some information about build configuration in chrome-map.json, so that the lcov rewriter doesn't need to import buildconfig. r=chmanchester
--HG--
extra : rebase_source : b84ea5953a64b367cb31c253a30842e698118e81
2018-01-18 12:52:48 +01:00
Marco Castelluccio
6ae73dfbcf Bug 1431723 - Actually use URL overrides in the LCOV rewriter. r=chmanchester
--HG--
extra : rebase_source : cb31f4f193a7fcda9db6c6be7376c01554013c87
2018-01-19 12:46:43 +01:00
Marco Castelluccio
a69b08ec8f Bug 1402539 - Ignore query parameters when rewriting URLs. r=chmanchester
--HG--
extra : rebase_source : 3f1c8c38955b370d36410da1254fc80a19ef932f
2018-01-23 16:00:47 +01:00
Marco Castelluccio
8073360e69 Bug 1402539 - Update test_lcov_rewrite to use new generate_pp_info function. r=chmanchester
--HG--
extra : rebase_source : 870e007546e5a958d964f8c4054db77e54408c8c
2018-01-19 10:51:21 +01:00
Marco Castelluccio
7930ff0189 Bug 1402539 - Parse install manifest when generating the chrome-map file. r=chmanchester
--HG--
extra : rebase_source : 0f519d15470c88f792a93366e5481e76ff4d96f0
2018-01-18 13:36:28 +01:00
Marco Castelluccio
6b44872a27 Bug 1402539 - Don't check for the existence of the files, check if they are in the install info. r=chmanchester
--HG--
extra : rebase_source : 03d823fee0a286b8c17f380f9b15584d920f74c4
2018-01-18 11:51:48 +01:00
Marco Castelluccio
16f4891262 Bug 1402539 - Store relative paths in the chrome-map.json file. r=chmanchester
--HG--
extra : rebase_source : 5b8237855bcbfcd0a46cbb792123b1343f074052
2018-01-18 11:17:31 +01:00
Marco Castelluccio
a12e141983 Bug 1402539 - Generate preprocessor information for lcov rewriting at build time. r=chmanchester
--HG--
extra : rebase_source : bad1d80838a930bd66aa88394065f9ea955ab237
2018-01-18 11:12:28 +01:00
Nika Layzell
a8351a819f Bug 1293362 - Part 5: Allow implementing xpcom interfaces from rust code with a custom derive, r=froydnj
MozReview-Commit-ID: 90Yv3H40jZW
2018-01-23 17:27:28 -05:00
Nika Layzell
c33284aec0 Bug 1293362 - Part 4: Generate runtime bindings for calling xpcom methods from rust, r=froydnj
MozReview-Commit-ID: K37KyHkKsSl
2018-01-23 17:27:26 -05:00
Kartikaya Gupta
a2063aef65 Bug 1432222 - Actually default cargo check to gkrust when invoked without any crate arguments. r=froydnj
MozReview-Commit-ID: JIgippNiBP

--HG--
extra : rebase_source : 256682c3664ac14ddb7a7cf5cf0089e8612ac022
2018-01-22 12:40:28 -05:00
Mike Hommey
a9e5e80cfd Bug 1431193 - Use taskgraph.parameters.load_parameters_file in mach artifact toolchain. r=dustin
Back when the mach artifact toolchain code was written, there was no
official way to get a default set of parameters for taskgraph
generation. As of bug 1401199, that is not true anymore, so we can now
use that instead of manually set parameters and hope that doesn't break,
which happened with bug 1430823. This change should make things more
future proof.

This also reverts the changes from changeset 3a8491857651, which fixed
the same issue in a slightly different way.

--HG--
extra : rebase_source : 188446bf254551b9e7b98d51735e3026b835e76d
2018-01-18 16:24:19 +09:00
Dorel Luca
a066bff27d Merge mozilla-inbound to mozilla-central r=merge a=merge 2018-01-18 11:43:47 +02:00
Mike Hommey
dbd4c4810a Bug 1428608 - Forbid / or !/ in LOCAL_INCLUDES. r=froydnj
And remove the two cases that currently set that, without actually using
it. The webrtc gtest one never relied on it, and the gfx one was added
in bug 1427668 for a single header, and the corresponding #includes were
changed in bug 1428678.

--HG--
extra : rebase_source : ebb3aed6ff8e3438d4a2f011725cf1a15986fee6
2018-01-17 17:10:20 +09:00
Gregory Szorc
e9cbe9727b Bug 1431226 - Reference proper function and allow loading hgrc; r=nalexander
This fixes a regression in 195e88aab631 (bug 1429094).

When I reviewed that changeset, I didn't realize there were callers
of the renamed function outside the file.

The other caller (changed in this commit) needs to interact with the
repository. This may require loading extensions. So we can no longer
unconditionally disable the loading of hgrc. We add an argument to
control the loading of hgrc to support this.

MozReview-Commit-ID: 8AkPhvtC1VH

--HG--
extra : rebase_source : b2bf3dcc52ac6bdeb86ea56923b9eaea0771739e
2018-01-17 14:29:13 -08:00
Tiberius Oros
0f3b1d6ace Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-01-18 00:28:57 +02:00