Commit Graph

269 Commits

Author SHA1 Message Date
Ralph Giles
0608e0eb00 Bug 1371366 - mozboot: Install rust 1.18.0. r=froydnj
This version offers a 15-20% improvement to compilation
speed, so we will likely require it for developers soon.

Begin installing it now to reduce the frequence of double
migrations.

MozReview-Commit-ID: JZRssgOjkF7

--HG--
extra : rebase_source : 7d2ef10315c570e21d609f713391be3e82a88383
2017-06-07 14:57:55 -07:00
Nathan Froyd
c2cc55b60e Bug 1368655 - only download Stylo packages if the user wanted Stylo; r=rillian
DONTBUILD because NPOTB
2017-06-01 19:15:03 -04: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
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
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
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
e9fb64de96 Bug 1363110 - mozboot: update clang package hash. r=froydnj
Fixes a 403 error running `./mach bootstrap` with stylo enabled.

Bug 1359968 updated the tooltool manifests to point to a
publicly-available clang package. Update the macOS hash
used by mozboot to install the same package for local
use by developers who need rust-bindgen.

MozReview-Commit-ID: FtkATaLwc7n

--HG--
extra : rebase_source : 61390c729e694589b0351026aac0263440a9a3c5
2017-05-08 11:53:35 -07:00
Chris Peterson
44c4d43ecf Bug 1362828 - mozboot: Fix clang package download message. r=froydnj
The Python print() function's does not take a format string, so the extraneous %s here inadvertently prints "Downloading clang package from %s https://..." instead of "Downloading clang package from https://...".

MozReview-Commit-ID: 5Is5TK3X34e

--HG--
extra : rebase_source : 02e625fbdaab536d1a787c33edd6dfda9c1039c6
2017-05-07 00:54:14 -07:00
Jan Beich
6c24868ec4 Bug 1360781 - Add Stylo dependencies for ./mach bootstrap on FreeBSD. r=froydnj
MozReview-Commit-ID: 3cD8frPKXnW

