Граф коммитов

2198 Коммитов

Автор SHA1 Сообщение Дата
Mike Hommey f6cb862439 Fixup test_check_configure after bug 1260066 on a CLOSED TREE. r=me 2016-03-30 08:36:32 +09:00
Mike Hommey 9d9550f0f5 Fixup bug 1256573 to work on buggy older python on a CLOSED TREE. r=me 2016-03-30 08:15:44 +09:00
Mike Hommey f1ed025e8b Bug 1260066 - Don't allow to use sandbox primitives from anywhere but global scope and templates. r=nalexander
The initial goal of templates was to provide a way to write shorter
constructs for some generic tasks during configure. But the limitations
of the sandbox and the properties of templates made them used for more
general functions.

Consequently, this led to templates having to be available from
anywhere, which, in turn, led to difficult to introspect constructs.
With bug 1257823, we've made almost everything use set_config and
similar functions from the global scope, but we don't enforce that
those primitives are only used at the global scope.

This change does that: it enforces that primitives are only used at
the global scope. Or in templates.

Now, since templates were used for other purposes than generic uses
of other primitives, we now allow non-template functions to be declared.
Those can be used everywhere, but don't have access to the sandbox
primitives.
2016-03-30 07:08:00 +09:00
Mike Hommey 2a7c335181 Bug 1256573 - Remove the @advanced primitive. r=nalexander 2016-03-30 07:07:55 +09:00
Mike Hommey 9877dc7b96 Bug 1256573 - Switch configure tests to use @imports instead of @advanced. r=nalexander 2016-03-30 07:07:52 +09:00
Mike Hommey abc3477a74 Bug 1256573 - Add a new @imports primitive that allows to import modules into the decorated functions. r=nalexander
Currently, we have @advanced, that gives the decorated functions access
to all the builtins and consequently, to the import statement.
That is a quite broad approach and doesn't allow to easily introspect
what functions are importing which modules.

This change introduces a new decorator that allows to import modules one
by one into the decorated functions.

