Commit Graph

139 Commits

Author SHA1 Message Date
Maciej Kożuszek
bebcc0ea7a mach: Add yes installation cofirmation flag to bootstrap command (#41086)
Implements #40502 

Adds `--yes` flag to mach bootstrap command which confirms installation
of all required packages.
Unlike `--force` flag (which also does that) it does NOT reinstall all
packages but only confirms them (if required at all).

Test on Ubuntu 24.04.2 LTS by removing safe development packages like
`libgstrtspserver-1.0-dev libges-1.0-dev gstreamer1.0-tools` and run
`mach bootstrap` twice to observe if `--yes` flags automatically install
all dependencies.
With this flag all dependencies were installed with any interaction but
removing some dependencies and running `./mach bootstrap` prompted me to
confirm `apt-get install` action.

---------

Signed-off-by: MCozhusheck <mackozuszek@gmail.com>
2025-12-08 13:39:02 +00:00
Jonathan Schwender
6781909bdb CI: skip nextest installation if not required. (#39949)
Add --skip-nextest parameter to bootstrap and apply it where nextest is
not required.

Testing: Not tested.
Fixes: #39942

Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
2025-10-17 08:24:26 +00:00
Jerens Lensun
a4fdbe8be3 mach: add type annotation in function for 'python/servo' folder (#38592)
This part of function strictly typed in python by adding ANN rule in
ruff, similiar to #38531.

Testing: `./mach test-tidy`
Fixes: Not related to any issues

---------

Signed-off-by: Jerens Lensun <jerensslensun@gmail.com>
2025-08-15 10:37:24 +00:00
Jerens Lensun
93d234d270 mach: Add type check on python/servo directory (#38085)
Introduce `python/servo` folder in pyrefly type checker

Testing: Manual testing via `./mach test-tidy` command

---------

Signed-off-by: Jerens Lensun <jerensslensun@gmail.com>
2025-07-28 04:16:08 +00:00
zefr0x
c96de69e80 Use ruff to enforce python code formatting (#37117)
Requires servo/servo#37045 for deps and config.

Testing: No need for tests to test tests.
Fixes: servo/servo#37041

---------

Signed-off-by: zefr0x <zer0-x.7ty50@aleeas.com>
2025-05-26 11:54:43 +00:00
Sebastian C
27c8a899ea Replace hsts preload list hashmap with an FST (#37015)
This reduces the memory used by the preload list to just 1.9MB. The
total memory savings in HSTS from
pre-103cbed928
is now 62MB, or 96%. And in terms of total resident memory is a 7.5%
reduction. The DAFSA/DAWG used by Firefox is 1.1MB so there could be
additional gains available but this seems like the best option based on
maintained libraries available (I could not find a good maintained
library for DAFSAs in Rust).

The main trick is this: the FST map API is currently designed to map
byte sequences to u64 values. Because we only need to determine if a
preloaded domain has the `includeSubdomains` flag set, we encode that
into the lowest bit of the ids in the map. This way finding an entry in
the map directly provides us with the `includeSubdomains` flag and we
don't need to keep another mapping in memory or on disk.

Updated the `./mach update-hsts-preload` command to generate the new FST
map file. (Not sure if I need to update any dev-dependencies anywhere
for this change)

This change also replaces the use of "mozilla.org" with "example.com" in
the HSTS unit tests to make sure that entries in the preload list do not
influence the tests (since example.com should not ever end up on the
preload list)

Testing: Updated unit tests
Fixes: #25929

---------

Signed-off-by: Sebastian C <sebsebmc@gmail.com>
2025-05-20 04:26:55 +00:00
Gae24
68246df89e fix clean-cargo-cache command (#33408)
Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
2024-09-11 17:32:01 +00:00
Martin Robinson
e331cc67c3 mach: Expose a --skip-static-analysis to mach boostrap (#32587)
This should speed up runners which just need to run the WPT tests.

Fixes #32582.
2024-06-24 17:13:09 +00:00
Martin Robinson
4a12c06309 bootstrap: Add a --skip-platform option (#32176)
This allows installign `taplo` and `crown` when you are installing
dependencies manually.
2024-04-29 15:29:11 +00:00
Mukilan Thiyagarajan
d7de206dbd Preliminary Android build support (#31086)
* Android build

* Fixes
* More fixes
  - Still failing in the linking step
* More work on getting linking working

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: use mozjs with ndk r25c. loads servo.org

more android build fixes.

* fix ./mach run for android and make it follow logs

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* add experimental logic for compositor pause/resume

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* pass DPI from android to simpleservo

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* ci: add android workflow

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* switch to ANDROID_SDK_ROOT and ANDROID_NDK_ROOT vars

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade gradle to 4.10.1

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade to gradle 5.1.1

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade to gradle 8 and agp 8

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* make compositing work again with external present

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: improve mach support for non-NixOS and CI

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fix sampler compilation bug introduced in #30490

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* ci: add android build to main workflow

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* gradle: set MinSdk = targetSdk = 30

NDK requires we compile against the minSdk API level
which is 30 in our case.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* add instructions for android in README.md

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: move servosurface to servoview

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: uncomment the mediasession callbacks on MainActivity

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: fix crash on MainAtivity.onDestroy

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: drop VR, arm 5 and unused code

This commit drops:
* support for google, oculusvr
* support for arm5 architecture

and also removes
* fakeld scripts
* unused java code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* cleanup shell.nix

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: add FIXMEs for gstreamer code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* apk: remove commented code and debug logs

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* cleanup ServoView.java

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* mach: comment call to download gstreamer deps for android

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* disable bluetooth for jniapi as blurdroid is broken

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fixup! README.md

* fixup! remove change in Cargo.toml

* fixup! move shell variables together

* fixup! cleanup jniapi/Cargo.toml comments

* delete commented gstreamer related android code

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* remove unused config variable in servbuild

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: more cleanup

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* force no_static_freetype only for android

* use actions to manage sdk, ndk and java

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* rename embedder event names to be more clear.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* link to startup crash issue

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fix lint issues

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* upgrade env_logger to 0.10 with duplicate exception

libservo and android_logger can use env_logger 0.10
but quickcheck is still stuck on 0.8 and has not seen
any activity in the last 2 years. This commit adds
a duplicate exception until the quickcheck dependency
can be upgraded (or replaced)

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* android: fix comments

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* disable jemalloc on android

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>

* fixup! replace linux with android in cfg

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-01-22 13:00:15 +00:00
Martin Robinson
f5627ce4cc Remove __future__ imports that are no longer necessary (#30661)
These are no longer necessary as we always use Python 3.
2023-11-02 12:01:10 +00:00
Martin Robinson
fef332f385 Make rustup a requirement and switch to rust-toolchain.toml (#30056)
This change makes rustup a requirement for building Servo with `./mach`
and switches to the newer `rust-toolchain.toml` format. The goal here is
to make mach builds more similar to non-mach builds.

- The new format allows listing the required components, removing some of
  the complexity from our mach scripts.
- This means we must raise the required version of rustup to 1.23. The
  current version is 1.26.
- We no longer wrap every call to cargo and rustc in "rustup run" calls
  as both cargo and rustc will take care of installing and using all
  necessary components specified in `rust-toolchain.toml` when run
  inside the project directory.
2023-08-01 14:44:57 +00:00
Martin Robinson
633d9b0eb9 Windows bootstrap support 2023-07-03 21:40:24 +02:00
Martin Robinson
5be14ecc3c Start organizing platform-specific Python code
This starts to split platform-specific Python code into its own module,
which should help to tidy up our mach commands and make things more
reusable.
2023-05-19 13:08:43 +02:00
Martin Robinson
e9942bddb0 Replace usage of six.moves.urllib with urllib
Also organize some of the imports. Now that Servo only uses Python 3,
this module is unnecessary. This is part of the gradual migration to
using only Python 3.
2023-04-10 12:47:39 +02:00
Josh Matthews
cb1be84651 Remove unused salt bootstrapping process. 2023-01-19 21:35:56 -05:00
Kagami Sascha Rosylight
57eed5baa4 Use except Exception where Py2/3 disagrees 2020-06-21 04:30:23 +02:00
Kagami Sascha Rosylight
d01648d637 Fix remaining flake8 warnings 2020-06-21 03:34:32 +02:00
Simon Sapin
cef92a2050 Mach: rename default_toolchain to rust_toolchain 2020-01-02 14:20:18 +01:00
marmeladema
02cfb4f49e Fix except statement in order to be compatible with Python3 2019-10-16 00:22:07 +01:00
marmeladema
f1d42fe787 Use urllib from six module in order to be compatible with Python3 2019-10-16 00:22:07 +01:00
Paul Rouget
4635f81647 Download platform-tools even for non-emulator builds 2019-08-27 06:53:31 +02:00
Simon Sapin
9110b25d13 Remove ./mach env as it is a lie.
We stopped overriding `$PATH` since using rustup.
The printed variables are not sufficient to do anything.
2019-07-01 16:44:21 +02:00
Josh Matthews
7a95cbcf91 Upgrade NDK to v15c. 2019-05-01 15:08:37 -04:00
Simon Sapin
f0d8e8af49 Reduce log spam when running sdkmanager 2018-10-11 19:11:32 +02:00
Simon Sapin
6c82c471c5 Add --accept-all-licences to ./mach bootstrap-android 2018-10-11 16:08:41 +02:00
Simon Sapin
89e1878bd6 Add --build and --emulator-x86 to ./mach bootstrap-android
This allows not downloading dependencies that are not needed for a praticular task.
2018-10-11 15:24:57 +02:00
Manish Goregaokar
f270f3798d Comment on ./mach bootstrap 2018-09-11 19:34:38 +05:30
Manish Goregaokar
eba68a1a49 Add mach bootstrap-gstreamer 2018-09-11 19:34:38 +05:30
Manish Goregaokar
1913ac706c Make ./mach bootstrap into a full-fledged linux dependency installer 2018-09-11 19:34:38 +05:30
Josh Matthews
6ad63b57e7 Fix python indentation. 2018-08-01 23:26:15 -04:00
Josh Matthews
458879b2cd mach: Avoid python error when there's no cargo cache. 2018-08-01 20:52:17 -04:00
Paul Rouget
6a31864126 Update Gradle and SDK 2018-07-31 22:39:45 +08:00
bors-servo
00c2489af0 Auto merge of #21104 - wayling:master, r=jdm
"./mach env" cause unclear message.

We did't use "LD_LIBRARY_PATH" and no need display this.

<!-- Please describe your changes on the following line: -->
Remove the print message.

---
<!-- 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
- [ ] These changes fix #__ (github issue number if applicable).

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

<!-- Also, please make sure that "Allow edits from maintainers" checkbox is checked, so that we can help you if you get stuck somewhere along the way.-->

<!-- 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/21104)
<!-- Reviewable:end -->
2018-07-28 10:07:27 -04:00
wayling
2ad37bda2c "./mach env" cause unclear message
Use the "get" instead to avoid the error.
2018-07-28 21:59:06 +08:00
Simon Sapin
8dc2457931 Remove unused --update parameter to ./mach bootstrap-android 2018-07-12 16:01:28 +02:00
Simon Sapin
c0d1b8e808 Android: increase emulator disk size, for debug builds
Avoid INSTALL_FAILED_INSUFFICIENT_STORAGE on install.
2018-07-02 19:00:48 +02:00
Simon Sapin
8293b295be bootstrap-android: check SHA1 hashes of downloaded archives 2018-07-02 19:00:48 +02:00
Simon Sapin
b6b9fe07e2 Add "./mach android-emulator" 2018-07-02 13:25:44 +02:00
Simon Sapin
fc77db4b09 Use the bootstraped Android toolchains by default 2018-07-02 13:25:44 +02:00
Simon Sapin
65122b10d3 bootstrap-android: always run sdkmanager
It is quick when already up to date
2018-07-02 13:25:44 +02:00
Simon Sapin
aa1c3cea2f bootstrap-android: use predictable paths for SDK and NDK
… independent of the version number
2018-07-02 13:25:44 +02:00
Simon Sapin
0e2e9cb019 Create emulator images for both ARM and x86 2018-07-02 13:25:44 +02:00
Simon Sapin
e54ad77594 Do not prompt for Android emulator hardware profile 2018-07-02 13:25:44 +02:00
Simon Sapin
484eee8624 Tidy 2018-07-02 13:25:44 +02:00
Simon Sapin
8889742407 mach bootstrap-android: configure and show how to start an emulator 2018-07-02 13:25:44 +02:00
Simon Sapin
1ee54ab5fb Create and Android virtual device 2018-07-02 13:25:44 +02:00
Simon Sapin
244a332976 Use more recent Android tools
The older version seems to insist on updating itself when asked to install other components.
2018-07-02 13:25:44 +02:00
Simon Sapin
56df7f4220 Install complete Android SDK (as much as on Buildbot CI) 2018-07-02 13:25:44 +02:00
Simon Sapin
b9d5f11b20 Add ./mach bootstrap-android 2018-07-02 13:25:44 +02:00