--HG--
extra : rebase_source : a2172145af1aec80eb6a67a0a9bd06ab0ec22130
2017-04-29 02:04:02 +00:00
Nathan Froyd
5635c7bffe Bug 1314355 - part 2 - download LLVM packages from mach bootstrap for Stylo development; r=rillian
For Stylo development, LLVM packages are required due to Stylo's
extensive use of bindgen--generating Rust bindings to Gecko's C++ code.
While people can install LLVM via their system package manager, we've
opted to download the LLVM packages used on Mozilla infrastructure for
building Gecko.  Using Mozilla's packages for LLVM ensures that they
work, and also makes it easier/trivial to integrate support for other
things (e.g. Mozilla's static checkers) into `mach bootstrap`.
2017-05-02 11:23:40 -04:00
Nathan Froyd
be73c54413 Bug 1314355 - part 1 - add ability to use a generic digest algorithm for http_download_and_save; r=rillian
This will be useful for downloading files from tooltool, which requires
a SHA512 checksum.
2017-05-02 11:23:40 -04:00
Luis de Bethencourt
48d0873809 Bug 1140088 - Update git URL to github; r=froydnj
git.mozilla.org has been decommissioned.

DONTBUILD because comment-only fixes are safe.
2017-04-25 14:46:52 +01:00
Utkarsh Anand
ecd3979b25 Bug 1353460 Asked the user to restart the shell before building from source. r=rillian
When downloading rust manually, it's mandatory to restart the shell,
as the script does not export the PATH environment variable.
This fix also ensures that the rust version in PATH is modern enough for a successful build.

MozReview-Commit-ID: HdLpiLPBLW7

--HG--
extra : rebase_source : dc087c36e89fd6d2957fd1e03af42229de914d5a
2017-04-06 08:27:57 +05:30
Arshad Khan
47d2c3993b Bug 906177 - Added distro support for Elementary OS Luna;r=gps
MozReview-Commit-ID: FtHmXIFtzIz

--HG--
extra : rebase_source : 1d37d38f7635cbe6c1d30669240a613b52a62ed2
2017-03-23 16:39:40 +05:30
suman gupta
0539e340b8 Bug 1346284 Updated ndk r11c to be installed by mach bootstrap; r=nalexander
MozReview-Commit-ID: KgM9ecZR0fB

--HG--
extra : rebase_source : 9dd666e1fc12d455b4e0c58b5af17d5bd7f35930
2017-03-13 23:47:23 +05:30
Jan Beich
5e185e524c Bug 1320940 - rustup is N/A on Tier3 platforms, so prefer downstream Rust packages. r=rillian
MozReview-Commit-ID: NsRGdweHuF

--HG--
extra : rebase_source : 1cdc69999b5047b8e03bc12006b9fb8d09cfaa20
2016-11-29 14:27:46 +00:00
KuoE0
2fb7487fe1 Bug 1340379 - Remove hardcoded Homebrew URL of autoconf 2.13 for macOS. r=nalexander
MozReview-Commit-ID: 2QRkVCOFTUL

--HG--
extra : rebase_source : 0544def007eeb6ec1ada1cbd0a58aa297bc5b711
2017-02-17 11:14:29 +08:00
Ralph Giles
e44edf88cc Bug 1339409 - mozboot: Fix undefined FileNotFoundError. r=froydnj
The FileNotFoundError built-in exception is only present in
python 3. Emulate its behaviour in python 2 with a conditional
OSError.

MozReview-Commit-ID: 4b8THPG7jph

--HG--
extra : rebase_source : 718bf3659f14bd349d052d43bf3197dfbb4a016f
2017-02-14 11:41:04 -08:00
Ralph Giles
d9052fefa0 Bug 1337153 - Require rust 1.15.1. r=Ehsan
Bump the minimum version of the rust toolchain we require to
build. The 1.15 release includes support for custom #[derive]
directives, letting us use the serde serialization crate without
checking in a lot of generated code.

This is primarily motivated by webrender and the audio remoting
work, and lets us drop the heavy syntex dependency.

MozReview-Commit-ID: 6IObHhouPAn

--HG--
extra : rebase_source : 4be8b148fb653a48f6df4309811ab1d8755f7edf
2017-02-09 09:38:48 -08:00
Ralph Giles
5f0a2f9de1 Bug 1324435 - mozboot: ensure win32 rust support. r=ted
If we have rustup installed, use it to check the available
target platforms and install 32-bit windows support if we're
on the (default 64-bit) windows platform.

This catches systems where the mozillabuild bootstrapper was
run before it installed this, so rustup is available, but the
i686 target library isn't.

MozReview-Commit-ID: 9bE2OQnmvxs

--HG--
extra : rebase_source : 0915fef85755718c5524b13b6b7d0d8b6dbe05b4
2017-01-11 11:30:47 -08:00
Ralph Giles
d8025db2ea Bug 1324435 - mozboot: Install rust i686-msvc target. r=ted
Windows devs often want to target 32-bit windows. Make this
easier by installing the target for them at mozboot time.

MozReview-Commit-ID: 6gFbFBOqMz8

--HG--
extra : rebase_source : 12933c6cb7895cef859c9022efa87c62f321219e
2017-01-11 10:19:28 -08:00
Ralph Giles
0ef4e5a4a9 Bug 1332722 - mozboot: Use msys path for cargo_bin. r=gps
We need to mangle the path for both parts of the text printed
but rust_path_advice on windows. Otherwise the report of where
the rust binary was found ends up a mixed pathname even when
the suggested shell command is correct.

MozReview-Commit-ID: FDtP5HY8tJ1

--HG--
extra : rebase_source : ad3671be04751ece8966fa19267239b9f1614551
2017-01-20 11:55:05 -08:00
Ralph Giles
1ffc29a50a Bug 1332722 - mozboot: Improve prompt formatting. r=gps
Adjust newlines so prompt and result information is easier to read.

MozReview-Commit-ID: BbJldqZ6G4

--HG--
extra : rebase_source : 50781f672c452e97c47d4ae07aa7f8b67a96ec50
2017-01-18 09:24:52 -08:00
dinartejesus
92cca75491 Bug 1329398 - Update autoconf@2.13 repository url since homebrew-version was deprecated. r=arai, gps
--HG--
extra : amend_source : 174805e5a590d06bf7e96fb102ce66890a52e705
2017-01-07 12:11:09 +01:00
Ralph Giles
a3737f4e6a Bug 1328940 - mozboot: Install hardened cc for python. r=froydnj
Work around missing redhat-hardened-cc1 when building psutil_linux
on Fedora by installing the redhat-rpm-config package.

This fixed build warnings with several mach commands, and errors
with others like `./mach mochitest` and `./mach install` for fennec
builds.

MozReview-Commit-ID: G9jn4abUEtp

--HG--
extra : rebase_source : 98337b820fff52e2efd2368e89f7ff488b36f1ff
2017-01-05 10:47:44 -08:00
Sylvestre Ledru
c08a6438f1 Bug 1292649 - Use default-jdk instead of an explicit version of the jdk r=nalexander
Should be pretty safe as Java compa is usually very good.
This will fix the issue on Debian testing not having openjdk-7-jdk and
current Debian stable having it.
(same with Ubuntu)

MozReview-Commit-ID: Alxg4K4PwQ4

--HG--
extra : rebase_source : 920cdb1618ba587a4776e33ef7857415a59c53b9
2016-12-29 19:44:57 +01:00
Jonathan Watt
5c31ea5e34 Bug 1325787 - Fix MozillaBuild so profile-rustup.sh doesn't break Windows users who have aliased 'cd'. r=gps 2016-12-24 20:02:23 +00:00
Ralph Giles
afb3ed504c Bug 1324473 - mozboot: Normalize windows path advice. r=gps
On windows, python generally returns windows-style paths,
with drive letters and backslash for a separator. However,
when we offer advice for updating the PATH variable, we're
talking about the msys environment which uses unix-style
paths. Convert to avoid confusion.

This is intended to turn c:\Users\mozilla\ into /c/Users/mozilla/.

MozReview-Commit-ID: FdB8FvjeCV1

--HG--
extra : rebase_source : 6d9e87b460417254bbe2eb5af3813e22f2126fb1
2016-12-22 15:45:52 -08:00
Ralph Giles
a46f0d51d7 Bug 1325272 - mozboot: Install python-dbus on fedora. r=froydnj
This provides build-completion notification from mach.

We already do this on debian-based distros.

MozReview-Commit-ID: Jl3OWa9MpZ6

--HG--
extra : rebase_source : e97c02d2924f888b33593ad5209cedaccceba633
2016-12-19 16:31:46 -08:00
Ralph Giles
05bd510ee5 Bug 1325474 - mozboot: install rustup 1.0.0. r=froydnj
Update the version number and checksums of the rustup
installer we download to 1.0.0. This had a first stable
release alongside rust 1.15.

This is the result of running `python mozboot/rust.py --update`
and applying the resulting output.

MozReview-Commit-ID: 1gzMLHZuhNx

--HG--
extra : rebase_source : b9d0f95f17e76a32e17e82d05505cf07a21c5e66
2016-12-22 13:39:25 -08:00
Ralph Giles
57bf0dc91d Bug 1324040 - mozboot: Download rustup without SNI. r=froydnj
It seems older Python (e.g. 2.7 from Ubuntu 14.04) doesn't
support SNI, so we get a TLS error with the canonical
https://static.rust-lang.org/ url even when using the
`requests` module.

Fall back to the no-CNAME host instead which is ugly but works.

Thanks to Simon Sapin for the suggestion.

MozReview-Commit-ID: I6V5ASijuKi

--HG--
extra : rebase_source : 2e2a449fbb3011b51207f1c6baa3d288d0dc774c
2016-12-16 10:21:35 -08:00
Ralph Giles
fc8803bb33 Bug 1321292 - mozboot: Don't suggest non-existent .cargo.env. r=gps
On Windows, the rustup installer doesn't create ~/.cargo/env
but instead pokes .cargo/bin into the path in the Windows
registry. This doesn't necessarily propagate to the msys
evironment however, so some PATH manipulation may still
be necessary.

Split our path advice to be clear in both the new install
and unconfigured path cases, and amend our path update
advice to not mention .cargo/env if it isn't present.

MozReview-Commit-ID: 9IHhS6UYCqq

--HG--
extra : rebase_source : 898615106078882f335385ac0b50eff1612377f0
2016-12-05 20:53:00 -08:00
Ralph Giles
477a29bf9f Bug 1320596 - mozboot: Handle old rustc but not rustup. r=gps
Always report if we found an out-of-date rustc.

This is better when an older rustc is installed, but not rustup,
and it's shadowing the version we install in $CARGO_HOME.

MozReview-Commit-ID: 43io6uISMNI

--HG--
extra : rebase_source : f02e36e0c0c0e5380b3f511852b29a77622165c5
2016-11-28 16:43:22 -08:00
Ralph Giles
a394c35724 Bug 1320397 - mozboot: Install dbus-glib on Fedora. r=gps
This is needed on Fedora as well as CentOS, at least on Fedora 25
where it's evidently not part of the "GNOME Software Development"
group.

MozReview-Commit-ID: KMW8FUsvJcv

--HG--
extra : rebase_source : 07acb80148409cc1d2918900a56e5d0210c157e1
2016-11-25 15:35:12 -08:00
Ralph Giles
02c6a95b45 Bug 1319860 - mozboot: Prompt to add rust to PATH after install. r=nalexander
We were checking for success installing rust with the same code
we checked for upgrade success, but in the case of a clean install
this will likely fail because the binaries installed by rustup
won't be in path. Instead, print the help message about adding
them after installation completes.

MozReview-Commit-ID: xa5PKIDKzZ
2016-11-25 14:09:38 -08:00
Ralph Giles
5885ed4e11 Bug 1286799 - mozboot: Fix rust detection on windows. r=gps
WindowsBootstrapper overrides BaseBootstrapper.which() to append
the Windows 'exe' filename extension, so which() finds rustc.exe
and rustup.exe properly. However, our other code which constructs
the program name in _parse_version or looks for the files in
CARGO_HOME didn't take this into account, making the script think
it couldn't find rust.

Don't use os.path.join to construct urls, since on windows this
inserts the backslash '\' path separator instead of the normal
forward slash.

MozReview-Commit-ID: HWJjwCDHuNK

--HG--
extra : rebase_source : c9a295a22c06dcbfa60637ff6d56d6f1ca269e83
2016-11-21 11:18:59 -08:00
Ralph Giles
067cedbf09 Bug 1286799 - mozboot: Use requests to download rustup manifest. r=gps
Python urllib2 doesn't validate https origins in all versions.
During actual bootstrap the static hash values act as an out-of-bound
validatation channel.

However, that doesn't help when doing the initial download and hash
generation when invoked as `python rust.py [--update]`. Fortunately
we don't expect to be called this way in standalone mode, so we can
use the in-tree requests module to fetch things properly.

MozReview-Commit-ID: KZTtIXDfWTB

--HG--
extra : rebase_source : 14c505797a74de16a7e9bec1f791c0b4659d2932
2016-11-18 13:02:25 -08:00
Ralph Giles
430aad83b5 Bug 1286799 - mozboot: Unbuffer stdout. r=gps
Reopen sys.stdout in unbuffered mode so we can correctly print
'Checking foo... Result' in two parts without calling sys.stdout.flush()
everywhere.

Although we import print_function from the future, the python 2 version
does not support the python 3 flush=True argument.

MozReview-Commit-ID: SjliWeoSa3

--HG--
extra : rebase_source : e16905ac4045e80060d6f248cae0ec731dd0d1c5
2016-11-17 15:21:39 -08:00
Ralph Giles
1116fe76e9 Bug 1286799 - mozboot: Add a script to fetch rust installer hashes. r=gps
Make the mozboot.rust module invokable as a utility. E.g.

  python rust.py --update

When called with the --update option it downloads and generates
checksums for the latest version of the installer on supported
platforms, suitable for updating the values coded in the script.

When invoked without the --update option, it verifies the
current version and checksums against the server.

MozReview-Commit-ID: 2NVFf0ptvbM

--HG--
extra : rebase_source : 5e8b650a9b3c6e1d2b8bfdc90d02faa194f1aa04
2016-11-17 14:23:41 -08:00
Ralph Giles
f9bab2207d Bug 1286799 - mozboot: Install or upgrade rust. r=gps
Download and run a known-good rustup-init installer for the host
system. Once installed, use it to upgrade the latest toolchain.

NB: I expect the MozillaBuildBootstrapper to run its installer
first, but this will take care of Mac, Linux, and FreeBSD.

MozReview-Commit-ID: BKDm1UcLxQS

--HG--
extra : rebase_source : 4e4489d55ad658166a7e4b20c53185532c041204
2016-11-17 12:06:29 -08:00
Ralph Giles
c9139105f6 Bug 1286799 - mozboot: Ensure an up-to-date rust toolchain. r=gps
Add a check to `mach bootstrap` that a compatible version of
the rust toolchain is installed and in path. Note that we use
a separate minimum version from the one checked at configure
time, defined in build/moz.configure/rust.configure, because
this script may be running stand-alone.

If we don't find `rustc` in PATH, we check for it in CARGO_HOME
and suggest adding that to PATH.

If we don't find `rustc` but find a `rustup`, we call it with
the --version switch and report if that fails. This will detect
the older `rustup.rs` script.

MozReview-Commit-ID: EPfQhLz4Dvo

--HG--
extra : rebase_source : 2ea4acdfbfdc2a436f386eae7bc3cbcbc485aa1b
2016-11-16 09:27:32 -08:00
Ralph Giles
37961988e7 Bug 1286799 - mozboot: Use a helper for mercurial version detection. r=gps
Also use the abstracted helper method for reading the current
mercurial version too. This changes the regex from what was in
use before, but should work for normal version numbers.

MozReview-Commit-ID: IZfC65Jg6T8

--HG--
extra : rebase_source : d61a73b7b1b438d8c846523e5e1f639950fe5473
2016-11-15 17:18:21 -08:00
Ralph Giles
9416a38fd9 Bug 1286799 - mozboot: Abstract version checking. r=gps
Move version parsing to a helper method so it can be used
for more than one executable.

MozReview-Commit-ID: 4gOgdgYFbFx

--HG--
extra : rebase_source : 944f562c0d5a6a105a0c27af6f4d7dfc214f3c01
2016-11-15 14:31:59 -08:00
Chris Manchester
0723aadf51 Bug 1313379 - Fix mach bootstrap for Windows desktop artifact mode. r=gps
MozReview-Commit-ID: JqQ52K89q3H

--HG--
extra : rebase_source : b0580f19d8d53d4cf14f0016f7ecda8adeca2a66
2016-10-28 21:45:43 -07:00
Leo Schwarz
33768e74f6 Bug 1312290 - Force package extension when building AUR packages on Arch Linux. r=gps
Previously if an Arch Linux user had a different package extension configured
in `/etc/makepkg.conf` building AUR packages during bootstrap would fail.
Forcing the extension by providing it as an environment variable makes sure
building doesn't fail regarding of a user's configuration.

MozReview-Commit-ID: 4aryYS0XVr7

--HG--
extra : rebase_source : 4c466e49f729de625e814a92325c6d38e6d1e0b4
2016-10-25 10:28:59 +02:00
Andrew Halberstadt
817237ca57 Bug 1292674 - Properly set up Firefox for Android dependencies on Fedora, r=gps
This patch solves 3 problems on Fedora when trying to bootstrap Firefox for Android:

1) Installs java
2) Adds a call to android.ensure_android_packages()
3) Uses build-tools-23.0.1 which seems to be the latest on Fedora

