Commit graph

550 commits

Author SHA1 Message Date
Ms2ger
296fa2512b Update web-platform-tests and CSS tests.
- Update CSS tests to revision e05bfd5e30ed662c2f8a353577003f8eed230180.
- Update web-platform-tests to revision a052787dd5c069a340031011196b73affbd68cd9.
2017-02-06 22:38:29 +01:00
UK992
b6b96322c1 Remove freetype dependency on Windows 2017-02-06 02:28:54 +01:00
Simon Sapin
e273ecce4c Option configuration to enable incremental compilation.
https://internals.rust-lang.org/t/incremental-compilation-beta/4721
2017-02-05 14:45:00 +01:00
bors-servo
bc5004b05c Auto merge of #15138 - mdevlamynck:software-flag, r=jdm
Allow running servo in software rendering mode from ./mach run

<!-- Please describe your changes on the following line: -->
This adds a flag to ./mach run to use software rendering on Linux (through the LIBGL_ALWAYS_SOFTWARE env var).

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #14982.

<!-- Either: -->
- [X] These changes do not require tests because like said in the issue "There's no way to add automated tests for this".
<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/15138)
<!-- Reviewable:end -->
2017-01-26 14:43:21 -08:00
Josh Matthews
f29e01c5ad Make test-wpt-failure smoketest work again. 2017-01-24 13:33:45 -05:00
Matthias Devlamynck
a465fbb87a Allow running servo in software rendering mode from ./mach run 2017-01-21 18:15:42 +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
Aneesh Agrawal
ef900cbdcb Avoid hardcoded references to rustc in download()
Use the `desc` parameter instead to make the error messages
customized for the actual download.

Also use new-style format strings.
2017-01-15 15:26:13 -05:00
Aneesh Agrawal
02b054ec9e Create a util.py Python module for common functions
Extracting these functions helps avoid circular dependencies,
and make them easier to find/reuse.
2017-01-15 15:21:35 -05:00
Aneesh Agrawal
5b8d783f4c Remove unusable --android flag for mach bootstrap
`mach` can't do any bootstrapping for Android, so the flag is useless.
2017-01-14 00:10:50 -05:00
Simon Sapin
16d8c35be4 Add config to do desktop notifications by running an abitrary command. 2017-01-13 20:47:54 +01:00
Manish Goregaokar
bf11fe3531 Expand ~ in --with-gecko for ./mach build-geckolib 2017-01-09 13:19:57 -08:00
Simon Sapin
93f66ab0cc mach test-unit: also pass extra arguments to style_tests harness 2017-01-09 19:35:00 +01:00
UK992
c697ae4626 Package: Restore run-servo script on MacOS 2017-01-06 03:30:53 +01:00
UK992
7048a2f81d Package: Create ZIP on Windows 2017-01-06 03:30:29 +01:00
bors-servo
955e2851bf Auto merge of #14706 - faineance:test_unit_no_capture, r=Wafflespeanut
Allow passing --nocapture argument to test-unit mach command

This adds the ` --nocapture` argument to the test-unit mach command.
Defaulting to false, when given it passes `-- --nocapture` to cargo test to show stdout during test-unit runs.

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #14595

<!-- Either: -->
- [ ] There are tests for these changes OR
- [ ] These changes do not require tests because _____

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14706)
<!-- Reviewable:end -->
2017-01-03 00:36:13 -08:00
faineance
46291fd998 Add nocapture argument to test-unit 2017-01-03 13:54:31 +05:30
Ravi Shankar
b061ada836 Fix browserhtml path 2017-01-03 13:05:13 +05:30
Teodor Szente
48df976bcd Move get_browserhtml_path to command_base #14815
Remove unused import of find_dep_path_newest #14815

Move get_browserhtml_path top along with find_dep_path_newest #14815
2017-01-02 16:39:20 +02:00
UK992
fe7cb599a0 Package: Small cleanup 2016-12-29 19:21:18 +01:00
UK992
736559887b Package: Move Android packaging to target dir
Fixes #13800
2016-12-29 19:19:05 +01:00
UK992
01c7ac785b Package: Set shell.homepage to browserhtml
Closes #12154
2016-12-29 19:19:03 +01:00
UK992
456900b4ef Package: Simplify getting browserhtml path 2016-12-29 19:19:01 +01:00
UK992
7eb4d7a9a7 Package: Merge changed prefs from package-prefs.json to prefs.json 2016-12-29 19:18:57 +01:00
bors-servo
7f2da7483b Auto merge of #14346 - mati865:master, r=UK992,larsberg
Use MSVC toolchain if PLATFORM is defined

