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

540 Коммитов

Автор SHA1 Сообщение Дата
arthur.iakab 5015db160d Merge mozilla-central to inbound 2018-09-21 12:53:54 +03:00
Benjamin Bouvier 0082fc1177 Bug 1490948: Set the LLVM_CONFIG environment variable when building the Spidermonkey hazard builds; r=sfink
This is needed so that rust-bindgen can be used in this environment.

--HG--
extra : rebase_source : ec8b0effa56c96dce9b732d6d50cd009ce747f70
2018-09-13 12:03:07 +02:00
Eric Rahm aaed620ced Bug 1484406 - Update rust-size version. r=glandium
This updates the rust-size build to reference the latest version [1] that
includes a work-around for calculating the .bss of a PE file that has a
writable section with a smaller on-disk size than in-memory size.

[1] ab659d93b1

--HG--
extra : rebase_source : 24b451d244cd0533ca550688ccc05976cae410c7
2018-09-06 16:36:19 -07:00
Mike Hommey 6b4f2f3162 Bug 1487603 - Update llvm-dsymutil to 7rc2. r=dmajor,firefox-build-system-reviewers
Last time it was updated is bug 1436208, and the crashes we patched it
for back then has been fixed upstream a few months later.

For some reason, they renamed the executable from llvm-dsymutil to
dsymutil.

Differential Revision: https://phabricator.services.mozilla.com/D4741

--HG--
extra : moz-landing-system : lando
2018-08-31 13:25:27 +00:00
Tom Ritter d8daa6fd7c Bug 1487443 Bump MinGW Version to correct PEB Struct and ICU-conflicting daylight macro r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D4685

--HG--
extra : moz-landing-system : lando
2018-08-30 16:07:14 +00:00
Tom Ritter 247efb2903 Bug 1480178 Bump mingw version to pick up new API functions and provide libmincorer?froydnj r=froydnj
Differential Revision: https://phabricator.services.mozilla.com/D4565

--HG--
extra : moz-landing-system : lando
2018-08-29 16:11:37 +00:00
Tom Prince 83067e2603 Bug 1484012: [fetch-content] Add support for downloading private artifacts; r=gps
Differential Revision: https://phabricator.services.mozilla.com/D3556

--HG--
extra : rebase_source : 8207be2e99ee8fdc75209f62c4a357b5c827edce
2018-08-16 15:13:02 -06:00
Tom Prince 9fd238c7e3 Bug 1484012: [fetch-content] Transparently decompress artifacts; r=gps
generic-worker transparently compresses uncompressed artifacts. Teach
fetch-content to decompress those artifacts.

Differential Revision: https://phabricator.services.mozilla.com/D3555

--HG--
extra : rebase_source : 3e1847b545de5443fd4349f75acc605ea5a46701
2018-08-15 15:53:27 -06:00
Tom Prince 6701e41a4c Bug 1484012: [fetch-content] Add an option to not unpack downloaded artifacts; r=gps
Differential Revision: https://phabricator.services.mozilla.com/D3554

--HG--
extra : rebase_source : 58bba31bd921d29d4a40ad8d9ba09c4c7ac1f8dc
2018-08-15 15:16:49 -06:00
Tom Prince 43c8cdcaae Bug 1484012: [fetch-content] Pass `MOZ_FETCHES` as json; r=gps,ahal
Rather than trying to parse strings, just pass a json blob. This will allow us
to easily do things like mark artifacts to be left unextracted.

Differential Revision: https://phabricator.services.mozilla.com/D3553

--HG--
extra : rebase_source : 4e762c65d1c9f13361d5bae2e4608ba09bb39a91
2018-08-17 10:37:21 -06:00
Andrew Halberstadt 321a8788f2 Bug 1484790 - [fetches] Overwrite without prompting when unzipping an artifact with fetch-content, r=gps
This also moves the call to 'fetch_artifacts' in run-task down inside the
try/finally block. This way if something goes wrong, we'll still cleanup
MOZ_FETCHES_DIR.

Differential Revision: https://phabricator.services.mozilla.com/D4152

--HG--
extra : moz-landing-system : lando
2018-08-24 16:04:59 +00:00
Mike Hommey dc8ae8410c Bug 1485503 - Avoid ld64 merging static and non-static data with the same name during ThinLTO. r=dmajor
When different translation units contain the same symbol name, all
static, but one of them non-static, ld64 wrongfully link the references
to the static data with the non-static data, or vice versa. With libaom
and libvpx sharing data structures with the same name but different
contents, that leads to interesting failures/crashes at runtime.

This was apparently fixed in Apple ld64 from Xcode 9, but the last open
sourced version is the one from Xcode 8, so I ended up digging in the
ld64 source code and fixed the issue.

This work was merged to cctools-port upstream in
https://github.com/tpoechtrager/cctools-port/pull/59.

For the same reason as invoked in bug 1478917, though, updating to
cctools-port master is more involved than just changing a commit sha1
(as it requires building apple-libtapi, which in turn builds parts of
LLVM, which should probably be avoided), so just cherry-pick the fix.
2018-08-24 08:39:31 +09:00
Mike Hommey 1894266228 Backout changesets 59c38e3958fe (bug 1485545) and 4017bcbb799d (bug 1485503) to give time to toolchains to build without blocking other landings. 2018-08-24 07:39:04 +09:00
Mike Hommey 660169ff88 Bug 1485503 - Avoid ld64 merging static and non-static data with the same name during ThinLTO. r=dmajor
When different translation units contain the same symbol name, all
static, but one of them non-static, ld64 wrongfully link the references
to the static data with the non-static data, or vice versa. With libaom
and libvpx sharing data structures with the same name but different
contents, that leads to interesting failures/crashes at runtime.

This was apparently fixed in Apple ld64 from Xcode 9, but the last open
sourced version is the one from Xcode 8, so I ended up digging in the
ld64 source code and fixed the issue.

This work was merged to cctools-port upstream in
https://github.com/tpoechtrager/cctools-port/pull/59.

For the same reason as invoked in bug 1478917, though, updating to
cctools-port master is more involved than just changing a commit sha1
(as it requires building apple-libtapi, which in turn builds parts of
LLVM, which should probably be avoided), so just cherry-pick the fix.
2018-08-24 07:34:38 +09:00
Mike Shal 02a25dd9b0 Bug 1480494 - Update tup toolchain to e948a999a38fefa0ac0d92f6357f82aca2f9cb17; r=chmanchester
This includes a fix for the style build script hang where pthreads fork
subprocesses, as well as a fix for ignoring the icecream file lock.

MozReview-Commit-ID: 29eNcbNtwB1

Differential Revision: https://phabricator.services.mozilla.com/D4139

--HG--
extra : moz-landing-system : lando
2018-08-23 16:58:29 +00:00
Boris Chiou d56d102ae0 Bug 1485197 - Bump cbindgen to 0.6.2. r=heycam
In order to support operator==() for tagged enum, we have to bump the version to
0.6.2.

Differential Revision: https://phabricator.services.mozilla.com/D3932

--HG--
extra : moz-landing-system : lando
2018-08-21 23:40:51 +00:00
Emilio Cobos Álvarez bb604b0dee Bug 1484473 - Add a cbindgen version check. r=firefox-build-system-reviewers,froydnj
Differential Revision: https://phabricator.services.mozilla.com/D3718

--HG--
extra : moz-landing-system : lando
2018-08-20 15:20:42 +00:00
Mike Shal d5258aee4b Bug 1480840 - Update tup toolchain to f77dbd429d6157dac252014a26f6d275dce85d85; r=chmanchester
This includes a patch to enable ccache support.

MozReview-Commit-ID: 9FzMQ2XX4ca

Differential Revision: https://phabricator.services.mozilla.com/D3363

--HG--
extra : moz-landing-system : lando
2018-08-15 19:24:57 +00:00
Daniel Varga eeaa371bd2 Merge mozilla-inbound to mozilla-central. a=merge 2018-08-14 00:59:16 +03:00
Emilio Cobos Álvarez 818db7603f Bug 1478813 - Add cbindgen toolchain job and install via bootstrap. r=ted
And require it for taskcluster build already, because it doesn't harm and lets
me put all the yml changes in the same commit.

I gave up cross-compiling for OSX after a few tries and after realizing it
wasn't enough with cctools and such, but that I also needed the Mac SDK, for
which I don't have permission...

Differential Revision: https://phabricator.services.mozilla.com/D2664

--HG--
extra : moz-landing-system : lando
2018-08-13 10:58:22 +00:00
Steve Fink df4e473da0 Bug 1479672 - More verbose output from hazard commands. r=me
--HG--
extra : topic : gcstats.thresh
extra : rebase_source : 58f4d0ed8d52177b7a0e28fea778c0739ac3d3f3
2018-07-06 12:05:37 -07:00
Steve Fink 594e27ffa7 Bug 1479672 - Reduce the number of parallel compiles for JS shell hazard analysis. r=me
--HG--
extra : topic : gcstats.thresh
extra : rebase_source : 7d699165ef7a025d930a180cbacf362813399303
2018-07-05 15:25:48 -07:00
Narcis Beleuzu 4684ccf98e Merge inbound to mozilla-central. a=merge 2018-08-03 01:28:14 +03:00
Nathan Froyd 01b2107f8d Bug 1444141 - part 3 - fix exports of PATH in sm-tooltool-config.sh; r=sfink
TOOLTOOL_CHECKOUT is typically `.`, which doesn't work so great for
adding things to $PATH.  We need to turn everything we're adding to
$PATH into absolute paths, so $PATH actually works properly.
2018-08-02 12:00:21 -04:00
Nathan Froyd 98d3c4a913 Bug 1444141 - part 1 - export RUSTC and CARGO variables for the hazard analysis build; r=sfink
configure needs these environment variables to find rustc and cargo.
2018-08-02 11:00:21 -05:00
Gregory Szorc 71e90e5309 Bug 1480431 - Make ifh a file object; r=tomprince
Otherwise it can't be used as a context manager since it
doesn't have __enter__ or __exit__.

Differential Revision: https://phabricator.services.mozilla.com/D2672

--HG--
extra : moz-landing-system : lando
2018-08-02 16:22:46 +00:00
Steve Fink c2cd71409a Bug 1479672 - Remove --enable-stdcxx-compat option from JS shell being analyzed for hazards, r=jonco
--HG--
extra : topic : gcstats.thresh
extra : rebase_source : abadf20fc240b287d5ff70fe6887e1acdcfb0f9d
2018-07-05 15:25:12 -07:00
dvarga e487e6e564 Merge inbound to mozilla-central. a=merge 2018-08-02 01:09:38 +03:00
Gregory Szorc 3b427569ba Bug 1479533 - Log to stderr, capitalize messages; r=tomprince
This is what a lot of programs do.

We do logging in a helper function so we can flush after every write.

Differential Revision: https://phabricator.services.mozilla.com/D2526

--HG--
extra : rebase_source : 98563aee129c16662a783122241623b8ed2fe457
2018-07-31 15:39:10 -07:00
Gregory Szorc 2207dd7026 Bug 1479533 - Refactor archive decompression; r=tomprince
Previously, we told `tar` or `unzip` to operate on an explicit file.
This worked when `tar` understood the compression format of the file.
And this worked in the majority of cases.