I'm not sure why the Android specific packages are only being installed on Fedora
and not CentOS, but as I don't have CentOS distribution to play around with figured
it was best to leave that for another bug.

MozReview-Commit-ID: 19sD6tYj4V

--HG--
extra : rebase_source : eaf17bc05d606d3010b11927f27a482680266992
2016-08-26 16:04:08 -04:00
Mike Hommey
411867285a Bug 1299661 - Use hg --template flag instead of -T. r=gps
Versions of mercurial older than 3.0 don't support the -T shorthand for
the --template option. While most people should be using something
newer, it can still happen that some run an older version, and it's
still trivial to support them by using the long option.

--HG--
extra : rebase_source : 1507aea436779495045df48b044a58f4af1382be
2016-09-01 07:43:38 +09:00
Nathan Hakkakzadeh
6e14fdc87d Bug 1292715 - Added installer source code for MSYS2 and ConEmu. r=gps
Also, is a ConEmu preferences file which automatically points a newly installed ConEmu to the newly installed MSYS2.

MozReview-Commit-ID: FBeMat4SYjK

--HG--
extra : rebase_source : 83d8f03a6cc011215fe58745c93afdf90162dc58
2016-08-10 15:30:07 -07:00
Timothy Guan-tin Chien
20b7d72944 Bug 1252976 - Follow up, Update Note on Artifact Mode, r=nalexander
Contains a few sentences copied from MDN.

