···446 if length list < 2
447 then # finish
448 { result = list; }
449- else if dfsthis ? "cycle"
450 then # there's a cycle, starting from the current vertex, return it
451 { cycle = reverseList ([ dfsthis.cycle ] ++ dfsthis.visited);
452 inherit (dfsthis) loops; }
453- else if toporest ? "cycle"
454 then # there's a cycle somewhere else in the graph, return it
455 toporest
456 # Slow, but short. Can be made a bit faster with an explicit stack.
···446 if length list < 2
447 then # finish
448 { result = list; }
449+ else if dfsthis ? cycle
450 then # there's a cycle, starting from the current vertex, return it
451 { cycle = reverseList ([ dfsthis.cycle ] ++ dfsthis.visited);
452 inherit (dfsthis) loops; }
453+ else if toporest ? cycle
454 then # there's a cycle somewhere else in the graph, return it
455 toporest
456 # Slow, but short. Can be made a bit faster with an explicit stack.
···159160 };
161162- environment.etc."profile".text =
163 ''
164 # /etc/profile: DO NOT EDIT -- this file has been generated automatically.
165 # This file is read for login shells.
···184 fi
185 '';
186187- environment.etc."bashrc".text =
188 ''
189 # /etc/bashrc: DO NOT EDIT -- this file has been generated automatically.
190···212213 # Configuration for readline in bash. We use "option default"
214 # priority to allow user override using both .text and .source.
215- environment.etc."inputrc".source = mkOptionDefault ./inputrc;
216217 users.defaultUserShell = mkDefault pkgs.bashInteractive;
218
···159160 };
161162+ environment.etc.profile.text =
163 ''
164 # /etc/profile: DO NOT EDIT -- this file has been generated automatically.
165 # This file is read for login shells.
···184 fi
185 '';
186187+ environment.etc.bashrc.text =
188 ''
189 # /etc/bashrc: DO NOT EDIT -- this file has been generated automatically.
190···212213 # Configuration for readline in bash. We use "option default"
214 # priority to allow user override using both .text and .source.
215+ environment.etc.inputrc.source = mkOptionDefault ./inputrc;
216217 users.defaultUserShell = mkDefault pkgs.bashInteractive;
218
···61 description = "Setup of xfs_quota projects. Make sure the filesystem is mounted with the pquota option.";
6263 example = {
64- "projname" = {
65 id = 50;
66 path = "/xfsprojects/projname";
67 sizeHardLimit = "50g";
···61 description = "Setup of xfs_quota projects. Make sure the filesystem is mounted with the pquota option.";
6263 example = {
64+ projname = {
65 id = 50;
66 path = "/xfsprojects/projname";
67 sizeHardLimit = "50g";
···135136 programs.zsh.shellAliases = mapAttrs (name: mkDefault) cfge.shellAliases;
137138- environment.etc."zshenv".text =
139 ''
140 # /etc/zshenv: DO NOT EDIT -- this file has been generated automatically.
141 # This file is read for all shells.
···159 fi
160 '';
161162- environment.etc."zprofile".text =
163 ''
164 # /etc/zprofile: DO NOT EDIT -- this file has been generated automatically.
165 # This file is read for login shells.
···178 fi
179 '';
180181- environment.etc."zshrc".text =
182 ''
183 # /etc/zshrc: DO NOT EDIT -- this file has been generated automatically.
184 # This file is read for interactive shells.
···219 fi
220 '';
221222- environment.etc."zinputrc".source = ./zinputrc;
223224 environment.systemPackages = [ pkgs.zsh ]
225 ++ optional cfg.enableCompletion pkgs.nix-zsh-completions;
···135136 programs.zsh.shellAliases = mapAttrs (name: mkDefault) cfge.shellAliases;
137138+ environment.etc.zshenv.text =
139 ''
140 # /etc/zshenv: DO NOT EDIT -- this file has been generated automatically.
141 # This file is read for all shells.
···159 fi
160 '';
161162+ environment.etc.zprofile.text =
163 ''
164 # /etc/zprofile: DO NOT EDIT -- this file has been generated automatically.
165 # This file is read for login shells.
···178 fi
179 '';
180181+ environment.etc.zshrc.text =
182 ''
183 # /etc/zshrc: DO NOT EDIT -- this file has been generated automatically.
184 # This file is read for interactive shells.
···219 fi
220 '';
221222+ environment.etc.zinputrc.source = ./zinputrc;
223224 environment.systemPackages = [ pkgs.zsh ]
225 ++ optional cfg.enableCompletion pkgs.nix-zsh-completions;
···59 type = types.attrsOf types.str;
60 default = {};
61 example = {
62- "nuc-server" = "hostaddr=192.168.0.100 port=5432 dbname=postgres";
63- "mini-server" = "hostaddr=127.0.0.1 port=5432 dbname=postgres sslmode=require";
64 };
65 description = ''
66 pgmanage requires at least one PostgreSQL server be defined.
···192 };
193 };
194 users = {
195- users."${pgmanage}" = {
196 name = pgmanage;
197 group = pgmanage;
198 home = cfg.sqlRoot;
199 createHome = true;
200 };
201- groups."${pgmanage}" = {
202 name = pgmanage;
203 };
204 };
···59 type = types.attrsOf types.str;
60 default = {};
61 example = {
62+ nuc-server = "hostaddr=192.168.0.100 port=5432 dbname=postgres";
63+ mini-server = "hostaddr=127.0.0.1 port=5432 dbname=postgres sslmode=require";
64 };
65 description = ''
66 pgmanage requires at least one PostgreSQL server be defined.
···192 };
193 };
194 users = {
195+ users.${pgmanage} = {
196 name = pgmanage;
197 group = pgmanage;
198 home = cfg.sqlRoot;
199 createHome = true;
200 };
201+ groups.${pgmanage} = {
202 name = pgmanage;
203 };
204 };
+4-4
nixos/modules/services/desktops/geoclue2.nix
···202 ];
203204 # restart geoclue service when the configuration changes
205- systemd.services."geoclue".restartTriggers = [
206 config.environment.etc."geoclue/geoclue.conf".source
207 ];
208209 # this needs to run as a user service, since it's associated with the
210 # user who is making the requests
211 systemd.user.services = mkIf cfg.enableDemoAgent {
212- "geoclue-agent" = {
213 description = "Geoclue agent";
214 script = "${package}/libexec/geoclue-2.0/demos/agent";
215 # this should really be `partOf = [ "geoclue.service" ]`, but
···219 };
220 };
221222- services.geoclue2.appConfig."epiphany" = {
223 isAllowed = true;
224 isSystem = false;
225 };
226227- services.geoclue2.appConfig."firefox" = {
228 isAllowed = true;
229 isSystem = false;
230 };
···202 ];
203204 # restart geoclue service when the configuration changes
205+ systemd.services.geoclue.restartTriggers = [
206 config.environment.etc."geoclue/geoclue.conf".source
207 ];
208209 # this needs to run as a user service, since it's associated with the
210 # user who is making the requests
211 systemd.user.services = mkIf cfg.enableDemoAgent {
212+ geoclue-agent = {
213 description = "Geoclue agent";
214 script = "${package}/libexec/geoclue-2.0/demos/agent";
215 # this should really be `partOf = [ "geoclue.service" ]`, but
···219 };
220 };
221222+ services.geoclue2.appConfig.epiphany = {
223 isAllowed = true;
224 isSystem = false;
225 };
226227+ services.geoclue2.appConfig.firefox = {
228 isAllowed = true;
229 isSystem = false;
230 };
···20 config = mkIf cfg.enable {
21 systemd.packages = [ pkgs.throttled ];
22 # The upstream package has this in Install, but that's not enough, see the NixOS manual
23- systemd.services."lenovo_fix".wantedBy = [ "multi-user.target" ];
2425 environment.etc."lenovo_fix.conf".source =
26 if cfg.extraConfig != ""
···20 config = mkIf cfg.enable {
21 systemd.packages = [ pkgs.throttled ];
22 # The upstream package has this in Install, but that's not enough, see the NixOS manual
23+ systemd.services.lenovo_fix.wantedBy = [ "multi-user.target" ];
2425 environment.etc."lenovo_fix.conf".source =
26 if cfg.extraConfig != ""
···476477 boot.initrd.luks.devices = mkOption {
478 default = { };
479- example = { "luksroot".device = "/dev/disk/by-uuid/430e9eff-d852-4f68-aa3b-2fa3599ebe08"; };
480 description = ''
481 The encrypted disk that should be opened before the root
482 filesystem is mounted. Both LVM-over-LUKS and LUKS-over-LVM
···476477 boot.initrd.luks.devices = mkOption {
478 default = { };
479+ example = { luksroot.device = "/dev/disk/by-uuid/430e9eff-d852-4f68-aa3b-2fa3599ebe08"; };
480 description = ''
481 The encrypted disk that should be opened before the root
482 filesystem is mounted. Both LVM-over-LUKS and LUKS-over-LVM
···322 [Service]
323 ${let env = cfg.globalEnvironment // def.environment;
324 in concatMapStrings (n:
325- let s = optionalString (env."${n}" != null)
326 "Environment=${builtins.toJSON "${n}=${env.${n}}"}\n";
327 # systemd max line length is now 1MiB
328 # https://github.com/systemd/systemd/commit/e6dde451a51dc5aaa7f4d98d39b8fe735f73d2af
···490 systemd.generators = mkOption {
491 type = types.attrsOf types.path;
492 default = {};
493- example = { "systemd-gpt-auto-generator" = "/dev/null"; };
494 description = ''
495 Definition of systemd generators.
496 For each <literal>NAME = VALUE</literal> pair of the attrSet, a link is generated from
···322 [Service]
323 ${let env = cfg.globalEnvironment // def.environment;
324 in concatMapStrings (n:
325+ let s = optionalString (env.${n} != null)
326 "Environment=${builtins.toJSON "${n}=${env.${n}}"}\n";
327 # systemd max line length is now 1MiB
328 # https://github.com/systemd/systemd/commit/e6dde451a51dc5aaa7f4d98d39b8fe735f73d2af
···490 systemd.generators = mkOption {
491 type = types.attrsOf types.path;
492 default = {};
493+ example = { systemd-gpt-auto-generator = "/dev/null"; };
494 description = ''
495 Definition of systemd generators.
496 For each <literal>NAME = VALUE</literal> pair of the attrSet, a link is generated from
+2-2
nixos/modules/tasks/filesystems.nix
···1213 fileSystems' = toposort fsBefore (attrValues config.fileSystems);
1415- fileSystems = if fileSystems' ? "result"
16 then # use topologically sorted fileSystems everywhere
17 fileSystems'.result
18 else # the assertion below will catch this,
···211 ls = sep: concatMapStringsSep sep (x: x.mountPoint);
212 notAutoResizable = fs: fs.autoResize && !(hasPrefix "ext" fs.fsType || fs.fsType == "f2fs");
213 in [
214- { assertion = ! (fileSystems' ? "cycle");
215 message = "The ‘fileSystems’ option can't be topologically sorted: mountpoint dependency path ${ls " -> " fileSystems'.cycle} loops to ${ls ", " fileSystems'.loops}";
216 }
217 { assertion = ! (any notAutoResizable fileSystems);
···1213 fileSystems' = toposort fsBefore (attrValues config.fileSystems);
1415+ fileSystems = if fileSystems' ? result
16 then # use topologically sorted fileSystems everywhere
17 fileSystems'.result
18 else # the assertion below will catch this,
···211 ls = sep: concatMapStringsSep sep (x: x.mountPoint);
212 notAutoResizable = fs: fs.autoResize && !(hasPrefix "ext" fs.fsType || fs.fsType == "f2fs");
213 in [
214+ { assertion = ! (fileSystems' ? cycle);
215 message = "The ‘fileSystems’ option can't be topologically sorted: mountpoint dependency path ${ls " -> " fileSystems'.cycle} loops to ${ls ", " fileSystems'.loops}";
216 }
217 { assertion = ! (any notAutoResizable fileSystems);
···160 (mapAttrsToList (k: _: k) do); "";
161 # get those driverOptions that have been set
162 filterSystemdOptions = filterAttrs (sysDOpt: kOpts:
163- any (kOpt: do ? "${kOpt}") kOpts.optNames);
164 # build final set of systemd options to bond values
165 buildOptionSet = mapAttrs (_: kOpts: with kOpts;
166 # we simply take the first set kernel bond option
167 # (one option has multiple names, which is silly)
168- head (map (optN: valTransform (do."${optN}"))
169 # only map those that exist
170- (filter (o: do ? "${o}") optNames)));
171 in seq assertNoUnknownOption
172 (buildOptionSet (filterSystemdOptions driverOptionMapping));
173
···160 (mapAttrsToList (k: _: k) do); "";
161 # get those driverOptions that have been set
162 filterSystemdOptions = filterAttrs (sysDOpt: kOpts:
163+ any (kOpt: do ? ${kOpt}) kOpts.optNames);
164 # build final set of systemd options to bond values
165 buildOptionSet = mapAttrs (_: kOpts: with kOpts;
166 # we simply take the first set kernel bond option
167 # (one option has multiple names, which is silly)
168+ head (map (optN: valTransform (do.${optN}))
169 # only map those that exist
170+ (filter (o: do ? ${o}) optNames)));
171 in seq assertNoUnknownOption
172 (buildOptionSet (filterSystemdOptions driverOptionMapping));
173
+9-9
nixos/modules/tasks/network-interfaces.nix
···799 networking.wlanInterfaces = mkOption {
800 default = { };
801 example = literalExample {
802- "wlan-station0" = {
803 device = "wlp6s0";
804 };
805- "wlan-adhoc0" = {
806 type = "ibss";
807 device = "wlp6s0";
808 mac = "02:00:00:00:00:01";
809 };
810- "wlan-p2p0" = {
811 device = "wlp6s0";
812 mac = "02:00:00:00:00:02";
813 };
814- "wlan-ap0" = {
815 device = "wlp6s0";
816 mac = "02:00:00:00:00:03";
817 };
···994 domainname "${cfg.domain}"
995 '';
996997- environment.etc."hostid" = mkIf (cfg.hostId != null)
998 { source = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
999 hi="${cfg.hostId}"
1000 ${if pkgs.stdenv.isBigEndian then ''
···10071008 # static hostname configuration needed for hostnamectl and the
1009 # org.freedesktop.hostname1 dbus service (both provided by systemd)
1010- environment.etc."hostname" = mkIf (cfg.hostName != "")
1011 {
1012 text = cfg.hostName + "\n";
1013 };
···10271028 # The network-interfaces target is kept for backwards compatibility.
1029 # New modules must NOT use it.
1030- systemd.targets."network-interfaces" =
1031 { description = "All Network Interfaces (deprecated)";
1032 wantedBy = [ "network.target" ];
1033 before = [ "network.target" ];
···1162 in
1163 flip (concatMapStringsSep "\n") (attrNames wlanDeviceInterfaces) (device:
1164 let
1165- interfaces = wlanListDeviceFirst device wlanDeviceInterfaces."${device}";
1166 curInterface = elemAt interfaces 0;
1167 newInterfaces = drop 1 interfaces;
1168 in ''
1169 # It is important to have that rule first as overwriting the NAME attribute also prevents the
1170 # next rules from matching.
1171- ${flip (concatMapStringsSep "\n") (wlanListDeviceFirst device wlanDeviceInterfaces."${device}") (interface:
1172 ''ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", ENV{INTERFACE}=="${interface._iName}", ${systemdAttrs interface._iName}, RUN+="${newInterfaceScript device interface}"'')}
11731174 # Add the required, new WLAN interfaces to the default WLAN interface with the
···799 networking.wlanInterfaces = mkOption {
800 default = { };
801 example = literalExample {
802+ wlan-station0 = {
803 device = "wlp6s0";
804 };
805+ wlan-adhoc0 = {
806 type = "ibss";
807 device = "wlp6s0";
808 mac = "02:00:00:00:00:01";
809 };
810+ wlan-p2p0 = {
811 device = "wlp6s0";
812 mac = "02:00:00:00:00:02";
813 };
814+ wlan-ap0 = {
815 device = "wlp6s0";
816 mac = "02:00:00:00:00:03";
817 };
···994 domainname "${cfg.domain}"
995 '';
996997+ environment.etc.hostid = mkIf (cfg.hostId != null)
998 { source = pkgs.runCommand "gen-hostid" { preferLocalBuild = true; } ''
999 hi="${cfg.hostId}"
1000 ${if pkgs.stdenv.isBigEndian then ''
···10071008 # static hostname configuration needed for hostnamectl and the
1009 # org.freedesktop.hostname1 dbus service (both provided by systemd)
1010+ environment.etc.hostname = mkIf (cfg.hostName != "")
1011 {
1012 text = cfg.hostName + "\n";
1013 };
···10271028 # The network-interfaces target is kept for backwards compatibility.
1029 # New modules must NOT use it.
1030+ systemd.targets.network-interfaces =
1031 { description = "All Network Interfaces (deprecated)";
1032 wantedBy = [ "network.target" ];
1033 before = [ "network.target" ];
···1162 in
1163 flip (concatMapStringsSep "\n") (attrNames wlanDeviceInterfaces) (device:
1164 let
1165+ interfaces = wlanListDeviceFirst device wlanDeviceInterfaces.${device};
1166 curInterface = elemAt interfaces 0;
1167 newInterfaces = drop 1 interfaces;
1168 in ''
1169 # It is important to have that rule first as overwriting the NAME attribute also prevents the
1170 # next rules from matching.
1171+ ${flip (concatMapStringsSep "\n") (wlanListDeviceFirst device wlanDeviceInterfaces.${device}) (interface:
1172 ''ACTION=="add", SUBSYSTEM=="net", ENV{DEVTYPE}=="wlan", ENV{INTERFACE}=="${interface._iName}", ${systemdAttrs interface._iName}, RUN+="${newInterfaceScript device interface}"'')}
11731174 # Add the required, new WLAN interfaces to the default WLAN interface with the
+1-1
nixos/modules/virtualisation/brightbox-image.nix
···111 # Always include cryptsetup so that NixOps can use it.
112 environment.systemPackages = [ pkgs.cryptsetup ];
113114- systemd.services."fetch-ec2-data" =
115 { description = "Fetch EC2 Data";
116117 wantedBy = [ "multi-user.target" "sshd.service" ];
···111 # Always include cryptsetup so that NixOps can use it.
112 environment.systemPackages = [ pkgs.cryptsetup ];
113114+ systemd.services.fetch-ec2-data =
115 { description = "Fetch EC2 Data";
116117 wantedBy = [ "multi-user.target" "sshd.service" ];
+1-1
nixos/modules/virtualisation/containers.nix
···686 serviceConfig = serviceDirectives dummyConfig;
687 };
688 in {
689- systemd.targets."multi-user".wants = [ "machines.target" ];
690691 systemd.services = listToAttrs (filter (x: x.value != null) (
692 # The generic container template used by imperative containers
···686 serviceConfig = serviceDirectives dummyConfig;
687 };
688 in {
689+ systemd.targets.multi-user.wants = [ "machines.target" ];
690691 systemd.services = listToAttrs (filter (x: x.value != null) (
692 # The generic container template used by imperative containers
···35 and find info about device via <command>cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description</command>
36 '';
37 example = {
38- "i915-GVTg_V5_8" = {
39 uuid = "a297db4a-f4c2-11e6-90f6-d3b88d6c9525";
40 };
41 };
···35 and find info about device via <command>cat /sys/bus/pci/devices/*/mdev_supported_types/i915-GVTg_V5_4/description</command>
36 '';
37 example = {
38+ i915-GVTg_V5_8 = {
39 uuid = "a297db4a-f4c2-11e6-90f6-d3b88d6c9525";
40 };
41 };
+1-1
nixos/modules/virtualisation/virtualbox-host.nix
···122123 # Since we lack the right setuid/setcap binaries, set up a host-only network by default.
124 } (mkIf cfg.addNetworkInterface {
125- systemd.services."vboxnet0" =
126 { description = "VirtualBox vboxnet0 Interface";
127 requires = [ "dev-vboxnetctl.device" ];
128 after = [ "dev-vboxnetctl.device" ];
···122123 # Since we lack the right setuid/setcap binaries, set up a host-only network by default.
124 } (mkIf cfg.addNetworkInterface {
125+ systemd.services.vboxnet0 =
126 { description = "VirtualBox vboxnet0 Interface";
127 requires = [ "dev-vboxnetctl.device" ];
128 after = [ "dev-vboxnetctl.device" ];
···51 serviceConfig.PermissionsStartOnly = true;
52 };
5354- systemd.services."nextcloud-setup"= {
55 requires = ["postgresql.service"];
56 after = [
57 "postgresql.service"
···62 # At the time of writing, redis creates its socket with the "nobody"
63 # group. I figure this is slightly less bad than making the socket world
64 # readable.
65- systemd.services."chown-redis-socket" = {
66 enable = true;
67 script = ''
68 until ${pkgs.redis}/bin/redis-cli ping; do
···51 serviceConfig.PermissionsStartOnly = true;
52 };
5354+ systemd.services.nextcloud-setup= {
55 requires = ["postgresql.service"];
56 after = [
57 "postgresql.service"
···62 # At the time of writing, redis creates its socket with the "nobody"
63 # group. I figure this is slightly less bad than making the socket world
64 # readable.
65+ systemd.services.chown-redis-socket = {
66 enable = true;
67 script = ''
68 until ${pkgs.redis}/bin/redis-cli ping; do
···14 # Prevent nauty from sniffing some cpu features. While those are very
15 # widely available, it can lead to nasty bugs when they are not available:
16 # https://groups.google.com/forum/#!topic/sage-packaging/Pe4SRDNYlhA
17- "default" = [ "--disable-clz" "--disable-popcnt" ];
18- "westmere" = [ "--disable-clz" ];
19- "sandybridge" = [ "--disable-clz" ];
20- "ivybridge" = [ "--disable-clz" ];
21 }.${stdenv.hostPlatform.platform.gcc.arch or "default"} or [];
22 buildInputs = [];
23 installPhase = ''
···14 # Prevent nauty from sniffing some cpu features. While those are very
15 # widely available, it can lead to nasty bugs when they are not available:
16 # https://groups.google.com/forum/#!topic/sage-packaging/Pe4SRDNYlhA
17+ default = [ "--disable-clz" "--disable-popcnt" ];
18+ westmere = [ "--disable-clz" ];
19+ sandybridge = [ "--disable-clz" ];
20+ ivybridge = [ "--disable-clz" ];
21 }.${stdenv.hostPlatform.platform.gcc.arch or "default"} or [];
22 buildInputs = [];
23 installPhase = ''
···180 else if targetPlatform.isx86_64 then "x86-64"
181 else if targetPlatform.isx86_32 then "i386"
182 else if targetPlatform.isMips then {
183- "mips" = "btsmipn32"; # n32 variant
184- "mipsel" = "ltsmipn32"; # n32 variant
185- "mips64" = "btsmip";
186- "mips64el" = "ltsmip";
187 }.${targetPlatform.parsed.cpu.name}
188 else if targetPlatform.isPower then if targetPlatform.isBigEndian then "ppc" else "lppc"
189 else if targetPlatform.isSparc then "sparc"
···180 else if targetPlatform.isx86_64 then "x86-64"
181 else if targetPlatform.isx86_32 then "i386"
182 else if targetPlatform.isMips then {
183+ mips = "btsmipn32"; # n32 variant
184+ mipsel = "ltsmipn32"; # n32 variant
185+ mips64 = "btsmip";
186+ mips64el = "ltsmip";
187 }.${targetPlatform.parsed.cpu.name}
188 else if targetPlatform.isPower then if targetPlatform.isBigEndian then "ppc" else "lppc"
189 else if targetPlatform.isSparc then "sparc"
···14 0;
15 chars = stringToCharacters (substring 0 (len - padding) str);
16 table = {
17+ A = [0 0 0];
18+ B = [0 0 1];
19+ C = [0 0 2];
20+ D = [0 0 3];
21+ E = [0 1 0];
22+ F = [0 1 1];
23+ G = [0 1 2];
24+ H = [0 1 3];
25+ I = [0 2 0];
26+ J = [0 2 1];
27+ K = [0 2 2];
28+ L = [0 2 3];
29+ M = [0 3 0];
30+ N = [0 3 1];
31+ O = [0 3 2];
32+ P = [0 3 3];
33+ Q = [1 0 0];
34+ R = [1 0 1];
35+ S = [1 0 2];
36+ T = [1 0 3];
37+ U = [1 1 0];
38+ V = [1 1 1];
39+ W = [1 1 2];
40+ X = [1 1 3];
41+ Y = [1 2 0];
42+ Z = [1 2 1];
43+ a = [1 2 2];
44+ b = [1 2 3];
45+ c = [1 3 0];
46+ d = [1 3 1];
47+ e = [1 3 2];
48+ f = [1 3 3];
49+ g = [2 0 0];
50+ h = [2 0 1];
51+ i = [2 0 2];
52+ j = [2 0 3];
53+ k = [2 1 0];
54+ l = [2 1 1];
55+ m = [2 1 2];
56+ n = [2 1 3];
57+ o = [2 2 0];
58+ p = [2 2 1];
59+ q = [2 2 2];
60+ r = [2 2 3];
61+ s = [2 3 0];
62+ t = [2 3 1];
63+ u = [2 3 2];
64+ v = [2 3 3];
65+ w = [3 0 0];
66+ x = [3 0 1];
67+ y = [3 0 2];
68+ z = [3 0 3];
69 "0" = [3 1 0];
70 "1" = [3 1 1];
71 "2" = [3 1 2];
+1-1
pkgs/desktops/pantheon/update.nix
···3132 throwFlag = throw "${versionPolicy} is not a valid versionPolicy - Options are either 'release' or 'master' (defaults to release).";
3334- versionFlag = { "release" = "-r"; "master" = "-m"; }.${versionPolicy} or throwFlag;
3536in [ updateScript versionFlag repoName attrPath ]
···3132 throwFlag = throw "${versionPolicy} is not a valid versionPolicy - Options are either 'release' or 'master' (defaults to release).";
3334+ versionFlag = { release = "-r"; master = "-m"; }.${versionPolicy} or throwFlag;
3536in [ updateScript versionFlag repoName attrPath ]
···52 name
53 else
54 let
55- gem = gems."${pname}";
56 version = gem.version;
57 in
58 "${pname}-${version}";
···7071 maybeCopyAll = pkgname: if pkgname == null then "" else
72 let
73- mainGem = gems."${pkgname}" or (throw "bundlerEnv: gem ${pkgname} not found");
74 in
75 copyIfBundledByPath mainGem;
76
···52 name
53 else
54 let
55+ gem = gems.${pname};
56 version = gem.version;
57 in
58 "${pname}-${version}";
···7071 maybeCopyAll = pkgname: if pkgname == null then "" else
72 let
73+ mainGem = gems.${pkgname} or (throw "bundlerEnv: gem ${pkgname} not found");
74 in
75 copyIfBundledByPath mainGem;
76
···18 # Other srcs are avilable like 32-bit mac & win, but I have only
19 # included the ones most likely to be needed by Nixpkgs users.
20 platforms = {
21- "x86_64-linux" = "linux";
22- "i686-linux" = "linux32";
23- "x86_64-darwin" = "osx";
24- "i686-darwin" = "osx32";
25- "x86_64-cygwin" = "win";
26- "i686-cygwin" = "win32";
27 };
2829 dfVersionTriple = splitString "." dfVersion;
···18 # Other srcs are avilable like 32-bit mac & win, but I have only
19 # included the ones most likely to be needed by Nixpkgs users.
20 platforms = {
21+ x86_64-linux = "linux";
22+ i686-linux = "linux32";
23+ x86_64-darwin = "osx";
24+ i686-darwin = "osx32";
25+ x86_64-cygwin = "win";
26+ i686-cygwin = "win32";
27 };
2829 dfVersionTriple = splitString "." dfVersion;
···23 else throw "Only x86_64 Linux and Darwin are supported.";
2425 languageServerSha256 = {
26- "linux-x64" = "0j9251f8dfccmg0x9gzg1cai4k5zd0alcfpb0443gs4jqakl0lr2";
27- "osx-x64" = "070qwwl08fa24rsnln4i5x9mfriqaw920l6v2j8d1r0zylxnyjsa";
28- }."${arch}";
2930 # version is languageServerVersion in the package.json
31 languageServer = extractNuGet rec {
···23 else throw "Only x86_64 Linux and Darwin are supported.";
2425 languageServerSha256 = {
26+ linux-x64 = "0j9251f8dfccmg0x9gzg1cai4k5zd0alcfpb0443gs4jqakl0lr2";
27+ osx-x64 = "070qwwl08fa24rsnln4i5x9mfriqaw920l6v2j8d1r0zylxnyjsa";
28+ }.${arch};
2930 # version is languageServerVersion in the package.json
31 languageServer = extractNuGet rec {