1/*
2 # New packages
3
4 READ THIS FIRST
5
6 This module is for official packages in KDE Frameworks 5. All available packages
7 are listed in `./srcs.nix`, although a few are not yet packaged in Nixpkgs (see
8 below).
9
10 IF YOUR PACKAGE IS NOT LISTED IN `./srcs.nix`, IT DOES NOT GO HERE.
11
12 Many of the packages released upstream are not yet built in Nixpkgs due to lack
13 of demand. To add a Nixpkgs build for an upstream package, copy one of the
14 existing packages here and modify it as necessary.
15
16 # Updates
17
18 1. Update the URL in `./fetch.sh`.
19 2. Run `./maintainers/scripts/fetch-kde-qt.sh pkgs/development/libraries/kde-frameworks`
20 from the top of the Nixpkgs tree.
21 3. Use `nox-review wip` to check that everything builds.
22 4. Commit the changes and open a pull request.
23*/
24
25{
26 config,
27 libsForQt5,
28 lib,
29 fetchurl,
30}:
31
32let
33 maintainers = with lib.maintainers; [
34 ttuegel
35 nyanloutre
36 ];
37 license = with lib.licenses; [
38 lgpl21Plus
39 lgpl3Plus
40 bsd2
41 mit
42 gpl2Plus
43 gpl3Plus
44 fdl12Plus
45 ];
46
47 srcs = import ./srcs.nix {
48 inherit fetchurl;
49 mirror = "mirror://kde";
50 };
51
52 mkDerivation = libsForQt5.callPackage (
53 {
54 stdenv,
55 mkDerivation ? stdenv.mkDerivation,
56 }:
57 mkDerivation
58 ) { };
59
60 packages =
61 self:
62 with self;
63 # SUPPORT
64 let
65
66 propagate =
67 out:
68 let
69 setupHook =
70 { writeScript }:
71 writeScript "setup-hook" ''
72 if [ "''${hookName:-}" != postHook ]; then
73 postHooks+=("source @dev@/nix-support/setup-hook")
74 else
75 # Propagate $dev so that this setup hook is propagated
76 # But only if there is a separate $dev output
77 if [ "''${outputDev:?}" != out ]; then
78 appendToVar propagatedBuildInputs "@dev@"
79 fi
80 fi
81 '';
82 in
83 callPackage setupHook { };
84
85 propagateBin = propagate "bin";
86
87 callPackage = self.newScope {
88
89 inherit propagate propagateBin;
90
91 mkDerivation =
92 args:
93 let
94
95 inherit (args) pname;
96 inherit (srcs.${pname}) src version;
97
98 outputs =
99 args.outputs or [
100 "bin"
101 "dev"
102 "out"
103 ];
104 hasSeparateDev = lib.elem "dev" outputs;
105
106 defaultSetupHook = if hasSeparateDev then propagateBin else null;
107 setupHook = args.setupHook or defaultSetupHook;
108
109 meta =
110 let
111 meta = args.meta or { };
112 in
113 meta
114 // {
115 homepage = meta.homepage or "https://kde.org";
116 license = meta.license or license;
117 maintainers = (meta.maintainers or [ ]) ++ maintainers;
118 platforms = meta.platforms or lib.platforms.all;
119 };
120
121 in
122 mkDerivation (
123 args
124 // {
125 inherit
126 pname
127 meta
128 outputs
129 setupHook
130 src
131 version
132 ;
133 }
134 );
135
136 };
137
138 mkThrow =
139 name: throw "libsForQt5.${name} has been removed, as KDE Frameworks 5 has reached end of life.";
140 in
141 (
142 {
143 extra-cmake-modules = callPackage ./extra-cmake-modules { };
144
145 # TIER 1
146 attica = callPackage ./attica.nix { };
147 breeze-icons = callPackage ./breeze-icons.nix { };
148 karchive = callPackage ./karchive.nix { };
149 kcalendarcore = callPackage ./kcalendarcore.nix { };
150 kcodecs = callPackage ./kcodecs.nix { };
151 kconfig = callPackage ./kconfig.nix { };
152 kcoreaddons = callPackage ./kcoreaddons.nix { };
153 kdbusaddons = callPackage ./kdbusaddons.nix { };
154 kdnssd = callPackage ./kdnssd.nix { };
155 kguiaddons = callPackage ./kguiaddons.nix { };
156 ki18n = callPackage ./ki18n.nix { };
157 kidletime = callPackage ./kidletime.nix { };
158 kirigami2 = callPackage ./kirigami2.nix { };
159 kitemmodels = callPackage ./kitemmodels.nix { };
160 kitemviews = callPackage ./kitemviews.nix { };
161 kplotting = callPackage ./kplotting.nix { };
162 kwayland = callPackage ./kwayland.nix { };
163 kwidgetsaddons = callPackage ./kwidgetsaddons.nix { };
164 kwindowsystem = callPackage ./kwindowsystem { };
165 solid = callPackage ./solid { };
166 sonnet = callPackage ./sonnet.nix { };
167 syntax-highlighting = callPackage ./syntax-highlighting.nix { };
168
169 # TIER 2
170 kactivities = callPackage ./kactivities.nix { };
171 kauth = callPackage ./kauth { };
172 kcompletion = callPackage ./kcompletion.nix { };
173 kcrash = callPackage ./kcrash.nix { };
174 kdoctools = callPackage ./kdoctools { };
175 kjobwidgets = callPackage ./kjobwidgets.nix { };
176 knotifications = callPackage ./knotifications.nix { };
177 kpackage = callPackage ./kpackage { };
178 kunitconversion = callPackage ./kunitconversion.nix { };
179 syndication = callPackage ./syndication.nix { };
180
181 # TIER 3
182 kactivities-stats = callPackage ./kactivities-stats.nix { };
183 kbookmarks = callPackage ./kbookmarks.nix { };
184 kcmutils = callPackage ./kcmutils.nix { };
185 kconfigwidgets = callPackage ./kconfigwidgets.nix { };
186 kdeclarative = callPackage ./kdeclarative.nix { };
187 kded = callPackage ./kded.nix { };
188 kemoticons = callPackage ./kemoticons.nix { };
189 kglobalaccel = callPackage ./kglobalaccel.nix { };
190 kiconthemes = callPackage ./kiconthemes { };
191 kinit = callPackage ./kinit { };
192 kio = callPackage ./kio { };
193 knewstuff = callPackage ./knewstuff { };
194 knotifyconfig = callPackage ./knotifyconfig.nix { };
195 kparts = callPackage ./kparts.nix { };
196 kservice = callPackage ./kservice { };
197 ktextwidgets = callPackage ./ktextwidgets.nix { };
198 kwallet = callPackage ./kwallet.nix { };
199 kxmlgui = callPackage ./kxmlgui.nix { };
200 plasma-framework = callPackage ./plasma-framework.nix { };
201
202 # TIER 4
203 frameworkintegration = callPackage ./frameworkintegration.nix { };
204
205 # PORTING AIDS
206 kdelibs4support = callPackage ./kdelibs4support { };
207 kdesignerplugin = callPackage ./kdesignerplugin.nix { };
208 }
209 // lib.optionalAttrs config.allowAliases {
210 baloo = mkThrow "baloo";
211 bluez-qt = mkThrow "bluez-qt";
212 kapidox = mkThrow "kapidox";
213 kcontacts = mkThrow "kcontacts";
214 kdav = mkThrow "kdav";
215 kdesu = mkThrow "kdesu";
216 kfilemetadata = mkThrow "kfilemetadata";
217 kholidays = mkThrow "kholidays";
218 khtml = mkThrow "kthml";
219 kimageformats = mkThrow "kimageformats";
220 kjs = mkThrow "kjs";
221 kjsembed = mkThrow "kjsembed";
222 kmediaplayer = mkThrow "kmediaplayer";
223 kpeople = mkThrow "kpeople";
224 kpty = mkThrow "kpty";
225 kpurpose = mkThrow "kpurpose";
226 kquickcharts = mkThrow "kquickcharts";
227 kross = mkThrow "kross";
228 krunner = mkThrow "krunner";
229 ktexteditor = mkThrow "ktexteditor";
230 kxmlrpcclient = mkThrow "kxmlrpcclient";
231 modemmanager-qt = mkThrow "modemmanager-qt";
232 networkmanager-qt = mkThrow "networkmanager-qt";
233 oxygen-icons = mkThrow "oxygen-icons";
234 oxygen-icons5 = mkThrow "oxygen-icons";
235 prison = mkThrow "prison";
236 qqc2-desktop-style = mkThrow "qqc2-desktop-style";
237 threadweaver = mkThrow "threadweaver";
238 }
239 );
240
241in
242lib.makeScope libsForQt5.newScope packages