Note: by the end of the change series, @advanced will be gone.
2016-03-30 07:07:50 +09:00
Mike Hommey 0ea59bc1a8 Bug 1256573 - Add missing primitives to the ConfigureSandbox documentation. r=nalexander
Not directly related, but since this bug is about to add another primitive...
2016-03-30 07:07:48 +09:00
Mike Hommey 943acf7e2b Bug 1259351 - Properly sandbox functions that are decorated with templates. r=nalexander 2016-03-30 07:07:47 +09:00
Mike Hommey 6eee113ee8 Bug 1259960 - Make check_prog more flexible about the list of programs it will check. r=chmanchester 2016-03-30 07:07:42 +09:00
Mike Hommey 028ebf69ff Bug 1259960 - Make check_prog more flexible about the input it receives. r=chmanchester 2016-03-30 07:07:40 +09:00
Mike Hommey 18a002cd83 Bug 1259960 - Allow to pass a string to check_prog to describe what is being looked for. r=chmanchester
So far, we've been using the lowercase of the variable name, but it's
not enough for some special cases. Those special cases could do their
own business, but then, they'd have to duplicate 90% of check_prog,
which is less desirable.
2016-03-30 07:07:38 +09:00
Mike Hommey 29c3394b1b Bug 1259960 - s/DummyFunction/DependsFunction/. r=chmanchester
While DummyFunction is descriptive of what the instances are (and they
can't even be called), the various uses of isintance(obj, DummyFunction)
are kind of confusing, especially when they are in moz.configure land
(and this bug is about to add another one).
2016-03-30 07:07:37 +09:00
Mike Hommey cbf367717b Bug 1257516 - Make check_prog opt-in to the queued debug log messages. r=ted 2016-03-30 07:07:13 +09:00
Mike Hommey 97ea49f191 Bug 1257516 - Allow to assign Exceptions in the global scope. r=ted
But do not advertise it too much.
2016-03-30 07:06:26 +09:00
Mike Hommey c7b519d6df Bug 1257516 - Make the ConfigureOutputHandler keep some debug messages to print out when an error occurs. r=ted
The feature is made opt-in by using a context manager.
2016-03-30 07:06:20 +09:00
Mike Hommey a2c9191daf Bug 1257516 - Add a unit test for check_prog(). r=ted
At the same time, shell quote the result it prints if it needs to be.
2016-03-30 07:00:22 +09:00
Mike Hommey 0e183bb384 Bug 1257516 - Allow the log_handle given to the virtualenv manager to be a file-like object. r=ted
subprocess functions doesn't directly take file-like objects, so add a
minimalistic wrapper to do the right thing instead of subprocess.call
when given a file-like object.
2016-03-30 07:00:12 +09:00
Mike Hommey ba80937ba0 Bug 1257516 - Send the debug output from our logger to config.log. r=ted
And since the file is also used for old-configure, close our handle on
the file before spawning old-configure, and make old-configure append
there instead of truncating the file.
2016-03-30 07:00:07 +09:00
Mike Hommey 47d916d8f0 Bug 1257516 - Expose a sandboxed logger to moz.configure and use it. r=ted
This removes the warn() function and makes the die() function use the logger
instead of print.
2016-03-30 07:00:03 +09:00
Mike Hommey c15e6d00c5 Bug 1257516 - Initialize a logger for the ConfigureSandbox, and use it for the help. r=ted 2016-03-30 06:59:59 +09:00
Mike Hommey e22a5082f7 Bug 1257516 - Add a file-like class that sends writes to a callback. r=ted 2016-03-30 06:59:37 +09:00
Mike Hommey cf67fa8b15 Bug 1257516 - Add a logging handler class to print out configure output on stdout/stderr. r=ted 2016-03-30 06:58:09 +09:00
Nicholas Nethercote 0f418f3874 Bug 1253512 (part 1) - Overhaul DMD's "sampling". r=erahm.
DMD currently uses a very hacky form of "sampling" by default to avoid
recording stack traces for all blocks. This makes DMD run faster than when it
records all stack traces.

This patch changes the sampling method used; in fact, it avoids "sampling" at
all. The existence of all heap blocks is now recorded exactly, but by default
we only record an allocation stack for each heap block if a Bernoulli trial
succeeds. This choice works well because getting the stack trace is ~100x
slower than recording the block's existence.

Overall, this approach is simpler and it also gives better output -- the choice
of which blocks to record allocation stacks for is mathematically sound, no
stack trace gets blamed for allocations it didn't do, and block counts and
sizes are now always exact.

Other specific things changed.

- All notion of sampling is removed from the various data structures.

- The --sample-below option is removed in favour of --stacks={partial,full}.

- The format of the JSON output file has changed.

- The names of various test files have changed to reflect concept changes.

--HG--
rename : memory/replace/dmd/test/full-empty-cumulative-expected.txt => memory/replace/dmd/test/complete-empty-cumulative-expected.txt
rename : memory/replace/dmd/test/full-empty-dark-matter-expected.txt => memory/replace/dmd/test/complete-empty-dark-matter-expected.txt
rename : memory/replace/dmd/test/full-empty-live-expected.txt => memory/replace/dmd/test/complete-empty-live-expected.txt
rename : memory/replace/dmd/test/full-unsampled1-dark-matter-expected.txt => memory/replace/dmd/test/complete-full1-dark-matter-expected.txt
rename : memory/replace/dmd/test/full-unsampled1-live-expected.txt => memory/replace/dmd/test/complete-full1-live-expected.txt
rename : memory/replace/dmd/test/full-unsampled2-cumulative-expected.txt => memory/replace/dmd/test/complete-full2-cumulative-expected.txt
rename : memory/replace/dmd/test/full-unsampled2-dark-matter-expected.txt => memory/replace/dmd/test/complete-full2-dark-matter-expected.txt
rename : memory/replace/dmd/test/full-sampled-live-expected.txt => memory/replace/dmd/test/complete-partial-live-expected.txt
extra : rebase_source : 47d287405dc5e9075f08addaba49e879c2c6e23f
2016-02-24 14:42:22 +11:00
Mike Hommey 272cfa7a49 Bug 1259683 - Don't make imply_option() do anything when --help is on the command line. r=nalexander
This also adds the same tests that exist for set_config and set_define
and that would have caught the `configure --help` breakage this change
fixes.
2016-03-26 10:34:29 +09:00
Mike Hommey 2651933d3a Bug 1259683 - Forgotten change to test_configure.py before landing bug 1257823. r=nalexander
This was suggested during review, and was applied to 2 of the 3 patches
where this applied, and the imply_option tests were left out. This fixes
it.
2016-03-26 10:34:29 +09:00
Mike Hommey 7ff92bc0ec Bug 1259683 - Miscellaneous small cleanups in the mozbuild.configure module. r=nalexander
This is not related to the bug, but are drive-by cleanups.
2016-03-26 10:34:29 +09:00
Mike Shal d4bd3eb4ca Bug 1252931 - Add support for generic OBJDIR_FILES and OBJDIR_PP_FILES; r=gps
MozReview-Commit-ID: 6H435DeMHie
2016-03-17 09:13:36 -04:00
aleth 6da499d398 Bug 1259174 - Fix absolute paths in TEST_HARNESS_FILES. r=mshal
--HG--
extra : amend_source : 73b8a4ad68d24ff5f04c17d95423565070aac04b
2016-03-23 22:44:12 +01:00
Gregory Szorc 4a5c6aaf2d Bug 1259551 - Add --no-download to virtualenv.py invocation; r=ted
Before, virtualenv.py may have attempted to use 3rd party
(untrusted) pip indices when installing wheels for pip,
setuptools, and wheel. These dependencies are vendored in
the tree for a reason. So don't let virtualenv contact the
outside world.

MozReview-Commit-ID: 6BCU0WegJO1

--HG--
extra : rebase_source : 6231235486e8cfa784e67e8b18004dd63d8aaf36
2016-03-24 12:34:47 -07:00
Gregory Szorc 4262e28d06 Bug 1259551 - Upgrade vendored virtualenv to 15.0.1; r=ted
While we're addressing virtualenv foo, let's ensure we are running
the latest version. This also pulls in newer versions of pip (8.1.1),
setuptools (20.3), and wheel (0.29.0).

MozReview-Commit-ID: G5uSy66Kd6u

--HG--
extra : rebase_source : 804f230adcf77335c79a93537d9623ac3836d9bf
2016-03-24 12:21:55 -07:00
Mike Hommey 6a8ed3e4a8 Bug 1257823 - Move imply_option() to the global scope. r=nalexander
Like set_config and set_define, we move imply_option to the global
scope.
2016-03-24 09:04:28 +09:00
Mike Hommey 92c7aa3e65 Bug 1257823 - Keep track of the dependencies of @depends functions. r=nalexander
@depends functions are declared like the following:

  @depends('--option', other_function, '--other-option', ...)
  def ...

To simplify some of the processing related to those arguments it's
passed, keep a tuple of Option and DummyFunction objects corresponding
to those arguments.
2016-03-24 09:04:28 +09:00
Mike Hommey e5cde501da Bug 1257823 - Move set_define() to the global scope. r=nalexander
For the same reasons as set_config is being moved to the global scope,
we're moving set_define to the global scope here. An additional change
is that set_define is now part of the sandbox itself instead of being
defined within the sandbox, which makes it share the implementation
details with set_config.
2016-03-24 09:04:28 +09:00
Mike Hommey 7cd6c430c1 Bug 1257823 - Move set_config() to the global scope. r=nalexander
The way set_config is set currently makes it difficult to introspect
moz.configure files to know what configuration items are being set,
because they're hidden in the control flow of functions.

This makes some of the moz.configure more convoluted, but this is why
there are templates, and we can improve the recurring cases afterwards.
2016-03-24 09:04:28 +09:00
Mike Hommey 8e6cfd60f3 Bug 1257823 - Split ConfigureSandbox._db. r=nalexander
Currently, ConfigureSandbox._db stores two different kind of
information. This split those in two different instance variables
instead, making things clearer.
2016-03-24 09:04:28 +09:00
Mike Hommey ed5e2c39f5 Bug 1257823 - Move set_define() to the sandbox. r=nalexander
In order to make the transition to global set_define easier, move its
current definition from inside the sandbox to the sandbox itself.
2016-03-24 09:04:28 +09:00
Mike Hommey a8db2a2c62 Bug 1258619 - Properly sandbox functions inside a template. r=chmanchester
The way functions are being sandboxed in moz.configure land is that
their global namespace is being replaced with a limited and identifiable
dict. And we avoid re-wrapping a function that already received this
treatment.

The problem is that template functions have their global namespace
replaced, and any function that is defined within the template inherits
that global namespace. So when it comes time to wrap those functions
defined in templates with e.g. depends, we detect that they're already
wrapped although they are not, because we look if their global namespace
is of the recognizable type we use when replacing it.

So instead of looking at the global namespace type, keep track of all
functions that are wrapped.
2016-03-23 13:24:54 +09:00
Timothy Guan-tin Chien ebce64ec9e Bug 1257783 - mach-bootstrap: ask git user to clone hg.mozilla.org with git-cinnabar. r=gps
MozReview-Commit-ID: 8lkPECJCpEz

--HG--
extra : rebase_source : 835b76638071d8410ac0ed22709092e31cb8bb4f
2016-03-22 11:05:50 +08:00
Mike Hommey 68c5ab1790 Bug 1258615 - Remove the "magic" that sets a result from set_config() in @depends functions. r=chmanchester
Currently, if a @depends function doesn't have a return statement or
return None, a result is automatically set from all the set_config()
called from the function.

As we're going to move set_config to the global namespace, and as this
feature is only used once, and it's only used for something that was
written before ReadOnlyNamespace was exposed to the sandbox, we can
"safely" get rid of it.
2016-03-23 06:51:10 +09:00
Gregory Szorc 79ad6e2449 Bug 1258574 - Allow JARReader to read data already in memory; r=glandium
This will be needed to teach artifact builds to extract files from
omni.ja files whose content is loaded into memory (from a tar
archive).

MozReview-Commit-ID: LH2HkKx5Zj3

--HG--
extra : rebase_source : 7f6b176f0ef9fc87889151d1d02da62de8a455d8
extra : source : 266928b5a7615fa054c70adf0f649cbb3f085e8d
2016-03-21 16:36:22 -07:00
Ted Mielczarek 5986418419 bug 1257607 - Add Version type to moz.configure. r=glandium
This change adds a `Version` type to moz.configure which is a small
wrapper around `distutils.version.Version`. It's suitable for wrapping
version numbers in configure checks and doing equality or greater-than
less-than comparisons in a sensible way.

MozReview-Commit-ID: BOL6yvemulG

--HG--
extra : rebase_source : 3b463eac0499086f8acffda0d01418b6ab17f3d6
extra : amend_source : aebd6e40c408d9f868623b2f53fcdf7455e2fff5
2016-03-17 11:52:18 -04:00
Ted Mielczarek 8f2baa8e8b bug 1257542 - check_prog template should sanity check that progs is not a string. r=glandium
In Python parens around an expression without a trailing comma is not a tuple,
so ('foo') == 'foo'. This is really easy to screw up with check_progs, which
coerces progs to a list and would give you ['f','o','o'] in this case. This
patch enforces that the progs argument is a tuple or list and errors if it
is not.

MozReview-Commit-ID: 7BJZuF9B8D5

--HG--
extra : rebase_source : 5db9a6b4bb9ef7195c2513407810093bff5e9174
extra : amend_source : f67ab46c2ac00a2a95cfc67e9763ac12b690ac14
2016-03-17 11:04:12 -04:00
Carsten "Tomcat" Book f298917442 merge mozilla-inbound to mozilla-central a=merge 2016-03-17 11:00:17 +01:00
Richard Newman 89a12baeec Bug 1220184 - Eliminate Gingerbread compatibility. r=froydnj, r=nalexander
MozReview-Commit-ID: E5Ng6Y0IEU9

--HG--
extra : rebase_source : c65fae2ceaf486e536ea617e7912b3e8d97be755
extra : amend_source : cfd90e7b157a23fbe7a07e384d4702dadb603835
2016-02-24 09:25:14 -08:00
Mike Hommey c15884c85a Backout changeset 37f3e53ede1f (bug 1257049) because of bustage. 2016-03-16 11:22:43 +09:00
Mike Hommey 2891514755 Bug 1257049 - Stop spawning a separate process for config.status from configure.py. r=gps 2016-03-16 10:55:10 +09:00
Mike Shal 4c30a996ad Bug 1256033 - Allow GENERATED_FILES scripts to depend on other generated files; r=glandium
If we add an ObjDirPath as an input to a GENERATED_FILES script, we
should run it in the misc tier to ensure the dependent files are created
beforehand. We need to use Path objects instead of raw filenames in the
GeneratedFile object so the recursive make backend can distinguish
between source and objdir files.


MozReview-Commit-ID: 9thHTi75zdI
2016-03-11 19:25:24 -05:00
Mike Hommey 4ed6eca117 Bug 1257136 - Allow to pass configure options from mach configure. r=gps 2016-03-17 07:21:37 +09:00
Mike Hommey bc3a6199df Bug 1257104 - Allow options with choices and possibly no given values. r=ted
While rare, this is something we support for e.g. --enable-eme, where it
can be either given with no values, "adobe", some future other EME GMP
adapter names, or a combination of them.
2016-03-17 07:21:37 +09:00
Ted Mielczarek 7b1faa29bc bug 1255479 - make `mach python-tests` use TestResolver for discovery, make `mach test` work for python tests. r=nalexander
MozReview-Commit-ID: CK2Vh6gdnb0

--HG--
extra : rebase_source : 2b1b05224ade41ad500dc66116beb3b091db9cde
extra : amend_source : 349f7cc876383d873acb1c73c0118d394f39284d
extra : histedit_source : 6d1d44188bb3a4fc69da2900e8118ce2a88a5fd7
2016-03-10 12:30:10 -05:00
Ted Mielczarek d74aee95c9 bug 1255479 - add PYTHON_UNIT_TESTS to all-tests.json. r=nalexander
MozReview-Commit-ID: HJ6ohvEOgdX

--HG--
extra : rebase_source : c41a3ee2a78df27cb7bd71c7a9a7b6991461aaa1
extra : amend_source : c3379ade5a92924f76a1f262e33c7d60bd76bbcb
extra : histedit_source : 87fdbd85f3e5ccdeee9c3c9b5c7afc21da5e7827%2C215cb1cdd4185d1fa3c47cc7858fe309db11058a
2016-03-10 15:42:27 -05:00
Gregory Szorc 062d2e4c6b Bug 1253436 - Write out a machine readable file with binaries metadata; r=glandium
This will make it easier for binaries only archive generation to consult
the list of binaries that are relevant to packaging.

This does overlap somewhat with compile databases. Perhaps someday the
logic could converge.

While I was here, I cleaned up writing of the all-tests.json file to
avoid an intermediate string variable.

This patch adds to_dict methods on some frontend data types. There is
room to improve the serialization of these types. For example, we could
use __slots__ to drive the default formatter. We could also leverage a
custom JSONEncoder class that knows how to call to_dict() on instances.
In the spirit of perfect is the enemy of done, I think this should be
deferred to a follow-up bug.

MozReview-Commit-ID: XVnKB1MNqu

--HG--
extra : source : 4167dfdf10457360c9c94ee6e55b03ef1b92c16d
extra : histedit_source : 2f3f10bbb8ef9da8c57b0d85cbf4ea80242eff1a%2C1a5654253181d75eecd5dfaca2c87e353f8126cd
2016-03-14 21:06:57 -07:00
Gregory Szorc 17a8e3c459 Bug 1253436 - Add __repr__ to BaseLibrary and BaseProgram; r=glandium
Now when we print instances in a debugger, we'll see something like:

<StaticLibrary: other-licenses/snappy/libother-licenses_snappy.a>
<StaticLibrary: toolkit/library/StaticXULComponentsEnd/libStaticXULComponentsEnd.a>
<SharedLibrary: toolkit/library/XUL>
<StaticLibrary: toolkit/library/libxul_s.a>
<HostProgram: config/nsinstall_real>
<Program: memory/replace/logalloc/replay/logalloc-replay>
<SimpleProgram: mfbt/tests/TestArrayUtils>

... instead of the the class name and memory address.

MozReview-Commit-ID: 8zdrM6KfP8U

--HG--
extra : source : 84849ad026c9ba1bbf71c93172b0a03440e51bec
2016-03-11 11:22:48 -08:00
Gregory Szorc 6bc67323f6 Bug 1253436 - Remove unused imports; r=glandium
MozReview-Commit-ID: 494hmTwyldH

--HG--
extra : source : c4a868c76959d3a2e13af6ca5adb0d629dcb2b34
2016-03-11 11:22:28 -08:00
Phil Ringnalda d5bd282a1b Back out 3 changesets (bug 1253436) for build bustage on a CLOSED TREE
Backed out changeset 4167dfdf1045 (bug 1253436)
Backed out changeset 84849ad026c9 (bug 1253436)
Backed out changeset c4a868c76959 (bug 1253436)
2016-03-14 20:22:29 -07:00
Gregory Szorc b7a0aef870 Bug 1253436 - Write out a machine readable file with binaries metadata; r=glandium
This will make it easier for binaries only archive generation to consult
the list of binaries that are relevant to packaging.

This does overlap somewhat with compile databases. Perhaps someday the
logic could converge.

While I was here, I cleaned up writing of the all-tests.json file to
avoid an intermediate string variable.

This patch adds to_dict methods on some frontend data types. There is
room to improve the serialization of these types. For example, we could
use __slots__ to drive the default formatter. We could also leverage a
custom JSONEncoder class that knows how to call to_dict() on instances.
In the spirit of perfect is the enemy of done, I think this should be
deferred to a follow-up bug.

MozReview-Commit-ID: XVnKB1MNqu

--HG--
extra : rebase_source : 376c93467dde3450c7c21cff918cb34913a3c5fe
2016-03-14 19:31:35 -07:00
Gregory Szorc cd4ba92951 Bug 1253436 - Add __repr__ to BaseLibrary and BaseProgram; r=glandium
Now when we print instances in a debugger, we'll see something like:

<StaticLibrary: other-licenses/snappy/libother-licenses_snappy.a>
<StaticLibrary: toolkit/library/StaticXULComponentsEnd/libStaticXULComponentsEnd.a>
<SharedLibrary: toolkit/library/XUL>
<StaticLibrary: toolkit/library/libxul_s.a>
<HostProgram: config/nsinstall_real>
<Program: memory/replace/logalloc/replay/logalloc-replay>
<SimpleProgram: mfbt/tests/TestArrayUtils>

... instead of the the class name and memory address.

MozReview-Commit-ID: 8zdrM6KfP8U

--HG--
extra : rebase_source : 7f964ad44a0061674f77d5716a6769a4aedb9e6c
2016-03-11 11:22:48 -08:00
Gregory Szorc 7b3913cab5 Bug 1253436 - Remove unused imports; r=glandium
MozReview-Commit-ID: 494hmTwyldH

--HG--
extra : rebase_source : 998f2b447df9ba023d0b12d4d70563e76e3bf0f7
2016-03-11 11:22:28 -08:00
Gregory Szorc c64c49d5ba Bug 1255963 - Detect warnings without space after line number; r=glandium
I'm not sure when this changed, but at least Visual Studio 2015
doesn't always emit a space between the line number and the ": warning"
text in cl.exe output.

Making the space optional in the regular expression enables one a
VS2015 build to capture 375 warnings instead of 17. We still fail to
capture some warnings (notably generic warnings about bad command
arguments and linker warnings). But that can be dealt with later.

MozReview-Commit-ID: q402CxTrQK

--HG--
extra : rebase_source : 6376a65b8d8145d68bad9b795b6abd6f4becefbd
2016-03-11 22:04:38 -08:00
Chris Manchester 87b3022311 Bug 1255585 - Prevent Python executable mis-match from constantly clobbering the virtualenv on OS X. r=gps
Virtualenv will sometimes find a different executable from its sys.executable on OS X,
causing a check in the build system comparing filesizes between sys.executable and virtualenv
python to fail, resulting in clobbering and re-building the virtualenv every time the virtualenv
is activated, causing the build backend and more to be re-built.

Instead of checking file sizes directly, this commit causes us to record the size and version of the
Python executable that created the virtualenv. If the Python executable checked is not the virtualenv
Python, or we have a different version than was used to create the virtualenv, then the virtualenv is
considered to be out of date.


MozReview-Commit-ID: KmrVfQCtbS3

--HG--
extra : rebase_source : d2b87325e10da6dfcd74f8b0d2ef7c0efb71595b
2016-03-11 12:24:10 -08:00
Ted Mielczarek a673bd63e2 bug 1248020 - add USE_YASM to moz.build. r=mshal
MozReview-Commit-ID: Liw4RGOXiVf

--HG--
extra : rebase_source : 1fa28bafd7cec69dd82f7f3ef0cea9f52593983a
extra : amend_source : 5d9185ff8a5562b2565cc5558127548fa7b9fb1f
extra : histedit_source : cafda3835897efec5519c2326c88e7f85ae4aad8%2Caf73cf11903c5d7baf38953503e3839873be3c68
2016-03-09 11:07:35 -05:00
Ryan VanderMeulen 3297186541 Backed out changeset 2ed1a0e47b18 (bug 1255585) for Windows build bustage.
CLOSED TREE
2016-03-11 21:40:08 -05:00
Chris Manchester ff0e9aac74 Bug 1255585 - Prevent Python executable mis-match from constantly clobbering the virtualenv on OS X. r=gps
Virtualenv will sometimes find a different executable from its sys.executable on OS X,
causing a check in the build system comparing filesizes between sys.executable and virtualenv
python to fail, resulting in clobbering and re-building the virtualenv every time the virtualenv
is activated, causing the build backend and more to be re-built.

Instead of checking file sizes directly, this commit causes us to record the size and path to the Python
executable that created the virtualenv. If the Python executable checked is not the virtualenv
Python, or the python that was used to create the interpreter, then the virtualenv is considered
to be out of date.


MozReview-Commit-ID: KmrVfQCtbS3
2016-03-11 12:24:10 -08:00
Steve Fink 094469068b Bug 991343 - Suppress time output when running inside emacs, r=gps
Because I Care.

MozReview-Commit-ID: 9An5QwxnBpU

--HG--
extra : amend_source : 1c9f689d8aecb41debc0a657455c3c53ec219fa1
2016-03-11 16:51:24 -08:00
Mike Hommey 0c528f1ec6 Bug 1255433 - Read mozconfig as mbcs on Windows. r=gps
When writing e.g. Japanese text files on Windows, the text is encoded in
mbcs. So if a mozconfig is edited this way, and contains non ascii
characters, they won't be utf-8 as we're currently trying to decode
them, but mbcs.
2016-03-12 09:16:57 +09:00
Andrew Halberstadt 7a0cb68d63 Bug 1255470 - [mach] don't raise if a subcommand exists and but wasn't found in args, r=gps
This is currently preventing a command from having both args and subcommands at the same
time.

MozReview-Commit-ID: 66frAqamGjv

--HG--
extra : rebase_source : 3bbd1cb508e5aab7ba7f9936c0c486ed8f626fe9
2016-03-10 11:51:43 -05:00
Andrew Halberstadt 67699efe5c Bug 1255467 - Ability for a mach command to dispatch to another's subcommand, r=gps
MozReview-Commit-ID: CN8kJU0NrL0

--HG--
extra : rebase_source : 673041aaeaa48cb32c68955e0448737e1ebbc459
2016-03-10 11:45:39 -05:00
Jeff Walden c3119c2802 Bug 1254908 - ./mach bootstrap doesn't work on CentOS/Fedora when it attempts to upgrade Mercurial. r=gps
--HG--
extra : rebase_source : f50e41ad8ea90e74ff3e20b176113061f36057c6
2016-03-10 14:55:34 -08:00
Mike Hommey aca0420413 Bug 1254913 - Handle symbolic links in the path leading to moz.configure. r=nalexander 2016-03-11 09:38:28 +09:00
Maja Frydrychowicz 40304dfbf1 Bug 1255196 - Include mozinfo.json in common.tests.zip; r=gps
MozReview-Commit-ID: BJnXphkKJFy

--HG--
extra : rebase_source : c434e8555eceb8ea1073f00a4d387f270c0e3e4d
2016-03-10 15:44:59 -05:00
Mike Shal aeffe80634 Bug 1242632 - Remove TESTING_FILES from moz.build; r=glandium
MozReview-Commit-ID: ALy4s6Xpg7f
2016-01-25 13:41:22 -05:00
Chris Manchester b16bf0a8dd Bug 1240149 - Install Python packages necessary to artifact builds from mozilla pypi when running in automation. r=nalexander
MozReview-Commit-ID: 3hat64zgs2b
2016-03-09 10:58:49 -08:00
Mike Shal 053369e67e Bug 1253431 part 7 - Remove SDK_BINARY; r=gps
MozReview-Commit-ID: 4RmjsX966Qh

--HG--
extra : rebase_source : 0d9d94ed98ae8f1cfb9d5787edc1336ce1ee6785
2016-03-03 14:23:57 -05:00
Mike Shal 7ea5981744 Bug 1253431 part 1 - Add SDK_FILES to moz.build; r=gps
This adds support for an SDK_FILES variable in moz.build, which creates
a FinalTargetFiles object to install files into dist/sdk/

MozReview-Commit-ID: 97a5NdbZmmD

--HG--
extra : rebase_source : ad8d521ec56fe4610437c8d2d503c545894b40c2
2016-01-21 16:17:57 -05:00
Wes Kocher 2048d9f4a0 Merge m-c to inbound, a=merge CLOSED TREE
MozReview-Commit-ID: 4SEUTTY9jRn
2016-03-08 16:08:08 -08:00
Wes Kocher 0fbf6c1476 merge inbound to m-c a=merge
MozReview-Commit-ID: BHxDQF6gIe3
2016-03-08 16:00:45 -08:00
Chris Manchester 290404eacf Bug 1253651 - Undo changes to PATH made by activating virtualenv in mach artifact. r=glandium
The changes made to PATH by activating the in-tree virtualenv cause some git-cinnabar commands
in subprocesses to fail, because git cinnabar is expecting mercurial to be installed, while it
is not available from the in-tree virtualenv. To work around this, the changes to PATH made by
virtualenv are undone, allowing git-cinnabar to find system python, which is likely to have
mercurial installed.

MozReview-Commit-ID: 47ceHvMmuyf

--HG--
extra : rebase_source : 199d3b01fc49b2760ee14a08d4400a1addf83eac
2016-03-04 14:45:00 -08:00
Nick Alexander c531d30275 Bug 1221200 - Post: Change formatting and ordering. r=me
On a CLOSED TREE because DONTBUILD NPOTB

MozReview-Commit-ID: 56vyz2CRJsU

--HG--
extra : amend_source : 4ec60bc95019147225479c32b6982dc33c649cc4
extra : histedit_source : c3dc78da75a8f5b3985024a7d73ac92ab80628c2
2016-03-07 12:47:34 -08:00
Sambuddha Basu 3c21ec1304 Bug 1221200 - Offer Fennec artifact builds in |mach bootstrap|. r=nalexander
MozReview-Commit-ID: D2dw6qfPa5k

--HG--
extra : rebase_source : aab9128e2db247260777d32fe420ea06223e05bc
extra : histedit_source : de59158bcbf80671a03f534eafb4ac607e91ae37
2016-02-27 17:01:31 +05:30
Mike Hommey 849ac02d19 Bug 1253553 - Move --enable-artifact-builds, --disable-compile-environment and --enable-build-backend to moz.configure. r=nalexander,r=chmanchester
Note I'm using raw primitives until patterns emerge and we decide on
some helpers.
2016-03-08 15:41:32 +09:00
Mike Hommey 339d8a4013 Bug 1253502 - Allow to pass a specific python interpreter to initialize virtualenvs. r=gps 2016-03-08 15:41:32 +09:00
Mike Hommey 74b4506047 Bug 1253203 - Move parts of configure.py into sandboxed moz.configure. r=nalexander,r=chmanchester
This moves all the reading mozconfig, finding autoconf, refreshing the
old configure, and running the old configure into sandboxed
moz.configure. This effectively bootstraps the sandboxed python configure.
2016-03-08 15:41:32 +09:00
Mike Hommey 70fc00898e Bug 1253203 - Remove everything COMM_BUILD. r=nalexander,r=chmanchester
comm-central doesn't set it since bug 1040009.
2016-03-08 15:41:32 +09:00
Mike Hommey 646df2b991 Bug 1253203 - Use mozpath functions for sandboxed os.path in configure.py. r=nalexander,r=chmanchester
Generally speaking, the configuration needs forward-slashes in paths.
We might as well make it hard(er) to set configuration items with
backslash separators on Windows by exposing mozpath.* functions in place
of os.path functions. The downside is that functions explicitly
importing os will still get the real os.path functions.
2016-03-08 15:41:32 +09:00
Mike Hommey 3b7804715f Bug 1253203 - Normalize path separators in MozbuildObject. r=gps
The upcoming move of the configure.py initialization to sandboxed
moz.configure changes the path separators for topsrcdir and topobjdir
from native to always use forward-slashes, which confuses the hell out
of the test_base.py test. Settle the issue by declaring that
MozbuildObject will always use forward-slashed paths for topsrcdir
and topobjdir.
2016-03-08 15:41:32 +09:00
Mike Hommey b505dba93d Bug 1247836 - Building blocks for python configure. r=nalexander,r=chmanchester 2016-03-08 15:41:32 +09:00
Mike Hommey d43ee81232 Bug 1247836 - Add classes for python configure options handling. r=nalexander,r=chmanchester 2016-03-08 15:41:32 +09:00
Mike Hommey 44357443ac Bug 1247836 - Add a ReadOnlyNamespace class to mozbuild.util. r=nalexander,r=chmanchester 2016-03-08 15:41:32 +09:00
Mike Hommey 29758f5f42 Bug 1250297 - Make python configure output config.status instead of old-configure doing it. r=gps
The nice side effect is that now we can have actual dicts for defines
and substs from the start, which simplifies so things, although it
requires adjustments to some unit tests.
2016-03-08 15:41:32 +09:00
Myk Melez db9a40ca42 Bug 1238079 - remove the desktop web runtime; r=fabrice,mossop,gps,jryans,jmaher,marco 2016-03-07 13:33:12 -08:00
Chris Manchester 78c4fb4a05 Bug 1203266 - Remove uses of the emitter in files_info now that they're no longer needed. r=gps
MozReview-Commit-ID: AV2HWIFKLKR
2016-03-07 10:32:55 -08:00
Chris Manchester 7eb7f31485 Bug 1203266 - Read test manifests in the reader instead of the emitter to make them available earlier in the build. r=gps
MozReview-Commit-ID: 2T2RP8S1biG
2016-03-07 10:32:55 -08:00
Chris Manchester 17d6d83115 Bug 1203266 - Add a list variant to mozbuild.util that allows pre-processing list items with a provided callable. r=gps
MozReview-Commit-ID: HibEQOWeVwE
2016-03-07 10:32:54 -08:00
Nicholas Nethercote ebc23cf4dc Bug 1253526 (part 1) - Remove DMD's --max-frames option. r=erahm.
Nobody uses it.

--HG--
extra : rebase_source : 6fe2af5f2b7ec19fad8f8cd49871a63599d7ebba
2016-03-04 17:02:20 +11:00
Mike Shal 5fe7774087 Bug 1253430 - Move most FinalTargetFiles into misc tier; r=glandium
MozReview-Commit-ID: 6FECvFAfE4E

--HG--
extra : rebase_source : a53086a19a07c6bf64f06468a2c0930c3a2daacb
2016-03-02 17:38:35 -05:00
Chris Manchester 1bf18e6476 Bug 1253076 - Handle the case defines are not present to avoid artifact build bustage when processing symbols files. r=glandium
MozReview-Commit-ID: 25oUlS12hec
2016-03-02 16:25:56 -08:00
Gregory Szorc 064730c46a Bug 1252170 - Disable Spotlight indexing of objdir on OS X; r=ted
Creating a .metadata_never_index file in a directory apparently
disables Spotlight indexing.

MozReview-Commit-ID: Di4DGZK6VOL

--HG--
extra : rebase_source : feffa0785174b11cf88a2b7ffdbd9aa5eeb98ac7
extra : amend_source : 838aca018ab91720b6b29b64b846a3ef107b6c88
2016-03-02 14:19:30 -08:00
Chris Manchester 0cef3d3c4f Bug 1234913 - Support git in |mach artifact install|. r=nalexander
MozReview-Commit-ID: LL6kO8QS5p9
2016-02-24 23:20:42 -08:00
Chris Manchester bcaa653555 Bug 1234913 - Stop using local pushlog in |mach artifact install|. r=nalexander
MozReview-Commit-ID: CG5KcYbTcbM
2016-02-24 23:47:06 -08:00
Nick Alexander 0367ab9bf8 Bug 1234913 - Clarify things that are hg-specific; make iteration lazy. r=chmanchester
MozReview-Commit-ID: LL6kO8QS5p9
2016-02-24 21:58:22 -08:00
Nick Alexander b2bd944259 Bug 1234913 - Pre: Show download progress during |mach artifact install|. r=nalexander
Hotel WiFi inspires many things.

MozReview-Commit-ID: 8WoHMWGNf0K
2016-02-24 23:21:37 -08:00
Nick Alexander 6a3c197d93 Bug 1234913 - Pre: Allow to --skip-cache when running |mach artifact install|. r=chmanchester
MozReview-Commit-ID: M2FYAPEqXy
2016-02-24 23:25:25 -08:00
Dan Minor 8fc1f1f3e4 Bug 1251076 - Record ccache stats in build telemetry data r=gps
Using ccache can have a big impact on compile times but we don't currently
capture ccache statistics.

MozReview-Commit-ID: CdrScyAh64I

--HG--
extra : rebase_source : 70dca7ae153ae1c7ce3a241820ab7d18cb6aaa0d
2016-02-25 10:35:07 -08:00
Mike Shal ae97eae57b Bug 1252301 - allow installing CONFIGURE_SUBST_FILES; r=glandium
We need to consider CONFIGURE_SUBST_FILES as generated files when
processing FinalTargetFiles and related variables. Additionally, we have
to make sure that we actually recurse into such directories during the
export phase.

MozReview-Commit-ID: 6ZwHMzjoT6t

--HG--
extra : rebase_source : e39e26ad8b84bcaa757c56048c9c80f5be270d9c
2016-02-29 16:49:59 -05:00
Quentin Headen bdcc3ae825 Bug 1251810 - Update Arch pacman -U command in bootstrap to handle --no-interactive; r=gps
DONTBUILD (NPOTB)

MozReview-Commit-ID: GsFS39CNx8V

--HG--
extra : rebase_source : 864fea86975a3fb145a0001733b1d690f2a2b528
2016-02-29 13:32:18 -08:00
Gregory Szorc fca4d6f904 Bug 1251870 - Disable indexing of objdir on Windows; r=ted
The Windows content indexing service has been known to scan the objdir.
This can add significant system overhead and slow down builds or
subsequent operations. The objdir is meant to be a short-lived black box
and there really isn't a major benefit to indexing it.

There is a file attribute on Windows that disables content indexing.
This commit adds a utility function for creating a directory and
optionally disabling indexing on it. We call it at the top of
`mach build` to ensure the objdir as content indexing disabled.

MozReview-Commit-ID: 68gxCxbkVAN

--HG--
extra : rebase_source : 8e95d9b2923dccadbe54288bea25883937e2f004
2016-02-27 11:58:12 -08:00
Chris Manchester 5adf169610 Bug 1250961 - Move testing/xpcshell/Makefile.in to moz.build. r=gps
MozReview-Commit-ID: 8J9RzA0RZ0i

--HG--
extra : rebase_source : f202d8fb0b79be8c665bed5af54592292802ad0d
2016-02-26 13:20:31 -08:00
Chris Manchester 8b7ef38ae6 Bug 1250961 - Move testing/mochitest/Makefile.in to moz.build. r=gps
MozReview-Commit-ID: LwQH49FLfY2

--HG--
extra : rebase_source : c8c1007e05bfd9ff18d6199018c121473b576220
2016-02-26 13:20:31 -08:00
Jan Beich 6bb0bc3723 Bug 1242132 - Make sure to split multiple _FLAGS after bug 1224452. r=glandium 2016-02-21 21:18:03 +00:00
Dan Minor ec0c3027df Bug 1250624 - Overall system resources is displayed twice; r=chmanchester
MozReview-Commit-ID: Hbx8lOlrUuw

--HG--
extra : rebase_source : 02fb6d0b894eeab425318c9465d5ea4327b73fe4
2016-02-24 09:18:03 -08:00
Quentin Headen 04c99c53de Bug 1251352 - Respect --no-interactive during Arch bootstrap; r=gps
--HG--
extra : amend_source : 903d7946eb28476c1e05c329b204852d008cf75c
2016-02-25 11:47:58 -08:00
Sambuddha Basu cc602702aa Bug 1169089 - Merge CentOS and Fedora bootstrap code; r=gps
DONTBUILD (NPOTB)

MozReview-Commit-ID: 6WDykc20TKf

--HG--
extra : rebase_source : 90c43d31e8f27a6bff9df6c76113e9b038185d99
2016-02-25 11:11:39 -08:00
Gregory Szorc 503851935a Bug 1249858 - Stop processing IPDL and WebIDL files during artifact builds; r=glandium
We don't process IPDL and WebIDL files during artifact builds. The
backend shouldn't need to care about them.

Before: 2001 total backend files; 2001 created; 0 updated; 0 unchanged; 0 deleted
After:  1945 total backend files; 1945 created; 0 updated; 0 unchanged; 0 deleted

After this change, we no longer write any .cpp files to the objdir
during config.status for artifact builds.

As part of this, we stopped generated webidlsrcs.mk and the build broke
because of an unguarded use in a Makefile.

After this change, only 102/3366 files in the objdir after
`mach configure` are not a) in _virtualenv b) named backend.mk
c) named Makefile (~950 each of backend.mk and Makefile).