But `tar` does not support zstandard compression (at least not outside
extremely new versions, which aren't yet widely deployed). And not all
versions of `tar` support the `-a` argument.

This commit changes our invocation of `tar` so input data is piped
to it from Python. In the case of `tar`, we perform decompression in
Python, if possible. This allows us to support zstandard and `tar`
binaries that don't support `-a` to auto-detect the compression format.

I wanted to be consistent and always pipe the raw data via stdin.
But `unzip` doesn't appear to like this. Oh well.

We also refactor the logic around detecting archives. We have a
function to identify the archive type based on a filename. We then
pass the archive type to the extraction function and key off that
logic within. We also conditionally call extract_archive() and
fail hard in extract_archive() when things fail. This will make
future archive code easier to reason about.

Differential Revision: https://phabricator.services.mozilla.com/D1576

--HG--
extra : rebase_source : 1c66396cced1b2a94a959386eecc3f512b033308
2018-08-01 09:00:58 -07:00
Tom Ritter 2c2a1fac5c Bug 1400484 MinGW gcc is broken - root_dir is required with the new fetch code r=gps
MozReview-Commit-ID: LC0ZgWDyDDT

--HG--
extra : rebase_source : e873efff1f1d8189b49bce94a79b139016bfe5e3
2018-07-30 15:12:06 -05:00
Mike Shal ee320f1dec Bug 1475071 - Bump tup version to v0.7.7; r=chmanchester
MozReview-Commit-ID: 55JOVxzWhm4

--HG--
extra : rebase_source : 77e88b33f3513713390c657f9b95d390d31fd0f1
2018-07-31 10:06:27 -04:00
Nick Alexander 8568d6adb5 Bug 1478995 - Add node toolchain repack tasks for linux, windows, and mac, r=gps
MozReview-Commit-ID: 3JEghnqGdun

--HG--
extra : rebase_source : 7468ee9f27ba8e6df208b317c0c944345e2d27ad
2018-05-29 17:50:05 -07:00
Jacek Caban 6e25c2945a Bug 1465798: Create a MinGW-Clang toolchain job r=froydnj
MozReview-Commit-ID: 9OLqKcYtMJi

--HG--
extra : histedit_source : d1e7da6531ffd8d9df869324da07440ce13899cc
2018-07-24 14:04:53 -05:00
Robert Bartlensky 1a56460275 Bug 1473951: Add infer to taskcluster and build. r=gps
MozReview-Commit-ID: BHi3E6J3nuH

--HG--
extra : rebase_source : a59180efe4fed56222d2847d60133739f38c8ca8
2018-07-06 17:37:16 +01:00
Mike Hommey 789f4ba458 Bug 1478919 - Remove the now unused linux64-clang-5 toolchain. r=dmajor
--HG--
extra : rebase_source : 1de38fc2e484ec02bcbe1fb1b58b97f5aba55b43
2018-07-27 15:34:07 +09:00
Mike Hommey 2538ec5e49 Bug 1478917 - Apply upstream patch fixing ld64 crash with LTO. r=dmajor,froydnj
While fiddling with clang (upgrading it and applying some miscompilation
patches), my mac LTO builds started to fail because ld64 would crash
during configure.

It turns out, it was crashing trying to print a warning it shouldn't
even print out, about failure to create a cache path.

This, in turn, is due to a pointer not being initialized in the ld64
code. I sent this upstream, and this was promptly fixed:
https://github.com/tpoechtrager/cctools-port/pull/57

However, since our last update of cctools-port, upstream landed a change
that broke support for tbd files if you don't compile against the new
libtapi library. Doing so is more work than I'm ready to put here,
so we just cherry-pick the fix.

--HG--
extra : rebase_source : 131952a5233bc379943c8eb124d377525f54202f
2018-07-27 15:14:06 +09:00
Andrew Halberstadt 15c53b6d46 Bug 1468812 - [ci] Support MOZ_FETCHES and fetch-content in run-task r=gps
This removes the 'use-artifacts' mechanism in favour of fetches. There are a
few pieces here that need to land atomically:

1. Remove use-artifact related code
2. Call 'fetch-content' from the run-task script
3. Convert existing tasks on top of fetches (jsshell, python unittest)
4. Stop calling 'fetch-content' from toolchain setup tasks (as this now gets handled in run-task)

Depends on D2166.

Differential Revision: https://phabricator.services.mozilla.com/D2167

--HG--
extra : moz-landing-system : lando
2018-07-26 17:13:39 +00:00
Tudor-Gabriel Vîjială 7034598959 Bug 1476165 - Part 2: Update Android Gradle plugin to version 3.1.0. r=nalexander,snorp
MozReview-Commit-ID: LR1OWncvuwt

--HG--
extra : rebase_source : 6de8f8927e801789d559a7c361c7b434ae1f74c4
2018-07-17 13:20:19 +01:00
Sebastian Hengst 943a6cf31a Backed out changeset 61f33f8c8750 (bug 1468812) for Linux ccov mass failures (bug 1478211). a=backout 2018-07-25 18:05:09 +03:00
Andrew Halberstadt a3174ac509 Bug 1468812 - [ci] Support MOZ_FETCHES and fetch-content in run-task r=gps
This removes the 'use-artifacts' mechanism in favour of fetches. There are a
few pieces here that need to land atomically:

1. Remove use-artifact related code
2. Call 'fetch-content' from the run-task script
3. Convert existing tasks on top of fetches (jsshell, python unittest)
4. Stop calling 'fetch-content' from toolchain setup tasks (as this now gets handled in run-task)

Depends on D2166.

Differential Revision: https://phabricator.services.mozilla.com/D2167

--HG--
extra : moz-landing-system : lando
2018-07-24 13:11:25 +00:00
Marco Castelluccio 73ba2e4524 Bug 1471339 - Introduce clang 7 toolchain build. r=glandium
--HG--
extra : rebase_source : 1609a57558151f11b9cdf3422c67ad4c3f695e12
2018-07-11 10:44:39 +02:00
Andrew Halberstadt e8a36b30d0 Bug 1468812 - [fetch-content] Implement ability to specify a per-fetch subdirectory to extract into r=gps
Currently 'fetch' artifacts are all extracted in the same directory, this could
make the extdir messy, or in the worst case, cause file name collisions.

Some artifacts are ok to extract into the same directory as they're already
bundled within the archive. But other artifacts are not. This patch keeps the
default behaviour (extracting everything into the same directory), but allows
task authors to specify per-artifact directories to extract into.

The syntax is:
path[>dest]@<task>

The 'dest' value will be a subdirectory of the MOZ_FETCHES_DIR environment
variable.

Depends on D2102.

Differential Revision: https://phabricator.services.mozilla.com/D2166

--HG--
extra : moz-landing-system : lando
2018-07-18 17:52:43 +00:00
Tudor-Gabriel Vîjială f5b27fe2be Bug 1334940 - Re-enable SCCACHE for linux64-ccov. r=ted
MozReview-Commit-ID: 6BQt984Rl39

--HG--
extra : rebase_source : b92e2bd0daab858f49eefd1b07dd251346524649
2018-07-13 15:02:21 +01:00
Eric Rahm 6079cec11e Bug 1464501 - Part 1: Add rust-size toolchain. r=glandium
--HG--
extra : rebase_source : 104dc6ef69f288684b2bc3d95361dc9090de0c1a
extra : source : e891ab259427a65b92a880478d6884abf0d4a281
extra : histedit_source : 8e8d263b4a55a59e7b15e4861dd7b38cf016249b
2018-06-07 16:47:58 -07:00
Mike Hommey 75a0990a1d Bug 1467658 - Update the macosx clang toolchain (for bootstrap) to version 6. r=chmanchester
--HG--
extra : rebase_source : 104b34102202fe0598d73d351de7b7ce0689f5ac
2018-06-08 13:37:48 +09:00
Mike Hommey a7e6de776d Bug 1467658 - Use clang 6 for coverage builds. r=chmanchester,marco
Instead of clang 4, which they were the last to use, so remove the
clang 4 toolchain.

--HG--
extra : rebase_source : d03a083e9217aeb6c1d2c91decb978426f0e8d1a
2018-06-08 10:48:06 +09:00
Mike Hommey 03b4a0d6e0 Bug 1462498 - Update clang 6 pre to clang 6 final on linux and mac. r=gps 2018-06-08 09:25:49 +09:00
Gregory Szorc 8922082362 Bug 1460777 - Taskgraph tasks for retrieving remote content; r=dustin, glandium
Currently, many tasks fetch content from the Internets. A problem with
that is fetching from the Internets is unreliable: servers may have
outages or be slow; content may disappear or change out from under us.

The unreliability of 3rd party services poses a risk to Firefox CI.
If services aren't available, we could potentially not run some CI tasks.
In the worst case, we might not be able to release Firefox. That would
be bad. In fact, as I write this, gmplib.org has been unavailable for
~24 hours and Firefox CI is unable to retrieve the GMP source code.
As a result, building GCC toolchains is failing.

A solution to this is to make tasks more hermetic by depending on
fewer network services (which by definition aren't reliable over time
and therefore introduce instability).

This commit attempts to mitigate some external service dependencies
by introducing the *fetch* task kind.

The primary goal of the *fetch* kind is to obtain remote content and
re-expose it as a task artifact. By making external content available
as a cached task artifact, we allow dependent tasks to consume this
content without touching the service originally providing that
content, thus eliminating a run-time dependency and making tasks more
hermetic and reproducible over time.

We introduce a single "fetch-url" "using" flavor to define tasks that
fetch single URLs and then re-expose that URL as an artifact. Powering
this is a new, minimal "fetch" Docker image that contains a
"fetch-content" Python script that does the work for us.

We have added tasks to fetch source archives used to build the GCC
toolchains.

Fetching remote content and re-exposing it as an artifact is not
very useful by itself: the value is in having tasks use those
artifacts.

We introduce a taskgraph transform that allows tasks to define an
array of "fetches." Each entry corresponds to the name of a "fetch"
task kind. When present, the corresponding "fetch" task is added as a
dependency. And the task ID and artifact path from that "fetch" task
is added to the MOZ_FETCHES environment variable of the task depending
on it. Our "fetch-content" script has a "task-artifacts"
sub-command that tasks can execute to perform retrieval of all
artifacts listed in MOZ_FETCHES.

To prove all of this works, the code for fetching dependencies when
building GCC toolchains has been updated to use `fetch-content`. The
now-unused legacy code has been deleted.

This commit improves the reliability and efficiency of GCC toolchain
tasks. Dependencies now all come from task artifacts and should always
be available in the common case. In addition, `fetch-content` downloads
and extracts files concurrently. This makes it faster than the serial
application which we were previously using.

There are some things I don't like about this commit.

First, a new Docker image and Python script for downloading URLs feels
a bit heavyweight. The Docker image is definitely overkill as things
stand. I can eventually justify it because I want to implement support
for fetching and repackaging VCS repositories and for caching Debian
packages. These will require more packages than what I'm comfortable
installing on the base Debian image, therefore justifying a dedicated
image.

The `fetch-content static-url` sub-command could definitely be
implemented as a shell script. But Python is readily available and
is more pleasant to maintain than shell, so I wrote it in Python.

`fetch-content task-artifacts` is more advanced and writing it in
Python is more justified, IMO. FWIW, the script is Python 3 only,
which conveniently gives us access to `concurrent.futures`, which
facilitates concurrent download.

`fetch-content` also duplicates functionality found elsewhere.
generic-worker's task payload supports a "mounts" feature which
facilitates downloading remote content, including from a task
artifact. However, this feature doesn't exist on docker-worker.
So we have to implement downloading inside the task rather than
at the worker level. I concede that if all workers had generic-worker's
"mounts" feature and supported concurrent download, `fetch-content`
wouldn't need to exist.

`fetch-content` also duplicates functionality of
`mach artifact toolchain`. I probably could have used
`mach artifact toolchain` instead of writing
`fetch-content task-artifacts`. However, I didn't want to introduce
the requirement of a VCS checkout. `mach artifact toolchain` has its
origins in providing a feature to the build system. And "fetching
artifacts from tasks" is a more generic feature than that. I think
it should be implemented as a generic feature and not something that is
"toolchain" specific.

I think the best place for a generic "fetch content" feature is in
the worker, where content can be defined in the task payload. But as
explained above, that feature isn't universally available. The next
best place is probably run-task. run-task already performs generic,
very-early task preparation steps, such as performing a VCS checkout.
I would like to fold `fetch-content` into run-task and make it all
driven by environment variables. But run-task is currently Python 2
and achieving concurrency would involve a bit of programming (or
adding package dependencies). I may very well port run-task to Python
3 and then fold fetch-content into it. Or maybe we leave
`fetch-content` as a standalone script.

MozReview-Commit-ID: AGuTcwNcNJR

--HG--
extra : source : 0b941cbdca76fb2fbb98dc5bbc1a0237c69954d0
extra : histedit_source : a3e43bdd8a9a58550bef02fec3be832ca304ea93
2018-06-06 14:37:49 -07:00
Gregory Szorc cf83defe06 Bug 1460777 - Extract GPG keys to standalone files; r=glandium
After this change, we consistently import GPG keys from files in
the GCC build scripts.

MozReview-Commit-ID: BcyvCQoGbMS

--HG--
extra : source : 5fce34a460b51e45ac280a9f0cb8bad896fbcff1
extra : histedit_source : 01621ea8111315c251a9493a11efca72c2ba3c7d
2018-05-11 10:38:35 -07:00
Gurzau Raul 53a10471cf Backed out 2 changesets (bug 1460777) for Toolchains failure on a CLOSED TREE
Backed out changeset 52ef9348401d (bug 1460777)
Backed out changeset 60ed097650b8 (bug 1460777)
2018-06-06 20:57:29 +03:00
Gregory Szorc 2f189264b9 Bug 1460777 - Taskgraph tasks for retrieving remote content; r=dustin,glandium
Currently, many tasks fetch content from the Internets. A problem with
that is fetching from the Internets is unreliable: servers may have
outages or be slow; content may disappear or change out from under us.

The unreliability of 3rd party services poses a risk to Firefox CI.
If services aren't available, we could potentially not run some CI tasks.
In the worst case, we might not be able to release Firefox. That would
be bad. In fact, as I write this, gmplib.org has been unavailable for
~24 hours and Firefox CI is unable to retrieve the GMP source code.
As a result, building GCC toolchains is failing.

A solution to this is to make tasks more hermetic by depending on
fewer network services (which by definition aren't reliable over time
and therefore introduce instability).

This commit attempts to mitigate some external service dependencies
by introducing the *fetch* task kind.

The primary goal of the *fetch* kind is to obtain remote content and
re-expose it as a task artifact. By making external content available
as a cached task artifact, we allow dependent tasks to consume this
content without touching the service originally providing that
content, thus eliminating a run-time dependency and making tasks more
hermetic and reproducible over time.

We introduce a single "fetch-url" "using" flavor to define tasks that
fetch single URLs and then re-expose that URL as an artifact. Powering
this is a new, minimal "fetch" Docker image that contains a
"fetch-content" Python script that does the work for us.

We have added tasks to fetch source archives used to build the GCC
toolchains.

Fetching remote content and re-exposing it as an artifact is not
very useful by itself: the value is in having tasks use those
artifacts.

We introduce a taskgraph transform that allows tasks to define an
array of "fetches." Each entry corresponds to the name of a "fetch"
task kind. When present, the corresponding "fetch" task is added as a
dependency. And the task ID and artifact path from that "fetch" task
is added to the MOZ_FETCHES environment variable of the task depending
on it. Our "fetch-content" script has a "task-artifacts"
sub-command that tasks can execute to perform retrieval of all
artifacts listed in MOZ_FETCHES.

To prove all of this works, the code for fetching dependencies when
building GCC toolchains has been updated to use `fetch-content`. The
now-unused legacy code has been deleted.

This commit improves the reliability and efficiency of GCC toolchain
tasks. Dependencies now all come from task artifacts and should always
be available in the common case. In addition, `fetch-content` downloads
and extracts files concurrently. This makes it faster than the serial
application which we were previously using.

There are some things I don't like about this commit.

First, a new Docker image and Python script for downloading URLs feels
a bit heavyweight. The Docker image is definitely overkill as things
stand. I can eventually justify it because I want to implement support
for fetching and repackaging VCS repositories and for caching Debian
packages. These will require more packages than what I'm comfortable
installing on the base Debian image, therefore justifying a dedicated
image.

The `fetch-content static-url` sub-command could definitely be
implemented as a shell script. But Python is readily available and
is more pleasant to maintain than shell, so I wrote it in Python.

`fetch-content task-artifacts` is more advanced and writing it in
Python is more justified, IMO. FWIW, the script is Python 3 only,
which conveniently gives us access to `concurrent.futures`, which
facilitates concurrent download.

`fetch-content` also duplicates functionality found elsewhere.
generic-worker's task payload supports a "mounts" feature which
facilitates downloading remote content, including from a task
artifact. However, this feature doesn't exist on docker-worker.
So we have to implement downloading inside the task rather than
at the worker level. I concede that if all workers had generic-worker's
"mounts" feature and supported concurrent download, `fetch-content`
wouldn't need to exist.

`fetch-content` also duplicates functionality of
`mach artifact toolchain`. I probably could have used
`mach artifact toolchain` instead of writing
`fetch-content task-artifacts`. However, I didn't want to introduce
the requirement of a VCS checkout. `mach artifact toolchain` has its
origins in providing a feature to the build system. And "fetching
artifacts from tasks" is a more generic feature than that. I think
it should be implemented as a generic feature and not something that is
"toolchain" specific.

I think the best place for a generic "fetch content" feature is in
the worker, where content can be defined in the task payload. But as
explained above, that feature isn't universally available. The next
best place is probably run-task. run-task already performs generic,
very-early task preparation steps, such as performing a VCS checkout.
I would like to fold `fetch-content` into run-task and make it all
driven by environment variables. But run-task is currently Python 2
and achieving concurrency would involve a bit of programming (or
adding package dependencies). I may very well port run-task to Python
3 and then fold fetch-content into it. Or maybe we leave
`fetch-content` as a standalone script.

MozReview-Commit-ID: AGuTcwNcNJR

--HG--
extra : rebase_source : 4918b8c3bac53d63665006802054038bfbca0314
2018-06-06 09:37:38 -07:00
Gregory Szorc 43e801ae60 Bug 1460777 - Extract GPG keys to standalone files; r=glandium
After this change, we consistently import GPG keys from files in
the GCC build scripts.

MozReview-Commit-ID: BcyvCQoGbMS

--HG--
extra : rebase_source : 657ccce8e242cabdfaff396fd0d6439754a3f364
2018-05-11 10:38:35 -07:00
Andrew Halberstadt cedce1ff81 Bug 1466660 - Remove use-artifact directory from run-task workers after task has finished r=jmaher
Right now artifacts from previous tasks are left lying around. We should clean these up
in case a task accidentally uses an artifact from the wrong dependency.

Ideally we'd cache these properly based on the taskId they came from, but that can be
follow-up fodder.

MozReview-Commit-ID: HUgvNlqyFav

--HG--
extra : rebase_source : fb9c6723598223619993c2695fb588ead3325edb
2018-06-04 16:36:28 -04:00
Mike Hommey e680be2ec4 Bug 1466060 - Upgrade to binutils 2.28.1. r=nalexander
Version 2.25.1's libiberty can choke on some symbols. That was fixed in
2.27. As of writing, the last version is 2.30. Conservatively go with
2.28.1, which is the same major version (2.28) as what is currently in
Debian stable.

--HG--
extra : rebase_source : 9e5ba94421a1568f662cfd98af7168ea1c890934
2018-06-01 17:48:41 +09:00
Andrew Halberstadt 8320b86def Bug 1465181 - [run-task] Remove requirement to run as root on POSIX systems, r=gps
There is a superficial check in the run-task script which requires root. Simply
removing this check allows a native-engine task (which isn't running as root)
to proceed.

MozReview-Commit-ID: 44XavXAwxxn

--HG--
extra : rebase_source : bd1f01ce1c2feb4029838e07314493d449a4f46e
2018-05-29 15:58:07 -04:00
Andrew Halberstadt 38e69c76b1 Bug 1465181 - [taskgraph] Stop hardcoding the workdir to /builds/worker in 'job' tasks, r=gps
This adds an optional 'workdir' key to all job schemas. It still defaults to
/builds/worker, but can be overriden by individual tasks or schema
implementations.

MozReview-Commit-ID: LY20xfBhbCP

--HG--
extra : rebase_source : 7ac76ebf55d33d30c2aad73484421c6b4002cd33
2018-05-29 16:05:35 -04:00
Mike Shal 30eff40930 Bug 1377524 - Update tup toolchain to v0.7.6; r=chmanchester
MozReview-Commit-ID: cdVkPSToXs

--HG--
extra : rebase_source : faeef5ede130545570256534588b2d74c117ea39
2018-05-24 14:53:15 -04:00
Andrew Halberstadt dbbfae76db Bug 1461980 - [taskgraph] Add ability to download artifacts from dependencies in run-task script, r=dustin
This adds a 'use-artifacts' key to the run_task schema. Tasks can specify artifacts to download like this:

run:
    using: run-task
    use_artifacts:
        build:
            - target.tar.bz2
            - target.common.tests.zip
            - target.mochitest.tests.zip

This will cause the run-task script to download those three artifacts from the task's 'build' dependency.
If the task doesn't have a 'build' dependency, taskgraph generation will error. The artifacts will be
downloaded into $USE_ARTIFACT_PATH. It is up to the task to do whatever extracting/setup may be required.
E.g this setup could go in the task's command.

At this time, only 'run-task' tasks using docker-worker are supported.

MozReview-Commit-ID: 3f02oCys62i

--HG--
extra : rebase_source : e8a85040e45042b537d4119334c4a8b7280b295c
2018-05-17 10:04:23 -04:00
Chris AtLee abedb6c83d Bug 1237182: remove mock(chroot) support r=Callek
--HG--
extra : source : 806b003761cee8d8f0bc1da6405caf8000708be9
extra : intermediate-source : bbf1842aa32ec180664a714e415775947e39849c
2018-05-16 12:31:33 -04:00
Gregory Szorc fdb1c18e80 Bug 1460470 - Make run-task Python 3.5+ only; r=mshal
A try push converting run-task to Python 3 seemed to complete without
error.

Since it is annoying writing code that needs to work on both Python
2 and 3, let's require Python 3 and remove code for supporting Python 2.

We implement a version check enforcing Python 3.5+. This is because
we're supposed to be standardizing on 3.5+ everywhere. I want to
prevent accidental usage of older Python 3 versions.

MozReview-Commit-ID: 4vATLZ6Si2e

--HG--
extra : source : 94a9641c5a018cfe729ebe748e75a7c4373e4322
2018-05-11 10:19:53 -07:00
Gregory Szorc d10cd93f47 Bug 1460470 - Change run-task to use Python 3 by default; r=mshal
Python 3 is the future.

MozReview-Commit-ID: APuu4Q3mimj

--HG--
extra : source : 33fe8423f88cb8158559bc736d89b4849b57d315
2018-05-09 17:26:40 -07:00
Gregory Szorc f661f06851 Bug 1460470 - More run-task Python 3 porting; r=mshal
Mostly normalization of str and bytes. Python 3 is annoying for
systems level code where most things are bytes.

MozReview-Commit-ID: KpvZGegBkYn

--HG--
extra : source : 4902cab3ce5dab2d1756cf0cd5c95f40603c0a0e
2018-05-09 21:15:36 -07:00
Gregory Szorc 64d4b487a4 Bug 1460470 - Make run-task somewhat usable on Python 3; r=mshal
This required a lot of attention to bytes versus strings.

The hacks around handling process output are somewhat gross. Apparently
readline() doesn't work on bytes streams in Python 3?! So we install a
custom stream decoder so we can have nice things.

There are still some failures in run-task on Python 3. But we're a big
step closer.

MozReview-Commit-ID: 4FJlTn3q9Ai

--HG--
extra : source : 19fe5702cf6d018b743108b35e86d1750f205a76
2018-05-16 11:06:36 -07:00
Gregory Szorc 526949a0ad Bug 1460470 - Make run-task compile on Python 3; r=mshal
The file failed to compile due to octal syntax and missing imports.
After this change, we get a run-time error, which is strictly better.

MozReview-Commit-ID: nY9A13Pt3E

--HG--
extra : source : ef477a048b575958be74287a2273830813b385f1
2018-05-16 13:57:08 -07:00
Ciure Andrei 5c13bf1ff4 Backed out 5 changesets (bug 1460470) for toolchains bustages a=backout CLOSED TREE
Backed out changeset 94a9641c5a01 (bug 1460470)
Backed out changeset 33fe8423f88c (bug 1460470)
Backed out changeset 4902cab3ce5d (bug 1460470)
Backed out changeset 19fe5702cf6d (bug 1460470)
Backed out changeset ef477a048b57 (bug 1460470)
2018-05-17 01:04:29 +03:00
Gregory Szorc 0023204ad1 Bug 1460470 - Make run-task Python 3.5+ only; r=mshal
A try push converting run-task to Python 3 seemed to complete without
error.

Since it is annoying writing code that needs to work on both Python
2 and 3, let's require Python 3 and remove code for supporting Python 2.

We implement a version check enforcing Python 3.5+. This is because
we're supposed to be standardizing on 3.5+ everywhere. I want to
prevent accidental usage of older Python 3 versions.

MozReview-Commit-ID: 4vATLZ6Si2e

--HG--
extra : rebase_source : d1450979e636387a5fdbd80ba19a92ec4fd31088
extra : histedit_source : 62910e29cc2fff0a1db0e9521cc58b200406d393
2018-05-11 10:19:53 -07:00
Gregory Szorc 9b265e41ee Bug 1460470 - Change run-task to use Python 3 by default; r=mshal
Python 3 is the future.

MozReview-Commit-ID: APuu4Q3mimj

--HG--
extra : rebase_source : 79839dc7f3ec130e467f1d0aa268bf3912cc1c8f
extra : histedit_source : 4be41658b5debaa6165228f60f09a9d1bf53ddbb
2018-05-09 17:26:40 -07:00
Gregory Szorc 84b3320347 Bug 1460470 - More run-task Python 3 porting; r=mshal
Mostly normalization of str and bytes. Python 3 is annoying for
systems level code where most things are bytes.

MozReview-Commit-ID: KpvZGegBkYn

--HG--
extra : rebase_source : aa50a6cd1337fe604015131b053234a2db642e57
extra : histedit_source : 8481b23bde4f408a59c623b8be43ee0611492afd
2018-05-09 21:15:36 -07:00
Gregory Szorc b300a4a11d Bug 1460470 - Make run-task somewhat usable on Python 3; r=mshal
This required a lot of attention to bytes versus strings.

The hacks around handling process output are somewhat gross. Apparently
readline() doesn't work on bytes streams in Python 3?! So we install a
custom stream decoder so we can have nice things.

There are still some failures in run-task on Python 3. But we're a big
step closer.

MozReview-Commit-ID: 4FJlTn3q9Ai

--HG--
extra : rebase_source : 1a45b158fb625c7fd86701736b16da8df122218d
extra : histedit_source : f66fb22e86caf9b6b3cb301bedeab0b709685ef3
2018-05-16 11:06:36 -07:00
Gregory Szorc 247b0d8be5 Bug 1460470 - Make run-task compile on Python 3; r=mshal
The file failed to compile due to octal syntax and missing imports.
After this change, we get a run-time error, which is strictly better.

MozReview-Commit-ID: nY9A13Pt3E

--HG--
extra : rebase_source : 074cbf7daaed820bd330b6850d28acd766b3801a
extra : histedit_source : e10c0a14f55148dd3e57a194d262ded41c038ee5
2018-05-16 13:57:08 -07:00
Tom Ritter 65a58e425c Bug 1460668 Bump MinGW to capture the CD3D11_BLEND_DESC fix r=froydnj
MozReview-Commit-ID: 83igqfjKm6O

--HG--
extra : rebase_source : 1f800310e562b5d1ba76bc5693e648eb63a44fac
2018-05-16 13:43:29 -05:00
Ciure Andrei e2adc25ccb Backed out 5 changesets (bug 1460470) for gps: image build failures a=backout CLOSED TREE
Backed out changeset 07a3e76abc8c (bug 1460470)
Backed out changeset 94c3b68ccc48 (bug 1460470)
Backed out changeset 88324086394e (bug 1460470)
Backed out changeset 16d15b4b97fa (bug 1460470)
Backed out changeset ebd569c9d870 (bug 1460470)
2018-05-16 22:29:17 +03:00
Gregory Szorc b3529e86ca Bug 1460470 - Make run-task Python 3.5+ only; r=mshal
A try push converting run-task to Python 3 seemed to complete without
error.

Since it is annoying writing code that needs to work on both Python
2 and 3, let's require Python 3 and remove code for supporting Python 2.

We implement a version check enforcing Python 3.5+. This is because
we're supposed to be standardizing on 3.5+ everywhere. I want to
prevent accidental usage of older Python 3 versions.

MozReview-Commit-ID: 4vATLZ6Si2e

--HG--
extra : rebase_source : bbf3a0bd6cc881002d38c58eef64636c5efa6712
2018-05-11 10:19:53 -07:00
Gregory Szorc abb76d95f9 Bug 1460470 - Change run-task to use Python 3 by default; r=mshal
Python 3 is the future.

MozReview-Commit-ID: APuu4Q3mimj

--HG--
extra : rebase_source : f204a712466f10149b35e125d9ceb181e0f420b7
2018-05-09 17:26:40 -07:00
Gregory Szorc 836b5bdad3 Bug 1460470 - More run-task Python 3 porting; r=mshal
Mostly normalization of str and bytes. Python 3 is annoying for
systems level code where most things are bytes.

MozReview-Commit-ID: KpvZGegBkYn

--HG--
extra : rebase_source : 6bda98911cf32ce1bc3d651805b473aff18bf1f9
2018-05-09 21:15:36 -07:00
Gregory Szorc dd1809c1fd Bug 1460470 - Make run-task somewhat usable on Python 3; r=mshal
This required a lot of attention to bytes versus strings.

The hacks around handling process output are somewhat gross. Apparently
readline() doesn't work on bytes streams in Python 3?! So we install a
custom stream decoder so we can have nice things.

There are still some failures in run-task on Python 3. But we're a big
step closer.

MozReview-Commit-ID: 4FJlTn3q9Ai

--HG--
extra : rebase_source : 38d5626574d924c25e3fb4eecf29d379c2678e0d
2018-05-16 11:06:36 -07:00
Gregory Szorc 65a310206f Bug 1460470 - Make run-task compile on Python 3; r=mshal
The file failed to compile due to octal syntax and missing imports.
After this change, we get a run-time error, which is strictly better.

MozReview-Commit-ID: nY9A13Pt3E

--HG--
extra : rebase_source : b13d859ffaa2d10795312ff5a0f3ebbd5ca06835
2018-05-09 16:14:28 -07:00
Geoff Brown bd4f5cfdbf Bug 1460411 - Add kvm to desktop1604-test image; r=jmaher
Our normal ubuntu 16.04 test image is suitable for hosting an Android x86
emulator with these minor updates: Install kvm and make sure /dev/kvm
rw permissions are open for everyone. Note that /dev/kvm is generally
only visible when running docker with --privileged; its permissions
cannot be modified in the Dockerfile, only at run-time: run-task is the
first opportunity.
2018-05-15 09:57:27 -06:00
Gregory Szorc f1f60ea6e5 Bug 1459737 - Assert that volumes aren't used on Windows; r=dustin
Volumes are a docker-worker concept. They shouldn't be encountered on
Windows, which uses generic-worker.

MozReview-Commit-ID: KUdSxVHVJQ

--HG--
extra : rebase_source : ff54131d471ae2ae2465b11ca5ba6e787f5d11de
2018-05-04 18:02:54 -07:00
Gregory Szorc d427f004f7 Bug 1459737 - Move volume configuration to standalone function; r=dustin
Do to volumes what we did to caches.

MozReview-Commit-ID: 7s4nYPC27nk

--HG--
extra : rebase_source : 8c71459a4854a9de0f74469eb3655d8293554cfd
2018-05-04 18:00:44 -07:00
Gregory Szorc b21421f3de Bug 1459737 - Move cache configuration to standalone function; r=dustin
main() is quite long. And the control flow will become more complicated
as we support Windows.

Let's move the bulk of the cache configuration code into a standalone
function so main() is less cluttered.

MozReview-Commit-ID: xredCubr1E

--HG--
extra : rebase_source : 385fe6fe9e083cf585edc922b1fa26355d580c02
2018-05-04 17:54:07 -07:00
Gregory Szorc 389a573533 Bug 1459737 - Require to run on root on POSIX platforms; r=dustin
The code for cache and volume normalization makes assumptions that uid
and gid are defined. They are not defined if not running as root and
Python would crash in these code paths.

So, presumably this means that all tasks using run-task are running as
root. Let's codify that requirement.

This requirement is arbitrary. But let's not scope bloat run-task to
support scenarios until we need them.

MozReview-Commit-ID: 2uW4OSovzWi

--HG--
extra : rebase_source : 56ced8ecbd0eef3a55dc68413f4eab7601756cc0
2018-05-04 17:47:09 -07:00
Gregory Szorc d4ef29a704 Bug 1459737 - Move closure to module-level function; r=dustin
MozReview-Commit-ID: 2Z2qL8LaEno

--HG--
extra : rebase_source : 84dbe9f1dce931e856c6aa84d305523034aa2ae9
2018-05-04 17:41:45 -07:00
Gregory Szorc faf43ccbf6 Bug 1459737 - Teach run-task where to find Mercurial on Windows; r=dustin
Because we can't rely on it being in %PATH%.

MozReview-Commit-ID: H6sMdX7XO5Q

--HG--
extra : rebase_source : 7d97a0eae39e92ef95f6367ef673dd72359f516c
2018-05-04 17:33:19 -07:00
Gregory Szorc 69823158e7 Bug 1459737 - Make run-task more runnable on non-POSIX platforms; r=dustin
I want to make run-task work on Windows. The script is currently very
POSIX oriented, as it assumes the existence of the grp and pwd modules,
that user IDs are numeric, and that system calls like setresgid() and
setresuid() are available, etc.

This commit starts to make some of the POSIX-centric code conditional
on running on POSIX.

Code for uid/gid extraction has been moved to its own function. Some
error messages were tweaked slightly as part of the move. Otherwise,
the changes should be pretty straightforward.

There are still other parts of this file that won't work on e.g.
Windows. But this gets us a big step closer.

MozReview-Commit-ID: HNyytKcBbBo

--HG--
extra : rebase_source : 01d653c801865e36e562a8de4c9e6d6962498f19
2018-05-04 17:11:53 -07:00
Gregory Szorc 5d87fc997f Bug 1459737 - Move run-task into taskcluster/scripts; r=dustin
In preparation for making it usable on Windows, after which point
having it in a directory with "docker" in it doesn't make much sense.

MozReview-Commit-ID: Hgu0buFyJwF

--HG--
rename : taskcluster/docker/recipes/run-task => taskcluster/scripts/run-task
extra : rebase_source : 3c0b502d28b5aad54bd04069efbfda88e25bbb20
2018-05-04 17:23:31 -07:00
Robin Templeton 8f61a2db7d Bug 1455795 - Remove the AUTOMATION option from mozjs_sys's build.rs. r=sfink
This option shouldn't be used for local builds (see bug 1294157). Set
the option from the crate's taskcluster script instead, so that it's
used only for automated builds.

--HG--
extra : rebase_source : 94b398a0f1fac60094269d755735c426ecc63e17
2018-04-24 18:04:00 -04:00
Tom Prince 9203ed3c58 Bug 1456234: [mozharness] Process EXTRA_MOZHARNESS_CONFIG even if no files are specified; r=aki
This will allow mozharness configs to be specified exclusively in the taskgraph.

Differential Revision: https://phabricator.services.mozilla.com/D1017

--HG--
extra : rebase_source : a3a9b6cc9d1004c4bd396fccc3e4354a7316651d
extra : source : 10acd193df92b7c495789dc24157b85f116ade5e
2018-04-23 17:39:35 -06:00
Steve Fink 2c3ce821ef Bug 1455201 - Propagate failure out of set -e region and add verbose logging to autospider.py, r=jonco
--HG--
extra : rebase_source : 3b2b301e45e555de489ac26bc22e1e1e181c6357
2018-04-19 11:20:26 -07:00
Masatoshi Kimura 1dfe932b7e Bug 1451931 - Add gcc/lib64 to the LD_LIBRARY_PATH of sm-rust-binding. r=glandium
MozReview-Commit-ID: 6VdXCtBDiQ8

--HG--
extra : rebase_source : f3e35a9a37e5f0b7f566dcfc0aa28de1d08bea50
2018-04-06 22:02:50 +09:00
Mike Hommey be4f305f62 Bug 1445536 - Add a toolchain job for GCC 7. r=froydnj
And adapt the build-gcc.sh script for the changes to
contrib/download_prerequisites.

--HG--
rename : taskcluster/scripts/misc/build-gcc-6-linux.sh => taskcluster/scripts/misc/build-gcc-7-linux.sh
extra : rebase_source : b1d785777b8c141c0eb0f52a73734abd2db21b94
2018-03-14 09:37:27 +09:00
Gregory Szorc 18e72cea88 Bug 1449629 - Use -L when downloading OpenSSL; r=glandium
The URL is now being redirected to
https://www.openssl.org/source/old/1.1.0/openssl-1.1.0g.tar.gz. Let's
add a -L so we follow redirects automatically.

MozReview-Commit-ID: AuZ98jGidzl

--HG--
extra : rebase_source : 07e61558024e789df45d8e2ab67ab5ad9d3d355b
2018-04-02 19:22:07 -07:00
Steve Fink 4fa97cae2b Update sixgill to ab06fc42cf0f for bug 1450379, r=bhackett
--HG--
extra : rebase_source : 5be473dc5253fe69db3ab745ce31255d966e6459
2018-03-30 15:33:15 -07:00
Steve Fink b1be1f1ac9 Bug 1449066 - Switch hazard builds to GCC 6, r=froydnj
--HG--
extra : rebase_source : 312938733bbf76c3c9c2fc2ec35ba0b88e6f89de
2018-03-28 18:15:51 -07:00
Mike Shal 1d3020acd2 Bug 1387098 - Tup toolchain task; r=froydnj
Build the latest tup master branch with the LD_PRELOAD dependency
checker.

MozReview-Commit-ID: ALfnnmOZrky

--HG--
extra : rebase_source : 529d4392ef73e03f66fb76f089f8b88f45b44972
2018-02-20 11:12:08 -05:00
Ted Mielczarek bd3e9df16c bug 1446665 - update sccache to pick up a fix for a PGO build failure. r=froydnj
MozReview-Commit-ID: 5uCjHMZc7JJ

--HG--
extra : rebase_source : f8aa60cca3992707e056460b01ac470cd79fc385
2018-03-23 11:37:47 -04:00
Ted Mielczarek 44322b0b23 bug 1445631 - update sccache to pick up a fix in the jobserver crate. r=chmanchester
MozReview-Commit-ID: JtHea27GTTq

--HG--
extra : rebase_source : e7b08d6b6b765c0447aadfaa7f4f606676806c73
2018-03-16 13:41:52 -04:00
Steve Fink de4adccfc7 Bug 1444543 - toolchain: build sixgill for gcc 6.4.0, r=glandium
--HG--
extra : rebase_source : fa2f7acf63e99544b95c6a896ba015c52c04f7ae
2018-03-06 10:15:29 -08:00
Steve Fink 03dedf49bb Bug 1443233 - Update sixgill to use same qualification settings for all type printing, r=bhackett
--HG--
extra : rebase_source : 16d1361a8a020ba3d4a37e867dfa1cc7f75c92dd
2018-03-06 08:37:02 -08:00
Ted Mielczarek f51415ef1d bug 1445218 - update sccache to 0.2.6. r=froydnj
MozReview-Commit-ID: FxFmXcAHC5A

--HG--
extra : rebase_source : b01b5aca229547dc1b4de14ec36df54d806cf7e6
2018-03-13 08:31:06 -04:00
David Major 8483a27743 Bug 1443827: Move clang-cl static analysis builds to their own toolchain task. r=froydnj
Note that static analysis was the only remaining user of the 32-bit toolchain, so I've removed win32-clang-cl (or rather, renamed it to win32-clang-cl-st-an).

--HG--
rename : build/build-clang/clang-win32.json => build/build-clang/clang-win32-st-an.json
rename : build/build-clang/clang-win64.json => build/build-clang/clang-win64-st-an.json
rename : taskcluster/scripts/misc/build-clang32-windows.sh => taskcluster/scripts/misc/build-clang32-st-an-windows.sh
rename : taskcluster/scripts/misc/build-clang64-windows.sh => taskcluster/scripts/misc/build-clang64-st-an-windows.sh
2018-03-08 17:25:52 -05:00
Steve Fink de379f365d Bug 1442786 - Prevent set -e from leaking into calling scripts, r=nbp
--HG--
extra : rebase_source : 55509978a275e2ed32bf1d7289811ebfdd9e261c
2017-11-21 12:47:51 -08:00
Ralph Giles 2d2defe3df Bug 1428197 - Reject generic channels in rust repack jobs. r=glandium
Ensure better determinism when creating rust toolchain packages
by rejecting generic channels like 'stable' or 'nightly'. Instead,
insist on a specific version or date.

The current valid dates for beta and nightly can be obtained with:

curl -s https://static.rust-lang.org/dist/channel-rust-beta.toml | grep ^date
curl -s https://static.rust-lang.org/dist/channel-rust-nightly.toml | grep ^date

MozReview-Commit-ID: I0DXw1KJGZz

--HG--
extra : rebase_source : 92e158193072582b8568d9c9f00ffdefa0af1a9c
2018-02-26 16:54:36 -08:00
Nick Alexander daf2cc6ccf Bug 1440428 - Remove Proguard JAR entirely. r=jchen
The Proguard dependency is now managed by Gradle.

MozReview-Commit-ID: EOvKSE5z28P

--HG--
extra : rebase_source : 760b117f500cc639cc8c24e9c02933990f358dd7
2018-02-26 11:37:41 -08:00
Jesse Schwartzentruber 5b70ea834b Bug 1425406 - Add a linux64 clang 6 (pre) toolchain with the macosx64 native sanitizer dylibs. r=froydnj
MozReview-Commit-ID: Ig9xpBDcjNu

--HG--
extra : rebase_source : 278bd4fffb82d12e1bc4eb72458bdac3ba62e11f
2018-02-08 16:58:12 -05:00
Mike Hommey e972446107 Bug 1436208 - Avoid infinite loops in llvm-dsymutil when rust produces broken self-referencing DIEs. r=nalexander
See some details on https://bugs.llvm.org/show_bug.cgi?id=36257.

--HG--
extra : rebase_source : 1ffd99e0d52bca74449760e39138af843c837a1b
2018-02-07 08:23:10 +09:00
Nathan Froyd 38a5bb5c84 Bug 1412006 - part 3 - add an Android NDK repackaging task; r=dustin,nalexander; f=glandium
We'd like to install the NDK through the Android SDK manager.  But we
can't pin versions of the NDK with the SDK manager, and so Google
can silently upgrade the NDK on us.  Since that is undesirable, this is
the next best thing.

With the toolchain task in hand, we can make all the relevant tasks
depend on the toolchain task and remove the download of the NDK from
tooltool as well.
2018-02-01 09:59:23 -05:00
shindli f713c5d75e Merge mozilla-central to autoland. a=merge CLOSED TREE 2018-02-01 00:37:57 +02:00
Tom Prince 6b745cb132 Bug 1434365: Add support for specifying mozharness config paths and checking out comm-central to repackage tasks; r=aki
Differential Revision: https://phabricator.services.mozilla.com/D512

--HG--
extra : rebase_source : dc165357115f51475279f90679b89c14ec1c6038
2018-01-30 11:50:57 -07:00
Tom Ritter 59cfa9d5ce Bug 1432319 Bump MinGW version to incorporate Process Mitigation structs needed by the sandbox r=froydnj
MozReview-Commit-ID: HnYuQa8DflY

--HG--
extra : rebase_source : ed06ff4ffc4938a861afaec833537676e32e1907
2018-01-27 19:44:45 -06:00
Emilio Cobos Álvarez 11cd13abd8 Bug 1432563: Fetch rustfmt when repackaging rust. r=rillian
I tested this on automation and the build went on, though I couldn't test
the bindgen output because the build right now is busted on one dependent crate
with rust beta, which is the first toolchain that has this package, and will go
to release shortly.

This should work though! If I need more changes I'll adjust them in bug 1432153.

You can test the repackage manually with repack_rust.py --toolchain beta, for
example.

MozReview-Commit-ID: GI2f6vGVqTe
2018-01-27 02:02:17 +01:00
Mike Hommey 520f9865db Bug 1432397 - Switch mingw builds to a Debian stretch-based docker image. r=dustin
Don't build ucl when building upx, Debian stretch has a recent enough
version. In fact, the last upstream version doesn't build with GCC in
Debian stretch (http://bugs.debian.org/811707)

--HG--
extra : rebase_source : aae67773b9dd3b99f6ddf9ab7f59a628037e6925
2018-01-26 14:39:07 +09:00
Nick Alexander edf219ba3b Bug 1411654 - Part 1: Upgrade to Android-Gradle 3.0+ and build-tools;26.0.2. r=maliu
New Android-Gradle plugins pin the build-tools version, and we want to
be consistent between Gradle and moz.build.

MozReview-Commit-ID: ApWS4rHzPuH

--HG--
extra : rebase_source : 22008e9333b15c594ce26c2a52f67396d6e3ab84
extra : source : f918500d9cf5112b70bc8e0a120df435b02252b7
2017-10-26 11:00:36 -07:00
Nick Alexander cb03a352f0 Bug 1411654 - Pre: Don't block Google's maven repository. r=maliu
Turns out Google's maven repository doesn't publish checksums.  I
can't imagine why not, but there it is.  We have to think more about
whether to trust the artifacts downloaded from maven.google.com.

MozReview-Commit-ID: CdWijorq1IV

--HG--
extra : rebase_source : 6c66cf1444876624f10409ea6437863e2c2ea9b0
extra : source : 0850b319efd43ac8f4d61485451722975da55ca1
2017-10-27 14:50:27 -07:00
Tom Ritter 6f227dea91 Bug 1431809 Bump MinGW version for new Product Constants r=froydnj
MozReview-Commit-ID: CmxZTdyHP3X

--HG--
extra : rebase_source : 7aa739cb54ac0f4c52087dcd1c992fe220bda737
2018-01-23 17:57:08 -06:00
Dorel Luca 4b9ccdb392 Merge mozilla-inbound to mozilla-central r=merge a=merge 2018-01-23 12:02:17 +02:00
Tom Ritter 40e0f3ea5e Bug 1432009 Fix MinGW build failure with d_write3.h r=jfkthame
Bump mingw version to get the newest commit and do not include the
un-needed dw-extras.h on MinGW (thanks Jacek!)

MozReview-Commit-ID: OjO93XHCxs

--HG--
extra : rebase_source : 933bbb385004988a23d1069c9cd3241b3a3b336e
2018-01-22 15:01:49 -06:00
Tom Prince 0a70a075ef Bug 1424146: Simplify taskcluster l10n mozharness config; r=Callek
MozReview-Commit-ID: 5Pg480dLRbz

--HG--
extra : rebase_source : 040b3d219043ddd93bf538f0d6ba77d20110ae28
extra : source : c73e7b3292dfd0c7a1a4fa095fa614d0720d64e2
2017-11-28 12:46:22 -07:00
Tom Prince b6125ff578 Bug 1429603: Remove mock configuration from build mozharness configs and code; r=jlund
Differential Revision: https://phabricator.services.mozilla.com/D369

--HG--
extra : rebase_source : 9fd6eab5d2c85fcc61d0420dc860dcc26c18303c
2018-01-04 13:13:24 -07:00
Mike Hommey 374330afe4 Bug 1429056 - Add llvm-symbolizer to the llvm-dsymutil toolchain. r=ted
llvm-symbolizer is necessary to get symbols in llvm-dsymutil crash
dumps. While we could use the one from clang during the build, it's
better if the llvm-dsymutil toolchain is standalone for local testing.

--HG--
extra : rebase_source : 5cd234a3e14ab52a4ce759821e0e756e68167797
2018-01-19 19:00:06 +09:00
Mike Hommey ee232fad88 Bug 1429056 - Don't strip llvm-dsymutil. r=ted
When I originally wrote the llvm-dsymutil build script in bug 1430315,
I wasn't setting CMAKE_BUILD_TYPE to Release, and was ending up with
a very large binary (> 300MB), so I stripped it.

When I later set CMAKE_BUILD_TYPE to Release, I left the manual
stripping on, but that removes symbols that are useful for stacktraces
when dsymutil crashes (the Release type still leaves out debug info).

--HG--
extra : rebase_source : 802daadc24c0090574b1a44ea8b4e6c25735f703
2018-01-19 10:16:11 +09:00
Gregory Szorc 6f469dc037 Bug 1430908 - Use --progress=dot:mega with wget; r=glandium
By default, wget prints dots every 1k bytes. This can render a
lot of output for large files. We switch to the "mega" style, which
makes each dot represent 64k, thus reducing output by up to 64x.

We also force the use of dot display. By default, it uses "bar"
which attempts to use terminal formatting if possible. Since most
of this code executes in CI and terminal control characters can
interfere with logged output, we force the use of "dot." (Although
wget appears to automatically switch to dot in TC today. But
consistency is good.)

MozReview-Commit-ID: IpTWJdcauTV

--HG--
extra : rebase_source : 5c9aa1bbdcd78eaa0b31347ad026a2c1beaedc03
2018-01-16 14:24:31 -08:00
Ryan VanderMeulen ac18fd5152 Backed out 20 changesets (bug 1411654) for incorrect android:debuggable. r=nalexander, a=RyanVM
Backed out changeset cfad693be918 (bug 1411654)
Backed out changeset 55776829a744 (bug 1411654)
Backed out changeset c5bf85d56fed (bug 1411654)
Backed out changeset c270f97bb0da (bug 1411654)
Backed out changeset fde9bf9c14c3 (bug 1411654)
Backed out changeset 01836fd98c63 (bug 1411654)
Backed out changeset 730a70767743 (bug 1411654)
Backed out changeset 690e265c684c (bug 1411654)
Backed out changeset f918500d9cf5 (bug 1411654)
Backed out changeset cec2b8828cc8 (bug 1411654)
Backed out changeset 76085ddd5ac7 (bug 1411654)
Backed out changeset 2b37201606f5 (bug 1411654)
Backed out changeset d0d513d1c379 (bug 1411654)
Backed out changeset e7b0cc801cf1 (bug 1411654)
Backed out changeset 901b304603d9 (bug 1411654)
Backed out changeset 373c9a71d945 (bug 1411654)
Backed out changeset 3dc3beab95f8 (bug 1411654)
Backed out changeset 22a861db1573 (bug 1411654)
Backed out changeset 0850b319efd4 (bug 1411654)
Backed out changeset d276d3deba05 (bug 1411654)

--HG--
rename : mobile/android/app/src/main/res/values-v17/themes.xml => mobile/android/base/resources/values-v17/themes.xml
2018-01-17 15:55:38 -05:00
Mike Hommey b7f54b9288 Bug 1430315 - Add a toolchain job to build llvm-dsymutil independently. r=rillian
We've had problems with crashes in llvm-dsymutil for a while, and while
they are, in essence, due to the fact that rustc produces bad debug
info, they are a hurdle to our builds. The tool comes along clang, and
updating clang is not necessarily easy (witness bug 1409265), so, so
far, we've relied on backporting fixes, which can be time confusing
(witness bug 1410148).

OTOH, llvm-dsymutil is a rather specific tool, that doesn't strictly
need to be tied to clang. It's only tied to it because it uses the llvm
code to do some of the things it does, and it's part of the llvm source
tree. But it could just as well be a separate tool, like it was(is?) on
OSX.

So, we add a toolchain job to build it from the llvm source,
independently from clang, so that we can update it separately, if we
hit new crashes that happen to already be fixed on llvm trunk. It will
also allow to more easily update after upstream fixes crashes after we
report them.

--HG--
extra : rebase_source : b814353b4b4632e46646a24b8f54c5300618ff49
2018-01-16 16:23:33 +09:00
Nick Alexander 47c107e74f Bug 1411654 - Part 1: Upgrade to Android-Gradle 3.0+ and build-tools;26.0.2. r=maliu
New Android-Gradle plugins pin the build-tools version, and we want to
be consistent between Gradle and moz.build.

MozReview-Commit-ID: ApWS4rHzPuH

--HG--
extra : rebase_source : 38a9781c472d858f3300cbbcbdc6d2311c465713
2017-10-26 11:00:36 -07:00
Nick Alexander e6080c2ce7 Bug 1411654 - Pre: Don't block Google's maven repository. r=maliu
Turns out Google's maven repository doesn't publish checksums.  I
can't imagine why not, but there it is.  We have to think more about
whether to trust the artifacts downloaded from maven.google.com.

MozReview-Commit-ID: CdWijorq1IV

--HG--
extra : rebase_source : a884971e51ce7b1ff993754b130f462c476646ab
2017-10-27 14:50:27 -07:00
Dorel Luca ab63c465d9 Backed out 19 changesets (bug 1411654) for Android nightly bustages a=backout
Backed out changeset 649e7aa405ca (bug 1411654)
Backed out changeset c2e51b70519f (bug 1411654)
Backed out changeset a371f3ef4312 (bug 1411654)
Backed out changeset db978e230556 (bug 1411654)
Backed out changeset 56538ed998cf (bug 1411654)
Backed out changeset 6ff0cdf46a3d (bug 1411654)
Backed out changeset 0e493bacc5e3 (bug 1411654)
Backed out changeset 23cbcf427745 (bug 1411654)
Backed out changeset eda74143389f (bug 1411654)
Backed out changeset 359fadf9b3e9 (bug 1411654)
Backed out changeset 5c64eda20f1e (bug 1411654)
Backed out changeset bffb6a5b78d1 (bug 1411654)
Backed out changeset 43787f4089c3 (bug 1411654)
Backed out changeset 9141bbdfd13b (bug 1411654)
Backed out changeset 108674372ef7 (bug 1411654)
Backed out changeset fb15e1f54987 (bug 1411654)
Backed out changeset 264476c77210 (bug 1411654)
Backed out changeset d23f467218da (bug 1411654)
Backed out changeset 78576ff98660 (bug 1411654)

--HG--
rename : mobile/android/app/src/main/res/values-v17/themes.xml => mobile/android/base/resources/values-v17/themes.xml
2018-01-13 15:17:49 +02:00
Coroiu Cristina c6a942e1bf Merge inbound to mozilla-central r=merge a=merge 2018-01-13 11:55:23 +02:00
Mike Hommey 68e591a606 Bug 1430270 - Disable ccache in hazard builds. r=nalexander
I don't intend to install ccache in the Debian build images. Hazard
builds are the only builds running on the desktop-build image still
using ccache somehow, and that gains them nothing, since the ccache
directory is not set to a cached directory on taskcluster, meaning
the build always starts with an empty cache. If anything, this currently
makes the build slower.

Eventually, those builds should be able to use sccache, once the
necessary setup moves out of mozconfig.cache.

--HG--
extra : rebase_source : fba6dab78b25ea61892cbe6127ead36da395b0e0
2018-01-13 06:33:12 +09:00
Csoregi Natalia bed10b400c Merge mozilla-central to autoland. r=merge a=merge CLOSED TREE 2018-01-13 00:02:18 +02:00
Mike Hommey eb3cf6d41b Bug 1430030 - Enable parallelism when building wine, upx and fxc2. r=ted 2018-01-12 21:25:59 +09:00
Mike Hommey a6d328e83e Bug 1430087 - Build sccache with system GCC/binutils. r=nfroyd
It was failing to build with the GCC/binutils on the CentOS-based docker
image, but it doesn't with the Debian-based one, so we can remove the
dependency on the gcc toolchain task. This allows sccache to remain
untouched when we change the gcc build scripts, and more importantly,
this allows it to depend on no toolchain that requires building things.

This makes it now possible to use sccache as a dependency for all other
toolchains jobs that compile, if that's beneficial (which might not be
the case, given the current sccache retention time, but at least it's a
viable option, now)
2018-01-13 05:57:57 +09:00
Nick Alexander e820c8ca18 Bug 1411654 - Part 1: Upgrade to Android-Gradle 3.0+ and build-tools;26.0.2. r=maliu
New Android-Gradle plugins pin the build-tools version, and we want to
be consistent between Gradle and moz.build.

MozReview-Commit-ID: ApWS4rHzPuH

--HG--
extra : rebase_source : 5a5730b4b9ce84af40a7c73c4f1abba017103f02
2017-10-26 11:00:36 -07:00
Nick Alexander a0865e7202 Bug 1411654 - Pre: Don't block Google's maven repository. r=maliu
Turns out Google's maven repository doesn't publish checksums.  I
can't imagine why not, but there it is.  We have to think more about
whether to trust the artifacts downloaded from maven.google.com.

MozReview-Commit-ID: CdWijorq1IV

--HG--
extra : rebase_source : e4373273e7aea7df79d70b5fbc233233a84d2360
2017-10-27 14:50:27 -07:00
Mike Hommey 714ba3c60d Bug 1428967 - Allow to build cctools-port on Debian. r=ted
There is no /lib64 on Debian. OTOH, one doesn't need to give the full
path to a system library in LDFLAGS, so just use -l syntax instead.

--HG--
extra : rebase_source : b795f97ab209499824afa5ef1aee9da52657ceb9
2017-12-30 12:57:51 +09:00
Mike Hommey d0497c863b Bug 1427266 - Statically link libdmg-hfsplus against OpenSSL. r=gps
libcrypto, part of OpenSSL, and that dmg links against, has a varying
ABI, and something built against libcrypto on Centos won't run on Debian
and vice versa. It might not even work between versions of the same OS
(e.g. Debian 7 vs. Debian 9).

Because of that, it is desirable to statically link it.

This incorporates https://github.com/mozilla/libdmg-hfsplus/pull/1
and sets OPENSSL_USE_STATIC_LIBS when building libdmg-hfsplus.

--HG--
extra : source : 78f2064b3811db58b364c32ce9b58a3f2dcaf8f8
2017-12-28 18:19:31 +09:00
Ted Mielczarek d9f364de3f bug 1401647 - Fix spidermonkey mozjs / rust-bindings builds. r=nalexander
The spidermonkey mozjs and rust-bindings builds run sed on
$topsrcdir/.cargo/config.in to generate the cargo config they use, but
they previously only replaced the @top_srcdir@ substitution. This patch
makes them replace any other substitutions with an empty value to add
a bit of future-proofing.

MozReview-Commit-ID: 1DzP9vXxHMD

--HG--
extra : rebase_source : e8c0268a2a6e91ca2000b340beee2dcff0636591
2018-01-03 14:51:52 -05:00
Mike Hommey ebcec7e922 Followup for bug 1421100: deterministically download rustc 1.23.0-beta.2. r=me, a=bustage on a CLOSED TREE 2018-01-04 14:52:20 +09:00
Mike Hommey de81c42aa0 Bug 1426785 - Allow more `mach artifact toolchain` calls to not use a tooltool manifest. r=gps
We're about to remove some tooltool manifests, so we need those calls to
work properly when TOOLTOOL_MANIFEST is not set.

--HG--
extra : rebase_source : 89d41021a87915dc9133e61543352e3bda1dace4
2017-12-22 07:48:14 +09:00
Coroiu Cristina dbb27acb6d Backed out 5 changesets (bug 1426785) for failing repackage the nightly build on Linux a=backout.
Backed out changeset 08b5850633de (bug 1426785)
Backed out changeset 61453b6473f1 (bug 1426785)
Backed out changeset 851ce8944b41 (bug 1426785)
Backed out changeset 386cd0532519 (bug 1426785)
Backed out changeset 2a52bf9e0898 (bug 1426785)
2017-12-24 14:03:02 +02:00
Mike Hommey 399ebca32e Bug 1426785 - Allow more `mach artifact toolchain` calls to not use a tooltool manifest. r=gps
We're about to remove some tooltool manifests, so we need those calls to
work properly when TOOLTOOL_MANIFEST is not set.

--HG--
extra : rebase_source : 38ca0e3b894097ed3667901b05af79062a6c82c2
2017-12-22 07:48:14 +09:00
Mike Hommey 40aecc07ad Bug 1426553 - Autoconf-related changes to spidermonkey jobs. r=nalexander
On Debian, the autoconf binary is autoconf2.13 while it is autoconf-2.13
on Centos.

In make-source-package.sh, we need to run autoconf to generate the
old-configure to include in the package, so try both.

In hazard-analysis.sh, we actually don't need autoconf itself, so just
copy configure.in to configure.

--HG--
extra : rebase_source : d21075394c69cd7cd6738da645173eb29f4a1259
2017-12-21 09:41:19 +09:00
Mike Hommey fbaf337e4b Bug 1426322 - Separate gcc and mingw32-gcc. r=gps
The "contract" for toolchains is that extracting foo.tar.xz creates a
directory named foo/. That is however not true for mingw32.tar.xz, which
extracts into gcc/, possibly overwriting files from the gcc.tar.xz
archive (which is also used for mingw builds, for the host part).

This is also not true for nsis.tar.xz, but it reportedly has problems
when it's not in the same directory as mingw32.

But mingw32 doesn't actually need to be mixed with gcc, so it's better
to separate them as they are supposed to be.

--HG--
extra : rebase_source : 30d90af64459bbb31bc076e48f3c661fa9cd4a79
2017-12-20 13:46:53 +09:00
Mike Hommey a588499893 Bug 1426321 - Explicitly enable tar wildcard support when repacking proguard. r=nalexander
While on Centos --wildcards is the default, it is not on Debian.

--HG--
extra : rebase_source : cff03dfb587d295c4e8f8893948a9775d6e5e8b5
2017-12-20 16:01:51 +09:00
Tom Prince df534f30a9 Bug 1426209: Allow passing `--extra-config-path in L10N tasks; r=jlund
MozReview-Commit-ID: FCG2K9L5Z3T

--HG--
extra : rebase_source : 9536c96f8aa7445149a7075b34310870d768f219
2017-11-27 13:47:29 -07:00
Steve Fink 6c225d1905 Bug 1351559 - Make fuzzing builds match firefox more closely, r=jonco
--HG--
extra : rebase_source : af836bee8642447855b50913ebbe1e345ecaed15
2017-12-15 10:13:12 -08:00
Ting-Yu Chou 0bc952653b Bug 1360650 part 2 - Export VSINSTALLDIR so LLVM_ENABLE_DIA_SDK will be set. r=ehsan 2017-12-18 11:28:20 -05:00
Ted Mielczarek 8b7140ce04 bug 1424323 - remove MOZ_AUTOMATION_UPLOAD_SYMBOLS from in-tree mozconfigs. r=rillian
With all of our builds in Taskcluster now, we should never be uploading
symbols from build tasks. Unfortunately Windows builds were still doing so.
This patch removes MOZ_AUTOMATION_UPLOAD_SYMBOLS from all the in-tree
mozconfigs and a few other places so that it should always default off
(per moz-automation.mk). The rest of the uploadsymbols bits will be
removed once Thunderbird fixes their automation.

This patch was mostly autogenerated by running:
rg --files-with-matches UPLOAD_SYMBOLS browser/config/mozconfigs/ mobile/android/config/mozconfigs/ | xargs sed -ri '/.*UPLOAD_SYMBOLS.*/d'
sed -ri '/.*UPLOAD_SYMBOLS.*/d' build/unix/mozconfig.linux build/mozconfig.win-common build/macosx/local-mozconfig.common build/mozconfig.automation

Then mobile/android/config/mozconfigs/common and
taskcluster/scripts/builder/build-linux.sh were hand-edited.

MozReview-Commit-ID: Cy8kSEodSg4

--HG--
extra : rebase_source : 01caf1651b4eb428313e1f371aa585f8f34c4151
2017-12-08 13:50:17 -05:00
Christian Holler 107b880d6a Bug 1415689 - Add Clang 6 (pre) and use it for ASan builds. r=froydnj
MozReview-Commit-ID: 34rcG7gEswz
2017-11-10 10:14:26 +01:00
Tom Prince 3062e80d46 Bug 1415618: Add support to taskcluster to specifying extra paths to mozharness. r=jlund
MozReview-Commit-ID: 7CGQgSUUg0n

--HG--
extra : rebase_source : 2a184e66c3413e9e206b999b1340a6ecb52bd234
extra : source : 71510fd07ef52f8539ed37968e2ec7ea9c1a5fdd
2017-11-14 15:16:22 -07:00
Brindusan Cristian ef3b43fb44 Backed out 4 changesets (bug 1415618) for build bustage failures. r=backout on a CLOSED TREE
Backed out changeset 71510fd07ef5 (bug 1415618)
Backed out changeset 780f67a36d6d (bug 1415618)
Backed out changeset 5ecdc55db739 (bug 1415618)
Backed out changeset be3173822987 (bug 1415618)
2017-11-16 05:53:38 +02:00
Tom Prince eea866d632 Bug 1415618: Add support to taskcluster to specifying extra paths to mozharness. r=jlund
MozReview-Commit-ID: 7CGQgSUUg0n

--HG--
extra : rebase_source : e31e1f70d0f54b4c1d6535d004f49267ea3071b5
2017-11-14 15:16:22 -07:00
Marco Castelluccio 14a1047ffd Bug 1415568 - Support applying patches to Windows clang. r=froydnj
--HG--
extra : rebase_source : ed53f564166f6c26ed4f7fc0dabcc4582116ddbf
2017-11-08 17:23:12 +01:00
Nick Alexander b4332702f0 Bug 1414678 - Pass through MOZ_SCM_LEVEL, so that secret fetching works. r=Callek
MozReview-Commit-ID: IqtMzMsjxOZ

--HG--
extra : rebase_source : eefc31daa43894a08c9bc9eb1da40faeb466c2a5
extra : source : a5a189a375dcc63af11dec3afa2d6491e52ddc4e
2017-11-06 11:32:40 -08:00
Sebastian Hengst f5e52adeea merge mozilla-inbound to mozilla-central. r=merge a=merge 2017-11-07 12:43:06 +02:00
David Major 375f8abff8 Bug 1414304 - Use VS2017 for the sccache toolchain build. r=cmanchester 2017-11-06 17:15:13 -05:00
David Major 422a57aa5b Bug 1414306 - Use VS2017 for the gn toolchain task. r=cmanchester 2017-11-06 17:14:45 -05:00
Ralph Giles 1999c8d8f8 Bug 1414906 - Build sccache with openssl 1.1.0g. r=froydnj
Fixes bn_sqrx8x_internal carry bug on x86_64 (CVE-2017-3736)

MozReview-Commit-ID: 5qF9NfCi3XX

--HG--
extra : rebase_source : 287dfb7198b2c7cce065010e5c603a4bb2fe986f
2017-11-06 10:16:07 -08:00
Gregory Szorc 29dc336611 Bug 1413687 - Move hazard build scripts out of mozharness; r=sfink
These scripts are included by hazard-analysis.sh. That's their only
reference in repo.

We could probably inline these scripts. But let's start by moving them
out of mozharness since no active mozharness based task is using them.

MozReview-Commit-ID: 13oen42Txmh

--HG--
rename : testing/mozharness/scripts/spidermonkey/build.browser => taskcluster/scripts/builder/hazard-browser.sh
rename : testing/mozharness/scripts/spidermonkey/build.shell => taskcluster/scripts/builder/hazard-shell.sh
extra : rebase_source : 782f7b3f3537cfefb51b0e5f1b459c8ad0daca5b
2017-11-06 11:02:24 -08:00
David Major 2d71b41c6f Bug 1412952 - Build clang-cl itself with VS2017. r=froydnj 2017-11-03 12:29:58 -04:00
Nathan Froyd c32f61a4c3 Bug 1412888 - bump the sccache revision to include argument parsing fixes; r=ted.mielczarek 2017-10-30 12:31:07 -04:00
David Major e247435916 Bug 1408789 - Switch Windows builders to VS2017 15.4.1 with SDK 10.0.16299.0. r=gps 2017-10-27 11:15:58 -04:00
Ted Mielczarek 05e4287341 bug 1408836 - update sccache to 0.2.2 to fix a Rust caching regression from Rust 1.20. r=glandium
MozReview-Commit-ID: K7dAk6wLGl7

--HG--
extra : rebase_source : e4637944c211c6ea4bc7bbe6035d1345f3057aaf
2017-10-25 21:18:27 -04:00
Tom Ritter 211636b4b8 Bug 1409915 Bump MinGW version to fix a broken IDWriteFontFace1 declaration r=froydnj
MozReview-Commit-ID: 6An97afawC5

--HG--
extra : rebase_source : 2b2c4a098e7b9ea0d6065d254b81547bd6165109
2017-10-18 19:23:33 -05:00
Nick Alexander af26e68984 Bug 1366644 - Part 3a: Update Android build-tools (25.0.3), Gradle (3.4.1), Android-Gradle (2.3.3). r=maliu
The goal is to use a newer Android-Gradle build plugin version (2.3.3
is latest stable).  That requires a modern Gradle (anything 3.3+, but
3.4.1 is the default from my Android Studio), and also a newer
build-tools (25.0.3 is latest stable).

The locations of lint output changed, and we want to use the standard
output location because it's difficult to accommodate variant details
in custom names.  We change the location of findbugs output to follow
suit.

This requires either:

- fixing lint errors
- adding to the lint whitelist
- using the new lint baseline

It's best to use the new lint baseline, which will happen in the next commit.

MozReview-Commit-ID: D19FzIDCJrE

--HG--
extra : rebase_source : 12d132c0c3e0dbe2b8873b31360ea96d612de44c
2017-10-16 15:09:15 -07:00
Nick Alexander 01b0f892eb Bug 1366644 - Pre: Print Android sdkmanager package listing. r=maliu
This is simply diagnostic; it's nice to see what the versions of the
Android packages installed are, like:

Installed packages:
  Path                              | Version      | Description                       | Location
  -------                           | -------      | -------                           | -------
<snip>
  platforms;android-23              | 3            | Android SDK Platform 23           | platforms/android-23/
  tools                             | 26.0.1       | Android SDK Tools 26.0.1          | tools/

This is really useful because it's not possible to pin most packages
to specific versions; that is, we can only install latest "tools", not
"tools;26.0.1".

MozReview-Commit-ID: HgZLGCAObEs

--HG--
extra : rebase_source : 33e5c9f81d05551c9e167eac62009f1de023b410
2017-10-16 13:24:47 -07:00
Mike Hommey b8008f9d30 Bug 1409260 - Remove comments about tc-vcs. r=dustin,gps
--HG--
extra : rebase_source : 6dd6331f137e7ad8b10acc55e25881877855258b
2017-10-17 15:12:41 +09:00
Sebastian Hengst 32f7c8fec3 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 1h3kZyrtqSt
2017-10-17 11:45:16 +02:00
David Major fe61232e43 Bug 1409044 - Pass the tooltool authentication file in Spidermonkey builds. r=Callek 2017-10-16 11:43:34 -04:00
Tom Ritter 302cef9ace Bug 1407359 Set up a framework for patching the MinGW toolchain r=glandium
MozReview-Commit-ID: 8HtjLXAIXTP

--HG--
extra : rebase_source : b32cb4ac931c9dc599572bc5e726e4d68982c8a4
2017-10-16 20:52:47 -05:00
Nick Alexander e83bd0bc4e Bug 1405413 - Migrate Gradle dependency fetching to toolchain dependencies. r=dustin
MozReview-Commit-ID: 6OOD4mhICG1

--HG--
rename : taskcluster/scripts/builder/build-android-dependencies.sh => taskcluster/scripts/misc/android-gradle-dependencies.sh
rename : taskcluster/scripts/builder/build-android-dependencies/after.sh => taskcluster/scripts/misc/android-gradle-dependencies/after.sh
rename : taskcluster/scripts/builder/build-android-dependencies/before.sh => taskcluster/scripts/misc/android-gradle-dependencies/before.sh
rename : taskcluster/scripts/builder/build-android-dependencies/nexus.xml => taskcluster/scripts/misc/android-gradle-dependencies/nexus.xml
extra : rebase_source : 8c476377ded6b7177b3ba45f648431a08468948d
2017-10-13 12:59:04 -07:00
Sebastian Hengst 87626a0ece merge mozilla-central to autoland. r=merge a=merge 2017-10-14 00:02:17 +02:00
Sebastian Hengst 373bdd8602 merge mozilla-inbound to mozilla-central. r=merge a=merge
MozReview-Commit-ID: 9adaYBJ4tlo
2017-10-13 23:37:41 +02:00
Steve Fink 2a91809c78 Bug 1339989 - Create a sixgill compilation toolchain job, r=glandium
--HG--
extra : rebase_source : ccd11f3522b6c87a59bb9837a6a1d338cfbb8608
2017-10-09 17:49:29 -07:00
Nick Alexander fb7ea6fbab Bug 1405412 - Post: Remove JDK repackaging script. r=dustin
I don't think (the output of) this script is used anywhere.

MozReview-Commit-ID: DwMFtpozjNL

--HG--
extra : rebase_source : 005086039f520ba116534ab47ee49616c6958e85
2017-10-05 16:57:40 -07:00
Nick Alexander daf88e8cc6 Bug 1405412 - Migrate Android SDK to android-sdk-linux toolchain task. r=dustin
The only tricky piece here is that the resulting toolchain archive is
private, and uses a newly allocated Task Cluster scope
(queue:get-artifact:project/gecko/android-sdk/*) to restrict access to
the archive.  All SCM levels (1, 2, 3) have been given the new scope:
see https://tools.taskcluster.net/auth/roles/moz-tree:level:1 and
friends.

MozReview-Commit-ID: CcDqDOHODpe

--HG--
extra : rebase_source : 81dbb065f2a3c4e7733e964be66adb1733db52c6
2017-10-03 11:45:27 -07:00
Mike Hommey cfff009a09 Bug 1408277 - Add a toolchain job for clang 5.0. r=froydnj
--HG--
extra : rebase_source : 6a5a3e1db7b8a754181468914712a38f162d0f0d
2017-10-13 13:22:41 +09:00
Nick Alexander 5e900e07f6 Bug 1352599 - Part 1: Add a Proguard toolchain task for Android builds. r=froydnj
MozReview-Commit-ID: 5lyHGLkzyg

--HG--
extra : rebase_source : 63824f309d216eab06ea34a6db244eb299139f58
2017-10-02 13:27:51 -07:00
Tom Ritter ea7e05e401 Bug 1407289 Bump MinGW commit r=froydnj
MozReview-Commit-ID: KkG5ODa5WWl

--HG--
extra : rebase_source : ae9f21f489b218982e8d46134c1511ac709e8274
2017-10-10 20:42:00 -05:00
Sebastian Hengst 758e7bad02 Backed out changeset 52a05ad77fa5 (bug 1352599) for failing build at python/mozbuild/mozbuild/test/configure/lint.py::Lint::test_mobile_android. r=backout on a CLOSED TREE 2017-10-12 23:43:02 +02:00
Sebastian Hengst 4b5ec86ca9 Backed out changeset 5f4ff0de7242 (bug 1405412) 2017-10-12 23:41:30 +02:00
Sebastian Hengst 71825d3c20 Backed out changeset 44f885bc7c22 (bug 1405412) 2017-10-12 23:41:25 +02:00
Nick Alexander 44b6375075 Bug 1405412 - Post: Remove JDK repackaging script. r=dustin
I don't think (the output of) this script is used anywhere.

MozReview-Commit-ID: DwMFtpozjNL

--HG--
extra : rebase_source : 36b3cbe1a6a9e5cd163782c1c13653be8558a03a
2017-10-05 16:57:40 -07:00
Nick Alexander 962b96fa44 Bug 1405412 - Migrate Android SDK to android-sdk-linux toolchain task. r=dustin
The only tricky piece here is that the resulting toolchain archive is
private, and uses a newly allocated Task Cluster scope
(queue:get-artifact:project/gecko/android-sdk/*) to restrict access to
the archive.  All SCM levels (1, 2, 3) have been given the new scope:
see https://tools.taskcluster.net/auth/roles/moz-tree:level:1 and
friends.

MozReview-Commit-ID: CcDqDOHODpe

--HG--
extra : rebase_source : 062bca8c65556f0f46e9c9cc6cd81eb04cf2b522
2017-10-03 11:45:27 -07:00
Nick Alexander f5c43c8ddc Bug 1352599 - Part 1: Add a Proguard toolchain task for Android builds. r=froydnj
MozReview-Commit-ID: 5lyHGLkzyg

--HG--
extra : rebase_source : dc75874944d9559a69f495cbca5f492bf464c9d4
2017-10-02 13:27:51 -07:00
Mike Hommey f813868d70 Bug 1408284 - Build sccache with gcc instead of clang. r=ted
When adding sccache toolchain jobs in bug 1381772, building with gcc
failed, and building with clang worked, so I just went with the path of
least resistance. That's however a suboptimal position in the dependency
graph, so it's still preferable to use gcc if possible.

Looking exactly how it fails, it turns out it's because without CC being
set, ring wants to build with "cc", which ends up being the system gcc
instead of ours (our gcc archive doesn't provide "cc", only "gcc"), and
it is too old to support the compiler flags ring uses.

So setting CC does the trick.

--HG--
extra : rebase_source : 4c657664957dff1f7aebe470e0440a52c9e280e5
2017-10-13 14:27:13 +09:00
Tom Ritter 14ad913e94 Bug 1403058 Add the MinGW32 browser build to Taskcluster r=glandium
MozReview-Commit-ID: EGWX1EfqBNJ

--HG--
extra : rebase_source : 4cbe0340bad06d4421cd0b106d1dc7a4ab2ec013
2017-10-05 11:46:32 -05:00
Ralph Giles 0c8e4be1c2 Bug 1391427 - Port the repack_rust script to taskcluster. r=glandium
Copy the repack_rust.py from the rust-build docker container
so it can be used more generally by other taskcluster jobs.

Add --host, --target, and --suffix switches, allowing control
of the packaged toolchain and standard library builds from
the command line.

This drops the previous default behaviour of packaging all
supported platforms and targets.

Add a hard-coded copy of the Rust release signing key to
the script and add it to the running user's gpg config
so we can validate downloaded artifacts from the project
in automation.

Remove the keybase artifact validation since it requires
out-of-project network services and doesn't provide much
advantage in automation.

Calculate the SHA-2 checksum during download and remove
the dependency on shasum/sha256sum command-line tools.

Use more python for filesystem an process interaction
in general.

Create a generic rustc.tar.* package to correctly match
the unversioned unpack dirctory name.

Add support for copying the package to an output directory
if the UPLOAD_DIR environment variable is set. This lets
us hook up the script to taskcluster toolchain jobs without
an external wrapper.

MozReview-Commit-ID: 68LmY3QVU8V

--HG--
extra : rebase_source : f6329056d518ad2cd25faa5c71b22130cbc65c8f
2017-09-12 16:17:00 -07:00
Tom Ritter 095b4bfda8 Bug 1330608 Add the MinGW32 toolchain build to Taskcluster r=glandium
MozReview-Commit-ID: JHS6y8kqr4T

--HG--
extra : rebase_source : e04692af64312db7028d4123075e02d8b9127ef2
2017-09-22 00:24:58 -05:00
Nick Alexander d017b0874e Bug 1396098 - part 1 - base `android-build` on Debian instead of CentOS; r=glandium,dustin
CentOS 6 is pinned to glibc 2.12, but newer Android build-tools (like
aapt) require glibc 2.14.  It's not possible to safely upgrade CentOS
6 distributions to glibc 2.14.

CentOS 7 is pinned to glibc 2.17, which is new enough for newer
Android build-tools. However, I had great difficulty bringing forward
our existing centos:6 Docker image to centos:7.  In particular,
installing recent enough Mercurial, git, Python, and pip versions was
difficult enough that I elected to not pursue this approach.

Instead, I've elected to follow glandium's suggestion from
https://bugzilla.mozilla.org/show_bug.cgi?id=1370119#c5: base on
Debian with snapshots.debian.org for reproducibility.

The most significant changes here:

- using Debian's snapshots repository
- using Python and related tools provided by Debian and baked into the
  build image
- using the JDK and JRE provided by Debian and baked into the build
  image, rather than versions from tooltool (or eventually a toolchain
  build)

Moving the builds over to use this image will follow in the patches
ahead.
2017-09-18 15:38:22 -04:00
Steve Fink 7997149dd2 Bug 1400442 - Trim down whitelists to only what is required, and mark all known issues with bug numbers, r=jonco
I also snuck in some last-minute assertions and minor fixes into this patch:

- don't stop reporting for a callee if we've seen it already (or rather, make the reachable set local to a root rather than global to all roots). This slows down runs with hundreds of hazards, but results in every problematic root being reported, for a more accurate count.

- annotate away some thread assertions

- special-case annotation for bug 1400435 since it's a whole family of hazards

--HG--
extra : rebase_source : ac7335d45e3e0772d34cb42cc6a3f628564fd3d1
2017-09-15 17:18:13 -07:00
Gregory Szorc 972bb63fcc Backed out changesets ef813898b5d3, ce228388aaf6, and c798f482b2c5 (bug 1396098) for violating TC cache constraints
CLOSED TREE

--HG--
extra : amend_source : 84120d6bacb5d72a9fbe41e4c3b405d63825da7c
extra : histedit_source : 8320c2193761b745f10850055ee74a3c9ac73615%2Cfbc2a28d8c5004a53305ef858ca5aea4245691e0
2017-09-18 13:30:43 -07:00
Nick Alexander c800d7d1f7 Bug 1396098 - part 1 - base `android-build` on Debian instead of CentOS; r=glandium,dustin
CentOS 6 is pinned to glibc 2.12, but newer Android build-tools (like
aapt) require glibc 2.14.  It's not possible to safely upgrade CentOS
6 distributions to glibc 2.14.

CentOS 7 is pinned to glibc 2.17, which is new enough for newer
Android build-tools. However, I had great difficulty bringing forward
our existing centos:6 Docker image to centos:7.  In particular,
installing recent enough Mercurial, git, Python, and pip versions was
difficult enough that I elected to not pursue this approach.

Instead, I've elected to follow glandium's suggestion from
https://bugzilla.mozilla.org/show_bug.cgi?id=1370119#c5: base on
Debian with snapshots.debian.org for reproducibility.

The most significant changes here:

- using Debian's snapshots repository
- using Python and related tools provided by Debian and baked into the
  build image
- using the JDK and JRE provided by Debian and baked into the build
  image, rather than versions from tooltool (or eventually a toolchain
  build)

Moving the builds over to use this image will follow in the patches
ahead.
2017-09-18 15:38:22 -04:00
Nick Alexander 371e2f7240 Bug 1396098 - part 0a - only source xvfb.sh if we need xvfb; r=glandium
No sense doing unnecessary work.
2017-09-15 14:52:24 -04:00
Stephen A Pohl ba9097540f Bug 1324892: Update toolchain paths to point to the macOS 10.11 SDK. r=ted 2017-09-08 15:49:29 -04:00
Nick Fitzgerald dbf3ca4b81 Bug 1277338 - Part 10: Add the SM-tc(rust) taskcluster task; r=sfink
This adds a new SpiderMonkey taskcluster test task that builds and tests the
js/rust crate.
2017-09-05 09:26:21 -07:00
Nathan Froyd 24e95d7e5e Bug 1395722 - link openssl statically when building sccache; r=ted.mielczarek
Our current sccache build links in openssl's libraries dynamically.  The
sonames of the dynamic libraries linked in are specific to the
CentOS/Fedora-ish systems that we build on; attempting to run the
generated sccache binaries on different systems (e.g. Debian-ish) will
result in failure.  All of our current automation images are
CentOS-based, but for various reasons, Debian-based images may be used
in the future, and it would be great to have an sccache binary to run on
such systems as well.  (It might also be interesting to distribute the
sccache binary we use to local developers as well, but that's a bit
further off.)

Therefore, this patch alters the sccache build on Linux to use static
linking for openssl.  We cannot use the system openssl we build on
because the system openssl links to libkrb5, and the distribution we use
for the system images does not provide static libraries of libkrb5.
Building openssl ourself enables us to eliminate the libkrb5 dependency.

An sccache binary from builds with this patch depends on the following
libraries:

froydnj@hawkeye:~$ ldd sccache2/sccache
	linux-vdso.so.1 =>  (0x00007ffe02b39000)
	libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ff0e7403000)
	librt.so.1 => /lib/x86_64-linux-gnu/librt.so.1 (0x00007ff0e71fb000)
	libpthread.so.0 => /lib/x86_64-linux-gnu/libpthread.so.0 (0x00007ff0e6fdd000)
	libgcc_s.so.1 => /lib/x86_64-linux-gnu/libgcc_s.so.1 (0x00007ff0e6dc6000)
	libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ff0e69fc000)
	/lib64/ld-linux-x86-64.so.2 (0x0000557c8540b000)
	libm.so.6 => /lib/x86_64-linux-gnu/libm.so.6 (0x00007ff0e66f2000)

which are standard on any Linux distribution.
2017-09-05 11:37:51 -04:00
Chris Manchester 696a8e5320 Bug 1386782 - Add toolchain tasks to build gn in automation. r=ted
MozReview-Commit-ID: 7dDwsQJnzRL

--HG--
extra : rebase_source : be14a5af5648ae0cc0e571ca098307a4d84a7c14
2017-07-25 15:33:44 -07:00
Wander Lairson Costa 6332ed5b0a Bug 1338651 part 1: Change docker image home dir to /build. r=dustin,mshal
Using /home/worker is the build directory has a 30% talos performance
loss, because test machines has a /home mount directory.

MozReview-Commit-ID: 554IPMRWgzK

--HG--
extra : rebase_source : 00827d3f6bd705419bc801eb05b543af1ddc274f
2017-08-28 08:44:51 -03:00