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