forked from NixOS/nixpkgs
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
3 changed files
with
170 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,138 @@ | ||
{ lib | ||
, buildPythonPackage | ||
, isPy27 | ||
, fetchPypi | ||
, pkg-config | ||
, dbus | ||
, lndir | ||
, setuptools | ||
, dbus-python | ||
, sip | ||
, pyqt6-sip | ||
, pyqt-builder | ||
, qt6Packages | ||
, pythonOlder | ||
, withMultimedia ? true | ||
, withWebSockets ? true | ||
# FIXME: Once QtLocation is available for Qt6 enable this | ||
# https://bugreports.qt.io/browse/QTBUG-96795 | ||
#, withLocation ? true | ||
# Not currently part of PyQt6 | ||
#, withConnectivity ? true | ||
}: | ||
|
||
buildPythonPackage rec { | ||
pname = "PyQt6"; | ||
version = "6.4.0"; | ||
format = "pyproject"; | ||
|
||
disabled = pythonOlder "3.6"; | ||
|
||
src = fetchPypi { | ||
inherit pname version; | ||
sha256 = "sha256-kTkkab4fSRkF+p54+k5AWaiathbd8uz9UlvB1lwmu5M="; | ||
}; | ||
|
||
patches = [ | ||
# Fix some wrong assumptions by ./project.py | ||
# TODO: figure out how to send this upstream | ||
# FIXME: make a version for PyQt6? | ||
# ./pyqt5-fix-dbus-mainloop-support.patch | ||
# confirm license when installing via pyqt6_sip | ||
./pyqt5-confirm-license.patch | ||
]; | ||
|
||
# be more verbose | ||
postPatch = '' | ||
cat >> pyproject.toml <<EOF | ||
[tool.sip.project] | ||
verbose = true | ||
EOF | ||
''; | ||
|
||
enableParallelBuilding = true; | ||
# HACK: paralellize compilation of make calls within pyqt's setup.py | ||
# pkgs/stdenv/generic/setup.sh doesn't set this for us because | ||
# make gets called by python code and not its build phase | ||
# format=pyproject means the pip-build-hook hook gets used to build this project | ||
# pkgs/development/interpreters/python/hooks/pip-build-hook.sh | ||
# does not use the enableParallelBuilding flag | ||
postUnpack = '' | ||
export MAKEFLAGS+=" -j$NIX_BUILD_CORES -l$NIX_BUILD_CORES" | ||
''; | ||
|
||
outputs = [ "out" "dev" ]; | ||
|
||
dontWrapQtApps = true; | ||
|
||
nativeBuildInputs = with qt6Packages; [ | ||
pkg-config | ||
lndir | ||
sip | ||
qtbase | ||
qtsvg | ||
qtdeclarative | ||
qtwebchannel | ||
qmake | ||
qtquick3d | ||
qtquicktimeline | ||
] | ||
# ++ lib.optional withConnectivity qtconnectivity | ||
++ lib.optional withMultimedia qtmultimedia | ||
++ lib.optional withWebSockets qtwebsockets | ||
# ++ lib.optional withLocation qtlocation | ||
; | ||
|
||
buildInputs = with qt6Packages; [ | ||
dbus | ||
qtbase | ||
qtsvg | ||
qtdeclarative | ||
pyqt-builder | ||
qtquick3d | ||
qtquicktimeline | ||
] | ||
# ++ lib.optional withConnectivity qtconnectivity | ||
++ lib.optional withWebSockets qtwebsockets | ||
# ++ lib.optional withLocation qtlocation | ||
; | ||
|
||
propagatedBuildInputs = [ | ||
dbus-python | ||
pyqt6-sip | ||
setuptools | ||
]; | ||
|
||
passthru = { | ||
inherit sip pyqt6-sip; | ||
multimediaEnabled = withMultimedia; | ||
WebSocketsEnabled = withWebSockets; | ||
}; | ||
|
||
dontConfigure = true; | ||
|
||
# Checked using pythonImportsCheck, has no tests | ||
doCheck = true; | ||
|
||
pythonImportsCheck = [ | ||
"PyQt6" | ||
"PyQt6.QtCore" | ||
"PyQt6.QtQml" | ||
"PyQt6.QtWidgets" | ||
"PyQt6.QtGui" | ||
"PyQt6.QtQuick" | ||
] | ||
++ lib.optional withWebSockets "PyQt6.QtWebSockets" | ||
++ lib.optional withMultimedia "PyQt6.QtMultimedia" | ||
# ++ lib.optional withConnectivity "PyQt6.QtConnectivity" | ||
# ++ lib.optional withLocation "PyQt6.QtPositioning" | ||
; | ||
|
||
meta = with lib; { | ||
description = "Python bindings for Qt6"; | ||
homepage = "https://riverbankcomputing.com/"; | ||
license = licenses.gpl3Only; | ||
platforms = platforms.mesaPlatforms; | ||
maintainers = with maintainers; [ LunNova ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,28 @@ | ||
{ lib | ||
, buildPythonPackage | ||
, fetchPypi | ||
}: | ||
|
||
buildPythonPackage rec { | ||
pname = "pyqt6-sip"; | ||
version = "13.4.0"; | ||
|
||
src = fetchPypi { | ||
pname = "PyQt6_sip"; | ||
inherit version; | ||
sha256 = "sha256-bYej7lhy11EbdpV9aKMhCTUsrzt6QqAdnuIAMrNQ2Xk="; | ||
}; | ||
|
||
# There is no test code and the check phase fails with: | ||
# > error: could not create 'PyQt5/sip.cpython-38-x86_64-linux-gnu.so': No such file or directory | ||
doCheck = false; | ||
pythonImportsCheck = [ "PyQt6.sip" ]; | ||
|
||
meta = with lib; { | ||
description = "Python bindings for Qt5"; | ||
homepage = "https://www.riverbankcomputing.com/software/sip/"; | ||
license = licenses.gpl3Only; | ||
platforms = platforms.mesaPlatforms; | ||
maintainers = with maintainers; [ LunNova ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters