diff --git a/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix b/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix new file mode 100644 index 000000000000..d49143655459 --- /dev/null +++ b/pkgs/misc/cups/drivers/cups-drv-rastertosag-gdi/default.nix @@ -0,0 +1,53 @@ +{ lib +, fetchzip +, fetchpatch +, cups +, python3Packages +}: + +python3Packages.buildPythonApplication rec { + pname = "rastertosag-gdi"; + version = "0.1"; + src = fetchzip { + url = "https://www.openprinting.org/download/printing/${pname}/${pname}-${version}.tar.gz"; + sha256 = "1ldplpv497j8vhw24sksg3fiw8c5pqr0wajajh7p5xpvb6zlcmvw"; + }; + patches = [ + # port to python 3 + ( fetchpatch { + url = "https://sources.debian.org/data/main/r/${pname}/0.1-7/debian/patches/0001-${pname}-python3.patch"; + sha256 = "1l3xbrs67025595k9ba5794q3s74anizpbxwsshcfhmbrzd9h8hg"; + }) + ]; + format = "other"; + nativeBuildInputs = [ (lib.getBin cups) ]; + # The source image also brings pre-built ppd files, + # be we prefer to generate from source where possible, so + # the following line generates ppd files from the drv file. + postBuild = '' + ppdc -v -d . -I "${cups}/share/cups/ppdc" rastertosag-gdi.drv + ''; + installPhase = '' + runHook preInstall + install -vDm 0644 -t "${placeholder "out"}/share/cups/model/rastertosag-gdi/" *.ppd + install -vDm 0755 -t "${placeholder "out"}/bin/" rastertosag-gdi + install -vd "${placeholder "out"}/lib/cups/filter/" + ln -vst "${placeholder "out"}/lib/cups/filter/" "${placeholder "out"}/bin/rastertosag-gdi" + runHook postInstall + ''; + meta = { + description = "CUPS driver for Ricoh Aficio SP 1000S and SP 1100S printers"; + downloadPage = "https://www.openprinting.org/download/printing/rastertosag-gdi/"; + homepage = "https://www.openprinting.org/driver/rastertosag-gdi/"; + license = lib.licenses.free; # just "GPL", according to README + maintainers = [ lib.maintainers.yarny ]; + longDescription = '' + This package brings CUPS raster filter + for Ricoh Aficio SP 1000S and SP 1100S. + In contrast to other Ricoh laser printers, + they use the proprietary SAG-GDI raster format by + Sagem Communication and do not understand PCL or PostScript. + Therefore they do not work with Ricoh's PPD files. + ''; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ebe086b21109..bf6bf91dcc15 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -29299,6 +29299,8 @@ in cups-brother-hll2340dw = pkgsi686Linux.callPackage ../misc/cups/drivers/hll2340dw { }; + cups-drv-rastertosag-gdi = callPackage ../misc/cups/drivers/cups-drv-rastertosag-gdi { }; + # this driver ships with pre-compiled 32-bit binary libraries cnijfilter_2_80 = pkgsi686Linux.callPackage ../misc/cups/drivers/cnijfilter_2_80 { };