From 36785b24512636090a243a5279699932b3d9edd4 Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Mon, 20 Jan 2025 20:45:54 -0300 Subject: [PATCH 1/3] epsonscan2: 6.7.70.0 -> 6.7.70.0-01-2025 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Epson changes their projects without changing their versions because ¯\_(ツ)_/¯. They also provide no changelogs, because why would they? This seems to at least remove the CMakeCache.txt that was left in the source code distribution. Signed-off-by: Fernando Rodrigues --- pkgs/by-name/ep/epsonscan2/package.nix | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/ep/epsonscan2/package.nix b/pkgs/by-name/ep/epsonscan2/package.nix index e606db517226..8cb1ed60901f 100644 --- a/pkgs/by-name/ep/epsonscan2/package.nix +++ b/pkgs/by-name/ep/epsonscan2/package.nix @@ -25,13 +25,17 @@ let pname = "epsonscan2"; description = "Epson Scan 2 scanner driver for many modern Epson scanners and multifunction printers"; - version = "6.7.70.0"; + # Epson updates projects without changing their version numbers. + # 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"; system = stdenv.hostPlatform.system; src = fetchzip { - url = "https://download3.ebz.epson.net/dsc/f/03/00/16/14/37/7577ee65efdad48ee2d2f38d9eda75418e490552/epsonscan2-6.7.70.0-1.src.tar.gz"; - hash = "sha256-y7XGxrOpVou/ZSfUffV3qv+SsFFpTiU7pWvtfsiLZWc="; + 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="; }; bundle = { @@ -65,8 +69,6 @@ stdenv.mkDerivation { ]; postPatch = '' - rm CMakeCache.txt - substituteInPlace src/Controller/Src/Scanner/Engine.cpp \ --replace-fail '@KILLALL@' ${killall}/bin/killall From 50c1a48d08b428b2434a78798a5e2e54d84d417c Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Mon, 20 Jan 2025 20:45:54 -0300 Subject: [PATCH 2/3] epsonscan2: pin Boost 1.86 This software does not use C++11. Signed-off-by: Fernando Rodrigues --- pkgs/by-name/ep/epsonscan2/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ep/epsonscan2/package.nix b/pkgs/by-name/ep/epsonscan2/package.nix index 8cb1ed60901f..0079bf2c00e5 100644 --- a/pkgs/by-name/ep/epsonscan2/package.nix +++ b/pkgs/by-name/ep/epsonscan2/package.nix @@ -2,7 +2,7 @@ lib, stdenv, autoPatchelfHook, - boost, + boost186, cmake, copyDesktopItems, imagemagick, @@ -90,7 +90,7 @@ stdenv.mkDerivation { buildInputs = [ - boost + boost186 # uses Boost.Optional but epsonscan2 is pre-C++11. libjpeg libpng libtiff From 432c7e10d722a4914c0645f0c6a46e27d392d338 Mon Sep 17 00:00:00 2001 From: Fernando Rodrigues Date: Mon, 20 Jan 2025 20:45:54 -0300 Subject: [PATCH 3/3] epsonscan: minor refactoring - Removes a `pname` interpolation. - Updates the `longDescription` so it uses syntax-highlighting code blocks instead of . - Uses `lib.getExe` instead of hardcoding a `/bin/` path. - Uses the new `lib.systems` standard for declaring platforms. Signed-off-by: Fernando Rodrigues --- pkgs/by-name/ep/epsonscan2/package.nix | 31 +++++++++++++++----------- 1 file changed, 18 insertions(+), 13 deletions(-) diff --git a/pkgs/by-name/ep/epsonscan2/package.nix b/pkgs/by-name/ep/epsonscan2/package.nix index 0079bf2c00e5..358012828acc 100644 --- a/pkgs/by-name/ep/epsonscan2/package.nix +++ b/pkgs/by-name/ep/epsonscan2/package.nix @@ -70,7 +70,7 @@ stdenv.mkDerivation { postPatch = '' substituteInPlace src/Controller/Src/Scanner/Engine.cpp \ - --replace-fail '@KILLALL@' ${killall}/bin/killall + --replace-fail '@KILLALL@' ${lib.getExe killall} substituteInPlace src/Controller/Src/Filter/GetOrientation.cpp \ --replace-fail '@OCR_ENGINE_GETROTATE@' $out/libexec/epsonscan2-ocr/ocr-engine-getrotate @@ -137,7 +137,7 @@ stdenv.mkDerivation { desktopItems = lib.optionals withGui [ (makeDesktopItem { - name = pname; + name = "epsonscan2"; exec = "epsonscan2"; icon = "epsonscan2"; desktopName = "Epson Scan 2"; @@ -154,22 +154,27 @@ stdenv.mkDerivation { inherit description; mainProgram = "epsonscan2"; longDescription = '' - Epson Scan 2 scanner driver including optional non-free plugins such as OCR and network - scanning. + The Epson Scan 2 scanner driver, including optional non-free plugins such + as OCR and network scanning. To use the SANE backend: - - hardware.sane.extraBackends = [ pkgs.epsonscan2 ]; - + ```nix + { + hardware.sane.extraBackends = [ pkgs.epsonscan2 ]; + } + ``` - Overrides can be used to customise this package. For example, to enable non-free plugins and - disable the Epson GUI: - - pkgs.epsonscan2.override { withNonFreePlugins = true; withGui = false; } - + Overrides can be used to customise this package. For example, to enable + non-free plugins and disable the Epson GUI: + ```nix + pkgs.epsonscan2.override { + withNonFreePlugins = true; + withGui = false; + } + ``` ''; homepage = "https://support.epson.net/linux/en/epsonscan2.php"; - platforms = [ "x86_64-linux" ]; + platforms = lib.systems.inspect.patternLogicalAnd lib.systems.inspect.patterns.isLinux lib.systems.inspect.patterns.isx86_64; sourceProvenance = with lib.sourceTypes; [ fromSource ] ++ lib.optionals withNonFreePlugins [ binaryNativeCode ];