From d01300927cc23b095c5cb9580ab429f72e433de1 Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Fri, 11 Jul 2025 10:56:37 +0200 Subject: [PATCH 1/2] qscintilla: don't hardcode qt version in package name This package is build for both Qt 5 and Qt 6. --- pkgs/development/libraries/qscintilla/default.nix | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/pkgs/development/libraries/qscintilla/default.nix b/pkgs/development/libraries/qscintilla/default.nix index 3ac9899bc498..83df3a1fcddd 100644 --- a/pkgs/development/libraries/qscintilla/default.nix +++ b/pkgs/development/libraries/qscintilla/default.nix @@ -1,6 +1,7 @@ { - stdenv, lib, + stdenv, + fetchurl, unzip, qtbase, @@ -9,8 +10,11 @@ fixDarwinDylibNames, }: +let + qtVersion = lib.versions.major qtbase.version; +in stdenv.mkDerivation (finalAttrs: { - pname = "qscintilla-qt5"; + pname = "qscintilla-qt${qtVersion}"; version = "2.14.1"; src = fetchurl { @@ -34,7 +38,6 @@ stdenv.mkDerivation (finalAttrs: { postFixup = let libExt = stdenv.hostPlatform.extensions.sharedLibrary; - qtVersion = lib.versions.major qtbase.version; in '' ln -s $out/lib/libqscintilla2_qt${qtVersion}${libExt} $out/lib/libqscintilla2${libExt} From 5c03d833fcdfed83728ef4ee227412187fbf035c Mon Sep 17 00:00:00 2001 From: Ivan Mincik Date: Fri, 11 Jul 2025 21:13:10 +0200 Subject: [PATCH 2/2] python3Packages.qscintilla-qt5/6: build package for both Qt 5 and Qt 6 --- .../default.nix | 29 +++++++++++-------- pkgs/top-level/python-packages.nix | 6 +++- 2 files changed, 22 insertions(+), 13 deletions(-) rename pkgs/development/python-modules/{qscintilla-qt5 => qscintilla}/default.nix (76%) diff --git a/pkgs/development/python-modules/qscintilla-qt5/default.nix b/pkgs/development/python-modules/qscintilla/default.nix similarity index 76% rename from pkgs/development/python-modules/qscintilla-qt5/default.nix rename to pkgs/development/python-modules/qscintilla/default.nix index 3ba31569f4c3..d58b591c2aac 100644 --- a/pkgs/development/python-modules/qscintilla-qt5/default.nix +++ b/pkgs/development/python-modules/qscintilla/default.nix @@ -1,26 +1,27 @@ { lib, + stdenv, + pythonPackages, + qmake, qscintilla, qtbase, - qmake, - qtmacextras, - stdenv, + qtmacextras ? null, }: let + qtVersion = lib.versions.major qtbase.version; + pyQtPackage = pythonPackages."pyqt${qtVersion}"; + inherit (pythonPackages) - buildPythonPackage isPy3k python sip - sipbuild - pyqt5 pyqt-builder ; in -buildPythonPackage { - pname = "qscintilla-qt5"; +pythonPackages.buildPythonPackage { + pname = "qscintilla-qt${qtVersion}"; version = qscintilla.version; src = qscintilla.src; format = "pyproject"; @@ -34,17 +35,21 @@ buildPythonPackage { qscintilla pythonPackages.setuptools ]; + buildInputs = [ qtbase ]; - propagatedBuildInputs = [ pyqt5 ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ qtmacextras ]; + + propagatedBuildInputs = [ + pyQtPackage + ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ qtmacextras ]; dontWrapQtApps = true; postPatch = '' cd Python - cp pyproject-qt5.toml pyproject.toml + cp pyproject-qt${qtVersion}.toml pyproject.toml echo '[tool.sip.project]' >> pyproject.toml - echo 'sip-include-dirs = [ "${pyqt5}/${python.sitePackages}/PyQt5/bindings"]' \ + echo 'sip-include-dirs = [ "${pyQtPackage}/${python.sitePackages}/PyQt${qtVersion}/bindings"]' \ >> pyproject.toml '' + lib.optionalString stdenv.hostPlatform.isDarwin '' @@ -75,7 +80,7 @@ buildPythonPackage { # Checked using pythonImportsCheck doCheck = false; - pythonImportsCheck = [ "PyQt5.Qsci" ]; + pythonImportsCheck = [ "PyQt${qtVersion}.Qsci" ]; meta = with lib; { description = "Python binding to QScintilla, Qt based text editing control"; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 77a5e85f11f1..d8a13076b3d8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -15142,7 +15142,11 @@ self: super: with self; { qscintilla = self.qscintilla-qt5; - qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla-qt5 { + qscintilla-qt5 = pkgs.libsForQt5.callPackage ../development/python-modules/qscintilla { + pythonPackages = self; + }; + + qscintilla-qt6 = pkgs.qt6Packages.callPackage ../development/python-modules/qscintilla { pythonPackages = self; };