Commit Graph

3686 Commits

Author SHA1 Message Date
Zibi Braniecki
0dd3872327 Bug 1432338 - Introduce sync-brand.ftl. r=flod
MozReview-Commit-ID: Hs48yFaCMPf
2018-02-12 11:29:13 -08:00
Nick Alexander
93040322fa Bug 1439742 - Allow {AB_CD} and {AB_rCD} in LOCALIZED_GENERATED_FILES. r=ted.mielczarek
There are a lot of choices and moving pieces in this commit.  I elected
to include the mechanics and the target use case in the same commit so
that readers can compare and contrast the implementation and final
expression in one review window.

- Initially, I wanted to make the {AB_CD} substitutions in
LOCALIZED_FILES and not in LOCALIZED_GENERATED_FILES.  However, I ran
into conceptual blockers doing this.  Fundamentally, LOCALIZED_FILES
is FINAL_TARGET_FILES, and my use case should _not_ be putting files
anywhere near dist/bin.  In addition, LOCALIZED_FILES
(FINAL_TARGET_FILES) is handled using manifests, which would need to
grow locale-aware functionality to handle this.  That's not desirable.
In addition, if we use manifests, then we lose the powerful locality
of |mach build mobile/android{/base}| re-generating changed
locale-dependent resources.  This is similar to how the build system
plumbs dist/idl manifest processing throughout the build: we're
repairing local workflows after moving work into a global process.
For these reasons, this doesn't support {AB_CD} in LOCALIZED_FILES.

- There is even another layer of complexity!  There are two axes
involved with these files: AB_CD controls localization and the Make
target controls destination.  For the record, it is:

regular builds - AB_CD unset
multi-locale builds - AB_CD set
single-locale repacks - AB_CD set

For the record, the existing logic (before any changes) is:

regular builds - Make target is `libs` in mobile/android/base/locales
multi-locale builds - Make target is `chrome-%` in mobile/android/base/locales
single-locale repacks - Make target is `libs` in mobile/android/base/locales

This commit adds targets for both destinations, and uses Make
chrome-%:: and libs:: magic to control what is invoked in the various
situations.  Tricky!

- I added MERGE_RELATIVE_FILES in order to be able to follow-up this
patch with more patches that will get rid of
m/a/base/locales/{moz.build,Makefile.in} altogether, and fold this work
into m/a/base.  As it stands, we're already reaching from
m/a/base/locales all the way out to
mobile/locales/.../region.properties, so the existing code doesn't
follow the layout expected between mozilla-central and
l10n-central/$(AB_CD).  But that'll impedance will get worse as we
improve the build system dependencies, not better, so we should grow
support for localized resources that aren't exactly as expected.

- I chose to follow Python's syntax for string substitutions.  I
would have preferred to mark files that should be localized with a
leading '%'... but I took that for filesystem absolute paths in
moz.build files already.  I also considered @AB_CD@ to echo the
preprocessor, but didn't want to open the door to an expecation that
_all_ preprocessor DEFINEs will work in the way {AB_CD} does.

- The generate_*py script changes required a bit of a hack to "turn
off" locale dependent resources.  This would have been nicer if we had
marked localized resources with '%'... but we didn't.  See the
--fallback flag.  The real reason this is needed is that we're doing
work which is more like the work of compare-locales (merging
locale-dependent resources) at build-time rather than repack time.  I
don't know why that's the case -- probably when we (I) implemented it,
compare-locales and the whole l10n process was entirely opaque.  It's
not worth changing it now, so we use this --fallback flag approach.

- I didn't get to tup support.  This should gently fail without
breaking tup builds: any {AB_CD} substitutions just won't be
expanded.  I haven't a clue how this should work in tup in the future
(or, more generally, how to make any sense of repacks without
declaring the full set of expected locales at configure time.)

- strings.xml can't be a LOCALIZED_PP_FILES, since we need to
customize the output location based on AB_rCD, and since we need a
little more flexibility than PP_FILES gives for our inputs.