MozReview-Commit-ID: 11AIn1i4x4f

--HG--
extra : rebase_source : ac90bb9f6be8b7b986aa0a61b3ccc203a18346a6
2016-02-19 21:46:29 -08:00
Gregory Szorc aac8926faf Bug 1249858 - Do not generate unified C++ files during artifact builds; r=glandium
I can't think of a good reason why unified C++ files need to exist
during artifact builds. Let's not write them in this build config.

Before: 2517 total backend files; 2517 created; 0 updated; 0 unchanged; 0 deleted
After:  2001 total backend files; 2001 created; 0 updated; 0 unchanged; 0 deleted

No measureable change in performance on Linux. But on Windows where file
creation is in the ~1ms range, this will surely result in a speedup of
several hundred milliseconds.

We are still generating some .cpp files during artifact builds. This will be
addressed in subsequent commits.

MozReview-Commit-ID: Lqx36YE8qZZ

--HG--
extra : rebase_source : 8af5a9915e78af7aee2aa335552689fe33975400
2016-02-19 21:41:24 -08:00
Gregory Szorc eccb5d39c1 Bug 1249858 - Add property exposing whether performing an artifact build; r=glandium
Future commits will add a number of consumers. This will cut down on
boilerplate.

MozReview-Commit-ID: 8h4VWBXXd8O

