From 350e6fd38a71bf83bc69ebf888128dc381d7157a Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Fri, 22 Nov 2024 23:24:56 -0300 Subject: [PATCH] zeal: migrate to by-name And merge the expressions in a convoluted data structure. --- .../ze/zeal/make-zeal.nix} | 77 +++++++++++-------- pkgs/by-name/ze/zeal/package.nix | 72 +++++++++++++++++ pkgs/top-level/all-packages.nix | 7 +- 3 files changed, 118 insertions(+), 38 deletions(-) rename pkgs/{data/documentation/zeal/default.nix => by-name/ze/zeal/make-zeal.nix} (50%) create mode 100644 pkgs/by-name/ze/zeal/package.nix diff --git a/pkgs/data/documentation/zeal/default.nix b/pkgs/by-name/ze/zeal/make-zeal.nix similarity index 50% rename from pkgs/data/documentation/zeal/default.nix rename to pkgs/by-name/ze/zeal/make-zeal.nix index bb65f91ee1c31..b8e761ee91f71 100644 --- a/pkgs/data/documentation/zeal/default.nix +++ b/pkgs/by-name/ze/zeal/make-zeal.nix @@ -1,41 +1,50 @@ -{ lib -, stdenv -, fetchFromGitHub -, cmake -, extra-cmake-modules -, pkg-config -, httplib -, qtbase -, qtimageformats -, qtwebengine -, qtx11extras -, libarchive -, libXdmcp -, libpthreadstubs -, wrapQtAppsHook -, xcbutilkeysyms +{ + pname, + version, + hash, + flavor, }: -let - isQt5 = lib.versions.major qtbase.version == "5"; +{ + lib, + cmake, + extra-cmake-modules, + fetchFromGitHub, + httplib, + libXdmcp, + libarchive, + libpthreadstubs, + pkg-config, + qt5, + qt6, + stdenv, + xcbutilkeysyms, +}: +let + qt = + if flavor == "qt5" then + qt5 + else if flavor == "qt6" then + qt6 + else + throw "unknown flavor ${flavor}"; in -stdenv.mkDerivation (finalAttrs: { - pname = "zeal"; - version = "0.7.2"; +stdenv.mkDerivation { + inherit pname version; src = fetchFromGitHub { owner = "zealdocs"; repo = "zeal"; - rev = "v${finalAttrs.version}"; - hash = "sha256-9tlo7+namWNWrWVQNqaOvtK4NQIdb0p8qvFrrbUamOo="; + rev = "v${version}"; + inherit hash; }; nativeBuildInputs = [ cmake extra-cmake-modules pkg-config - wrapQtAppsHook + qt.wrapQtAppsHook ]; buildInputs = [ @@ -43,12 +52,11 @@ stdenv.mkDerivation (finalAttrs: { libXdmcp libarchive libpthreadstubs - qtbase - qtimageformats - qtwebengine + qt.qtbase + qt.qtimageformats + qt.qtwebengine xcbutilkeysyms - ] - ++ lib.optionals isQt5 [ qtx11extras ]; + ] ++ lib.optionals (flavor == "qt5") [ qt.qtx11extras ]; cmakeFlags = [ (lib.cmakeBool "ZEAL_RELEASE_BUILD" true) @@ -61,10 +69,13 @@ stdenv.mkDerivation (finalAttrs: { app), available for Linux and Windows. ''; homepage = "https://zealdocs.org/"; - changelog = "https://github.com/zealdocs/zeal/releases/tag/v${finalAttrs.version}"; + changelog = "https://github.com/zealdocs/zeal/releases/tag/v${version}"; license = lib.licenses.gpl3Plus; - maintainers = with lib.maintainers; [ peterhoeg AndersonTorres ]; + maintainers = with lib.maintainers; [ + peterhoeg + AndersonTorres + ]; mainProgram = "zeal"; - inherit (qtbase.meta) platforms; + inherit (qt.qtbase.meta) platforms; }; -}) +} diff --git a/pkgs/by-name/ze/zeal/package.nix b/pkgs/by-name/ze/zeal/package.nix new file mode 100644 index 0000000000000..d531e3c0d536f --- /dev/null +++ b/pkgs/by-name/ze/zeal/package.nix @@ -0,0 +1,72 @@ +args@{ + lib, + cmake, + extra-cmake-modules, + fetchFromGitHub, + httplib, + libXdmcp, + libarchive, + libpthreadstubs, + pkg-config, + qt5, + qt6, + stdenv, + xcbutilkeysyms, +}: +let + zealData = { + pname = "zeal"; + version = "0.7.2"; + hash = "sha256-9tlo7+namWNWrWVQNqaOvtK4NQIdb0p8qvFrrbUamOo="; + }; + + mkZeal = + { + pname, + version, + hash, + flavor, + }: + args: + import ./make-zeal.nix { + inherit + pname + version + hash + flavor + ; + } args; + + _qt5 = + mkZeal { + pname = zealData.pname + "-qt5"; + inherit (zealData) version hash; + flavor = "qt5"; + } args + // { + passthru = { + inherit flavors; + }; + }; + + _qt6 = + mkZeal { + pname = zealData.pname + "-qt6"; + inherit (zealData) version hash; + flavor = "qt6"; + } args + // { + passthru = { + inherit flavors; + }; + }; + + default = _qt5; + + flavors = { + qt5 = _qt5; + qt6 = _qt6; + inherit default; + }; +in +default diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index e060ad0a3d778..55f8e782d2c3d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13282,11 +13282,8 @@ with pkgs; inherit (plasma5Packages) breeze-icons; }; - zeal-qt5 = libsForQt5.callPackage ../data/documentation/zeal { }; - zeal = zeal-qt5; - zeal-qt6 = qt6Packages.callPackage ../data/documentation/zeal { - qtx11extras = null; # Because it does not exist in qt6 - }; + zeal-qt5 = zeal.passthru.flavors.qt5; + zeal-qt6 = zeal.passthru.flavors.qt6; ### APPLICATIONS / GIS