MozReview-Commit-ID: MyfIkNSEzt
2018-02-21 17:12:17 -08:00
Mike Shal
3a1ef4cbba Bug 1441275 - ignore js/src/shell OBJDIR_FILES in the tup backend; r=chmanchester
Without linking support in the tup backend, we don't produce a js
binary, so we can't copy it via OBJDIR_FILES yet.

MozReview-Commit-ID: AxqhHi84HIg
2018-02-22 16:15:18 -05:00
Ralph Giles
63daf4f595 Bug 1440449 - Remove codegen-units limit for debug builds. r=froydnj
Starting with Rust 1.24, the default codegen-units limit is 16,
with jobserver control to avoid overprovisioning. Remove our
previous fixed limit of 4 threads for debug builds.

For release, retain codegen-units=1 to make sure we get the
most complete optimization results.

Thanks to Simon Sapin for the suggestion.

MozReview-Commit-ID: FmYF4DcmBvt
2018-02-22 11:58:50 -08:00
Nick Alexander
4120fbbad1 Bug 1440428 - Fix: Don't install Proguard JAR in |mach bootstrap|. r=jchen
MozReview-Commit-ID: EOvKSE5z28P
2018-02-26 11:37:41 -08:00
Nick Alexander
439431d5b2 Bug 1440428 - Remove Proguard JAR entirely. r=jchen
The Proguard dependency is now managed by Gradle.

MozReview-Commit-ID: EOvKSE5z28P
2018-02-26 11:37:41 -08:00
Nick Alexander
153dc194d0 Bug 1440432 - Remove AAR exploding from configure. r=jchen
The moz.build Java JAR definitions are, of course, broken, but they
will be removed soon enough.

MozReview-Commit-ID: KIxqLDwd9I7
2018-02-23 12:16:51 -08:00
Nick Alexander
9e4d69ab20 Bug 1440757 - Don't invoke aapt in mobile/android/base/Makefile.in. r=jchen
I choose to clean a bunch of ANDROID_* moz.build cruft here, too,
since it's just passing dependencies between moz.build and
Makefile.in.  The replacement for all of this is to just use
GENERATED_FILES in moz.build, but it'll still take some work to get to
that.  (Why does this stuff exist?  GENERATED_FILES didn't exist and
was resisted when I built this stuff.)

MozReview-Commit-ID: D3GJqJNL0Ih
2018-02-23 11:57:28 -08:00
Nick Alexander
6a058cf9e1 Bug 1440743 - Part 2: Remove most of MOZ_BUILD_MOBILE_ANDROID_WITH_GRADLE. r=jchen
This is the easy stuff -- everything but mobile/android/base/Makefile.in.

MozReview-Commit-ID: 5x2z97AHUrR
2018-02-22 11:45:51 -08:00
Nick Alexander
d666d44e53 Bug 1440433 - Part 2: Remove ANDROID_APK_{NAME,PACKAGE}. r=jchen
The last APK produced using the ANDROID_APK_* moz.build/Makefile.in
mechanism was Robocop, so we can get rid of these now.

MozReview-Commit-ID: 9b08ZvvOAoC
2018-02-22 13:36:49 -08:00
Gregory Wlodarek
9fb48cb92c Bug 1434427 - Replace string for preferences confirmRestartPrompt to use "cancel" instead of "revert". r=flod
* Removed the revertNoRestartButton entry from the migration script as this no longer exists after this change