<!-- Please describe your changes on the following line: -->
`VSInstallDir` exists only when Visual Studio is installed.
`VS140COMNTOOLS` is defined by installing either Visual Studio or [Visual C++ Build Tools](http://landinghub.visualstudio.com/visual-cpp-build-tools)

It will allow to build MSVC based Servo without having to install whole Visual Studio (few GiB).

EDIT: Another (maybe cleaner) solution would be reverting 63ec96a57d

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [ ] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [ ] These changes fix #__ (github issue number if applicable).

<!-- Either: -->
- [ ] There are tests for these changes OR
- [x] These changes do not require tests because `VS140COMNTOOLS` variable is already used in [mach.bat](https://github.com/servo/servo/blob/master/mach.bat)

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14346)
<!-- Reviewable:end -->
2016-12-28 07:37:45 -08:00
Emilio Cobos Álvarez
193421969d
stylo: Copy binding files even if the build failed.
It's easier to stash the changes away than to find the generated files.
2016-12-25 01:41:07 +01:00
Xidorn Quan
3633384f10 Update atoms when build geckolib with gecko 2016-12-16 17:02:25 +11:00
bors-servo
44af5ea2e4 Auto merge of #14601 - Wafflespeanut:osmesa, r=emilio
Raise warning when OSMesa path is not set

In Ubuntu 14.04, I still get crashes due to non-existence of OsMesa library (#13515). It turned out that sometimes I have paths like `osmesa-src-<hash>` without `out/lib/gallium`. Now, we raise a warning whenever we don't find a proper path.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors

<!-- Either: -->
- [x] These changes do not require tests because it's related to mach.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14601)
<!-- Reviewable:end -->
2016-12-15 07:42:30 -08:00
Ravi Shankar
000d46490e Warn when OSMesa library path cannot be set 2016-12-15 18:53:14 +05:30
bors-servo
d6788a5048 Auto merge of #13650 - UK992:win32, r=larsbergstrom
Define NATIVE_WIN32_PYTHON environment variable

r? @Wafflespeanut or @larsbergstrom

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

<!-- Reviewable:start -->

---

This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13650)

<!-- Reviewable:end -->
2016-12-15 05:14:16 -08:00
Xidorn Quan
af487f5730 Auto-update in-tree bindings 2016-12-15 21:33:14 +11:00
bors-servo
75c869d508 Auto merge of #14251 - vvuk:servobuild-rustflags, r=ConnorGBrewster
Support build.rustflags in .servobuild

Add ability to specify rustflags in .servobuild.

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14251)
<!-- Reviewable:end -->
2016-12-13 16:55:12 -08:00
bors-servo
ced1199c61 Auto merge of #14531 - UK992:win32-installer, r=larsbergstrom
Various Windows installer fixes and improvements

r? @metajack or @larsbergstrom

---
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14531)
<!-- Reviewable:end -->
2016-12-12 13:07:25 -08:00
Xidorn Quan
1cefd1bef0 Do build-time bindgen
Majority of build_gecko.rs is just the straightforward conversion from
regen.py. There are two differences that:
1. Side in whitelist is changed to mozilla::Side
2. std::atomic__My_base is added to opaque types for Windows
2016-12-10 00:33:41 -10:00
UK992
10cf2e1f39 Add Windows support for mach install 2016-12-10 02:04:41 +01:00
bors-servo
4cb3404c09 Auto merge of #13845 - birryree:package-under-target-profile-dirs, r=aneeshusa
Part of #13551 - Create packages under release/debug directories as appropriate

r? @aneeshusa

This change implements fixes for #13551 for Linux and MacOS targets.

`/python/servo/package_commands.py` was modified so that:
- On MacOS, it creates all intermediate packaging directories like `dmg`, `brew`, and `brew-tmp` under `target/(release|debug)`, rather than in `target` directly.
- On MacOS, all packaging artifacts (`.dmg`, brew `.tar.gz`) are packaged under `target/(release|debug)`, rather than in `target` directly.
- On Linux, the resulting `tar.gz` Servo package is placed under `target/(release|debug)`, rather than in `target`.
- Also did some extra cleanup around path parsing in the MacOS packaging code, to use `os.path` methods rather than straight `'/'` parsing with `split` and `join` where it was applicable.

`/etc/ci/upload_nightly.sh` was modified to:
- Look for artifacts in `target/release` for `mac`, `macbrew`, and `linux` platforms, rather than just `target/`.

---

