diff --git a/pkgs/by-name/ep/epsonscan2/package.nix b/pkgs/by-name/ep/epsonscan2/package.nix index e606db517226..358012828acc 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, @@ -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,10 +69,8 @@ stdenv.mkDerivation { ]; postPatch = '' - rm CMakeCache.txt - 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 @@ -88,7 +90,7 @@ stdenv.mkDerivation { buildInputs = [ - boost + boost186 # uses Boost.Optional but epsonscan2 is pre-C++11. libjpeg libpng libtiff @@ -135,7 +137,7 @@ stdenv.mkDerivation { desktopItems = lib.optionals withGui [ (makeDesktopItem { - name = pname; + name = "epsonscan2"; exec = "epsonscan2"; icon = "epsonscan2"; desktopName = "Epson Scan 2"; @@ -152,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 ];