forked from mirrors/nixpkgs
59 lines
1.9 KiB
Nix
59 lines
1.9 KiB
Nix
{ lib, stdenv, fetchurl
|
|
, pkg-config, intltool
|
|
, perl, gettext, libX11, libXext, libXi, libXt
|
|
, libXft, libXinerama, libXrandr, libXxf86vm, libGL, libGLU, gle
|
|
, gtk2, gdk-pixbuf, gdk-pixbuf-xlib, libxml2, pam
|
|
, systemd
|
|
, forceInstallAllHacks ? false
|
|
, withSystemd ? stdenv.isLinux
|
|
}:
|
|
|
|
stdenv.mkDerivation rec {
|
|
version = "6.01";
|
|
pname = "xscreensaver";
|
|
|
|
src = fetchurl {
|
|
url = "https://www.jwz.org/${pname}/${pname}-${version}.tar.gz";
|
|
sha256 = "sha256-CFSEZl2R9gtKHe2s2UvPm3Sw+wlrztyJ/xwkUWjlRzs=";
|
|
};
|
|
|
|
nativeBuildInputs = [
|
|
pkg-config intltool
|
|
];
|
|
|
|
buildInputs = [
|
|
perl gettext libX11 libXext libXi libXt
|
|
libXft libXinerama libXrandr libXxf86vm libGL libGLU gle
|
|
gtk2 gdk-pixbuf gdk-pixbuf-xlib libxml2 pam
|
|
] ++ lib.optional withSystemd systemd;
|
|
|
|
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-app-defaults=${placeholder "out"}/share/xscreensaver/app-defaults"
|
|
];
|
|
|
|
postInstall = lib.optionalString forceInstallAllHacks ''
|
|
make -j$NIX_BUILD_CORES -C hacks/glx dnalogo
|
|
cat hacks/Makefile.in \
|
|
| grep -E '([a-z0-9]+):[[:space:]]*\1[.]o' | cut -d : -f 1 | xargs make -j$NIX_BUILD_CORES -C hacks
|
|
cat hacks/glx/Makefile.in \
|
|
| grep -E '([a-z0-9]+):[[:space:]]*\1[.]o' | cut -d : -f 1 | xargs make -j$NIX_BUILD_CORES -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";
|
|
license = lib.licenses.mit;
|
|
maintainers = with lib.maintainers; [ raskin ];
|
|
platforms = lib.platforms.unix; # Once had cygwin problems
|
|
downloadPage = "https://www.jwz.org/xscreensaver/download.html";
|
|
updateWalker = true;
|
|
};
|
|
}
|