Commit graph

9 commits

Author SHA1 Message Date
UK992
a79dfd054f Bootstrap: Fix cmake version parsing 2017-05-09 22:38:12 +02:00
Aneesh Agrawal
022f0aa34a Remove more deprecated Windows GNU code/docs 2017-04-16 22:12:17 -04:00
Aneesh Agrawal
40c70bfb28 Allow bootstrapping on Debian 2017-04-12 15:36:06 -04:00
Aneesh Agrawal
0a9a43aa31 Add env var for local saltfs root during bootstrap 2017-04-12 02:00:14 -04:00
UK992
e3654e14c5 Update cmake to 3.7.2 2017-04-11 23:34:13 +02:00
ddh
e527c9a991 Update Hyper and OpenSSL 2017-03-31 16:32:21 +02:00
UK992
f21d448530 Mach bootstrap: Improve and support more platforms 2017-02-08 19:53:48 +01:00
Aneesh Agrawal
b4f5086305 Add a Salt bootstrapper
The Salt bootstrapper invokes Salt during `./mach bootstrap`
to install Servo's build dependencies.
It uses salt-call pinned to the same version of Salt as used in saltfs.

Currently, the implementation uses gitfs and reads directly from
the master branch of the saltfs repo;
in the future this should be changed when the relevant Salt states
are moved in-tree as part of Dockerization for TaskCluster.

We have not Salted our Windows machines, so the existing Windows
bootstrappers are retained. Currently this is only tested on
Ubuntu Trusty.

Salt uses various system python libraries,
including `python-apt` on Debian-based OSes to interact with apt.
`python-apt` does not seem to be installable via a requirements.txt
file, and the versions available on PyPI are far behind the versions
installed on actual Ubuntu machines.
Additionally, adding `python-apt` as an unconditional python dependency
would add bloat for users of other OSes, and lead to more churn
as additional OSes are supported.
However, as `python-apt` is already installed via apt on these machines,
we can allow Salt to instead use the module by using
`--system-site-packages` for the python virtualenv.
We also add the `-I` flag to `pip install` to ensure we have a local,
untouched copy of any other python packages used.
However, because this prints system-level Python packages in scope,
it slightly breaks isolation, so it is important to always pin
all dependencies in the requirements files.
2017-01-17 11:01:09 -05:00
Aneesh Agrawal
60a1503b29 Clean up and simplify existing mach bootstrap
- Default to interactive mode and remove the `--interactive` flag
- Use `--force` to skip interactivity
- Change MSVC dependency storage organization on disk: put each version
  into its own folder and directly refer to the versioned folders,
  providing immutability and making the installation list redundant
- Reuse `host_triple()` function to fix broken bootstrapper dispatching
- Simplify code:
  - Remove or inline many unused and redudant functions and variables
  - Prefer plain functions to classes
  - Consolidate into fewer files, remove unnecessary bootstrapper/ dir
- Improve Python style
- Sort dependency list
2017-01-15 15:41:37 -05:00