From e189ab9ace70332fc8f89b2ed6b17cb6c685466a Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Sun, 25 May 2025 21:53:08 +0400 Subject: [PATCH 1/3] kchmviewer: enable on unix --- pkgs/applications/misc/kchmviewer/default.nix | 29 +++++++++++++++---- 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/pkgs/applications/misc/kchmviewer/default.nix b/pkgs/applications/misc/kchmviewer/default.nix index f3ecbdf87e37..41dac9e9f745 100644 --- a/pkgs/applications/misc/kchmviewer/default.nix +++ b/pkgs/applications/misc/kchmviewer/default.nix @@ -36,6 +36,15 @@ stdenv.mkDerivation rec { url = "https://github.com/gyunaev/kchmviewer/commit/99a6d94bdfce9c4578cce82707e71863a71d1453.patch"; sha256 = "sha256-o8JkaMmcJObmMt+o/6ooCAPCi+yRAWDAgxV+tR5eHfY="; }) + # Fix build on macOS + (fetchpatch { + url = "https://github.com/gyunaev/kchmviewer/pull/35/commits/b68ed6fe72eaf9ee4e7e42925f5071fbd02dc6b3.patch"; + hash = "sha256-sJA0RE0Z83tYv0S42yQYWKKeLhW+YDsrxLkY5aMKKT4="; + }) + (fetchpatch { + url = "https://github.com/gyunaev/kchmviewer/pull/35/commits/d307e4e829c5a6f57ab0040f786c3da7fd2f0a99.patch"; + hash = "sha256-FWYfqG8heL6AnhevueCWHQc+c6Yj4+DuIdjIwXVZ+O4="; + }) ]; buildInputs = [ @@ -49,11 +58,19 @@ stdenv.mkDerivation rec { wrapQtAppsHook ]; - postInstall = '' - install -Dm755 bin/kchmviewer -t $out/bin - install -Dm644 packages/kchmviewer.png -t $out/share/pixmaps - install -Dm644 packages/kchmviewer.desktop -t $out/share/applications - ''; + postInstall = + if stdenv.hostPlatform.isDarwin then + '' + mkdir -p $out/{Applications,bin} + mv bin/kchmviewer.app $out/Applications + ln -s $out/Applications/kchmviewer.app/Contents/MacOS/kchmviewer $out/bin/kchmviewer + '' + else + '' + install -Dm755 bin/kchmviewer -t $out/bin + install -Dm644 packages/kchmviewer.png -t $out/share/pixmaps + install -Dm644 packages/kchmviewer.desktop -t $out/share/applications + ''; meta = with lib; { description = "CHM (Winhelp) files viewer"; @@ -61,6 +78,6 @@ stdenv.mkDerivation rec { homepage = "http://www.ulduzsoft.com/linux/kchmviewer/"; license = licenses.gpl3Plus; maintainers = with maintainers; [ sikmir ]; - platforms = platforms.linux; + platforms = platforms.unix; }; } From b05f6f1403ef3eeaf6c64bea2d89b0e0b39af43b Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Sun, 25 May 2025 21:55:39 +0400 Subject: [PATCH 2/3] kchmviewer: modernize --- pkgs/applications/misc/kchmviewer/default.nix | 24 +++++++++---------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkgs/applications/misc/kchmviewer/default.nix b/pkgs/applications/misc/kchmviewer/default.nix index 41dac9e9f745..29ac5deb04c3 100644 --- a/pkgs/applications/misc/kchmviewer/default.nix +++ b/pkgs/applications/misc/kchmviewer/default.nix @@ -10,31 +10,31 @@ qtwebengine, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "kchmviewer"; version = "8.0"; src = fetchFromGitHub { owner = "gyunaev"; - repo = pname; - rev = "RELEASE_${lib.replaceStrings [ "." ] [ "_" ] version}"; - sha256 = "sha256-YNpiBf6AFBCRbAZRPODvqGbQQedJJJrZFQIQyzIeBlw="; + repo = "kchmviewer"; + tag = "RELEASE_${lib.replaceStrings [ "." ] [ "_" ] finalAttrs.version}"; + hash = "sha256-YNpiBf6AFBCRbAZRPODvqGbQQedJJJrZFQIQyzIeBlw="; }; patches = [ # remove unused webkit (fetchpatch { url = "https://github.com/gyunaev/kchmviewer/commit/a4a3984465cb635822953350c571950ae726b539.patch"; - sha256 = "sha256-nHW18a4SrTG4fETJmKS4ojHXwnX1d1uN1m4H0GIuI28="; + hash = "sha256-nHW18a4SrTG4fETJmKS4ojHXwnX1d1uN1m4H0GIuI28="; }) # QtWebengine fixes (fetchpatch { url = "https://github.com/gyunaev/kchmviewer/commit/9ac73e7ad15de08aab6b1198115be2eb44da7afe.patch"; - sha256 = "sha256-qg2ytqA2On7jg19WZmHIOU7vLQI2hoyqItySLEA64SY="; + hash = "sha256-qg2ytqA2On7jg19WZmHIOU7vLQI2hoyqItySLEA64SY="; }) (fetchpatch { url = "https://github.com/gyunaev/kchmviewer/commit/99a6d94bdfce9c4578cce82707e71863a71d1453.patch"; - sha256 = "sha256-o8JkaMmcJObmMt+o/6ooCAPCi+yRAWDAgxV+tR5eHfY="; + hash = "sha256-o8JkaMmcJObmMt+o/6ooCAPCi+yRAWDAgxV+tR5eHfY="; }) # Fix build on macOS (fetchpatch { @@ -72,12 +72,12 @@ stdenv.mkDerivation rec { install -Dm644 packages/kchmviewer.desktop -t $out/share/applications ''; - meta = with lib; { + meta = { description = "CHM (Winhelp) files viewer"; mainProgram = "kchmviewer"; homepage = "http://www.ulduzsoft.com/linux/kchmviewer/"; - license = licenses.gpl3Plus; - maintainers = with maintainers; [ sikmir ]; - platforms = platforms.unix; + license = lib.licenses.gpl3Plus; + maintainers = with lib.maintainers; [ sikmir ]; + platforms = lib.platforms.unix; }; -} +}) From f399a6d589bcd77af1cbed55eb476369ec29882c Mon Sep 17 00:00:00 2001 From: Nikolay Korotkiy Date: Sun, 25 May 2025 21:57:43 +0400 Subject: [PATCH 3/3] kchmviewer: migrate to by-name --- .../default.nix => by-name/kc/kchmviewer/package.nix} | 10 ++++------ pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 4 insertions(+), 8 deletions(-) rename pkgs/{applications/misc/kchmviewer/default.nix => by-name/kc/kchmviewer/package.nix} (96%) diff --git a/pkgs/applications/misc/kchmviewer/default.nix b/pkgs/by-name/kc/kchmviewer/package.nix similarity index 96% rename from pkgs/applications/misc/kchmviewer/default.nix rename to pkgs/by-name/kc/kchmviewer/package.nix index 29ac5deb04c3..3e84705d0992 100644 --- a/pkgs/applications/misc/kchmviewer/default.nix +++ b/pkgs/by-name/kc/kchmviewer/package.nix @@ -3,11 +3,9 @@ stdenv, fetchFromGitHub, fetchpatch, - qmake, - wrapQtAppsHook, + qt5, chmlib, libzip, - qtwebengine, }: stdenv.mkDerivation (finalAttrs: { @@ -50,12 +48,12 @@ stdenv.mkDerivation (finalAttrs: { buildInputs = [ chmlib libzip - qtwebengine + qt5.qtwebengine ]; nativeBuildInputs = [ - qmake - wrapQtAppsHook + qt5.qmake + qt5.wrapQtAppsHook ]; postInstall = diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 21affad468e6..56dd7df4c430 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13017,8 +13017,6 @@ with pkgs; kapow = libsForQt5.callPackage ../applications/misc/kapow { }; - kchmviewer = libsForQt5.callPackage ../applications/misc/kchmviewer { }; - okteta = libsForQt5.callPackage ../applications/editors/okteta { }; k4dirstat = libsForQt5.callPackage ../applications/misc/k4dirstat { };