MozReview-Commit-ID: 2wgcCNiWkWw

--HG--
extra : transplant_source : %7B%A2%10%88%83k%AC%AE%D3%A4H/pL%E6%B9%BE-9%5E
2016-08-08 17:54:24 +08:00
Sambuddha Basu
76f610476a Bug 1252976 - Offer |mach artifact| builds in |mach bootstrap| for non-Fennec builds r=nalexander
MozReview-Commit-ID: 2lbrORiTjwH

--HG--
extra : transplant_source : %97%1C%12N%1D%B8eQ%94%F2%A1%26%AA%3F%24X%AA2%AC%12
2016-08-08 17:30:37 +08:00
Jan Beich
534b53feca Bug 1290647 - FreeBSD bootstrap: Drop pkg_add(1) support as it reached EOL downstream. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ

--HG--
extra : transplant_source : %C8E%AC%85%A4%A4%A4%7D%DDMz%95%02%FE%D7_%973%04%16
2016-07-30 06:09:54 +00:00
Jan Beich
138edf609e Bug 1290647 - FreeBSD bootstrap: Add watchman (kqueue) for fsmonitor like bug 1231989. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ

--HG--
extra : transplant_source : %E0%8Fbb%1AX8%A0%FE%80%0Db%C4%F3%85%C9%E6%C8%15z
2016-07-30 06:09:54 +00:00
Jan Beich
a562e7c4ec Bug 1290647 - FreeBSD bootstrap: Prefer GCC if base Clang is too old after bug 1286204. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ

