Bumblebee now only uses one opengl implementation

Thanks to the `overlay`, `nvidia-x11` is the same across all `nixpkgs`.
This commit is contained in:
Guillaume Bouchard 2018-07-10 00:50:33 +02:00
parent df9d0ecc16
commit 2021895c3f

View File

@ -1,25 +1,39 @@
{ system ? builtins.currentSystem, { system ? builtins.currentSystem,
nvidiaVersion ? null, nvidiaVersion ? null,
nvidiaHash ? 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 { rec {
nvidiaLibsOnly = (linuxPackages.nvidia_x11.override { nvidia = linuxPackages.nvidia_x11;
libsOnly = true;
kernel = null; nvidiaLibsOnly = nvidia.override {
}).overrideAttrs(oldAttrs: rec { libsOnly = true;
name = "nvidia-${nvidiaVersion}"; kernel = null;
src = fetchurl { };
url = "http://download.nvidia.com/XFree86/Linux-x86_64/${nvidiaVersion}/NVIDIA-Linux-x86_64-${nvidiaVersion}.run";
sha256 = nvidiaHash;
};
useGLVND = 0;
});
nixGLNvidiaBumblebee = runCommand "nixGLNvidiaBumblebee" { nixGLNvidiaBumblebee = runCommand "nixGLNvidiaBumblebee" {
buildInputs = [ nvidiaLibsOnly bumblebee ]; buildInputs = [ nvidia bumblebee ];
meta = with pkgs.stdenv.lib; { meta = with pkgs.stdenv.lib; {
description = "A tool to launch OpenGL application on system other than NixOS - Nvidia bumblebee version"; description = "A tool to launch OpenGL application on system other than NixOS - Nvidia bumblebee version";
@ -29,7 +43,7 @@ rec {
mkdir -p $out/bin mkdir -p $out/bin
cat > $out/bin/nixGLNvidiaBumblebee << FOO cat > $out/bin/nixGLNvidiaBumblebee << FOO
#!/usr/bin/env sh #!/usr/bin/env sh
export LD_LIBRARY_PATH=${nvidiaLibsOnly}/lib export LD_LIBRARY_PATH=${nvidia}/lib
${bumblebee}/bin/optirun "\$@" ${bumblebee}/bin/optirun "\$@"
FOO FOO