--HG--
extra : rebase_source : 3376f015f1766eedcef60e9393b6d68474ffb634
2016-02-19 21:40:09 -08:00
Gregory Szorc 2f5add2222 Bug 1249210 - Install files using multiple threads on Windows; r=glandium
As previous measurements have shown, creating/appending files
on Windows/NTFS is slow because the CloseHandle() Win32 API takes
1-3ms to complete. This is apparently due to a fundamental issue
with NTFS extents. A way to work around this slowness is to use
multiple threads for I/O so file closing doesn't block execution
as much.

This commit updates the file copier to use a thread pool of 4
threads when processing file copies. Additional threads appear
to have diminishing returns.

On my i7-6700K, this reduces the time for processing the tests install
manifest (24,572 files) on Windows from ~22.0s to ~12.5s in the best
case.

Using the thread pool globally resulted in a performance regression
on Linux. Given the performance sensitivity of manifest copying,
I thought it best to implement a slightly redundant non-Windows
branch to preserve performance. For the record, that same machine
running Linux is capable of processing nearly the same install
manifest (24,616 files) in ~2.2s in the best case.

MozReview-Commit-ID: B9LbKaOoO1u

--HG--
extra : rebase_source : e9fee3861a70e1da9d18448f8435f4bd3e28c647
2016-02-19 18:28:26 -08:00
Dan Minor 694a88e33b Bug 1244160 - Create json-schema for build telemetry data r=gps
This adds a simple schema for build telemetry data. We can make it more
restrictive once we have a better feeling for what kind of data we want
to submit.

This also moves more common data about the system to the telemetry handler.
We leave psutil derivied information in the resource usage data as not every
system will have psutil installed.

MozReview-Commit-ID: CFRq1Ow6AOf

--HG--
extra : rebase_source : 3022d8f5d20e3d4f9dc871cf2217a6dad2f22e05
2016-02-02 09:32:49 -05:00
Mike Shal 1e05ed66d5 Bug 1248027 - '#define FOO' should use an empty value, not '1'; r=glandium 2016-02-16 14:34:25 -05:00
Gregory Szorc 1f9b71ef94 Bug 1249857 - Reference proper cache attribute; r=nalexander
self._pushhead_cache no longer exists. But self._tree_cache does!

This was causing AttributeError when running `mach artifact clear-cache`
and other misc `mach artifact` sub-commands.

MozReview-Commit-ID: CP8NL6eCfhD

--HG--
extra : rebase_source : 0afd11722e304c8e0ecd9a305023d43dff79dddd
extra : amend_source : ad3df6d780e7b968573588e9a1029f1a1c9d18b0
2016-02-20 21:44:56 -08:00
Gregory Szorc e35e937238 Bug 1249857 - Do not print times when running mach from config.status; r=nalexander
Currently, config.status runs `mach artifact install`. mach commands prefix
output lines with elapsed time by default. When running from `mach build`,
there will be 2 sets of times in `mach artifact install` output lines.
When config.status is run directly, there will be no times printed
except for `mach artifact install`. It is weird both ways.

Fix it by not printing lines when running `mach artifact install` from
config.status.

MozReview-Commit-ID: GVinyI4Z0qr

--HG--
extra : rebase_source : 80aa5714a0249d9974becee183e7cfde7143f556
extra : amend_source : a89bca7af847f73efd18fb0a09bc9e76d8943577
2016-02-20 21:44:44 -08:00
Mike Hommey 4ae855e98c Bug 1249838 - Avoid dependency from the mozconfig loader on mach. r=gps 2016-02-20 12:12:51 +09:00
Sambuddha Basu 79b3096449 Bug 952564 - Disallow empty lists in moz.build variables r=gps
--HG--
extra : rebase_source : 9a70b6a3150fe898a724a43815dc923bb0d70b89
extra : amend_source : 7aa800ef61427117e5dc461443f82ebd403d8164
2016-02-18 17:26:09 -08:00
Carsten "Tomcat" Book c2a42c6ad4 merge fx-team to mozilla-central a=merge 2016-02-17 12:07:39 +01:00
Patrick Brosset 406297be5c Bug 1248360 - Set eslint version to 1.10.3 when setting it up via mach
MozReview-Commit-ID: LmKsvGzj3fo

