From c6c52c521f50457e48f3e6c0f8b0b1b65a72da51 Mon Sep 17 00:00:00 2001 From: Timothy DeHerrera Date: Thu, 6 Oct 2022 17:13:00 -0600 Subject: [PATCH] qutebrowser: init qt6 variant --- .../browsers/qutebrowser/default.nix | 51 ++++++++++++++----- pkgs/top-level/all-packages.nix | 3 ++ 2 files changed, 40 insertions(+), 14 deletions(-) diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix index ce2392ab4edc..a3f5b3236973 100644 --- a/pkgs/applications/networking/browsers/qutebrowser/default.nix +++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix @@ -1,5 +1,5 @@ -{ stdenv, lib, fetchurl, fetchzip, python3 -, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, qtwebengine, glib-networking +{ stdenv, lib, fetchurl, fetchzip, fetchFromGitHub, python3 +, wrapQtAppsHook, glib-networking , asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2 , libxslt, gst_all_1 ? null , withPdfReader ? true @@ -7,35 +7,56 @@ , backend ? "webengine" , pipewireSupport ? stdenv.isLinux , pipewire_0_2 -}: +, qtwayland +, mkDerivationWith ? null +, qtbase ? null +, qtwebengine ? null +, wrapGAppsHook ? null +}: let + isQt6 = mkDerivationWith == null; -assert withMediaPlayback -> gst_all_1 != null; - -let python3Packages = python3.pkgs; pdfjs = let version = "2.14.305"; in - fetchzip rec { + fetchzip { url = "https://github.com/mozilla/pdf.js/releases/download/v${version}/pdfjs-${version}-dist.zip"; hash = "sha256-E7t+0AUndrgi4zfJth0w28RmWLqLyXMUCnueNf/gNi4="; stripRoot = false; }; backendPackage = - if backend == "webengine" then python3Packages.pyqtwebengine else + 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. ''; -in mkDerivationWith python3Packages.buildPythonApplication rec { - pname = "qutebrowser"; - version = "2.5.2"; + buildPythonApplication = if isQt6 then python3Packages.buildPythonApplication else mkDerivationWith python3Packages.buildPythonApplication; + pname = "qutebrowser"; + version = if isQt6 then "unstable-2022-09-16" else "2.5.2"; + +in + +assert withMediaPlayback -> gst_all_1 != null; +assert isQt6 -> backend != "webkit"; + +buildPythonApplication { + inherit pname version; + + src = if isQt6 then + # comes from qt6-v2 branch of upstream + # https://github.com/qutebrowser/qutebrowser/issues/7202 + fetchFromGitHub { + owner = "qutebrowser"; + repo = "qutebrowser"; + rev = "5e11e6c7d413cf5c77056ba871a545aae1cfd66a"; + sha256 = "sha256-5HNzPO07lUQe/Q3Nb4JiS9kb9GMQ5/FqM5029vLNNWo="; + } # the release tarballs are different from the git checkout! - src = fetchurl { + else fetchurl { url = "https://github.com/qutebrowser/qutebrowser/releases/download/v${version}/${pname}-${version}.tar.gz"; hash = "sha256-qb/OFN3EA94N6y7t+YPCMc4APgdZmV7H706jTkl06Qg="; }; @@ -66,6 +87,7 @@ in mkDerivationWith python3Packages.buildPythonApplication rec { adblock ] ++ lib.optional (pythonOlder "3.9") importlib-resources + ++ lib.optional stdenv.isLinux qtwayland ); patches = [ @@ -94,14 +116,15 @@ in mkDerivationWith python3Packages.buildPythonApplication rec { # Install icons for i in 16 24 32 48 64 128 256 512; do - install -Dm644 "icons/qutebrowser-''${i}x''${i}.png" \ + install -Dm644 "qutebrowser/icons/qutebrowser-''${i}x''${i}.png" \ "$out/share/icons/hicolor/''${i}x''${i}/apps/qutebrowser.png" done - install -Dm644 icons/qutebrowser.svg \ + install -Dm644 ${if isQt6 then "qutebrowser/" else ""}icons/qutebrowser.svg \ "$out/share/icons/hicolor/scalable/apps/qutebrowser.svg" # Install scripts sed -i "s,/usr/bin/,$out/bin/,g" scripts/open_url_in_instance.sh + ${if isQt6 then "rm -rf scripts/{testbrowser,dev}" else ""} install -Dm755 -t "$out/share/qutebrowser/scripts/" $(find scripts -type f) install -Dm755 -t "$out/share/qutebrowser/userscripts/" misc/userscripts/* diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ab58c766f7d0..92d3d7894367 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -31057,6 +31057,9 @@ with pkgs; }; qutebrowser = libsForQt5.callPackage ../applications/networking/browsers/qutebrowser { }; + qutebrowser-qt6 = callPackage ../applications/networking/browsers/qutebrowser { + inherit (qt6Packages) qtbase qtwebengine wrapQtAppsHook qtwayland; + }; qxw = callPackage ../applications/editors/qxw {};