From fa688259bde516cf94e6b203f0d29e343460c741 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Sat, 26 Aug 2023 12:55:05 -0700 Subject: [PATCH] Revert "qutebrowser: 2.5.4 -> 3.0.0" This reverts commit 180f7932cd3ca2483a39a6519812d70c0a12692f. --- .../browsers/qutebrowser/default.nix | 70 +++++++++++++------ pkgs/top-level/aliases.nix | 1 - pkgs/top-level/all-packages.nix | 3 +- 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix index 1f898ed87986..2dec27ce7392 100644 --- a/pkgs/applications/networking/browsers/qutebrowser/default.nix +++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, fetchurl, fetchzip, python3 +{ stdenv, lib, fetchurl, fetchzip, fetchFromGitHub, python3 , wrapQtAppsHook, glib-networking , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2 , libxslt, gst_all_1 ? null @@ -8,14 +8,16 @@ , pipewireSupport ? stdenv.isLinux , pipewire , qtwayland -, qtbase -, qtwebengine -, wrapGAppsHook +, mkDerivationWith ? null +, qtbase ? null +, qtwebengine ? null +, wrapGAppsHook ? null , enableWideVine ? false , widevine-cdm -}: +}: let + isQt6 = mkDerivationWith == null; -let + python3Packages = python3.pkgs; pdfjs = let version = "3.9.179"; in @@ -25,21 +27,40 @@ let stripRoot = false; }; + backendPackage = + if backend == "webengine" then if isQt6 then python3Packages.pyqt6-webengine else python3Packages.pyqtwebengine else + if backend == "webkit" then python3Packages.pyqt5_with_qtwebkit else + throw '' + Unknown qutebrowser backend "${backend}". + Valid choices are qtwebengine (recommended) or qtwebkit. + ''; + + buildPythonApplication = if isQt6 then python3Packages.buildPythonApplication else mkDerivationWith python3Packages.buildPythonApplication; + pname = "qutebrowser"; - version = "3.0.0"; + version = if isQt6 then "unstable-2023-04-18" else "2.5.4"; in assert withMediaPlayback -> gst_all_1 != null; -assert lib.assertMsg (backend != "webkit") '' - Support for the QtWebKit backend has been removed. - Please remove the `backend = "webkit"` option from your qutebrowser override. -''; +assert isQt6 -> backend != "webkit"; -python3.pkgs.buildPythonApplication { +buildPythonApplication { inherit pname version; - src = fetchurl { + + src = if isQt6 then + # comes from the master branch of upstream + # https://github.com/qutebrowser/qutebrowser/issues/7202 + # https://github.com/qutebrowser/qutebrowser/discussions/7628 + fetchFromGitHub { + owner = "qutebrowser"; + repo = "qutebrowser"; + rev = "d4cafc0019a4a5574caa11966fc40ede89076d26"; + hash = "sha256-Ma79EPvnwmQkeXEG9aSnD/Vt1DGhK2JX9dib7uARH8M="; + } + # the release tarballs are different from the git checkout! + else fetchurl { url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz"; - hash = "sha256-Oer0p/DwUfOejUCgSCSkMvLLAjNyJx51qgN7bcQQ2Pw="; + hash = "sha256-pGCyICUn5CpnDCbSJdn6ZBfQkswfFvOpXnvJXdicGrE="; }; # Needs tox @@ -56,18 +77,20 @@ python3.pkgs.buildPythonApplication { nativeBuildInputs = [ wrapQtAppsHook wrapGAppsHook asciidoc docbook_xml_dtd_45 docbook_xsl libxml2 libxslt - python3.pkgs.pygments - ]; + ] + ++ lib.optional isQt6 python3Packages.pygments; propagatedBuildInputs = with python3.pkgs; ([ - pyyaml pyqt6-webengine jinja2 pygments + pyyaml backendPackage jinja2 pygments # scripts and userscripts libs tldextract beautifulsoup4 readability-lxml pykeepass stem pynacl # extensive ad blocking adblock - ] ++ lib.optional stdenv.isLinux qtwayland + ] + ++ lib.optional (pythonOlder "3.9") importlib-resources + ++ lib.optional stdenv.isLinux qtwayland ); patches = [ @@ -77,6 +100,10 @@ python3.pkgs.buildPythonApplication { dontWrapGApps = true; dontWrapQtApps = true; + preConfigure = lib.optionalString isQt6 '' + python scripts/asciidoc2html.py + ''; + postPatch = '' substituteInPlace qutebrowser/misc/quitter.py --subst-var-by qutebrowser "$out/bin/qutebrowser" @@ -114,7 +141,10 @@ python3.pkgs.buildPythonApplication { makeWrapperArgs+=( "''${gappsWrapperArgs[@]}" "''${qtWrapperArgs[@]}" - ${lib.optionalString pipewireSupport ''--prefix LD_LIBRARY_PATH : ${libPath}''} + --add-flags '--backend ${backend}' + --set QUTE_QTWEBENGINE_VERSION_OVERRIDE "${lib.getVersion qtwebengine}" + ${lib.optionalString isQt6 ''--set QUTE_QT_WRAPPER "PyQt6"''} + ${lib.optionalString (pipewireSupport && backend == "webengine") ''--prefix LD_LIBRARY_PATH : ${libPath}''} ${lib.optionalString enableWideVine ''--add-flags "--qt-flag widevine-path=${widevine-cdm}/share/google/chrome/WidevineCdm/_platform_specific/linux_x64/libwidevinecdm.so"''} ) ''; @@ -123,7 +153,7 @@ python3.pkgs.buildPythonApplication { homepage = "https://github.com/qutebrowser/qutebrowser"; description = "Keyboard-focused browser with a minimal GUI"; license = licenses.gpl3Plus; - platforms = if enableWideVine then [ "x86_64-linux" ] else qtwebengine.meta.platforms; + platforms = if enableWideVine then [ "x86_64-linux" ] else backendPackage.meta.platforms; maintainers = with maintainers; [ jagajaga rnhmjoj ebzzry dotlambda nrdxp ]; }; } diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 70b39b5c52b7..3058ba1d47ed 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1492,7 +1492,6 @@ mapAliases ({ quake3game = throw "'quake3game' has been renamed to/replaced by 'ioquake3'"; # Converted to throw 2022-02-22 quaternion-git = throw "quaternion-git has been removed in favor of the stable version 'quaternion'"; # Added 2020-04-09 quilter = throw "quilter has been removed from nixpkgs, as it was unmaintained"; # Added 2021-08-03 - qutebrowser-qt6 = throw "'qutebrowser-qt6' has been replaced by 'qutebrowser', since the the qt5 version has been removed"; # Added 2023-08-19 qvim = throw "qvim has been removed"; # Added 2020-08-31 qweechat = throw "qweechat has been removed because it was broken"; # Added 2021-03-08 qwt6 = throw "'qwt6' has been renamed to/replaced by 'libsForQt5.qwt'"; # Converted to throw 2022-02-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4faf66e946a4..6df3addccd7b 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -35109,7 +35109,8 @@ with pkgs; withXineBackend = true; }; - qutebrowser = callPackage ../applications/networking/browsers/qutebrowser { + qutebrowser = libsForQt5.callPackage ../applications/networking/browsers/qutebrowser { }; + qutebrowser-qt6 = callPackage ../applications/networking/browsers/qutebrowser { inherit (qt6Packages) qtbase qtwebengine wrapQtAppsHook qtwayland; };