--HG--
extra : rebase_source : ec5aaeef13fca603250d5e57b8425ff339136070
2016-02-16 10:01:11 +01:00
Chris Manchester c6fd1b24b0 Bug 1246992 - Only accept artifacts from a specific revision when one is provided to mach artifact. r=nalexander
MozReview-Commit-ID: FHa6awAFZj8

--HG--
extra : rebase_source : 510d996f637c11244b37dd4d615dc2efeaf191b3
2016-02-15 12:08:40 -08:00
Gregory Szorc 974f384129 Bug 1247994 - Upgrade vendored requests package to 2.9.1; r=mshal
Previously, we We were running version 2.5.1 of requests. Newer
versions have several bug fixes and even address a CVE.

Source was obtained from
https://pypi.python.org/packages/source/r/requests/requests-2.9.1.tar.gz
and checked in without modification. This should be a rubber stamp
review.

MozReview-Commit-ID: 9tFSVJFfwGh

--HG--
extra : rebase_source : 985a63b3e09d7abd5089bdb29ebef8d7314c59f2
2016-02-12 10:03:53 -08:00
Nick Alexander bc112329f3 Bug 1119520 - Add opt-in Gradle build mode for mobile/android. r=gps
Opt-in by adding --enable-gradle-mobile-android-builds.

Gradle dependencies (including the Android-Gradle plugin) are assumed
to be present.  Local developers will fetch them from the jcentral
repository.

Android-specific Maven dependencies are shipped as "extras" with the
Android SDK, and should be found automatically by the Android-Gradle
plugin.

MozReview-Commit-ID: 966XgddWgEu

--HG--
extra : rebase_source : 8e8c6156e1d06813c250662e104fd14c621d91ab
extra : source : 306cf0271d3e3a344fcbfd2baf75e0450c288cf1
extra : histedit_source : d17446714236c408699a0953882e84ac3a192380%2Cc21b166af79ef1e00215748820bc2670405ac1dc
2016-02-12 10:06:40 -08:00
Sambuddha Basu 3a59ad7919 Bug 1246264 - Ensure cache directory exists for artifacts installation r=chmanchester
--HG--
extra : commitid : Fz9TFGL0WgM
2016-02-12 03:43:18 +05:30
Mike Hommey 9e3dec34bf Bug 1224450 - Make the CompileDB derive its commands from the moz.build data. r=gps
The moz.build data is now sufficient to, with some convolution, generate
the same compilation database that recursing the tree with the showbuild
target does.

The resulting code is not the prettiest, and exposes the shortcomings of
the current moz.build data model. It is however a first step towards
fixing those shortcomings, because they are now more clearly identified.

This was validated on all platforms on try by checking the output of
  mach build-backend -b CompileDB -d -n
is empty when backing out the patch after running
  mach build-backend -b CompileDB
once.
2016-02-12 07:16:19 +09:00
Mike Hommey 749e95cd9c Bug 1224450 - Skip difficult directories in the CompileDB. r=gps
There are a few difficult directories to handle, with limited usefulness
compared to having the CompileDB properly filled for everything else
in a timely manner, so skip them for now.
2016-02-12 07:16:16 +09:00
Mike Hommey 562113ab90 Bug 1224450 - Ignore host compilations in the CompileDB backend. r=gps 2016-02-12 07:16:15 +09:00
Mike Hommey fd36539df9 Bug 1246881 - Generate a header defining MOZ_BUILDID. r=mshal 2016-02-12 07:15:55 +09:00
Dave Townsend 06f432d221 Bug 1239139: Verify that a high enough node version is available before running eslint. r=gps
The most common issue I'm hearing with eslint is people who have an outdated
node installed. This does a quick check to verify the version is high enough
before linting.

MozReview-Commit-ID: Em0jn18OUYo

--HG--
extra : rebase_source : 5325eb5f556f93e09d48fb123e0abb625aa77b84
2016-02-09 15:34:37 -08:00
Dan Minor d63849ae5e Bug 1244143 - Record whether or not an artifact build was used in build telemetry data r=gps
This adds a substs field and cherrypicks the MOZ_ARTIFACT_BUILDS field so
we can determine whether or not an artifact build occurred.

MozReview-Commit-ID: 8aio8mP8pmR

--HG--
extra : rebase_source : aa0dc2b7ef61e8b02d202c3a631d276e019d3dfd
2016-02-01 14:41:13 -05:00
Carsten "Tomcat" Book fb7fb37fd7 Backed out changeset b06f5fef9488 (bug 1244143) for OS 10.7 opt build trouble 2016-02-10 15:58:09 +01:00
Carsten "Tomcat" Book 855c877f61 Merge mozilla-central to mozilla-inbound 2016-02-10 14:29:05 +01:00
Carsten "Tomcat" Book b8f6140f54 merge mozilla-inbound to mozilla-central a=merge 2016-02-10 11:47:34 +01:00
Dan Minor 4250455fa4 Bug 1244143 - Record whether or not an artifact build was used in build telemetry data r=gps
This adds a substs field and cherrypicks the MOZ_ARTIFACT_BUILDS field so
we can determine whether or not an artifact build occurred.

--HG--
extra : rebase_source : 8878751b0bf5159cb8baedc68c9ab88cf8563628
2016-02-01 14:41:13 -05:00
Dan Minor f3c1aea318 Bug 1239296 - add post_dispatch_handler hook to mach r=gps
This adds a post_dispatch_handler hook that will be called after each
mach invocation and uses it to submit data to telemetry.

--HG--
extra : rebase_source : 1dedea568b7ccec17fa58eb1841425b165d8a644
2016-02-09 10:09:17 -05:00
Dave Townsend 2baeb943ca Bug 1244357: Use a shim around the certificate DB to allow the add-ons manager to think that add-ons are signed when they aren't. r=rhelmer
Because the add-ons manager hasn't startup up yet we can replace the certificate
database in xpcshell tests with one that claims add-ons are signed by valid
certificates even when they aren't. This allows us to run tests even in builds
where signing cannot be disabled during for the normal application.

This adds an override for all tests except those that are explicitely testing
signing.

--HG--
extra : commitid : 24s3ni5gVYe
extra : rebase_source : a95571dc3556bb035511eea424ba57e8c7007eba
2016-01-29 16:41:18 -08:00
Dan Minor 0e4a3375d2 Bug 1239296 - Use telemetry_handler to store build resource data r=gps
--HG--
extra : rebase_source : 3f232b77b91750d8ab5af017552b0ae368d765cb
2016-01-29 12:53:00 -05:00
Dave Townsend 3c97745a55 Backing out c57d2020f884 for bug 1244357 due to test failures. CLOSED TREE
--HG--
extra : commitid : ARB3HviETo6
extra : amend_source : 6386ba6343ce0b187ee2d317bf455a9163ed0330
2016-02-08 10:18:48 -08:00
Dave Townsend 306183747d Bug 1244357: Use a shim around the certificate DB to allow the add-ons manager to think that add-ons are signed when they aren't. r=rhelmer
Because the add-ons manager hasn't startup up yet we can replace the certificate
database in xpcshell tests with one that claims add-ons are signed by valid
certificates even when they aren't. This allows us to run tests even in builds
where signing cannot be disabled during for the normal application.

This adds an override for all tests except those that are explicitely testing
signing.

--HG--
extra : commitid : 9Zd5aH92lAQ
extra : rebase_source : 880d0fff51205dc92df91a61fef8b246d2ea2123
2016-01-29 16:41:18 -08:00
Phil Ringnalda e3869be7d0 Merge m-c to f-t 2016-02-05 19:45:14 -08:00
Gregory Szorc 460386b9c1 Bug 1246040 - Change architecture detection on CentOS; r=glandium
This fails under Docker otherwise. platform.architecture() uses the
architecture of the Python executable, which should be fine assuming the
system-installed Python is being used. Even if the user installed their
own Python, running a 32-bit Python on a 64-bit system feels like
something that would be extremely rare.

DONTBUILD (NPOTB)

--HG--
extra : commitid : HowMKbWsoTt
extra : amend_source : 9c6fd75da6d521845d561e04350b2e82dccf2b38
2016-02-05 10:51:41 -08:00
Gregory Szorc a43c47c0da Bug 1246025 - Install python2-devel package on Fedora; r=mshal
We need this package to build psutil and other Python packages with C
extensions.

Fedora 23 offers Python 3 as the default package and the package name
changed from python-devel to python2-devel. Fedora 22 does appear to
support python2-devel as an alias. So we use the same name everywhere.

DONTBUILD (NPOTB)

--HG--
extra : histedit_source : 7f0f9930c84f1cff396595309d47e1d600ed2609
extra : rebase_source : 544bcaa84b52ed036e76ba2a44a6074c761790cc
extra : commitid : IgEon98g61O
extra : source : 515c94229a9150246dc88318e92216d3a6d68a39
extra : amend_source : 88f419a5374ff7324dbf5f9a4a33ed313e2e2470
2016-02-05 12:33:13 -08:00
Gregory Szorc e86222cccd Bug 1246033 - Reference unambiguous git package on Gentoo; r=mshal
"git" is ambiguous between dev-ruby/git and dev-vcs/git.

--HG--
extra : histedit_source : 4d38547125f11114ee6f5a20f859c475aaa942a9
extra : rebase_source : 9ded586dd5e79953e15849e3aa27c57084fb4de0
extra : commitid : KDg9b0sFs5p
extra : source : d2cfa7eb10fc6139091de6530fa92e763eafd077
extra : amend_source : c8318134a0c8dc16d339e4943f737392e917c4eb
2016-02-05 12:31:52 -08:00
Chris Manchester 1ba302d1f5 Bug 1246872 - Find the source bundle directory by pattern matching for OS X artifact builds. r=nalexander
MozReview-Commit-ID: 7Yn2pO9PO1C
2016-02-08 23:03:53 -08:00
Gregory Szorc e1090839ad Bug 1245684 - Download bootstrap files via a zip archive; r=mshal
This will perform a single HTTP request that completes in <1s. Contrast
with before when we performed multiple HTTP requests and the process
took several seconds.

DONTBUILD (NPOTB)

MozReview-Commit-ID: DjX3LBdSOIk

--HG--
extra : commitid : Li155pLmmc
extra : rebase_source : b098d506fbfaab2b4a7946af48fd49700b1845dc
extra : amend_source : b4142e5de891160593853ea79dd14ea1d64f03ba
2016-02-09 14:41:32 -08:00
Chris Manchester 8d867f3c62 Bug 1240059 - Treat psutil as optional in record_resource_usage. r=gps
--HG--
extra : commitid : luOomgRgcQ
2016-02-03 20:37:12 -08:00
Mike Hommey 9ca9b3074c Bug 1245763 - Don't emit Sources objects when there is no Linkable in the same directory. r=gps
We have very few directories where we have SOURCES declared that are not
part of a library or program in some way. In fact, there is only one
where it is legitimate because we only use the object file
(build/unix/elfhack/inject). Others are the result of moz.build control
flow (see e.g. netwerk/standalone), and we end up building more objects
than we need to.

There are other cases where we need objects without actually linking
them anywhere, but there are other sources in the same directory, and a
corresponding Linkable is emitted. And in fact, the only case I knew
about (media/libvpx), doesn't use such objects since bug 1151175.
2016-02-04 17:16:29 +09:00
Mike Hommey bbb2388ec3 Bug 1245763 - Move the _handle_programs and _process_sources around. r=gps
The functions are going to be merged next ; this makes the change easier
to review.
2016-02-04 17:16:29 +09:00
Mike Hommey dcd8e418ac Bug 1245763 - Group sources and linkables handling function cals in mozbuild.emitter. r=gps 2016-02-04 17:16:29 +09:00
Mike Hommey f3ecc6091c Bug 1245015 - Properly handle ObjC sources in the CompileDB backend. r=mshal 2016-02-03 08:41:20 +09:00
Mike Shal 4c85cf31d1 Bug 1244239 - Fix __slots__ in mozbuild's data.py; r=gps 2016-01-28 14:30:00 -05:00
Birunthan Mohanathas 7104c2aaa5 Bug 1235261 - Part 4: Remove AutoFallibleTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Birunthan Mohanathas d7371d07d0 Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-02-02 17:36:30 +02:00
Carsten "Tomcat" Book ddbbd78a0d merge mozilla-inbound to mozilla-central a=merge 2016-02-02 11:50:53 +01:00
Mike Hommey 035251c418 Bug 1244941 - Don't fill install manifest with artifacts. r=nalexander
Since bug 1239217, artifacts builds are using a hybrid build system that
uses the fastermake rules to copy files to dist/bin, which means
artifact files are not removed by the processing of the dist/bin install
manifest. This means we don't need to add them to the recursivemake
install manifest anymore.
2016-02-02 11:47:45 +09:00
Nick Alexander e69e03b2a9 Bug 1243041 - Follow-up: Fix Android-only bustage. r=me
DONTBUILD NPOTB

