From 5f6b48c9b453e83e4d2b325f2e860c461f044399 Mon Sep 17 00:00:00 2001 From: matthewcroughan Date: Tue, 19 Aug 2025 18:18:42 +0100 Subject: [PATCH] nix/stardust-xr-server: fix build --- flake.lock | 51 ++++++++++++++++++++------------------ flake.nix | 5 +--- nix/stardust-xr-server.nix | 50 +++++++------------------------------ 3 files changed, 37 insertions(+), 69 deletions(-) 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/stardust-xr-server.nix b/nix/stardust-xr-server.nix index f31975c..9709f2d 100644 --- a/nix/stardust-xr-server.nix +++ b/nix/stardust-xr-server.nix @@ -9,17 +9,17 @@ , libclang , cmake -, cpm-cmake , pkg-config , llvmPackages , fetchFromGitHub -, sk_gpu , libXau , libXdmcp , stdenv , lib , openxr-loader +, wayland +, alsa-lib }: rustPlatform.buildRustPackage rec { @@ -28,47 +28,13 @@ 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 ]; buildInputs = [ libGL @@ -81,6 +47,8 @@ rustPlatform.buildRustPackage rec { libXau libXdmcp openxr-loader + wayland + alsa-lib ]; LIBCLANG_PATH = "${libclang.lib}/lib"; }