MozReview-Commit-ID: AGJ2OfYVPok
2018-02-16 13:34:18 -05:00
Sebastian Hengst
209115baf5 merge mozilla-central to mozilla-inbound on a CLOSED TREE 2018-02-24 03:11:04 +02:00
Coroiu Cristina
3022fa4b3d Merge mozilla-central to autoland a=merge on a CLOSED TREE 2018-02-23 20:05:10 +02:00
Zibi Braniecki
c2ed6fab3f Bug 1439452 - Use width instead of min-width for Find in Preferences box. r=flod
MozReview-Commit-ID: qCLLsXA9bG
2018-02-22 22:57:36 -08:00
Ben Hearsum
626619e7bf bug 1398799: mozharness script to create update verify configs without relying on patcher configs. r=nthomas 2018-02-23 06:00:02 -05:00
Chris Manchester
72da88c5cd Bug 1436959 - Use the correct case-insensitive sorted iterator when sorting lists in generated GN moz.build files. r=dminor
MozReview-Commit-ID: 9NY4cPF1awQ
2018-02-22 12:04:53 -08:00
Andrew Halberstadt
486ad033fd Bug 1434974 - [mozlint] Create a SummaryFormatter to help triage paths, r=jmaher
This formatter is useful for triaging paths when enabling new linters or
expanding existing ones. It works well with the -n/--no-filter option.

For example, if I wanted to look for candidates of new directories to enable
the codespell linter on, I could run:

./mach lint -l codespell -nf summary

This will print something like:
accessible: 429
dom: 142
layout: 15
testing: 53
etc..

If desired, you can also specify a depth by setting MOZLINT_SUMMARY_DEPTH. A
depth of 2 means results will be aggregated further down, e.g:

accesible/build: 129
accesible/ipc: 300
dom/indexedDB: 100
dom/workers: 42
etc..

The depth is always relative to the common path prefix of all results, so
running:

./mach lint -l codespell -nf python/mozbuild

Would expand all the directories under python/mozbuild (not topsrdir).

MozReview-Commit-ID: OiihLTpULA
2018-01-29 16:37:21 -05:00
Narcis Beleuzu
6946cfa455 Merge inbound to mozilla-central. a=merge 2018-02-16 11:49:59 +02:00
Ralph Giles
2b1b52dbf1 Bug 1430928 - mozboot: install rust 1.24. r=froydnj DONTBUILD
Have `./mach boostrap` update users to at least rust 1.24.0,
which is the current stable release.

MozReview-Commit-ID: 2sma2p3BktJ
2018-02-15 17:07:37 -08:00
Zibi Braniecki
85527f89ee Bug 1424682 - Migrate the chrome of Preferences to the new Localization API. r=flod,jaws
MozReview-Commit-ID: ALnFUmnJMDB
2017-12-18 23:19:13 -08:00
Nick Alexander
d0efb99e44 Bug 1437201 - Part 2: Install llvm on macOS when bootstrapping mobile/android. r=froydnj
This was just an oversight when adding Stylo bindgen support to |mach
bootstrap| (I assume).

