summary refs log tree commit diff
path: root/pkgs/misc/cups
diff options
context:
space:
mode:
authorobadz <obadz-git@obadz.com>2018-10-06 21:21:35 +0100
committerobadz <3359345+obadz@users.noreply.github.com>2018-10-11 09:19:58 +0100
commit6fca3c5700a80d791c07214c8376db2f65d4d331 (patch)
treea1d77d0e41b90e820c4cb44f44224404ed3f3417 /pkgs/misc/cups
parent177ddb91be600d7c88b6685f7919d149fd7feae0 (diff)
downloadnixlib-6fca3c5700a80d791c07214c8376db2f65d4d331.tar
nixlib-6fca3c5700a80d791c07214c8376db2f65d4d331.tar.gz
nixlib-6fca3c5700a80d791c07214c8376db2f65d4d331.tar.bz2
nixlib-6fca3c5700a80d791c07214c8376db2f65d4d331.tar.lz
nixlib-6fca3c5700a80d791c07214c8376db2f65d4d331.tar.xz
nixlib-6fca3c5700a80d791c07214c8376db2f65d4d331.tar.zst
nixlib-6fca3c5700a80d791c07214c8376db2f65d4d331.zip
cups-googlecloudprint: init at 20160502
Diffstat (limited to 'pkgs/misc/cups')
-rw-r--r--pkgs/misc/cups/drivers/googlecloudprint/default.nix64
1 files changed, 64 insertions, 0 deletions
diff --git a/pkgs/misc/cups/drivers/googlecloudprint/default.nix b/pkgs/misc/cups/drivers/googlecloudprint/default.nix
new file mode 100644
index 000000000000..b3fc87fbf1da
--- /dev/null
+++ b/pkgs/misc/cups/drivers/googlecloudprint/default.nix
@@ -0,0 +1,64 @@
+{ stdenv, lib, fetchFromGitHub, python2, python2Packages, file, makeWrapper, cups }:
+
+# Setup instructions can be found at https://github.com/simoncadman/CUPS-Cloud-Print#configuration
+# So the nix version is something like:
+# nix run nixpkgs.cups-googlecloudprint -c sudo setupcloudprint
+# nix run nixpkgs.cups-googlecloudprint -c sudo listcloudprinters
+
+let pythonEnv = python2.buildEnv.override {
+  extraLibs = with python2Packages; [
+    six
+    httplib2
+    pycups
+  ];
+};
+
+in stdenv.mkDerivation rec {
+  name    = "cups-googlecloudprint-${version}";
+  version = "20160502";
+
+  src = fetchFromGitHub {
+    owner  = "simoncadman";
+    repo   = "CUPS-Cloud-Print";
+    rev    = version;
+    sha256 = "0760i12w7jrhq7fsgyz3yqla5cvpjb45n6m2jz96wsy3p3xf6dzz";
+  };
+
+  buildInputs = [ cups makeWrapper ];
+
+  cupsgroup = "nonexistantgroup";
+  NOPERMS = 1;
+
+  postConfigure = ''
+    substituteInPlace Makefile --replace "${cups}" "$out"
+  '';
+
+  postInstall = ''
+    pushd "$out"
+    for s in lib/cups/backend/gcp lib/cups/driver/cupscloudprint
+    do
+      echo "Wrapping $s..."
+      wrapProgram "$out/$s" --set PATH "${lib.makeBinPath [pythonEnv file]}" --prefix PYTHONPATH : "$out/share/cloudprint-cups"
+    done
+
+    mkdir bin
+
+    for s in share/cloudprint-cups/*.py
+    do
+      if [ -x "$s" ] # Only wrapping those Python scripts marked as executable
+      then
+        o="bin/$(echo $s | sed 's,share/cloudprint-cups/\(.*\).py,\1,')"
+        echo "Wrapping $o -> $s..."
+        makeWrapper "$out/$s" "$o" --set PATH "${lib.makeBinPath [pythonEnv file]}" --prefix PYTHONPATH : "$out/share/cloudprint-cups"
+      fi
+    done
+    popd
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Google Cloud Print driver for CUPS, allows printing to printers hosted on Google Cloud Print";
+    homepage    = http://ccp.niftiestsoftware.com;
+    platforms   = platforms.linux;
+    license     = licenses.gpl3;
+  };
+}