diff options
author | Evgeny Egorochkin <phreedom.stdin@gmail.com> | 2012-12-05 05:37:44 +0200 |
---|---|---|
committer | Evgeny Egorochkin <phreedom.stdin@gmail.com> | 2012-12-05 05:43:19 +0200 |
commit | 0eecd67d1408369e07141172260c03ea17d8ceca (patch) | |
tree | 8bfde7a62b6b84bea18def98e7fe6cdc1720dca0 | |
parent | e8ff7d627a8d7e0e64a826aa9c175ceb4b428e74 (diff) | |
download | nixlib-0eecd67d1408369e07141172260c03ea17d8ceca.tar nixlib-0eecd67d1408369e07141172260c03ea17d8ceca.tar.gz nixlib-0eecd67d1408369e07141172260c03ea17d8ceca.tar.bz2 nixlib-0eecd67d1408369e07141172260c03ea17d8ceca.tar.lz nixlib-0eecd67d1408369e07141172260c03ea17d8ceca.tar.xz nixlib-0eecd67d1408369e07141172260c03ea17d8ceca.tar.zst nixlib-0eecd67d1408369e07141172260c03ea17d8ceca.zip |
Package Samsung unified printer driver. i686 only but apparently can be improved to support x86_64. Based on patch by James Cook <james.cook[NOSPAM]@utoronto.ca>
-rw-r--r-- | pkgs/misc/cups/drivers/samsung/builder.sh | 35 | ||||
-rw-r--r-- | pkgs/misc/cups/drivers/samsung/default.nix | 35 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 9 |
3 files changed, 79 insertions, 0 deletions
diff --git a/pkgs/misc/cups/drivers/samsung/builder.sh b/pkgs/misc/cups/drivers/samsung/builder.sh new file mode 100644 index 000000000000..58e1c0cd781d --- /dev/null +++ b/pkgs/misc/cups/drivers/samsung/builder.sh @@ -0,0 +1,35 @@ +source $stdenv/setup + +arch=$(uname -m) +# replace i[3456]86 with i386 +echo arch | egrep -q '^i[3456]86$' && arch=i386 +arch=i386 +unpackPhase +patchPhase + +set -v + +echo $arch +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_GCC/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/pkgs/misc/cups/drivers/samsung/default.nix b/pkgs/misc/cups/drivers/samsung/default.nix new file mode 100644 index 000000000000..ab0c0dc25e48 --- /dev/null +++ b/pkgs/misc/cups/drivers/samsung/default.nix @@ -0,0 +1,35 @@ +# 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.) + +{stdenv, fetchurl, cups, gcc, ghostscript, glibc, patchelf}: + +stdenv.mkDerivation rec { + name = "samsung-UnifiedLinuxDriver-0.92"; + + src = fetchurl { + url = "http://downloadcenter.samsung.com/content/DR/200911/20091103171827750/UnifiedLinuxDriver_0.92.tar.gz"; + sha256 = "0p2am0p8xvm339mad07c4j77gz31m63z76sy6d9hgwmxy2prbqfq"; + }; + + buildInputs = [ cups gcc ghostscript glibc patchelf ]; + + inherit cups gcc ghostscript glibc; + + builder = ./builder.sh; + + meta = { + description = "Samsung's Linux drivers; includes binaries without source code"; + homepage = "http://www.samsung.com/"; + license = "samsung"; # Binary-only + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index eb85702119f4..41f10bc81012 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8893,6 +8893,15 @@ let xlockmore = callPackage ../misc/screensavers/xlockmore { }; + samsungUnifiedLinuxDriver = import ../misc/cups/drivers/samsung { + inherit fetchurl stdenv; + inherit cups ghostscript glibc patchelf; + gcc = import ../development/compilers/gcc/4.4 { + inherit stdenv fetchurl texinfo gmp mpfr noSysDirs gettext which; + profiledCompiler = true; + }; + }; + saneBackends = callPackage ../applications/graphics/sane/backends.nix { gt68xxFirmware = config.sane.gt68xxFirmware or null; hotplugSupport = config.sane.hotplugSupport or true; |