mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-12-25 03:17:13 +00:00
af911744fd
Very experimental. Probably very broken. Adds support for newer models but removes it for some older ones. Hence not the default yet, if ever.
91 lines
2.8 KiB
Nix
91 lines
2.8 KiB
Nix
{ stdenv, fetchurl, patchelf, cups, libusb, libxml2 }:
|
|
|
|
let
|
|
|
|
arch = if stdenv.system == "x86_64-linux"
|
|
then "x86_64"
|
|
else "i386";
|
|
|
|
in stdenv.mkDerivation rec {
|
|
name = "samsung-unified-linux-driver-${version}";
|
|
version = "1.00.37";
|
|
|
|
src = fetchurl {
|
|
sha256 = "0r66l9zp0p1qgakh4j08hynwsr4lsgq5yrpxyr0x4ldvl0z2b1bb";
|
|
url = "http://www.bchemnet.com/suldr/driver/UnifiedLinuxDriver-${version}.tar.gz";
|
|
};
|
|
|
|
nativeBuildInputs = [ patchelf ];
|
|
|
|
phases = [ "unpackPhase" "installPhase" ];
|
|
|
|
installPhase = ''
|
|
my_patchelf() {
|
|
opts=(); while [[ "$1" != - ]]; do opts+=( "$1" ); shift; done; shift
|
|
for binary in "$@"; do
|
|
echo "Patching ELF file: $binary"
|
|
patchelf "''${opts[@]}" $binary
|
|
ldd $binary | grep "not found" && exit 1
|
|
done; true
|
|
}
|
|
|
|
my_patchelf \
|
|
--set-interpreter $(cat $NIX_CC/nix-support/dynamic-linker) \
|
|
--set-rpath ${cups}/lib:$(cat $NIX_CC/nix-support/orig-cc)/lib:${stdenv.glibc}/lib \
|
|
- ${arch}/{pstosecps,rastertospl,smfpnetdiscovery}
|
|
|
|
mkdir -p $out/etc/sane.d/dll.d/
|
|
install -m644 noarch/etc/smfp.conf $out/etc/sane.d
|
|
echo smfp >> $out/etc/sane.d/dll.d/smfp-scanner
|
|
|
|
mkdir -p $out/lib
|
|
my_patchelf \
|
|
--set-rpath $(cat $NIX_CC/nix-support/orig-cc)/lib:${stdenv.glibc}/lib \
|
|
- ${arch}/libscmssc.so*
|
|
install -m755 ${arch}/libscmssc.so* $out/lib
|
|
|
|
mkdir -p $out/lib/cups/backend
|
|
install -m755 ${arch}/smfpnetdiscovery $out/lib/cups/backend
|
|
|
|
mkdir -p $out/lib/cups/filter
|
|
install -m755 ${arch}/{pstosecps,rastertospl} $out/lib/cups/filter
|
|
|
|
mkdir -p $out/lib/sane
|
|
my_patchelf \
|
|
--set-rpath $(cat $NIX_CC/nix-support/orig-cc)/lib:${stdenv.glibc}/lib:${libusb}/lib:${libxml2}/lib \
|
|
- ${arch}/libsane-smfp.so*
|
|
install -m755 ${arch}/libsane-smfp.so* $out/lib/sane
|
|
ln -s libsane-smfp.so.1.0.1 $out/lib/sane/libsane-smfp.so.1
|
|
ln -s libsane-smfp.so.1 $out/lib/sane/libsane-smfp.so
|
|
|
|
mkdir -p $out/lib/udev/rules.d
|
|
(
|
|
OEM_FILE=noarch/oem.conf
|
|
INSTALL_LOG_FILE=/dev/null
|
|
. noarch/scripting_utils
|
|
. noarch/package_utils
|
|
. noarch/scanner-script.pkg
|
|
fill_full_template noarch/etc/smfp.rules.in $out/lib/udev/rules.d/60_smfp_samsung.rules
|
|
)
|
|
|
|
mkdir -p $out/share/ppd
|
|
gzip -9 noarch/share/ppd/*.ppd
|
|
cp -R noarch/share/ppd $out/share/ppd/suld
|
|
|
|
cp -R noarch/share/locale $out/share
|
|
rm -r $out/share/locale/*/*/install.mo
|
|
'';
|
|
|
|
meta = with stdenv.lib; {
|
|
description = "Unified Linux Driver for Samsung printers and scanners";
|
|
homepage = http://www.bchemnet.com/suldr;
|
|
downloadPage = http://www.bchemnet.com/suldr/driver/;
|
|
license = licenses.unfree;
|
|
|
|
# Tested on linux-x86_64. Might work on linux-i386.
|
|
# Probably won't work on anything else.
|
|
platforms = platforms.linux;
|
|
maintainers = with maintainers; [ nckx ];
|
|
};
|
|
}
|