Skip to content

Update tests and version regex #195

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 7 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,12 +8,8 @@ jobs:
runs-on: ubuntu-latest

steps:
- uses: actions/[email protected]
- uses: cachix/install-nix-action@v17
- uses: cachix/cachix-action@v10
with:
name: guibou
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- uses: actions/checkout@v4
- uses: cachix/install-nix-action@v30
- name: Build all
run: nix-build all.nix

36 changes: 23 additions & 13 deletions all.nix
Original file line number Diff line number Diff line change
@@ -1,25 +1,35 @@
let
pkgs = import ./nixpkgs.nix { config = { allowUnfree = true; }; };

pure = pkgs.recurseIntoAttrs (pkgs.callPackage ./nixGL.nix {
nvidiaVersion = "440.82";
nvidiaHash = "edd415acf2f75a659e0f3b4f27c1fab770cf21614e84a18152d94f0d004a758e";
pure565 = pkgs.recurseIntoAttrs (pkgs.callPackage ./nixGL.nix {
nvidiaVersion = "565.77";
nvidiaHash = "sha256-CnqnQsRrzzTXZpgkAtF7PbH9s7wbiTRNcM0SPByzFHw=";
});

versionFile440 = (pkgs.callPackage ./nixGL.nix {
nvidiaVersionFile = pkgs.writeText "nvidia-version-440.82" ''
NVRM version: NVIDIA UNIX x86_64 Kernel Module 440.82 Wed Apr 1 20:04:33 UTC 2020
pure550 = pkgs.recurseIntoAttrs (pkgs.callPackage ./nixGL.nix {
nvidiaVersion = "550.135";
nvidiaHash = "sha256-ESBH9WRABWkOdiFBpVtCIZXKa5DvQCSke61MnoGHiKk=";
});

versionFile550 = (pkgs.callPackage ./nixGL.nix {
nvidiaVersionFile = pkgs.writeText "nvidia-version-550.135" ''
NVRM version: NVIDIA UNIX x86_64 Kernel Module 550.135 Wed Apr 1 20:04:33 UTC 2020
GCC version: gcc version 9.3.0 (Arch Linux 9.3.0-1)
'';
});

versionFile510 = (pkgs.callPackage ./nixGL.nix {
nvidiaVersionFile = pkgs.writeText "nvidia-version-510.54" ''
NVRM version: NVIDIA UNIX x86_64 Kernel Module 510.54 Wed Apr 1 20:04:33 UTC 2020
GCC version: gcc version 9.3.0 (Arch Linux 9.3.0-1)
versionFile565 = (pkgs.callPackage ./nixGL.nix {
nvidiaVersionFile = pkgs.writeText "nvidia-version-565.77" ''
NVRM version: NVIDIA UNIX Open Kernel Module for x86_64 565.77 Release Build (nixbld@) Sun Feb 9 11:08:26 UTC 2025
GCC version: gcc version 13.3.0 (GCC)
'';
});

in
(with pure; [nixGLIntel nixVulkanNvidia nixGLNvidia nixVulkanIntel])
++ (with versionFile440.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia])
++ (with versionFile510.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia])
(with pure565; [nixGLIntel nixVulkanNvidia nixGLNvidia nixVulkanIntel])
++
(with pure550; [nixGLIntel nixVulkanNvidia nixGLNvidia nixVulkanIntel])
++
(with versionFile550.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia])
++
(with versionFile565.auto; [nixGLNvidia nixGLDefault nixVulkanNvidia])
8 changes: 3 additions & 5 deletions nixGL.nix
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ nvidiaVersionFile ? null,
# This is one by default, you can switch it to off if you want to reduce a
# bit the size of nixGL closure.
enable32bits ? stdenv.hostPlatform.isx86
, stdenv, writeTextFile, shellcheck, pcre, runCommand, linuxPackages
, stdenv, writeTextFile, shellcheck, pcre, runCommand, runCommandLocal, linuxPackages
, fetchurl, lib, runtimeShell, bumblebee, libglvnd, vulkan-validation-layers
, mesa, libvdpau-va-gl, intel-media-driver, pkgsi686Linux, driversi686Linux
, zlib, libdrm, xorg, wayland, gcc, zstd }:
Expand Down Expand Up @@ -217,12 +217,10 @@ let
#
# builtins.readFile is not able to read /proc files. See
# https://github.com/NixOS/nix/issues/3539.
runCommand "impure-nvidia-version-file" {
runCommandLocal "impure-nvidia-version-file" {
# To avoid sharing the build result over time or between machine,
# Add an impure parameter to force the rebuild on each access.
time = builtins.currentTime;
preferLocalBuild = true;
allowSubstitutes = false;
} "cp /proc/driver/nvidia/version $out 2> /dev/null || touch $out";

# The nvidia version. Either fixed by the `nvidiaVersion` argument, or
Expand All @@ -233,7 +231,7 @@ let
# Get if from the nvidiaVersionFile
let
data = builtins.readFile _nvidiaVersionFile;
versionMatch = builtins.match ".*Module ([0-9.]+) .*" data;
versionMatch = builtins.match ".*NVIDIA UNIX.*Kernel Module.* ([0-9]+\\.[0-9]+) .*" data;
in if versionMatch != null then builtins.head versionMatch else null;

autoNvidia = nvidiaPackages {version = nvidiaVersionAuto; };
Expand Down
2 changes: 1 addition & 1 deletion nixpkgs.nix
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
let
rev = "4f6d8095fd51";
rev = "0b73e36b1962620a8ac551a37229dd8662dac5c8";
in
import (fetchTarball {
url = "https://github.com/nixos/nixpkgs/archive/${rev}.tar.gz";
Expand Down