diff --git a/pkgs/by-name/ep/epsonscan2/fix-oob-container-access.patch b/pkgs/by-name/ep/epsonscan2/fix-oob-container-access.patch new file mode 100644 index 000000000000..55c7cddad6b8 --- /dev/null +++ b/pkgs/by-name/ep/epsonscan2/fix-oob-container-access.patch @@ -0,0 +1,27 @@ +From f17afb6b3782445d7484a1f2e07e1d47f1773d3c Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hubert=20Figui=C3=A8re?= +Date: Thu, 1 Jan 2026 16:02:30 +0100 +Subject: [PATCH] Fix a crash on an OOB container access + +Signed-off-by: Sefa Eyeoglu +--- + src/Controller/Src/Finder/Finder.cpp | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/src/Controller/Src/Finder/Finder.cpp b/src/Controller/Src/Finder/Finder.cpp +index aa6b853..5e063e8 100755 +--- a/src/Controller/Src/Finder/Finder.cpp ++++ b/src/Controller/Src/Finder/Finder.cpp +@@ -52,6 +52,9 @@ namespace epsonscan { + } + SDIDeviceInfo* Finder::GetDevicesPointer() + { ++ if (devices_.size() == 0) { ++ return nullptr; ++ } + return &devices_[0]; + } + int32_t Finder::GetDevicesCount() const +-- +2.51.2 + diff --git a/pkgs/by-name/ep/epsonscan2/gcc14.patch b/pkgs/by-name/ep/epsonscan2/gcc14.patch deleted file mode 100644 index 803977574d0a..000000000000 --- a/pkgs/by-name/ep/epsonscan2/gcc14.patch +++ /dev/null @@ -1,37 +0,0 @@ -diff --git a/thirdparty/zlib/gzlib.c b/thirdparty/zlib/gzlib.c -index 4105e6a..eae3a38 100644 ---- a/thirdparty/zlib/gzlib.c -+++ b/thirdparty/zlib/gzlib.c -@@ -3,6 +3,7 @@ - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -+#include - #include "gzguts.h" - - #if defined(_WIN32) && !defined(__BORLANDC__) && !defined(__MINGW32__) -diff --git a/thirdparty/zlib/gzread.c b/thirdparty/zlib/gzread.c -index 956b91e..66089b6 100644 ---- a/thirdparty/zlib/gzread.c -+++ b/thirdparty/zlib/gzread.c -@@ -3,6 +3,7 @@ - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -+#include - #include "gzguts.h" - - /* Local functions */ -diff --git a/thirdparty/zlib/gzwrite.c b/thirdparty/zlib/gzwrite.c -index c7b5651..e685f3e 100644 ---- a/thirdparty/zlib/gzwrite.c -+++ b/thirdparty/zlib/gzwrite.c -@@ -3,6 +3,7 @@ - * For conditions of distribution and use, see copyright notice in zlib.h - */ - -+#include - #include "gzguts.h" - - /* Local functions */ - \ No newline at end of file diff --git a/pkgs/by-name/ep/epsonscan2/gcc15.patch b/pkgs/by-name/ep/epsonscan2/gcc15.patch new file mode 100644 index 000000000000..5f4261f0bdfc --- /dev/null +++ b/pkgs/by-name/ep/epsonscan2/gcc15.patch @@ -0,0 +1,44 @@ +From aac9755fe41725ccf827d4de745fb1215c32329c Mon Sep 17 00:00:00 2001 +From: Sefa Eyeoglu +Date: Thu, 1 Jan 2026 16:05:41 +0100 +Subject: [PATCH] Fixes for GCC 15 support + +Fixes the following compliation failures: + +src/ES2Command/Linux/../Src/Utils/ESAccessor.h:177:17: error: 'const class CESAccessor::CSetterFunc<_ValueType>' has no member named 'func'; did you mean 'm_func'? [-Wtemplate-body] +src/Controller/./Src/Filter/GrayToMono.hpp:27:37: error: 'pow' was not declared in this scope + +Signed-off-by: Sefa Eyeoglu +--- + src/Controller/Src/Filter/GrayToMono.hpp | 1 + + src/ES2Command/Src/Utils/ESAccessor.h | 2 +- + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/src/Controller/Src/Filter/GrayToMono.hpp b/src/Controller/Src/Filter/GrayToMono.hpp +index 0eec964..c21653f 100755 +--- a/src/Controller/Src/Filter/GrayToMono.hpp ++++ b/src/Controller/Src/Filter/GrayToMono.hpp +@@ -24,6 +24,7 @@ + #include "ModelInfo.hpp" + #include "Filter.hpp" + #include "../FileFormat/FFManager.hpp" ++#include + #define CONVERT_TO_GAMMA22(x) (255.*pow(((x)/255.) , (1.0/2.2))) + namespace epsonscan + { +diff --git a/src/ES2Command/Src/Utils/ESAccessor.h b/src/ES2Command/Src/Utils/ESAccessor.h +index 700a680..b537ba7 100755 +--- a/src/ES2Command/Src/Utils/ESAccessor.h ++++ b/src/ES2Command/Src/Utils/ESAccessor.h +@@ -174,7 +174,7 @@ protected: + { + } + CSetterFunc(const CSetterFunc& rhs) +- : m_func(rhs.func) ++ : m_func(rhs.m_func) + { + } + virtual ISetterFunc* Clone() +-- +2.51.2 + diff --git a/pkgs/by-name/ep/epsonscan2/package.nix b/pkgs/by-name/ep/epsonscan2/package.nix index e153a8e76e9a..7883377b5e94 100644 --- a/pkgs/by-name/ep/epsonscan2/package.nix +++ b/pkgs/by-name/ep/epsonscan2/package.nix @@ -28,20 +28,20 @@ let # There can be multiple different packages identified by the same #version, so we also tag them with the month and year shown in # the Epson download page. - version = "6.7.70.0-01-2025"; + version = "6.7.90.0-2026-01"; system = stdenv.hostPlatform.system; src = fetchzip { - url = "https://download3.ebz.epson.net/dsc/f/03/00/16/60/70/c7fc14e41ec84255008c6125b63bcac40f55e11c/epsonscan2-6.7.70.0-1.src.tar.gz"; - hash = "sha256-WvNBy5hAxNJfwgjBR5VGaXuyTCK2YEiD3i7SMDl3U/U="; + url = "https://download3.ebz.epson.net/dsc/f/03/00/17/08/06/1babf9876ebb16956420a601b92ee28b57cd7db7/epsonscan2-6.7.80.0-1.src.tar.gz"; + hash = "sha256-SHNpnVyoFTwLu3drlL8MFKj/NCKy5U0UDqP08f7u1R4="; }; bundle = { "x86_64-linux" = fetchzip { name = "${pname}-bundle"; - url = "https://download3.ebz.epson.net/dsc/f/03/00/16/14/38/7b1780ace96e2c6033bbb667c7f3ed281e4e9f38/epsonscan2-bundle-6.7.70.0.x86_64.deb.tar.gz"; - hash = "sha256-fPNNFgW/VU/YG+jjmSvPZ0WsHibsXY1TNp164GxLHKw="; + url = "https://download3.ebz.epson.net/dsc/f/03/00/17/08/12/9f3fec0ae80aa5c36f5170377ebcc38c93251e23/epsonscan2-bundle-6.7.80.0.x86_64.deb.tar.gz"; + hash = "sha256-Smjp2PRcsNN9nP3W++HmKOw85zZj20zEIFEEVSO8lDo="; }; } ."${system}" or (throw "Unsupported system: ${system}"); @@ -52,18 +52,17 @@ stdenv.mkDerivation { patches = [ ./build.patch - ./gcc14.patch + ./gcc15.patch (fetchpatch { - url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/a489ac2f8cbd03afeda86673930cc17663c31a53/patches/0002-Fix-crash.patch"; - hash = "sha256-rNsFnHq//CJcIZl0M6RLRkIY3YhnJZbikO8SeeC2ktg="; + url = "https://github.com/flathub/net.epson.epsonscan2/raw/f9eb99109e63dbed907f46e36f435e46d7c01aad/patches/0002-Fix-crash.patch"; + hash = "sha256-Al5DkVnCBNoMtex4G3Zm7uZwTvnWGAjOk5xh/U9WyNU="; }) + # At the time of writing, some flathub patches are not updated to work with 6.7.90.0-1 (2026/01/01) + ./xdg-open.patch # Rebase of https://github.com/flathub/net.epson.epsonscan2/blob/master/patches/0003-Use-XDG-open-to-open-the-directory.patch + ./fix-oob-container-access.patch # Rebase of https://github.com/flathub/net.epson.epsonscan2/blob/master/patches/0004-Fix-a-crash-on-an-OOB-container-access.patch (fetchpatch { - url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/a489ac2f8cbd03afeda86673930cc17663c31a53/patches/0004-Fix-a-crash-on-an-OOB-container-access.patch"; - hash = "sha256-WmA8pmPSJ1xUdeBbE8Jzi6w9p96aIOm0erF3T4EQ6VA="; - }) - (fetchpatch { - url = "https://raw.githubusercontent.com/flathub/net.epson.epsonscan2/a489ac2f8cbd03afeda86673930cc17663c31a53/patches/0003-Use-XDG-open-to-open-the-directory.patch"; - hash = "sha256-H3lle1SXkkpbBkozYEwiX0z9oTUubTpB+l91utxH03M="; + url = "https://github.com/flathub/net.epson.epsonscan2/raw/f9eb99109e63dbed907f46e36f435e46d7c01aad/patches/0005-Added-missing-headers.patch"; + hash = "sha256-YJjCI8UNzLciSq9IfcHxiF4isFGM9A5Hn7Kxao/+lpQ="; }) ]; diff --git a/pkgs/by-name/ep/epsonscan2/xdg-open.patch b/pkgs/by-name/ep/epsonscan2/xdg-open.patch new file mode 100644 index 000000000000..e3fd9e08ec09 --- /dev/null +++ b/pkgs/by-name/ep/epsonscan2/xdg-open.patch @@ -0,0 +1,33 @@ +From fc9afb09c6cb4a92a5249707961e6856226d80bd Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Hubert=20Figui=C3=A8re?= +Date: Thu, 1 Jan 2026 15:58:59 +0100 +Subject: [PATCH] Use XDG open to open the directory + +Signed-off-by: Sefa Eyeoglu +--- + src/Standalone/savedestfolder.cpp | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/src/Standalone/savedestfolder.cpp b/src/Standalone/savedestfolder.cpp +index 7480631..51179de 100755 +--- a/src/Standalone/savedestfolder.cpp ++++ b/src/Standalone/savedestfolder.cpp +@@ -43,7 +43,14 @@ bool SaveDestFolder::open_folder(Supervisor* sv) + int cmd_size = 0; + const bool result = ES_CMN_FUNCS::PATH::ES_IsExistFile(sv->device_data.SelectPath); + if (result) { +- if(system("which nautilus > /dev/null") == 0){ ++ if(system("which xdg-open > /dev/null") == 0){ ++ cmd_size = strlen("xdg-open "); ++ failer = (char *)malloc(cmd_size+1); ++ if(failer){ ++ memset(failer, 0, cmd_size+1); ++ memcpy(failer, "xdg-open", cmd_size); ++ } ++ }else if(system("which nautilus > /dev/null") == 0){ + cmd_size = strlen("nautilus "); + failer = (char *)malloc(cmd_size+1); + if(failer){ +-- +2.51.2 +