nixpkgs/pkgs/development/libraries/python-qt/default.nix
Manuel Frischknecht 2a2327f508 python-qt: 3.3.0 -> 3.4.2
`python-qt` v. 3.3.0 wasn't compatible with Python 3.11 yet
(it contained include statements for header files that were
removed by 3.11 [1] and used a python tuple field that was
replaced through a dedicated getter function [2]).

Switching to version 3.4.2 also means we can remove the
`remove-unneeded-pydebug-include.patch`, as it has since
been merged.

[1]: https://docs.python.org/3.11/whatsnew/3.11.html

> The non-limited API files cellobject.h, classobject.h, code.h, context.h,
> funcobject.h, genobject.h and longintrepr.h have been moved to the Include/cpython
> directory. Moreover, the eval.h header file was removed. These files must not be
> included directly, as they are already included in Python.h: Include Files.
> If they have been included directly, consider including Python.h instead.

[2]: https://github.com/python/cpython/issues/94936#issuecomment-1206497729
2023-12-06 23:59:48 +01:00

53 lines
1.4 KiB
Nix

{ lib, stdenv, fetchFromGitHub, fetchpatch, python, qmake,
qtwebengine, qtxmlpatterns,
qttools, unzip }:
stdenv.mkDerivation rec {
pname = "python-qt";
version = "3.4.2";
src = fetchFromGitHub {
owner = "MeVisLab";
repo = "pythonqt";
rev = "v${version}";
hash = "sha256-xJYOD07ACOKtY3psmfHNSCjm6t0fr8JU9CrL0w5P5G0=";
};
# https://github.com/CsoundQt/CsoundQt/blob/develop/BUILDING.md#pythonqt
postPatch = ''
substituteInPlace build/python.prf \
--replace "PYTHON_VERSION=2.7" "PYTHON_VERSION=${python.pythonVersion}"
'';
hardeningDisable = [ "all" ];
nativeBuildInputs = [ qmake qtwebengine qtxmlpatterns qttools unzip ];
buildInputs = [ python ];
qmakeFlags = [
"PythonQt.pro"
"PYTHON_DIR=${python}"
];
dontWrapQtApps = true;
unpackCmd = "unzip $src";
installPhase = ''
mkdir -p $out/include/PythonQt
cp -r ./lib $out
cp -r ./src/* $out/include/PythonQt
cp -r ./build $out/include/PythonQt
cp -r ./extensions $out/include/PythonQt
'';
meta = with lib; {
description = "PythonQt is a dynamic Python binding for the Qt framework. It offers an easy way to embed the Python scripting language into your C++ Qt applications";
homepage = "https://pythonqt.sourceforge.net/";
license = licenses.lgpl21;
platforms = platforms.all;
maintainers = with maintainers; [ hlolli ];
};
}