aboutsummaryrefslogtreecommitdiffstats
path: root/support
Commit message (Collapse)AuthorAgeFilesLines
* ohos: Bundle resource files in hap (#33513)Jonathan Schwender2024-09-241-0/+6
| | | | | | | | | | Bundle resource files into the .hap, so they are available as files in the application sandbox, instead of included into the shared library. This should slightly reduce the binary size in debug and release mode. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com> Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* ohos: Add back and fwd button to vendored app (#33511)Jonathan Schwender2024-09-231-10/+31
| | | | | | | | | 25372340 added back and forward apis to the ohos servoshell. 157e28c5 vendored the ohos demo ArkTS app into the servo repo, but did not include the back and forward buttons, which were added in the meantime. This commit adds the missing back and forward buttons to the ArkTS code. Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* openharmony: add servoshell for ohos (#33295)Mukilan Thiyagarajan2024-09-2025-0/+476
| | | | | | | | | | | | | * openharmony: add servoshell for ohos Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * ohos: handle missing signing config on forks Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> --------- Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Add `rust-version` to all `Cargo.toml` files (#33483)Martin Robinson2024-09-171-0/+1
| | | | | | | This is another step preparing for building Servo without `mach`. Fixes #33430. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* android: publish nightly builds for aarch64 (#33435)Mukilan Thiyagarajan2024-09-163-4/+25
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * android: publish nightly builds for aarch64 Publish the aarch64 apk and aar packages to both Github Releases and S3 so that it can be linked from servo.org. The focus is on getting a working version of the APK on the homepage, so few issues are resolved with temporary solutions: 1) We publish the "release" profile instead of "production" since the latter will need changes in the gradle configuration (the changes required was previously blocked on #32720 which is now closed). 2) The scheme for the version code is simple and doesn't consider other factors such as API level and product variants discussed in the Android docs (https://developer.android.com/google/play/publishing/multiple-apks#VersionCodes) This should be fine for now as we don't publish to any store yet. The change also makes it so that the 'Release nightly' workflow will endup building all 4 variants for the Android target, but only aarch64 is uploaded. This is because GH Actions doesn't have a good way to skip a specific job in a matrix and the additionally code complexity needed to acheive it (either generating a JSON dynamically in a new job and using `fromJSON` in the matrix definition or skipping each individual step based on matrix.target and `inputs.upload`) didn't seem worth the cost saved (this is executed only once a day). Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * android: add attestation for nightly build artifacts Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> --------- Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Update layout of servoshell android app (#33294)Daniel Adams2024-09-048-77/+108
| | | | | | | | | | | | | * Update layout of servoshell android app Signed-off-by: Daniel Adams <msub2official@gmail.com> * Remove gap after loop/idle text Signed-off-by: Daniel Adams <msub2official@gmail.com> --------- Signed-off-by: Daniel Adams <msub2official@gmail.com>
* Fix a memory leak in `components/script/script_runtime.rs` and add more leak ↵Erik Hennig2024-08-261-1/+7
| | | | | | | | | | | | | | | | | | | | | | suppressions (#33175) * asan: Add suppression for known false positive Signed-off-by: ede1998 <online@erik-hennig.me> * fix: re-suppress lazy_static leaks lazy_static is still used by dependencies and still leaks from static variables. Signed-off-by: ede1998 <online@erik-hennig.me> * fix: Memory leak of Box<NetworkingTaskSource> Signed-off-by: ede1998 <online@erik-hennig.me> --------- Signed-off-by: ede1998 <online@erik-hennig.me>
* replace once_cell (#33080)Hayashi Mikihiro2024-08-162-3/+2
| | | Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
* Remove lazy static (#33078)Hayashi Mikihiro2024-08-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * remove from rand Mutex<OsRng> can be initialized in compile time. Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * remove from layout_2020 Mutex<()> can be initialize in compile time Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * remove from media `IS_MULTIPROCESS` doesn't be used. Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * remove lazy_static from dependencies Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * rewrite suppressed_leaks_for_asan.txt For all of lazy_static was replaced with LazyLock. Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> --------- Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com>
* Update to rust 1.80.0 (#32896)Hayashi Mikihiro2024-08-073-56/+39
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update for nix Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * Update to Rust 1.80.0 Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * Rename to BindingMode from BindingAnnotation https://github.com/rust-lang/rust/pull/124047 Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * Remove TypeVariableOriginKind https://github.com/rust-lang/rust/pull/123016 Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * Remove TypeVariableOrigin https://github.com/rust-lang/rust/pull/124955 Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * Remove LintDiagnostic::msg rust-lang/rust#125410 Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * common.rs fmt mistake indents Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * trace_in_no_trace.rs remove mistake space Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * trace_in_no_trace.rs remove mistake head space Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> * Workaround for https://github.com/servo/servo/issues/32912 It's dirty but it worked on 2000 runs Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> --------- Signed-off-by: Hayashi Mikihiro <34ttrweoewiwe28@gmail.com> Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com>
* Update mozjs (SpiderMonkey) to 128.0 (#32769)Samson2024-07-291-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update mozjs Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Fix changed readTransfer callback https://bugzilla.mozilla.org/show_bug.cgi?id=1842713 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Use NewExternalArrayBuffer from glue https://github.com/servo/mozjs/pull/474/commits/d33454be74ec5b8d8faf51fab3ed477b8913898b Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Fix columnorigin and filename being in latin1 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * fixup newexternalarray Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Float16 (this might require more work for codegen support) https://bugzilla.mozilla.org/show_bug.cgi?id=1833647 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * js.strict is removed https://bugzilla.mozilla.org/show_bug.cgi?id=1621603 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * asm options are now somewhere else https://hg.mozilla.org/mozilla-central/rev/26045c88e3972957087d535e7f259e08857bd2a2 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Comment out offthread compilation Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Set NDK to 26 Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Fix 1-origin handling Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Expect `FinalizationRegistry` interface Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Good expectations Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * more expectations Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Add `WeakRef` to interfaces expectation Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * mozjs upgrade: fixes for Android Android NDK's layout has changed in r26 and 'lib64' no longer exists under `toolchain/llvm/prebuilt/linux-x86_64`. The libraries that used to be it are now present in `lib` folder itself. This patch updates the build configuration to use the `lib` folder instead when configuring the LIBCLANG_PATH environment variable. This patch also updates to a newer mozjs version that includes fixes for linker errors faced on Android (see #32769). Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * Patch libz-sys & update mozjs Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * update NDK version in README Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> * Use servo/mozjs Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> * Update mozjs again Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> --------- Signed-off-by: sagudev <16504129+sagudev@users.noreply.github.com> Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com> Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: sign release APK with a custom key. (#32721)Mukilan Thiyagarajan2024-07-082-1/+28
| | | | | | | | | | | This PR adds support for signing all APKs we produce on the CI with a custom signing key. Currently the logic falls back to the debug key (which is generated by AGP and not persistent) if the environment variable for the keystore is not set. This allows local developer builds to work without requiring a key store. Once #32720 is resolved, we could sign just the production builds and remove the conditional logic. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Make task_info as `macos` specific (#32693)Jonathan Schwender2024-07-042-6/+9
| | | | | | | | rust-analyzer breaks on Linux (when invoked without mach), because it tries to compile the c files, and doesn't find `mach_init.h` Since we don't need task_info on non-mac platforms, just make the crate empty on other platforms. Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com>
* android: Rename the Android app to reflect servo.org ownership and ↵Martin Robinson2024-06-248-27/+27
| | | | | `servoshell` (#32554) Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Add suppression comments + Suppress lazy_static (#32584)Erik Hennig2024-06-231-1/+5
| | | Co-authored-by: Jonas Zeunert <jonas@zeunert.org>
* crown: remove references to workspace manifest (#32567)Mukilan Thiyagarajan2024-06-201-5/+5
| | | | | | | | | The way our shell.nix works requires crown's Cargo.toml to be self-contained so that it can be built as a nix derivation in isolation. Fixes #32552. Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Move android port code to servoshell (#32533)Jonathan Schwender2024-06-192-3/+3
| | | | Signed-off-by: Jonathan Schwender <jonathan.schwender@huawei.com> Signed-off-by: Jonathan Schwender <schwenderjonathan@gmail.com>
* Use workspace definitions for all crates and update to the 2021 edition (#32544)Martin Robinson2024-06-182-10/+10
|
* Restore accidentally deleted suppression file and suppress intentional leak ↵Erik Hennig2024-06-171-0/+1
| | | | | in stylo #32223 (#32527) Co-authored-by: Jonas Zeunert <jonas@zeunert.org>
* Android: fix url resolution (#32422)Gae242024-06-102-23/+15
| | | | | | | | | | | | | | | | * fix localhost Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * android: parse search bar field in rust Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * Update comment to reflect new function behavior --------- Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Update to Rust 1.78 (#32217)Samson2024-06-015-32/+62
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Update to rust 1.78 * Update crown for rust 1.78 * rust 1.78 is now stable * Update for nix * Update comment Co-authored-by: Martin Robinson <mrobinson@igalia.com> * Update support/crown/src/common.rs * Update support/crown/Cargo.toml * Update support/crown/src/common.rs * Fix ipc problem * Update ipc-channel to 0.18.1 * fixed fixme --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* build(deps): bump compiletest_rs from 0.10.2 to 0.11.0 (#32408)dependabot[bot]2024-05-311-1/+1
| | | | | | | | | | | | | | | Bumps [compiletest_rs](https://github.com/Manishearth/compiletest-rs) from 0.10.2 to 0.11.0. - [Release notes](https://github.com/Manishearth/compiletest-rs/releases) - [Commits](https://github.com/Manishearth/compiletest-rs/compare/v0.10.2...v0.11.0) --- updated-dependencies: - dependency-name: compiletest_rs dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* Android: load url from Intent, plus fixed some warnings (#32160)Gae242024-04-299-58/+43
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * update gitignore folder with android build files * address some warnings Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * fix servo not loading url from Intent Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * format Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * InitOptions, added url field to avoid override homepage url Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * actually there is a gitignore file in the android folder Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> * Restore buildToolsVersion property Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com> --------- Signed-off-by: Gae24 <96017547+Gae24@users.noreply.github.com>
* nix build: replace `fetchCargoTarball` with `importCargoLock` (#31825)Mukilan Thiyagarajan2024-03-251-16/+16
| | | | | | | | | | | | [`importCargoLock`][1] allows us to use the existing Cargo.lock file. This means we no longer need to update the sha256 hash whenever the dependencies are upgraded. It also integrates with nix's rustToolchain support via `cargoSetupHooks` and automatically vendors the dependencies, allowing us to simplify the logic for `filterlock` derivation. [1]: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/rust.section.md#vendoring-of-dependencies-vendoring-of-dependencies Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* android: add support for x86_64 images (#31725)Mukilan Thiyagarajan2024-03-184-4/+33
| | | Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* clippy: fix warnings on modules outside components (#31567)eri2024-03-072-17/+13
|
* shell.nix: update filterlock hash (#31515)Smitty2024-03-062-0/+5
| | | Signed-off-by: syvb <me@iter.ca>
* Update gstreamer crates to 0.22 (#31465)Samson2024-03-011-1/+1
|
* build: Add support for Visual Studio 2022 and VC143 DLLs (#31148)Martin Robinson2024-01-231-2/+0
| | | | | | | | | | | | | | | | | | | | | | | * build: Add support for Visual Studio 2022 and VC143 DLLs This change adds supports fot Visual Studio 2022 and the VC143 (current) version of the Visual Studio CRT. In addition, it reworks the way that Visual Studio is found, returning all installations in a generator, separately finding it via vswhere.exe, searching paths, and via environment variables. All of these installations are searched for the DLLs with highest priority given to the highest version of MS Visual Studio installed. The hope is that this makes the process more robust and properly handles having multiple versions installed, but only one with the correct runtime DLLs. * Update based on review comments Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com> --------- Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Preliminary Android build support (#31086)Mukilan Thiyagarajan2024-01-2228-872/+401
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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>
* crown: Add a cargo config.toml file (#31090)Martin Robinson2024-01-151-0/+2
| | | | | This makes it more foolproof to install crown from inside the Servo directory, because the root Servo config.toml overrides the rustc to use crown (an obvious circular dependency).
* Fix crown on NixOS (#30987)Delan Azabani2024-01-054-0/+242
| | | | | | | | | | | | | | | | | | | | | * Fix crown on NixOS * no need to install libs, because there are none * fix program name in usage message * use the cargo provided by each buildPhase * cargo update --offline can be used to reformat lockfiles * document how to keep rust-toolchain.toml and etc/shell.nix in sync * clarify comment about allowBuiltinFetchGit * fix license * clarify purpose of filterlock * explain why crown must not use workspace dependencies
* bootstrap: Don't try to install Windows Python with `./mach bootstrap` (#30988)Martin Robinson2024-01-031-2/+0
| | | | | It doesn't make sense to try to install Python using `./mach bootstrap` since it needs Python to run. Instead separate out Python installation into its own step in the README.
* Compile Servo with the latest version of rust stable (#30831)Martin Robinson2023-12-0614-34/+48
| | | | | | | | | | | | | | | | This completes the transition to compiling Servo with rust stable. Some nightly-only features are still used when compiling the `script` and `crown` crates, as well as for some style unit tests. These will likely break with newer compiler versions, but `crown` can be disabled for them conditionally. This is just the first step. This has some caveats: 1. We need to disable setting up the special linker on Linux. The -Z option isn't supported with stable rust so using this is out -- meanwhile we can't be sure that lld is installed on most systems. 2. `cargo fmt` still uses some unstable options, so we need to rely on the unstable toolchain just for running `fmt`. The idea is to fix this gradually.
* Remove clean_rmeta from crown test (#30829)Samson2023-12-061-1/+0
| | | it causes rebuilds in unit tests
* Replace script_plugins with a clippy like rustc driver (named crown) (#30508)Samson2023-12-0117-0/+1235
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * Remove script_plugins * Use crown instead of script_plugins * crown_is_not_used * Use crown in command base * bootstrap crown * tidy happy * disable sccache * Bring crown in tree * Install crown from tree * fix windows ci * fix warning * fix mac libscript_plugins.dylib is not available anymore * Update components/script/lib.rs Co-authored-by: Martin Robinson <mrobinson@igalia.com> * Update for nightly-2023-03-18 Mostly just based off https://github.com/servo/servo/pull/30630 * Always install crown it's slow only when there is new version * Run crown test with `mach test-unit` * Small fixups; better trace_in_no_trace tests * Better doc * crown in config.toml * Fix tidy for real * no sccache on rustc_wrapper * document rustc overrides * fixup of compiletest * Make a few minor comment adjustments * Fix a typo in python/servo/platform/base.py Co-authored-by: Samson <16504129+sagudev@users.noreply.github.com> * Proper test types * Ignore tidy on crown/tests --------- Co-authored-by: Martin Robinson <mrobinson@igalia.com>
* Bootstrap pkg-config and cmake on MacOS (#30497)Martin Robinson2023-10-051-0/+2
| | | | | | | These need to be installed in order to build so we can install them via Homebrew. Do this by simply restoring the Homebrew bootstrapping logic we had in place previously. Fixes #27171.
* use newer wix in CI (#30378)Samson2023-09-171-0/+1
| | | | | | | * Install wixtoolset via chocolatey * choco install wixtoolset in CI * Update windows.yml
* Get LLVM from chocolatey (#30140)Martin Robinson2023-08-211-0/+1
| | | | | | | | | | | | LLVM is the largest package that we get from servo-build-deps, so installing it via chocolatey should reduce the amount of data that we transfer from that source. In addition, it's one less dependency that we have to manage. It also seems that installing LLVM to the default location with choco means that we no longer have to set the LIBCLANG_PATH environment variable for bindgen. Co-authored-by: Mukilan Thiyagarajan <mukilan@igalia.com>
* Switch to rustls and webpki-roots (#30025)Martin Robinson2023-08-082-260/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change replaces OpenSSL with rustls and also the manually curated CA certs file with webpki-roots (effectively the same thing, but as a crate). Generally speaking the design of the network stack is the same. Changes: - Code around certificate overrides needed to be refactored to work with rustls so the various thread-safe list of certificates is refactored into `CertificateErrorOverrideManager` - hyper-rustls takes care of setting ALPN protocols for HTTP requests, so for WebSockets this is moved to the WebSocket code. - The safe set of cypher suites is chosen, which seem to correspond to the "Modern" configuration from [1]. This can be adjusted later. - Instead of passing a string of PEM CA certificates around, an enum is used that includes parsed Certificates (or the default which reads them from webpki-roots). - Code for starting up an SSL server for testing is cleaned up a little, due to the fact that the certificates need to be overriden explicitly now. This is due to the fact that the `webpki` crate is more stringent with self-signed certificates than SSL (CA certificates cannot used as end-entity certificates). [2] 1. https://wiki.mozilla.org/Security/Server_Side_TLS 2. https://github.com/briansmith/webpki/issues/114 Fixes #7888. Fixes #13749. Fixes #26835. Fixes #29291.
* Remove UWP / Hololens supportMartin Robinson2023-07-0573-6496/+0
|
* Windows bootstrap supportMartin Robinson2023-07-031-2/+1
|
* Simplify the build instructionsMartin Robinson2023-06-211-0/+11
| | | | | | | | | - Add a chocolatey configuration that installs all dependencies and split the instructions into a normal and manual installation section. In addition fix a warning print statement for the Windows build that would trigger a Python exception. - Simplify the build instructions in the README and move all manual setup details to: https://github.com/servo/servo/wiki/Building
* Implement `bootstrap-gstreamer` for all platformsMartin Robinson2023-05-252-12/+0
| | | | | | | | | | | | | | | | | | This change makes it so that the Platform classes can now handle installing GStreamer dependencies and properly setting up the environment including when cross-compiling. For Windows and Linux is now installed into `target/dependencies/gstreamer` when not installed system-wide. In addition: 1. Creating and moving existing environment path append helpers to `util.py`. 2. Combining the `set_run_env` and `build_dev` functions and moving some outside code into them so that it can be shared. Now code that used to call `set_run_env` calls `build_dev` and then `os.environ.update(...)`. 3. Adding Python typing information in many places. Signed-off-by: Martin Robinson <mrobinson@igalia.com>
* Removed `support/magicleap`michaelgrigoryan252023-05-2254-6813/+0
|
* Start organizing platform-specific Python codeMartin Robinson2023-05-191-1/+1
| | | | | | 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.
* Download prebuilt dependencies from Github instead of S3Mukilan Thiyagarajan2023-04-201-1/+1
| | | | | | | | | | | | | | | After moving nightly builds to GitHub releases, the major contributor to AWS cost is now the S3 data transfer charges. This PR only addresses the data transfer costs incurred due to the download of gstreamer dependency in the linux and the Windows dependencies (llvm, cmake, moztools, openssl etc) for MSVC builds. Android dependencies and UWP/Hololens dependencies will continue to be served from S3. These can be moved to GH as well in a future PR. Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
* Fix typos in markdown filesGreg Myers2022-01-141-1/+1
| | | | | Fixes a number of typographical errors across markdown documentation files.
* Use `#!/usr/bin/env bash` in shell scripts for NixOS compatibilityyvt2021-06-141-1/+1
| | | | Signed-off-by: yvt <i@yvt.jp>
* clang-fmtPhilip Lamb2021-03-301-2/+2
|