15bfdf8e51
Since we now use qt5.15 in all python modules (defaulting to the same qt5 used in all-packages.nix), That patch is not required, but it will be needed if qt5.14 is used if pythonInterpreters is overridden, which is likely to happen like it happend to qutebrowser for instance. See: https://github.com/NixOS/nixpkgs/pull/99956/commits/2667af4062ef0710b486fbae3108e0141aecb0fc
100 lines
2.3 KiB
Nix
100 lines
2.3 KiB
Nix
{ lib, pythonPackages, pkgconfig
|
|
, qmake, qtbase, qtsvg, qtwebengine
|
|
, wrapQtAppsHook
|
|
}:
|
|
|
|
let
|
|
|
|
inherit (pythonPackages) buildPythonPackage python isPy3k pyqt5 enum34;
|
|
inherit (pyqt5) sip;
|
|
# source: https://www.riverbankcomputing.com/pipermail/pyqt/2020-June/042985.html
|
|
patches = lib.optional (lib.hasPrefix "5.14" pyqt5.version)
|
|
[ ./fix-build-with-qt-514.patch ]
|
|
;
|
|
|
|
in buildPythonPackage rec {
|
|
pname = "PyQtWebEngine";
|
|
version = "5.15.0";
|
|
format = "other";
|
|
|
|
src = pythonPackages.fetchPypi {
|
|
inherit pname version;
|
|
sha256 = "0xdzhl07x3mzfnr5cf4d640168vxi7fyl0fz1pvpbgs0irl14237";
|
|
};
|
|
|
|
inherit patches;
|
|
|
|
outputs = [ "out" "dev" ];
|
|
|
|
nativeBuildInputs = [
|
|
pkgconfig
|
|
qmake
|
|
sip
|
|
qtbase
|
|
qtsvg
|
|
qtwebengine
|
|
];
|
|
|
|
buildInputs = [
|
|
sip
|
|
qtbase
|
|
qtsvg
|
|
qtwebengine
|
|
];
|
|
|
|
propagatedBuildInputs = [ pyqt5 ]
|
|
++ lib.optional (!isPy3k) enum34;
|
|
|
|
configurePhase = ''
|
|
runHook preConfigure
|
|
|
|
mkdir -p "$out/share/sip/PyQt5"
|
|
|
|
# FIXME: Without --no-dist-info, I get
|
|
# unable to create /nix/store/yv4pzx3lxk3lscq0pw3hqzs7k4x76xsm-python3-3.7.2/lib/python3.7/site-packages/PyQtWebEngine-5.12.dist-info
|
|
${python.executable} configure.py -w \
|
|
--destdir="$out/${python.sitePackages}/PyQt5" \
|
|
--no-dist-info \
|
|
--apidir="$out/api/${python.libPrefix}" \
|
|
--sipdir="$out/share/sip/PyQt5" \
|
|
--pyqt-sipdir="${pyqt5}/share/sip/PyQt5" \
|
|
--stubsdir="$out/${python.sitePackages}/PyQt5"
|
|
|
|
runHook postConfigure
|
|
'';
|
|
|
|
postInstall = ''
|
|
# Let's make it a namespace package
|
|
cat << EOF > $out/${python.sitePackages}/PyQt5/__init__.py
|
|
from pkgutil import extend_path
|
|
__path__ = extend_path(__path__, __name__)
|
|
EOF
|
|
'';
|
|
|
|
installCheckPhase = let
|
|
modules = [
|
|
"PyQt5.QtWebEngine"
|
|
"PyQt5.QtWebEngineWidgets"
|
|
];
|
|
imports = lib.concatMapStrings (module: "import ${module};") modules;
|
|
in ''
|
|
echo "Checking whether modules can be imported..."
|
|
PYTHONPATH=$PYTHONPATH:$out/${python.sitePackages} ${python.interpreter} -c "${imports}"
|
|
'';
|
|
|
|
doCheck = true;
|
|
|
|
enableParallelBuilding = true;
|
|
|
|
passthru = {
|
|
inherit wrapQtAppsHook;
|
|
};
|
|
|
|
meta = with lib; {
|
|
description = "Python bindings for Qt5";
|
|
homepage = "http://www.riverbankcomputing.co.uk";
|
|
license = licenses.gpl3;
|
|
platforms = platforms.mesaPlatforms;
|
|
};
|
|
}
|