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

2862 Коммитов

Автор SHA1 Сообщение Дата
Chris Manchester 0b448c1224 Bug 1367852 - Defer file read to reduce peak memory use in mozjar when dumping symbols. r=ted
Passing a file object intead of a string of the file's contents defers reading
the file to a place Python can free the resulting string earlier, reducing
peak memory consumption when packaging symbols and avoiding a MemoryError on
Windows 32 builders in automation.


MozReview-Commit-ID: H0R6BbjwhOu

--HG--
extra : rebase_source : 181b592ab503d0545f34d167d7c05428455b6671
2017-05-30 12:11:21 -07:00
Nick Alexander 518efc8674 Bug 1365089 - Pre: Support setting default keyfile locations in moz.configure. r=nalexander
MozReview-Commit-ID: 207kgPU2TPM

--HG--
extra : rebase_source : 92d30da1d4956b159335536a46a26610a40e632b
2017-05-19 11:30:26 -07:00
Sebastian Hengst d8e719c8a3 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: CEadD9RweN4
2017-05-27 10:00:59 +02:00
Nathan Froyd d76955c52a Bug 1368099 - part 2- quote suggested Stylo paths on Windows; r=rillian
We install the tooltool packages to ${HOME}/.mozbuild by default, and
${HOME} may have spaces on Windows.  The arguments to the command-line
options need to be quoted appropriately.

DONTBUILD because NPOTB
2017-05-26 22:36:35 -04:00
Nathan Froyd 17c85c1c0d Bug 1368099 - part 1 - provide the correct --with-libclang-path suggestions; r=rillian
libclang.dll lives in the bin/ directory, not the lib/ directory.
2017-05-26 22:36:35 -04:00
Nathan Froyd 3be5437549 Bug 1364588 - part 5 - pass the checkout_root down to stylo package installation; r=rillian
This change ensures that when we're running bootstrap in standalone
mode, we find the correct mach to invoke.

DONTBUILD because NPOTB
2017-05-26 16:07:01 -04:00
Nathan Froyd 05acc3e2cb Bug 1364588 - part 4 - compute the firefox checkout root; r=rillian
We'll need this information to be able to locate mach later, since we
can't assume that mach is just several directories above the script
we're currently running.
2017-05-26 16:07:01 -04:00
Nathan Froyd 9c82ef3194 Bug 1364588 - part 3 - check for a clone before installing Stylo packages; r=rillian
If we're running bootstrap from inside a mozilla-central checkout, we'll
have all the necessary files that we need to install tooltool packages
via `mach artifact toolchain`.  If we're running bootstrap from a
downloaded bootstrap.py, however, it's possible that we failed to clone
the repository.  We need to account for that situation and provide
instructions on how to deal with it.

