about summary refs log tree commit diff
path: root/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix')
-rw-r--r--nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix42
1 files changed, 42 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
new file mode 100644
index 000000000000..2345c3bf9872
--- /dev/null
+++ b/nixpkgs/pkgs/misc/screensavers/xlockmore/default.nix
@@ -0,0 +1,42 @@
+{ stdenv, lib, fetchurl, pam ? null, libX11, libXext, libXinerama
+, libXdmcp, libXt, autoreconfHook }:
+
+stdenv.mkDerivation rec {
+  pname = "xlockmore";
+  version = "5.75";
+
+  src = fetchurl {
+    url = "http://sillycycle.com/xlock/xlockmore-${version}.tar.xz";
+    sha256 = "sha256-ldDfx1w+RO2CjowSqTiS6JU28dtIr0+4thZon2hIBrg=";
+    curlOpts = "--user-agent 'Mozilla/5.0'";
+  };
+
+  # Optionally, it can use GTK.
+  buildInputs = [ pam libX11 libXext.dev libXinerama libXdmcp libXt ];
+  nativeBuildInputs = [ autoreconfHook ];
+
+  # Don't try to install `xlock' setuid. Password authentication works
+  # fine via PAM without super user privileges.
+  configureFlags =
+    [ "--disable-setuid"
+    ] ++ (lib.optional (pam != null) "--enable-pam");
+
+  postPatch =
+    let makePath = p: lib.concatMapStringsSep " " (x: x + "/" + p) buildInputs;
+        inputs = "${makePath "lib"} ${makePath "include"}";
+    in ''
+      sed -i 's,\(for ac_dir in\),\1 ${inputs},' configure.ac
+      sed -i 's,/usr/,/no-such-dir/,g' configure.ac
+      configureFlags+=" --enable-appdefaultdir=$out/share/X11/app-defaults"
+    '';
+
+  hardeningDisable = [ "format" ]; # no build output otherwise
+
+  meta = with lib; {
+    description = "Screen locker for the X Window System";
+    homepage = "http://sillycycle.com/xlockmore.html";
+    license = licenses.gpl2;
+    maintainers = with maintainers; [ pSub ];
+    platforms = platforms.linux;
+  };
+}