1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
{ lib
, stdenv
, buildPythonPackage
, setuptools
, isPy27
, fetchPypi
, pkg-config
, dbus
, lndir
, dbus-python
, sip
, pyqt5_sip
, pyqt-builder
, libsForQt5
, withConnectivity ? false
, withMultimedia ? false
, withWebKit ? false
, withWebSockets ? false
, withLocation ? false
}:
buildPythonPackage rec {
pname = "PyQt5";
version = "5.15.7";
format = "pyproject";
disabled = isPy27;
src = fetchPypi {
inherit pname version;
sha256 = "sha256-dVEhpSs6CMsHJ1wQ67lldtNuMg5XJZHbFs/bxVgQFZQ=";
};
patches = [
# Fix some wrong assumptions by ./project.py
# TODO: figure out how to send this upstream
./pyqt5-fix-dbus-mainloop-support.patch
# confirm license when installing via pyqt5_sip
./pyqt5-confirm-license.patch
];
postPatch =
# be more verbose
''
cat >> pyproject.toml <<EOF
[tool.sip.project]
verbose = true
''
# Due to bug in SIP .whl name generation we have to bump minimal macos sdk upto 11.0 for
# aarch64-darwin. This patch can be removed once SIP will fix it in upstream,
# see https://github.com/NixOS/nixpkgs/pull/186612#issuecomment-1214635456.
+ lib.optionalString (stdenv.isDarwin && stdenv.isAarch64) ''
minimum-macos-version = "11.0"
'' + ''
EOF
'';
outputs = [ "out" "dev" ];
dontWrapQtApps = true;
nativeBuildInputs = with libsForQt5; [
pkg-config
qmake
setuptools
lndir
sip
qtbase
qtsvg
qtdeclarative
qtwebchannel
]
++ lib.optional withConnectivity qtconnectivity
++ lib.optional withMultimedia qtmultimedia
++ lib.optional withWebKit qtwebkit
++ lib.optional withWebSockets qtwebsockets
++ lib.optional withLocation qtlocation
;
buildInputs = with libsForQt5; [
dbus
qtbase
qtsvg
qtdeclarative
pyqt-builder
]
++ lib.optional withConnectivity qtconnectivity
++ lib.optional withWebKit qtwebkit
++ lib.optional withWebSockets qtwebsockets
++ lib.optional withLocation qtlocation
;
propagatedBuildInputs = [
dbus-python
pyqt5_sip
];
passthru = {
inherit sip pyqt5_sip;
multimediaEnabled = withMultimedia;
webKitEnabled = withWebKit;
WebSocketsEnabled = withWebSockets;
};
dontConfigure = true;
# Checked using pythonImportsCheck
doCheck = false;
pythonImportsCheck = [
"PyQt5"
"PyQt5.QtCore"
"PyQt5.QtQml"
"PyQt5.QtWidgets"
"PyQt5.QtGui"
]
++ lib.optional withWebSockets "PyQt5.QtWebSockets"
++ lib.optional withWebKit "PyQt5.QtWebKit"
++ lib.optional withMultimedia "PyQt5.QtMultimedia"
++ lib.optional withConnectivity "PyQt5.QtConnectivity"
++ lib.optional withLocation "PyQt5.QtPositioning"
;
meta = with lib; {
description = "Python bindings for Qt5";
homepage = "https://riverbankcomputing.com/";
license = licenses.gpl3Only;
platforms = platforms.mesaPlatforms;
maintainers = with maintainers; [ sander ];
};
}
|