$ git show --format=fuller --patch-with-stat --summary 35201b021b1e7fb03d4a419e9e89c53e6849a2eb
commit 35201b021b1e7fb03d4a419e9e89c53e6849a2eb
Author: Bernhard Rosenkränzer <bero@lindev.ch>
AuthorDate: Tue Feb 28 21:46:06 2023 +0100
Commit: Bernhard Rosenkränzer <bero@lindev.ch>
CommitDate: Tue Feb 28 21:46:06 2023 +0100
Rebuild for sane 1.2.1, add patches from upstream git
---
0001-Added-Brother-DCP-J552DW.patch | 29 +++
0002-Update-README.md.patch | 11 +
0003-Added-Brother-MFC-7360N.patch | 24 ++
0004-Adds-Canon-MF645Cx.patch | 24 ++
0005-Add-Brother-HL-L2380DW-series.patch | 11 +
0006-Added-EPSON-ET-2710-Series-fixes-233.patch | 24 ++
0007-Added-EPSON-XP-5100-Series-fixes-232.patch | 24 ++
...d-HP-Neverstop-Laser-MFP-1202nw-fixes-230.patch | 32 +++
0009-Added-EPSON-ET-4850-Series-fixes-229.patch | 24 ++
0010-Added-EPSON-ET-2850-Series-fixes-224.patch | 24 ++
0011-Added-Brother-MFC-8710DW-fixes-220.patch | 11 +
0012-Added-HP-ENVY-5055-series-fixes-213.patch | 24 ++
0013-Added-Brother-MFC-J4410DW-fixes-208.patch | 11 +
0014-Added-Xerox-C235-fixes-200.patch | 24 ++
0015-Added-EPSON-ET-2810-Series-fixes-190.patch | 24 ++
0016-Added-Canon-G600-series-fixes-189.patch | 24 ++
0017-Added-EPSON-ET-M2170-Series-fixes-188.patch | 24 ++
0018-Added-Lexmark-MC3326adwe-fixes-187.patch | 24 ++
0019-Added-Samsung-SCX-3400-Series.patch | 24 ++
0020-sane-airscan.5-updated-see-216.patch | 257 +++++++++++++++++++++
0021-Man-pages-updated-see-216.patch | 171 ++++++++++++++
...-I-O-error-if-headers-received-and-body-i.patch | 168 ++++++++++++++
0023-Added-Canon-TS-3400-fixes-202.patch | 24 ++
0024-Added-Kyocera-ECOSYS-M2035dn-fixes-234.patch | 24 ++
...yocera-ECOSYS-M2035dn-description-see-234.patch | 25 ++
0026-Add-Canon-TS8230.patch | 24 ++
0027-Update-README.md.patch | 25 ++
0028-Added-Brother-MFC-J4620DW.patch | 24 ++
0029-Added-SHARP-MX-3060N.patch | 34 +++
...p-Laser-MFP-1202nw-information-updated-fi.patch | 26 +++
0031-Added-Canon-TR8600-Scanner.patch | 24 ++
0032-Added-Brother-MFC-J1012DW.patch | 24 ++
...HE-NEED-FOR-HELP-FROM-COMMUNITY-statement.patch | 63 +++++
0034-Fixed-e-mail-addresses.patch | 40 ++++
...serJet-Pro-M329-and-footnote-for-M329-M42.patch | 42 ++++
...-Removed-the-need-for-help-problem-solved.patch | 63 +++++
sane-airscan.spec | 71 ++++--
37 files changed, 1529 insertions(+), 17 deletions(-)
create mode 100644 0001-Added-Brother-DCP-J552DW.patch
create mode 100644 0002-Update-README.md.patch
create mode 100644 0003-Added-Brother-MFC-7360N.patch
create mode 100644 0004-Adds-Canon-MF645Cx.patch
create mode 100644 0005-Add-Brother-HL-L2380DW-series.patch
create mode 100644 0006-Added-EPSON-ET-2710-Series-fixes-233.patch
create mode 100644 0007-Added-EPSON-XP-5100-Series-fixes-232.patch
create mode 100644 0008-Added-HP-Neverstop-Laser-MFP-1202nw-fixes-230.patch
create mode 100644 0009-Added-EPSON-ET-4850-Series-fixes-229.patch
create mode 100644 0010-Added-EPSON-ET-2850-Series-fixes-224.patch
create mode 100644 0011-Added-Brother-MFC-8710DW-fixes-220.patch
create mode 100644 0012-Added-HP-ENVY-5055-series-fixes-213.patch
create mode 100644 0013-Added-Brother-MFC-J4410DW-fixes-208.patch
create mode 100644 0014-Added-Xerox-C235-fixes-200.patch
create mode 100644 0015-Added-EPSON-ET-2810-Series-fixes-190.patch
create mode 100644 0016-Added-Canon-G600-series-fixes-189.patch
create mode 100644 0017-Added-EPSON-ET-M2170-Series-fixes-188.patch
create mode 100644 0018-Added-Lexmark-MC3326adwe-fixes-187.patch
create mode 100644 0019-Added-Samsung-SCX-3400-Series.patch
create mode 100644 0020-sane-airscan.5-updated-see-216.patch
create mode 100644 0021-Man-pages-updated-see-216.patch
create mode 100644 0022-Ignore-HTTP-I-O-error-if-headers-received-and-body-i.patch
create mode 100644 0023-Added-Canon-TS-3400-fixes-202.patch
create mode 100644 0024-Added-Kyocera-ECOSYS-M2035dn-fixes-234.patch
create mode 100644 0025-Fixed-Kyocera-ECOSYS-M2035dn-description-see-234.patch
create mode 100644 0026-Add-Canon-TS8230.patch
create mode 100644 0027-Update-README.md.patch
create mode 100644 0028-Added-Brother-MFC-J4620DW.patch
create mode 100644 0029-Added-SHARP-MX-3060N.patch
create mode 100644 0030-HP-Neverstop-Laser-MFP-1202nw-information-updated-fi.patch
create mode 100644 0031-Added-Canon-TR8600-Scanner.patch
create mode 100644 0032-Added-Brother-MFC-J1012DW.patch
create mode 100644 0033-Added-THE-NEED-FOR-HELP-FROM-COMMUNITY-statement.patch
create mode 100644 0034-Fixed-e-mail-addresses.patch
create mode 100644 0035-Added-HP-LaserJet-Pro-M329-and-footnote-for-M329-M42.patch
create mode 100644 0036-Removed-the-need-for-help-problem-solved.patch
diff --git a/0001-Added-Brother-DCP-J552DW.patch b/0001-Added-Brother-DCP-J552DW.patch
new file mode 100644
index 0000000..7aca307
--- /dev/null
+++ b/0001-Added-Brother-DCP-J552DW.patch
@@ -0,0 +1,29 @@
+From 95163245b60a92f55657329ab4dec8ef81d336fe Mon Sep 17 00:00:00 2001
+From: Thomas P <TPXP@users.noreply.github.com>
+Date: Sat, 13 Nov 2021 22:44:55 +0100
+Subject: [PATCH 01/36] Added Brother DCP-J552DW
+
+I have one at home, here's what `scanimage -L` says:
+```
+device `airscan:w0:Brother DCP-J552DW' is a WSD Brother DCP-J552DW
+```
+The best part is it actually works! Thanks for this software :heart:
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 257db59..7e55f59 100644
+--- a/README.md
++++ b/README.md
+@@ -58,6 +58,7 @@ Legend:
+ | ---------------------------------- | :-----------------------: | :-----------------------: |
+ | Brother ADS-2700W | No | Yes |
+ | Brother DCP-9020CDW | No | Yes |
++| Brother DCP-J552DW | No | Yes |
+ | Brother DCP-L2540DW | No | Yes |
+ | Brother DCP-L2550DN / DCP-L2550DW | Yes | |
+ | Brother HL-L2395DW series | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0002-Update-README.md.patch b/0002-Update-README.md.patch
new file mode 100644
index 0000000..9148f5a
--- /dev/null
+++ b/0002-Update-README.md.patch
@@ -0,0 +1,11 @@
+diff -up sane-airscan-0.99.27/README.md.2~ sane-airscan-0.99.27/README.md
+--- sane-airscan-0.99.27/README.md.2~ 2023-02-28 21:41:45.096044544 +0100
++++ sane-airscan-0.99.27/README.md 2023-02-28 21:42:27.828417573 +0100
+@@ -57,6 +57,7 @@ Legend:
+ | Device | eSCL mode | WSD mode |
+ | ---------------------------------- | :-----------------------: | :-----------------------: |
+ | Brother ADS-2700W | No | Yes |
++| Brother DCP-7055W | No | Yes |
+ | Brother DCP-9020CDW | No | Yes |
+ | Brother DCP-J552DW | No | Yes |
+ | Brother DCP-L2540DW | No | Yes |
diff --git a/0003-Added-Brother-MFC-7360N.patch b/0003-Added-Brother-MFC-7360N.patch
new file mode 100644
index 0000000..27b5c07
--- /dev/null
+++ b/0003-Added-Brother-MFC-7360N.patch
@@ -0,0 +1,24 @@
+From 386486f0a8c084050c31d5acc134d752789981b8 Mon Sep 17 00:00:00 2001
+From: Simon Brand <simon.brand@postadigitale.de>
+Date: Sat, 29 Jan 2022 00:31:09 +0000
+Subject: [PATCH 03/36] Added Brother MFC-7360N
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 257db59..e874a72 100644
+--- a/README.md
++++ b/README.md
+@@ -61,6 +61,7 @@ Legend:
+ | Brother DCP-L2540DW | No | Yes |
+ | Brother DCP-L2550DN / DCP-L2550DW | Yes | |
+ | Brother HL-L2395DW series | Yes | |
++| Brother MFC-7360N | No | Yes |
+ | Brother MFC-J1300DW | Yes | |
+ | Brother MFC-J485DW | Yes | |
+ | Brother MFC-J625DW | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0004-Adds-Canon-MF645Cx.patch b/0004-Adds-Canon-MF645Cx.patch
new file mode 100644
index 0000000..3dc0450
--- /dev/null
+++ b/0004-Adds-Canon-MF645Cx.patch
@@ -0,0 +1,24 @@
+From ad1983adee45b35bd1ef6baaa4bf8f15277c7c60 Mon Sep 17 00:00:00 2001
+From: Putta Khunchalee <ultimaweapon@outlook.com>
+Date: Fri, 18 Feb 2022 07:32:47 +0700
+Subject: [PATCH 04/36] Adds Canon MF645Cx
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 257db59..0793223 100644
+--- a/README.md
++++ b/README.md
+@@ -86,6 +86,7 @@ Legend:
+ | Canon MF260 Series | Yes | Yes<sup>[4](#note4)</sup> |
+ | Canon MF410 Series | Yes | Yes |
+ | Canon MF440 Series | Yes | Yes |
++| Canon MF645Cx | Yes | |
+ | Canon MF745C/746C | Yes | Yes |
+ | Canon MG5300 series | No | Yes |
+ | Canon PIXMA G3000 series | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0005-Add-Brother-HL-L2380DW-series.patch b/0005-Add-Brother-HL-L2380DW-series.patch
new file mode 100644
index 0000000..3cc6a8c
--- /dev/null
+++ b/0005-Add-Brother-HL-L2380DW-series.patch
@@ -0,0 +1,11 @@
+diff -up sane-airscan-0.99.27/README.md.5~ sane-airscan-0.99.27/README.md
+--- sane-airscan-0.99.27/README.md.5~ 2023-02-28 21:42:39.427518895 +0100
++++ sane-airscan-0.99.27/README.md 2023-02-28 21:43:03.141726126 +0100
+@@ -62,6 +62,7 @@ Legend:
+ | Brother DCP-J552DW | No | Yes |
+ | Brother DCP-L2540DW | No | Yes |
+ | Brother DCP-L2550DN / DCP-L2550DW | Yes | |
++| Brother HL-L2380DW series | No | Yes |
+ | Brother HL-L2395DW series | Yes | |
+ | Brother MFC-7360N | No | Yes |
+ | Brother MFC-J1300DW | Yes | |
diff --git a/0006-Added-EPSON-ET-2710-Series-fixes-233.patch b/0006-Added-EPSON-ET-2710-Series-fixes-233.patch
new file mode 100644
index 0000000..81fbf55
--- /dev/null
+++ b/0006-Added-EPSON-ET-2710-Series-fixes-233.patch
@@ -0,0 +1,24 @@
+From eaa87ee11d9b12bc0be12dafc26d62ca1aeab081 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 19:33:21 +0300
+Subject: [PATCH 06/36] Added EPSON ET-2710 Series (fixes #233)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 257db59..bc4e307 100644
+--- a/README.md
++++ b/README.md
+@@ -104,6 +104,7 @@ Legend:
+ | Dell C1765nfw Color MFP | No | Yes |
+ | Dell C2665dnf Color Laser Printer | No | Yes |
+ | Dell C3765dnf Color MFP | No | Yes |
++| EPSON ET-2710 Series | No | Yes |
+ | EPSON ET-2750 Series | Yes | |
+ | EPSON ET-2760 Series | Yes | |
+ | EPSON ET-3750 Series | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0007-Added-EPSON-XP-5100-Series-fixes-232.patch b/0007-Added-EPSON-XP-5100-Series-fixes-232.patch
new file mode 100644
index 0000000..ad6f90a
--- /dev/null
+++ b/0007-Added-EPSON-XP-5100-Series-fixes-232.patch
@@ -0,0 +1,24 @@
+From b3353a0a39c747100e669902a8afbbbe82a481fe Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 19:34:48 +0300
+Subject: [PATCH 07/36] Added EPSON XP-5100 Series (fixes #232)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index bc4e307..32e9fed 100644
+--- a/README.md
++++ b/README.md
+@@ -113,6 +113,7 @@ Legend:
+ | EPSON XP-2100 Series | No | Yes |
+ | EPSON XP-340 Series | Yes | |
+ | EPSON XP-442 445 Series | Yes | |
++| EPSON XP-5100 Series | Yes | |
+ | EPSON XP-6100 Series | Yes | |
+ | EPSON XP-7100 Series | Yes | |
+ | EPSON XP-8600 Series | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0008-Added-HP-Neverstop-Laser-MFP-1202nw-fixes-230.patch b/0008-Added-HP-Neverstop-Laser-MFP-1202nw-fixes-230.patch
new file mode 100644
index 0000000..4a39681
--- /dev/null
+++ b/0008-Added-HP-Neverstop-Laser-MFP-1202nw-fixes-230.patch
@@ -0,0 +1,32 @@
+From 0cd8110b65ff3c53c57ed85d35df19e688b6df00 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 19:40:20 +0300
+Subject: [PATCH 08/36] Added HP Neverstop Laser MFP 1202nw (fixes #230)
+
+---
+ README.md | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/README.md b/README.md
+index 32e9fed..92329be 100644
+--- a/README.md
++++ b/README.md
+@@ -52,6 +52,7 @@ Legend:
+
+ * **Yes** - device works perfectly
+ * **No** - protocol not supported by device
++* **?** - device works with `sane-airscan`, but protocol is not reported by user
+ * Space - author has no information on this mode/device combination
+
+ | Device | eSCL mode | WSD mode |
+@@ -151,6 +152,7 @@ Legend:
+ | HP LaserJet Pro MFP M428dw | Yes | |
+ | HP LaserJet Pro MFP M521 series | No | Yes |
+ | HP Laser MFP 131 133 135-138 | Yes | |
++| HP Neverstop Laser MFP 1202nw | ? | ? |
+ | HP OfficeJet 3830 series | Yes | |
+ | HP Officejet 4630 | Yes | |
+ | HP Officejet Pro 6970 | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0009-Added-EPSON-ET-4850-Series-fixes-229.patch b/0009-Added-EPSON-ET-4850-Series-fixes-229.patch
new file mode 100644
index 0000000..7464a27
--- /dev/null
+++ b/0009-Added-EPSON-ET-4850-Series-fixes-229.patch
@@ -0,0 +1,24 @@
+From 9c6446e13d7823ddd2afd21ab980e12f04e7a0e8 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 19:41:50 +0300
+Subject: [PATCH 09/36] Added EPSON ET-4850 Series (fixes #229)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 92329be..2537592 100644
+--- a/README.md
++++ b/README.md
+@@ -109,6 +109,7 @@ Legend:
+ | EPSON ET-2750 Series | Yes | |
+ | EPSON ET-2760 Series | Yes | |
+ | EPSON ET-3750 Series | Yes | |
++| EPSON ET-4850 Series | Yes | |
+ | EPSON Stylus SX535WD | No | Yes |
+ | EPSON WF-7710 Series | No | Yes |
+ | EPSON XP-2100 Series | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0010-Added-EPSON-ET-2850-Series-fixes-224.patch b/0010-Added-EPSON-ET-2850-Series-fixes-224.patch
new file mode 100644
index 0000000..cd28573
--- /dev/null
+++ b/0010-Added-EPSON-ET-2850-Series-fixes-224.patch
@@ -0,0 +1,24 @@
+From c16f3f9505ad2c42aeb3e73dc5881915c80ab6e1 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 19:43:36 +0300
+Subject: [PATCH 10/36] Added EPSON ET-2850 Series (fixes #224)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 2537592..93fe0f8 100644
+--- a/README.md
++++ b/README.md
+@@ -108,6 +108,7 @@ Legend:
+ | EPSON ET-2710 Series | No | Yes |
+ | EPSON ET-2750 Series | Yes | |
+ | EPSON ET-2760 Series | Yes | |
++| EPSON ET-2850 Series | Yes | |
+ | EPSON ET-3750 Series | Yes | |
+ | EPSON ET-4850 Series | Yes | |
+ | EPSON Stylus SX535WD | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0011-Added-Brother-MFC-8710DW-fixes-220.patch b/0011-Added-Brother-MFC-8710DW-fixes-220.patch
new file mode 100644
index 0000000..2fb82ef
--- /dev/null
+++ b/0011-Added-Brother-MFC-8710DW-fixes-220.patch
@@ -0,0 +1,11 @@
+diff -up sane-airscan-0.99.27/README.md.11~ sane-airscan-0.99.27/README.md
+--- sane-airscan-0.99.27/README.md.11~ 2023-02-28 21:43:15.084830531 +0100
++++ sane-airscan-0.99.27/README.md 2023-02-28 21:43:42.224067873 +0100
+@@ -66,6 +66,7 @@ Legend:
+ | Brother HL-L2380DW series | No | Yes |
+ | Brother HL-L2395DW series | Yes | |
+ | Brother MFC-7360N | No | Yes |
++| Brother MFC-8710DW | No | Yes |
+ | Brother MFC-J1300DW | Yes | |
+ | Brother MFC-J485DW | Yes | |
+ | Brother MFC-J625DW | No | Yes |
diff --git a/0012-Added-HP-ENVY-5055-series-fixes-213.patch b/0012-Added-HP-ENVY-5055-series-fixes-213.patch
new file mode 100644
index 0000000..4eb9add
--- /dev/null
+++ b/0012-Added-HP-ENVY-5055-series-fixes-213.patch
@@ -0,0 +1,24 @@
+From 911c4fed17ce0a520578651e801234a987122bb1 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 20:33:22 +0300
+Subject: [PATCH 12/36] Added HP ENVY 5055 series (fixes #213)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 2ffe320..c3b0b57 100644
+--- a/README.md
++++ b/README.md
+@@ -135,6 +135,7 @@ Legend:
+ | HP DeskJet 5000 series | Yes | |
+ | HP DeskJet 5200 series | Yes | |
+ | HP ENVY 4500 | Yes | |
++| HP ENVY 5055 series | Yes | |
+ | HP ENVY 5530 series | Yes | |
+ | HP ENVY 5540 | Yes | |
+ | HP ENVY 5640 | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0013-Added-Brother-MFC-J4410DW-fixes-208.patch b/0013-Added-Brother-MFC-J4410DW-fixes-208.patch
new file mode 100644
index 0000000..df71f9b
--- /dev/null
+++ b/0013-Added-Brother-MFC-J4410DW-fixes-208.patch
@@ -0,0 +1,11 @@
+diff -up sane-airscan-0.99.27/README.md.13~ sane-airscan-0.99.27/README.md
+--- sane-airscan-0.99.27/README.md.13~ 2023-02-28 21:43:53.472166279 +0100
++++ sane-airscan-0.99.27/README.md 2023-02-28 21:44:07.915292665 +0100
+@@ -68,6 +68,7 @@ Legend:
+ | Brother MFC-7360N | No | Yes |
+ | Brother MFC-8710DW | No | Yes |
+ | Brother MFC-J1300DW | Yes | |
++| Brother MFC-J4410DW | No | Yes |
+ | Brother MFC-J485DW | Yes | |
+ | Brother MFC-J625DW | No | Yes |
+ | Brother MFC-L2700DW | No | Yes |
diff --git a/0014-Added-Xerox-C235-fixes-200.patch b/0014-Added-Xerox-C235-fixes-200.patch
new file mode 100644
index 0000000..3825e28
--- /dev/null
+++ b/0014-Added-Xerox-C235-fixes-200.patch
@@ -0,0 +1,24 @@
+From 86861857572389c803e5c3e39effa3ab23feef3d Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 20:41:57 +0300
+Subject: [PATCH 14/36] Added Xerox C235 (fixes #200)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 2d1cd8b..b329b1e 100644
+--- a/README.md
++++ b/README.md
+@@ -187,6 +187,7 @@ Legend:
+ | Samsung M337x 387x 407x Series | No | Yes<sup>[8](#note8)</sup> |
+ | Xerox B205 | Yes | Yes |
+ | Xerox B215 | Yes | |
++| Xerox C235 | Yes | |
+ | Xerox VersaLink B405 | Yes | |
+ | Xerox WorkCentre 3025 | No | Yes |
+ | TODO | | |
+--
+2.40.0.rc0
+
diff --git a/0015-Added-EPSON-ET-2810-Series-fixes-190.patch b/0015-Added-EPSON-ET-2810-Series-fixes-190.patch
new file mode 100644
index 0000000..d7aaf5d
--- /dev/null
+++ b/0015-Added-EPSON-ET-2810-Series-fixes-190.patch
@@ -0,0 +1,24 @@
+From 527522c3470a890c5ac3b4f2a00e9f6420a7d7c0 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 20:43:24 +0300
+Subject: [PATCH 15/36] Added EPSON ET-2810 Series (fixes #190)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index b329b1e..151aa7c 100644
+--- a/README.md
++++ b/README.md
+@@ -110,6 +110,7 @@ Legend:
+ | EPSON ET-2710 Series | No | Yes |
+ | EPSON ET-2750 Series | Yes | |
+ | EPSON ET-2760 Series | Yes | |
++| EPSON ET-2810 Series | No | Yes |
+ | EPSON ET-2850 Series | Yes | |
+ | EPSON ET-3750 Series | Yes | |
+ | EPSON ET-4850 Series | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0016-Added-Canon-G600-series-fixes-189.patch b/0016-Added-Canon-G600-series-fixes-189.patch
new file mode 100644
index 0000000..644e10c
--- /dev/null
+++ b/0016-Added-Canon-G600-series-fixes-189.patch
@@ -0,0 +1,24 @@
+From c4df549aff81afedcd5072521a9aa34ebf68efc3 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 20:45:00 +0300
+Subject: [PATCH 16/36] Added Canon G600 series (fixes #189)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 151aa7c..c892647 100644
+--- a/README.md
++++ b/README.md
+@@ -72,6 +72,7 @@ Legend:
+ | Brother MFC-L2720DW | No | Yes |
+ | Brother MFC-L2750DW | Yes | Yes |
+ | Canon D570 | Yes | |
++| Canon G600 series | Yes | |
+ | Canon imageCLASS MF642C/643C/644C | Yes | |
+ | Canon imageCLASS MF743cdw | Yes<sup>[1](#note1)</sup> | |
+ | Canon imageRUNNER 2625/2630 | Yes | Yes |
+--
+2.40.0.rc0
+
diff --git a/0017-Added-EPSON-ET-M2170-Series-fixes-188.patch b/0017-Added-EPSON-ET-M2170-Series-fixes-188.patch
new file mode 100644
index 0000000..299b87b
--- /dev/null
+++ b/0017-Added-EPSON-ET-M2170-Series-fixes-188.patch
@@ -0,0 +1,24 @@
+From c4b56e2ed139b9c608ff1eb2a28f84b8de1ec8bb Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 20:46:35 +0300
+Subject: [PATCH 17/36] Added EPSON ET-M2170 Series (fixes #188)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index c892647..f627f76 100644
+--- a/README.md
++++ b/README.md
+@@ -115,6 +115,7 @@ Legend:
+ | EPSON ET-2850 Series | Yes | |
+ | EPSON ET-3750 Series | Yes | |
+ | EPSON ET-4850 Series | Yes | |
++| EPSON ET-M2170 Series | Yes | |
+ | EPSON Stylus SX535WD | No | Yes |
+ | EPSON WF-7710 Series | No | Yes |
+ | EPSON XP-2100 Series | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0018-Added-Lexmark-MC3326adwe-fixes-187.patch b/0018-Added-Lexmark-MC3326adwe-fixes-187.patch
new file mode 100644
index 0000000..6a124db
--- /dev/null
+++ b/0018-Added-Lexmark-MC3326adwe-fixes-187.patch
@@ -0,0 +1,24 @@
+From d9c61eb8b38f564b1710d44e7d16d9da12941692 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 20:50:43 +0300
+Subject: [PATCH 18/36] Added Lexmark MC3326adwe (fixes #187)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index f627f76..5234223 100644
+--- a/README.md
++++ b/README.md
+@@ -180,6 +180,7 @@ Legend:
+ | Lexmark MB2236adw | Yes | |
+ | Lexmark MC2535adwe | Yes | |
+ | Lexmark MC3224adwe | Yes | |
++| Lexmark MC3326adwe | Yes | |
+ | OKI-MC853 | Yes | |
+ | Panasonic KV-S1058Y | No | Yes |
+ | Pantum M6500W series | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0019-Added-Samsung-SCX-3400-Series.patch b/0019-Added-Samsung-SCX-3400-Series.patch
new file mode 100644
index 0000000..a6adb1b
--- /dev/null
+++ b/0019-Added-Samsung-SCX-3400-Series.patch
@@ -0,0 +1,24 @@
+From f57ac5a8fff6798a3fe08c92dcabfbc429542abc Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 20:52:28 +0300
+Subject: [PATCH 19/36] Added Samsung SCX-3400 Series
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 5234223..9fb9728 100644
+--- a/README.md
++++ b/README.md
+@@ -189,6 +189,7 @@ Legend:
+ | Samsung M267x 287x Series | No | Yes |
+ | Samsung M288x Series | No | Yes |
+ | Samsung M337x 387x 407x Series | No | Yes<sup>[8](#note8)</sup> |
++| Samsung SCX-3400 Series | No | Yes |
+ | Xerox B205 | Yes | Yes |
+ | Xerox B215 | Yes | |
+ | Xerox C235 | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0020-sane-airscan.5-updated-see-216.patch b/0020-sane-airscan.5-updated-see-216.patch
new file mode 100644
index 0000000..132a8ab
--- /dev/null
+++ b/0020-sane-airscan.5-updated-see-216.patch
@@ -0,0 +1,257 @@
+From c3322b5284ca54855d41e1cdead9dd0160ad5bb4 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Wed, 4 May 2022 21:02:53 +0300
+Subject: [PATCH 20/36] sane-airscan.5 updated (see #216)
+
+---
+ sane-airscan.5 | 81 ++++-------------------------------------------
+ sane-airscan.5.md | 6 ++--
+ 2 files changed, 9 insertions(+), 78 deletions(-)
+
+diff --git a/sane-airscan.5 b/sane-airscan.5
+index 6e437eb..f9bcfc6 100644
+--- a/sane-airscan.5
++++ b/sane-airscan.5
+@@ -1,115 +1,72 @@
+-.\" generated with Ronn/v0.7.3
+-.\" http://github.com/rtomayko/ronn/tree/0.7.3
+-.
+-.TH "SANE\-AIRSCAN" "5" "May 2021" "" "AirScan (eSCL) and WSD SANE backend"
+-.
++.\" generated with Ronn-NG/v0.9.1
++.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
++.TH "SANE\-AIRSCAN" "5" "May 2022" "" "AirScan (eSCL) and WSD SANE backend"
+ .SH "NAME"
+ \fBsane\-airscan\fR \- SANE backend for AirScan (eSCL) and WSD scanners and MFP
+-.
+ .SH "DESCRIPTION"
+ The \fBsane\-airscan\fR is the universal backend for "driverless" document scanning\. Currently it supports two protocols:
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ 1\. eSCL, also known as AirScan or AirPrint scan
+ 2\. WSD, also known as WS\-Scan
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .SH "CONFIGURATION"
+ The sane\-airscan loads its configuration files from the following places:
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ 1\. /etc/sane\.d/airscan\.conf
+ 2\. /etc/sane\.d/airscan\.d/*
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .P
+ The configuration file syntax is very similar to the \.INI file syntax\. It consist of sections, each section contains some variables\. Comments are started from # or ; characters and continies until end of line
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ # This is a comment
+ [section 1]
+ variable 1 = value 1 ; and another comment
+ variable 2 = value 2
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .P
+ Leading and trailing spaces of variable name and value are striped\. If you want to preserve them, put name or value into quotes ("like this")\.
+-.
+ .SH "CONFIGURATION OF DEVICES"
+ If scanner and computer are connected to the same LAN segment, everything expected to "just work" out of box, without any need of manual configuration\.
+-.
+ .P
+ However, in some cases manual configuration can be useful\. For example:
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ 1\. If computer and scanner are connected via IP router
+ 2\. There are a lot of devices on a corporate network, but
+ only few of them are interesting
+ 3\. Automatic discovery works unreliable
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .P
+ To manually configure a device, add the following section to the configuration file:
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ [devices]
+ "Kyocera eSCL" = http://192\.168\.1\.102:9095/eSCL, eSCL
+ "Kyocera WSD" = http://192\.168\.1\.102:5358/WSDScanner, WSD
+ "Device I do not want to see" = disable
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .P
+ The \fB[devices]\fR section contains all manually configured devices, one line per device, and each line contains a device name on a left side of equation and device URL on a rights side, followed by protocol (eSCL or WSD)\. If protocol is omitted, eSCL is assumed\. You may also disable particular device by using the \fBdisable\fR keyword instead of URL\.
+-.
+ .P
+ In addition, you can manually configure a device by directly passing its URL in a device name without adding it to the configuration file\. This takes the format \fBprotocol:Device Name:URL\fR\. The examples above could be written as \fBescl:Kyocera eSCL:http://192\.168\.1\.102:9095/eSCL\fR and \fBwsd:Kyocera WSD:http://192\.168\.1\.102:5358/WSDScanner\fR\.
+-.
+ .P
+-To figure out URLs of available devices, the simplest way is to run a supplied \fBairscan\-discover\fR tool on a computer connected with scanner to the same LAN segment\. On success, this program will dump to its standard output a list of discovered devices in a format suitable for inclusion into the configuration file\.
+-.
++To figure out URLs of available devices, the simplest way is to run the supplied \fBairscan\-discover(1)\fR tool on a computer connected with scanner to the same LAN segment\. On success, this program will dump to its standard output a list of discovered devices in a format suitable for inclusion into the configuration file\.
+ .P
+-If running \fBairscan\-discover\fR on same LAN segment as a scanner is not possible, you will have to follow a hard way\. Your administrator must know device IP address, consult your device manual for the eSCL port, and the URL path component most likely is the "/eSCL", though on some devices it may differ\. Discovering WSD URLs doing this way is much harder, because it is very difficult to guess TCP port and URL path, that in a case of eSCL\.
+-.
++If running \fBairscan\-discover(1)\fR on the same LAN segment as a scanner is not possible, you will have to follow a hard way\. Your administrator must know device IP address, consult your device manual for the eSCL port, and the URL path component most likely is the "/eSCL", though on some devices it may differ\. Discovering WSD URLs doing this way is much harder, because it is very difficult to guess TCP port and URL path, that in a case of eSCL\.
+ .P
+ For eSCL devices, the URL can also use the unix:// scheme, such as unix://scanner\.sock/eSCL\. The "host" from the URL is a file name that will be searched for in the directory specified by socket_dir (see below)\. When connecting to the scanner, all traffic will be sent to the specified UNIX socket instead of a TCP connection\.
+-.
+ .SH "CONFIGURATION OPTIONS"
+ Miscellaneous options all goes to the \fB[options]\fR section\. Currently the following options are supported:
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ [options]
+ ; If there are a lot of scanners around and you are only
+ ; interested in few of them, disable auto discovery and
+@@ -129,7 +86,7 @@ protocol = auto | manual
+ ; Discovery of WSD devices may be "fast" or "full"\. The "fast"
+ ; mode works as fast as DNS\-SD discovery, but in some cases
+ ; may be unreliable\. The "full" mode is slow and reliable\.
+-; This is also possible to disable automatic discovery
++; It is also possible to disable automatic discovery
+ ; of WSD devices\. The default is "fast"\.
+ ws\-discovery = fast | full | off
+
+@@ -137,44 +94,29 @@ ws\-discovery = fast | full | off
+ ; socket name (not a full path)\. The name will be searched for in the
+ ; directory specified here\. The default is /var/run\.
+ socket_dir = /path/to/directory
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .SH "BLACKLISTING DEVICES"
+ This feature can be useful, if you are on a very big network and have a lot of devices around you, while interesting only in a few of them\.
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ [blacklist]
+ model = "Xerox*" ; blacklist by model name
+ name = "HP*" ; blacklist by network name
+ ip = 192\.168\.0\.1 ; blacklist by address
+ ip = 192\.168\.0\.0/24 ; blacklist the whole subnet
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .P
+ Network names come from DNS\-SD, WS\-Discovery doesn\'t provide this information\. For filtering by network name to work, Avahi must be enabled and device must be discoverable via DNS\-SD (not necessarily as a scanner, it\'s enough if WSD scanner is discoverable as a printer via DNS\-SD)\.
+-.
+ .P
+ Blacklisting only affects automatic discovery, and doesn\'t affect manually configured devices
+-.
+ .SH "DEBUGGING"
+ sane\-airscan provides very good instrumentation for troubleshooting without physical access to the problemmatic device\.
+-.
+ .P
+ Debugging facilities can be controlled using the \fB[debug]\fR section of the configuration file:
+-.
+ .IP "" 4
+-.
+ .nf
+-
+ [debug]
+ ; Enable or disable console logging
+ enable = false | true
+@@ -188,36 +130,25 @@ trace = path
+
+ ; Hex dump all traffic to the trace file (very verbose!)
+ hexdump = false | true
+-.
+ .fi
+-.
+ .IP "" 0
+-.
+ .SH "FILES"
+-.
+ .TP
+ \fB/etc/sane\.d/airscan\.conf\fR, \fB/etc/sane\.d/airscan\.d/*\fR
+ The backend configuration files
+-.
+ .TP
+ \fB/usr/LIBDIR/sane/libsane\-airscan\.so\fR
+ The shared library implementing this backend
+-.
+ .SH "ENVIRONMENT"
+-.
+ .TP
+ \fBSANE_DEBUG_AIRSCAN\fR
+ This variable if set to \fBtrue\fR or non\-zero numerical value, enables debug messages, that are printed to stdout
+-.
+ .TP
+ \fBSANE_CONFIG_DIR\fR
+ This variable alters the search path for configuration files\. This is a colon\-separated list of directories\. These directories are searched for the airscan\.conf configuration file and for the airscan\.d subdirectory, before the standard path (/etc/sane\.d) is searched\.
+-.
+ .SH "BUGS AND SUPPORT"
+ If you have found a bug, please file a GitHub issue on a GitHub project page: \fBhttps://github\.com/alexpevzner/sane\-airscan\fR
+-.
+ .SH "SEE ALSO"
+ sane(7), scanimage(1), xsane(1), airscan\-discover(1)
+-.
+ .SH "AUTHOR"
+ Alexander Pevzner <pzz@apevzner\.com>
+diff --git a/sane-airscan.5.md b/sane-airscan.5.md
+index acf34a8..0ea5e39 100644
+--- a/sane-airscan.5.md
++++ b/sane-airscan.5.md
+@@ -61,12 +61,12 @@ format `protocol:Device Name:URL`. The examples above could be written as
+ `wsd:Kyocera WSD:http://192.168.1.102:5358/WSDScanner`.
+
+ To figure out URLs of available devices, the simplest way is to
+-run a supplied `airscan-discover` tool on a computer connected with
++run the supplied `airscan-discover(1)` tool on a computer connected with
+ scanner to the same LAN segment. On success, this program will
+ dump to its standard output a list of discovered devices in a
+ format suitable for inclusion into the configuration file.
+
+-If running `airscan-discover` on same LAN segment as a scanner is not
++If running `airscan-discover(1)` on the same LAN segment as a scanner is not
+ possible, you will have to follow a hard way. Your administrator must know
+ device IP address, consult your device manual for the eSCL port, and
+ the URL path component most likely is the "/eSCL", though on some
+@@ -104,7 +104,7 @@ the following options are supported:
+ ; Discovery of WSD devices may be "fast" or "full". The "fast"
+ ; mode works as fast as DNS-SD discovery, but in some cases
+ ; may be unreliable. The "full" mode is slow and reliable.
+- ; This is also possible to disable automatic discovery
++ ; It is also possible to disable automatic discovery
+ ; of WSD devices. The default is "fast".
+ ws-discovery = fast | full | off
+
+--
+2.40.0.rc0
+
diff --git a/0021-Man-pages-updated-see-216.patch b/0021-Man-pages-updated-see-216.patch
new file mode 100644
index 0000000..899131c
--- /dev/null
+++ b/0021-Man-pages-updated-see-216.patch
@@ -0,0 +1,171 @@
+From 86a474b90123d80a5762e9c0b8ebc41e9c25e827 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Thu, 5 May 2022 20:30:17 +0300
+Subject: [PATCH 21/36] Man pages updated (see #216)
+
+---
+ airscan-discover.1 | 23 ++++-------------------
+ airscan-discover.1.md | 2 +-
+ sane-airscan.5 | 10 +++++-----
+ sane-airscan.5.md | 10 +++++-----
+ 4 files changed, 15 insertions(+), 30 deletions(-)
+
+diff --git a/airscan-discover.1 b/airscan-discover.1
+index 3ea3bee..ef8e93d 100644
+--- a/airscan-discover.1
++++ b/airscan-discover.1
+@@ -1,49 +1,34 @@
+-.\" generated with Ronn/v0.7.3
+-.\" http://github.com/rtomayko/ronn/tree/0.7.3
+-.
+-.TH "AIRSCAN\-DISCOVER" "1" "May 2020" "" "SANE Scanner Access Now Easy"
+-.
++.\" generated with Ronn-NG/v0.9.1
++.\" http://github.com/apjanke/ronn-ng/tree/0.9.1
++.TH "AIRSCAN\-DISCOVER" "1" "May 2022" "" "SANE Scanner Access Now Easy"
+ .SH "NAME"
+ \fBairscan\-discover\fR \- Discover sane\-airscan compatible scanners
+-.
+ .SH "SYNOPSIS"
+ \fBairscan\-discover [\-h] [\-d] [\-t]\fR
+-.
+ .SH "DESCRIPTION"
+ \fBairscan\-discover\fR is a command\-line tool to find eSCL and WSD scanners on a local network
+-.
+ .P
+ It uses Avahi to discover DNS\-SD devices and its own implementation of WS\-Discovery to discover WSD devices\.
+-.
+ .P
+ On success, it outputs a fragment of sane\-airscan configuration file, that can be directly added to \fB/etc/sane\.d/airscan\.conf\fR
+-.
+ .SH "OPTIONS"
+-.
+ .TP
+ \fB\-h\fR
+ Print help screen
+-.
+ .TP
+ \fB\-d\fR
+ Print debug messages to console
+-.
+ .TP
+ \fB\-t\fR
+ Write a very detailed protocol trace to \fBairscan\-discover\-zeroconf\.log\fR and \fBairscan\-discover\-zeroconf\.tar\fR
+-.
+ .SH "FILES"
+-.
+ .TP
+ \fBairscan\-discover\-zeroconf\.log\fR
+ Protocol trace
+-.
+ .TP
+ \fBairscan\-discover\-zeroconf\.tar\fR
+ Non\-textual messages, if any, saved here\. Textual (i\.e\., XML) messages included directly into the \.log file
+-.
+ .SH "SEE ALSO"
+-sane(7), sane\-airscan(5)
+-.
++\fBsane(7), sane\-airscan(5)\fR
+ .SH "AUTHOR"
+ Alexander Pevzner <pzz@apevzner\.com>
+diff --git a/airscan-discover.1.md b/airscan-discover.1.md
+index c972fb7..969d987 100644
+--- a/airscan-discover.1.md
++++ b/airscan-discover.1.md
+@@ -39,7 +39,7 @@ file, that can be directly added to `/etc/sane.d/airscan.conf`
+
+ ## SEE ALSO
+
+-sane(7), sane-airscan(5)
++**sane(7), sane-airscan(5)**
+
+ ## AUTHOR
+ Alexander Pevzner <pzz@apevzner.com\>
+diff --git a/sane-airscan.5 b/sane-airscan.5
+index f9bcfc6..d60ae0a 100644
+--- a/sane-airscan.5
++++ b/sane-airscan.5
+@@ -70,17 +70,17 @@ Miscellaneous options all goes to the \fB[options]\fR section\. Currently the fo
+ [options]
+ ; If there are a lot of scanners around and you are only
+ ; interested in few of them, disable auto discovery and
+-; configure scanners manually
++; configure scanners manually\.
+ discovery = enable | disable
+
+ ; Choose what SANE apps will show in a list of devices:
+-; scanner network name (the default) or hardware model name
++; scanner network name (the default) or hardware model name\.
+ model = network | hardware
+
+ ; If device supports both eSCL and WSD protocol, sane\-airscan
+ ; may either choose the "best" protocol automatically, or
+ ; expose all variants for user, allowing manual protocol selection\.
+-; The default is "auto"
++; The default is "auto"\.
+ protocol = auto | manual
+
+ ; Discovery of WSD devices may be "fast" or "full"\. The "fast"
+@@ -110,7 +110,7 @@ ip = 192\.168\.0\.0/24 ; blacklist the whole subnet
+ .P
+ Network names come from DNS\-SD, WS\-Discovery doesn\'t provide this information\. For filtering by network name to work, Avahi must be enabled and device must be discoverable via DNS\-SD (not necessarily as a scanner, it\'s enough if WSD scanner is discoverable as a printer via DNS\-SD)\.
+ .P
+-Blacklisting only affects automatic discovery, and doesn\'t affect manually configured devices
++Blacklisting only affects automatic discovery, and doesn\'t affect manually configured devices\.
+ .SH "DEBUGGING"
+ sane\-airscan provides very good instrumentation for troubleshooting without physical access to the problemmatic device\.
+ .P
+@@ -149,6 +149,6 @@ This variable alters the search path for configuration files\. This is a colon\-
+ .SH "BUGS AND SUPPORT"
+ If you have found a bug, please file a GitHub issue on a GitHub project page: \fBhttps://github\.com/alexpevzner/sane\-airscan\fR
+ .SH "SEE ALSO"
+-sane(7), scanimage(1), xsane(1), airscan\-discover(1)
++\fBsane(7), scanimage(1), xsane(1), airscan\-discover(1)\fR
+ .SH "AUTHOR"
+ Alexander Pevzner <pzz@apevzner\.com>
+diff --git a/sane-airscan.5.md b/sane-airscan.5.md
+index 0ea5e39..3fd7f9b 100644
+--- a/sane-airscan.5.md
++++ b/sane-airscan.5.md
+@@ -88,17 +88,17 @@ the following options are supported:
+ [options]
+ ; If there are a lot of scanners around and you are only
+ ; interested in few of them, disable auto discovery and
+- ; configure scanners manually
++ ; configure scanners manually.
+ discovery = enable | disable
+
+ ; Choose what SANE apps will show in a list of devices:
+- ; scanner network name (the default) or hardware model name
++ ; scanner network name (the default) or hardware model name.
+ model = network | hardware
+
+ ; If device supports both eSCL and WSD protocol, sane-airscan
+ ; may either choose the "best" protocol automatically, or
+ ; expose all variants for user, allowing manual protocol selection.
+- ; The default is "auto"
++ ; The default is "auto".
+ protocol = auto | manual
+
+ ; Discovery of WSD devices may be "fast" or "full". The "fast"
+@@ -131,7 +131,7 @@ as a scanner, it's enough if WSD scanner is discoverable as a printer
+ via DNS-SD).
+
+ Blacklisting only affects automatic discovery, and doesn't
+-affect manually configured devices
++affect manually configured devices.
+
+ ## DEBUGGING
+
+@@ -182,7 +182,7 @@ project page: **https://github.com/alexpevzner/sane-airscan**
+
+ ## SEE ALSO
+
+-sane(7), scanimage(1), xsane(1), airscan-discover(1)
++**sane(7), scanimage(1), xsane(1), airscan-discover(1)**
+
+ ## AUTHOR
+ Alexander Pevzner <pzz@apevzner.com\>
+--
+2.40.0.rc0
+
diff --git a/0022-Ignore-HTTP-I-O-error-if-headers-received-and-body-i.patch b/0022-Ignore-HTTP-I-O-error-if-headers-received-and-body-i.patch
new file mode 100644
index 0000000..a5174eb
--- /dev/null
+++ b/0022-Ignore-HTTP-I-O-error-if-headers-received-and-body-i.patch
@@ -0,0 +1,168 @@
+From 601f7e7b1329bfd6d41ffc5ff540a197e5aa9322 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Fri, 6 May 2022 01:31:35 +0300
+Subject: [PATCH 22/36] Ignore HTTP I/O error, if headers received and body is
+ not needed (see #163)
+
+ Kyocera ECOSYS M6526cdn, when accessed via HTTPS, sometimes
+ drops the TLS connection after sending response HTTP headers,
+ but before the body transfer is completed.
+
+ This change attempts to work around this problem.
+---
+ airscan-escl.c | 11 +++++++++++
+ airscan-http.c | 51 ++++++++++++++++++++++++++++++++++++++++++++++++++
+ airscan.h | 11 +++++++++++
+ 3 files changed, 73 insertions(+)
+
+diff --git a/airscan-escl.c b/airscan-escl.c
+index 659b4ef..5721cf5 100644
+--- a/airscan-escl.c
++++ b/airscan-escl.c
+@@ -781,6 +781,17 @@ escl_scan_query (const proto_ctx *ctx)
+ query = escl_http_query(ctx, "ScanJobs", "POST",
+ xml_wr_finish_compact(xml));
+
++ /* Kyocera ECOSYS M6526cdn drops TLS connection after sending
++ * response HTTP headers, but before the body transfer is completed.
++ *
++ * As for this request we are only interested in the response
++ * headers, we can ignore this kind of error
++ *
++ * See here for details:
++ * https://github.com/alexpevzner/sane-airscan/issues/163
++ */
++ http_query_no_need_response_body(query);
++
+ /* It's a dirty hack
+ *
+ * HP LaserJet MFP M630, HP Color LaserJet FlowMFP M578 and
+diff --git a/airscan-http.c b/airscan-http.c
+index 927aab1..06d68ce 100644
+--- a/airscan-http.c
++++ b/airscan-http.c
+@@ -1985,6 +1985,9 @@ struct http_query {
+ eloop_timer *timeout_timer; /* Timeout timer */
+ int timeout_value; /* In milliseconds */
+
++ /* Miscellaneous options */
++ bool no_need_response_body; /* Response body not needed */
++
+ /* Low-level I/O */
+ bool submitted; /* http_query_submit() called */
+ uint64_t eloop_callid; /* For eloop_call_cancel */
+@@ -2004,6 +2007,7 @@ struct http_query {
+
+ /* HTTP parser */
+ http_parser http_parser; /* HTTP parser structure */
++ bool http_headers_received; /* HTTP headers received */
+ bool http_parser_done; /* Message parsing done */
+
+ /* Data handling */
+@@ -2068,6 +2072,7 @@ http_query_reset (http_query *q)
+ str_trunc(q->rq_buf);
+ q->rq_off = 0;
+
++ q->http_headers_received = false;
+ q->http_parser_done = false;
+
+ http_data_unref(q->response_data);
+@@ -2268,6 +2273,20 @@ http_query_timeout (http_query *q, int timeout)
+ }
+ }
+
++/* Set 'no_need_response_body' flag
++ *
++ * This flag notifies, that http_query issued is only interested
++ * in the HTTP response headers, not body
++ *
++ * If this flag is set, after successful reception of response
++ * HTTP header, errors in fetching response body is ignored
++ */
++void
++http_query_no_need_response_body (http_query *q)
++{
++ q->no_need_response_body = true;
++}
++
+ /* Cancel query timeout timer
+ */
+ static void
+@@ -2408,6 +2427,29 @@ http_query_redirect (http_query *q, const char *method)
+ return NULL;
+ }
+
++/* Check if I/O error should be ignored for this query
++ */
++static bool
++http_query_ignore_error (http_query *q)
++{
++ int status;
++
++ /* Headers must be received */
++ if (!q->http_headers_received) {
++ return false;
++ }
++
++ /* Depending on HTTP status, response body may be irrelevant */
++ status = q->http_parser.status_code;
++ switch (status / 100) {
++ case 1: case 3: case 4: case 5:
++ return true;
++ }
++
++ /* If `no_need_response_body' is set, ignore the error */
++ return q->no_need_response_body;
++}
++
+ /* Complete query processing
+ */
+ static void
+@@ -2421,6 +2463,13 @@ http_query_complete (http_query *q, error err)
+ /* Unlink query from a client */
+ ll_del(&q->chain);
+
++ /* In some cases, I/O error can be ignored. Check for that */
++ if (err != NULL && http_query_ignore_error(q)) {
++ log_debug(client->log, "HTTP %s %s: %s (ignored)", q->method,
++ http_uri_str(q->uri), ESTRING(err));
++ err = NULL;
++ }
++
+ /* Issue log messages */
+ q->err = err;
+ if (err != NULL) {
+@@ -2506,6 +2555,8 @@ http_query_on_headers_complete (http_parser *parser)
+ http_uri_str(q->uri),
+ http_query_status(q));
+
++ q->http_headers_received = true;
++
+ if (q->onrxhdr != NULL) {
+ q->onrxhdr(q->client->ptr, q);
+ }
+diff --git a/airscan.h b/airscan.h
+index 894401e..ac6b214 100644
+--- a/airscan.h
++++ b/airscan.h
+@@ -1827,6 +1827,17 @@ http_query_new_relative(http_client *client,
+ void
+ http_query_timeout (http_query *q, int timeout);
+
++/* Set 'no_need_response_body' flag
++ *
++ * This flag notifies, that http_query issued is only interested
++ * in the HTTP response headers, not body
++ *
++ * If this flag is set, after successful reception of response
++ * HTTP header, errors in fetching response body is ignored
++ */
++void
++http_query_no_need_response_body (http_query *q);
++
+ /* Set forcing port to be added to the Host header for this query.
+ *
+ * This function may be called multiple times (each subsequent call overrides
+--
+2.40.0.rc0
+
diff --git a/0023-Added-Canon-TS-3400-fixes-202.patch b/0023-Added-Canon-TS-3400-fixes-202.patch
new file mode 100644
index 0000000..7965a5a
--- /dev/null
+++ b/0023-Added-Canon-TS-3400-fixes-202.patch
@@ -0,0 +1,24 @@
+From ba8ce0a592e0be2d3202b3814f561826e4ce57de Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Fri, 6 May 2022 01:40:17 +0300
+Subject: [PATCH 23/36] Added Canon TS 3400 (fixes #202)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 0546fa8..ec47ac5 100644
+--- a/README.md
++++ b/README.md
+@@ -107,6 +107,7 @@ Legend:
+ | Canon TR7500 Series | No | Yes |
+ | Canon TS 3100 | Yes | |
+ | Canon TS 3300 | Yes | |
++| Canon TS 3400 | Yes | |
+ | Canon TS 6151 | Yes | |
+ | Canon TS 6200 series | Yes | Yes |
+ | Canon TS 6400 series | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0024-Added-Kyocera-ECOSYS-M2035dn-fixes-234.patch b/0024-Added-Kyocera-ECOSYS-M2035dn-fixes-234.patch
new file mode 100644
index 0000000..295abbe
--- /dev/null
+++ b/0024-Added-Kyocera-ECOSYS-M2035dn-fixes-234.patch
@@ -0,0 +1,24 @@
+From ef518a16d0c1ac25fce5c8be8b03c44a7c564afa Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Fri, 6 May 2022 15:29:52 +0300
+Subject: [PATCH 24/36] Added Kyocera ECOSYS M2035dn (fixes #234)
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index ec47ac5..193bae8 100644
+--- a/README.md
++++ b/README.md
+@@ -179,6 +179,7 @@ Legend:
+ | HP ScanJet Pro 3500 fn1 | Yes<sup>[3](#note3)</sup> | |
+ | HP ScanJet Pro 4500 fn1 | Yes | |
+ | HP Smart Tank Plus 550 series | Yes | |
++| Kyocera ECOSYS M2035dn | Yes | Yes<sup>[5](#note5)</sup> |
+ | Kyocera ECOSYS M2040dn | Yes | Yes<sup>[5](#note5)</sup> |
+ | Kyocera ECOSYS M5521cdw | Yes | Yes<sup>[5](#note5)</sup> |
+ | Kyocera ECOSYS M5526cdw | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0025-Fixed-Kyocera-ECOSYS-M2035dn-description-see-234.patch b/0025-Fixed-Kyocera-ECOSYS-M2035dn-description-see-234.patch
new file mode 100644
index 0000000..9cb8da2
--- /dev/null
+++ b/0025-Fixed-Kyocera-ECOSYS-M2035dn-description-see-234.patch
@@ -0,0 +1,25 @@
+From e551cef320a80bbe145d8d2c72b248eae5bc1b10 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Fri, 6 May 2022 15:44:10 +0300
+Subject: [PATCH 25/36] Fixed Kyocera ECOSYS M2035dn description (see #234)
+
+---
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index 193bae8..4bc6532 100644
+--- a/README.md
++++ b/README.md
+@@ -179,7 +179,7 @@ Legend:
+ | HP ScanJet Pro 3500 fn1 | Yes<sup>[3](#note3)</sup> | |
+ | HP ScanJet Pro 4500 fn1 | Yes | |
+ | HP Smart Tank Plus 550 series | Yes | |
+-| Kyocera ECOSYS M2035dn | Yes | Yes<sup>[5](#note5)</sup> |
++| Kyocera ECOSYS M2035dn | No | Yes<sup>[5](#note5)</sup> |
+ | Kyocera ECOSYS M2040dn | Yes | Yes<sup>[5](#note5)</sup> |
+ | Kyocera ECOSYS M5521cdw | Yes | Yes<sup>[5](#note5)</sup> |
+ | Kyocera ECOSYS M5526cdw | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0026-Add-Canon-TS8230.patch b/0026-Add-Canon-TS8230.patch
new file mode 100644
index 0000000..7fd9911
--- /dev/null
+++ b/0026-Add-Canon-TS8230.patch
@@ -0,0 +1,24 @@
+From fb23e2d1e58c0d57ee63d21f9f0066f29f23620f Mon Sep 17 00:00:00 2001
+From: Jason Nader <ammgws@users.noreply.github.com>
+Date: Sat, 11 Jun 2022 16:16:09 +0900
+Subject: [PATCH 26/36] Add Canon TS8230
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 4bc6532..736276a 100644
+--- a/README.md
++++ b/README.md
+@@ -111,6 +111,7 @@ Legend:
+ | Canon TS 6151 | Yes | |
+ | Canon TS 6200 series | Yes | Yes |
+ | Canon TS 6400 series | Yes | |
++| Canon TS 8230 series | | Yes |
+ | Dell C1765nfw Color MFP | No | Yes |
+ | Dell C2665dnf Color Laser Printer | No | Yes |
+ | Dell C3765dnf Color MFP | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0027-Update-README.md.patch b/0027-Update-README.md.patch
new file mode 100644
index 0000000..182cb1e
--- /dev/null
+++ b/0027-Update-README.md.patch
@@ -0,0 +1,25 @@
+From d7a2bb64fa8d9df16083822c836e98d2b991dcba Mon Sep 17 00:00:00 2001
+From: Jason Nader <ammgws@users.noreply.github.com>
+Date: Sat, 11 Jun 2022 21:38:36 +0900
+Subject: [PATCH 27/36] Update README.md
+
+---
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index 736276a..39aa8da 100644
+--- a/README.md
++++ b/README.md
+@@ -111,7 +111,7 @@ Legend:
+ | Canon TS 6151 | Yes | |
+ | Canon TS 6200 series | Yes | Yes |
+ | Canon TS 6400 series | Yes | |
+-| Canon TS 8230 series | | Yes |
++| Canon TS 8230 series | No | Yes |
+ | Dell C1765nfw Color MFP | No | Yes |
+ | Dell C2665dnf Color Laser Printer | No | Yes |
+ | Dell C3765dnf Color MFP | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0028-Added-Brother-MFC-J4620DW.patch b/0028-Added-Brother-MFC-J4620DW.patch
new file mode 100644
index 0000000..4368c01
--- /dev/null
+++ b/0028-Added-Brother-MFC-J4620DW.patch
@@ -0,0 +1,24 @@
+From 6b7d128903eae5e5b637467334f0a06b0fb4a2c8 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Thu, 30 Jun 2022 02:09:43 +0300
+Subject: [PATCH 28/36] Added Brother MFC-J4620DW
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index 39aa8da..dcd1fba 100644
+--- a/README.md
++++ b/README.md
+@@ -69,6 +69,7 @@ Legend:
+ | Brother MFC-8710DW | No | Yes |
+ | Brother MFC-J1300DW | Yes | |
+ | Brother MFC-J4410DW | No | Yes |
++| Brother MFC-J4620DW | No | Yes |
+ | Brother MFC-J485DW | Yes | |
+ | Brother MFC-J625DW | No | Yes |
+ | Brother MFC-L2700DW | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0029-Added-SHARP-MX-3060N.patch b/0029-Added-SHARP-MX-3060N.patch
new file mode 100644
index 0000000..7a5ae48
--- /dev/null
+++ b/0029-Added-SHARP-MX-3060N.patch
@@ -0,0 +1,34 @@
+From 62fb4fa8bf9280373ccddae6f8d6745bbcd0b432 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Mon, 4 Jul 2022 01:55:08 +0300
+Subject: [PATCH 29/36] Added SHARP MX-3060N
+
+---
+ README.md | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/README.md b/README.md
+index dcd1fba..9b459a5 100644
+--- a/README.md
++++ b/README.md
+@@ -199,6 +199,7 @@ Legend:
+ | Samsung M288x Series | No | Yes |
+ | Samsung M337x 387x 407x Series | No | Yes<sup>[8](#note8)</sup> |
+ | Samsung SCX-3400 Series | No | Yes |
++| SHARP MX-3060N | Yes<sup>[9](#note8)</sup> | |
+ | Xerox B205 | Yes | Yes |
+ | Xerox B215 | Yes | |
+ | Xerox C235 | Yes | |
+@@ -239,6 +240,9 @@ http://support.ricoh.com/bb_v1oi/pub_e/oi_view/0001047/0001047003/view/scanner/i
+ V4.00.01.04 APR-09-2013) ADF scan causes device reboot. Firmware update
+ helps, version V4.00.02.20 MAY-27-2020 known to work.
+
++<a name="note8"><sup>[8]</sup></a>: eSCL needs to be manually enabled on this device:
++System-settings->Network settings->Airprint settings->Airscan
++
+ ### Distros that come with sane-airscan
+
+ The following distros (in alphabetical order) include `sane-airscan`
+--
+2.40.0.rc0
+
diff --git a/0030-HP-Neverstop-Laser-MFP-1202nw-information-updated-fi.patch b/0030-HP-Neverstop-Laser-MFP-1202nw-information-updated-fi.patch
new file mode 100644
index 0000000..5081954
--- /dev/null
+++ b/0030-HP-Neverstop-Laser-MFP-1202nw-information-updated-fi.patch
@@ -0,0 +1,26 @@
+From c93f4d67091b9a904446b7ce895a6330d72f9249 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Tue, 5 Jul 2022 14:59:16 +0300
+Subject: [PATCH 30/36] HP Neverstop Laser MFP 1202nw information updated
+ (fixes #244)
+
+---
+ README.md | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index 9b459a5..d606c1b 100644
+--- a/README.md
++++ b/README.md
+@@ -168,7 +168,7 @@ Legend:
+ | HP LaserJet Pro MFP M428dw | Yes | |
+ | HP LaserJet Pro MFP M521 series | No | Yes |
+ | HP Laser MFP 131 133 135-138 | Yes | |
+-| HP Neverstop Laser MFP 1202nw | ? | ? |
++| HP Neverstop Laser MFP 1202nw | Yes | |
+ | HP OfficeJet 3830 series | Yes | |
+ | HP Officejet 4630 | Yes | |
+ | HP Officejet Pro 6970 | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0031-Added-Canon-TR8600-Scanner.patch b/0031-Added-Canon-TR8600-Scanner.patch
new file mode 100644
index 0000000..f8f986d
--- /dev/null
+++ b/0031-Added-Canon-TR8600-Scanner.patch
@@ -0,0 +1,24 @@
+From 66906342d3d602e5c3855135a12b5729d7566b64 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Mon, 23 Jan 2023 23:48:33 +0300
+Subject: [PATCH 31/36] Added Canon TR8600 Scanner
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index d606c1b..d144c2e 100644
+--- a/README.md
++++ b/README.md
+@@ -106,6 +106,7 @@ Legend:
+ | Canon PIXMA TS 9550 Series | Yes | |
+ | Canon TR4529 (PIXMA TR4500 Series) | Yes | Yes |
+ | Canon TR7500 Series | No | Yes |
++| Canon TR8600 Scanner | Yes | |
+ | Canon TS 3100 | Yes | |
+ | Canon TS 3300 | Yes | |
+ | Canon TS 3400 | Yes | |
+--
+2.40.0.rc0
+
diff --git a/0032-Added-Brother-MFC-J1012DW.patch b/0032-Added-Brother-MFC-J1012DW.patch
new file mode 100644
index 0000000..44283dd
--- /dev/null
+++ b/0032-Added-Brother-MFC-J1012DW.patch
@@ -0,0 +1,24 @@
+From b1cd63f32bb5fb3e38bf787a3a3a7b52dc3ecf22 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Fri, 27 Jan 2023 11:04:06 +0300
+Subject: [PATCH 32/36] Added Brother MFC-J1012DW
+
+---
+ README.md | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/README.md b/README.md
+index d144c2e..163ad71 100644
+--- a/README.md
++++ b/README.md
+@@ -67,6 +67,7 @@ Legend:
+ | Brother HL-L2395DW series | Yes | |
+ | Brother MFC-7360N | No | Yes |
+ | Brother MFC-8710DW | No | Yes |
++| Brother MFC-J1012DW | Yes | |
+ | Brother MFC-J1300DW | Yes | |
+ | Brother MFC-J4410DW | No | Yes |
+ | Brother MFC-J4620DW | No | Yes |
+--
+2.40.0.rc0
+
diff --git a/0033-Added-THE-NEED-FOR-HELP-FROM-COMMUNITY-statement.patch b/0033-Added-THE-NEED-FOR-HELP-FROM-COMMUNITY-statement.patch
new file mode 100644
index 0000000..6dd459b
--- /dev/null
+++ b/0033-Added-THE-NEED-FOR-HELP-FROM-COMMUNITY-statement.patch
@@ -0,0 +1,63 @@
+From c5dbc10bf106323f1936958df6a6b2e67b16e807 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Mon, 20 Feb 2023 13:26:56 +0300
+Subject: [PATCH 33/36] Added THE NEED FOR HELP FROM COMMUNITY statement
+
+---
+ README.md | 41 +++++++++++++++++++++++++++++++++++++++++
+ 1 file changed, 41 insertions(+)
+
+diff --git a/README.md b/README.md
+index 163ad71..4f8c365 100644
+--- a/README.md
++++ b/README.md
+@@ -1,5 +1,46 @@
+ # sane-airscan -- SANE backend for AirScan (eSCL) and WSD document scanners
+
++## THE NEED FOR HELP FROM COMMUNITY
++
++Sorry for bothering you with my personal problems, but I need a help
++from community.
++
++I'm a Russian citizen. Due to sanctions, it seems I've lost control
++over my domain, ***apevzner.com***
++
++As result, I've also lost access to my primary e-mail address,
++mailto:pzz@apevzner.com, under which I'm known to the open source
++community.
++
++My e-mail is hosted by Google Workspace and my domain was registered
++at GoDaddy via Google. Currently I have no way to pay for my domain,
++so my domain was expired.
++
++After long conversation with Google I was able to switch my Workspace
++account to the "free plan", available for people who use the account for
++personal purposes only, thanks Google for that!
++
++But now my DNS console is not accessible, so I can't initiate domain
++transfer to some local registrant. And in the same time, e-mail/chat
++technical support from Workspace team also is not available, as it is
++not included into the "free plan". And without human technical support
++my problem seems unsolvable.
++
++I'm the author and I manage two important packages, `sane-airscan` (this
++one) and `ipp-usb`. These packages included into all major Linux
++distros. Also, Google ChromeOS uses my `sane-airscan` for scanning and
++their IPP over USB implementation was greatly inspired my `ipp-usb`.
++
++My connection to the open source community was always done via
++pzz@gmail.com e-mail address. But now it doesn't work, so I'm in the
++isolation.
++
++If somebody from Google or GoDaddy can read it, please, help!
++
++For now, my backup e-mail address is mailto:apevzner@gmail.com
++
++### About
++
+ Similar to how most modern network printers support "driverless" printing,
+ using the universal vendor-neutral printing protocol, many modern network
+ scanners and MFPs support "driverless" scanning.
+--
+2.40.0.rc0
+
diff --git a/0034-Fixed-e-mail-addresses.patch b/0034-Fixed-e-mail-addresses.patch
new file mode 100644
index 0000000..8b35e62
--- /dev/null
+++ b/0034-Fixed-e-mail-addresses.patch
@@ -0,0 +1,40 @@
+From 038a6ca92796a289f66461ed5f6945b49772148f Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Mon, 20 Feb 2023 21:49:46 +0300
+Subject: [PATCH 34/36] Fixed e-mail addresses
+
+---
+ README.md | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/README.md b/README.md
+index 4f8c365..f4bf494 100644
+--- a/README.md
++++ b/README.md
+@@ -9,7 +9,7 @@ I'm a Russian citizen. Due to sanctions, it seems I've lost control
+ over my domain, ***apevzner.com***
+
+ As result, I've also lost access to my primary e-mail address,
+-mailto:pzz@apevzner.com, under which I'm known to the open source
++pzz@apevzner.com, under which I'm known to the open source
+ community.
+
+ My e-mail is hosted by Google Workspace and my domain was registered
+@@ -32,12 +32,12 @@ distros. Also, Google ChromeOS uses my `sane-airscan` for scanning and
+ their IPP over USB implementation was greatly inspired my `ipp-usb`.
+
+ My connection to the open source community was always done via
+-pzz@gmail.com e-mail address. But now it doesn't work, so I'm in the
++pzz@apevzner.com e-mail address. But now it doesn't work, so I'm in the
+ isolation.
+
+ If somebody from Google or GoDaddy can read it, please, help!
+
+-For now, my backup e-mail address is mailto:apevzner@gmail.com
++For now, my backup e-mail address is apevzner@gmail.com
+
+ ### About
+
+--
+2.40.0.rc0
+
diff --git a/0035-Added-HP-LaserJet-Pro-M329-and-footnote-for-M329-M42.patch b/0035-Added-HP-LaserJet-Pro-M329-and-footnote-for-M329-M42.patch
new file mode 100644
index 0000000..b4d86d0
--- /dev/null
+++ b/0035-Added-HP-LaserJet-Pro-M329-and-footnote-for-M329-M42.patch
@@ -0,0 +1,42 @@
+From bfafb80898a304e1dcee5d95a38ae100716dec4f Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Sat, 25 Feb 2023 20:18:04 +0300
+Subject: [PATCH 35/36] Added HP LaserJet Pro M329 and footnote for M329/M428dw
+ (fixes #271)
+
+---
+ README.md | 8 +++++++-
+ 1 file changed, 7 insertions(+), 1 deletion(-)
+
+diff --git a/README.md b/README.md
+index f4bf494..ffe3021 100644
+--- a/README.md
++++ b/README.md
+@@ -205,10 +205,11 @@ Legend:
+ | HP LaserJet MFP M630 | Yes | |
+ | HP LaserJet Pro M28a | Yes<sup>[3](#note3)</sup> | |
+ | HP LaserJet Pro M28w | Yes | Yes |
++| HP LaserJet Pro M329 | Yes<sup>[9](#note3)</sup> | |
+ | HP LaserJet Pro MFP 148fdw | Yes | |
+ | HP LaserJet Pro MFP M125 series | No | Yes |
+ | HP LaserJet Pro MFP M225dn | No | Yes |
+-| HP LaserJet Pro MFP M428dw | Yes | |
++| HP LaserJet Pro MFP M428dw | Yes<sup>[9](#note3)</sup> | |
+ | HP LaserJet Pro MFP M521 series | No | Yes |
+ | HP Laser MFP 131 133 135-138 | Yes | |
+ | HP Neverstop Laser MFP 1202nw | Yes | |
+@@ -286,6 +287,11 @@ helps, version V4.00.02.20 MAY-27-2020 known to work.
+ <a name="note8"><sup>[8]</sup></a>: eSCL needs to be manually enabled on this device:
+ System-settings->Network settings->Airprint settings->Airscan
+
++<a name="note8"><sup>[9]</sup></a>: Scanning remotely and with IPP-over-USB
++active is disabled by default. In the Embedded Web Server:
++Settings->Security->Administrator Settings->Enable Scan from a Computer or
++Mobile Device->Apply
++
+ ### Distros that come with sane-airscan
+
+ The following distros (in alphabetical order) include `sane-airscan`
+--
+2.40.0.rc0
+
diff --git a/0036-Removed-the-need-for-help-problem-solved.patch b/0036-Removed-the-need-for-help-problem-solved.patch
new file mode 100644
index 0000000..335d2b5
--- /dev/null
+++ b/0036-Removed-the-need-for-help-problem-solved.patch
@@ -0,0 +1,63 @@
+From 10189de4adf2d54bd6604df197901680cdbebdd6 Mon Sep 17 00:00:00 2001
+From: Alexander Pevzner <pzz@apevzner.com>
+Date: Mon, 27 Feb 2023 23:12:45 +0300
+Subject: [PATCH 36/36] Removed "the need for help" -- problem solved
+
+---
+ README.md | 41 -----------------------------------------
+ 1 file changed, 41 deletions(-)
+
+diff --git a/README.md b/README.md
+index ffe3021..efbd494 100644
+--- a/README.md
++++ b/README.md
+@@ -1,46 +1,5 @@
+ # sane-airscan -- SANE backend for AirScan (eSCL) and WSD document scanners
+
+-## THE NEED FOR HELP FROM COMMUNITY
+-
+-Sorry for bothering you with my personal problems, but I need a help
+-from community.
+-
+-I'm a Russian citizen. Due to sanctions, it seems I've lost control
+-over my domain, ***apevzner.com***
+-
+-As result, I've also lost access to my primary e-mail address,
+-pzz@apevzner.com, under which I'm known to the open source
+-community.
+-
+-My e-mail is hosted by Google Workspace and my domain was registered
+-at GoDaddy via Google. Currently I have no way to pay for my domain,
+-so my domain was expired.
+-
+-After long conversation with Google I was able to switch my Workspace
+-account to the "free plan", available for people who use the account for
+-personal purposes only, thanks Google for that!
+-
+-But now my DNS console is not accessible, so I can't initiate domain
+-transfer to some local registrant. And in the same time, e-mail/chat
+-technical support from Workspace team also is not available, as it is
+-not included into the "free plan". And without human technical support
+-my problem seems unsolvable.
+-
+-I'm the author and I manage two important packages, `sane-airscan` (this
+-one) and `ipp-usb`. These packages included into all major Linux
+-distros. Also, Google ChromeOS uses my `sane-airscan` for scanning and
+-their IPP over USB implementation was greatly inspired my `ipp-usb`.
+-
+-My connection to the open source community was always done via
+-pzz@apevzner.com e-mail address. But now it doesn't work, so I'm in the
+-isolation.
+-
+-If somebody from Google or GoDaddy can read it, please, help!
+-
+-For now, my backup e-mail address is apevzner@gmail.com
+-
+-### About
+-
+ Similar to how most modern network printers support "driverless" printing,
+ using the universal vendor-neutral printing protocol, many modern network
+ scanners and MFPs support "driverless" scanning.
+--
+2.40.0.rc0
+
diff --git a/sane-airscan.spec b/sane-airscan.spec
index 14ac7c7..9c7ae8e 100644
--- a/sane-airscan.spec
+++ b/sane-airscan.spec
@@ -1,20 +1,57 @@
-Name: sane-airscan
-Version: 0.99.27
-Release: 1
-Source0: https://github.com/alexpevzner/sane-airscan/archive/%{version}/%{name}-%{version}.tar.gz
-Summary: AirScan (eSCL and WSD) scanner support for SANE
-URL: https://github.com/alexpevzner/sane-airscan
-License: GPL
-Group: Hardware
-BuildRequires: meson ninja
-BuildRequires: pkgconfig(avahi-client)
-BuildRequires: pkgconfig(gnutls)
-BuildRequires: pkgconfig(libjpeg)
-BuildRequires: pkgconfig(libpng)
-BuildRequires: pkgconfig(libxml-2.0)
-BuildRequires: pkgconfig(sane-backends)
-Recommends: ipp-usb
-Supplements: sane-backends
+Name: sane-airscan
+Version: 0.99.27
+Release: 2
+Source0: https://github.com/alexpevzner/sane-airscan/archive/%{version}/%{name}-%{version}.tar.gz
+# Patches from upstream git
+Patch0: 0001-Added-Brother-DCP-J552DW.patch
+Patch1: 0002-Update-README.md.patch
+Patch2: 0003-Added-Brother-MFC-7360N.patch
+Patch3: 0004-Adds-Canon-MF645Cx.patch
+Patch4: 0005-Add-Brother-HL-L2380DW-series.patch
+Patch5: 0006-Added-EPSON-ET-2710-Series-fixes-233.patch
+Patch6: 0007-Added-EPSON-XP-5100-Series-fixes-232.patch
+Patch7: 0008-Added-HP-Neverstop-Laser-MFP-1202nw-fixes-230.patch
+Patch8: 0009-Added-EPSON-ET-4850-Series-fixes-229.patch
+Patch9: 0010-Added-EPSON-ET-2850-Series-fixes-224.patch
+Patch10: 0011-Added-Brother-MFC-8710DW-fixes-220.patch
+Patch11: 0012-Added-HP-ENVY-5055-series-fixes-213.patch
+Patch12: 0013-Added-Brother-MFC-J4410DW-fixes-208.patch
+Patch13: 0014-Added-Xerox-C235-fixes-200.patch
+Patch14: 0015-Added-EPSON-ET-2810-Series-fixes-190.patch
+Patch15: 0016-Added-Canon-G600-series-fixes-189.patch
+Patch16: 0017-Added-EPSON-ET-M2170-Series-fixes-188.patch
+Patch17: 0018-Added-Lexmark-MC3326adwe-fixes-187.patch
+Patch18: 0019-Added-Samsung-SCX-3400-Series.patch
+Patch19: 0020-sane-airscan.5-updated-see-216.patch
+Patch20: 0021-Man-pages-updated-see-216.patch
+Patch21: 0022-Ignore-HTTP-I-O-error-if-headers-received-and-body-i.patch
+Patch22: 0023-Added-Canon-TS-3400-fixes-202.patch
+Patch23: 0024-Added-Kyocera-ECOSYS-M2035dn-fixes-234.patch
+Patch24: 0025-Fixed-Kyocera-ECOSYS-M2035dn-description-see-234.patch
+Patch25: 0026-Add-Canon-TS8230.patch
+Patch26: 0027-Update-README.md.patch
+Patch27: 0028-Added-Brother-MFC-J4620DW.patch
+Patch28: 0029-Added-SHARP-MX-3060N.patch
+Patch29: 0030-HP-Neverstop-Laser-MFP-1202nw-information-updated-fi.patch
+Patch30: 0031-Added-Canon-TR8600-Scanner.patch
+Patch31: 0032-Added-Brother-MFC-J1012DW.patch
+Patch32: 0033-Added-THE-NEED-FOR-HELP-FROM-COMMUNITY-statement.patch
+Patch33: 0034-Fixed-e-mail-addresses.patch
+Patch34: 0035-Added-HP-LaserJet-Pro-M329-and-footnote-for-M329-M42.patch
+Patch35: 0036-Removed-the-need-for-help-problem-solved.patch
+Summary: AirScan (eSCL and WSD) scanner support for SANE
+URL: https://github.com/alexpevzner/sane-airscan
+License: GPL
+Group: Hardware
+BuildRequires: meson ninja
+BuildRequires: pkgconfig(avahi-client)
+BuildRequires: pkgconfig(gnutls)
+BuildRequires: pkgconfig(libjpeg)
+BuildRequires: pkgconfig(libpng)
+BuildRequires: pkgconfig(libxml-2.0)
+BuildRequires: pkgconfig(sane-backends)
+Recommends: ipp-usb
+Supplements: sane-backends
%description
Similar to how most modern network printers support "driverless" printing,