diff --git a/flake.lock b/flake.lock index 5efa0f9..ae50a65 100644 --- a/flake.lock +++ b/flake.lock @@ -26,11 +26,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1722555600, - "narHash": "sha256-XOQkdLafnb/p9ij77byFQjDf5m5QYl9b2REiVClC+x4=", + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "8471fe90ad337a8074e957b69ca4d0089218391d", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", "type": "github" }, "original": { @@ -47,11 +47,11 @@ ] }, "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "lastModified": 1754487366, + "narHash": "sha256-pHYj8gUBapuUzKV/kN/tR3Zvqc7o6gdFB9XKXIp1SQ8=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "rev": "af66ad14b28a127c5c0f3bbb298218fc63528a18", "type": "github" }, "original": { @@ -65,11 +65,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1713050562, - "narHash": "sha256-m7c6XpmpTM1URuqMG2KqtaWbL2Vt8vJFJtmvq123BmY=", + "lastModified": 1725868201, + "narHash": "sha256-rDBQ9tXQCCA7emikSYH59ADJELE2IpzB7eoLrpHYzU4=", "owner": "StardustXR", "repo": "flatland", - "rev": "b3b0f29c4ea1b82c96cf9de507837bf15a5e4c0e", + "rev": "0914dd3df54a5e6258dfc0a02d65af1c0fc0fc90", "type": "github" }, "original": { @@ -84,11 +84,11 @@ "nixpkgs": "nixpkgs_2" }, "locked": { - "lastModified": 1719226092, - "narHash": "sha256-YNkUMcCUCpnULp40g+svYsaH1RbSEj6s4WdZY/SHe38=", + "lastModified": 1755233722, + "narHash": "sha256-AavrbMltJKcC2Fx0lfJoZfmy7g87ebXU0ddVenhajLA=", "owner": "hercules-ci", "repo": "hercules-ci-effects", - "rev": "11e4b8dc112e2f485d7c97e1cee77f9958f498f5", + "rev": "99e03e72e3f7e13506f80ef9ebaedccb929d84d0", "type": "github" }, "original": { @@ -115,23 +115,26 @@ }, "nixpkgs-lib": { "locked": { - "lastModified": 1722555339, - "narHash": "sha256-uFf2QeW7eAHlYXuDktm9c25OxOyCoUOQmh5SZ9amE5Q=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" + "lastModified": 1753579242, + "narHash": "sha256-zvaMGVn14/Zz8hnp4VWT9xVnhc8vuL3TStRqwk22biA=", + "owner": "nix-community", + "repo": "nixpkgs.lib", + "rev": "0f36c44e01a6129be94e3ade315a5883f0228a6e", + "type": "github" }, "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/a5d394176e64ab29c852d03346c1fc9b0b7d33eb.tar.gz" + "owner": "nix-community", + "repo": "nixpkgs.lib", + "type": "github" } }, "nixpkgs_2": { "locked": { - "lastModified": 1713714899, - "narHash": "sha256-+z/XjO3QJs5rLE5UOf015gdVauVRQd2vZtsFkaXBq2Y=", + "lastModified": 1755027561, + "narHash": "sha256-IVft239Bc8p8Dtvf7UAACMG5P3ZV+3/aO28gXpGtMXI=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6143fc5eeb9c4f00163267708e26191d1e918932", + "rev": "005433b926e16227259a1843015b5b2b7f7d1fc3", "type": "github" }, "original": { @@ -143,11 +146,11 @@ }, "nixpkgs_3": { "locked": { - "lastModified": 1723991338, - "narHash": "sha256-Grh5PF0+gootJfOJFenTTxDTYPidA3V28dqJ/WV7iis=", + "lastModified": 1755186698, + "narHash": "sha256-wNO3+Ks2jZJ4nTHMuks+cxAiVBGNuEBXsT29Bz6HASo=", "owner": "nixos", "repo": "nixpkgs", - "rev": "8a3354191c0d7144db9756a74755672387b702ba", + "rev": "fbcf476f790d8a217c3eab4e12033dc4a0f6d23c", "type": "github" }, "original": { diff --git a/flake.nix b/flake.nix index 885aef8..58d09b8 100644 --- a/flake.nix +++ b/flake.nix @@ -61,14 +61,11 @@ }; overlayAttrs = config.packages; packages = - let - sk_gpu = pkgs.callPackage ./nix/sk_gpu.nix { }; - in { default = self'.packages.${name}; gnome-graphical-test = self'.checks.gnome-graphical-test; "${name}" = pkgs.callPackage ./nix/stardust-xr-server.nix { - inherit name src sk_gpu; + inherit name src; }; }; apps.default = { diff --git a/nix/gnome-graphical-test.nix b/nix/gnome-graphical-test.nix index 95b7235..4c83cd1 100644 --- a/nix/gnome-graphical-test.nix +++ b/nix/gnome-graphical-test.nix @@ -20,8 +20,8 @@ # Set a nice desktop background that is pleasing to the eyes :3 extraGSettingsOverrides = '' [org.gnome.desktop.background] - picture-uri='file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/blobs-l.svg' - picture-uri-dark='file://${pkgs.gnome.gnome-backgrounds}/share/backgrounds/gnome/blobs-l.svg' + picture-uri='file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/blobs-l.svg' + picture-uri-dark='file://${pkgs.gnome-backgrounds}/share/backgrounds/gnome/blobs-l.svg' ''; }; displayManager = { @@ -100,7 +100,7 @@ # Eval API is now internal so Shell needs to run in unsafe mode. # TODO: improve test driver so that it supports openqa-like manipulation # that would allow us to drop this mess. - "${pkgs.gnome.gnome-shell}/bin/gnome-shell --unsafe-mode" + "${pkgs.gnome-shell}/bin/gnome-shell --unsafe-mode" ]; }; }; diff --git a/nix/stardust-xr-server.nix b/nix/stardust-xr-server.nix index f31975c..6f6a7b2 100644 --- a/nix/stardust-xr-server.nix +++ b/nix/stardust-xr-server.nix @@ -1,25 +1,27 @@ -{ rustPlatform -, src -, name -, libGL -, mesa -, xorg -, fontconfig -, libxkbcommon -, libclang +{ + rustPlatform, + src, + name, + vulkan-loader, + vulkan-headers, + mesa, + xorg, + fontconfig, + libxkbcommon, + libclang, -, cmake -, cpm-cmake -, pkg-config -, llvmPackages -, fetchFromGitHub -, sk_gpu -, libXau + cmake, + pkg-config, + llvmPackages, + fetchFromGitHub, + libXau, -, libXdmcp -, stdenv -, lib -, openxr-loader + libXdmcp, + stdenv, + lib, + openxr-loader, + wayland, + alsa-lib, }: rustPlatform.buildRustPackage rec { @@ -28,50 +30,27 @@ rustPlatform.buildRustPackage rec { lockFile = (src + "/Cargo.lock"); allowBuiltinFetchGit = true; }; - buildFeatures = [ "local_deps" ]; - FORCE_LOCAL_DEPS = true; - CPM_LOCAL_PACKAGES_ONLY = true; - CPM_SOURCE_CACHE = "./build"; - CPM_USE_LOCAL_PACKAGES = true; - CPM_DOWNLOAD_ALL = false; - meshoptimizer = fetchFromGitHub { - owner = "zeux"; - repo = "meshoptimizer"; - rev = "c21d3be6ddf627f8ca852ba4b6db9903b0557858"; - sha256 = "sha256-QCxpM2g8WtYSZHkBzLTJNQ/oHb5j/n9rjaVmZJcCZIA="; - }; - basis_universal = fetchFromGitHub { - owner = "BinomialLLC"; - repo = "basis_universal"; - rev = "900e40fb5d2502927360fe2f31762bdbb624455f"; - sha256 = "sha256-zBRAXgG5Fi6+5uPQCI/RCGatY6O4ELuYBoKrPNn4K+8="; - }; - - DEP_MESHOPTIMIZER_SOURCE = "${meshoptimizer}"; - DEP_BASIS_UNIVERSAL_SOURCE = "${basis_universal}"; - DEP_SK_GPU_SOURCE = "${sk_gpu}"; - - postPatch = let libPath = lib.makeLibraryPath [ stdenv.cc.cc.lib ]; - in '' - sk=$(echo $cargoDepsCopy/stereokit-rust-*/StereoKit) - mkdir -p $sk/build/cpm - - # This is not ideal, the original approach was to fetch the exact cmake - # file version that was wanted from GitHub directly, but at least this way it comes from Nixpkgs.. so meh - cp ${cpm-cmake}/share/cpm/CPM.cmake $sk/build/cpm/CPM_0.38.7.cmake - mkdir -p $sk/sk_gpu - cp -R ${sk_gpu}/* $sk/sk_gpu - chmod -R 755 $sk/sk_gpu/tools/linux_x64/* - export DEP_SK_GPU_SOURCE=$sk/sk_gpu - export LD_LIBRARY_PATH="${stdenv.cc.cc.lib}/lib"; - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${libPath}" \ - $sk/sk_gpu/tools/linux_x64/skshaderc + preBuild = '' + substituteInPlace /build/cargo-vendor-dir/bevy_gltf-0.16.1/Cargo.toml \ + --replace-fail '[lints]' "" \ + --replace-fail 'workspace = true' "" ''; - nativeBuildInputs = [ cmake pkg-config llvmPackages.libcxxClang ]; + + postFixup = '' + patchelf $out/bin/stardust-xr-server --add-rpath ${vulkan-loader}/lib + patchelf $out/bin/stardust-xr-server --add-rpath ${openxr-loader}/lib + patchelf $out/bin/stardust-xr-server --add-rpath ${libxkbcommon}/lib + ''; + + nativeBuildInputs = [ + cmake + pkg-config + llvmPackages.libcxxClang + ]; buildInputs = [ - libGL + vulkan-loader + vulkan-headers mesa xorg.libX11.dev xorg.libXft @@ -81,6 +60,9 @@ rustPlatform.buildRustPackage rec { libXau libXdmcp openxr-loader + wayland + alsa-lib ]; + LIBCLANG_PATH = "${libclang.lib}/lib"; }