--HG--
extra : commitid : 7pRJ70ubsIw
2016-02-01 13:26:31 -08:00
Chris Manchester fc925df759 Bug 1243041 - Refine artifact platform selection based on target_cpu. r=nalexander
--HG--
extra : commitid : IxR79uqJinR
2016-02-01 12:48:17 -08:00
Nick Alexander 0da74ae170 Bug 1244298 - Download android-api-15 artifacts. r=ahunt
--HG--
extra : commitid : 37fyfy52TDo
extra : amend_source : c2ef5e2d213982a07200ceca7edf9d1626b3c5f9
2016-02-01 10:30:36 -08:00
Chris Manchester ddb5730080 Bug 1240667 - Detect a tree to use for artifact builds based on recent changesets. r=nalexander
Currenlty --enable-artifact builds will take artifacts from fx-team regardless of the
state of the current working directory. This can lead to broken builds if someone
updates to a tree other than fx-team.

This commit changes the default behavior from tracking fx-team to finding all recent
pushheads and finding the closest to the working parent that has artifacts available.

This also fixes a mis-match between tree names according to mozext and branch names in
the taskcluster index preventing artifact download from common integration branches.

--HG--
extra : commitid : 3LqLna4qxk0
2016-01-29 12:27:04 -08:00
Chris Manchester d6f59759cd Bug 1243096 - Remove ini manifests containing only support-files and move their contents to TEST_HARNESS_FILES. r=gps
--HG--
extra : commitid : FyLge9QyfDF
2016-01-27 17:46:34 -08:00
Ehsan Akhgari f0b139bf4f Bug 1242004 - Skip -Xclang arguments when generating clang compilation database or YouCompleteMe config; r=froydnj
clang based tools typically choke when they encounter a lot of -XClang
arguments, and since those args are passed to the cc1 driver they're
unnecessary for such tools anyways.

This helps people who have things like --enable-clang-plugin in their
mozconfig use clang based tools without having to remove these arguments
manually.
2016-01-25 21:34:57 -05:00
Gregory Szorc eaac9e2bed Bug 1242228 - Upgrade virtualenv to 14.0.1; r=mshal
Downloaded from https://pypi.python.org/packages/source/v/virtualenv/virtualenv-14.0.1.tar.gz
and extracted without any modifications.

This appears to speed up `mach configure` for artifact builds by ~3.3s on
my Linux machine (~16.3s to 13.0s). A significant part of this appears
to be newer version of pip caching and reusing wheels after first
install.

This should be a rubber stamp review, as all changes are from trusted
upstream packages.

--HG--
extra : rebase_source : a38af27ab45f21e9ea943fcd23655b3ce51ffdd8
2016-01-23 18:48:43 -08:00
Ted Mielczarek f86b931457 bug 1230117 - get rid of {HOST,TARGET}_NSPR_MDCPUCFG. r=glandium
--HG--
extra : commitid : LJ5QiUWSc4d
extra : rebase_source : 7207b43431e072a5f77397d468d30b5439be2b84
2016-01-21 06:13:06 -05:00
Ted Mielczarek 6a50cacb9f bug 1241272 - Allow error() in moz.build files to be treated as non-fatal. r=gps
Calling error() in moz.build files to indicate unsupported configurations is
useful, but readers using EmptyConfig will trigger them currently. This patch
allows a Config to have an `error_is_fatal` attribute, which will make
error emit a warning instead.

--HG--
extra : commitid : 8rqc0rx4iOK
extra : rebase_source : 0bece15b1d0fcbb38e01a26101c1f4697285c583
2016-01-20 15:11:49 -05:00
Mike Hommey dded38c2fe Bug 1245764 - Move Windows RTL flags (-MD/-MT) flags out of config.mk. r=gps 2016-02-05 17:30:34 +09:00
Phil Ringnalda d381b4bca6 Back out 7 changesets (bug 1235261) for cpptest failures in TestTArray
CLOSED TREE

Backed out changeset d66c3f19a210 (bug 1235261)
Backed out changeset 467d945426bb (bug 1235261)
Backed out changeset 32b61df13142 (bug 1235261)
Backed out changeset c50bb8ed4196 (bug 1235261)
Backed out changeset 0ff0fa6fe81f (bug 1235261)
Backed out changeset df70e89669da (bug 1235261)
Backed out changeset 064969357fc9 (bug 1235261)
2016-01-31 10:10:57 -08:00
Birunthan Mohanathas 6ed751e586 Bug 1235261 - Part 4: Remove AutoFallibleTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Birunthan Mohanathas 373593275e Bug 1235261 - Part 1: Rename nsAutoTArray to AutoTArray. r=froydnj 2016-01-31 17:12:12 +02:00
Chris Manchester 666423b6d5 Bug 1241989 - Speed up install manifests by avoiding path operations. r=gps
This is two straightforward optimizations in FileCopier: avoiding a redundant iteration
over the directory structure to find destination files (which includes a
call to normpath) and avoiding redundant calls to determine directories to preserve
when remove_unaccounted is not specified (which include a call to dirname).

Running a no-op install of _tests with this patch results in a reduction of about
25,000 calls to normpath and remove about 220,000 calls to dirname, resulting in
an overall speedup of 10-20%.

--HG--
extra : commitid : 8nyTo489q8X
2016-01-22 13:54:33 -08:00
Syd Polk 51f0851bc2 Bug 1240120 - Move external-media-tests to subdirectory to generate correct packaging; r=maja_zf,whimboo
--HG--
rename : dom/media/test/external-media-tests/MANIFEST.in => dom/media/test/external/MANIFEST.in
rename : dom/media/test/external-media-tests/README.md => dom/media/test/external/README.md
rename : dom/media/test/external-media-tests/harness/__init__.py => dom/media/test/external/external_media_harness/__init__.py
rename : dom/media/test/external-media-tests/harness/runtests.py => dom/media/test/external/external_media_harness/runtests.py
rename : dom/media/test/external-media-tests/harness/testcase.py => dom/media/test/external/external_media_harness/testcase.py
rename : dom/media/test/external-media-tests/media_tests/__init__.py => dom/media/test/external/external_media_tests/__init__.py
rename : dom/media/test/external-media-tests/media_tests/manifest.ini => dom/media/test/external/external_media_tests/manifest.ini
rename : dom/media/test/external-media-tests/media_utils/__init__.py => dom/media/test/external/external_media_tests/media_utils/__init__.py
rename : dom/media/test/external-media-tests/media_utils/video_puppeteer.py => dom/media/test/external/external_media_tests/media_utils/video_puppeteer.py
rename : dom/media/test/external-media-tests/media_utils/youtube_puppeteer.py => dom/media/test/external/external_media_tests/media_utils/youtube_puppeteer.py
rename : dom/media/test/external-media-tests/media_tests/playback/eme.ini => dom/media/test/external/external_media_tests/playback/eme.ini
rename : dom/media/test/external-media-tests/media_tests/playback/limiting_bandwidth.ini => dom/media/test/external/external_media_tests/playback/limiting_bandwidth.ini
rename : dom/media/test/external-media-tests/media_tests/playback/manifest.ini => dom/media/test/external/external_media_tests/playback/manifest.ini
rename : dom/media/test/external-media-tests/media_tests/playback/netflix_limiting_bandwidth.ini => dom/media/test/external/external_media_tests/playback/netflix_limiting_bandwidth.ini
rename : dom/media/test/external-media-tests/media_tests/playback/test_eme_playback.py => dom/media/test/external/external_media_tests/playback/test_eme_playback.py
rename : dom/media/test/external-media-tests/media_tests/playback/test_full_playback.py => dom/media/test/external/external_media_tests/playback/test_full_playback.py
rename : dom/media/test/external-media-tests/media_tests/playback/test_playback_limiting_bandwidth.py => dom/media/test/external/external_media_tests/playback/test_playback_limiting_bandwidth.py
rename : dom/media/test/external-media-tests/media_tests/playback/test_ultra_low_bandwidth.py => dom/media/test/external/external_media_tests/playback/test_ultra_low_bandwidth.py
rename : dom/media/test/external-media-tests/media_tests/playback/test_video_playback.py => dom/media/test/external/external_media_tests/playback/test_video_playback.py
rename : dom/media/test/external-media-tests/media_tests/playback/youtube/manifest.ini => dom/media/test/external/external_media_tests/playback/youtube/manifest.ini
rename : dom/media/test/external-media-tests/media_tests/playback/youtube/test_basic_playback.py => dom/media/test/external/external_media_tests/playback/youtube/test_basic_playback.py
rename : dom/media/test/external-media-tests/media_tests/playback/youtube/test_prefs.py => dom/media/test/external/external_media_tests/playback/youtube/test_prefs.py
rename : dom/media/test/external-media-tests/media_tests/resources/mozilla.html => dom/media/test/external/external_media_tests/resources/mozilla.html
rename : dom/media/test/external-media-tests/media_tests/test_example.py => dom/media/test/external/external_media_tests/test_example.py
rename : dom/media/test/external-media-tests/media_tests/urls/default.ini => dom/media/test/external/external_media_tests/urls/default.ini
rename : dom/media/test/external-media-tests/media_tests/urls/netflix/default.ini => dom/media/test/external/external_media_tests/urls/netflix/default.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/archive/crash_videos.ini => dom/media/test/external/external_media_tests/urls/youtube/archive/crash_videos.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/archive/other_videos.ini => dom/media/test/external/external_media_tests/urls/youtube/archive/other_videos.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/archive/video_data.ini => dom/media/test/external/external_media_tests/urls/youtube/archive/video_data.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/archive/youtube.ini => dom/media/test/external/external_media_tests/urls/youtube/archive/youtube.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/long1-720.ini => dom/media/test/external/external_media_tests/urls/youtube/long1-720.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/long2-720.ini => dom/media/test/external/external_media_tests/urls/youtube/long2-720.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/long3-crashes-720.ini => dom/media/test/external/external_media_tests/urls/youtube/long3-crashes-720.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/long4-crashes-900.ini => dom/media/test/external/external_media_tests/urls/youtube/long4-crashes-900.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/massive-6000.ini => dom/media/test/external/external_media_tests/urls/youtube/massive-6000.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/medium1-60.ini => dom/media/test/external/external_media_tests/urls/youtube/medium1-60.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/medium2-60.ini => dom/media/test/external/external_media_tests/urls/youtube/medium2-60.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/medium3-120.ini => dom/media/test/external/external_media_tests/urls/youtube/medium3-120.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/short0-10.ini => dom/media/test/external/external_media_tests/urls/youtube/short0-10.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/short1-15.ini => dom/media/test/external/external_media_tests/urls/youtube/short1-15.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/short2-15.ini => dom/media/test/external/external_media_tests/urls/youtube/short2-15.ini
rename : dom/media/test/external-media-tests/media_tests/urls/youtube/short3-crashes-15.ini => dom/media/test/external/external_media_tests/urls/youtube/short3-crashes-15.ini
rename : dom/media/test/external-media-tests/media_tests/utils.py => dom/media/test/external/external_media_tests/utils.py
rename : dom/media/test/external-media-tests/requirements.txt => dom/media/test/external/requirements.txt
rename : dom/media/test/external-media-tests/setup.py => dom/media/test/external/setup.py
extra : rebase_source : a17808ecf767f02f60e1618ce71e9928092b9980
2016-01-21 23:00:59 -06:00
Andreas Tolfsen 8d70598ccc Bug 1205687 - Package and include Marionette tests in all-tests.json; r=chmanchester,gps
Listing the tests in all-tests.json is prerequisite to adding support
for Marionette tests to `./mach test FILE`.