<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [x] `./mach build -d` does not report any errors
- [x] `./mach test-tidy` does not report any errors
- [x] These changes fix #13551
- [x] These changes do not require tests because it is based on CI and packaging tools. They were manually tested for correctness.

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

…lease/debug as specified or detected. Modify macos packaging to create all packages under release/debug directory. Updated etc/ci/upload_nightly.sh to support uploading from either release/debug directory, depending on what was built

<!-- Reviewable:start -->

---

This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/13845)

<!-- Reviewable:end -->
2016-12-09 14:46:14 -08:00
William Lee
6a7fb6cd2b Package macos/Linux builds under release/debug dirs
This commit updates the 'mach package' command to generate output
under the target/release and target/debug directories when run on
macOS and Linux.

etc/ci/upload_nightly.sh has also been updated to upload packages from
the release/debug directories.
2016-12-09 15:28:39 -05:00
William Lee
d4e986023a Cleanup path manipulations under macOS/Linux
Path manipulation has been changed from using '/' to using
os.path functions for packaging code for macOS and Linux targets.
2016-12-09 15:28:29 -05:00
mati865
02b2b9ccbc use MSVC toolchain if PLATFORM is defined 2016-12-07 19:10:13 +01:00
Simon Sapin
f5af40d694 Upgrade to cargo 0.16.0-nightly (built 2016-12-06)
Instead of once per day (or night) with a date in the URL,
Cargo binaries are now built and published for every merge to master
(with the merge commit hash in the URL).
2016-12-06 12:40:40 -10:00
bors-servo
bd5eef58a2 Auto merge of #14379 - kimsnj:run-headless, r=jdm
Use software rendering when running servo in headless mode

<!-- Please describe your changes on the following line: -->
Properly setting environment to use OsMesa in headless mode.

---
<!-- Thank you for contributing to Servo! Please replace each `[ ]` by `[X]` when the step is complete, and replace `__` with appropriate data: -->
- [X] `./mach build -d` does not report any errors
- [X] `./mach test-tidy` does not report any errors
- [X] These changes fix #13515

<!-- Either: -->
- [ ] There are tests for these changes OR
- [X] These changes do not require tests because I manually ran: `./mach run -d tests/html/about-mozilla.html -z`

<!-- Pull requests that do not address these steps are welcome, but they will require additional verification as part of the review process. -->

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14379)
<!-- Reviewable:end -->
2016-12-03 07:55:24 -08:00
Shing Lyu
ddd03229e0 Add an option to submit test-perf result to perfherder 2016-12-01 10:23:27 +08:00
Manish Goregaokar
38474f8671 Use intermittents tracker on build.s.o 2016-11-30 14:03:31 -08:00
Manish Goregaokar
c23ea67af7 Add a log of only intermittents 2016-11-28 16:46:33 -08:00
bors-servo
4021d057c9 Auto merge of #14331 - Manishearth:filter-intermittents, r=larsbergstrom,jdm
Add ./mach filter-intermittents for catching intermittents on CI

cc @metajack

The plan here is to run this on the error summary of the logs after each WPT/CSS run, as `./mach filter-intermittents wpt-errorsummary.log --output filtered-errorsummary.log --auth /path/to/authfile`

The `filtered-errorsummary.log` file will be a buildbot artifact for this run, and can be used for updating test results.

We change WPT/CSS runs to not cause test failures on Buildbot; instead; the test failure will be caused by this job.

We should at some point add a separate highfive task which ccs the appropriate bugs and tracks consistent failures. (We can change mach filter-intermittents to output a second file of intermittents matched to bug numbers to make this easy)

A small issue with this is that this simple task might mask failures of the WPT harness itself. We have a separate test that tests if the test harness works though. (This test will fail if the log files it requires don't exist, perhaps that's enough to solve the problem)

r? @larsbergstrom

<!-- Reviewable:start -->
---
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14331)
<!-- Reviewable:end -->
2016-11-28 15:18:04 -08:00
Manish Goregaokar
f42ce6de92 Use log- prefix for filtered log arg so that buildbot picks it up and uploads as an artefact 2016-11-28 14:28:30 -08:00
Manish Goregaokar
c0c65ea637 Use jdm's tracker 2016-11-28 13:29:10 -08:00
Manish Goregaokar
4f021d3c53 Run filter-intermittents on buildbot 2016-11-28 10:15:19 -08:00
bors-servo
eb7032f6dd Auto merge of #14381 - servo:workspaces, r=SimonSapin
Move to Cargo workspaces

<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="34" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/14381)
<!-- Reviewable:end -->
2016-11-28 01:44:40 -08:00