diff options
-rw-r--r-- | pkgs/misc/screensavers/rss-glx/builder.sh | 29 | ||||
-rw-r--r-- | pkgs/misc/screensavers/rss-glx/default.nix | 16 | ||||
-rw-r--r-- | pkgs/os-specific/linux/opengl/xorg-sys/default.nix | 2 | ||||
-rw-r--r-- | pkgs/system/all-packages-generic.nix | 4 | ||||
-rw-r--r-- | pkgs/system/populate-cache.nix | 1 |
5 files changed, 51 insertions, 1 deletions
diff --git a/pkgs/misc/screensavers/rss-glx/builder.sh b/pkgs/misc/screensavers/rss-glx/builder.sh new file mode 100644 index 00000000000..b30dcd006a1 --- /dev/null +++ b/pkgs/misc/screensavers/rss-glx/builder.sh @@ -0,0 +1,29 @@ +source $stdenv/setup + +# This is a very dirty hack to prevent the binaries from putting the +# Mesa libraries in their RPATHs. +ensureDir $out/tmp +ln -s $mesa/lib/* $out/tmp/ +ensureDir $out/lib +ln -s $mesa/lib/libGLU* $out/lib/ +export NIX_LDFLAGS="-L$out/tmp $NIX_LDFLAGS" + +genericBuild + +rm -rf $out/tmp + + +# Add a wrapper around each program to use the appropriate OpenGL driver. +ensureDir $out/bin/.orig + +for i in $(cd $out/bin && ls); do + mv $out/bin/$i $out/bin/.orig/$i + cat >$out/bin/$i <<EOF +mesa=$mesa + +$(cat $mesaSwitch) + +exec $out/bin/.orig/$i "\$@" +EOF + chmod +x $out/bin/$i +done diff --git a/pkgs/misc/screensavers/rss-glx/default.nix b/pkgs/misc/screensavers/rss-glx/default.nix new file mode 100644 index 00000000000..d3c0911ba17 --- /dev/null +++ b/pkgs/misc/screensavers/rss-glx/default.nix @@ -0,0 +1,16 @@ +{stdenv, fetchurl, x11, mesa}: + +stdenv.mkDerivation { + name = "rss-glx-0.8.0"; + builder = ./builder.sh; + + src = fetchurl { + url = http://surfnet.dl.sourceforge.net/sourceforge/rss-glx/rss-glx_0.8.0.tar.bz2; + md5 = "d04e909521626a27f9f6d9b5f8a24d6c"; + }; + + buildInputs = [x11 mesa]; + inherit mesa; + + mesaSwitch = ../../../build-support/opengl/mesa-switch.sh; +} diff --git a/pkgs/os-specific/linux/opengl/xorg-sys/default.nix b/pkgs/os-specific/linux/opengl/xorg-sys/default.nix index ae348b70c69..8248d9a327d 100644 --- a/pkgs/os-specific/linux/opengl/xorg-sys/default.nix +++ b/pkgs/os-specific/linux/opengl/xorg-sys/default.nix @@ -11,5 +11,5 @@ stdenv.mkDerivation { name = "xorg-sys-opengl"; builder = ./builder.sh; - neededLibs = [xlibs.libXxf86vm expat]; + neededLibs = [xlibs.libXxf86vm xlibs.libXext expat]; } diff --git a/pkgs/system/all-packages-generic.nix b/pkgs/system/all-packages-generic.nix index 143b47c2bdf..59d220e5fad 100644 --- a/pkgs/system/all-packages-generic.nix +++ b/pkgs/system/all-packages-generic.nix @@ -2178,4 +2178,8 @@ rec { inherit fetchurl stdenv; }; + rssglx = (import ../misc/screensavers/rss-glx) { + inherit fetchurl stdenv x11 mesa; + }; + } diff --git a/pkgs/system/populate-cache.nix b/pkgs/system/populate-cache.nix index bac38c88204..9841268f409 100644 --- a/pkgs/system/populate-cache.nix +++ b/pkgs/system/populate-cache.nix @@ -130,6 +130,7 @@ let { jetty quake3demo + rssglx xorg_sys_opengl ;}; |