From 22ed6b17d29695d88b82603a9d5f881f1291b5f6 Mon Sep 17 00:00:00 2001 From: Peter Hoeg Date: Fri, 28 Apr 2023 15:48:05 +0800 Subject: [PATCH] qt6Packages.qtkeychain: allow building with qt6 --- .../libraries/qtkeychain/default.nix | 37 +++++++++++++++---- pkgs/top-level/qt6-packages.nix | 4 ++ 2 files changed, 34 insertions(+), 7 deletions(-) diff --git a/pkgs/development/libraries/qtkeychain/default.nix b/pkgs/development/libraries/qtkeychain/default.nix index 0d3528e92f8a..e06667540719 100644 --- a/pkgs/development/libraries/qtkeychain/default.nix +++ b/pkgs/development/libraries/qtkeychain/default.nix @@ -1,11 +1,18 @@ -{ lib, stdenv, fetchFromGitHub, cmake, pkg-config, qtbase, qttools -, CoreFoundation, Security +{ lib +, stdenv +, fetchFromGitHub +, cmake +, pkg-config +, qtbase +, qttools +, CoreFoundation +, Security , libsecret }: stdenv.mkDerivation rec { pname = "qtkeychain"; - version = "0.12.0"; # verify after nix-build with `grep -R "set(PACKAGE_VERSION " result/` + version = "0.12.0"; src = fetchFromGitHub { owner = "frankosterfeld"; @@ -18,7 +25,10 @@ stdenv.mkDerivation rec { patches = [ ./0002-Fix-install-name-Darwin.patch ]; - cmakeFlags = [ "-DQT_TRANSLATIONS_DIR=share/qt/translations" ]; + cmakeFlags = [ + "-DBUILD_WITH_QT6=${if lib.versions.major qtbase.version == "6" then "ON" else "OFF"}" + "-DQT_TRANSLATIONS_DIR=share/qt/translations" + ]; nativeBuildInputs = [ cmake ] ++ lib.optionals (!stdenv.isDarwin) [ pkg-config ] # for finding libsecret @@ -27,9 +37,22 @@ stdenv.mkDerivation rec { buildInputs = lib.optionals (!stdenv.isDarwin) [ libsecret ] ++ [ qtbase qttools ] ++ lib.optionals stdenv.isDarwin [ - CoreFoundation Security - ] - ; + CoreFoundation + Security + ]; + + doInstallCheck = true; + + # we previously had a note in here saying to run this check manually, so we might as + # well do it automatically. It seems like a perfectly valid sanity check, but I + # have no idea *why* we might need it + installCheckPhase = '' + runHook preInstallCheck + + grep --quiet -R 'set(PACKAGE_VERSION "${version}"' . + + runHook postInstallCheck + ''; meta = { description = "Platform-independent Qt API for storing passwords securely"; diff --git a/pkgs/top-level/qt6-packages.nix b/pkgs/top-level/qt6-packages.nix index 9d6a58cb3b52..4381f4ab89b4 100644 --- a/pkgs/top-level/qt6-packages.nix +++ b/pkgs/top-level/qt6-packages.nix @@ -31,6 +31,10 @@ in inherit (kdeFrameworks) kcoreaddons; + qtkeychain = callPackage ../development/libraries/qtkeychain { + inherit (pkgs.darwin.apple_sdk.frameworks) CoreFoundation Security; + }; + qtpbfimageplugin = callPackage ../development/libraries/qtpbfimageplugin { }; quazip = callPackage ../development/libraries/quazip { };