commit 2021895c3fbef8baa3987939f4b03447ed9dd60c
parent df9d0ecc162f397628eb04dd24978e77972a70e3
Author: Guillaume Bouchard <guillaum.bouchard@gmail.com>
Date: Tue, 10 Jul 2018 00:50:33 +0200
Bumblebee now only uses one opengl implementation
Thanks to the `overlay`, `nvidia-x11` is the same across all `nixpkgs`.
Diffstat:
| M | default.nix | | | 44 | +++++++++++++++++++++++++++++--------------- |
1 file changed, 29 insertions(+), 15 deletions(-)
diff --git a/default.nix b/default.nix
@@ -1,25 +1,39 @@
{ system ? builtins.currentSystem,
nvidiaVersion ? null,
nvidiaHash ? null,
- pkgs ? import <nixpkgs> { inherit system; }
+ pkgs ? import <nixpkgs>
}:
-with pkgs;
+let
+ overlay = self: super:
+ {
+ linuxPackages = super.linuxPackages //
+ {
+ nvidia_x11 = (super.linuxPackages.nvidia_x11.override {
+ }).overrideAttrs(oldAttrs: rec {
+ name = "nvidia-${nvidiaVersion}";
+ src = super.fetchurl {
+ url = "http://download.nvidia.com/XFree86/Linux-x86_64/${nvidiaVersion}/NVIDIA-Linux-x86_64-${nvidiaVersion}.run";
+ sha256 = nvidiaHash;
+ };
+ useGLVND = false;
+ });
+ };
+ };
+
+ nixpkgs = pkgs { overlays = [overlay]; };
+in
+with nixpkgs;
rec {
- nvidiaLibsOnly = (linuxPackages.nvidia_x11.override {
- libsOnly = true;
- kernel = null;
- }).overrideAttrs(oldAttrs: rec {
- name = "nvidia-${nvidiaVersion}";
- src = fetchurl {
- url = "http://download.nvidia.com/XFree86/Linux-x86_64/${nvidiaVersion}/NVIDIA-Linux-x86_64-${nvidiaVersion}.run";
- sha256 = nvidiaHash;
- };
- useGLVND = 0;
- });
+ nvidia = linuxPackages.nvidia_x11;
+
+ nvidiaLibsOnly = nvidia.override {
+ libsOnly = true;
+ kernel = null;
+ };
nixGLNvidiaBumblebee = runCommand "nixGLNvidiaBumblebee" {
- buildInputs = [ nvidiaLibsOnly bumblebee ];
+ buildInputs = [ nvidia bumblebee ];
meta = with pkgs.stdenv.lib; {
description = "A tool to launch OpenGL application on system other than NixOS - Nvidia bumblebee version";
@@ -29,7 +43,7 @@ rec {
mkdir -p $out/bin
cat > $out/bin/nixGLNvidiaBumblebee << FOO
#!/usr/bin/env sh
- export LD_LIBRARY_PATH=${nvidiaLibsOnly}/lib
+ export LD_LIBRARY_PATH=${nvidia}/lib
${bumblebee}/bin/optirun "\$@"
FOO