--HG--
extra : transplant_source : FT%8F%90%1D%F86%81%A6%A1%E0%8CM%12%A6%F6%17_%CF%E7
2016-07-30 06:09:54 +00:00
Jan Beich
fb7e6844d2 Bug 1290647 - FreeBSD bootstrap: Allow non-interactive install after bug 1151834. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ

--HG--
extra : transplant_source : I%D4%D3%19%F9%ABv%1B%08%C4%B0F%D7%1C%BB%DA%18%0A%5C%C7
2016-07-30 06:09:54 +00:00
Jan Beich
c705130fec Bug 1290647 - FreeBSD bootstrap: GNU tar is required for ./mach package. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ

--HG--
extra : transplant_source : %9F0%B0%84%F2%EC1%E4M%0E%AA%B7%05U0.x%A6%E4%3D
2016-07-30 06:09:54 +00:00
Jan Beich
a5309daec2 Bug 1290647 - DragonFly bootstrap: Recent versions have unzip(1) in base system. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ

--HG--
extra : transplant_source : %27h%3A%82%F0%28%5E%00%1F%8D%C3%B5%95%A1%E4%C7t4%E5%1F
2016-07-30 06:09:54 +00:00
Jan Beich
7b316204ad Bug 1290647 - Add gconf2 to more platforms with bootstrap after bug 1167201. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ

--HG--
extra : transplant_source : %B5%1F%06MW%DF%A8%FA%D8%7B%E5%20%E8%DC%B1%24%D2%AF%7B%ED
2016-07-30 06:09:54 +00:00
Paul Adenot
8af86d2428 Bug 1287486 - Add libx11-xcb-dev to the list of required packages to build on Ubuntu, and sort the list. r=gps
MozReview-Commit-ID: GqSSpfT3vlm

--HG--
extra : rebase_source : 70eeb4090bd1bfb7f10a2d91c68bfc829ebc363a
2016-07-18 17:52:53 +02:00
Nathan Hakkakzadeh
5aa1fe6bf4 Bug 1177128 - Added bootstrapper for MozillaBuild that installs rustup. r=gps
MozReview-Commit-ID: D4DuE0Z35Cd

--HG--
extra : rebase_source : 8bb18d459a5f60ed7083e5b591558e241a89175c
2016-07-07 16:26:48 -07:00
Gregory Szorc
d46f71b8c0 Bug 1279564 - Return a 2-tuple from get_state_dir(); r=glandium
This matches the implementation from mach_bootstrap.py.

MozReview-Commit-ID: 8kZCKuIsAMQ

--HG--
extra : rebase_source : 59b1f3d595e1663603363bb712da9cb74c3ba0e0
extra : amend_source : e95774ade1c7d28ba1d880b6b9ef1d64eaa618a8
2016-06-10 09:39:29 -07:00
Gregory Szorc
95de7f06e8 Bug 1279564 - Move get_state_dir() to own module; r=glandium
We'll be consolidating code from mach_bootstrap.py and mozboot.
We don't want mach_bootstrap.py to import bootstrap.py because it
imports nearly every module under mozboot. So establish a standalone
module with minimal dependencies to hold utility code. Move
get_state_dir() there.

MozReview-Commit-ID: Hw5VB5OZGCi

