Commit graph

352 commits

Author SHA1 Message Date
Delan Azabani
34d9be70f9
Update in-tree docs to point to the new book (#32743)
* Update in-tree docs to point to the new book

* Revive build setup section in README as quickstart guide

* Apply feedback about titles
2024-07-09 15:42:00 +00:00
Martin Robinson
099b5607b9
readme: Clarify that rust and cargo must be in your path after rustup runs (#32722)
Fixes #32670.
2024-07-08 08:54:01 +00:00
Manuel Rego Casasnovas
574a22a6cd
Avoid Esc shortcut to close Servo (#32603)
* Avoid Esc shortcut to close Servo

Keep Esc shortcut to leave fullscreen, but avoid to close Servo
(as this is not common in other similar apps,
and can be shortcut used in some web apps for other things).

* Send Esc to the page
2024-06-27 03:43:05 +00:00
Richard Dushime
d211cfc978
documentation: Add instructions for creating a shallow clone of the Servo repository (#31697)
* Add support for partial and shallow clones for contributors with limited internet access

* Fix requested changes

* small typo

* Removed Trailing spaces and Fixed req changes

* Small fixes to the new documentation

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-03-15 19:06:02 +00:00
Delan Azabani
884d024957
Add gstreamer plugins good/ugly for better codec support (#31687)
* NixOS: add gst-plugins-{good,ugly} for better codec support

* Add gstreamer plugins good/ugly to all other package lists
2024-03-15 09:05:26 +00:00
Okhuomon Ajayi
0327d4638b
Adjust the language used in some of the documentation (#31583)
* fixed a typo in the Android setup command

* Fix typo in documentation for command-line arguments

* Fix style and formatting issues in the Shell Scripts section of the documentation

* Update style.md

* Fixed various  inconsistencies

* Fixed various inconsistencies

* Update webxr.md

* Update style.md

* Update COMMAND_LINE_ARGS.md

* Update README.md

Co-authored-by: Martin Robinson <mrobinson@igalia.com>

* Update docs/COMMAND_LINE_ARGS.md

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
2024-03-08 14:11:28 +00:00
Daniel Adams
1771f9a9a1
Fix broken wiki link in README for Android instructions (#31574) 2024-03-08 05:35:27 +00:00
atbrakhi
3098c3d121
update readme (#31522) 2024-03-07 11:14:15 +00:00
Mukilan Thiyagarajan
b9e217c480
Upgrade surfman to 0.9.1 (#31431)
* upgrade surfman to 0.9.1

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

* remove 'libegl1-mesa-dev' from runtime dependencies

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

---------

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-02-27 11:53:49 +00:00
danalgen
e6baa26ff8
Update README.md (#31324)
Delete seemingly duplicated line in the Windows build instructions (added in dc2df7b027).
2024-02-12 22:56:41 +00:00
Samson
ded7adc800
Add libegl1-mesa-dev to runtime deps (#31323) 2024-02-12 14:20:19 +00:00
Martin Robinson
21dbf0ad3a
readme: Improve Android docs and update GStreamer runtime deps (#31171)
The Android documentation was missing a few packages that needed to be
installed as well as some quotes to properly run the commands. In
addition, trim down the build setup and move the more complex contents
to the wiki.

Update the GStreamer runtime deps to reflect reality.
2024-01-26 08:56:20 +00:00
Martin Robinson
dc2df7b027
build: Add support for Visual Studio 2022 and VC143 DLLs (#31148)
* 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>
2024-01-23 11:04:01 +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
0d240b8713
deps: Raise the Python requirement to 3.10 (#31088)
This will allow us to use the pip's new dependency resolver.
2024-01-15 11:56:15 +00:00
noriaki watanabe
d0ce48db06
Fix installation instructions for Python on Debian-like distributions in README (#31015)
Signed-off-by: nnabeyang <nabeyang@gmail.com>
2024-01-07 11:25:19 +00:00
Martin Robinson
51c91d2881
bootstrap: Don't try to install Windows Python with ./mach bootstrap (#30988)
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.
2024-01-03 13:18:39 +00:00
Alex Touchet
e4aed3d06a
Update branch name to main (#30877) 2023-12-16 09:32:20 +00:00
Corey Farwell
117d59d393
Replace virtualenv with Python's built-in venv (#30377)
* Replace virtualenv with Python's built-in venv.

* Apply Delan's suggestions and make a couple small fixes

- Fix a tidy warning about directories that don't exist
- Use shutil instead of the redundant get_exec_path
- Miscellaneous cleanups

* Fix typo in environment variable

* fix bug where pip still tries to the wrong site-packages

---------

Co-authored-by: Martin Robinson <mrobinson@igalia.com>
Co-authored-by: Delan Azabani <dazabani@igalia.com>
2023-12-07 08:18:30 +00:00
Tamir Duberstein
c78b98252a
README.md: update reference to rust-toolchain(.toml) (#30715)
See fef332f385.
2023-11-10 07:50:38 +00:00
Martin Robinson
aadf48bd4d
Bootstrap pkg-config and cmake on MacOS (#30497)
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.
2023-10-05 01:12:29 +00:00
Delan Azabani
5d8d7c79c2
fix WebGPU runtime dependencies on linux (#30407) 2023-09-22 11:05:38 +00:00
Martin Robinson
c58d74fe62
Remove UWP / Hololens support 2023-07-05 09:12:09 +02:00
Martin Robinson
633d9b0eb9 Windows bootstrap support 2023-07-03 21:40:24 +02:00
Martin Robinson
a57c49a4bb Implement ./mach bootstrap for MacOS 2023-06-22 11:14:00 +02:00
Martin Robinson
8bac189ea2
Simplify the build instructions
- 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
2023-06-21 19:37:46 +02:00
Martin Robinson
7d20f16d9f
Implement bootstrap-gstreamer for all platforms
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>
2023-05-25 08:22:21 +02:00
Manuel Rego Casasnovas
c7edd7ad2c Remove outdated note on README (fix #29786)
This patch just removes a note about building only servo vs
libsimpleservo binaries, as that's no longer working.
2023-05-24 15:59:01 +02:00
Mukilan Thiyagarajan
80087f31c8 Workaround bug in gstreamer binaries
The official gstreamer .pkg distribution should contain
'relocatable' dylibs, but as discovered in #29732,
some dylibs have absolute links to liblzma.5.dylibs

Since /opt/homebrew is the default install location
on Apple Silicion, this will cause the packaging &
build steps to fail, even if 'xz' package is installed
via homebrew.

This is a temporary fix until upstream fixes the bug
and makes the package truly 'relocatable'.

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-05-12 19:03:47 +05:30
Mukilan Thiyagarajan
8cfb19a8fb Consume official GStreamer binaries on MacOS
This PR re-enables support for the gstreamer mediastack
in macOS by consuming the official binary '.pkg' files
from gstreamer.freedesktop.org

To maintain symmetry with other platforms, the '.pkg'
files are uploaded to servo-build-deps and fetched from
there using the new script 'etc/install_macos_gstreamer.sh'.

Unlike the Homebrew version, the official GStreamer is
distributed as a 'relocatable' framework i.e the dylibs all
have @rpath-relative install names and also link to other
dylibs using @rpath relative path. To address this difference
the 'servo' binary needs to be patched with 'install_name_tool'
to add an LC_RPATH command that sets the relative paths
that the dynamic linker should search when trying to satify
dependencies. In Servo's case, this will be a path relative to
the 'servo' binary itself i.e '@executable_path/lib/'

The additional 'lib' is due to a flaw in the gstreamer
packaging where the install names of some of the dylibs
have the prefix '@rpath/lib' and some of them just have '@rpath'.

This PR also fixes a couple of issues present in the
`mach build` process on MacOS:
1. `mach build` process was not copying transitive dependencies
   of servo binary but only the first level dylibs
2. `mach build` process didn't patch the links to dylibs
   in servo binary (and dependencies). This meant though
   (some) dylibs were copied to local path, the binary
   still loaded the dylibs from system GStreamer installation
   i.e homebrew instead of the copieds dylibs

The build and runtime dependencies in etc/homebrew/Brewfile
and etc/homebrew/Brewfile-build have also been removed in This
PR.

Signed-off-by: Mukilan Thiyagarajan <me@mukilan.in>
2023-05-12 00:14:38 +05:30
Martin Robinson
bc3abf9953 Remove more Taskcluster and Treeherder integration
Servo no longer uses Taskcluster and Treeherder, so this change removes
script references to those services and support files.
2023-04-10 23:04:17 +02:00
Andreu Botella
2c1d67642f Revert "Updated README to fix compatibility issues on Fedora."
This reverts commit 4e997ff334.
2023-01-22 05:13:30 +01:00
Alex Touchet
967601bade Remove some badges 2023-01-19 19:38:30 -08:00
chansuke
4e089016de Remove TravisCI badge from README 2023-01-19 23:39:39 +09:00
michaelgrigoryan25
4e997ff334 Updated README to fix compatibility issues on Fedora. 2022-12-01 19:42:40 +04:00
Michael G
d44d31d24a
Updated documentation for manual installation on Fedora 2022-11-28 08:45:32 +04:00
Hsiang-Cheng Yang
2627ba5fdd
fix a typo 2022-09-04 13:29:37 +08:00
Greg Myers
829a736f96
Fix typos in markdown files
Fixes a number of typographical errors across
markdown documentation files.
2022-01-14 16:46:10 -07:00
mrl5
83824f599d
docs(linux): added runtime dependencies
Closes #28657
2022-01-01 19:26:38 +01:00
Joel Jose
5e97e6c07c Fixed a few incorrect names 2021-12-31 17:24:21 +05:30
Florian-Schoenherr
ad65ccc8ac docs: link issue
Signed-off-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
2021-08-21 13:14:19 +02:00
Florian-Schoenherr
ee433e53ca docs: fix typo and link
Signed-off-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
2021-08-21 12:41:42 +02:00
Florian-Schoenherr
1bdaeccdf6 docs: add clone info, clarify/reorder
Signed-off-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
2021-08-21 12:40:47 +02:00
Florian-Schoenherr
5025317e89 docs: update VS2019 install infos
Signed-off-by: Florian-Schoenherr <florian.schoenherr99@gmail.com>
2021-08-21 12:38:59 +02:00
Maciej Krüger
2a02e017a4
add nixOS instructions to README 2021-05-31 00:13:22 +02:00
zhengrenzhe
f17aac607b feat: add arm mac info to README.md 2021-04-24 19:24:03 +08:00
Vincent Ricard
1f22af9f47 Remove the Ubuntu get-pip part 2021-03-29 20:37:10 +02:00
Vincent Ricard
9f7e7cfa50 Update documentation for Python 3 2021-03-29 20:37:10 +02:00
Lunush
1e8d18f517
Add Gstreamer plugins to Arch Linux deps script
I was unable to compile servo on my machine because of errors related to gst. Installing the following solved the issue.
2021-02-26 07:32:07 +03:00
Fernando Jiménez Moreno
011871eb5f Document python2 special requirements for Ubuntu 20.04+ 2020-12-18 13:55:21 +01:00