lol
1/* A Hydra jobset to test Guile-using applications and libraries with the
2 Guile 2.x pre-releases.
3
4 -- ludo@gnu.org */
5
6let
7 allPackages = import ./all-packages.nix;
8
9 pkgsFun = { system ? builtins.currentSystem }:
10 allPackages {
11 inherit system;
12 config.packageOverrides = pkgs: {
13 guile = pkgs.guile_2_0;
14 };
15 };
16
17 pkgs = pkgsFun {};
18
19 toJob = x: if builtins.isAttrs x then x else
20 { type = "job"; systems = x; schedulingPriority = 10; };
21
22 /* Perform a job on the given set of platforms. The function `f' is
23 called by Hydra for each platform, and should return some job
24 to build on that platform. `f' is passed the Nixpkgs collection
25 for the platform in question. */
26 testOn = systems: f: {system ? builtins.currentSystem}:
27 if pkgs.lib.elem system systems
28 then f (pkgsFun {inherit system;})
29 else {};
30
31 /* Map an attribute of the form `foo = [platforms...]' to `testOn
32 [platforms...] (pkgs: pkgs.foo)'. */
33 mapTestOn = pkgs.lib.mapAttrsRecursiveCond
34 (as: !(as ? type && as.type == "job"))
35 (path: value:
36 let
37 job = toJob value;
38 getPkg = pkgs:
39 pkgs.lib.addMetaAttrs { schedulingPriority = toString job.schedulingPriority; }
40 (pkgs.lib.getAttrFromPath path pkgs);
41 in testOn job.systems getPkg);
42
43 inherit (pkgs.lib.platforms) linux darwin cygwin allBut all;
44
45in (mapTestOn {
46 /* The package list below was obtained with:
47
48 cat top-level/all-packages.nix \
49 | grep -B3 'guile[^=]*$' \
50 | grep '^[[:blank:]]*[a-zA-Z0-9_]\+[[:blank:]]*=' \
51 | sed -es'/^[[:blank:]]*\(.\+\)[[:blank:]]*=.*$/\1= linux;/g'
52
53 with some minor edits.
54 */
55
56 guile = linux;
57
58 autogen = linux;
59 lsh = linux;
60 mailutils = linux;
61 mcron = linux;
62 texmacs = linux;
63 guileCairo = linux;
64 guileGnome = linux;
65 guile_lib = linux;
66 guileLint = linux;
67 guile_ncurses = linux;
68 gwrap = linux;
69 swig = linux;
70 gnutls = linux;
71 slibGuile = linux;
72 dico = linux;
73 trackballs = linux;
74 beast = linux;
75 elinks = linux;
76 gnucash = linux;
77 gnunet = linux;
78 snd = linux;
79 ballAndPaddle = linux;
80 drgeo = linux;
81 lilypond = linux;
82 liquidwar = linux;
83 freetalk = linux;
84})