1{
2 lib,
3 generateSplicesForMkScope,
4 makeScopeWithSplicing',
5 fetchurl,
6 qt6Packages,
7 cmark,
8 gpgme,
9 taglib,
10 wayland-protocols,
11 wayland,
12 zxing-cpp,
13}:
14let
15 allPackages =
16 self:
17 let
18 frameworks = import ./frameworks { inherit (self) callPackage; };
19 gear = import ./gear { inherit (self) callPackage; };
20 plasma = import ./plasma { inherit (self) callPackage; };
21
22 sets = [
23 "gear"
24 "frameworks"
25 "plasma"
26 ];
27
28 loadUrls = set: lib.importJSON (./generated/sources + "/${set}.json");
29 allUrls = lib.attrsets.mergeAttrsList (map loadUrls sets);
30
31 sources = lib.mapAttrs (
32 _: v:
33 (fetchurl {
34 inherit (v) url hash;
35 })
36 // {
37 inherit (v) version;
38 }
39 ) allUrls;
40
41 debugAlias = set: lib.dontRecurseIntoAttrs (lib.filterAttrs (k: v: !v.meta.broken) set);
42 in
43 (
44 qt6Packages
45 // frameworks
46 // gear
47 // plasma
48 // {
49 inherit sources;
50
51 # Aliases to simplify test-building entire package sets
52 frameworks = debugAlias frameworks;
53 gear = debugAlias gear;
54 plasma = debugAlias plasma;
55
56 mkKdeDerivation = self.callPackage (import ./lib/mk-kde-derivation.nix self) { };
57
58 # THIRD PARTY
59 inherit
60 cmark
61 gpgme
62 taglib
63 wayland
64 wayland-protocols
65 zxing-cpp
66 ;
67
68 # Alias to match metadata
69 kquickimageeditor = self.kquickimageedit;
70
71 selenium-webdriver-at-spi = null; # Used for integration tests that we don't run, stub
72
73 alpaka = self.callPackage ./misc/alpaka { };
74 kdiagram = self.callPackage ./misc/kdiagram { };
75 kdevelop-pg-qt = self.callPackage ./misc/kdevelop-pg-qt { };
76 kdsoap-ws-discovery-client = self.callPackage ./misc/kdsoap-ws-discovery-client { };
77 kirigami-addons = self.callPackage ./misc/kirigami-addons { };
78 kio-extras-kf5 = self.callPackage ./misc/kio-extras-kf5 { };
79 kio-fuse = self.callPackage ./misc/kio-fuse { };
80 klevernotes = self.callPackage ./misc/klevernotes { };
81 ktextaddons = self.callPackage ./misc/ktextaddons { };
82 kup = self.callPackage ./misc/kup { };
83 marknote = self.callPackage ./misc/marknote { };
84 mpvqt = self.callPackage ./misc/mpvqt { };
85 oxygen-icons = self.callPackage ./misc/oxygen-icons { };
86 phonon = self.callPackage ./misc/phonon { };
87 phonon-vlc = self.callPackage ./misc/phonon-vlc { };
88 plasma-wayland-protocols = self.callPackage ./misc/plasma-wayland-protocols { };
89 polkit-qt-1 = self.callPackage ./misc/polkit-qt-1 { };
90 pulseaudio-qt = self.callPackage ./misc/pulseaudio-qt { };
91
92 applet-window-buttons6 = self.callPackage ./third-party/applet-window-buttons6 { };
93 dynamic-workspaces = self.callPackage ./third-party/dynamic-workspaces { };
94 karousel = self.callPackage ./third-party/karousel { };
95 koi = self.callPackage ./third-party/koi { };
96 krohnkite = self.callPackage ./third-party/krohnkite { };
97 kzones = self.callPackage ./third-party/kzones { };
98 wallpaper-engine-plugin = self.callPackage ./third-party/wallpaper-engine-plugin { };
99 }
100 );
101in
102makeScopeWithSplicing' {
103 otherSplices = generateSplicesForMkScope "kdePackages";
104 f = allPackages;
105}