From c9ba5272c52c65e4484c797e03b3bf2eb4c54024 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 2 Mar 2024 11:58:50 -0300 Subject: [PATCH 1/4] nomacs: refactor - get rid of libsForQt5.callPackage - finalAttrs design pattern to get rid of rec - set src.fetchSubmodules to false (to avoid vendoring) - split outputs - sourceRoot - meta - changelog - longDescription - mainProgram - add AndersonTorres to maintainers --- pkgs/applications/graphics/nomacs/default.nix | 99 +++++++++++-------- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 60 insertions(+), 41 deletions(-) diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index a5898a3ac007..b39b2b2de9f2 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -1,68 +1,87 @@ { lib -, stdenv -, fetchFromGitHub , cmake -, pkg-config -, wrapQtAppsHook - -, qtbase -, qttools -, qtsvg -, qtimageformats - , exiv2 -, opencv4 +, fetchFromGitHub , libraw +, libsForQt5 , libtiff -, quazip +, opencv4 +, pkg-config +, stdenv }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "nomacs"; version = "3.17.2287"; src = fetchFromGitHub { owner = "nomacs"; repo = "nomacs"; - rev = version; + rev = finalAttrs.version; + fetchSubmodules = false; # We'll use our own hash = "sha256-OwiMB6O4+WuAt87sRbD1Qby3U7igqgCgddiWs3a4j3k="; }; - setSourceRoot = '' - sourceRoot=$(echo */ImageLounge) - ''; + outputs = [ "out" "man" ]; - nativeBuildInputs = [cmake - pkg-config - wrapQtAppsHook]; + sourceRoot = "${finalAttrs.src.name}/ImageLounge"; - buildInputs = [qtbase - qttools - qtsvg - qtimageformats - exiv2 - opencv4 - libraw - libtiff - quazip]; + nativeBuildInputs = [ + cmake + libsForQt5.wrapQtAppsHook + pkg-config + ]; - cmakeFlags = ["-DENABLE_OPENCV=ON" - "-DENABLE_RAW=ON" - "-DENABLE_TIFF=ON" - "-DENABLE_QUAZIP=ON" - "-DENABLE_TRANSLATIONS=ON" - "-DUSE_SYSTEM_QUAZIP=ON"]; + buildInputs = [ + exiv2 + libraw + libtiff + opencv4 + ] ++ (with libsForQt5; [ + qtbase + qtimageformats + qtsvg + qttools + quazip + ]); + + cmakeFlags = [ + (lib.cmakeBool "ENABLE_OPENCV" true) + (lib.cmakeBool "ENABLE_QUAZIP" true) + (lib.cmakeBool "ENABLE_RAW" true) + (lib.cmakeBool "ENABLE_TIFF" true) + (lib.cmakeBool "ENABLE_TRANSLATIONS" true) + (lib.cmakeBool "USE_SYSTEM_QUAZIP" true) + ]; postInstall = lib.optionalString stdenv.isDarwin '' mkdir -p $out/lib mv $out/libnomacsCore.dylib $out/lib/libnomacsCore.dylib ''; - meta = with lib; { + meta = { homepage = "https://nomacs.org"; description = "Qt-based image viewer"; - maintainers = with lib.maintainers; [ mindavi ]; - license = licenses.gpl3Plus; - inherit (qtbase.meta) platforms; + longDescription = '' + nomacs is a free, open source image viewer, which supports multiple + platforms. You can use it for viewing all common image formats including + RAW and psd images. + + nomacs features semi-transparent widgets that display additional + information such as thumbnails, metadata or histogram. It is able to + browse images in zip or MS Office files which can be extracted to a + directory. Metadata stored with the image can be displayed and you can add + notes to images. A thumbnail preview of the current folder is included as + well as a file explorer panel which allows switching between + folders. Within a directory you can apply a file filter, so that only + images are displayed whose filenames have a certain string or match a + regular expression. Activating the cache allows for instantly switching + between images. + ''; + changelog = "https://github.com/nomacs/nomacs/releases/tag/${finalAttrs.src.rev}"; + license = with lib.licenses; [ gpl3Plus ]; + mainProgram = "nomacs"; + maintainers = with lib.maintainers; [ AndersonTorres mindavi ]; + inherit (libsForQt5.qtbase.meta) platforms; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bbe62d82f23e..e87df243aa04 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -33967,7 +33967,7 @@ with pkgs; nheko = libsForQt5.callPackage ../applications/networking/instant-messengers/nheko { }; - nomacs = libsForQt5.callPackage ../applications/graphics/nomacs { }; + nomacs = callPackage ../applications/graphics/nomacs { }; notepad-next = libsForQt5.callPackage ../applications/editors/notepad-next { }; From 48b72555c113173385c7356d9d473cde5706890d Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Mon, 4 Mar 2024 17:05:09 -0300 Subject: [PATCH 2/4] nomacs: quick&dirty fix for Darwin --- pkgs/applications/graphics/nomacs/default.nix | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index b39b2b2de9f2..e0e03eb0dadf 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -22,7 +22,10 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-OwiMB6O4+WuAt87sRbD1Qby3U7igqgCgddiWs3a4j3k="; }; - outputs = [ "out" "man" ]; + # Because some unknown reason split outputs is breaking on Darwin + outputs = if stdenv.isDarwin + then [ "out" ] + else [ "out" "man" ]; sourceRoot = "${finalAttrs.src.name}/ImageLounge"; From af2f0e7989b72c32723d75a009157e6e9ae4742f Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 2 Mar 2024 12:09:01 -0300 Subject: [PATCH 3/4] nomacs: 3.17.2287 -> 3.17.2295 --- pkgs/applications/graphics/nomacs/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index e0e03eb0dadf..5f4ee57ed94f 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -12,14 +12,14 @@ stdenv.mkDerivation (finalAttrs: { pname = "nomacs"; - version = "3.17.2287"; + version = "3.17.2295"; src = fetchFromGitHub { owner = "nomacs"; repo = "nomacs"; rev = finalAttrs.version; fetchSubmodules = false; # We'll use our own - hash = "sha256-OwiMB6O4+WuAt87sRbD1Qby3U7igqgCgddiWs3a4j3k="; + hash = "sha256-jHr7J0X1v2n/ZK0y3b/XPDISk7e08VWS6nicJU4fKKY="; }; # Because some unknown reason split outputs is breaking on Darwin From 569976027846b7646e1a2cc71e82faab24ca697a Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Sat, 2 Mar 2024 12:11:14 -0300 Subject: [PATCH 4/4] nomacs: migrate to by-name --- .../nomacs/default.nix => by-name/no/nomacs/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{applications/graphics/nomacs/default.nix => by-name/no/nomacs/package.nix} (100%) diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/by-name/no/nomacs/package.nix similarity index 100% rename from pkgs/applications/graphics/nomacs/default.nix rename to pkgs/by-name/no/nomacs/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e87df243aa04..20c543923f46 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -33967,8 +33967,6 @@ with pkgs; nheko = libsForQt5.callPackage ../applications/networking/instant-messengers/nheko { }; - nomacs = callPackage ../applications/graphics/nomacs { }; - notepad-next = libsForQt5.callPackage ../applications/editors/notepad-next { }; notepadqq = libsForQt5.callPackage ../applications/editors/notepadqq { };