--HG--
extra : rebase_source : e083f9a5d2fabea308b7b884e9830f800758ae17
extra : amend_source : 0a7b5f42a937430170fdc16909c559f720085668
2016-06-10 09:33:14 -07:00
Gregory Szorc
a8add2ef97 NO BUG - Reference hg.mozilla.org/mozilla-unified instead of /firefox
DONTBUILD (NPOTB)

MozReview-Commit-ID: CnM3AEtRjVj

--HG--
extra : rebase_source : 7c3c873beaa8355c7055ae828dee0b0d0e4ed795
2016-06-27 13:54:15 -07:00
Gregory Szorc
6011245964 Bug 1279563 - Clone unified Firefox repository; r=glandium
https://hg.mozilla.org/firefox now exists. It is a unified Firefox
repository containing the heads of all the major Firefox repos
(mozilla-central, inbound, aurora, beta, release, esrs, etc).

Having 1 unified repository is more useful and incurs less overhead
than N separate repos. We want to encourage the use of the unified
repository. So, we start cloning from it.

The unified repo on the server is configured in such a way that
manifest delta chains can become very long - over 30,000 deltas. This
can make manifest reading very slow and slow down many Mercurial
operations. The server compensates for this by setting
format.maxchainlen=10000 to limit the delta chains to 10,000.
Unfortunately, this setting is not preserved when clients do a
traditional clone: the changegroup consists of a single delta chain
and the client will use its own settings (often the default) to
break the chain. This will result in the client re-creating very long
delta chains. So, as part of initializing the new repo we configure
format.maxchainlen in its .hg/hgrc so it doesn't suffer from this
performance issue.

We could achieve the same result by passing the --config option to
`hg clone`. However, the option won't be preserved in the repo's
.hg/hgrc and subsequent `hg pull` operations could result in the
creation of very long delta chains. So we need to write the config
option in the .hg/hgrc. `hg clone` is equivalent to `hg init` +
`hg pull` anyway, so we just separate out the steps and insert a
write to .hg/hgrc in between.

We also set the "default" path (like `hg clone` would do).

DONTBUILD (NPOTB)

MozReview-Commit-ID: Fs4cz9YvdCv

--HG--
extra : rebase_source : 99e8239415f74d078c9a1a903355175cb54a8184
extra : amend_source : ee4bc9ef2b89fabdae6f14d0ab10ca12dc08b15d
2016-06-16 09:46:24 +01:00
Gregory Szorc
bf4ae47d54 Bug 1279563 - Offer to clone Firefox source repo during bootstrap; r=glandium
I've always been bothered that the one-line bootstrap configures your system
then leaves you on the hook to clone source code and configure the build
system. I'd like the bootstrap wizard to guide you through end-to-end.

This commit addresses part of the disconnect by offering to clone the
Mercurial source repository at the end of bootstrap.

We only offer to clone if we aren't running from a Firefox source checkout
(likely the one-line bootstrap invocation) and if we are in interactive
mode.

I'd like to eventually offer Git support here. Mercurial is the canonical
repo, so it makes sense to start with that.

MozReview-Commit-ID: 6TSZwxB3702

--HG--
extra : rebase_source : 5c35408a4f0e59d681ca28e5b23359c54927b513
extra : amend_source : f980b972e35a17e733e704e47efdd773b3633e45
2016-06-16 09:42:32 +01:00
Gregory Szorc
497ef8f99b Bug 1280022 - Fix gratuitous syntax error; r=me
DONTBUILD (NPOTB)
2016-06-15 23:00:16 +01:00
Gregory Szorc
84f709c221 Bug 1280022 - Search for hg.exe on Windows; r=glandium
Without this, we attempt to execute "hg" as a native Win32 program
and get the dreaded "%1 is not a valid Win32 application" error because
"hg" has a shebang and only executes inside a UNIX-like shell.

MozReview-Commit-ID: 5sUrxh1IxFC

--HG--
extra : rebase_source : b01d9b2f8ffc60da320f51a1b7e8a398781c373a
2016-06-15 22:49:11 +01:00
Gregory Szorc
f0ab95aa08 Bug 1277406 - Delete now-unused Mercurial setup wizard; r=glandium
The wizard has been ported to the version-control-tools repository
and in-tree consumers have been switched to consume it from there. This
code is now dead. Kill it.

References to the now-defunct code have been removed/updated.

MozReview-Commit-ID: 5fpCXdNIp8L

--HG--
extra : rebase_source : 6c1e2363793fe2cd3a506ce5d962788657871203
extra : histedit_source : c40d2203aaa54bbd48e4e2b46178e277dcdc2e3f
2016-06-09 13:20:53 -07:00
Gregory Szorc
854ef84c06 Bug 1277406 - Use the bootstrapper code for mach mercurial-setup; r=glandium
The Mercurial setup wizard has now been ported to the version-control-tools
repository, where it has testing and integrates better with Mercurial
configs.

The bootstrapper has been taught how to invoke the new version of the
Mercurial setup wizard.

This commit switched `mach mercurial-setup` to call the bootstrapper
code for invoking the Mercurial setup wizard from version-control-tools.
As of this commit, the Mercurial setup wizard in tools/mercurial is
unused.

MozReview-Commit-ID: 3xzgOYZWTZn