MozReview-Commit-ID: 89N6omXGUdy
2018-02-09 14:33:30 -08:00
Zibi Braniecki
bca5a1db1e Bug 1424683 - Introduce brand.ftl and migrate brand-short-name to it. r=Pike
MozReview-Commit-ID: Cl0jQEkuD8q
2017-12-18 21:46:49 -08:00
Chris Manchester
430152783f Bug 1437182 - Take IPDL/WebIDL generated sources into account when associating object files with linkables in the emitter. r=gps
MozReview-Commit-ID: BHABdAk3Esm
2018-02-12 18:41:43 -08:00
Chris Manchester
e1939f4aac Bug 1437182 - Note object files associated with linkables in the emitter. r=gps
MozReview-Commit-ID: 3IR8TolZpKs
2018-02-12 18:41:43 -08:00
Andreea Pavel
23853f9be1 Backed out 2 changesets (bug 1437182) for gecko decision task failure
Backed out changeset 588efc6f3520 (bug 1437182)
Backed out changeset 19497c8c5b6f (bug 1437182)
2018-02-13 03:55:56 +02:00
Chris Manchester
42ffde6d2b Bug 1437182 - Take IPDL/WebIDL generated sources into account when associating object files with linkables in the emitter. r=gps
MozReview-Commit-ID: BHABdAk3Esm
2018-02-12 17:40:22 -08:00
Chris Manchester
1c01e7915a Bug 1437182 - Note object files associated with linkables in the emitter. r=gps
MozReview-Commit-ID: 3IR8TolZpKs
2018-02-09 14:28:02 -08:00
Tom Prince
8083ec737e Bug 1434365: Allow repackaging thunderbird installer with mach; r=nalexander via IRC - DONTBUILD
Differential Revision: https://phabricator.services.mozilla.com/D515
2018-01-28 13:07:00 -07:00
Tom Prince
05c83293e0 Backed out changeset 9f602face4f8 (bug 1434365), didn't tag the reviewer correctly. 2018-02-11 16:24:07 -07:00
Tom Prince
dd37638011 Bug 1434365: Allow repackaging thunderbird installer with mach.
Differential Revision: https://phabricator.services.mozilla.com/D515
2018-01-28 13:07:00 -07:00
Dorel Luca
cbbff5a8f6 Backed out 2 changesets (bug 1437201) for Android build bustage on a CLOSED TREE
Backed out changeset 1a206d390b01 (bug 1437201)
Backed out changeset 04e61046bb44 (bug 1437201)
2018-02-10 02:40:11 +02:00
Nick Alexander
4d727d3db5 Bug 1437201 - Part 2: Install llvm on macOS when bootstrapping mobile/android. r=froydnj
This was just an oversight when adding Stylo bindgen support to |mach
bootstrap| (I assume).

MozReview-Commit-ID: 89N6omXGUdy
2018-02-09 14:33:30 -08:00
Nick Alexander
bc5345b317 Bug 1427790 - Bootstrap caskroom/versions/java8 for macOS+brew+mobile/android. r=froydnj
Two things have changed.  One, Brew's java package became Java 9,
which doesn't work for building on Android.  Two, Brew's cask system
also changed, requiring some small updates.

In order to actually use the install java toolchain, we need to use
the --with-java-bin-path configure option, which required some small
tweaks to the suggested mozconfigs.

MozReview-Commit-ID: JlZpdqaOkp0
2018-02-09 11:30:28 -08:00
Andi-Bogdan Postelnicu
208087c28c Bug 1405554 - Merge clang-format with clang-tidy under the same package from toolchains. r=gps
MozReview-Commit-ID: 1XokTUVmVPL
2018-02-09 09:01:17 +02:00
Margareta Eliza Balazs
525064b391 Backed out changeset 773a25b97a66 (bug 1405554) for f8 lint failure in /builds/worker/checkouts/gecko/tools/mach_commands.py on a CLOSED TREE 2018-02-08 19:36:21 +02:00
Andi-Bogdan Postelnicu
978c3dd258 Bug 1405554 - Merge clang-format with clang-tidy under the same package from toolchains. r=gps
MozReview-Commit-ID: 1XokTUVmVPL
2018-01-31 11:02:23 +02:00
Mike Hommey
8108a6d7ad Bug 1434765 - Properly reject invalid variables in #if{,n}def. r=froydnj,nalexander
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.
Subtly, some legitimate strings end with what, in ISO-8859-1, is
considered as whitespaces, and because the preprocessor largely works
on byte strings (str), and because the regexps are using re.U, those
characters (e.g. 0xa0) that can legitimately appear in byte strings of
UTF-8 encoding, are treated as whitespaces. So we remove the re.U from
the instruction regexp, so that only plain ascii whitespaces only are
stripped out.

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.
2018-02-01 10:40:59 +09:00
Botond Ballo
83d5fcd90a Bug 1325490 - Give a helpful error message if eclipse project generation is invoked and 'eclipse' is not in the PATH. r=nalexander
MozReview-Commit-ID: B9CfN3WHZZO
2018-02-07 15:22:43 -05:00
Manish Goregaokar
1e5abab110 Bug 1436251 - Set codegen-units=1 in --enable-release; r=glandium
MozReview-Commit-ID: 8kGTFAXfB2i
2018-02-06 19:06:03 -08:00
Narcis Beleuzu
e6c2ab7f12 Merge inbound to mozilla-central. a=merge 2018-02-06 11:54:42 +02:00
Andrew Halberstadt
2359a4b0a5 Bug 1429457 - [mozlint] Create formal 'setup' mechanism for bootstrapping lint dependencies, r=gbrown
This allows linters to define a 'setup' method which will automatically be
called by |mach lint| before running the linter. Users can also explicitly run
these methods (without doing any actual linting) by running |mach lint --setup|.

