From 36cc31f89b9f536edab931fb5385f109971c37bd Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Jos=C3=A9=20Romildo?= <malaquias@gmail.com>
Date: Thu, 18 Apr 2024 14:39:04 -0300
Subject: [PATCH] lxqt: port to qt6 and add some compatibility packages

---
 pkgs/desktops/lxqt/default.nix  | 55 +++++++++++++++++++++++++++------
 pkgs/top-level/all-packages.nix |  2 +-
 2 files changed, 46 insertions(+), 11 deletions(-)

diff --git a/pkgs/desktops/lxqt/default.nix b/pkgs/desktops/lxqt/default.nix
index 29406200d4c9..b4925f3c5d95 100644
--- a/pkgs/desktops/lxqt/default.nix
+++ b/pkgs/desktops/lxqt/default.nix
@@ -1,4 +1,5 @@
-{ pkgs, makeScope, libsForQt5, qt5 }:
+{ pkgs, makeScope, kdePackages }:
+
 let
   packages = self: with self; {
 
@@ -29,7 +30,10 @@ let
     lxqt-sudo = callPackage ./lxqt-sudo {};
     lxqt-themes = callPackage ./lxqt-themes {};
     pavucontrol-qt = callPackage ./pavucontrol-qt {};
-    qtermwidget = callPackage ./qtermwidget {};
+    qtermwidget = callPackage ./qtermwidget {
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      inherit (pkgs.libsForQt5) qtbase qttools;
+    };
 
     ### CORE 2
     lxqt-panel = callPackage ./lxqt-panel {};
@@ -37,24 +41,55 @@ let
     pcmanfm-qt = callPackage ./pcmanfm-qt {};
 
     ### OPTIONAL
-    qterminal = callPackage ./qterminal {};
-    compton-conf = callPackage ./compton-conf {};
+    qterminal = callPackage ./qterminal {
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      inherit (pkgs.libsForQt5) qtbase qttools qtx11extras;
+    };
+    compton-conf = callPackage ./compton-conf {
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      inherit (pkgs.libsForQt5) qtbase qttools qtx11extras;
+    };
     obconf-qt = callPackage ./obconf-qt {};
     lximage-qt = callPackage ./lximage-qt {};
     qps = callPackage ./qps {};
     screengrab = callPackage ./screengrab {};
-    qlipper = callPackage ./qlipper {};
+    qlipper = callPackage ./qlipper {
+      inherit (pkgs.libsForQt5) qtbase qttools;
+    };
     lxqt-archiver = callPackage ./lxqt-archiver {};
     xdg-desktop-portal-lxqt = callPackage ./xdg-desktop-portal-lxqt {};
 
+    ### COMPATIBILITY
+    lxqt-build-tools_0_13 = callPackage ./lxqt-build-tools {
+      version = "0.13.0";
+      inherit (pkgs.libsForQt5) qtbase;
+    };
+    libqtxdg_3_12 = callPackage ./libqtxdg {
+      version = "3.12.0";
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      inherit (pkgs.libsForQt5) qtbase qtsvg;
+    };
+    libfm-qt_1_4 = callPackage ./libfm-qt {
+      version = "1.4.0";
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      inherit (pkgs.libsForQt5) qttools qtx11extras;
+    };
+    lxqt-qtplugin_1_4 = callPackage ./lxqt-qtplugin {
+      version = "1.4.1";
+      lxqt-build-tools = lxqt-build-tools_0_13;
+      libqtxdg = libqtxdg_3_12;
+      libfm-qt = libfm-qt_1_4;
+      inherit (pkgs.libsForQt5) qtbase qtsvg qttools libdbusmenu;
+    };
+
     preRequisitePackages = [
-      libsForQt5.kwindowsystem # provides some QT5 plugins needed by lxqt-panel
-      libsForQt5.libkscreen # provides plugins for screen management software
+      kdePackages.kwindowsystem # provides some QT plugins needed by lxqt-panel
+      kdePackages.libkscreen # provides plugins for screen management software
       pkgs.libfm
       pkgs.libfm-extra
       pkgs.menu-cache
       pkgs.openbox # default window manager
-      qt5.qtsvg # provides QT5 plugins for svg icons
+      kdePackages.qtsvg # provides QT plugins for svg icons
     ];
 
     corePackages = [
@@ -100,7 +135,7 @@ let
       screengrab
 
       ### Default icon theme
-      libsForQt5.breeze-icons
+      kdePackages.breeze-icons
 
       ### Screen saver
       pkgs.xscreensaver
@@ -108,4 +143,4 @@ let
 
   };
 in
-makeScope libsForQt5.newScope packages
+makeScope kdePackages.newScope packages
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 693f6e5ff161..94c838340597 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -37928,7 +37928,7 @@ with pkgs;
   lxqt = recurseIntoAttrs (import ../desktops/lxqt {
     inherit pkgs;
     inherit (lib) makeScope;
-    inherit qt5 libsForQt5;
+    inherit kdePackages;
   });
 
   mate = recurseIntoAttrs (callPackage ../desktops/mate { });