Commit Graph

167 Commits

Author SHA1 Message Date
Andrew Halberstadt
776ae74e08 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
2016-08-26 16:04:08 -04:00
Mike Hommey
3e797e02a1 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.
2016-09-01 07:43:38 +09:00
Nathan Hakkakzadeh
bf30813142 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
2016-08-10 15:30:07 -07:00
Timothy Guan-tin Chien
f24f349899 Bug 1252976 - Follow up, Update Note on Artifact Mode, r=nalexander
Contains a few sentences copied from MDN.

MozReview-Commit-ID: 2wgcCNiWkWw
2016-08-08 17:54:24 +08:00
Sambuddha Basu
59d4daee0c Bug 1252976 - Offer |mach artifact| builds in |mach bootstrap| for non-Fennec builds r=nalexander
MozReview-Commit-ID: 2lbrORiTjwH
2016-08-08 17:30:37 +08:00
Jan Beich
9505593765 Bug 1290647 - FreeBSD bootstrap: Drop pkg_add(1) support as it reached EOL downstream. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ
2016-07-30 06:09:54 +00:00
Jan Beich
42912b8018 Bug 1290647 - FreeBSD bootstrap: Add watchman (kqueue) for fsmonitor like bug 1231989. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ
2016-07-30 06:09:54 +00:00
Jan Beich
88d0f9008b Bug 1290647 - FreeBSD bootstrap: Prefer GCC if base Clang is too old after bug 1286204. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ
2016-07-30 06:09:54 +00:00
Jan Beich
7752e35f09 Bug 1290647 - FreeBSD bootstrap: Allow non-interactive install after bug 1151834. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ
2016-07-30 06:09:54 +00:00
Jan Beich
c67a1b3798 Bug 1290647 - FreeBSD bootstrap: GNU tar is required for ./mach package. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ
2016-07-30 06:09:54 +00:00
Jan Beich
839b54e7d4 Bug 1290647 - DragonFly bootstrap: Recent versions have unzip(1) in base system. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ
2016-07-30 06:09:54 +00:00
Jan Beich
9690d9785e Bug 1290647 - Add gconf2 to more platforms with bootstrap after bug 1167201. r=glandium
MozReview-Commit-ID: 36Yn6n5bOeQ
2016-07-30 06:09:54 +00:00
Paul Adenot
7dffe52dbd 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
2016-07-18 17:52:53 +02:00
Nathan Hakkakzadeh
b52449e85e Bug 1177128 - Added bootstrapper for MozillaBuild that installs rustup. r=gps
MozReview-Commit-ID: D4DuE0Z35Cd
2016-07-07 16:26:48 -07:00
Gregory Szorc
e03a4fb32b Bug 1279564 - Return a 2-tuple from get_state_dir(); r=glandium
This matches the implementation from mach_bootstrap.py.

MozReview-Commit-ID: 8kZCKuIsAMQ
2016-06-10 09:39:29 -07:00
Gregory Szorc
3f541f0b01 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
2016-06-10 09:33:14 -07:00
Gregory Szorc
43714e27d4 NO BUG - Reference hg.mozilla.org/mozilla-unified instead of /firefox
DONTBUILD (NPOTB)