Marionette tests will be run from the source directory, as they do not
currently need packaging.

--HG--
extra : rebase_source : 41b80531b671cb2f4cca4337c41ba94ab189f8c0
2015-10-22 16:22:34 +01:00
Gregory Szorc b49f08ef42 Bug 1241771 - Print install manifest processing time; r=glandium
--HG--
extra : rebase_source : 55c85facadd02ffe237c0a9ba65f7523708bdc2f
2016-01-21 22:42:47 -08:00
Mike Hommey 6098e02a36 Bug 1239217 - Add the FasterMake+RecursiveMake hybrid backend. r=gps 2016-01-22 15:43:26 +09:00
Mike Hommey e50a6cfd7b Bug 1239217 - Make the RecursiveMake build system create backend files generically. r=gps
The current rule is only for "backend.RecursiveMakeBackend", but, with
the current default of generating both the RecursiveMake and FasterMake
backends, the command creates/refreshes both backends. This is, in fact,
how the FasterMake backend is refreshed in most cases.

Moreover, with an hybrid backends, the generated file is not
"backend.RecursiveMakeBackend" anymore, so we need a more generic way to
handle this.

Furthermore, it's not necessarily desirable for all backends to have a
dependency file to handle the dependencies to refresh the backend, so
generate a plain list instead. This has the side effect of making `mach
build-backend --diff` more readable for changes to that file.

Finally, make the backend.* files created like any other backend file,
such that its diff appears in the `mach build-backend --diff` output.
2016-01-22 15:43:24 +09:00
Mike Hommey f549721406 Bug 1239217 - Stop making the FasterMake build system refresh the backend on its own. r=gps
The FasterMake build system is meant to be invoked through `mach build
faster`, which does it already, or, in the near future, as part of an
hybrid build system, which will deal with it as well. People doing
`make -C objdir/faster` won't have the backend automatically refreshed,
but that's not a supported way to use it anyways.
2016-01-22 15:43:23 +09:00
Mike Hommey 185469f678 Bug 1239217 - Add the notion of Partial and Hybrid build backends. r=gps
Make the FasterMake backend a partial build backend.
2016-01-22 15:43:21 +09:00
Mike Hommey 2bbd2afaf4 Bug 1239217 - Skip empty install manifests, apart a few exceptions. r=gps
Install manifests are not empty in normal conditions, apart a few
exceptions where they are only used for a "magic" `rm -rf`.

However, we're going to introduce changes that will empty some of
the install manifests and make their work happen from a different
backend, in which case we don't want them to correspond to a `rm -rf`.
2016-01-22 15:43:16 +09:00
Mike Hommey ea76aa712a Bug 1241398 - Add a dry-run mode to `mach build-backend`. r=gps
When doing build system changes affecting backend-generated files, I
often use `mach build-backend --diff`. But most of the time I end up
wanting to look at the full diff again when doing further changes, which
leads me to stash my changes away, run `mach build-backend` to get the
initial state again, unstash and rerun `mach build-backend --diff`.

This has been a time drain for long enough :)
2016-01-22 07:00:23 +09:00
Mike Hommey 035edf837c Bug 1241398 - Allow to pass the --verbose flag down to config.status from `mach build-backend`. r=gps 2016-01-22 07:00:23 +09:00
Mike Hommey 0022f03519 Bug 1241398 - Show the diff for created and deleted files in `mach build-backend --diff`. r=gps 2016-01-22 07:00:23 +09:00
Mike Hommey 93901acdfb Bug 1241398 - Remove the FilePurger class. r=gps
Its only last use was removed.
2016-01-22 07:00:23 +09:00
Mike Hommey cbb6270957 Bug 1241398 - Don't purge install manifests from the recursive make backend. r=gps
The code doing this was added before we had install manifests, back when
they were purge manifests, and before we tracked all files created by
the backend. Nowadays, if an install manifest is removed, it will be
removed in BuildBackend.consume.

In fact, purging the install manifests in the backend itself breaks the
deleted files count displayed after reticunating splines.
2016-01-22 07:00:23 +09:00
Jacek Caban ea0edf0971 Bug 1239672 - Fixed symbols file support on mingw. r=glandium 2016-01-21 13:39:41 +01:00
Mike Hommey ff97250ee5 Bug 1241022 - Remove affected_tiers. r=gps 2016-01-21 13:54:03 +09:00
Mike Hommey 2fcc0bab19 Bug 1241022 - Remove code handling affected_tiers. r=gps 2016-01-21 13:54:03 +09:00
Mike Hommey 06970f8dd5 Bug 1241022 - Fix XPI_NAME and FILES_PER_UNIFIED_FILE. r=gps
XPI_NAME affects no tier on its own, as it merely changes paths where
things end up that are defined by other variables.

FILES_PER_UNIFIED_FILE had an erroneous value.
2016-01-21 13:54:03 +09:00
Mike Hommey 29f788b50a Bug 1241022 - Move IPDL_SOURCES, XPIDL_SOURCES and *WEBIDL_*. r=gps
Those are the worst offenders of affected_tiers. The rules to handle
them are all in directories that is not necessarily related to where
the variables are defined, each of which has a Makefile.in for those
rules, which forces export to go through them.
2016-01-21 13:54:03 +09:00
Mike Hommey d15aed7a3f Bug 1241022 - Move FINAL_TARGET_PP_FILES and TEST_HARNESS_FILES. r=gps
They are respectively using PP_TARGETS and INSTALL_TARGETS. Both affect
the misc tier since bug 1240671, per the *_TARGET value they set in the
backend.

This has the nice side effect of now skipping directories where test
harness files are handled by install manifests.
2016-01-21 13:54:03 +09:00
Mike Hommey 5fa52a8dbd Bug 1241022 - Move JAR_MANIFESTS. r=gps
JAR_MANIFESTS affects the libs tiers through config/rules.mk rules.
While we could move the rules in the backend, they are too complex to
just do that now.
2016-01-21 13:54:03 +09:00
Mike Hommey 27f3aa7c34 Bug 1241022 - Move GENERATED_FILES. r=gps
GENERATED_FILES impacts the export tier through the config/rules.mk
definitions, now moved to the backend itself, so that everything is
close to each other.
2016-01-21 13:54:03 +09:00
Mike Hommey 8513e7f0f1 Bug 1241022 - Move ANDROID_*_DIRS, ANDROID_EXTRA_PACKAGES, ANDROID_ECLIPSE_PROJECT_TARGETS and JAVA_JAR_TARGETS. r=gps
Those are non-passthru variables with the same property as
ANDROID_GENERATED_RESFILES, ANDROID_APK_NAME and ANDROID_APK_PACKAGE, in
that they don't affect tiers through the backend code itself, but from
the Makefile.in along the moz.build they are defined in.
2016-01-21 13:54:03 +09:00
Mike Hommey 427799414b Bug 1241022 - Move ANDROID_GENERATED_RESFILES, ANDROID_APK_NAME, ANDROID_APK_PACKAGE. r=gps
The are passthru variables that don't actually affect any tier per the
backend itself. They do affect the `export` tier by way of the Makefile.in
along the moz.build defining them, and the existence of those
Makefile.in already guarantees those directories not to be skipped for
`export`.
2016-01-21 13:54:03 +09:00
Mike Hommey cceef82d4d Bug 1241022 - Do not handle HAS_MISC_RULE with affected_tiers. r=gps
This initiates a move off affected_tiers in VARIABLES definition to
explicit in-backend handling, which will hopfully make things clearer.

HAS_MISC_RULE is currently used to opt-in to the misc tier in a few
directories with a misc:: rule.  It is, in fact, mostly used for custom
xpi creation, which will be separately addressed in bug 1240676, so it
will eventually go away entirely, but in the meantime, we send it as a
throwaway passthru.
2016-01-21 13:54:03 +09:00
Mike Hommey 052b8b751f Bug 1241022 - Handle all tiers as opt-in in the recursive make backend. r=gps
Historically, all tiers were handled as opt-out (may_skip), until we
added the first opt-in tier (no_skip). It doesn't make much sense to
differentiate them anymore, so handle them all as opt-in.
2016-01-21 13:54:03 +09:00
Mike Hommey bdc9ed0d4a Bug 1240990 - Define all backends in one place. r=gps
When adding a backend, we currently have to add them in three different
places so that they appear in the right places.

Instead, keep the list in a single place.
2016-01-21 13:54:03 +09:00
Mike Hommey a660612a84 Bug 1240945 - Add a --verbose option to mach package. r=mshal 2016-01-21 13:54:03 +09:00
Chris Manchester e1e56f71a4 Bug 1240530 - Bump the taskcluster version installed by |./mach artifact| to avoid installing an out-dated requests. r=nalexander
Currently |./mach artifact| installs an old version of the taskcluster client,
which installs an old version of requests that's incompatible with commonly
installed python versions. This bumps to a version of taskcluster client that
accepts and requests version < 3, so we pick up the in-tree version instead of
installing 2.4.3.

--HG--
extra : rebase_source : 7b4f450c0492fd3c840e4f0a0cce8b42d120df9f
2016-01-19 16:00:11 -08:00
Carsten "Tomcat" Book 248f7a3dee merge mozilla-inbound to mozilla-central a=merge 2016-01-20 15:34:34 +01:00
Mike Hommey dd60f8bf2c Backout changeset de0a7a1cdc4a from bug 1240660 for make package bustage on a CLOSED TREE 2016-01-20 08:03:58 +09:00
Mike Hommey 7f62418e45 Bug 1240671 - Move FINAL_TARGET_PP_FILES and TEST_HARNESS_FILES to the misc tier. r=gps 2016-01-20 07:24:40 +09:00
Mike Hommey 299b5dc832 Bug 1240660 - Move jar_maker to the misc tier, now that ordering does't matter. r=gps 2016-01-20 07:24:40 +09:00
Mike Hommey dcdd7d9f41 Bug 1240660 - Remove support for the "+" prefix in jar manifests. r=gps 2016-01-20 07:24:40 +09:00
Mike Hommey ba8b3a8a41 Bug 1237140 - Add support for local defines in generate_symbols_file. r=gps
generate_symbols_file only supports the global defines, and completely
ignores DEFINES from the same moz.build the SYMBOLS_FILE is defined.
This fixes this misfeature.
2016-01-20 07:24:40 +09:00
Mike Hommey 5aba5600b3 Bug 1237140 - Allow file_generate scripts to take additional flags. r=gps
Currently, file_generate scripts can only accept input and output file
name, but sometimes, one would like for them to take additional flags.
2016-01-20 07:24:40 +09:00
Mike Hommey f668d88db6 Bug 1237140 - Move DefinesAction from mozbuild.action.process_install_manifest to mozbuild.util. r=gps 2016-01-20 07:24:40 +09:00
Panos Astithas d2848915ff Bug 1143698 - Selecting macports on Yosemite fails out. r=gps 2016-01-20 00:00:41 +02:00
Panos Astithas 37abe588ff Bug 1114382 - Implement |mach bootstrap| for mobile/android on OS X with macports package manager. r=nalexander 2016-01-19 14:19:55 +02:00
Jim Chen 5cf0d899cd Bug 1240082 - Remove ant requirements; r=nalexander
--HG--
extra : commitid : LWw4uI6LnMf
extra : rebase_source : 714f77af63279a92fc6c015bea36c814fbe1589e
2016-01-13 13:19:23 -05:00
Chris Manchester 3c7406f19a Bug 1240323 - Fix installation of binary components in a subdir of dist/bin for linux artifact builds. r=nalexander
A recent change regressed this behavior -- while an artifact build runs, it
doesn't load certain "about:" pages due to missing libraries in subdirectories
of dist/bin.

