tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
0
fork
atom
lol
0
fork
atom
overview
issues
pulls
pipelines
primus: 1.0.0748176 -> 20151204, add useNvidia flag
Nikolay Amiantov
10 years ago
56ffc2ec
ae7ff020
+41
-52
4 changed files
expand all
collapse all
unified
split
pkgs
tools
X11
primus
builder.sh
default.nix
lib.nix
top-level
all-packages.nix
-12
pkgs/tools/X11/primus/builder.sh
···
1
-
source $stdenv/setup
2
-
3
-
cp -r $src src
4
-
cd src
5
-
6
-
export LIBDIR=$out/lib
7
-
export PRIMUS_libGLa=$nvidia/lib/libGL.so
8
-
export PRIMUS_libGLd=$mesa/lib/libGL.so
9
-
export PRIMUS_LOAD_GLOBAL=$mesa/lib/libglapi.so
10
-
11
-
make
12
-
ln -s $LIBDIR/libGL.so.1 $LIBDIR/libGL.so
···
0
0
0
0
0
0
0
0
0
0
0
0
+10
-23
pkgs/tools/X11/primus/default.nix
···
5
# Other distributions do the same.
6
{ stdenv
7
, primusLib
8
-
, writeScript
9
, primusLib_i686 ? null
0
10
}:
11
-
with stdenv.lib;
12
let
13
-
version = "1.0.0748176";
14
-
ldPath = makeLibraryPath ([primusLib] ++ optional (primusLib_i686 != null) primusLib_i686);
15
-
primusrun = writeScript "primusrun"
16
-
''
0
0
17
export LD_LIBRARY_PATH=${ldPath}:$LD_LIBRARY_PATH
18
exec "$@"
19
-
'';
20
-
in
21
-
stdenv.mkDerivation {
22
-
name = "primus-${version}";
23
-
builder = writeScript "builder"
24
-
''
25
-
source $stdenv/setup
26
-
mkdir -p $out/bin
27
-
cp ${primusrun} $out/bin/primusrun
28
-
'';
29
-
30
-
meta = {
31
-
homepage = https://github.com/amonakov/primus;
32
-
description = "Faster OpenGL offloading for Bumblebee";
33
-
maintainers = with maintainers; [ coconnor ];
34
-
};
35
-
}
···
5
# Other distributions do the same.
6
{ stdenv
7
, primusLib
8
+
, writeScriptBin
9
, primusLib_i686 ? null
10
+
, useNvidia ? true
11
}:
12
+
13
let
14
+
primus = if useNvidia then primusLib else primusLib.override { nvidia_x11 = null; };
15
+
primus_i686 = if useNvidia then primusLib_i686 else primusLib_i686.override { nvidia_x11 = null; };
16
+
ldPath = stdenv.lib.makeLibraryPath ([primus] ++ stdenv.lib.optional (primusLib_i686 != null) primus_i686);
17
+
18
+
in writeScriptBin "primusrun" ''
19
+
#!${stdenv.shell}
20
export LD_LIBRARY_PATH=${ldPath}:$LD_LIBRARY_PATH
21
exec "$@"
22
+
''
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
+25
-10
pkgs/tools/X11/primus/lib.nix
···
1
{ stdenv, fetchgit
2
, xlibsWrapper, mesa
3
-
, nvidia
0
4
}:
5
-
let
6
-
version = "1.0.0748176";
7
-
in
8
stdenv.mkDerivation {
9
-
name = "primus-lib-${version}";
0
10
src = fetchgit {
11
url = git://github.com/amonakov/primus.git;
12
-
rev = "074817614c014e3a99259388cb18fd54648b659a";
13
-
sha256 = "0mrh432md6zrm16avxyk57mgszrqpgwdjahspchvlaccqxp3x82v";
14
};
15
16
-
inherit nvidia mesa;
0
0
0
0
0
0
0
0
0
0
17
18
-
buildInputs = [ xlibsWrapper mesa ];
19
-
builder = ./builder.sh;
0
0
0
0
0
20
}
···
1
{ stdenv, fetchgit
2
, xlibsWrapper, mesa
3
+
, nvidia_x11 ? null
4
+
, libX11
5
}:
6
+
0
0
7
stdenv.mkDerivation {
8
+
name = "primus-lib-20151204";
9
+
10
src = fetchgit {
11
url = git://github.com/amonakov/primus.git;
12
+
rev = "d1afbf6fce2778c0751eddf19db9882e04f18bfd";
13
+
sha256 = "8f095b5e2030cdb155a42a49873832843c1e4dc3087a6fb94d198de982609923";
14
};
15
16
+
buildInputs = [ libX11 mesa ];
17
+
18
+
makeFlags = [ "LIBDIR=$(out)/lib"
19
+
"PRIMUS_libGLa=${if nvidia_x11 == null then mesa else nvidia_x11}/lib/libGL.so"
20
+
"PRIMUS_libGLd=${mesa}/lib/libGL.so"
21
+
"PRIMUS_LOAD_GLOBAL=${mesa}/lib/libglapi.so"
22
+
];
23
+
24
+
installPhase = ''
25
+
ln -s $out/lib/libGL.so.1 $out/lib/libGL.so
26
+
'';
27
28
+
meta = with stdenv.lib; {
29
+
description = "Low-overhead client-side GPU offloading";
30
+
homepage = https://github.com/amonakov/primus;
31
+
platforms = platforms.linux;
32
+
license = licenses.bsd2;
33
+
maintainers = with maintainers; [ abbradar ];
34
+
};
35
}
+6
-7
pkgs/top-level/all-packages.nix
···
13387
13388
virtualgl = callPackage ../tools/X11/virtualgl { };
13389
0
0
0
0
0
13390
primus = callPackage ../tools/X11/primus {
13391
-
primusLib = callPackage ../tools/X11/primus/lib.nix {
13392
-
nvidia = linuxPackages.nvidia_x11;
13393
-
};
13394
-
13395
primusLib_i686 = if system == "x86_64-linux"
13396
-
then callPackage_i686 ../tools/X11/primus/lib.nix {
13397
-
nvidia = pkgsi686Linux.linuxPackages.nvidia_x11.override { libsOnly = true; };
13398
-
}
13399
else null;
13400
};
13401
···
13387
13388
virtualgl = callPackage ../tools/X11/virtualgl { };
13389
13390
+
13391
+
primusLib = callPackage ../tools/X11/primus/lib.nix {
13392
+
nvidia_x11 = linuxPackages.nvidia_x11.override { libsOnly = true; };
13393
+
};
13394
+
13395
primus = callPackage ../tools/X11/primus {
0
0
0
0
13396
primusLib_i686 = if system == "x86_64-linux"
13397
+
then pkgsi686Linux.primusLib
0
0
13398
else null;
13399
};
13400