2021-10-28 06:52:43 +00:00
|
|
|
{ lib, stdenv, fetchurl, makeWrapper
|
2021-04-13 19:44:15 +00:00
|
|
|
, pkg-config, intltool
|
2022-06-16 17:23:12 +00:00
|
|
|
, perl, perlPackages, gettext, libX11, libXext, libXi, libXt
|
2021-04-13 19:44:15 +00:00
|
|
|
, libXft, libXinerama, libXrandr, libXxf86vm, libGL, libGLU, gle
|
|
|
|
, gtk2, gdk-pixbuf, gdk-pixbuf-xlib, libxml2, pam
|
2021-10-28 06:52:43 +00:00
|
|
|
, systemd, coreutils
|
2020-04-24 23:36:52 +00:00
|
|
|
, forceInstallAllHacks ? false
|
2021-04-13 19:44:15 +00:00
|
|
|
, withSystemd ? stdenv.isLinux
|
2020-04-24 23:36:52 +00:00
|
|
|
}:
|
|
|
|
|
|
|
|
stdenv.mkDerivation rec {
|
2022-03-05 16:20:37 +00:00
|
|
|
version = "6.03";
|
2020-04-24 23:36:52 +00:00
|
|
|
pname = "xscreensaver";
|
|
|
|
|
|
|
|
src = fetchurl {
|
|
|
|
url = "https://www.jwz.org/${pname}/${pname}-${version}.tar.gz";
|
2022-03-05 16:20:37 +00:00
|
|
|
sha256 = "sha256-Mo1ReXNSrPWMpbq0nnb78mA058rXhfZR6hHOe0P7olo=";
|
2020-04-24 23:36:52 +00:00
|
|
|
};
|
|
|
|
|
2021-04-13 19:44:15 +00:00
|
|
|
nativeBuildInputs = [
|
2021-10-28 06:52:43 +00:00
|
|
|
pkg-config intltool makeWrapper
|
2021-04-13 19:44:15 +00:00
|
|
|
];
|
|
|
|
|
|
|
|
buildInputs = [
|
|
|
|
perl gettext libX11 libXext libXi libXt
|
|
|
|
libXft libXinerama libXrandr libXxf86vm libGL libGLU gle
|
|
|
|
gtk2 gdk-pixbuf gdk-pixbuf-xlib libxml2 pam
|
2022-06-16 17:23:12 +00:00
|
|
|
perlPackages.LWPProtocolHttps perlPackages.MozillaCA
|
2021-04-13 19:44:15 +00:00
|
|
|
] ++ 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"
|
|
|
|
];
|
2021-12-06 16:07:01 +00:00
|
|
|
|
|
|
|
# "marbling" has NEON code that mixes signed and unsigned vector types
|
|
|
|
NIX_CFLAGS_COMPILE = lib.optional (with stdenv.hostPlatform; isAarch64 || isAarch32) "-flax-vector-conversions";
|
2021-04-13 19:44:15 +00:00
|
|
|
|
2021-10-28 06:52:43 +00:00
|
|
|
postInstall = ''
|
|
|
|
for bin in $out/bin/*; do
|
|
|
|
wrapProgram "$bin" \
|
|
|
|
--prefix PATH : "$out/libexec/xscreensaver" \
|
2022-06-16 17:23:12 +00:00
|
|
|
--prefix PATH : "${lib.makeBinPath [ coreutils perl ]}" \
|
|
|
|
--prefix PERL5LIB ':' $PERL5LIB
|
2021-10-28 06:52:43 +00:00
|
|
|
done
|
|
|
|
'' + lib.optionalString forceInstallAllHacks ''
|
2021-04-13 19:44:15 +00:00
|
|
|
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"
|
|
|
|
'';
|
2020-04-24 23:36:52 +00:00
|
|
|
|
|
|
|
meta = {
|
|
|
|
homepage = "https://www.jwz.org/xscreensaver/";
|
|
|
|
description = "A set of screensavers";
|
2021-04-13 19:44:15 +00:00
|
|
|
license = lib.licenses.mit;
|
2021-01-17 00:15:33 +00:00
|
|
|
maintainers = with lib.maintainers; [ raskin ];
|
|
|
|
platforms = lib.platforms.unix; # Once had cygwin problems
|
2020-04-24 23:36:52 +00:00
|
|
|
downloadPage = "https://www.jwz.org/xscreensaver/download.html";
|
|
|
|
};
|
|
|
|
}
|