From c172f144f4059fceeedf31c05afa2a5f065389a8 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Thu, 22 Oct 2020 15:59:13 +0300 Subject: [PATCH 01/19] kdeApplications: Use latest qt515 by default Fixes #100707 - Since KDE's maintainers don't allow non official kde applications under the `kdeApplications` path, many packages that depend on KDE libraries and applications are defined in all-packages.nix. Overriding all kdeApplications to use qt514 while all other `libsForQt5.callPackage` in all-packages.nix are using qt515, causes collisions. --- pkgs/top-level/all-packages.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index b4b0d24ec720..d0d1072477e6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13326,7 +13326,7 @@ in let mkFrameworks = import ../development/libraries/kde-frameworks; attrs = { - libsForQt5 = libsForQt514; + inherit libsForQt5; inherit lib fetchurl; }; in @@ -21692,7 +21692,7 @@ in let mkApplications = import ../applications/kde; attrs = { - libsForQt5 = libsForQt514; + inherit libsForQt5; inherit lib fetchurl; inherit okteta; }; @@ -25947,7 +25947,7 @@ in let mkPlasma5 = import ../desktops/plasma-5; attrs = { - libsForQt5 = libsForQt514; + inherit libsForQt5; inherit lib fetchurl; gconf = gnome2.GConf; inherit gsettings-desktop-schemas; From d44460b52ef242ef510682ddfd3c227c6ed1b159 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 09:09:44 +0300 Subject: [PATCH 02/19] kpmcore: Use kio directly - from the scope of libsForQt5 used Make sure only compatible qt versions are used for it (#101369) - kdeFrameworks is always using `libsForQt5` where e.g `libsForQt514.kpmcore` would have otherwise used a kio compiled with qt515. --- pkgs/development/libraries/kpmcore/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/development/libraries/kpmcore/default.nix b/pkgs/development/libraries/kpmcore/default.nix index 7903fc746390..8cda52c4aecd 100644 --- a/pkgs/development/libraries/kpmcore/default.nix +++ b/pkgs/development/libraries/kpmcore/default.nix @@ -1,5 +1,5 @@ { stdenv, lib, fetchurl, extra-cmake-modules -, qtbase, kdeFrameworks +, qtbase, kio , libatasmart, parted , utillinux }: @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { libatasmart parted # we only need the library - kdeFrameworks.kio + kio utillinux # needs blkid (note that this is not provided by utillinux-compat) ]; From cb29abf3a99fa13cae065ba79e1562fc7ee18264 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 09:16:25 +0300 Subject: [PATCH 03/19] all-packages.nix: Inherit kdesu in a different scope Part of #101369: In order to avoid packages using the default `kdesu` always built with qt515, we put it in scope only for packages defined with a `libsForQt5`, to avoid incompatible qt versions used together in inputs of a package. --- pkgs/top-level/all-packages.nix | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index d0d1072477e6..ae65a3e235eb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15196,7 +15196,7 @@ in kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient modemmanager-qt networkmanager-qt plasma-framework prison qqc2-desktop-style solid sonnet syntax-highlighting syndication threadweaver kirigami2 kholidays kpurpose - kcontacts kquickcharts kdoctools kapidox; + kcontacts kquickcharts kdoctools kapidox kdesu; ### KDE PLASMA 5 @@ -21735,8 +21735,6 @@ in k4dirstat = libsForQt5.callPackage ../applications/misc/k4dirstat { }; - inherit (kdeFrameworks) kdesu; - kdevelop-pg-qt = libsForQt514.callPackage ../applications/editors/kdevelop5/kdevelop-pg-qt.nix { }; kdevelop-unwrapped = libsForQt514.callPackage ../applications/editors/kdevelop5/kdevelop.nix { From 62318eb816820e5778388d1cfd5ffb1e08dd6748 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 30 Oct 2020 20:26:30 +0200 Subject: [PATCH 04/19] kf5gpgmepp: Define in libsForQt5 Since it's a qt library, we can't guarantee every package using it as a dependency will need it compiled with the same qt version, we put it in all `libsForQt5*` scopes (#101369). --- pkgs/top-level/all-packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index ae65a3e235eb..80e69da5a621 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -13341,8 +13341,6 @@ in automake = automake111x; }; - kf5gpgmepp = libsForQt5.callPackage ../development/libraries/kf5gpgmepp { }; - krb5 = callPackage ../development/libraries/kerberos/krb5.nix { inherit (buildPackages.darwin) bootstrap_cmds; }; @@ -15230,6 +15228,8 @@ in kdsoap = callPackage ../development/libraries/kdsoap { }; + kf5gpgmepp = callPackage ../development/libraries/kf5gpgmepp { }; + kproperty = callPackage ../development/libraries/kproperty { }; kpeoplevcard = callPackage ../development/libraries/kpeoplevcard { }; From 2df527228f83d502a6a59d8d22200b1ef269cf41 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 30 Oct 2020 20:30:34 +0200 Subject: [PATCH 05/19] all-packages: Put all libsForQt5 near each other --- pkgs/top-level/all-packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 80e69da5a621..28ec0bc20d2d 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15136,8 +15136,6 @@ in inherit llvmPackages_5; }); - libsForQt512 = recurseIntoAttrs (lib.makeScope qt512.newScope mkLibsForQt5); - qt514 = recurseIntoAttrs (makeOverridable (import ../development/libraries/qt-5/5.14) { inherit newScope; @@ -15168,6 +15166,8 @@ in inherit llvmPackages_5; }); + libsForQt512 = recurseIntoAttrs (lib.makeScope qt512.newScope mkLibsForQt5); + libsForQt514 = recurseIntoAttrs (lib.makeScope qt514.newScope mkLibsForQt5); libsForQt515 = recurseIntoAttrs (lib.makeScope qt515.newScope mkLibsForQt5); From b5c6505e63d800d044923d7c8459cd085cd16a49 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 30 Oct 2020 20:32:19 +0200 Subject: [PATCH 06/19] treewide: Safer libsForQt5.callPackage Intro: Part of #101369: Every attribute from kdeApplications and kdeFrameworks can be built with a few different qt5 versions. It's hard to tell the difference between an application and a library and some applications rely on inputs from kdeApplications and libsForQt5 alike. Before this change, some applications that were defined with `libsForQt5.callPackage` used libraries from the kde* sets compiled with a specific qt5 version, Due to `inherit (kde*) ;` used in the widest scope, we had issues with packages that depended on packages defined by this `inherit`. This led to mismatched qt versions used in the same inputs, or the inputs of inputs etc. Hence, we added to all libsForQt5* sets, packages that will be used from the correct libsForQt5 set, in accordance to the `libsForQt5*.callPackage` used. All `inherit (kdeApplications) ` and similar inheritance was moved out of all-packages.nix to aliases.nix only for backwards compatibility. Now some KDE applications show up in the attribute sets `libsForQt5*` which didn't show up there previously. This is sort of misleading, as these are not necessary libraries, but they show up in the wider scope thanks to them in aliases.nix. Hence it's the best that can be done considering the circumstances and the urgency of the issue. --- pkgs/top-level/aliases.nix | 53 +++++++++++++ pkgs/top-level/all-packages.nix | 130 +++++++++++++------------------- 2 files changed, 105 insertions(+), 78 deletions(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eeb5519233ce..50aa36745ddc 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -750,4 +750,57 @@ mapAliases ({ ant-dracula-theme = throw "ant-dracula-theme is now dracula-theme, and theme name is Dracula instead of Ant-Dracula."; + /* If these are in the scope of all-packages.nix, they cause collisions + between mixed versions of qt. See: + https://github.com/NixOS/nixpkgs/pull/101369 */ + + inherit (kdeFrameworks) breeze-icons oxygen-icons5; + inherit (kdeApplications) + akonadi akregator ark + bomber bovo + dolphin dragon + elisa + ffmpegthumbs filelight + granatier gwenview + k3b + kaddressbook kalzium kapptemplate kapman kate katomic + kblackbox kblocks kbounce + kcachegrind kcalc kcharselect kcolorchooser + kdenlive kdf kdialog kdiamond + keditbookmarks + kfind kfloppy + kget kgpg + khelpcenter + kig kigo killbots kitinerary + kleopatra klettres klines + kmag kmail kmines kmix kmplot + knavalbattle knetwalk knights + kollision kolourpaint kompare konsole kontact korganizer + kpkpass + krdc kreversi krfb + kshisen ksquares ksystemlog + kteatime ktimer ktouch kturtle + kwalletmanager kwave + marble minuet + okular + picmi + spectacle + yakuake + ; + inherit (plasma5) + bluedevil breeze-gtk breeze-qt5 breeze-grub breeze-plymouth discover + kactivitymanagerd kde-cli-tools kde-gtk-config kdeplasma-addons kgamma5 + kinfocenter kmenuedit kscreen kscreenlocker ksshaskpass ksysguard + kwallet-pam kwayland-integration kwin kwrited milou oxygen plasma-browser-integration + plasma-desktop plasma-integration plasma-nm plasma-pa plasma-vault plasma-workspace + plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm + systemsettings user-manager xdg-desktop-portal-kde + ; + inherit (plasma5.thirdParty) + plasma-applet-caffeine-plus + kwin-dynamic-workspaces + kwin-tiling + krohnkite + ; + }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 28ec0bc20d2d..accfcd4e9ba3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15194,17 +15194,41 @@ in kwidgetsaddons kwindowsystem kxmlgui kxmlrpcclient modemmanager-qt networkmanager-qt plasma-framework prison qqc2-desktop-style solid sonnet syntax-highlighting syndication threadweaver kirigami2 kholidays kpurpose - kcontacts kquickcharts kdoctools kapidox kdesu; + kcontacts kquickcharts kdoctools kapidox kdesu kinit kded frameworkintegration + kdewebkit breeze-icons + ; ### KDE PLASMA 5 inherit (plasma5.override { libsForQt5 = self; }) - kdecoration khotkeys libkscreen libksysguard; + kdecoration khotkeys libkscreen libksysguard bluedevil + breeze-gtk breeze-qt5 breeze-grub breeze-plymouth discover kactivitymanagerd + kde-cli-tools kde-gtk-config kdeplasma-addons kgamma5 kinfocenter kmenuedit + kscreen kscreenlocker ksshaskpass ksysguard kwallet-pam kwayland-integration + kwin kwrited milou oxygen plasma-browser-integration plasma-desktop + plasma-integration plasma-nm plasma-pa plasma-vault plasma-workspace + plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm + systemsettings user-manager xdg-desktop-portal-kde + ; + + inherit ((plasma5.override { libsForQt5 = self; }).thirdParty) + plasma-applet-caffeine-plus kwin-dynamic-workspaces kwin-tiling krohnkite + ; ### KDE APPLICATIONS inherit (kdeApplications.override { libsForQt5 = self; }) - libkdcraw libkexiv2 libkipi libkomparediff2 libksane; + libkdcraw libkexiv2 libkipi libkomparediff2 libksane libkcddb akonadi-contacts + akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface + kldap akonadi akregator ark bomber bovo dolphin dragon elisa ffmpegthumbs filelight + granatier gwenview k3b kaddressbook kalzium kapptemplate kapman kate katomic + kblackbox kblocks kbounce kcachegrind kcalc kcharselect kcolorchooser + kdenlive kdf kdialog kdiamond keditbookmarks kfind kfloppy kget kgpg khelpcenter + kig kigo killbots kitinerary kleopatra klettres klines kmag kmail kmines kmix kmplot + knavalbattle knetwalk knights kollision kolourpaint kompare konsole kontact korganizer + kpkpass krdc kreversi krfb kshisen ksquares ksystemlog kteatime ktimer ktouch kturtle + kwalletmanager kwave marble minuet okular picmi spectacle yakuake + ; ### LIBRARIES @@ -18968,8 +18992,6 @@ in brise = callPackage ../data/misc/brise { }; - inherit (kdeFrameworks) breeze-icons; - cacert = callPackage ../data/misc/cacert { }; caladea = callPackage ../data/fonts/caladea {}; @@ -19135,7 +19157,9 @@ in fira-mono = callPackage ../data/fonts/fira-mono { }; - flat-remix-icon-theme = callPackage ../data/icons/flat-remix-icon-theme { }; + flat-remix-icon-theme = callPackage ../data/icons/flat-remix-icon-theme { + inherit (kdeFrameworks) breeze-icons; + }; font-awesome_4 = (callPackage ../data/fonts/font-awesome-5 { }).v4; font-awesome_5 = (callPackage ../data/fonts/font-awesome-5 { }).v5; @@ -19294,7 +19318,9 @@ in luculent = callPackage ../data/fonts/luculent { }; - luna-icons = callPackage ../data/icons/luna-icons { }; + luna-icons = callPackage ../data/icons/luna-icons { + inherit (kdeFrameworks) breeze-icons; + }; maia-icon-theme = callPackage ../data/icons/maia-icon-theme { }; @@ -19415,15 +19441,17 @@ in oxygenfonts = callPackage ../data/fonts/oxygenfonts { }; - inherit (kdeFrameworks) oxygen-icons5; - paper-gtk-theme = callPackage ../data/themes/paper-gtk { }; paper-icon-theme = callPackage ../data/icons/paper-icon-theme { }; - papirus-icon-theme = callPackage ../data/icons/papirus-icon-theme { }; + papirus-icon-theme = callPackage ../data/icons/papirus-icon-theme { + inherit (kdeFrameworks) breeze-icons; + }; - papirus-maia-icon-theme = callPackage ../data/icons/papirus-maia-icon-theme { }; + papirus-maia-icon-theme = callPackage ../data/icons/papirus-maia-icon-theme { + inherit (kdeFrameworks) breeze-icons; + }; papis = with python3Packages; toPythonApplication papis; @@ -19453,7 +19481,9 @@ in pop-gtk-theme = callPackage ../data/themes/pop-gtk { }; - pop-icon-theme = callPackage ../data/icons/pop-icon-theme { }; + pop-icon-theme = callPackage ../data/icons/pop-icon-theme { + inherit (kdeFrameworks) breeze-icons; + }; posix_man_pages = callPackage ../data/documentation/man-pages-posix { }; @@ -19733,7 +19763,9 @@ in yaru-theme = callPackage ../data/themes/yaru {}; - zafiro-icons = callPackage ../data/icons/zafiro-icons { }; + zafiro-icons = callPackage ../data/icons/zafiro-icons { + inherit (kdeFrameworks) breeze-icons; + }; zeal = libsForQt514.callPackage ../data/documentation/zeal { }; @@ -20114,9 +20146,12 @@ in calibre = calibre-py3; calligra = libsForQt514.callPackage ../applications/office/calligra { - inherit (kdeApplications) akonadi-calendar akonadi-contacts; openjpeg = openjpeg_1; - poppler = poppler_0_61; + poppler = poppler_0_61.override { + qt5Support = true; + # Must be using the same qt version as calligra itself. + qtbase = qt514.qtbase; + }; }; perkeep = callPackage ../applications/misc/perkeep { }; @@ -21699,38 +21734,6 @@ in in recurseIntoAttrs (makeOverridable mkApplications attrs); - inherit (kdeApplications) - akonadi akregator ark - bomber bovo - dolphin dragon - elisa - ffmpegthumbs filelight - granatier gwenview - k3b - kaddressbook kalzium kapptemplate kapman kate katomic - kblackbox kblocks kbounce - kcachegrind kcalc kcharselect kcolorchooser - kdeconnect-kde kdenlive kdf kdialog kdiamond - keditbookmarks - kfind kfloppy - kget kgpg - khelpcenter - kig kigo killbots kitinerary - kleopatra klettres klines - kmag kmail kmines kmix kmplot - knavalbattle knetwalk knights - kollision kolourpaint kompare konsole kontact korganizer - kpkpass - krdc kreversi krfb - kshisen ksquares ksystemlog - kteatime ktimer ktouch kturtle - kwalletmanager kwave - marble minuet - okular - picmi - spectacle - yakuake; - okteta = libsForQt5.callPackage ../applications/editors/okteta { }; k4dirstat = libsForQt5.callPackage ../applications/misc/k4dirstat { }; @@ -21787,10 +21790,7 @@ in kmplayer = libsForQt5.callPackage ../applications/video/kmplayer { }; - kmymoney = libsForQt5.callPackage ../applications/office/kmymoney { - inherit (kdeApplications) kidentitymanagement; - inherit (kdeFrameworks) kdewebkit; - }; + kmymoney = libsForQt5.callPackage ../applications/office/kmymoney { }; kodestudio = callPackage ../applications/editors/kodestudio { }; @@ -23867,9 +23867,7 @@ in tribler = callPackage ../applications/networking/p2p/tribler { }; - trojita = libsForQt514.callPackage ../applications/networking/mailreaders/trojita { - inherit (kdeApplications) akonadi-contacts; - }; + trojita = libsForQt514.callPackage ../applications/networking/mailreaders/trojita { }; tudu = callPackage ../applications/office/tudu { }; @@ -24686,8 +24684,6 @@ in zam-plugins = callPackage ../applications/audio/zam-plugins { }; zanshin = libsForQt514.callPackage ../applications/office/zanshin { - inherit (kdeApplications) akonadi-calendar akonadi-notes akonadi-search kidentitymanagement kontactinterface kldap; - inherit (kdeFrameworks) krunner kwallet kcalendarcore; boost = boost160; }; @@ -25029,9 +25025,6 @@ in dhewm3 = callPackage ../games/dhewm3 {}; digikam = libsForQt514.callPackage ../applications/graphics/digikam { - inherit (plasma5) oxygen; - inherit (kdeApplications) akonadi-contacts; - inherit (kdeFrameworks) kcalendarcore; opencv3 = opencv3WithoutCuda; }; @@ -25953,25 +25946,6 @@ in in recurseIntoAttrs (makeOverridable mkPlasma5 attrs); - inherit (kdeFrameworks) kded kinit frameworkintegration; - - inherit (plasma5) - bluedevil breeze-gtk breeze-qt5 breeze-grub breeze-plymouth discover - kactivitymanagerd kde-cli-tools kde-gtk-config kdeplasma-addons kgamma5 - kinfocenter kmenuedit kscreen kscreenlocker ksshaskpass ksysguard - kwallet-pam kwayland-integration kwin kwrited milou oxygen plasma-browser-integration - plasma-desktop plasma-integration plasma-nm plasma-pa plasma-vault plasma-workspace - plasma-workspace-wallpapers polkit-kde-agent powerdevil sddm-kcm - systemsettings user-manager xdg-desktop-portal-kde; - - inherit (plasma5.thirdParty) - plasma-applet-caffeine-plus - kwin-dynamic-workspaces - kwin-tiling - krohnkite; - - ### SCIENCE - ### SCIENCE/CHEMISTY avogadro = callPackage ../applications/science/chemistry/avogadro { From ea9de43bf41fac821b530d5342ffea4031de9804 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 30 Oct 2020 20:34:14 +0200 Subject: [PATCH 07/19] tellico: Use libkcddb from libsForQt5's scope. Part of (#101369): kdeApplications points to a set of derivations built with a specific qt version, where libkcddb is available in libsForQt5's callPackage scope, thanks to the parent commit of this commit. --- pkgs/applications/misc/tellico/default.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/misc/tellico/default.nix b/pkgs/applications/misc/tellico/default.nix index 6425be004186..fa725ad9c96c 100644 --- a/pkgs/applications/misc/tellico/default.nix +++ b/pkgs/applications/misc/tellico/default.nix @@ -1,7 +1,7 @@ { lib , fetchurl , mkDerivation -, kdeApplications +, libkcddb , kinit , kdelibs4support , solid @@ -46,7 +46,7 @@ mkDerivation rec { exempi extra-cmake-modules karchive - kdeApplications.libkcddb + libkcddb kdelibs4support kfilemetadata khtml From cf9f00b56d445b3443dc0d779f97e40dde0bb18d Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 09:43:27 +0300 Subject: [PATCH 08/19] maia-icon-theme: Don't import kdeApplications Use libsForQt5.callPackage (#101369). --- pkgs/data/icons/maia-icon-theme/default.nix | 14 +++++++++++--- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 12 insertions(+), 4 deletions(-) diff --git a/pkgs/data/icons/maia-icon-theme/default.nix b/pkgs/data/icons/maia-icon-theme/default.nix index ee539981fbca..2a6dbc512acc 100644 --- a/pkgs/data/icons/maia-icon-theme/default.nix +++ b/pkgs/data/icons/maia-icon-theme/default.nix @@ -1,4 +1,12 @@ -{ stdenv, fetchFromGitLab, cmake, extra-cmake-modules, gtk3, kdeFrameworks, hicolor-icon-theme }: +{ stdenv +, fetchFromGitLab +, cmake +, extra-cmake-modules +, gtk3 +, plasma-framework +, kwindowsystem +, hicolor-icon-theme +}: stdenv.mkDerivation { pname = "maia-icon-theme"; @@ -17,8 +25,8 @@ stdenv.mkDerivation { cmake extra-cmake-modules gtk3 - kdeFrameworks.plasma-framework - kdeFrameworks.kwindowsystem + plasma-framework + kwindowsystem ]; propagatedBuildInputs = [ diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index accfcd4e9ba3..bd0e43862eef 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -19322,7 +19322,7 @@ in inherit (kdeFrameworks) breeze-icons; }; - maia-icon-theme = callPackage ../data/icons/maia-icon-theme { }; + maia-icon-theme = libsForQt5.callPackage ../data/icons/maia-icon-theme { }; mailcap = callPackage ../data/misc/mailcap { }; From 2508fa525226f7b4a91fba44b47fade7a69a2c27 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 10:44:42 +0300 Subject: [PATCH 09/19] lxqt.compton-conf: Use compatible qt5 versions Slightly related to #101369, a follow up to: https://github.com/NixOS/nixpkgs/commit/4fd58aa4e18c06ead397ad45d68b76d0930c6cbb --- pkgs/desktops/lxqt/default.nix | 2 +- pkgs/top-level/all-packages.nix | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/desktops/lxqt/default.nix b/pkgs/desktops/lxqt/default.nix index 90e466f7471e..1292da151acf 100644 --- a/pkgs/desktops/lxqt/default.nix +++ b/pkgs/desktops/lxqt/default.nix @@ -43,7 +43,7 @@ let ### OPTIONAL qterminal = callPackage ./qterminal {}; - compton-conf = pkgs.qt5.callPackage ./compton-conf {}; + compton-conf = qt5.callPackage ./compton-conf {}; obconf-qt = callPackage ./obconf-qt {}; lximage-qt = callPackage ./lximage-qt {}; qps = callPackage ./qps {}; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bd0e43862eef..22f23571a3b5 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25900,6 +25900,7 @@ in lumina = recurseIntoAttrs (callPackage ../desktops/lumina { }); lxqt = recurseIntoAttrs (import ../desktops/lxqt { + # TODO: Update these to qt515 at some point qt5 = qt514; libsForQt5 = libsForQt514; inherit pkgs; From c8a7e4da0aac942485aad983a806840660fc9660 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 14:49:45 +0300 Subject: [PATCH 10/19] firefox/wrapper: Use plasma-browser-integration correctly Don't rely on the attribute from the aliases.nix, as ofborg checks that in PRs. --- pkgs/applications/networking/browsers/firefox/wrapper.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix index 9c8625495b20..cc6cc72e27be 100644 --- a/pkgs/applications/networking/browsers/firefox/wrapper.nix +++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix @@ -4,7 +4,7 @@ , flashplayer, hal-flash , ffmpeg, xorg, alsaLib, libpulseaudio, libcanberra-gtk2, libglvnd , gnome3/*.gnome-shell*/ -, browserpass, chrome-gnome-shell, uget-integrator, plasma-browser-integration, bukubrow +, browserpass, chrome-gnome-shell, uget-integrator, plasma5, bukubrow , tridactyl-native , fx_cast_bridge , udev @@ -65,7 +65,7 @@ let ++ lib.optional (cfg.enableTridactylNative or false) tridactyl-native ++ lib.optional (cfg.enableGnomeExtensions or false) chrome-gnome-shell ++ lib.optional (cfg.enableUgetIntegrator or false) uget-integrator - ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma-browser-integration + ++ lib.optional (cfg.enablePlasmaBrowserIntegration or false) plasma5.plasma-browser-integration ++ lib.optional (cfg.enableFXCastBridge or false) fx_cast_bridge ++ extraNativeMessagingHosts ); From 3ce9e203c3d0e4f38d14a894d1313d3cb62d998b Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 17:20:42 +0300 Subject: [PATCH 11/19] drumstick: Define in libsForQt5 scope. Since it is used in minuet and kde's metronome and kmetronome, it's safer this way to make sure the same qt version is used there. --- pkgs/development/libraries/drumstick/default.nix | 4 ++-- pkgs/top-level/all-packages.nix | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/development/libraries/drumstick/default.nix b/pkgs/development/libraries/drumstick/default.nix index 0d3e2913ce8e..7cd826b1fe39 100644 --- a/pkgs/development/libraries/drumstick/default.nix +++ b/pkgs/development/libraries/drumstick/default.nix @@ -1,5 +1,5 @@ { stdenv, fetchurl, alsaLib, cmake, docbook_xsl, docbook_xml_dtd_45, doxygen -, fluidsynth, pkgconfig, qt5 +, fluidsynth, pkgconfig, qtbase, qtsvg }: stdenv.mkDerivation rec { @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake pkgconfig docbook_xsl docbook_xml_dtd_45 docbook_xml_dtd_45 ]; buildInputs = [ - alsaLib doxygen fluidsynth qt5.qtbase qt5.qtsvg + alsaLib doxygen fluidsynth qtbase qtsvg ]; meta = with stdenv.lib; { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 22f23571a3b5..bb74671de32a 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8751,8 +8751,6 @@ in dotty = callPackage ../development/compilers/scala/dotty.nix { jre = jre8;}; - drumstick = callPackage ../development/libraries/drumstick { }; - ecl = callPackage ../development/compilers/ecl { }; ecl_16_1_2 = callPackage ../development/compilers/ecl/16.1.2.nix { }; @@ -15240,6 +15238,8 @@ in dxflib = callPackage ../development/libraries/dxflib {}; + drumstick = callPackage ../development/libraries/drumstick { }; + fcitx-qt5 = callPackage ../tools/inputmethods/fcitx/fcitx-qt5.nix { }; qgpgme = callPackage ../development/libraries/gpgme { }; From 9f9bdaba97221afb86dbaf3f7288378a37455156 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 17:26:47 +0300 Subject: [PATCH 12/19] packagekit-qt: Move to libsForQt5 scope. Since it's a dependency of kde's "discover", it's best to define it there to avoid a possible mixed qt5 versions usage (#101369). --- pkgs/top-level/all-packages.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index bb74671de32a..254258dbf131 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6216,8 +6216,6 @@ in packagekit = callPackage ../tools/package-management/packagekit { }; - packagekit-qt = libsForQt5.callPackage ../tools/package-management/packagekit/qt.nix { }; - packetdrill = callPackage ../tools/networking/packetdrill { }; pacman = callPackage ../tools/package-management/pacman { }; @@ -15274,6 +15272,8 @@ in libopenshot = callPackage ../applications/video/openshot-qt/libopenshot.nix { }; + packagekit-qt = callPackage ../tools/package-management/packagekit/qt.nix { }; + libopenshot-audio = callPackage ../applications/video/openshot-qt/libopenshot-audio.nix { }; libqglviewer = callPackage ../development/libraries/libqglviewer { From e681f442c98ac653ffcc50f014b66b686c2e9470 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 23 Oct 2020 19:44:17 +0300 Subject: [PATCH 13/19] nixos/plasma: Fix attribute path to kinit --- nixos/modules/services/x11/desktop-managers/plasma5.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/nixos/modules/services/x11/desktop-managers/plasma5.nix b/nixos/modules/services/x11/desktop-managers/plasma5.nix index ad0385ddeed2..b4f45a24efd3 100644 --- a/nixos/modules/services/x11/desktop-managers/plasma5.nix +++ b/nixos/modules/services/x11/desktop-managers/plasma5.nix @@ -200,7 +200,7 @@ in security.wrappers = { kcheckpass.source = "${lib.getBin plasma5.kscreenlocker}/libexec/kcheckpass"; - start_kdeinit.source = "${lib.getBin pkgs.kinit}/libexec/kf5/start_kdeinit"; + start_kdeinit.source = "${lib.getBin pkgs.kdeFrameworks.kinit}/libexec/kf5/start_kdeinit"; kwin_wayland = { source = "${lib.getBin plasma5.kwin}/bin/kwin_wayland"; capabilities = "cap_sys_nice+ep"; From 368302af0d616699ffd1a6cb032daa506d613c91 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 25 Oct 2020 22:00:19 +0200 Subject: [PATCH 14/19] Revert "plasma5: mark broken with Qt >= 5.15" This reverts commit 575b3a053aacd5630b44cc73c4e5505baebfe6d5. We don't know why ttuegel did it, and we suspect it was due to packages breaking due to mixed qt5 versions used together, and not plasma itself with qt5.15 - (#101369). --- pkgs/desktops/plasma-5/default.nix | 2 -- 1 file changed, 2 deletions(-) diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix index 8ab4b60156c6..265c22b55655 100644 --- a/pkgs/desktops/plasma-5/default.nix +++ b/pkgs/desktops/plasma-5/default.nix @@ -36,7 +36,6 @@ let }; mkDerivation = libsForQt5.callPackage ({ mkDerivation }: mkDerivation) {}; - qtbase = libsForQt5.callPackage ({ qtbase }: qtbase) {}; packages = self: with self; let @@ -83,7 +82,6 @@ let setupHook = args.setupHook or defaultSetupHook; meta = { - broken = lib.versionAtLeast qtbase.version "5.15"; license = with lib.licenses; [ lgpl21Plus lgpl3Plus bsd2 mit gpl2Plus gpl3Plus fdl12 ]; From a728279d7050bad8e45f5ff64b7e660a74cda3cd Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 26 Oct 2020 22:41:35 +0200 Subject: [PATCH 15/19] sddm: Move to libsForQt5* Part of #101369: Inherit it in aliases.nix, for backwards compatibility. --- pkgs/top-level/aliases.nix | 3 +++ pkgs/top-level/all-packages.nix | 5 +++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 50aa36745ddc..2655ecbfe305 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -802,5 +802,8 @@ mapAliases ({ kwin-tiling krohnkite ; + inherit (libsForQt5) + sddm + ; }) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 254258dbf131..4ac1911cbab9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -15344,6 +15344,9 @@ in qtwebkit-plugins = callPackage ../development/libraries/qtwebkit-plugins { }; + # Not a library, but we do want it to be built for every qt version there + # is, to allow users to choose the right build if needed. + sddm = callPackage ../applications/display-managers/sddm { }; }; qtEnv = qt5.env; @@ -23485,8 +23488,6 @@ in robustirc-bridge = callPackage ../servers/irc/robustirc-bridge { }; - sddm = libsForQt514.callPackage ../applications/display-managers/sddm { }; - skrooge = libsForQt514.callPackage ../applications/office/skrooge {}; smartgithg = callPackage ../applications/version-management/smartgithg { From 77e081bb2b82a412b901abffb347ca4eb2e75eec Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 26 Oct 2020 22:48:27 +0200 Subject: [PATCH 16/19] nixos/sddm: Use libsForQt514.sddm if needed (for lxqt) Currently lxqt is a desktop environment that's compiled against qt514. To avoid possible issues (#101369), we (hopefully) use the same qt version as the desktop environment at hand. LXQT should move to qt515, and for the long term the correct qt version should be inherited by the sddm module. --- nixos/modules/services/x11/display-managers/sddm.nix | 7 ++++++- pkgs/top-level/all-packages.nix | 3 ++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/nixos/modules/services/x11/display-managers/sddm.nix b/nixos/modules/services/x11/display-managers/sddm.nix index 4040b903426b..a39bb55b38c4 100644 --- a/nixos/modules/services/x11/display-managers/sddm.nix +++ b/nixos/modules/services/x11/display-managers/sddm.nix @@ -9,7 +9,12 @@ let cfg = dmcfg.sddm; xEnv = config.systemd.services.display-manager.environment; - inherit (pkgs) sddm; + sddm = if config.services.xserver.desktopManager.lxqt.enable then + # TODO: Move lxqt to libsForQt515 + pkgs.libsForQt514.sddm + else + pkgs.libsForQt5.sddm + ; xserverWrapper = pkgs.writeScript "xserver-wrapper" '' #!/bin/sh diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 4ac1911cbab9..93a0f316b1b7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -25901,7 +25901,8 @@ in lumina = recurseIntoAttrs (callPackage ../desktops/lumina { }); lxqt = recurseIntoAttrs (import ../desktops/lxqt { - # TODO: Update these to qt515 at some point + # TODO: Update these to qt515 at some point. When doing it, please remove + # the choice of libsForQt5*.sddm in sddm's module. qt5 = qt514; libsForQt5 = libsForQt514; inherit pkgs; From 09fd4270d7cc8f1ea408d40a37e79f57dcb2eb3a Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 30 Oct 2020 20:39:19 +0200 Subject: [PATCH 17/19] kile: some slight improvements/fixes Use `buildInputs` instead of `propagatedBuildInputs` - should reduce closure size a bit. Don't wrap executables twice. Move `kdoctools` to native. Use libsForQt5 - default version (works). Co-authored-by: Frederik Rietdijk --- pkgs/applications/editors/kile/default.nix | 13 ++++++++++--- pkgs/top-level/all-packages.nix | 2 +- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/pkgs/applications/editors/kile/default.nix b/pkgs/applications/editors/kile/default.nix index 1f1e43d196ce..6819c4337f4c 100644 --- a/pkgs/applications/editors/kile/default.nix +++ b/pkgs/applications/editors/kile/default.nix @@ -29,14 +29,17 @@ mkDerivation rec { sha256 = "BEmSEv/LJPs6aCkUmnyuTGrV15WYXwgIANbfcviMXfA="; }; - nativeBuildInputs = [ extra-cmake-modules wrapGAppsHook ]; + nativeBuildInputs = [ + extra-cmake-modules + wrapGAppsHook + kdoctools + ]; - propagatedBuildInputs = [ + buildInputs = [ kconfig kcrash kdbusaddons kdelibs4support - kdoctools kguiaddons kiconthemes kinit @@ -48,6 +51,10 @@ mkDerivation rec { poppler qtscript ]; + dontWrapGApps = true; + preFixup = '' + makeWrapperArgs+=("''${gappsWrapperArgs[@]}") + ''; propagatedUserEnvPkgs = [ konsole ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 93a0f316b1b7..554847673eb9 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -21778,7 +21778,7 @@ in kid3 = libsForQt5.callPackage ../applications/audio/kid3 { }; - kile = libsForQt514.callPackage ../applications/editors/kile { }; + kile = libsForQt5.callPackage ../applications/editors/kile { }; kino = callPackage ../applications/video/kino { inherit (gnome2) libglade; From 35078d9918d3c628fa136a2845b8561535ba09eb Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Fri, 30 Oct 2020 21:03:39 +0200 Subject: [PATCH 18/19] kdiagram: 2.6.0 -> 2.7.0 Use fetchFromGitLab as it seems to be unavailable in the previous url. --- pkgs/development/libraries/kdiagram/default.nix | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/pkgs/development/libraries/kdiagram/default.nix b/pkgs/development/libraries/kdiagram/default.nix index 50f3e6a6c025..b9f16d3cfaef 100644 --- a/pkgs/development/libraries/kdiagram/default.nix +++ b/pkgs/development/libraries/kdiagram/default.nix @@ -1,14 +1,18 @@ { - mkDerivation, fetchurl, lib, + mkDerivation, fetchFromGitLab, lib, extra-cmake-modules, qttools, qtbase, qtsvg, }: -mkDerivation { - name = "kdiagram-2.6.0"; - src = fetchurl { - url = "https://download.kde.org/stable/kdiagram/2.6.0/src/kdiagram-2.6.0.tar.xz"; - sha256 = "10hqk12wwgbiq4q5145s8v7v96j621ckq1yil9s4pihmgsnqsy02"; +mkDerivation rec { + pname = "kdiagram"; + version = "2.7.0"; + src = fetchFromGitLab { + domain = "invent.kde.org"; + owner = "graphics"; + repo = pname; + rev = "v${version}"; + sha256 = "NSBNHPr8JzBn3y3ivhL0RjiXjDuPwZsTTOeI22pq3vc="; }; nativeBuildInputs = [ extra-cmake-modules qttools ]; propagatedBuildInputs = [ qtbase qtsvg ]; From 2aaf9630191349b9d634323d9e4a46adf0609b9f Mon Sep 17 00:00:00 2001 From: rnhmjoj Date: Thu, 29 Oct 2020 15:54:52 +0100 Subject: [PATCH 19/19] cshatag: init at 2019-12-03 --- pkgs/os-specific/linux/cshatag/default.nix | 32 ++++++++++++++++++++++ pkgs/os-specific/linux/cshatag/deps.nix | 21 ++++++++++++++ pkgs/top-level/all-packages.nix | 2 ++ 3 files changed, 55 insertions(+) create mode 100644 pkgs/os-specific/linux/cshatag/default.nix create mode 100644 pkgs/os-specific/linux/cshatag/deps.nix diff --git a/pkgs/os-specific/linux/cshatag/default.nix b/pkgs/os-specific/linux/cshatag/default.nix new file mode 100644 index 000000000000..bc1b7f7ecf54 --- /dev/null +++ b/pkgs/os-specific/linux/cshatag/default.nix @@ -0,0 +1,32 @@ +{ lib, buildGoPackage, fetchFromGitHub }: + +buildGoPackage rec { + pname = "cshatag"; + version = "2019-12-03"; + + goPackagePath = "github.com/rfjakob/cshatag"; + goDeps = ./deps.nix; + + src = fetchFromGitHub { + owner = "rfjakob"; + repo = pname; + rev = "b169f0a9dd35a7381774eb176d4badf64d403560"; + sha256 = "16kam3w75avh8khkk6jfdnxwggz2pw6ccv6v7d064j0fbb9y8x0v"; + }; + + makeFlags = [ "PREFIX=$(out)" "GITVERSION=${version}" ]; + + postInstall = '' + # Install man page + cd go/src/${goPackagePath} + make install $makeFlags + ''; + + meta = with lib; { + description = "A tool to detect silent data corruption"; + homepage = "https://github.com/rfjakob/cshatag"; + license = licenses.mit; + platforms = platforms.linux; + }; + +} diff --git a/pkgs/os-specific/linux/cshatag/deps.nix b/pkgs/os-specific/linux/cshatag/deps.nix new file mode 100644 index 000000000000..6daad9856782 --- /dev/null +++ b/pkgs/os-specific/linux/cshatag/deps.nix @@ -0,0 +1,21 @@ +# This file was generated by https://github.com/kamilchm/go2nix v1.3.0 +[ + { + goPackagePath = "github.com/pkg/xattr"; + fetch = { + type = "git"; + url = "https://github.com/pkg/xattr"; + rev = "d304131d5e58ca76d8b31ceefbb0c85c7b2d2a36"; + sha256 = "0bxskiai283zfra13z5f7q7f77zz2cgswaj6l6jr2nwnc3l5m80i"; + }; + } + { + goPackagePath = "golang.org/x/sys"; + fetch = { + type = "git"; + url = "https://go.googlesource.com/sys"; + rev = "201ba4db2418b54b698efb4d8082dcb504617cdb"; + sha256 = "1cqaiwp19kl38g4d6brfhi32822rhnh2q8x1j0i6yg7a8dzfvbz6"; + }; + } +] diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2711b47b0895..ce76eb1585ba 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17507,6 +17507,8 @@ in crda = callPackage ../os-specific/linux/crda { }; + cshatag = callPackage ../os-specific/linux/cshatag { }; + # Darwin package set # # Even though this is a set of packages not single package, use `callPackage`