about summary refs log tree commit diff
path: root/nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39')
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/builder.sh35
-rw-r--r--nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix44
2 files changed, 79 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/builder.sh b/nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/builder.sh
new file mode 100644
index 000000000000..f750df6e5063
--- /dev/null
+++ b/nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/builder.sh
@@ -0,0 +1,35 @@
+source $stdenv/setup
+
+arch=$(uname -m)
+echo "$arch" | egrep -q '^i[3456]86$' && arch=i386
+echo "Installing for $arch"
+
+unpackPhase
+patchPhase
+
+set -v
+
+cd cdroot/Linux
+mkdir -p $out/opt
+cp -r $arch/at_root/* $out
+cp -r $arch/at_opt/* $out/opt
+#cp -r noarch/at_root/* $out
+cp -r noarch/at_opt/* $out/opt
+
+cd $out
+test -d usr/lib64 && ln -s usr/lib64 lib ||
+    ln -s usr/lib lib
+mkdir -p share/cups
+cd share/cups
+ln -s ../../opt/share/* .
+ln -s ppd model
+
+cd $out/lib/cups/filter
+for i in $(ls); do
+    echo "Patching $i..."
+    patchelf --set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) $i ||
+      echo "Couldn't set interpreter!"
+    patchelf --set-rpath $cups/lib:$gcc/lib:$glibc/lib $i  # This might not be necessary.
+done
+
+ln -s $ghostscript/bin/gs $out/lib/cups/filter
diff --git a/nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix b/nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
new file mode 100644
index 000000000000..92f5fdc409c4
--- /dev/null
+++ b/nixpkgs/pkgs/misc/cups/drivers/samsung/4.00.39/default.nix
@@ -0,0 +1,44 @@
+# Tested on linux-x86_64.  Might work on linux-i386.  Probably won't work on anything else.
+
+# To use this driver in NixOS, add it to printing.drivers in configuration.nix.
+# configuration.nix might look like this when you're done:
+# { pkgs, ... }: {
+#   printing = {
+#     enable = true;
+#     drivers = [ pkgs.samsungUnifiedLinuxDriver ];
+#   };
+#   (more stuff)
+# }
+# (This advice was tested on 2010 August 2.)
+
+{ lib, stdenv, fetchurl, cups, gcc, ghostscript, glibc, patchelf }:
+
+# Do not bump lightly! Visit <http://www.bchemnet.com/suldr/supported.html>
+# to see what will break when upgrading. Consider a new versioned attribute.
+let
+  cups' = lib.getLib cups;
+in stdenv.mkDerivation rec {
+  pname = "samsung-UnifiedLinuxDriver";
+  version = "4.00.39";
+
+  src = fetchurl {
+    url = "http://www.bchemnet.com/suldr/driver/UnifiedLinuxDriver-${version}.tar.gz";
+    sha256 = "144b4xggbzjfq7ga5nza7nra2cf6qn63z5ls7ba1jybkx1vm369k";
+  };
+
+  nativeBuildInputs = [ patchelf ];
+  buildInputs = [ cups' gcc ghostscript glibc ];
+
+  inherit gcc ghostscript glibc;
+  cups = cups';
+
+  builder = ./builder.sh;
+
+  meta = with lib; {
+    description = "Samsung's Linux printing drivers; includes binaries without source code";
+    homepage = "http://www.samsung.com/";
+    license = licenses.unfree;
+    platforms = platforms.linux;
+    broken = true;   # libscmssc.so and libmfp.so can't find their library dependencies at run-time
+  };
+}