From 3ec6a617637e4f3bc2ee2c9c290cb5740afd7808 Mon Sep 17 00:00:00 2001 From: Uriel Date: Thu, 3 Jul 2025 01:28:05 +0200 Subject: [PATCH] Add ARM builds in CI (#1482) --- .github/workflows/build-gui.yml | 29 +- .github/workflows/gradle.yaml | 83 ++-- .node-version | 2 +- flake.lock | 683 ++++++-------------------------- flake.nix | 1 - 5 files changed, 180 insertions(+), 618 deletions(-) diff --git a/.github/workflows/build-gui.yml b/.github/workflows/build-gui.yml index df26c360f..713d87202 100644 --- a/.github/workflows/build-gui.yml +++ b/.github/workflows/build-gui.yml @@ -42,35 +42,46 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-22.04, windows-latest, macos-latest] + os: + [ + ubuntu-22.04, + windows-latest, + macos-latest, + ubuntu-22.04-arm, + windows-11-arm, + ] runs-on: ${{ matrix.os }} env: # Don't mark warnings as errors CI: false + BUILD_ARCH: ${{ endsWith(matrix.os, 'arm') && 'aarch64' || 'amd64' }} steps: - uses: actions/checkout@v4 with: submodules: recursive - - if: matrix.os == 'ubuntu-22.04' + - if: startsWith(matrix.os, 'ubuntu') name: Set up Linux dependencies uses: awalsh128/cache-apt-pkgs-action@v1.5.0 with: packages: libgtk-3-dev webkit2gtk-4.1 libappindicator3-dev librsvg2-dev patchelf # Increment to invalidate the cache - version: 1.0 + version: ${{ format('v1.0-{0}', env.BUILD_ARCH) }} # Enables a workaround to attempt to run pre and post install scripts execute_install_scripts: true # Disables uploading logs as a build artifact debug: false + - if: matrix.os == 'windows-11-arm' + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + cache: false + - name: Cache cargo dependencies uses: Swatinem/rust-cache@v2 - with: - shared-key: "${{ matrix.os }}" - uses: pnpm/action-setup@v4 - name: Use Node.js @@ -90,21 +101,21 @@ jobs: NODE_OPTIONS: ${{ matrix.os == 'macos-latest' && '--max-old-space-size=4096' || '' }} run: pnpm run skipbundler --config $( ./gui/scripts/gitversion.mjs ) - - if: matrix.os == 'windows-latest' + - if: startsWith(matrix.os, 'windows') name: Upload a Build Artifact (Windows) uses: actions/upload-artifact@v4 with: # Artifact name - name: SlimeVR-GUI-Windows + name: ${{ format('SlimeVR-GUI-Windows-{0}', env.BUILD_ARCH) }} # A file, directory or wildcard pattern that describes what to upload path: target/release/slimevr.exe - - if: matrix.os == 'ubuntu-22.04' + - if: startsWith(matrix.os, 'ubuntu') name: Upload a Build Artifact (Linux) uses: actions/upload-artifact@v4 with: # Artifact name - name: SlimeVR-GUI-Linux + name: ${{ format('SlimeVR-GUI-Linux-{0}', env.BUILD_ARCH) }} # A file, directory or wildcard pattern that describes what to upload path: target/release/slimevr diff --git a/.github/workflows/gradle.yaml b/.github/workflows/gradle.yaml index 2354c16fa..6d559a716 100644 --- a/.github/workflows/gradle.yaml +++ b/.github/workflows/gradle.yaml @@ -29,8 +29,8 @@ jobs: - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: "17" - distribution: "adopt" + java-version: '17' + distribution: 'adopt' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -44,7 +44,6 @@ jobs: - name: Test with Gradle run: ./gradlew test - build: runs-on: ubuntu-latest @@ -59,8 +58,8 @@ jobs: - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: "17" - distribution: "adopt" + java-version: '17' + distribution: 'adopt' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -72,7 +71,7 @@ jobs: uses: actions/upload-artifact@v4 with: # Artifact name - name: "SlimeVR-Server" # optional, default is artifact + name: 'SlimeVR-Server' # optional, default is artifact # A file, directory or wildcard pattern that describes what to upload path: server/desktop/build/libs/slimevr.jar @@ -85,7 +84,6 @@ jobs: files: | server/desktop/build/libs/slimevr.jar - bundle-android: runs-on: ubuntu-latest steps: @@ -99,8 +97,8 @@ jobs: - name: Set up JDK 17 uses: actions/setup-java@v4 with: - java-version: "17" - distribution: "adopt" + java-version: '17' + distribution: 'adopt' - name: Setup Gradle uses: gradle/actions/setup-gradle@v4 @@ -127,7 +125,7 @@ jobs: uses: actions/upload-artifact@v4 with: # Artifact name - name: "SlimeVR-Android" # optional, default is artifact + name: 'SlimeVR-Android' # optional, default is artifact # A file, directory or wildcard pattern that describes what to upload path: server/android/build/outputs/apk/* @@ -145,11 +143,16 @@ jobs: files: | ./SlimeVR-android.apk - bundle-linux: - runs-on: ubuntu-24.04 + strategy: + matrix: + os: [ubuntu-latest, ubuntu-24.04-arm] + runs-on: ${{ matrix.os }} needs: [build, test] if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name) + + env: + BUILD_ARCH: ${{ endsWith(matrix.os, 'arm') && 'aarch64' || 'amd64' }} steps: - uses: actions/checkout@v4 with: @@ -157,7 +160,7 @@ jobs: - uses: actions/download-artifact@v4 with: - name: "SlimeVR-Server" + name: 'SlimeVR-Server' path: server/desktop/build/libs/ - name: Set up Linux dependencies @@ -166,7 +169,7 @@ jobs: packages: | build-essential curl wget file libssl-dev libgtk-3-dev libappindicator3-dev librsvg2-dev # Increment to invalidate the cache - version: 2.0 + version: ${{ format('v1.0-{0}', env.BUILD_ARCH) }} # Enables a workaround to attempt to run pre and post install scripts execute_install_scripts: true # Disables uploading logs as a build artifact @@ -184,8 +187,6 @@ jobs: - name: Cache cargo dependencies uses: Swatinem/rust-cache@v2 - with: - shared-key: "ubuntu-22.04" - uses: pnpm/action-setup@v4 - name: Use Node.js @@ -207,31 +208,32 @@ jobs: tar czf slimevr-gui-dist.tar.gz -C gui/dist/ . - uses: actions/upload-artifact@v4 + if: matrix.os == 'ubuntu-latest' with: name: SlimeVR-GUI-Dist path: ./slimevr-gui-dist.tar.gz - uses: actions/upload-artifact@v4 with: - name: SlimeVR-GUI-Deb + name: ${{ format('SlimeVR-GUI-Deb-{0}', env.BUILD_ARCH) }} path: target/release/bundle/deb/slimevr*.deb - uses: actions/upload-artifact@v4 with: - name: SlimeVR-GUI-AppImage + name: ${{ format('SlimeVR-GUI-AppImage-{0}', env.BUILD_ARCH) }} path: target/release/bundle/appimage/slimevr*.AppImage - uses: actions/upload-artifact@v4 with: - name: SlimeVR-GUI-RPM - path: target/release/bundle/rpm/slimevr*.rpm + name: ${{ format('SlimeVR-GUI-RPM-{0}', env.BUILD_ARCH) }} + path: target/release/bundle/rpm/slimevr*.rpm - name: Prepare for release if: startsWith(github.ref, 'refs/tags/') run: | - cp target/release/bundle/appimage/slimevr*.AppImage ./SlimeVR-amd64.appimage - cp target/release/bundle/deb/slimevr*.deb ./SlimeVR-amd64.deb - cp target/release/bundle/rpm/slimevr*.rpm ./SlimeVR-amd64.rpm + cp target/release/bundle/appimage/slimevr*.AppImage "./SlimeVR-$BUILD_ARCH.appimage" + cp target/release/bundle/deb/slimevr*.deb "./SlimeVR-$BUILD_ARCH.deb" + cp target/release/bundle/rpm/slimevr*.rpm "./SlimeVR-$BUILD_ARCH.rpm" - name: Upload to draft release uses: softprops/action-gh-release@v2 @@ -241,10 +243,9 @@ jobs: generate_release_notes: true files: | ./slimevr-gui-dist.tar.gz - ./SlimeVR-amd64.appimage - ./SlimeVR-amd64.deb - ./SlimeVR-amd64.rpm - + ./SlimeVR-*.appimage + ./SlimeVR-*.deb + ./SlimeVR-*.rpm bundle-mac: runs-on: macos-latest @@ -257,13 +258,11 @@ jobs: - uses: actions/download-artifact@v4 with: - name: "SlimeVR-Server" + name: 'SlimeVR-Server' path: server/desktop/build/libs/ - name: Cache cargo dependencies uses: Swatinem/rust-cache@v2 - with: - shared-key: "macos-latest" - uses: pnpm/action-setup@v4 - name: Use Node.js @@ -322,11 +321,16 @@ jobs: files: | ./SlimeVR-mac.dmg - bundle-windows: - runs-on: windows-latest + strategy: + matrix: + os: [windows-latest, windows-11-arm] + runs-on: ${{ matrix.os }} needs: [build, test] if: contains(fromJSON('["workflow_dispatch", "create"]'), github.event_name) + + env: + BUILD_ARCH: ${{ endsWith(matrix.os, 'arm') && 'win-aarch64' || 'win64' }} steps: - uses: actions/checkout@v4 with: @@ -334,13 +338,16 @@ jobs: - uses: actions/download-artifact@v4 with: - name: "SlimeVR-Server" + name: 'SlimeVR-Server' path: server/desktop/build/libs/ + - if: matrix.os == 'windows-11-arm' + uses: actions-rust-lang/setup-rust-toolchain@v1 + with: + cache: false + - name: Cache cargo dependencies uses: Swatinem/rust-cache@v2 - with: - shared-key: "windows-latest" - uses: pnpm/action-setup@v4 - name: Use Node.js @@ -367,11 +374,11 @@ jobs: cp server/desktop/build/libs/slimevr.jar ./SlimeVR/slimevr.jar cp server/core/resources/* ./SlimeVR/ cp target/release/slimevr.exe ./SlimeVR/ - 7z a -tzip SlimeVR-win64.zip ./SlimeVR/ + 7z a -tzip "SlimeVR-$BUILD_ARCH.zip" ./SlimeVR/ - uses: actions/upload-artifact@v4 with: - name: SlimeVR-GUI-Windows + name: ${{ format('SlimeVR-GUI-Windows-{0}', env.BUILD_ARCH) }} path: ./SlimeVR*.zip - name: Upload to draft release @@ -380,4 +387,4 @@ jobs: with: draft: true generate_release_notes: true - files: ./SlimeVR-win64.zip + files: ./SlimeVR-*.zip diff --git a/.node-version b/.node-version index b460d6f2d..fc37597bc 100644 --- a/.node-version +++ b/.node-version @@ -1 +1 @@ -18.12.1 +22.17.0 diff --git a/flake.lock b/flake.lock index af78cdf72..9b52ca5fb 100644 --- a/flake.lock +++ b/flake.lock @@ -2,14 +2,15 @@ "nodes": { "cachix": { "inputs": { - "devenv": "devenv_2", + "devenv": [ + "devenv" + ], "flake-compat": [ - "devenv", - "flake-compat" + "devenv" ], "git-hooks": [ "devenv", - "pre-commit-hooks" + "git-hooks" ], "nixpkgs": [ "devenv", @@ -17,51 +18,16 @@ ] }, "locked": { - "lastModified": 1726520618, - "narHash": "sha256-jOsaBmJ/EtX5t/vbylCdS7pWYcKGmWOKg4QKUzKr6dA=", + "lastModified": 1748883665, + "narHash": "sha256-R0W7uAg+BLoHjMRMQ8+oiSbTq8nkGz5RDpQ+ZfxxP3A=", "owner": "cachix", "repo": "cachix", - "rev": "695525f9086542dfb09fde0871dbf4174abbf634", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "cachix", - "type": "github" - } - }, - "cachix_2": { - "inputs": { - "devenv": "devenv_3", - "flake-compat": [ - "devenv", - "cachix", - "devenv", - "flake-compat" - ], - "nixpkgs": [ - "devenv", - "cachix", - "devenv", - "nixpkgs" - ], - "pre-commit-hooks": [ - "devenv", - "cachix", - "devenv", - "pre-commit-hooks" - ] - }, - "locked": { - "lastModified": 1712055811, - "narHash": "sha256-7FcfMm5A/f02yyzuavJe06zLa9hcMHsagE28ADcmQvk=", - "owner": "cachix", - "repo": "cachix", - "rev": "02e38da89851ec7fec3356a5c04bc8349cae0e30", + "rev": "f707778d902af4d62d8dd92c269f8e70de09acbe", "type": "github" }, "original": { "owner": "cachix", + "ref": "latest", "repo": "cachix", "type": "github" } @@ -69,92 +35,23 @@ "devenv": { "inputs": { "cachix": "cachix", - "flake-compat": "flake-compat_2", - "nix": "nix_3", - "nixpkgs": [ - "nixpkgs" - ], - "pre-commit-hooks": "pre-commit-hooks_2" - }, - "locked": { - "lastModified": 1730213537, - "narHash": "sha256-bWoeNdFISbGK8M0Xw4edmManGCkJ1oNqbfNY0Hlv9Vc=", - "owner": "cachix", - "repo": "devenv", - "rev": "5c046eeafd13f7a2b9fc733f70ea17571b24410f", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "devenv", - "type": "github" - } - }, - "devenv_2": { - "inputs": { - "cachix": "cachix_2", - "flake-compat": [ - "devenv", - "cachix", - "flake-compat" - ], - "nix": "nix_2", - "nixpkgs": [ - "devenv", - "cachix", - "nixpkgs" - ], - "pre-commit-hooks": [ - "devenv", - "cachix", - "git-hooks" - ] - }, - "locked": { - "lastModified": 1723156315, - "narHash": "sha256-0JrfahRMJ37Rf1i0iOOn+8Z4CLvbcGNwa2ChOAVrp/8=", - "owner": "cachix", - "repo": "devenv", - "rev": "ff5eb4f2accbcda963af67f1a1159e3f6c7f5f91", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "devenv", - "type": "github" - } - }, - "devenv_3": { - "inputs": { - "flake-compat": [ - "devenv", - "cachix", - "devenv", - "cachix", - "flake-compat" - ], + "flake-compat": "flake-compat", + "git-hooks": "git-hooks", "nix": "nix", - "nixpkgs": "nixpkgs", - "poetry2nix": "poetry2nix", - "pre-commit-hooks": [ - "devenv", - "cachix", - "devenv", - "cachix", - "pre-commit-hooks" + "nixpkgs": [ + "nixpkgs" ] }, "locked": { - "lastModified": 1708704632, - "narHash": "sha256-w+dOIW60FKMaHI1q5714CSibk99JfYxm0CzTinYWr+Q=", + "lastModified": 1750800495, + "narHash": "sha256-wBTGFNCx3Gr3BkNkEoFrKx9+d7otSdQesCDCPGDKZHk=", "owner": "cachix", "repo": "devenv", - "rev": "2ee4450b0f4b95a1b90f2eb5ffea98b90e48c196", + "rev": "b33ab3610c084a7e3fabc5eefaeb437449f1efe7", "type": "github" }, "original": { "owner": "cachix", - "ref": "python-rewrite", "repo": "devenv", "type": "github" } @@ -167,11 +64,11 @@ "rust-analyzer-src": "rust-analyzer-src" }, "locked": { - "lastModified": 1730270567, - "narHash": "sha256-ZTBMwsY0i5zTT6rejotc9wqcSGkEgAeejXktJBo9Z5M=", + "lastModified": 1750833544, + "narHash": "sha256-e5W27mfPGiM35qr0DjTUzLHP4ET2MbvRc4HJHScw/ko=", "owner": "nix-community", "repo": "fenix", - "rev": "6535bb2a77a3bec73cc5b2d2ff63da8a479e32bd", + "rev": "c3940d9ff4d37e965e5841149367234c2aad1ab6", "type": "github" }, "original": { @@ -183,27 +80,11 @@ "flake-compat": { "flake": false, "locked": { - "lastModified": 1673956053, - "narHash": "sha256-4gtG9iQuiKITOjNQQeQIpoIB6b16fm+504Ch3sNKLd8=", + "lastModified": 1747046372, + "narHash": "sha256-CIVLLkVgvHYbgI2UpXvIIBJ12HWgX+fjA8Xf8PUmqCY=", "owner": "edolstra", "repo": "flake-compat", - "rev": "35bb57c0c8d8b62bbfd284272c928ceb64ddbde9", - "type": "github" - }, - "original": { - "owner": "edolstra", - "repo": "flake-compat", - "type": "github" - } - }, - "flake-compat_2": { - "flake": false, - "locked": { - "lastModified": 1696426674, - "narHash": "sha256-kvjfFW7WAETZlt09AgDn1MrtKzP7t90Vf7vypd3OL1U=", - "owner": "edolstra", - "repo": "flake-compat", - "rev": "0f9255e01c2351cc7d116c072cb317785dd33b33", + "rev": "9100a0f413b0c601e0533d1d94ffd501ce2e7885", "type": "github" }, "original": { @@ -221,11 +102,11 @@ ] }, "locked": { - "lastModified": 1712014858, - "narHash": "sha256-sB4SWl2lX95bExY2gMFG5HIzvva5AVMJd4Igm+GpZNw=", + "lastModified": 1733312601, + "narHash": "sha256-4pDvzqnegAfRkPwO3wmwBhVi/Sye1mzps0zHWYnP88c=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "9126214d0a59633752a136528f5f3b9aa8565b7d", + "rev": "205b12d8b7cd4802fbcb8e8ef6a0f1408781a4f9", "type": "github" }, "original": { @@ -239,11 +120,11 @@ "nixpkgs-lib": "nixpkgs-lib" }, "locked": { - "lastModified": 1727826117, - "narHash": "sha256-K5ZLCyfO/Zj9mPFldf3iwS6oZStJcU4tSpiXTMYaaL0=", + "lastModified": 1749398372, + "narHash": "sha256-tYBdgS56eXYaWVW3fsnPQ/nFlgWi/Z2Ymhyu21zVM98=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "3d04084d54bedc3d6b8b736c70ef449225c361b1", + "rev": "9305fe4e5c2a6fcf5ba6a3ff155720fbe4076569", "type": "github" }, "original": { @@ -252,57 +133,6 @@ } }, "flake-utils": { - "inputs": { - "systems": "systems" - }, - "locked": { - "lastModified": 1689068808, - "narHash": "sha256-6ixXo3wt24N/melDWjq70UuHQLxGV8jZvooRanIHXw0=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "919d646de7be200f3bf08cb76ae1f09402b6f9b4", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_2": { - "locked": { - "lastModified": 1667395993, - "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_3": { - "inputs": { - "systems": "systems_2" - }, - "locked": { - "lastModified": 1710146030, - "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a", - "type": "github" - }, - "original": { - "owner": "numtide", - "repo": "flake-utils", - "type": "github" - } - }, - "flake-utils_4": { "locked": { "lastModified": 1659877975, "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", @@ -317,17 +147,41 @@ "type": "github" } }, + "git-hooks": { + "inputs": { + "flake-compat": [ + "devenv", + "flake-compat" + ], + "gitignore": "gitignore", + "nixpkgs": [ + "devenv", + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749636823, + "owner": "cachix", + "repo": "git-hooks.nix", + "rev": "623c56286de5a3193aa38891a6991b28f9bab056", + "type": "github" + }, + "original": { + "owner": "cachix", + "repo": "git-hooks.nix", + "type": "github" + } + }, "gitignore": { "inputs": { "nixpkgs": [ "devenv", - "pre-commit-hooks", + "git-hooks", "nixpkgs" ] }, "locked": { "lastModified": 1709087332, - "narHash": "sha256-HG2cCnktfHsKV0s4XW83gU3F57gaTljL9KNSuG6bnQs=", "owner": "hercules-ci", "repo": "gitignore.nix", "rev": "637db329424fd7e46cf4185293b9cc8c88c95394", @@ -339,22 +193,6 @@ "type": "github" } }, - "libgit2": { - "flake": false, - "locked": { - "lastModified": 1697646580, - "narHash": "sha256-oX4Z3S9WtJlwvj0uH9HlYcWv+x1hqp8mhXl7HsLu2f0=", - "owner": "libgit2", - "repo": "libgit2", - "rev": "45fd9ed7ae1a9b74b957ef4f337bc3c8b3df01b5", - "type": "github" - }, - "original": { - "owner": "libgit2", - "repo": "libgit2", - "type": "github" - } - }, "mk-shell-bin": { "locked": { "lastModified": 1677004959, @@ -371,142 +209,62 @@ } }, "nix": { - "inputs": { - "flake-compat": "flake-compat", - "nixpkgs": [ - "devenv", - "cachix", - "devenv", - "cachix", - "devenv", - "nixpkgs" - ], - "nixpkgs-regression": "nixpkgs-regression" - }, - "locked": { - "lastModified": 1712911606, - "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", - "owner": "domenkozar", - "repo": "nix", - "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", - "type": "github" - }, - "original": { - "owner": "domenkozar", - "ref": "devenv-2.21", - "repo": "nix", - "type": "github" - } - }, - "nix-github-actions": { - "inputs": { - "nixpkgs": [ - "devenv", - "cachix", - "devenv", - "cachix", - "devenv", - "poetry2nix", - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1688870561, - "narHash": "sha256-4UYkifnPEw1nAzqqPOTL2MvWtm3sNGw1UTYTalkTcGY=", - "owner": "nix-community", - "repo": "nix-github-actions", - "rev": "165b1650b753316aa7f1787f3005a8d2da0f5301", - "type": "github" - }, - "original": { - "owner": "nix-community", - "repo": "nix-github-actions", - "type": "github" - } - }, - "nix2container": { - "inputs": { - "flake-utils": "flake-utils_3", - "nixpkgs": [ - "nixpkgs" - ] - }, - "locked": { - "lastModified": 1729339656, - "narHash": "sha256-smV7HQ/OqZeRguQxNjsb3uQDwm0p6zKDbSDbPCav/oY=", - "owner": "nlewo", - "repo": "nix2container", - "rev": "cc96df7c3747c61c584d757cfc083922b4f4b33e", - "type": "github" - }, - "original": { - "owner": "nlewo", - "repo": "nix2container", - "type": "github" - } - }, - "nix_2": { - "inputs": { - "flake-compat": [ - "devenv", - "cachix", - "devenv", - "flake-compat" - ], - "nixpkgs": [ - "devenv", - "cachix", - "devenv", - "nixpkgs" - ], - "nixpkgs-regression": "nixpkgs-regression_2" - }, - "locked": { - "lastModified": 1712911606, - "narHash": "sha256-BGvBhepCufsjcUkXnEEXhEVjwdJAwPglCC2+bInc794=", - "owner": "domenkozar", - "repo": "nix", - "rev": "b24a9318ea3f3600c1e24b4a00691ee912d4de12", - "type": "github" - }, - "original": { - "owner": "domenkozar", - "ref": "devenv-2.21", - "repo": "nix", - "type": "github" - } - }, - "nix_3": { "inputs": { "flake-compat": [ "devenv", "flake-compat" ], "flake-parts": "flake-parts", - "libgit2": "libgit2", - "nixpkgs": "nixpkgs_2", - "nixpkgs-23-11": "nixpkgs-23-11", - "nixpkgs-regression": "nixpkgs-regression_3", - "pre-commit-hooks": "pre-commit-hooks" + "git-hooks-nix": [ + "devenv", + "git-hooks" + ], + "nixpkgs": "nixpkgs", + "nixpkgs-23-11": [ + "devenv" + ], + "nixpkgs-regression": [ + "devenv" + ] }, "locked": { - "lastModified": 1727438425, - "narHash": "sha256-X8ES7I1cfNhR9oKp06F6ir4Np70WGZU5sfCOuNBEwMg=", - "owner": "domenkozar", + "lastModified": 1750117611, + "narHash": "sha256-LTwASICtyN3AjzlF9l2ZNAIVZqclio3yRcwwZy3QSJA=", + "owner": "cachix", "repo": "nix", - "rev": "f6c5ae4c1b2e411e6b1e6a8181cc84363d6a7546", + "rev": "9e4fc95c388e2223d47da865503dee20d179776a", "type": "github" }, "original": { - "owner": "domenkozar", - "ref": "devenv-2.24", + "owner": "cachix", + "ref": "devenv-2.30", "repo": "nix", "type": "github" } }, + "nix2container": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1749158376, + "narHash": "sha256-uirStFNxauh0lxzBowcp28X+Sq7JgsBIDnbwbAfZwf8=", + "owner": "nlewo", + "repo": "nix2container", + "rev": "0f8974c58755dba441df03598eefd1e1cd50e341", + "type": "github" + }, + "original": { + "owner": "nlewo", + "repo": "nix2container", + "type": "github" + } + }, "nixgl": { "inputs": { - "flake-utils": "flake-utils_4", + "flake-utils": "flake-utils", "nixpkgs": [ "nixpkgs" ] @@ -527,135 +285,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1692808169, - "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", + "lastModified": 1747179050, + "narHash": "sha256-qhFMmDkeJX9KJwr5H32f1r7Prs7XbQWtO0h3V0a0rFY=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixpkgs-unstable", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs-23-11": { - "locked": { - "lastModified": 1717159533, - "narHash": "sha256-oamiKNfr2MS6yH64rUn99mIZjc45nGJlj9eGth/3Xuw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "a62e6edd6d5e1fa0329b8653c801147986f8d446", - "type": "github" - } - }, - "nixpkgs-lib": { - "locked": { - "lastModified": 1727825735, - "narHash": "sha256-0xHYkMkeLVQAMa7gvkddbPqpxph+hDzdu1XdGPJR+Os=", - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" - }, - "original": { - "type": "tarball", - "url": "https://github.com/NixOS/nixpkgs/archive/fb192fec7cc7a4c26d51779e9bab07ce6fa5597a.tar.gz" - } - }, - "nixpkgs-regression": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - } - }, - "nixpkgs-regression_2": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - } - }, - "nixpkgs-regression_3": { - "locked": { - "lastModified": 1643052045, - "narHash": "sha256-uGJ0VXIhWKGXxkeNnq4TvV3CIOkUJ3PAoLZ3HMzNVMw=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - }, - "original": { - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "215d4d0fd80ca5163643b03a33fde804a29cc1e2", - "type": "github" - } - }, - "nixpkgs-stable": { - "locked": { - "lastModified": 1720386169, - "narHash": "sha256-NGKVY4PjzwAa4upkGtAMz1npHGoRzWotlSnVlqI40mo=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "194846768975b7ad2c4988bdb82572c00222c0d7", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "nixos-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_2": { - "locked": { - "lastModified": 1717432640, - "narHash": "sha256-+f9c4/ZX5MWDOuB1rKoWj+lBNm0z0rs4CK47HBLxy1o=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "88269ab3044128b7c2f4c7d68448b2fb50456870", - "type": "github" - }, - "original": { - "owner": "NixOS", - "ref": "release-24.05", - "repo": "nixpkgs", - "type": "github" - } - }, - "nixpkgs_3": { - "locked": { - "lastModified": 1729880355, - "narHash": "sha256-RP+OQ6koQQLX5nw0NmcDrzvGL8HDLnyXt/jHhL1jwjM=", - "owner": "NixOS", - "repo": "nixpkgs", - "rev": "18536bf04cd71abd345f9579158841376fdd0c5a", + "rev": "adaa24fbf46737f3f1b5497bf64bae750f82942e", "type": "github" }, "original": { @@ -665,93 +299,34 @@ "type": "github" } }, - "poetry2nix": { - "inputs": { - "flake-utils": "flake-utils", - "nix-github-actions": "nix-github-actions", - "nixpkgs": [ - "devenv", - "cachix", - "devenv", - "cachix", - "devenv", - "nixpkgs" - ] - }, + "nixpkgs-lib": { "locked": { - "lastModified": 1692876271, - "narHash": "sha256-IXfZEkI0Mal5y1jr6IRWMqK8GW2/f28xJenZIPQqkY0=", + "lastModified": 1748740939, + "narHash": "sha256-rQaysilft1aVMwF14xIdGS3sj1yHlI6oKQNBRTF40cc=", "owner": "nix-community", - "repo": "poetry2nix", - "rev": "d5006be9c2c2417dafb2e2e5034d83fabd207ee3", + "repo": "nixpkgs.lib", + "rev": "656a64127e9d791a334452c6b6606d17539476e2", "type": "github" }, "original": { "owner": "nix-community", - "repo": "poetry2nix", + "repo": "nixpkgs.lib", "type": "github" } }, - "pre-commit-hooks": { - "inputs": { - "flake-compat": [ - "devenv", - "nix" - ], - "flake-utils": "flake-utils_2", - "gitignore": [ - "devenv", - "nix" - ], - "nixpkgs": [ - "devenv", - "nix", - "nixpkgs" - ], - "nixpkgs-stable": [ - "devenv", - "nix", - "nixpkgs" - ] - }, + "nixpkgs_2": { "locked": { - "lastModified": 1712897695, - "narHash": "sha256-nMirxrGteNAl9sWiOhoN5tIHyjBbVi5e2tgZUgZlK3Y=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "40e6053ecb65fcbf12863338a6dcefb3f55f1bf8", + "lastModified": 1750741721, + "narHash": "sha256-Z0djmTa1YmnGMfE9jEe05oO4zggjDmxOGKwt844bUhE=", + "owner": "NixOS", + "repo": "nixpkgs", + "rev": "4b1164c3215f018c4442463a27689d973cffd750", "type": "github" }, "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "type": "github" - } - }, - "pre-commit-hooks_2": { - "inputs": { - "flake-compat": [ - "devenv", - "flake-compat" - ], - "gitignore": "gitignore", - "nixpkgs": [ - "devenv", - "nixpkgs" - ], - "nixpkgs-stable": "nixpkgs-stable" - }, - "locked": { - "lastModified": 1726745158, - "narHash": "sha256-D5AegvGoEjt4rkKedmxlSEmC+nNLMBPWFxvmYnVLhjk=", - "owner": "cachix", - "repo": "pre-commit-hooks.nix", - "rev": "4e743a6920eab45e8ba0fbe49dc459f1423a4b74", - "type": "github" - }, - "original": { - "owner": "cachix", - "repo": "pre-commit-hooks.nix", + "owner": "NixOS", + "ref": "nixos-unstable", + "repo": "nixpkgs", "type": "github" } }, @@ -763,17 +338,17 @@ "mk-shell-bin": "mk-shell-bin", "nix2container": "nix2container", "nixgl": "nixgl", - "nixpkgs": "nixpkgs_3" + "nixpkgs": "nixpkgs_2" } }, "rust-analyzer-src": { "flake": false, "locked": { - "lastModified": 1730197931, - "narHash": "sha256-MjYc80pHGrD6TYMHHpXniCW0egVyHiDR23xAh7MN7Ww=", + "lastModified": 1750788942, + "narHash": "sha256-bBSdUlEw/7xh66rtMEDg39xQUNN2VaDJIbRPIwhpFYk=", "owner": "rust-lang", "repo": "rust-analyzer", - "rev": "468b5cd43023d9771996b06ab7215997895a6059", + "rev": "c68c8a81a7d2979778ae1e8ba024beacb4fff6b6", "type": "github" }, "original": { @@ -782,36 +357,6 @@ "repo": "rust-analyzer", "type": "github" } - }, - "systems": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } - }, - "systems_2": { - "locked": { - "lastModified": 1681028828, - "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", - "owner": "nix-systems", - "repo": "default", - "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", - "type": "github" - }, - "original": { - "owner": "nix-systems", - "repo": "default", - "type": "github" - } } }, "root": "root", diff --git a/flake.nix b/flake.nix index d33070ad5..92230fecd 100644 --- a/flake.nix +++ b/flake.nix @@ -78,7 +78,6 @@ cacert ]) ++ lib.optionals pkgs.stdenv.isLinux (with pkgs; [ - appimagekit atk cairo dbus