Commit Graph

23 Commits

Author SHA1 Message Date
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