--HG--
extra : rebase_source : 56697d504ff41ad02d77ddd1241cebafe610751a
extra : histedit_source : feb7450130c447dc74e059173f5b54544c020929
2016-06-09 13:19:04 -07:00
Gregory Szorc
c67e0b8843 Bug 1277406 - Offer to configure Mercurial during bootstrap; r=glandium
If a state directory is available and we're running in interactive mode
(or have been told otherwise), we now configure Mercurial during
bootstrap.

This consists of cloning version-control-tools to the state directory
(mimicking code in `mach mercurial-setup` today) and running the
config wizard from version-control-tools.

Code for cloning/updating repositories has been stolen from
tools/mercurial/hgsetup.

As the inline TODO notes, I'd like to eventually support
configuring Git during bootstrap. Since Mercurial is the canonical VCS
for Firefox and since we already have a Mercurial setup wizard (and
don't have a Git one yet), I don't think we should block on implementing
Git support.

MozReview-Commit-ID: 1FZyWIlHZNy

--HG--
extra : rebase_source : c727017bbdc703399fa67e1d831280441026614b
extra : histedit_source : fdb124447b4e80277cfd70fb65a24e0947c89c60
2016-06-01 18:15:17 -07:00
Gregory Szorc
903cb58073 Bug 1277406 - Prompt to create the state directory; r=glandium
Currently, on first run of `mach` it prompts you to create a state
directory. The hand-off between bootstrap and `mach` has always
bothered me because bootstrap is supposed to get your system in a good
state.

In this commit, we teach the bootstrap tool to create the state
directory when not present. This duplicates functionality from `mach`.
The justification for the duplication is explained by inline comment.

In future commits, we'll build on this work to have the bootstrapper
run the Mercurial config wizard, which needs this state directory.

MozReview-Commit-ID: CPKVuRJ3peM

--HG--
extra : rebase_source : 085b67183ec4fda8a23ead3328130c962c95617d
extra : histedit_source : 3ba31232521f624bcf9d0cc5a99033083c1f3657
2016-06-01 18:33:13 -07:00
Gregory Szorc
517e7b2b60 Bug 1277406 - Move mach mercurial-setup implementation into bootstrap; r=glandium
This begins the consolidation of `mach mercurial-setup` into
`mach bootstrap`. The first step is to move the content of the
mach_commands.py file into the bootstrapper's.

I'm not crazy about adding the sys.path entry for tools/mercurial.
I intend to clean this up later.

MozReview-Commit-ID: Cq56wPG8sO1

--HG--
extra : rebase_source : 48d6d2631760c9333bf99285673430948085630e
extra : histedit_source : e062f6fbc0ae9678347801b4a1f1c9b6912afd52
2016-06-01 17:06:01 -07:00
Nathan Hakkakzadeh
db1f388642 Bug 1275437 - Moved installing of Python into an install_python method in the windows bootstrapper; r=gps
The correct version of Python will get installed from the install_python method instead of with the system packages.

This is more in-line with how a bootstrapper *should* extend from the base bootstrapper.

MozReview-Commit-ID: JIMGF7XKL02

--HG--
extra : rebase_source : dc70bdf555afe0a0dfb253e01381b5e6fa52eee3
2016-05-31 17:15:31 -07:00
Nathan Hakkakzadeh
452a80bc35 Bug 1275437 - Fixed some offending version checks that were inhereted from the BaseBootstrapper r=gps
Overrode BaseBootstrapper.which to append '.exe' to any which checks since (hopefully) anything the bootstrapper looks for, must be a windows executable.

Changed base bootstrapper class to use str instead of unicode to avoid a bug in the MinGW version of Python where subprocces.Popen will not accept environment variables that are in unicode instead of str.

MozReview-Commit-ID: 4m8xNifawYS

--HG--
extra : rebase_source : 455b518b099fdba347626ab93b85ddbd44f1f977
2016-05-31 11:20:34 -07:00
Nathan Hakkakzadeh
ee6484c3fa Bug 1275437 - Added installing of Mercurial to Windows boostrapper. r=gps
Added convenience method for installing from pip.

Windows bootstrapper implements upgrade_mercurial to install mercurial from pip.

MozReview-Commit-ID: ClqNA2NmQcc

--HG--
extra : rebase_source : 8107bbca70b0e1e6208cc37f114ad524472174b8
2016-05-26 10:38:58 -07:00
Nathan Hakkakzadeh
3567dafbb6 Bug 1275437 - Windows bootstrapper installs necessary system and browser packages that come from pacman. r=gps
Windows bootstrapper checks if pacman is installed before continuing.

Added a convenience method similar to BaseBootstrapper.which that works with the mingw version of python in msys2.

MozReview-Commit-ID: 6AG2c18KF0U

--HG--
extra : rebase_source : a76fecf19d81d05e1515647b60f118c590dd3518
2016-05-26 09:53:14 -07:00
Nathan Hakkakzadeh
a1591449e7 Bug 1275437 - Added methods for interacting with pacman. r=gps
These new convenience methods let the bootstrapper update the local package list, upgrade all installed packages, and install new packages.

MozReview-Commit-ID: KZPyBl0OU6Z

--HG--
extra : rebase_source : 6a345b5e0cce7c0095dc1213d6609c1ca6a58920
2016-05-26 09:50:02 -07:00
Nathan Hakkakzadeh
7bfde45213 Bug 1275437 - Added placeholder for Windows bootstrapper. r=gps
Created a WindowsBootstrapper class that raises a NotImplementedError when initialized.

As WindowsBootstrapper is implemented, set $MOZ_WINDOWS_BOOTSTRAP to '1' in your environment to test it.

Bootstrapper now detects if the system is being run on Windows, and if it is dispatches to the WindowsBootstrapper.

MozReview-Commit-ID: 3x6PDPuLtzs

--HG--
extra : rebase_source : 250232493a19f20cf3c2218618373cd9ae4b966f
2016-05-25 16:32:09 -07:00
Sebastian Kaspari
8a40b11133 Bug 1247047 - Update build tools to 23.0.3 and Google Play Services to 8.4.0. r=ahunt
MozReview-Commit-ID: 3KZfrc4SL2D

--HG--
extra : rebase_source : bb9844047b01909ac5e9972db844732042389635
2016-05-23 17:46:06 +02:00
Gregory Szorc
dd8c6db496 Bug 1267781 - Bump modern Mercurial version to 3.7.3; r=smacleod
These variables specify a version of Mercurial that is considered
modern and won't trigger giant warnings about being out of date.

We bump to 3.7.3 because 3.7.3 contains security fixes and it is
important for as many users as possible to get these security fixes.

We also update the messaging to indicate security issues with older
releases.

MozReview-Commit-ID: H4utKINrW0V

--HG--
extra : rebase_source : 5247fec94d7df351ef3c7bb2aa60396bb19a6196
extra : amend_source : 70b9aa52cde71d11e2b6d65a1a83567b8a0c7965
2016-04-26 12:11:29 -07:00
Nathan Hakkakzadeh
eeb05c1181 Bug 1257095 - Bootstrapper now checks if Python interpreter is version 2.6 or 2.7 so users get a readable error instead of a stack trace. r=gps
Should be a stopgap until bootstrapper is ported to Python 3.

MozReview-Commit-ID: 2NNC3jMftr9

--HG--
extra : rebase_source : 9d903dc0830369a84206c56136fb90006f9ad842
2016-05-24 15:49:49 -07:00
Nathan Hakkakzadeh
6a2720b1c2 Bug 1042068 - Added terminal-notifier to the list of packages that should be installed with homebrew. r=gps
Before, ./mach build would try to use terminal-notifier after building, but would not be able to since it isn't installed.

MozReview-Commit-ID: 4oBAVfOdcNs

--HG--
extra : rebase_source : 0930e9d4dc038e59f18beb85b4911552c76c0eed
2016-05-23 16:13:38 -07:00
Nathan Froyd
be0c08d89e Bug 1260208 - part 4 - update mozboot's android NDK URL for r11b and above; r=nalexander 2016-05-03 09:13:49 -04:00
Nathan Froyd
276caac476 Bug 1260749 - quiet unpacking of Android SDK and NDK downloads; r=nalexander
We send the output to /dev/null or equivalent, but there's no need to
generate a bunch of extraneous output and consume cycles unnecessarily.
2016-03-30 10:46:14 -04:00
Timothy Guan-tin Chien
ebce64ec9e Bug 1257783 - mach-bootstrap: ask git user to clone hg.mozilla.org with git-cinnabar. r=gps
MozReview-Commit-ID: 8lkPECJCpEz

--HG--
extra : rebase_source : 835b76638071d8410ac0ed22709092e31cb8bb4f
2016-03-22 11:05:50 +08:00
Jeff Walden
c3119c2802 Bug 1254908 - ./mach bootstrap doesn't work on CentOS/Fedora when it attempts to upgrade Mercurial. r=gps
--HG--
extra : rebase_source : f50e41ad8ea90e74ff3e20b176113061f36057c6
2016-03-10 14:55:34 -08:00
Nick Alexander
c531d30275 Bug 1221200 - Post: Change formatting and ordering. r=me
On a CLOSED TREE because DONTBUILD NPOTB

MozReview-Commit-ID: 56vyz2CRJsU

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

--HG--
extra : rebase_source : aab9128e2db247260777d32fe420ea06223e05bc
extra : histedit_source : de59158bcbf80671a03f534eafb4ac607e91ae37
2016-02-27 17:01:31 +05:30
Quentin Headen
bdcc3ae825 Bug 1251810 - Update Arch pacman -U command in bootstrap to handle --no-interactive; r=gps
DONTBUILD (NPOTB)

MozReview-Commit-ID: GsFS39CNx8V

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

MozReview-Commit-ID: 6WDykc20TKf

--HG--
extra : rebase_source : 90c43d31e8f27a6bff9df6c76113e9b038185d99
2016-02-25 11:11:39 -08:00
Gregory Szorc
e1090839ad Bug 1245684 - Download bootstrap files via a zip archive; r=mshal
This will perform a single HTTP request that completes in <1s. Contrast
with before when we performed multiple HTTP requests and the process
took several seconds.

DONTBUILD (NPOTB)

MozReview-Commit-ID: DjX3LBdSOIk

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

DONTBUILD (NPOTB)

--HG--
extra : commitid : HowMKbWsoTt
extra : amend_source : 9c6fd75da6d521845d561e04350b2e82dccf2b38
2016-02-05 10:51:41 -08:00