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