nixpkgs/pkgs/development/python-modules/pyqtwebengine/default.nix
Doron Behar 15bfdf8e51 pythonPackages.pyqtwebengine: Apply qt5.14 patch only if needed
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:
2667af4062
2020-10-08 18:57:22 +02:00

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;
};
}