--HG--
extra : commitid : HOPgt9kMKoV
2016-01-16 18:13:47 -08:00
Gregory Szorc a1cef9be6a Bug 1239880 - Don't copy thousands of web-platform test files to objdir; r=chmanchester
AFAICT, we don't actually access web-platform test files from the
objdir for anything except test packaging. And we already have
a mechanism for creating test archives from files directly in the
source directory. So, let's stop copying them to the objdir and
package them directly from the source directory!

The _tests install manifest reports the following change:

before: 41,977 files installed
after:  24,537 files installed
delta: -17,440 files

We still copy some WPT files to the objdir. We might be able to
eliminate these as well. However, since there are only ~200 files,
I'm not too concerned.

I manually compared the resulting web-platform zip archives from before
and after. No files were removed from the archive. However, the new
archive does gain several hundred empty directories with .gitkeep
files. This feels weird, but it shouldn't break anything (I would
think). I'm inclined to leave them for now. I'll file a follow-up
bug to deal with them (preferably by removing them from version
control).

--HG--
extra : rebase_source : d350f8fc223982c8a11a9bf542411e5ec5e44244
2016-01-15 20:09:12 -08:00
Wes Kocher 84fb907a27 Merge m-c to inbound, a=merge CLOSED TREE
--HG--
rename : testing/taskcluster/tasks/phone_test.yml => testing/taskcluster/tasks/b2g_e2e_tests_base_definition.yml
extra : commitid : 4MrlWshamZ5
2016-01-15 15:13:21 -08:00
Mike Hommey 364bdaff67 Bug 1239872 - Prevent jar maker from installing the same file twice. r=gps
The faster make backend cannot support such things, so it's better to
avoid unsupported things to slip in because it happens that doesn't
break what automation runs.
2016-01-16 07:19:08 +09:00
Mike Hommey 6e930714bd Bug 1239169 - Check that files exist before marking them for removal during install manifest processing. r=gps 2016-01-16 07:19:08 +09:00
Carsten "Tomcat" Book 40335d0645 Backed out changeset a87a27864bb8 (bug 1223385) 2016-01-15 13:51:54 +01:00
Carsten "Tomcat" Book 7e52b24fab merge mozilla-inbound to mozilla-central a=merge 2016-01-15 11:46:47 +01:00
Jim Chen b1e4e083d5 Bug 1223209 - Clean up old GeckoView library files; r=nalexander
Right now, each incremental build produces a new set of GeckoView
library files, but the previous files don't get cleaned up, and you end
up with a bunch of old libraries in your objdir. This patch cleans up
the old files before producing new ones.
2016-01-14 18:20:02 -05:00
Nick Alexander 4ffb95c185 Bug 1239738 - Handle artifact builds with no test binaries cleanly. r=ahunt
DONTBUILD NPOTB on a CLOSED TREE

--HG--
extra : commitid : FGUTtsps8la
extra : amend_source : 0111b1b9551a9d93749dd81dc961d73d2965ee65
2016-01-14 09:38:48 -08:00
Gijs Kruitbosch 2642bee1a7 Bug 1239678 - fix dll inclusion pattern on Windows and the placement of nested dlls like browsercomps and clearkey, r=nalexander
--HG--
extra : commitid : ISG749GMW8e
extra : rebase_source : 61e8971594cf88bd55dfbe9bb03da999daeba548
extra : amend_source : bd326f18285788f7e23f3c196391a9fc3c4c9d5a
2016-01-14 14:56:59 +00:00
Chris Manchester ab5e6b6e17 Bug 1238320 - Part 3 (Windows): Download test binaries necessary to run xpcshell tests and mochitests in artifact builds. r=nalexander
--HG--
extra : rebase_source : b1c404789cb4afaa31b0da676ed66ad7cdbed7b4
2016-01-13 21:56:36 -08:00
Chris Manchester db3a9aef35 Bug 1238320 - Part 2 (Mac): Download test binaries necessary to run xpcshell tests and mochitests in artifact builds. r=nalexander
--HG--
extra : rebase_source : 700fad2fa9b8082efe403b9822f20a738e42fec3
2016-01-13 21:56:36 -08:00
Chris Manchester 59bdb886e9 Bug 1238320 - Part 1 (Linux): Download test binaries necessary to run xpcshell tests and mochitests in artifact builds. r=nalexander
--HG--
extra : rebase_source : 09d7045ad02d30c6f5651dfbac23b38a05a54ed2
2016-01-13 21:56:36 -08:00
Ryan VanderMeulen 5115e9b08b Merge m-c to inbound. a=merge 2016-01-13 20:27:12 -05:00
Ryan VanderMeulen 065a253bf1 Merge inbound to m-c. a=merge 2016-01-13 20:25:33 -05:00
Gregory Szorc 6b9b8a3ac3 Bug 1232580 - Install py27-readline on MacPorts; r=Yoric
See https://trac.macports.org/ticket/48807. Without it, reading
input can break terminals.

--HG--
extra : rebase_source : 7eab1e60d6a6279fdaf25a4789598cf96e2b8d6c
2016-01-12 12:25:52 -08:00
Carsten "Tomcat" Book 0a0515f495 Merge mozilla-central to fx-team 2016-01-13 11:59:17 +01:00
Carsten "Tomcat" Book d833f9ba1a merge mozilla-inbound to mozilla-central a=merge 2016-01-13 11:57:15 +01:00
Axel Hecht a942827a5b Bug 1223385 - use in-tree compare-locales in Makefiles, r=gps
Also fix that the default merge dir in the mach command creates a directory
that's the merge make target, and thus keeps that make target from actually
running.

--HG--
extra : transplant_source : R%FE%7Eo%CDS%D1%B4%EA%DB%D0%19q%F92%A1V%91%10%5C
2016-01-08 16:37:52 +01:00
Axel Hecht afdc275f75 Bug 1237678 - update compare-locales to version 1.0. r=mathjazz
changeset: 300933:aa4e0275bb3c
tag: tip
user: Axel Hecht <axel@pike.org>
summary: bug 1237678, update compare-locales to version 1.0, r=mathjazz
2016-01-09 17:13:13 +01:00
Bryce Van Dyk 866df57055 Bug 1239096 - Improve English is artifacts.py comments. r=me
--HG--
extra : rebase_source : c0f23a8e95d8ec73147410f2325ae8f09c17907f
2016-01-13 10:46:28 +13:00
Dan Minor 30f2bba053 bug 1237619: Record build objects in resource_usage.json r=gps
Collecting the list of object files compiled, while not ideal, will give us
some indication of how much work was involved in the build. This will help
with analyzing the data.

--HG--
extra : rebase_source : e9861ed5c0766e3ee8038dbec0b9267022c523eb
2016-01-12 14:00:24 -05:00
Dan Minor 84c48e39bd bug 1237619: Add system and command metadata to resouce_usage.json r=gps
This adds metadata about the local system to resource_usage.json that will
be useful for analysis when we start collecting these results. Some of it
is redundant with data collected for individual tiers, but having it
available at a top level should make analysis easier.

--HG--
extra : rebase_source : 43b2f6335a4de9c7843f75a3461d2871a97b7752
2016-01-13 06:42:51 -05:00
Dan Minor ad24f01e02 bug 1237619: save resource usage for "what" builds r=gps
This moves monitor start/end recording so it also occurs for "what"
builds rather than only for full builds.

--HG--
extra : rebase_source : 833c7311ca5ecfe6935e0a160da695acaecbdeeb
2016-01-07 14:18:36 -05:00
Nick Alexander 31dae95089 Bug 1234912 - Check for mozext and pushlog entries after |mach artifact install| hg failure. r=gps
Pushing on a CLOSED TREE after network errors.

--HG--
extra : commitid : 40hmCLC8zZJ
extra : rebase_source : 44a623fdf7cb97bfaca76617062d57c6b50fd970
extra : amend_source : 710db8302b5bf88d6bf293d71f3cc001187b6015
2016-01-06 21:19:49 -08:00
Nick Alexander 00480dd76d Bug 1236110 - Extend mach artifact to handle Linux Desktop builds. r=gps
--HG--
extra : commitid : 95zTSXuAPeR
extra : rebase_source : 478ec692ac60853bd55185532fb740214e249590
2016-01-06 20:15:21 -08:00
Gijs Kruitbosch 06bd7d5a5b Bug 1236111 - part 4: actually add Windows support to artifact code, r=nalexander,gps
--HG--
extra : commitid : 6cE49rCkabN
extra : rebase_source : 00d203e5dfba88ad82d0b0dfad3e3e07d1cba84e
2016-01-05 14:58:22 +00:00
Gijs Kruitbosch e9063e1fa3 Bug 1236111 - part 3: ensure calls to hg and mach work on Windows, and that we use the right file mode when writing artifacts, r=nalexander,gps
--HG--
extra : commitid : ICu30zW49xb
extra : rebase_source : 8b0ed9467f85e727f20a17f91b73b67abe96a465
2016-01-05 14:57:24 +00:00
Gijs Kruitbosch fbc8f9a32e Bug 1236111 - part 2: fix mozbuild to use the file mode modifiers specified for opening when writing a FileAvoidWrite, r=gps,nalexander
--HG--
extra : commitid : J6mVFwKgMQh
extra : rebase_source : 8a8b0ba2c21cf561af8dd667e387106869a65124
2016-01-05 14:46:24 +00:00
Gijs Kruitbosch 4f7d946d9f Bug 1236111 - part 0: improve logging from process mixin, r=gps
--HG--
extra : commitid : 8fODk4pYcos
extra : rebase_source : c80e8dc7ce278a98ee27d72fdfe998cbc14a00fb
2016-01-05 11:13:05 +00:00
Richard Newman f73acc178f Bug 1237342 - Drop support for Android API 14 from Firefox builds. r=nalexander
--HG--
extra : commitid : Exc5s17e8Wt
extra : rebase_source : 0745780e85e84e5fa4263677582991053dcc49d1
2016-01-06 10:43:46 -08:00
Mike Hommey c666e4b0a1 Bug 1235109 - Remove support for -I in preprocessor and jar maker. r=gps
The last use for this option was removed in bug 1235108.
2016-01-05 20:03:43 +09:00
Mike Hommey 2e0827fdb8 Bug 1235935 - Backout changeset 5a6ef68947e7 from bug 1235738 to enable debug flags in HOST_C{,XX}FLAGS. r=me 2016-01-05 20:03:43 +09:00
Henrik Skupin 7bf2719b66 Bug 1212609 - Add common test package rules for firefox-ui-tests. r=gps 2016-01-04 22:13:43 +01:00
Chris Manchester a01c2483da Bug 1214885 - Add a "ChromeUrl" build backend to write out information useful for resolving chrome urls. r=glandium
The result of running this backend is a json file containing an array with 3 elements:
a map from resource:// and chrome:// url prefixes to corresponding objdir directories,
a map of overrides, and a map from objdir files to srcdir files (with a flag for whether
the file was preprocessed) for js file in FinalTargetFiles. A subsequent commit implements
the procedure to find an replace based on the url mapping, subsistute based on overrides,
and find sourcedir files based on objdir files.

--HG--
extra : commitid : Di6Ro5c9sTK
2015-10-01 18:56:53 -05:00
Chris Manchester 99fc89d399 Bug 1240239 - Install test plugins in artifact based builds. r=nalexander
--HG--
extra : commitid : ECQBZ0DsPNK
2016-01-19 14:21:30 -08:00
Robert Longson 5e6d529757 Bug 1240616 - mach mochitest-run suggests deprecated commands as an alternative r=cmanchester 2016-01-19 21:39:16 +00:00
Gijs Kruitbosch 62704c57f5 Bug 1240142 - always disable crashreporter when using ./mach run, r=gps
--HG--
extra : rebase_source : 27d22512f407ad025a551796886efb58d0ab31a3
2016-01-18 11:06:00 +00:00