MozReview-Commit-ID: CnM3AEtRjVj
2016-06-27 13:54:15 -07:00
Gregory Szorc
2e68a22a74 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
2016-06-16 09:46:24 +01:00
Gregory Szorc
9862e342da 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
2016-06-16 09:42:32 +01:00
Gregory Szorc
e0eca9a0fe Bug 1280022 - Fix gratuitous syntax error; r=me
DONTBUILD (NPOTB)
2016-06-15 23:00:16 +01:00
Gregory Szorc
0e58cee098 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
2016-06-15 22:49:11 +01:00
Gregory Szorc
6a28f5d6b0 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
2016-06-09 13:20:53 -07:00
Gregory Szorc
193b7b97ba 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
2016-06-09 13:19:04 -07:00
Gregory Szorc
33a4b901df 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
2016-06-01 18:15:17 -07:00
Gregory Szorc
550986f0c2 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
2016-06-01 18:33:13 -07:00
Gregory Szorc
1c97d4988c 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
2016-06-01 17:06:01 -07:00
Nathan Hakkakzadeh
48f45ea515 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
2016-05-31 17:15:31 -07:00
Nathan Hakkakzadeh
5127e6b5c5 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
2016-05-31 11:20:34 -07:00
Nathan Hakkakzadeh
a2a8c571a5 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
2016-05-26 10:38:58 -07:00
Nathan Hakkakzadeh
f79ebffd1b 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
2016-05-26 09:53:14 -07:00
Nathan Hakkakzadeh
02df67a242 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
2016-05-26 09:50:02 -07:00
Nathan Hakkakzadeh
e9f23fc10d 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
2016-05-25 16:32:09 -07:00
Sebastian Kaspari
db27e38d5d Bug 1247047 - Update build tools to 23.0.3 and Google Play Services to 8.4.0. r=ahunt
MozReview-Commit-ID: 3KZfrc4SL2D
2016-05-23 17:46:06 +02:00
Gregory Szorc
33903a39db 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
2016-04-26 12:11:29 -07:00
Nathan Hakkakzadeh
f0174bc40b 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
2016-05-24 15:49:49 -07:00
Nathan Hakkakzadeh
8597708970 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
2016-05-23 16:13:38 -07:00
Nathan Froyd
ac78dbb773 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
8c43779224 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
f0b2926e70 Bug 1257783 - mach-bootstrap: ask git user to clone hg.mozilla.org with git-cinnabar. r=gps
MozReview-Commit-ID: 8lkPECJCpEz
2016-03-22 11:05:50 +08:00
Jeff Walden
49b34643ce Bug 1254908 - ./mach bootstrap doesn't work on CentOS/Fedora when it attempts to upgrade Mercurial. r=gps 2016-03-10 14:55:34 -08:00
Nick Alexander
82613fd940 Bug 1221200 - Post: Change formatting and ordering. r=me
On a CLOSED TREE because DONTBUILD NPOTB

MozReview-Commit-ID: 56vyz2CRJsU
2016-03-07 12:47:34 -08:00
Sambuddha Basu
962c9adbde Bug 1221200 - Offer Fennec artifact builds in |mach bootstrap|. r=nalexander
MozReview-Commit-ID: D2dw6qfPa5k
2016-02-27 17:01:31 +05:30
Quentin Headen
11516eddf6 Bug 1251810 - Update Arch pacman -U command in bootstrap to handle --no-interactive; r=gps
DONTBUILD (NPOTB)

MozReview-Commit-ID: GsFS39CNx8V
2016-02-29 13:32:18 -08:00
Quentin Headen
8d423e3eef Bug 1251352 - Respect --no-interactive during Arch bootstrap; r=gps 2016-02-25 11:47:58 -08:00
Sambuddha Basu
66ddaae2b0 Bug 1169089 - Merge CentOS and Fedora bootstrap code; r=gps
DONTBUILD (NPOTB)

MozReview-Commit-ID: 6WDykc20TKf
2016-02-25 11:11:39 -08:00
Gregory Szorc
3b8435200b 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
2016-02-09 14:41:32 -08:00
Phil Ringnalda
1f9aedd6ef Merge m-c to f-t 2016-02-05 19:45:14 -08:00
Gregory Szorc
975cd9ca34 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)
2016-02-05 10:51:41 -08:00
Gregory Szorc
e5eb77d4ba Bug 1246025 - Install python2-devel package on Fedora; r=mshal
We need this package to build psutil and other Python packages with C
extensions.

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

DONTBUILD (NPOTB)
2016-02-05 12:33:13 -08:00
Gregory Szorc
f4cf05f41b Bug 1246033 - Reference unambiguous git package on Gentoo; r=mshal
"git" is ambiguous between dev-ruby/git and dev-vcs/git.
2016-02-05 12:31:52 -08:00