mirror of
https://github.com/NixOS/nixpkgs.git
synced 2024-11-27 17:33:09 +00:00
Merge pull request #155464 from Lunarequest/epson-201401w
This commit is contained in:
commit
85a2559565
@ -6981,6 +6981,12 @@
|
||||
githubId = 22085373;
|
||||
name = "Luis Hebendanz";
|
||||
};
|
||||
lunarequest = {
|
||||
email = "nullarequest@vivlaid.net";
|
||||
github = "Lunarequest";
|
||||
githubId = 30698906;
|
||||
name = "Advaith Madhukar"; #this is my legal name, I prefer Luna; please keep that in mind!
|
||||
};
|
||||
lionello = {
|
||||
email = "lio@lunesu.com";
|
||||
github = "lionello";
|
||||
|
67
pkgs/misc/drivers/epson-201401w/default.nix
Normal file
67
pkgs/misc/drivers/epson-201401w/default.nix
Normal file
@ -0,0 +1,67 @@
|
||||
{ lib, stdenv, fetchurl, rpmextract, autoreconfHook, file, libjpeg, cups }:
|
||||
|
||||
let
|
||||
version = "1.0.0";
|
||||
filterVersion = "1.0.0";
|
||||
in stdenv.mkDerivation {
|
||||
pname = "epson-201401w";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
# NOTE: Don't forget to update the webarchive link too!
|
||||
urls = [
|
||||
"https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/92e9c9254f0ee4230a069545ba27ec2858a2c457/epson-inkjet-printer-201401w-1.0.0-1lsb3.2.src.rpm"
|
||||
"https://web.archive.org/web/20200725175832/https://download3.ebz.epson.net/dsc/f/03/00/03/45/41/92e9c9254f0ee4230a069545ba27ec2858a2c457/epson-inkjet-printer-201401w-1.0.0-1lsb3.2.src.rpm"
|
||||
];
|
||||
sha256 = "0c60m1sd59s4sda38dc5nniwa7dh1b0kv1maajr0x9d38gqlyk3x";
|
||||
};
|
||||
patches = [ ./fixbuild.patch ];
|
||||
|
||||
nativeBuildInputs = [ rpmextract autoreconfHook file ];
|
||||
|
||||
buildInputs = [ libjpeg cups ];
|
||||
|
||||
unpackPhase = ''
|
||||
rpmextract $src
|
||||
tar -zxf epson-inkjet-printer-201401w-${version}.tar.gz
|
||||
tar -zxf epson-inkjet-printer-filter-${filterVersion}.tar.gz
|
||||
for ppd in epson-inkjet-printer-201401w-${version}/ppds/*; do
|
||||
substituteInPlace $ppd --replace "/opt/epson-inkjet-printer-201401w" "$out"
|
||||
substituteInPlace $ppd --replace "/cups/lib" "/lib/cups"
|
||||
done
|
||||
cd epson-inkjet-printer-filter-${filterVersion}
|
||||
'';
|
||||
|
||||
preConfigure = ''
|
||||
chmod +x configure
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
cd ../epson-inkjet-printer-201401w-${version}
|
||||
cp -a lib64 resource watermark $out
|
||||
mkdir -p $out/share/cups/model/epson-inkjet-printer-201401w
|
||||
cp -a ppds $out/share/cups/model/epson-inkjet-printer-201401w/
|
||||
cp -a Manual.txt $out/doc/
|
||||
cp -a README $out/doc/README.driver
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.openprinting.org/driver/epson-201401w";
|
||||
description =
|
||||
"Epson printer driver (L456, L455, L366, L365, L362, L360, L312, L310, L222, L220, L132, L130)";
|
||||
longDescription = ''
|
||||
This software is a filter program used with the Common UNIX Printing
|
||||
System (CUPS) under Linux. It supplies high quality printing with
|
||||
Seiko Epson Color Ink Jet Printers.
|
||||
|
||||
To use the driver adjust your configuration.nix file:
|
||||
services.printing = {
|
||||
enable = true;
|
||||
drivers = [ pkgs.epson-201401w ];
|
||||
};
|
||||
'';
|
||||
license = with licenses; [ lgpl21 epson ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.lunarequest ];
|
||||
};
|
||||
}
|
101
pkgs/misc/drivers/epson-201401w/fixbuild.patch
Normal file
101
pkgs/misc/drivers/epson-201401w/fixbuild.patch
Normal file
@ -0,0 +1,101 @@
|
||||
diff --git a/src/pagemanager/pagemanager.c b/src/pagemanager/pagemanager.c
|
||||
index 029e6d3..3c1f450 100644
|
||||
--- a/src/pagemanager/pagemanager.c
|
||||
+++ b/src/pagemanager/pagemanager.c
|
||||
@@ -22,7 +22,7 @@
|
||||
#include "epcgdef.h"
|
||||
#include "debuglog.h"
|
||||
#include "memory.h"
|
||||
-#include "raster.h"
|
||||
+#include "raster-helper.h"
|
||||
#include "pagemanager.h"
|
||||
|
||||
extern int JobCanceled;
|
||||
@@ -45,7 +45,7 @@ fetchRaster(EpsPageManager *pageManager)
|
||||
int error = 0;
|
||||
int did_fetch = 0;
|
||||
int read_bytes = 0;
|
||||
- int nraster;
|
||||
+ size_t nraster;
|
||||
|
||||
while (error == 0 && did_fetch == 0 && JobCanceled == 0) {
|
||||
eps_raster_fetch(privateData->raster_h, NULL, 0, 0, &status);
|
||||
@@ -212,7 +212,7 @@ int pageManagerGetPageRegion(EpsPageManager *pageManager, EpsPageRegion *pageReg
|
||||
return EPS_OK;
|
||||
}
|
||||
|
||||
-int pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize)
|
||||
+size_t pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize)
|
||||
{
|
||||
PageManagerPrivateData *privateData = NULL;
|
||||
int error = EPS_OK;
|
||||
diff --git a/src/pagemanager/pagemanager.h b/src/pagemanager/pagemanager.h
|
||||
index 87fbbd5..c9743fb 100644
|
||||
--- a/src/pagemanager/pagemanager.h
|
||||
+++ b/src/pagemanager/pagemanager.h
|
||||
@@ -31,7 +31,7 @@ extern "C"
|
||||
#define EPS_ERROR -1
|
||||
#define EPS_OK 0
|
||||
|
||||
-typedef int (*EpsRasterSource)(char *buf, int bufSize);
|
||||
+typedef size_t (*EpsRasterSource)(char *buf, int bufSize);
|
||||
|
||||
typedef struct {
|
||||
EpsRasterSource rasterSource;
|
||||
@@ -47,7 +47,7 @@ typedef struct {
|
||||
EpsPageManager* pageManagerCreate(EpsPageRegion pageRegion, EpsFilterPrintOption filterPrintOption, EpsRasterSource rasterSource);
|
||||
void pageManagerDestroy(EpsPageManager *pageManager);
|
||||
int pageManagerGetPageRegion(EpsPageManager *pageManager, EpsPageRegion *pageRegion);
|
||||
-int pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize);
|
||||
+size_t pageManagerGetRaster(EpsPageManager *pageManager, char *buf, int bufSize);
|
||||
int pageManagerIsNextPage(EpsPageManager *pageManager);
|
||||
|
||||
#ifdef __cplusplus
|
||||
diff --git a/src/raster/raster.c b/src/raster/raster.c
|
||||
index 7e4946b..dd5aef6 100644
|
||||
--- a/src/raster/raster.c
|
||||
+++ b/src/raster/raster.c
|
||||
@@ -218,7 +218,7 @@ eps_raster_init (RASTER * handle, EpsRasterOpt * data, EpsRasterPipeline * pipel
|
||||
|
||||
/* if raster_p equals NULL means that it is need to flush a page. */
|
||||
int
|
||||
-eps_raster_print (RASTER handle, char * raster_p, int raster_bytes, int pixel_num, int * outraster)
|
||||
+eps_raster_print (RASTER handle, char * raster_p, int raster_bytes, int pixel_num, size_t * outraster)
|
||||
{
|
||||
EpsRaster * raster = (EpsRaster *) handle;
|
||||
EpsRasterPipeline * pipeline = NULL;
|
||||
diff --git a/src/raster/raster.h b/src/raster/raster.h
|
||||
index 9be0977..cc5054d 100644
|
||||
--- a/src/raster/raster.h
|
||||
+++ b/src/raster/raster.h
|
||||
@@ -143,7 +143,7 @@ typedef enum {
|
||||
} EpsRasterFetchStatus;
|
||||
|
||||
int eps_raster_init (RASTER *, EpsRasterOpt *, EpsRasterPipeline *);
|
||||
-int eps_raster_print (RASTER, char *, int, int, int *);
|
||||
+int eps_raster_print (RASTER, char *, int, int, size_t *);
|
||||
int eps_raster_fetch (RASTER, char *, int, int, EpsRasterFetchStatus *);
|
||||
int eps_raster_free (RASTER);
|
||||
|
||||
diff --git a/src/raster_to_epson.c b/src/raster_to_epson.c
|
||||
index 6e621c8..a0811d6 100644
|
||||
--- a/src/raster_to_epson.c
|
||||
+++ b/src/raster_to_epson.c
|
||||
@@ -33,7 +33,7 @@
|
||||
#include <cups/ppd.h>
|
||||
#include <cups/raster.h>
|
||||
|
||||
-#include "raster.h"
|
||||
+#include "raster-helper.h"
|
||||
#include "memory.h"
|
||||
#include "raster_to_epson.h"
|
||||
#include "pagemanager.h"
|
||||
@@ -75,7 +75,7 @@ static int page_no = 0;
|
||||
static int pageHeight = 0;
|
||||
#endif
|
||||
|
||||
-int rasterSource(char *buf, int bufSize)
|
||||
+size_t rasterSource(char *buf, int bufSize)
|
||||
{
|
||||
int readBytes = 0;
|
||||
if (JobCanceled == 0) {
|
@ -32681,6 +32681,8 @@ with pkgs;
|
||||
|
||||
epson_201207w = callPackage ../misc/drivers/epson_201207w { };
|
||||
|
||||
epson-201401w = callPackage ../misc/drivers/epson-201401w { };
|
||||
|
||||
epson-201106w = callPackage ../misc/drivers/epson-201106w { };
|
||||
|
||||
epson-workforce-635-nx625-series = callPackage ../misc/drivers/epson-workforce-635-nx625-series { };
|
||||
|
Loading…
Reference in New Issue
Block a user