forgejo-lts: 7.0.10 -> 7.0.11
[NixPkgs.git] / pkgs / by-name / ep / epson-alc1100 / package.nix
blobf39fb0ad17045d5fa70def0eba67c201750f2b47
1 { lib, stdenv, fetchurl, cups, pkgsi686Linux, dpkg, psutils, makeWrapper, ghostscript, bash }:
3 let
4   version = "1.2-0";
6   libstdcpp5 = fetchurl {
7     url = "mirror://ubuntu/pool/universe/g/gcc-3.3/libstdc++5_3.3.6-17ubuntu1_i386.deb";
8     sha256 = "10f8zcmqaa7skvg2bz94mnlgqpan4iscvi8913r6iawjh7hiisjy";
9   };
11   stdenv.mkDerivation {
12     pname = "epson-alc1100";
13     inherit version;
15     src = fetchurl {
16       url = "https://download3.ebz.epson.net/dsc/f/03/00/11/33/07/4027e99517b5c388d444b8444d719b4b77f7e9db/Epson-ALC1100-filter-1.2.tar.gz";
17       sha256 = "1dfw75a3kj2aa4iicvlk9kz3jarrsikpnpd4cdpw79scfc5mwm2p";
18     };
20     patches = [ ./cups-data-dir.patch ./ppd.patch ];
22     nativeBuildInputs = [ dpkg makeWrapper ];
24     buildInputs = [ cups pkgsi686Linux.glibc psutils ghostscript bash ];
26     postUnpack = ''
27       dpkg -x ${libstdcpp5} libstdcpp5_i386;
29       mkdir -p $out/lib;
31       mv libstdcpp5_i386/usr/lib/* $out/lib;
32     '';
34     postFixup = ''
35       patchelf --set-interpreter ${pkgsi686Linux.glibc}/lib/ld-linux.so.2 \
36         --set-rpath "${lib.makeLibraryPath [
37           pkgsi686Linux.glibc
38           "$out"
39         ]}" $out/bin/alc1100
41       patchelf --set-rpath "${lib.makeLibraryPath [
42           pkgsi686Linux.glibc
43         ]}" $out/lib/libstdc++.so.5.0.7
45       wrapProgram $out/bin/alc1100_lprwrapper.sh \
46         --suffix PATH : "\$PATH:${psutils}/bin:/var/lib/cups/path/bin"
48       wrapProgram $out/bin/pstoalc1100.sh \
49         --suffix PATH : "\$PATH:${psutils}/bin:${ghostscript}/bin:${bash}/bin:/var/lib/cups/path/bin"
50     '';
52     meta = with lib; {
53       homepage = "http://download.ebz.epson.net/dsc/search/01/search/";
54       description = "Epson AcuLaser C1100 Driver";
55       longDescription = ''
56         This package provides a print filter for printing to EPSON AL-C1100
57         printers on Linux systems.
59         To use the driver adjust your configuration.nix file:
60           services.printing = {
61             enable = true;
62             drivers = [ pkgs.epson-alc1100 ];
63           };
64       '';
66       sourceProvenance = with sourceTypes; [ binaryNativeCode ];
67       license = with licenses; [ mit eapl ];
68       maintainers = [ maintainers.eperuffo ];
69       platforms = platforms.linux;
70     };
72   }