f79f80dbf2
Negative reasoning like `allBut` is a bad idea with an open world of platforms. Concretely, if we add a new, quite different sort of platform, existing packages with `allBut` will claim they work on it even though they probably won't.
58 lines
2.1 KiB
Nix
58 lines
2.1 KiB
Nix
{ stdenv, fetchurl, pkgconfig, bc, perl, pam, libXext, libXScrnSaver, libX11
|
|
, libXrandr, libXmu, libXxf86vm, libXrender, libXxf86misc, libjpeg, libGLU_combined, gtk2
|
|
, libxml2, libglade, intltool, xorg, makeWrapper, gle
|
|
, forceInstallAllHacks ? false
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
version = "5.38";
|
|
name = "xscreensaver-${version}";
|
|
|
|
src = fetchurl {
|
|
url = "https://www.jwz.org/xscreensaver/${name}.tar.gz";
|
|
sha256 = "1f58h5rgjbxr4hh40m6zkpkzbzg68l7nqzjwal0b17yysafbmsf6";
|
|
};
|
|
|
|
buildInputs =
|
|
[ pkgconfig bc perl libjpeg libGLU_combined gtk2 libxml2 libglade pam
|
|
libXext libXScrnSaver libX11 libXrandr libXmu libXxf86vm libXrender
|
|
libXxf86misc intltool xorg.appres makeWrapper gle
|
|
];
|
|
|
|
preConfigure =
|
|
''
|
|
# Fix installation paths for GTK resources.
|
|
sed -e 's%@GTK_DATADIR@%@datadir@% ; s%@PO_DATADIR@%@datadir@%' \
|
|
-i driver/Makefile.in po/Makefile.in.in
|
|
'';
|
|
|
|
configureFlags =
|
|
[ "--with-gl" "--with-pam" "--with-pixbuf" "--with-proc-interrupts"
|
|
"--with-dpms-ext" "--with-randr-ext" "--with-xinerama-ext"
|
|
"--with-xf86vmode-ext" "--with-xf86gamma-ext" "--with-randr-ext"
|
|
"--with-xshm-ext" "--with-xdbe-ext"
|
|
"--with-x-app-defaults=\${out}/share/xscreensaver/app-defaults"
|
|
];
|
|
|
|
postInstall = ''
|
|
wrapProgram $out/bin/xscreensaver-text \
|
|
--prefix PATH : ${stdenv.lib.makeBinPath [xorg.appres]}
|
|
''
|
|
+ stdenv.lib.optionalString forceInstallAllHacks ''
|
|
make -C hacks/glx dnalogo
|
|
cat hacks/Makefile.in | grep -E '([a-z0-9]+):[[:space:]]*\1[.]o' | cut -d : -f 1 | xargs make -C hacks
|
|
cat hacks/glx/Makefile.in | grep -E '([a-z0-9]+):[[:space:]]*\1[.]o' | cut -d : -f 1 | xargs make -C hacks/glx
|
|
cp -f $(find hacks -type f -perm -111 "!" -name "*.*" ) "$out/libexec/xscreensaver"
|
|
''
|
|
;
|
|
|
|
meta = {
|
|
homepage = https://www.jwz.org/xscreensaver/;
|
|
description = "A set of screensavers";
|
|
maintainers = with stdenv.lib.maintainers; [ raskin ];
|
|
platforms = stdenv.lib.platforms.unix; # Once had cygwin problems
|
|
inherit version;
|
|
downloadPage = "https://www.jwz.org/xscreensaver/download.html";
|
|
updateWalker = true;
|
|
};
|
|
}
|