Commit graph

25 commits

Author SHA1 Message Date
Samson
b28314d33e
Update to Rust 1.78 (#32217)
* 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>
2024-06-01 06:49:28 +00:00
Mukilan Thiyagarajan
c50df5ccbe
nix build: replace fetchCargoTarball with importCargoLock (#31825)
[`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>
2024-03-25 05:32:55 +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
Smitty
24a088d94c
shell.nix: update filterlock hash (#31515)
Signed-off-by: syvb <me@iter.ca>
2024-03-06 04:54:16 +00:00
Mukilan Thiyagarajan
8faf6839d3
install libudev-dev required by gamepad API (#31376)
Ubuntu 20.04 does not have libudev-dev causing build
failure when compiling libudev-sys, which is in-turn
needed by gilrs-core. Similarly, nix build also needs
the udev C library.

On Ubuntu 22.04, we don't see the build failures since
the build dependency 'libgstreamer-plugins-base-1.0-dev'
transitively pulls in libudev-dev.

Fixes #31373

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-02-19 12:04:38 +00:00
Mukilan Thiyagarajan
13ddac02e0
mach: fix shell.nix to actually include android pkgs (#31279)
Fix issue with precedence due to which the android
environment variables were being added to the output
of mkDerivation instead of the input attribute set.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2024-02-08 01:41:42 +00:00
Smitty
f27227b1db
Make Android build optional on Nix (#31231)
* Make Android build optional on Nix

I want to build Servo without also installing the entire Android SDK.
This makes it so Android support is only built if `buildAndroid` is
true.

Signed-off-by: syvb <me@iter.ca>

* Add Android support to nix-shell if SERVO_ANDROID_BUILD set

---------

Signed-off-by: syvb <me@iter.ca>
2024-02-02 02:13:24 +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
Delan Azabani
1f1cf1499d
Nix: bump nixpkgs to nixos-unstable (#31055)
* Nix: bump nixpkgs to nixos-unstable (except gnumake + clang)

* we can get clang 11 from nixos-unstable

* bump clang to 15

* simplify approach now that we get clang from nixos-unstable

* drop clang to version 14 (#31059)
2024-01-11 08:10:51 +00:00
Delan Azabani
17ffbbdd11
Nix: bump nixpkgs to nixos-23.05 (except gnumake) (#31052)
* Nix: bump nixpkgs to nixos-23.05 (except gnumake)

* try nixos-unstable except clangStdenv + LIBCLANG_PATH

* revert due to missing @GLIBC_2.38 symbols

(db2f8c5d9d)
2024-01-10 12:50:19 +00:00
Delan Azabani
94a3c49a80
Allow building with Nix on Linux distros other than NixOS (#31001)
* remove NixOS check from mach wrapper

* pin nixpkgs to fix jemalloc-sys + mozangle build scripts

* add stdenv.cc.cc to LD_LIBRARY_PATH to fix webrender build.rs

* add all buildInputs to LD_LIBRARY_PATH to fix ldd servo

* add glib + zlib to buildInputs to fix ldd servo

* working! patchelf --remove-rpath --set-interpreter

* undo changes that were ultimately unhelpful

* make compiled programs independent of Nix

* avoid installing patchelf’d toolchains in ~/.rustup

* remove another spurious change

* fix rustup pollution

* only enable on other distros when MACH_USE_NIX is set
2024-01-09 10:29:25 +00:00
Delan Azabani
c219204084
Fix crown on NixOS (#30987)
* 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
2024-01-05 02:15:16 +00:00
Martin Robinson
c529bfa49e
Remove some stray references to OpenSSL (#30710)
These were left over from the change to use rustls.
2023-11-09 09:17:19 +00:00
Mukilan Thiyagarajan
ffac882f8f
Add taplo to etc/shell.nix (#30487)
This addresses the 'Could not find `taplo` ...' message
when running `./mach test-tidy` on NixOS.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-10-04 11:47:12 +00:00
Delan Azabani
5d8d7c79c2
fix WebGPU runtime dependencies on linux (#30407) 2023-09-22 11:05:38 +00:00
Samson
59d134133f
Use MozTools 4 and update mozjs (#30326)
* Update mozjs

* moztools4 in bootstrap

* no autoconf

* tidy

* switch to servo-build-deps

* update mozjs for real

* glue mozjs

* fmt

* move to servo/mozjs
2023-09-11 08:23:05 +00:00
Mukilan Thiyagarajan
078785217e
Pin GNU Make to 4.3 on NixOS (#30146)
Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-08-21 08:14:45 +00:00
Mukilan Thiyagarajan
1efecf9b50
Use system lld on NixOS instead of rust-lld (#30123)
The -Zgcc-ld=lld flag makes rust use the rust-lld
linker that is distributed as part of rust toolchain.
However, this flag doesn't work on nixos correctly
as
  1) rust-lld needs to be patched to have the correct rpath
     to find libz.so
  2) the bin/gcc-ld/ld.lld wrapper which calls rust-lld also
     needs to be patched to use the correct dynamic loader
  3) rust-lld doesn't respect NIX_LDFLAGS which contains
     the additional search path derived from buildInputs.
     The system linkers on nixos are wrapped so that
     NIX_LDFLAGS is added as the rpath to the final binary.

Signed-off-by: Mukilan Thiyagarajan <mukilan@igalia.com>
2023-08-18 06:18:05 +00:00
Mifom
11892c7f84 Update shell.nix
Replace deprecated xlibsWrapper with just xorg.libX11
2023-04-09 23:35:17 +03:00
yvt
57eb5a56d1 chore(nix): replace pkgconfig with pkg-config
`pkgconfig` has been renamed to `pkg-config` in nixpkgs.
2022-10-07 01:40:54 +09:00
yvt
71a6a00d26 chore(nix): add AppKit to buildInputs on Darwin
Signed-off-by: yvt <i@yvt.jp>
2022-09-16 00:37:07 +09:00
Nathan Lefler
881e01ab7e Update nix-shell package names
"xlibs" has been renamed to "xorg"
"x11" has been renamed to "xlibsWrapper"

Signed-off-by: Nathan Lefler <nathan@lefler.me>
2022-07-31 23:57:58 +00:00
yvt
e4cd5a1c96 chore(nix): define LD_LIBRARY_PATH outside shellHook
For consistency with other environment variables defined in the same
file.
2021-10-16 01:27:59 +09:00
yvt
e61d7f808a chore(nix): add libxkbcommon to LD_LIBRARY_PATH 2021-10-16 01:27:59 +09:00
Maciej Krüger
9d0b06ac54
add etc/shell.nix for nix/nixOS 2021-05-31 00:28:37 +02:00