MozReview-Commit-ID: 74aY1pfsaX1
2018-01-25 13:40:02 -05:00
J. Ryan Stinnett
ac9effb74e Bug 1408643 - Fix up Proguard install command from configure. r=nalexander
MozReview-Commit-ID: nvUvoUzFLy
2018-02-02 09:43:18 -05:00
Andreea Pavel
2a08d29a22 Backed out changeset 3b7ef7afd156 (bug 1408643) for failing flake8 at /builds/worker/checkouts/gecko/build/moz.configure/java.configure:98:100 on a CLOSED TREE 2018-02-03 00:20:25 +02:00
J. Ryan Stinnett
bee9bbae11 Bug 1408643 - Fix up Proguard install command from configure. r=nalexander
MozReview-Commit-ID: nvUvoUzFLy
2018-02-02 09:43:18 -05:00
Andrew Halberstadt
3353b79e9c Bug 1434430 - [flake8] Fix blank 'except' statements r=rwood
This is a new issue that gets linted with flake8 3.5.0. Basically you should
never use a blank except: statement.

This will catch all exceptions, including KeyboardInterrupt and SystemExit
(which is likely not intended). If a catch all is needed, use
`except: Exception`.  If you *really* mean to also catch KeyboardInterrupt et
al, use `except: BaseException`.

Of course, being specific is often better than a catch all.

MozReview-Commit-ID: FKx80MLO4RN
2018-01-31 14:32:08 -05:00
Marco Castelluccio
b7d3e74dba Bug 1434938 - Fix printing warning when there are no valid records in the JSVM info files. r=chmanchester 2018-02-01 16:42:35 +01:00
Sebastian Hengst
b08028466b Backed out changeset d4582a286d6a (bug 1434765) for breaking build of Catalan language pack due to altered output. a=backout 2018-02-01 23:04:25 +02:00
Nathan Froyd
65d7f9b839 Bug 1412006 - part 2 - add an --ndk-only option to mozboot/android.py; r=nalexander
This option will be useful for our NDK repackaging task.
2018-02-01 09:59:23 -05:00
Nathan Froyd
846a324fc2 Bug 1412006 - part 1 - have a single point of truth for the NDK version; r=nalexander
...at least in mozboot/android.py.
2018-02-01 09:59:23 -05:00
Nathan Froyd
fc110134ed Bug 1435712 - make locating libstdc++ for the target/host smarter; r=nalexander
Depending on the compiler you use when --enable-stdcxx-compat, the
compiler can know about different libstdc++.so libraries that are not
suitable for your target.  This will manifest as an assertion in the
current libstdcxx.py file.  And then, when you change the assertion to
actually print out useful information, you will see things like:

/bin/ld: skipping incompatible /builds/worker/workspace/build/src/clang/bin/../lib/gcc/x86_64-unknown-linux-gnu/4.9.4/../../../libstdc++.so when searching for -lstdc++
/bin/ld: skipping incompatible /builds/worker/workspace/build/src/clang/bin/../lib/libstdc++.so when searching for -lstdc++

which libstdcxx.py misinterprets as candidates for libstdc++.so.

This patch attempts to remedy both situations by providing a more
informative error message when things go sideways and also filtering out
error messages from the linker.  You could argue that perhaps
--enable-stdcxx-compat shouldn't be getting set for such builds, but
this change seems reasonable enough on its own.
2018-02-05 16:07:16 -05:00