Clone of https://github.com/NixOS/nixpkgs.git (to stress-test knotserver)
1{
2 config,
3 lib,
4 newScope,
5 kodi,
6 libretro,
7}:
8
9let
10 inherit (lib)
11 catAttrs
12 concatLists
13 filter
14 optionalAttrs
15 unique
16 ;
17
18 inherit (libretro)
19 fuse
20 genesis-plus-gx
21 gw
22 mgba
23 nestopia
24 snes9x
25 twenty-fortyeight
26 ;
27
28 callPackage = newScope self;
29
30 # Check whether a derivation provides a Kodi addon.
31 hasKodiAddon = drv: drv ? kodiAddonFor && drv.kodiAddonFor == kodi;
32
33 # Get list of required Kodi addons given a list of derivations.
34 requiredKodiAddons =
35 drvs:
36 let
37 modules = filter hasKodiAddon drvs;
38 in
39 unique (modules ++ concatLists (catAttrs "requiredKodiAddons" modules));
40
41 self = {
42 addonDir = "/share/kodi/addons";
43
44 rel = kodi.kodiReleaseName;
45
46 inherit
47 callPackage
48 kodi
49 hasKodiAddon
50 requiredKodiAddons
51 ;
52
53 # Convert derivation to a kodi module. Stolen from ../../../top-level/python-packages.nix
54 toKodiAddon =
55 drv:
56 drv.overrideAttrs (oldAttrs: {
57 # Use passthru in order to prevent rebuilds when possible.
58 passthru = (oldAttrs.passthru or { }) // {
59 kodiAddonFor = kodi;
60 requiredKodiAddons = requiredKodiAddons drv.propagatedBuildInputs;
61 };
62 });
63
64 # package update scripts
65
66 addonUpdateScript = callPackage ../applications/video/kodi/addons/addon-update-script { };
67
68 # package builders
69
70 buildKodiAddon = callPackage ../applications/video/kodi/build-kodi-addon.nix { };
71
72 buildKodiBinaryAddon = callPackage ../applications/video/kodi/build-kodi-binary-addon.nix { };
73
74 # regular packages
75
76 kodi-platform = callPackage ../applications/video/kodi/addons/kodi-platform { };
77
78 # addon packages
79
80 a4ksubtitles = callPackage ../applications/video/kodi/addons/a4ksubtitles { };
81
82 arteplussept = callPackage ../applications/video/kodi/addons/arteplussept { };
83
84 bluetooth-manager = callPackage ../applications/video/kodi/addons/bluetooth-manager { };
85
86 controller-topology-project =
87 callPackage ../applications/video/kodi/addons/controller-topology-project
88 { };
89
90 formula1 = callPackage ../applications/video/kodi/addons/formula1 { };
91
92 iagl = callPackage ../applications/video/kodi/addons/iagl { };
93
94 invidious = callPackage ../applications/video/kodi/addons/invidious { };
95
96 libretro = callPackage ../applications/video/kodi/addons/libretro { };
97
98 libretro-2048 = callPackage ../applications/video/kodi/addons/libretro-2048 {
99 inherit twenty-fortyeight;
100 };
101
102 libretro-fuse = callPackage ../applications/video/kodi/addons/libretro-fuse { inherit fuse; };
103
104 libretro-genplus = callPackage ../applications/video/kodi/addons/libretro-genplus {
105 inherit genesis-plus-gx;
106 };
107
108 libretro-gw = callPackage ../applications/video/kodi/addons/libretro-gw { inherit gw; };
109
110 libretro-mgba = callPackage ../applications/video/kodi/addons/libretro-mgba { inherit mgba; };
111
112 libretro-nestopia = callPackage ../applications/video/kodi/addons/libretro-nestopia {
113 inherit nestopia;
114 };
115
116 libretro-snes9x = callPackage ../applications/video/kodi/addons/libretro-snes9x { inherit snes9x; };
117
118 jellycon = callPackage ../applications/video/kodi/addons/jellycon { };
119
120 jellyfin = callPackage ../applications/video/kodi/addons/jellyfin { };
121
122 joystick = callPackage ../applications/video/kodi/addons/joystick { };
123
124 keymap = callPackage ../applications/video/kodi/addons/keymap { };
125
126 mediacccde = callPackage ../applications/video/kodi/addons/mediacccde { };
127
128 mediathekview = callPackage ../applications/video/kodi/addons/mediathekview { };
129
130 netflix = callPackage ../applications/video/kodi/addons/netflix { };
131
132 orftvthek = callPackage ../applications/video/kodi/addons/orftvthek { };
133
134 radioparadise = callPackage ../applications/video/kodi/addons/radioparadise { };
135
136 raiplay = callPackage ../applications/video/kodi/addons/raiplay { };
137
138 robotocjksc = callPackage ../applications/video/kodi/addons/robotocjksc { };
139
140 screensaver-asteroids = callPackage ../applications/video/kodi/addons/screensaver-asteroids { };
141
142 skyvideoitalia = callPackage ../applications/video/kodi/addons/skyvideoitalia { };
143
144 svtplay = callPackage ../applications/video/kodi/addons/svtplay { };
145
146 steam-controller = callPackage ../applications/video/kodi/addons/steam-controller { };
147
148 steam-launcher = callPackage ../applications/video/kodi/addons/steam-launcher { };
149
150 steam-library = callPackage ../applications/video/kodi/addons/steam-library { };
151
152 somafm = callPackage ../applications/video/kodi/addons/somafm { };
153
154 pdfreader = callPackage ../applications/video/kodi/addons/pdfreader { };
155
156 pvr-hts = callPackage ../applications/video/kodi/addons/pvr-hts { };
157
158 pvr-hdhomerun = callPackage ../applications/video/kodi/addons/pvr-hdhomerun { };
159
160 pvr-iptvsimple = callPackage ../applications/video/kodi/addons/pvr-iptvsimple { };
161
162 pvr-vdr-vnsi = callPackage ../applications/video/kodi/addons/pvr-vdr-vnsi { };
163
164 osmc-skin = callPackage ../applications/video/kodi/addons/osmc-skin { };
165
166 texturemaker = callPackage ../applications/video/kodi/addons/texturemaker { };
167
168 upnext = callPackage ../applications/video/kodi/addons/upnext { };
169
170 vfs-libarchive = callPackage ../applications/video/kodi/addons/vfs-libarchive { };
171
172 vfs-rar = callPackage ../applications/video/kodi/addons/vfs-rar { };
173
174 vfs-sftp = callPackage ../applications/video/kodi/addons/vfs-sftp { };
175
176 visualization-fishbmc = callPackage ../applications/video/kodi/addons/visualization-fishbmc { };
177
178 visualization-goom = callPackage ../applications/video/kodi/addons/visualization-goom { };
179
180 visualization-matrix = callPackage ../applications/video/kodi/addons/visualization-matrix { };
181
182 visualization-pictureit = callPackage ../applications/video/kodi/addons/visualization-pictureit { };
183
184 visualization-projectm = callPackage ../applications/video/kodi/addons/visualization-projectm { };
185
186 visualization-shadertoy = callPackage ../applications/video/kodi/addons/visualization-shadertoy { };
187
188 visualization-spectrum = callPackage ../applications/video/kodi/addons/visualization-spectrum { };
189
190 visualization-starburst = callPackage ../applications/video/kodi/addons/visualization-starburst { };
191
192 visualization-waveform = callPackage ../applications/video/kodi/addons/visualization-waveform { };
193
194 youtube = callPackage ../applications/video/kodi/addons/youtube { };
195
196 # addon packages (dependencies)
197
198 archive_tool = callPackage ../applications/video/kodi/addons/archive_tool { };
199
200 certifi = callPackage ../applications/video/kodi/addons/certifi { };
201
202 chardet = callPackage ../applications/video/kodi/addons/chardet { };
203
204 dateutil = callPackage ../applications/video/kodi/addons/dateutil { };
205
206 defusedxml = callPackage ../applications/video/kodi/addons/defusedxml { };
207
208 future = callPackage ../applications/video/kodi/addons/future { };
209
210 idna = callPackage ../applications/video/kodi/addons/idna { };
211
212 infotagger = callPackage ../applications/video/kodi/addons/infotagger { };
213
214 inputstream-adaptive = callPackage ../applications/video/kodi/addons/inputstream-adaptive { };
215
216 inputstream-ffmpegdirect =
217 callPackage ../applications/video/kodi/addons/inputstream-ffmpegdirect
218 { };
219
220 inputstream-rtmp = callPackage ../applications/video/kodi/addons/inputstream-rtmp { };
221
222 inputstreamhelper = callPackage ../applications/video/kodi/addons/inputstreamhelper { };
223
224 jurialmunkey = callPackage ../applications/video/kodi/addons/jurialmunkey { };
225
226 kodi-six = callPackage ../applications/video/kodi/addons/kodi-six { };
227
228 myconnpy = callPackage ../applications/video/kodi/addons/myconnpy { };
229
230 plugin-cache = callPackage ../applications/video/kodi/addons/plugin-cache { };
231
232 requests = callPackage ../applications/video/kodi/addons/requests { };
233
234 requests-cache = callPackage ../applications/video/kodi/addons/requests-cache { };
235
236 routing = callPackage ../applications/video/kodi/addons/routing { };
237
238 sendtokodi = callPackage ../applications/video/kodi/addons/sendtokodi { };
239
240 signals = callPackage ../applications/video/kodi/addons/signals { };
241
242 simplecache = callPackage ../applications/video/kodi/addons/simplecache { };
243
244 simplejson = callPackage ../applications/video/kodi/addons/simplejson { };
245
246 six = callPackage ../applications/video/kodi/addons/six { };
247
248 sponsorblock = callPackage ../applications/video/kodi/addons/sponsorblock { };
249
250 urllib3 = callPackage ../applications/video/kodi/addons/urllib3 { };
251
252 websocket = callPackage ../applications/video/kodi/addons/websocket { };
253
254 xbmcswift2 = callPackage ../applications/video/kodi/addons/xbmcswift2 { };
255
256 typing_extensions = callPackage ../applications/video/kodi/addons/typing_extensions { };
257
258 arrow = callPackage ../applications/video/kodi/addons/arrow { };
259
260 trakt-module = callPackage ../applications/video/kodi/addons/trakt-module { };
261
262 trakt = callPackage ../applications/video/kodi/addons/trakt { };
263 };
264in
265self
266// optionalAttrs config.allowAliases {
267 # deprecated or renamed packages
268
269 controllers =
270 throw
271 "kodi.packages.controllers has been replaced with kodi.packages.controller-topology-project - a package which contains a large number of controller profiles."
272 { };
273}