A consequence of these two mechanisms for bootstrap is that we'll have
to make sure we're invoking `mach artifact toolchain` correctly in both
cases, which we'll handle in subsequent commits.
2017-05-26 16:07:01 -04:00
Nathan Froyd 698311c61c Bug 1364588 - part 2 - move Stylo package installation; r=rillian
Now that we're installing Stylo packages through `mach`, we need to have
`mach` available, which is only true after we've checked for a clone of
the tree.  We move the block performing the installation in this commit
and then fixup resulting problems in future commits.
2017-05-26 16:07:01 -04:00
Nathan Froyd 234629de6e Bug 1364588 - part 1 - use `mach artifact toolchain' to download clang Stylo packages; r=rillian
Using this command is more robust than our current method, and brings
several benefits, such as smart caching of the downloaded toolchain.  We
change the clang package downloaded for Windows with this change, but
bindgen has been updated to work well with LLVM 5.0, so there should be
no problems.
2017-05-26 16:07:01 -04:00
Gregory Szorc 68592ce4d0 Bug 1367834 - Suppress compiler warnings for 3rd party projects; r=froydnj
Most complaints about compiler warnings being printed at the end of the
build (4abe611696ab - bug 1360764) center around the volume. And most
of the volume is due to 3rd party projects. Since work to suppress the
warnings in 3rd party projects has been slow, let's temporarily filter
out those warnings.

This commit adds a list of suppressed directories corresponding to
3rd party projects responsible for most compiler warnings. For
non-automation builds, we don't print the warnings. Instead, we
print a summary of how many warnings were suppressed.

Not all 3rd party projects were listed. The intent is to only list the
high volume ones so the warnings list is reasonable by default. I
believe the current implementation achieves that. But I wouldn't
be surprised if it requires refinement. Perfect is the enemy of good.

MozReview-Commit-ID: ExDRidsHROC

--HG--
extra : rebase_source : 49123193ea872a92208dc54a71b5f31208c10cd1
2017-05-25 11:51:46 -07:00
Ryan VanderMeulen b8ba243c22 Merge autoland to m-c. a=merge 2017-05-25 16:31:52 -04:00
Justin Wood a14524a72d Backed out changeset d10f5ccd882b, for Nightly bustage from Bug 1359965 c#29
MozReview-Commit-ID: 6ddN0Y55Bsk
2017-05-25 09:08:54 -04:00
Justin Wood e0c208d7dc Backed out changeset a872303fd084, for Nightly bustage from Bug 1359965 c#29
MozReview-Commit-ID: K06A4HcRM6K
2017-05-25 09:02:54 -04:00
Ryan VanderMeulen c5b2958154 Merge inbound to m-c. a=merge 2017-05-24 20:45:23 -04:00
Andreas Tolfsen eda48cff40 Bug 1340637 - Provide build rules for geckodriver; r=jgraham,ted
geckodriver is the Mozilla implementation of the WebDriver remote
control interface for Gecko, and provides an HTTPD proxy that
translates the WebDriver protocol to Marionette.

Building this as part of the Firefox build will allow us to run
WPT WebDriver tests to verify our implementation of Marionette and
geckodriver.  It also makes it less painful to make changes across
projects.

This change will cause the geckodriver program to be built as part
of regular Firefox builds, except on macOS and Android, and when artifact
builds are enabled.

RUST_PROGRAMS in cross-compile environments cause the wrong linker to
be used.  When this bug is fixed, we should be able to enable building
of geckodriver on macOS.  This work is tracked in:

	https://bugzilla.mozilla.org/show_bug.cgi?id=1329737

On Android, we may one to build a binary for the host system to use
(x86_64), instead of an ARM binary for the emulator.

MozReview-Commit-ID: FG5tmPv4iut

--HG--
extra : rebase_source : 091728fd2582458325689fc6e3d8b317428802d8
2017-05-23 14:55:54 +01:00
Nathan Froyd 88e5d07280 Bug 1367405 - only print warning summary for successful builds; r=gps
If we had an unsuccessful build, then duplicating the warnings at the
end of the compilation job would just be burying the actual error in a
blizzard of noise.
2017-05-24 16:49:11 -04:00
Gregory Szorc 74778951f0 Bug 1359965 - Support and generate tar.gz WPT archive; r=glandium
Several years ago there was a single zip file for all test files. Clients
would only extract the files they needed. Thus, zip was a reasonable
archive format because it allowed direct access to members without
having to decompress the entirety of the stream.

We have since split up that monolithic archive into separate,
domain-specific archives. e.g. 1 archive for mochitests and one
for xpcshell tests. This drastically cut down on network I/O
required on testers because they only fetched archives/data that
was relevant. It also enabled parallel generation of test archives,
we shaved dozens of seconds off builds due to compression being
a long pole.

Despite the architectural changes to test archive management, we
still used zip files. This is not ideal because we no longer access
specific files in test archives and thus don't care about single/partial
member access performance.

This commit implements support for generating tar.gz test archives.
And it switches the web-platform archive to a tar.gz file.

The performance implications for archive generation are significant:

before: 48,321,250 bytes; 6.05s
after:  31,844,267 bytes; 4.57s

The size is reduced because we have a single compression context
so data from 1 file can benefit compression in a subsequent file.
CPU usage is reduced because the compressor has to work less with
1 context than it does with N. While I didn't measure it, decompression
performance should also be improved for the same reasons. And of course
network I/O will be reduced.

mozharness consumers use a generic method for handling unarchiving.
This method automagically handles multiple file extensions. So as long
as downstream consumers aren't hard coding ".zip" this change should
"just work."

MozReview-Commit-ID: LQa5MIHLsms

--HG--
extra : rebase_source : cd029cdbbcccc1d16f03d63a5f1fdf60be5db4fd
extra : source : a0e257e346ccf3c1db332ec5903241f4eeb9a7ee
2017-05-08 17:19:05 -07:00
Gregory Szorc 5172222fa9 Bug 1359965 - Support mozpack.file.BaseFile in create_tar_from_files; r=glandium
This allows us to write files coming from a finder or other source
that isn't directly the filesystem.

MozReview-Commit-ID: KhPSD0JYzsQ

--HG--
extra : rebase_source : 24db84974b54a714ba82dfad7ff68fd1a5bf656a
extra : source : ae8bce278626bc84914063f93292ac5e825eec36
2017-05-08 17:00:20 -07:00
Ryan VanderMeulen 62671ef4d8 Merge autoland to m-c. a=merge 2017-05-23 18:01:59 -04:00
Wes Kocher afb7b41b84 Backed out 2 changesets (bug 1359965) for likely breaking tc nightlies a=backout
Backed out changeset a0e257e346cc (bug 1359965)
Backed out changeset ae8bce278626 (bug 1359965)

MozReview-Commit-ID: 9rGpv7CFofi
2017-05-23 12:55:35 -07:00
Mike Hommey b860fe5648 Bug 1366729 - Skip manifest entries that are packaged twice. r=gps
--HG--
extra : rebase_source : 0db515433e1e5dacaf6be0c0921af060c3ad644d
2017-05-23 08:00:15 +09:00
Mike Hommey ae2d9aa982 Bug 1366729 - Properly handle "multi-content" manifest entries after bug 1366169. r=gps
Some manifest entries (e.g. skin or locale) have an attached identifier,
and there can be different entries with different identifiers for the
same chrome name. The change from bug 1366169 would consider those as
errors, while they are the expected configuration.

--HG--
extra : rebase_source : ceb08da909121a2ac0a2cdaba7970e4594dde09f
2017-05-23 07:51:22 +09:00
Gregory Szorc fbd5db6a52 Bug 1359965 - Support and generate tar.gz WPT archive; r=glandium
Several years ago there was a single zip file for all test files. Clients
would only extract the files they needed. Thus, zip was a reasonable
archive format because it allowed direct access to members without
having to decompress the entirety of the stream.

We have since split up that monolithic archive into separate,
domain-specific archives. e.g. 1 archive for mochitests and one
for xpcshell tests. This drastically cut down on network I/O
required on testers because they only fetched archives/data that
was relevant. It also enabled parallel generation of test archives,
we shaved dozens of seconds off builds due to compression being
a long pole.

Despite the architectural changes to test archive management, we
still used zip files. This is not ideal because we no longer access
specific files in test archives and thus don't care about single/partial
member access performance.

This commit implements support for generating tar.gz test archives.
And it switches the web-platform archive to a tar.gz file.

The performance implications for archive generation are significant:

before: 48,321,250 bytes; 6.05s
after:  31,844,267 bytes; 4.57s

The size is reduced because we have a single compression context
so data from 1 file can benefit compression in a subsequent file.
CPU usage is reduced because the compressor has to work less with
1 context than it does with N. While I didn't measure it, decompression
performance should also be improved for the same reasons. And of course
network I/O will be reduced.

mozharness consumers use a generic method for handling unarchiving.
This method automagically handles multiple file extensions. So as long
as downstream consumers aren't hard coding ".zip" this change should
"just work."

MozReview-Commit-ID: LQa5MIHLsms

--HG--
extra : rebase_source : 19ec875917546abc147b234a815e1a64c204b92a
2017-05-08 17:19:05 -07:00
Gregory Szorc 8a71fabf2e Bug 1359965 - Support mozpack.file.BaseFile in create_tar_from_files; r=glandium
This allows us to write files coming from a finder or other source
that isn't directly the filesystem.

MozReview-Commit-ID: KhPSD0JYzsQ

--HG--
extra : rebase_source : 10d494fc910982c3e34f4744592edca906d3a85d
2017-05-08 17:00:20 -07:00
Gregory Szorc 2b1957d1e5 Bug 1361172 - Rewrite code for finding files in VCS checkout; r=glandium
We're getting an intermittent failure running `hg manifest` in CI. I
have no clue why.

What I do know is that we now have the mozversioncontrol Python package
for containing utility code for interacting with version control. It is
slightly more robust and I'm willing to support it more than I am
check_utils.py.

This commit adds a new API to our abstract repository class to obtain the
files in the working directory by querying version control.

Since I suspect cwd was coming into play in automation, I've also
added a utility function to mozversioncontrol to attempt to find
a version control checkout from the current working directory. It
simply traces ancestor paths looking for a .hg or .git directory.

Finally, I've ported all callers of the now-deleted API to the new
one. The old code had some "../.." paths in it, meaning it only
worked when cwd was just right. Since we resolve the absolute path
to the checkout and store it on the repo object, I've updated the
code so it should work no matter what cwd is as long as a repo can
be found. I'm not 100% confident I found all consumers assuming cwd.
But it's a start.

I'm not 100% confident this will fix the intermittent issues in CI. But
at least we should get a better error message and at least we'll be
running less hacky code.

MozReview-Commit-ID: AmCraHXcTEX

--HG--
extra : rebase_source : 815ae369776577ad374333920fd645d412a55148
2017-05-18 16:06:49 -07:00
Xidorn Quan 0214189457 Bug 1366542 - Bump required version of Rust to 1.17.0. r=mshal
MozReview-Commit-ID: Bgz6etF2vR2

--HG--
extra : rebase_source : 5ed97670f6144181bbeaceae0cbebd64ca920212
2017-05-21 11:48:33 +10:00
Mike Shal ca4aa9a838 Bug 1365722 - Move application.ini processing out to a separate file; r=cmanchester+432261
Windows repackaging for complete mar files will also need to pull a
different value out of the application.ini file, so this code should be
shareable.

MozReview-Commit-ID: CzCoNRYcBPX

--HG--
extra : rebase_source : a5e4b31ba876d811436a7d8d15462fa85f0762f8
2017-05-04 16:13:55 -04:00
Mike Shal 14106ca069 Bug 1365722 - Use correct permission bits in chmod; r=cmanchester+432261
The chmod permissions need to be in octal format to get the expected
permissions settings. This only seems to affect the output if we run the
repackaging command on Linux, but it should still be fixed.

MozReview-Commit-ID: to4v7dkSBl

--HG--
extra : rebase_source : 9d2289511ebd05aea8a4c6d37136f258e2463dee
2017-05-03 12:37:49 -04:00
Mike Shal af5d946f11 Bug 1365722 - Rename 7z_exe_* to exe_7z_*; r=cmanchester+432261
Python can run these files with 'python -m 7z_exe_foo', but using
'import 7z_exe_foo' is not allowed because the module begins with a
number.

See also: https://stackoverflow.com/a/17487228

MozReview-Commit-ID: 97iDdXlZJ1a

--HG--
rename : python/mozbuild/mozbuild/action/7z_exe_archive.py => python/mozbuild/mozbuild/action/exe_7z_archive.py
rename : python/mozbuild/mozbuild/action/7z_exe_extract.py => python/mozbuild/mozbuild/action/exe_7z_extract.py
extra : rebase_source : 1941986a7e6e56305b742710c73b90a3f7b5226b
2017-05-22 14:26:44 -04:00
Mike Shal 5f837f5c24 Bug 1365722 - Move repackage_dmg into a repackaging/ directory; r=cmanchester+432261
It makes more sense to have the repackage commands in a separate
directory, since Windows repackaging will add several new types.

MozReview-Commit-ID: 1wA7F7k4NXf

--HG--
rename : python/mozbuild/mozbuild/repackage.py => python/mozbuild/mozbuild/repackaging/dmg.py
extra : rebase_source : b4b4f2fd5c45900aaf125928c144c15cfa1e115e
2017-05-02 15:18:51 -04:00
Shing Lyu 5d8a5a598c Bug 1361645 - Change reftest condition stylo to styloVsGecko r=dbaron
MozReview-Commit-ID: 3ekoU1zg8xA

--HG--
extra : rebase_source : f62c84516f5ac0d4b4d0c876514b72fa786ec542
2017-05-25 11:26:12 +08:00
Chris Manchester 988a73bb71 Bug 1367735 - Do not attempt to generate or install headers or other compile related files during artifact builds. r=mshal
This patch stops GENERATED_FILES from being run during export for artifact
builds and prevents EXPORTS from being processed because some of these will
depend on generated headers.

MozReview-Commit-ID: BHZBFbVHwPT

--HG--
extra : rebase_source : fe21e07c5bb8ef957a0006ec6a06eb833692ebaf
2017-05-25 15:17:23 -07:00
Chris AtLee 5fa1f81924 Bug 1351071: Get rid of pre-generated startup cache r=glandium
MozReview-Commit-ID: BcWcqEKwGBv

--HG--
extra : source : 0f320509eddb30fdefd00d17179670381c3b6f78
2017-04-04 09:26:25 -04:00
Mike Hommey d1b2f93802 Bug 1366169 - Avoid reordered manifest entries creating unexpected overrides. r=gps
As described in changeset c94e87a18096, chrome manifest entries are
reordered and don't necessarily appear in the order they have in jar.mn.

And in some cases, the order does matter: when entries with flags are
followed by entries with more broad flags or no flags at all. Nobody
should be writing entries in that order on purpose, so error out during
packaging when we detect the pattern.

--HG--
extra : rebase_source : d9617bbcbd8560503c532a13c10c8afb0fd49411
2017-05-19 15:01:58 +09:00
Mike Hommey 59f1035ec6 Bug 1363811 - Allow "direct" access to namespace attributes from DependsFunctions. r=cmanchester+432261
To make things simpler in configure code, as well as to allow the linter
to skip bugging about some --help dependencies, we make the following
work:

    something.some_attr

where the result is equivalent to, currently:

    delayed_getattr(something, 'some_attr')
2017-05-19 07:03:39 +09:00
Mike Hommey 853aefa3b4 Bug 1363811 - Allow to combine two DependsFunctions with "&". r=cmanchester+432261
Similar to how they can be combined with "|", we now allow using "&".
As for "|", it would have been better if it were "and", but it's not
possible to override "and" in python ; __and__ is for "&".
2017-05-19 07:03:39 +09:00
Mike Hommey 91e718c2f2 Bug 1363811 - Modify the name of the DependsFunction.__or__ implementation method. r=cmanchester+432261
Like the test change, it makes the intent clearer.
2017-05-19 07:03:39 +09:00
Mike Hommey fafb6f8f44 Bug 1363811 - Change TestConfigure.test_depends_or to test more cases. r=cmanchester+432261
Also, test the results match what a normal "or" of the returned values
would be. This makes it clearer how the feature is meant to work.
2017-05-19 07:03:39 +09:00
Mike Hommey 57258bd4bf Bug 1365786 - Avoid missing --help dep error when a @depends function uses builtins. r=chmanchester
--HG--
extra : rebase_source : cb79f4f67bcc1c5b271ec430733143a385cf8360
2017-05-18 09:32:39 +09:00
Mike Hommey ef3f9aa89b Bug 1365477 - Ensure all callers of CommandLineHandler() pass a complete argv. r=chmanchester
CommandLineHandler() expects argv to be like sys.argv, containing the
command name in argv[0], but various tests weren't doing that, in some
cases even leading to ignored arguments passed as argv[0].

In turn, that made lint.py only test browser/moz.configure instead of
all the project moz.configures as intended.

--HG--
extra : rebase_source : 8a87216edaa4a2fd27abb9ef74d38a254a2bbeed
2017-05-17 12:10:46 +09:00
Chris Manchester bdaf34a711 Bug 1307301 - Don't attempt to compress compressed files when packing the symbols archive. r=ted
MozReview-Commit-ID: 542dZflb00G

--HG--
extra : rebase_source : 6b942e687517a3053b349a20475de7cff956327a
2017-04-27 22:51:19 -07:00
Chris Manchester b9fb4033d1 Bug 1307301 - Pack symbols with a python helper and mozjar instead of zip. r=ted
MozReview-Commit-ID: SKwzZ7l8CS

--HG--
extra : rebase_source : 9e5765df89a966edfbe054b4f555ef347a3fd7e3
2017-04-27 20:37:11 -07:00
Mike Hommey c3680170a7 Bug 780562 - Take locale chrome manifest flags into account when repacking l10n. r=gps
--HG--
extra : rebase_source : 5185b078260f0445cfe77f0416230c9ab0781f8b
2017-05-09 14:23:55 +09:00
Gregory Szorc e5c00fdd77 Bug 1364511 - Upgrade Mercurial during `mach bootstrap` on MozillaBuild; r=RyanVM
The base bootstrap class has code to conditionally upgrade Mercurial
depending on its version. It is kinda broken. This commit overrides
that code in the MozillaBuild bootstrapper to always run `pip`, which
will ensure the latest stable Mercurial release is installed.

MozReview-Commit-ID: 2O1Ff7dAp4o

--HG--
extra : rebase_source : 98cba0abbebf13e8fe93673d5b46eb16e6a3c147
2017-05-12 15:04:28 -07:00
Gregory Szorc 997dcaa50f Bug 1364635 - Don't offer to configure Mercurial if running from a Git checkout; r=Ehsan
Previously, `mach bootstrap` would unconditionally prompt to help
configure Mercurial in most scenarios. I agree with Ehsan's observation
in a mailing list post that this behavior doesn't make sense when
running from a Git checkout, as the user probably doesn't care about
Mercurial if they are using Git.

This change doesn't completely ignore Mercurial for Git users. For
example, we still unconditionally run code that verifies that Mercurial
is installed and reasonably up to date. Changing this would be a bit
of work. But even if we wanted to change it, git-cinnabar users
would benefit from having a modern Mercurial installed. So it isn't
straightforward for Git users to ignore Mercurial completely.

MozReview-Commit-ID: 8ncHRgCsjz

--HG--
extra : rebase_source : 7945e3bf3d5283105bac517885f794fc5d7bba6d
2017-05-12 19:44:03 -07:00
Nick Alexander 102c9bafb0 Bug 1196367 - Remove AndroidEclipse build backend. r=gps
MozReview-Commit-ID: CdrpMaggWsJ

--HG--
extra : rebase_source : f11a0f7983e9cf3131ab3189a3d2816cb86cab2c
2017-05-02 21:39:03 -07:00
Mike Hommey 563880df0e Bug 1363585 - Forbid boolean operations on @depends functions. r=chmanchester
Doing something like "not foo" when foo is a @depends function is never
going to do what the user expects, while not necessarily leading to an
error (like, when used in set_config).

It is better to have an error in those cases where it's expected not to
work, at the expense of making templates a little more verbose, rather
than silently do something the user is not expecting.

--HG--
extra : rebase_source : 87ba80eccc5606322f6dd185d5cb5fc88471e51b
2017-05-10 11:35:22 +09:00
Jan Beich 476caecbe9 Bug 1363686 - Pull LLVM 4.0 for ./mach bootstrap for Stylo on FreeBSD. r=rillian
MozReview-Commit-ID: 9jCdPLsRaQ4

--HG--
extra : rebase_source : e3bab6ddeccac2d1c01d2ca3dd88880684493329
2017-05-10 11:05:44 +00:00
Ralph Giles bd9dc581ea Bug 1336153 - Skip RustLibrary init on artifact builds. r=froydnj,nalexander
Artifact builds were relying on disabling Rust source file inclusion.
The RustLibrary mozbuild class wants to know cargo's output directory
when initializing itself, but when no compile environment is available
rust.configure isn't included and the corresponding config keys
aren't available.

Skip inializing the dependent fields in that case. Since the artifact
build never tries to compile any of the rust libraries, leaving
these properties undefined works ok.

MozReview-Commit-ID: 8IzTsweSygn

--HG--
extra : rebase_source : a59fc01483fbc85766ff4445c5db7ddb1e49b87c
2017-05-09 14:11:12 -07:00