Merge pull request #19199 from wizeman/u/fix-help2man-hash

help2man: fix hash
This commit is contained in:
Jörg Thalheim 2016-10-03 19:26:44 +02:00 committed by GitHub
commit 888f6a1280
148 changed files with 5245 additions and 4659 deletions

24
.editorconfig Normal file
View File

@ -0,0 +1,24 @@
# EditorConfig configuration for nixpkgs
# http://EditorConfig.org
# Top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file, utf-8 charset
[*]
end_of_line = lf
insert_final_newline = true
trim_trailing_whitespace = true
charset = utf-8
# see https://nixos.org/nixpkgs/manual/#chap-conventions
# Match nix/ruby files, set indent to spaces with width of two
[*.{nix,rb}]
indent_style = space
indent_size = 2
# Match shell/python/perl scripts, set indent to spaces with width of four
[*.{sh,py,pl}]
indent_style = space
indent_size = 4

View File

@ -37,6 +37,7 @@
andsild = "Anders Sildnes <andsild@gmail.com>"; andsild = "Anders Sildnes <andsild@gmail.com>";
aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>"; aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>";
antono = "Antono Vasiljev <self@antono.info>"; antono = "Antono Vasiljev <self@antono.info>";
apeyroux = "Alexandre Peyroux <alex@px.io>";
ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>"; ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
aristid = "Aristid Breitkreuz <aristidb@gmail.com>"; aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
arobyn = "Alexei Robyn <shados@shados.net>"; arobyn = "Alexei Robyn <shados@shados.net>";
@ -233,6 +234,7 @@
lovek323 = "Jason O'Conal <jason@oconal.id.au>"; lovek323 = "Jason O'Conal <jason@oconal.id.au>";
lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>"; lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
lsix = "Lancelot SIX <lsix@lancelotsix.com>"; lsix = "Lancelot SIX <lsix@lancelotsix.com>";
lucas8 = "Luc Chabassier <luc.linux@mailoo.org>";
ludo = "Ludovic Courtès <ludo@gnu.org>"; ludo = "Ludovic Courtès <ludo@gnu.org>";
luispedro = "Luis Pedro Coelho <luis@luispedro.org>"; luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
lukasepple = "Lukas Epple <post@lukasepple.de>"; lukasepple = "Lukas Epple <post@lukasepple.de>";
@ -277,6 +279,7 @@
mounium = "Katona László <muoniurn@gmail.com>"; mounium = "Katona László <muoniurn@gmail.com>";
MP2E = "Cray Elliott <MP2E@archlinux.us>"; MP2E = "Cray Elliott <MP2E@archlinux.us>";
mpscholten = "Marc Scholten <marc@mpscholten.de>"; mpscholten = "Marc Scholten <marc@mpscholten.de>";
mpsyco = "Francis St-Amour <fr.st-amour@gmail.com>";
msackman = "Matthew Sackman <matthew@wellquite.org>"; msackman = "Matthew Sackman <matthew@wellquite.org>";
mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.com>"; mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.com>";
msteen = "Matthijs Steen <emailmatthijs@gmail.com>"; msteen = "Matthijs Steen <emailmatthijs@gmail.com>";

View File

@ -29,6 +29,19 @@ in
''; '';
}; };
networking.hostConf = lib.mkOption {
type = types.lines;
default = "multi on";
example = ''
multi on
reorder on
trim lan
'';
description = ''
The contents of <filename>/etc/host.conf</filename>. See also <citerefentry><refentrytitle>host.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>.
'';
};
networking.dnsSingleRequest = lib.mkOption { networking.dnsSingleRequest = lib.mkOption {
type = types.bool; type = types.bool;
default = false; default = false;
@ -171,6 +184,9 @@ in
${cfg.extraHosts} ${cfg.extraHosts}
''; '';
# /etc/host.conf: resolver configuration file
"host.conf".text = cfg.hostConf;
# /etc/resolvconf.conf: Configuration for openresolv. # /etc/resolvconf.conf: Configuration for openresolv.
"resolvconf.conf".text = "resolvconf.conf".text =
'' ''

View File

@ -17,7 +17,7 @@ let
[Desktop Entry] [Desktop Entry]
Name=IBus Name=IBus
Type=Application Type=Application
Exec=${ibusPackage}/bin/ibus-daemon --daemonize --xim --cache=refresh Exec=${ibusPackage}/bin/ibus-daemon --daemonize --xim
''; '';
}; };
in in

View File

@ -473,6 +473,7 @@
./services/system/uptimed.nix ./services/system/uptimed.nix
./services/torrent/deluge.nix ./services/torrent/deluge.nix
./services/torrent/flexget.nix ./services/torrent/flexget.nix
./services/torrent/opentracker.nix
./services/torrent/peerflix.nix ./services/torrent/peerflix.nix
./services/torrent/transmission.nix ./services/torrent/transmission.nix
./services/ttys/agetty.nix ./services/ttys/agetty.nix

View File

@ -84,6 +84,14 @@ in
type = types.bool; type = types.bool;
}; };
enableSyntaxHighlighting = mkOption {
default = false;
description = ''
Enable zsh-syntax-highlighting
'';
type = types.bool;
};
}; };
}; };
@ -120,6 +128,10 @@ in
${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""} ${if cfg.enableCompletion then "autoload -U compinit && compinit" else ""}
${optionalString (cfg.enableSyntaxHighlighting)
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
}
HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help" HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"
''; '';
@ -182,7 +194,8 @@ in
environment.etc."zinputrc".source = ./zinputrc; environment.etc."zinputrc".source = ./zinputrc;
environment.systemPackages = [ pkgs.zsh ] environment.systemPackages = [ pkgs.zsh ]
++ optional cfg.enableCompletion pkgs.nix-zsh-completions; ++ optional cfg.enableCompletion pkgs.nix-zsh-completions
++ optional cfg.enableSyntaxHighlighting pkgs.zsh-syntax-highlighting;
environment.pathsToLink = optional cfg.enableCompletion "/share/zsh"; environment.pathsToLink = optional cfg.enableCompletion "/share/zsh";

View File

@ -149,6 +149,10 @@
<listitem><para>Trusted path execution: a desirable feature, but <listitem><para>Trusted path execution: a desirable feature, but
requires some more work to operate smoothly on NixOS.</para></listitem> requires some more work to operate smoothly on NixOS.</para></listitem>
<listitem><para>Module hardening: would break user initiated module
loading. Might enable this at some point, depending on the potential
breakage.</para></listitem>
</itemizedlist> </itemizedlist>
</para></listitem> </para></listitem>
@ -208,8 +212,6 @@
let let
kernel = pkgs.linux_grsec_nixos.override { kernel = pkgs.linux_grsec_nixos.override {
extraConfig = '' extraConfig = ''
GRKERNSEC y
PAX y
GRKERNSEC_CONFIG_AUTO y GRKERNSEC_CONFIG_AUTO y
GRKERNSEC_CONFIG_SERVER y GRKERNSEC_CONFIG_SERVER y
GRKERNSEC_CONFIG_SECURITY y GRKERNSEC_CONFIG_SECURITY y

View File

@ -421,7 +421,7 @@ in {
description = "Kubernetes Api Server"; description = "Kubernetes Api Server";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = ["kubernetes-setup.service"]; requires = ["kubernetes-setup.service"];
after = [ "network-interfaces.target" "etcd.service" ]; after = [ "network.target" "etcd.service" "kubernetes-setup.service" ];
serviceConfig = { serviceConfig = {
ExecStart = let ExecStart = let
authorizationPolicyFile = authorizationPolicyFile =
@ -468,7 +468,7 @@ in {
systemd.services.kube-scheduler = { systemd.services.kube-scheduler = {
description = "Kubernetes Scheduler Service"; description = "Kubernetes Scheduler Service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "kubernetes-apiserver.service" ]; after = [ "network.target" "kubernetes-apiserver.service" ];
serviceConfig = { serviceConfig = {
ExecStart = ''${cfg.package}/bin/kube-scheduler \ ExecStart = ''${cfg.package}/bin/kube-scheduler \
--address=${cfg.scheduler.address} \ --address=${cfg.scheduler.address} \
@ -487,7 +487,7 @@ in {
systemd.services.kube-controller-manager = { systemd.services.kube-controller-manager = {
description = "Kubernetes Controller Manager Service"; description = "Kubernetes Controller Manager Service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "kubernetes-apiserver.service" ]; after = [ "network.target" "kubernetes-apiserver.service" ];
serviceConfig = { serviceConfig = {
ExecStart = ''${cfg.package}/bin/kube-controller-manager \ ExecStart = ''${cfg.package}/bin/kube-controller-manager \
--address=${cfg.controllerManager.address} \ --address=${cfg.controllerManager.address} \
@ -511,7 +511,7 @@ in {
description = "Kubernetes Kubelet Service"; description = "Kubernetes Kubelet Service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
requires = ["kubernetes-setup.service"]; requires = ["kubernetes-setup.service"];
after = [ "network-interfaces.target" "etcd.service" "docker.service" ]; after = [ "network.target" "etcd.service" "docker.service" "kubernetes-setup.service" ];
path = [ pkgs.gitMinimal pkgs.openssh ]; path = [ pkgs.gitMinimal pkgs.openssh ];
script = '' script = ''
export PATH="/bin:/sbin:/usr/bin:/usr/sbin:$PATH" export PATH="/bin:/sbin:/usr/bin:/usr/sbin:$PATH"
@ -542,7 +542,7 @@ in {
systemd.services.kube-proxy = { systemd.services.kube-proxy = {
description = "Kubernetes Proxy Service"; description = "Kubernetes Proxy Service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "etcd.service" ]; after = [ "network.target" "etcd.service" ];
serviceConfig = { serviceConfig = {
ExecStart = ''${cfg.package}/bin/kube-proxy \ ExecStart = ''${cfg.package}/bin/kube-proxy \
--master=${cfg.proxy.master} \ --master=${cfg.proxy.master} \

View File

@ -377,7 +377,7 @@ in {
systemd.services.cassandra = { systemd.services.cassandra = {
description = "Cassandra Daemon"; description = "Cassandra Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = cassandraEnvironment; environment = cassandraEnvironment;
restartTriggers = [ cassandraConfFile cassandraLogFile cassandraRackFile ]; restartTriggers = [ cassandraConfFile cassandraLogFile cassandraRackFile ];
serviceConfig = { serviceConfig = {

View File

@ -160,7 +160,7 @@ in
systemd.services.influxdb = { systemd.services.influxdb = {
description = "InfluxDB Server"; description = "InfluxDB Server";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
ExecStart = ''${cfg.package}/bin/influxd -config "${configFile}"''; ExecStart = ''${cfg.package}/bin/influxd -config "${configFile}"'';
User = "${cfg.user}"; User = "${cfg.user}";

View File

@ -123,7 +123,7 @@ in {
systemd.services.neo4j = { systemd.services.neo4j = {
description = "Neo4j Daemon"; description = "Neo4j Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = { NEO4J_INSTANCE = cfg.dataDir; }; environment = { NEO4J_INSTANCE = cfg.dataDir; };
serviceConfig = { serviceConfig = {
ExecStart = "${cfg.package}/bin/neo4j console"; ExecStart = "${cfg.package}/bin/neo4j console";

View File

@ -139,7 +139,7 @@ in {
systemd.services.apache-kafka = { systemd.services.apache-kafka = {
description = "Apache Kafka Daemon"; description = "Apache Kafka Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
ExecStart = '' ExecStart = ''
${pkgs.jre}/bin/java \ ${pkgs.jre}/bin/java \

View File

@ -43,7 +43,7 @@ in
User = cfg.user; User = cfg.user;
Group = cfg.group; Group = cfg.group;
PermissionsStartOnly = "true"; PermissionsStartOnly = "true";
ExecStart = "${pkgs.mono}/bin/mono ${pkgs.emby}/bin/MediaBrowser.Server.Mono.exe"; ExecStart = "${pkgs.emby}/bin/MediaBrowser.Server.Mono";
Restart = "on-failure"; Restart = "on-failure";
}; };
}; };

View File

@ -143,9 +143,9 @@ in {
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.services.etcd = { systemd.services.etcd = {
description = "Etcd Daemon"; description = "etcd key-value store";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = (filterAttrs (n: v: v != null) { environment = (filterAttrs (n: v: v != null) {
ETCD_NAME = cfg.name; ETCD_NAME = cfg.name;
@ -168,12 +168,18 @@ in {
ETCD_INITIAL_CLUSTER_TOKEN = cfg.initialClusterToken; ETCD_INITIAL_CLUSTER_TOKEN = cfg.initialClusterToken;
}) // (mapAttrs' (n: v: nameValuePair "ETCD_${n}" v) cfg.extraConf); }) // (mapAttrs' (n: v: nameValuePair "ETCD_${n}" v) cfg.extraConf);
unitConfig = {
Documentation = "https://github.com/coreos/etcd";
};
serviceConfig = { serviceConfig = {
Type = "notify"; Type = "notify";
ExecStart = "${pkgs.etcd.bin}/bin/etcd"; ExecStart = "${pkgs.etcd.bin}/bin/etcd";
User = "etcd"; User = "etcd";
PermissionsStartOnly = true; PermissionsStartOnly = true;
LimitNOFILE = 40000;
}; };
preStart = '' preStart = ''
mkdir -m 0700 -p ${cfg.dataDir} mkdir -m 0700 -p ${cfg.dataDir}
if [ "$(id -u)" = 0 ]; then chown etcd ${cfg.dataDir}; fi if [ "$(id -u)" = 0 ]; then chown etcd ${cfg.dataDir}; fi

View File

@ -50,7 +50,7 @@ in {
}; };
systemd.services.foldingathome = { systemd.services.foldingathome = {
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
preStart = '' preStart = ''
mkdir -m 0755 -p ${stateDir} mkdir -m 0755 -p ${stateDir}

View File

@ -80,7 +80,7 @@ in {
systemd.services.mesos-master = { systemd.services.mesos-master = {
description = "Mesos Master"; description = "Mesos Master";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
ExecStart = '' ExecStart = ''
${pkgs.mesos}/bin/mesos-master \ ${pkgs.mesos}/bin/mesos-master \

View File

@ -105,7 +105,7 @@ in {
systemd.services.mesos-slave = { systemd.services.mesos-slave = {
description = "Mesos Slave"; description = "Mesos Slave";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment.MESOS_CONTAINERIZERS = concatStringsSep "," containerizers; environment.MESOS_CONTAINERIZERS = concatStringsSep "," containerizers;
serviceConfig = { serviceConfig = {
ExecStart = '' ExecStart = ''

View File

@ -35,7 +35,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.services.svnserve = { systemd.services.svnserve = {
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
preStart = "mkdir -p ${cfg.svnBaseDir}"; preStart = "mkdir -p ${cfg.svnBaseDir}";
script = "${pkgs.subversion.out}/bin/svnserve -r ${cfg.svnBaseDir} -d --foreground --pid-file=/var/run/svnserve.pid"; script = "${pkgs.subversion.out}/bin/svnserve -r ${cfg.svnBaseDir} -d --foreground --pid-file=/var/run/svnserve.pid";

View File

@ -113,7 +113,7 @@ in {
systemd.services.zookeeper = { systemd.services.zookeeper = {
description = "Zookeeper Daemon"; description = "Zookeeper Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = { ZOOCFGDIR = configDir; }; environment = { ZOOCFGDIR = configDir; };
serviceConfig = { serviceConfig = {
ExecStart = '' ExecStart = ''

View File

@ -387,7 +387,7 @@ in {
systemd.services.carbonCache = let name = "carbon-cache"; in { systemd.services.carbonCache = let name = "carbon-cache"; in {
description = "Graphite Data Storage Backend"; description = "Graphite Data Storage Backend";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = carbonEnv; environment = carbonEnv;
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}"; ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}";
@ -410,7 +410,7 @@ in {
enable = cfg.carbon.enableAggregator; enable = cfg.carbon.enableAggregator;
description = "Carbon Data Aggregator"; description = "Carbon Data Aggregator";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = carbonEnv; environment = carbonEnv;
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}"; ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}";
@ -426,7 +426,7 @@ in {
systemd.services.carbonRelay = let name = "carbon-relay"; in { systemd.services.carbonRelay = let name = "carbon-relay"; in {
description = "Carbon Data Relay"; description = "Carbon Data Relay";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = carbonEnv; environment = carbonEnv;
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}"; ExecStart = "${pkgs.pythonPackages.twisted}/bin/twistd ${carbonOpts name}";
@ -448,7 +448,7 @@ in {
systemd.services.graphiteWeb = { systemd.services.graphiteWeb = {
description = "Graphite Web Interface"; description = "Graphite Web Interface";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
path = [ pkgs.perl ]; path = [ pkgs.perl ];
environment = { environment = {
PYTHONPATH = let PYTHONPATH = let
@ -501,7 +501,7 @@ in {
systemd.services.graphiteApi = { systemd.services.graphiteApi = {
description = "Graphite Api Interface"; description = "Graphite Api Interface";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment = { environment = {
PYTHONPATH = let PYTHONPATH = let
aenv = pkgs.python.buildEnv.override { aenv = pkgs.python.buildEnv.override {
@ -538,7 +538,7 @@ in {
systemd.services.seyren = { systemd.services.seyren = {
description = "Graphite Alerting Dashboard"; description = "Graphite Alerting Dashboard";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "mongodb.service" ]; after = [ "network.target" "mongodb.service" ];
environment = seyrenConfig; environment = seyrenConfig;
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.seyren}/bin/seyren -httpPort ${toString cfg.seyren.port}"; ExecStart = "${pkgs.seyren}/bin/seyren -httpPort ${toString cfg.seyren.port}";
@ -561,7 +561,7 @@ in {
systemd.services.graphitePager = { systemd.services.graphitePager = {
description = "Graphite Pager Alerting Daemon"; description = "Graphite Pager Alerting Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "redis.service" ]; after = [ "network.target" "redis.service" ];
environment = { environment = {
REDIS_URL = cfg.pager.redisUrl; REDIS_URL = cfg.pager.redisUrl;
GRAPHITE_URL = cfg.pager.graphiteUrl; GRAPHITE_URL = cfg.pager.graphiteUrl;

View File

@ -36,11 +36,16 @@ in
]; ];
systemd.services.monit = { systemd.services.monit = {
description = "Monit system watcher"; description = "Pro-active monitoring utility for unix systems";
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
script = "${pkgs.monit}/bin/monit -I -c /etc/monit.conf"; serviceConfig = {
serviceConfig.Restart = "always"; ExecStart = "${pkgs.monit}/bin/monit -I -c /etc/monit.conf";
ExecStop = "${pkgs.monit}/bin/monit -c /etc/monit.conf quit";
ExecReload = "${pkgs.monit}/bin/monit -c /etc/monit.conf reload";
KillMode = "process";
Restart = "always";
};
}; };
}; };
} }

View File

@ -163,7 +163,7 @@ in
description = "Nagios monitoring daemon"; description = "Nagios monitoring daemon";
path = [ pkgs.nagios ]; path = [ pkgs.nagios ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
User = "nagios"; User = "nagios";

View File

@ -75,7 +75,7 @@ in
systemd.services.afsd = { systemd.services.afsd = {
description = "AFS client"; description = "AFS client";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
preStart = '' preStart = ''
mkdir -p -m 0755 /afs mkdir -p -m 0755 /afs

View File

@ -145,8 +145,8 @@ in
}; };
systemd.services.bind = { systemd.services.bind = {
description = "BIND name server job"; description = "BIND Domain Name Server";
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
preStart = '' preStart = ''
@ -155,6 +155,7 @@ in
''; '';
script = "${pkgs.bind.bin}/sbin/named -u ${bindUser} ${optionalString cfg.ipv4Only "-4"} -c ${cfg.configFile} -f"; script = "${pkgs.bind.bin}/sbin/named -u ${bindUser} ${optionalString cfg.ipv4Only "-4"} -c ${cfg.configFile} -f";
unitConfig.Documentation = "man:named(8)";
}; };
}; };
} }

View File

@ -208,9 +208,9 @@ in
# networking.firewall.allowedUDPPorts = ... # networking.firewall.allowedUDPPorts = ...
systemd.services.cjdns = { systemd.services.cjdns = {
description = "encrypted networking for everybody"; description = "cjdns: routing engine designed for security, scalability, speed and ease of use";
wantedBy = [ "network.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "networkSetup.service" "network-interfaces.target" ]; after = [ "network.target" ];
preStart = if cfg.confFile != "" then "" else '' preStart = if cfg.confFile != "" then "" else ''
[ -e /etc/cjdns.keys ] && source /etc/cjdns.keys [ -e /etc/cjdns.keys ] && source /etc/cjdns.keys

View File

@ -158,8 +158,8 @@ in
{ description = "DHCP Client"; { description = "DHCP Client";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
wants = [ "network.target" ]; wants = [ "network.target" ];
before = [ "network.target" ];
# Stopping dhcpcd during a reconfiguration is undesirable # Stopping dhcpcd during a reconfiguration is undesirable
# because it brings down the network interfaces configured by # because it brings down the network interfaces configured by

View File

@ -105,7 +105,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.services.gvpe = { systemd.services.gvpe = {
description = "GNU Virtual Private Ethernet node"; description = "GNU Virtual Private Ethernet node";
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
preStart = '' preStart = ''

View File

@ -171,7 +171,7 @@ in
systemd.services = mkIf (!config.networking.firewall.enable) { nat = { systemd.services = mkIf (!config.networking.firewall.enable) { nat = {
description = "Network Address Translation"; description = "Network Address Translation";
wantedBy = [ "network.target" ]; wantedBy = [ "network.target" ];
after = [ "network-interfaces.target" "systemd-modules-load.service" ]; after = [ "network-pre.target" "systemd-modules-load.service" ];
path = [ pkgs.iptables ]; path = [ pkgs.iptables ];
unitConfig.ConditionCapability = "CAP_NET_ADMIN"; unitConfig.ConditionCapability = "CAP_NET_ADMIN";

View File

@ -25,7 +25,7 @@ with lib;
config = mkIf config.services.oidentd.enable { config = mkIf config.services.oidentd.enable {
systemd.services.oidentd = { systemd.services.oidentd = {
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig.Type = "forking"; serviceConfig.Type = "forking";
script = "${pkgs.oidentd}/sbin/oidentd -u oidentd -g nogroup" + script = "${pkgs.oidentd}/sbin/oidentd -u oidentd -g nogroup" +

View File

@ -56,7 +56,7 @@ let
description = "OpenVPN instance ${name}"; description = "OpenVPN instance ${name}";
wantedBy = optional cfg.autoStart "multi-user.target"; wantedBy = optional cfg.autoStart "multi-user.target";
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
path = [ pkgs.iptables pkgs.iproute pkgs.nettools ]; path = [ pkgs.iptables pkgs.iproute pkgs.nettools ];

View File

@ -50,7 +50,7 @@ in
systemd.services.radicale = { systemd.services.radicale = {
description = "A Simple Calendar and Contact Server"; description = "A Simple Calendar and Contact Server";
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
script = "${pkgs.radicale}/bin/radicale -C ${confFile} -f"; script = "${pkgs.radicale}/bin/radicale -C ${confFile} -f";
serviceConfig.User = "radicale"; serviceConfig.User = "radicale";

View File

@ -63,7 +63,6 @@ in
]; ];
systemd.services."softether-init" = { systemd.services."softether-init" = {
description = "SoftEther VPN services initial task"; description = "SoftEther VPN services initial task";
wantedBy = [ "network-interfaces.target" ];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
RemainAfterExit = false; RemainAfterExit = false;
@ -84,8 +83,9 @@ in
(mkIf (cfg.vpnserver.enable) { (mkIf (cfg.vpnserver.enable) {
systemd.services.vpnserver = { systemd.services.vpnserver = {
description = "SoftEther VPN Server"; description = "SoftEther VPN Server";
after = [ "softether-init.service" ]; after = [ "softether-init.service" "network.target" ];
wantedBy = [ "network-interfaces.target" ]; wants = [ "softether-init.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "forking";
ExecStart = "${pkg}/bin/vpnserver start"; ExecStart = "${pkg}/bin/vpnserver start";
@ -104,8 +104,9 @@ in
(mkIf (cfg.vpnbridge.enable) { (mkIf (cfg.vpnbridge.enable) {
systemd.services.vpnbridge = { systemd.services.vpnbridge = {
description = "SoftEther VPN Bridge"; description = "SoftEther VPN Bridge";
after = [ "softether-init.service" ]; after = [ "softether-init.service" "network.target" ];
wantedBy = [ "network-interfaces.target" ]; wants = [ "softether-init.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "forking";
ExecStart = "${pkg}/bin/vpnbridge start"; ExecStart = "${pkg}/bin/vpnbridge start";
@ -124,8 +125,9 @@ in
(mkIf (cfg.vpnclient.enable) { (mkIf (cfg.vpnclient.enable) {
systemd.services.vpnclient = { systemd.services.vpnclient = {
description = "SoftEther VPN Client"; description = "SoftEther VPN Client";
after = [ "softether-init.service" ]; after = [ "softether-init.service" "network.target" ];
wantedBy = [ "network-interfaces.target" ]; wants = [ "softether-init.service" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = { serviceConfig = {
Type = "forking"; Type = "forking";
ExecStart = "${pkg}/bin/vpnclient start"; ExecStart = "${pkg}/bin/vpnclient start";

View File

@ -120,7 +120,7 @@ in
systemd.services.lshd = { systemd.services.lshd = {
description = "GNU lshd SSH2 daemon"; description = "GNU lshd SSH2 daemon";
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];

View File

@ -102,8 +102,8 @@ in
}; };
permitRootLogin = mkOption { permitRootLogin = mkOption {
default = "without-password"; default = "prohibit-password";
type = types.enum ["yes" "without-password" "forced-commands-only" "no"]; type = types.enum ["yes" "without-password" "prohibit-password" "forced-commands-only" "no"];
description = '' description = ''
Whether the root user can login using ssh. Whether the root user can login using ssh.
''; '';

View File

@ -39,7 +39,7 @@ in
description = "tcpcrypt"; description = "tcpcrypt";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
path = [ pkgs.iptables pkgs.tcpcrypt pkgs.procps ]; path = [ pkgs.iptables pkgs.tcpcrypt pkgs.procps ];

View File

@ -151,8 +151,8 @@ in
("tinc.${network}") ("tinc.${network}")
({ ({
description = "Tinc Daemon - ${network}"; description = "Tinc Daemon - ${network}";
wantedBy = [ "network.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
path = [ data.package ]; path = [ data.package ];
restartTriggers = [ config.environment.etc."tinc/${network}/tinc.conf".source ] restartTriggers = [ config.environment.etc."tinc/${network}/tinc.conf".source ]
++ mapAttrsToList (host: _ : config.environment.etc."tinc/${network}/hosts/${host}".source) data.hosts; ++ mapAttrsToList (host: _ : config.environment.etc."tinc/${network}/hosts/${host}".source) data.hosts;

View File

@ -26,7 +26,9 @@ with lib;
environment.systemPackages = [pkgs.wicd]; environment.systemPackages = [pkgs.wicd];
systemd.services.wicd = { systemd.services.wicd = {
after = [ "network-interfaces.target" ]; after = [ "network-pre.target" ];
before = [ "network.target" ];
wants = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
script = "${pkgs.wicd}/sbin/wicd -f"; script = "${pkgs.wicd}/sbin/wicd -f";
}; };

View File

@ -128,9 +128,9 @@ in {
in { in {
description = "WPA Supplicant"; description = "WPA Supplicant";
after = [ "network-interfaces.target" ] ++ lib.concatMap deviceUnit ifaces; after = [ "network.target" ] ++ lib.concatMap deviceUnit ifaces;
requires = lib.concatMap deviceUnit ifaces; requires = lib.concatMap deviceUnit ifaces;
wantedBy = [ "network.target" ]; wantedBy = [ "network-online.target" ];
path = [ pkgs.wpa_supplicant ]; path = [ pkgs.wpa_supplicant ];

View File

@ -143,7 +143,7 @@ in
config = mkIf cfg.enable { config = mkIf cfg.enable {
systemd.services.xinetd = { systemd.services.xinetd = {
description = "xinetd server"; description = "xinetd server";
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
path = [ pkgs.xinetd ]; path = [ pkgs.xinetd ];
script = "xinetd -syslog daemon -dontfork -stayalive -f ${configFile}"; script = "xinetd -syslog daemon -dontfork -stayalive -f ${configFile}";

View File

@ -86,15 +86,15 @@ in
systemd.services.zerobin = { systemd.services.zerobin = {
enable = true; enable = true;
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
serviceConfig.ExecStart = "${pkgs.pythonPackages.zerobin}/bin/zerobin ${cfg.listenAddress} ${toString cfg.listenPort} false ${cfg.user} ${cfg.group} ${zerobin_config}"; serviceConfig.ExecStart = "${pkgs.pythonPackages.zerobin}/bin/zerobin ${cfg.listenAddress} ${toString cfg.listenPort} false ${cfg.user} ${cfg.group} ${zerobin_config}";
serviceConfig.PrivateTmp="yes"; serviceConfig.PrivateTmp="yes";
serviceConfig.User = cfg.user; serviceConfig.User = cfg.user;
serviceConfig.Group = cfg.group; serviceConfig.Group = cfg.group;
preStart = '' preStart = ''
mkdir -p ${cfg.dataDir} mkdir -p ${cfg.dataDir}
chown ${cfg.user} ${cfg.dataDir} chown ${cfg.user} ${cfg.dataDir}
''; '';
}; };
}; };

View File

@ -41,7 +41,7 @@ in {
systemd.services.chronos = { systemd.services.chronos = {
description = "Chronos Service"; description = "Chronos Service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "zookeeper.service" ]; after = [ "network.target" "zookeeper.service" ];
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.chronos}/bin/chronos --master ${cfg.master} --zk_hosts ${concatStringsSep "," cfg.zookeeperHosts} --http_port ${toString cfg.httpPort}"; ExecStart = "${pkgs.chronos}/bin/chronos --master ${cfg.master} --zk_hosts ${concatStringsSep "," cfg.zookeeperHosts} --http_port ${toString cfg.httpPort}";

View File

@ -83,7 +83,7 @@ in {
description = "Marathon Service"; description = "Marathon Service";
environment = cfg.environment; environment = cfg.environment;
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "zookeeper.service" "mesos-master.service" "mesos-slave.service" ]; after = [ "network.target" "zookeeper.service" "mesos-master.service" "mesos-slave.service" ];
serviceConfig = { serviceConfig = {
ExecStart = "${pkgs.marathon}/bin/marathon --master ${cfg.master} --zk zk://${concatStringsSep "," cfg.zookeeperHosts}/marathon --http_port ${toString cfg.httpPort} ${concatStringsSep " " cfg.extraCmdLineOptions}"; ExecStart = "${pkgs.marathon}/bin/marathon --master ${cfg.master} --zk zk://${concatStringsSep "," cfg.zookeeperHosts}/marathon --http_port ${toString cfg.httpPort} ${concatStringsSep " " cfg.extraCmdLineOptions}";

View File

@ -129,7 +129,7 @@ in {
systemd.services.elasticsearch = { systemd.services.elasticsearch = {
description = "Elasticsearch Daemon"; description = "Elasticsearch Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
path = [ pkgs.inetutils ]; path = [ pkgs.inetutils ];
environment = { environment = {
ES_HOME = cfg.dataDir; ES_HOME = cfg.dataDir;

View File

@ -138,7 +138,7 @@ in {
systemd.services.kibana = { systemd.services.kibana = {
description = "Kibana Service"; description = "Kibana Service";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "elasticsearch.service" ]; after = [ "network.target" "elasticsearch.service" ];
environment = { BABEL_CACHE_PATH = "${cfg.dataDir}/.babelcache.json"; }; environment = { BABEL_CACHE_PATH = "${cfg.dataDir}/.babelcache.json"; };
serviceConfig = { serviceConfig = {
ExecStart = "${cfg.package}/bin/kibana --config ${cfgFile}"; ExecStart = "${cfg.package}/bin/kibana --config ${cfgFile}";

View File

@ -510,7 +510,7 @@ in
description = "OAuth2 Proxy"; description = "OAuth2 Proxy";
path = [ cfg.package ]; path = [ cfg.package ];
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
serviceConfig = { serviceConfig = {
User = "oauth2_proxy"; User = "oauth2_proxy";

View File

@ -0,0 +1,44 @@
{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.services.opentracker;
in {
options.services.opentracker = {
enable = mkEnableOption "opentracker";
package = mkOption {
type = types.package;
description = ''
opentracker package to use
'';
default = pkgs.opentracker;
};
extraOptions = mkOption {
type = types.separatedString " ";
description = ''
Configuration Arguments for opentracker
See https://erdgeist.org/arts/software/opentracker/ for all params
'';
default = "";
};
};
config = lib.mkIf cfg.enable {
systemd.services.opentracker = {
description = "opentracker server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
restartIfChanged = true;
serviceConfig = {
ExecStart = "${cfg.package}/bin/opentracker ${cfg.extraOptions}";
PrivateTmp = true;
WorkingDirectory = "/var/empty";
# By default opentracker drops all privileges and runs in chroot after starting up as root.
};
};
};
}

View File

@ -42,7 +42,7 @@ in {
systemd.services.peerflix = { systemd.services.peerflix = {
description = "Peerflix Daemon"; description = "Peerflix Daemon";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
environment.HOME = cfg.stateDir; environment.HOME = cfg.stateDir;
preStart = '' preStart = ''

View File

@ -245,7 +245,6 @@ in
chown ${serverInfo.serverConfig.user} ${config.wordpressUploads} chown ${serverInfo.serverConfig.user} ${config.wordpressUploads}
# we should use systemd dependencies here # we should use systemd dependencies here
#waitForUnit("network-interfaces.target");
if [ ! -d ${serverInfo.fullConfig.services.mysql.dataDir}/${config.dbName} ]; then if [ ! -d ${serverInfo.fullConfig.services.mysql.dataDir}/${config.dbName} ]; then
echo "Need to create the database '${config.dbName}' and grant permissions to user named '${config.dbUser}'." echo "Need to create the database '${config.dbName}' and grant permissions to user named '${config.dbUser}'."
# Wait until MySQL is up # Wait until MySQL is up

View File

@ -139,7 +139,7 @@ in
systemd.services.tomcat = { systemd.services.tomcat = {
description = "Apache Tomcat server"; description = "Apache Tomcat server";
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ]; after = [ "network.target" ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;

View File

@ -149,6 +149,22 @@ in
''; '';
}; };
autoRepeatDelay = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
Sets the autorepeat delay (length of time in milliseconds that a key must be depressed before autorepeat starts).
'';
};
autoRepeatInterval = mkOption {
type = types.nullOr types.int;
default = null;
description = ''
Sets the autorepeat interval (length of time in milliseconds that should elapse between autorepeat-generated keystrokes).
'';
};
inputClassSections = mkOption { inputClassSections = mkOption {
type = types.listOf types.lines; type = types.listOf types.lines;
default = []; default = [];
@ -504,7 +520,6 @@ in
environment = environment =
{ {
XKB_BINDIR = "${xorg.xkbcomp}/bin"; # Needed for the Xkb extension.
XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime. XORG_DRI_DRIVER_PATH = "/run/opengl-driver/lib/dri"; # !!! Depends on the driver selected at runtime.
LD_LIBRARY_PATH = concatStringsSep ":" ( LD_LIBRARY_PATH = concatStringsSep ":" (
[ "${xorg.libX11.out}/lib" "${xorg.libXext.out}/lib" "/run/opengl-driver/lib" ] [ "${xorg.libX11.out}/lib" "${xorg.libXext.out}/lib" "/run/opengl-driver/lib" ]
@ -536,7 +551,9 @@ in
] ++ optional (cfg.display != null) ":${toString cfg.display}" ] ++ optional (cfg.display != null) ":${toString cfg.display}"
++ optional (cfg.tty != null) "vt${toString cfg.tty}" ++ optional (cfg.tty != null) "vt${toString cfg.tty}"
++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}" ++ optional (cfg.dpi != null) "-dpi ${toString cfg.dpi}"
++ optional (!cfg.enableTCP) "-nolisten tcp"; ++ optional (!cfg.enableTCP) "-nolisten tcp"
++ optional (cfg.autoRepeatDelay != null) "-ardelay ${toString cfg.autoRepeatDelay}"
++ optional (cfg.autoRepeatInterval != null) "-arinterval ${toString cfg.autoRepeatInterval}";
services.xserver.modules = services.xserver.modules =
concatLists (catAttrs "modules" cfg.drivers) ++ concatLists (catAttrs "modules" cfg.drivers) ++

View File

@ -1,4 +1,4 @@
#! @python@/bin/python #! @python3@/bin/python3
import argparse import argparse
import shutil import shutil
import os import os
@ -13,29 +13,21 @@ def copy_if_not_exists(source, dest):
if not os.path.exists(dest): if not os.path.exists(dest):
shutil.copyfile(source, dest) shutil.copyfile(source, dest)
system_dir = lambda generation: "/nix/var/nix/profiles/system-%d-link" % (generation) def system_dir(generation):
return "/nix/var/nix/profiles/system-%d-link" % (generation)
def write_entry(generation, kernel, initrd): BOOT_ENTRY = """title NixOS
entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation) version Generation {generation}
generation_dir = os.readlink(system_dir(generation)) linux {kernel}
tmp_path = "%s.tmp" % (entry_file) initrd {initrd}
kernel_params = "systemConfig=%s init=%s/init " % (generation_dir, generation_dir) options {kernel_params}
with open("%s/kernel-params" % (generation_dir)) as params_file: """
kernel_params = kernel_params + params_file.read()
with open(tmp_path, 'w') as f:
print >> f, "title NixOS"
print >> f, "version Generation %d" % (generation)
if machine_id is not None: print >> f, "machine-id %s" % (machine_id)
print >> f, "linux %s" % (kernel)
print >> f, "initrd %s" % (initrd)
print >> f, "options %s" % (kernel_params)
os.rename(tmp_path, entry_file)
def write_loader_conf(generation): def write_loader_conf(generation):
with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f: with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f:
if "@timeout@" != "": if "@timeout@" != "":
print >> f, "timeout @timeout@" f.write("timeout @timeout@\n")
print >> f, "default nixos-generation-%d" % (generation) f.write("default nixos-generation-%d\n" % generation)
os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf") os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
def copy_from_profile(generation, name, dry_run=False): def copy_from_profile(generation, name, dry_run=False):
@ -47,10 +39,23 @@ def copy_from_profile(generation, name, dry_run=False):
copy_if_not_exists(store_file_path, "@efiSysMountPoint@%s" % (efi_file_path)) copy_if_not_exists(store_file_path, "@efiSysMountPoint@%s" % (efi_file_path))
return efi_file_path return efi_file_path
def add_entry(generation): def write_entry(generation, machine_id):
efi_kernel_path = copy_from_profile(generation, "kernel") kernel = copy_from_profile(generation, "kernel")
efi_initrd_path = copy_from_profile(generation, "initrd") initrd = copy_from_profile(generation, "initrd")
write_entry(generation, efi_kernel_path, efi_initrd_path) entry_file = "@efiSysMountPoint@/loader/entries/nixos-generation-%d.conf" % (generation)
generation_dir = os.readlink(system_dir(generation))
tmp_path = "%s.tmp" % (entry_file)
kernel_params = "systemConfig=%s init=%s/init " % (generation_dir, generation_dir)
with open("%s/kernel-params" % (generation_dir)) as params_file:
kernel_params = kernel_params + params_file.read()
with open(tmp_path, 'w') as f:
f.write(BOOT_ENTRY.format(generation=generation,
kernel=kernel,
initrd=initrd,
kernel_params=kernel_params))
if machine_id is not None:
f.write("machine-id %s\n" % machine_id)
os.rename(tmp_path, entry_file)
def mkdir_p(path): def mkdir_p(path):
try: try:
@ -65,8 +70,8 @@ def get_generations(profile):
"--list-generations", "--list-generations",
"-p", "-p",
"/nix/var/nix/profiles/%s" % (profile), "/nix/var/nix/profiles/%s" % (profile),
"--option", "build-users-group", "" "--option", "build-users-group", ""],
]) universal_newlines=True)
gen_lines = gen_list.split('\n') gen_lines = gen_list.split('\n')
gen_lines.pop() gen_lines.pop()
return [ int(line.split()[0]) for line in gen_lines ] return [ int(line.split()[0]) for line in gen_lines ]
@ -89,33 +94,37 @@ def remove_old_entries(gens):
if not path in known_paths: if not path in known_paths:
os.unlink(path) os.unlink(path)
parser = argparse.ArgumentParser(description='Update NixOS-related systemd-boot files') def main():
parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default NixOS config to boot') parser = argparse.ArgumentParser(description='Update NixOS-related systemd-boot files')
args = parser.parse_args() parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default NixOS config to boot')
args = parser.parse_args()
if os.getenv("NIXOS_INSTALL_GRUB") == "1": if os.getenv("NIXOS_INSTALL_GRUB") == "1":
warnings.warn("NIXOS_INSTALL_GRUB env var deprecated, use NIXOS_INSTALL_BOOTLOADER", DeprecationWarning) warnings.warn("NIXOS_INSTALL_GRUB env var deprecated, use NIXOS_INSTALL_BOOTLOADER", DeprecationWarning)
os.environ["NIXOS_INSTALL_BOOTLOADER"] = "1" os.environ["NIXOS_INSTALL_BOOTLOADER"] = "1"
if os.getenv("NIXOS_INSTALL_BOOTLOADER") == "1": if os.getenv("NIXOS_INSTALL_BOOTLOADER") == "1":
if "@canTouchEfiVariables@" == "1": if "@canTouchEfiVariables@" == "1":
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "install"]) subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "install"])
else: else:
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "--no-variables", "install"]) subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "--no-variables", "install"])
mkdir_p("@efiSysMountPoint@/efi/nixos") mkdir_p("@efiSysMountPoint@/efi/nixos")
mkdir_p("@efiSysMountPoint@/loader/entries") mkdir_p("@efiSysMountPoint@/loader/entries")
try: try:
with open("/etc/machine-id") as machine_file: with open("/etc/machine-id") as machine_file:
machine_id = machine_file.readlines()[0] machine_id = machine_file.readlines()[0]
except IOError as e: except IOError as e:
if e.errno != errno.ENOENT: if e.errno != errno.ENOENT:
raise raise
machine_id = None machine_id = None
gens = get_generations("system") gens = get_generations("system")
remove_old_entries(gens) remove_old_entries(gens)
for gen in gens: for gen in gens:
add_entry(gen) write_entry(gen, machine_id)
if os.readlink(system_dir(gen)) == args.default_config: if os.readlink(system_dir(gen)) == args.default_config:
write_loader_conf(gen) write_loader_conf(gen)
if __name__ == '__main__':
main()

View File

@ -12,7 +12,7 @@ let
isExecutable = true; isExecutable = true;
inherit (pkgs) python; inherit (pkgs) python3;
systemd = config.systemd.package; systemd = config.systemd.package;

View File

@ -296,35 +296,35 @@ let
}; };
addressOptions = { addressOptions = {
options = {
addressConfig = mkOption { addressConfig = mkOption {
default = {}; default = {};
example = { Address = "192.168.0.100/24"; }; example = { Address = "192.168.0.100/24"; };
type = types.addCheck (types.attrsOf unitOption) checkAddress; type = types.addCheck (types.attrsOf unitOption) checkAddress;
description = '' description = ''
Each attribute in this set specifies an option in the Each attribute in this set specifies an option in the
<literal>[Address]</literal> section of the unit. See <literal>[Address]</literal> section of the unit. See
<citerefentry><refentrytitle>systemd.network</refentrytitle> <citerefentry><refentrytitle>systemd.network</refentrytitle>
<manvolnum>5</manvolnum></citerefentry> for details. <manvolnum>5</manvolnum></citerefentry> for details.
''; '';
};
}; };
}; };
routeOptions = { routeOptions = {
options = {
routeConfig = mkOption { routeConfig = mkOption {
default = {}; default = {};
example = { Gateway = "192.168.0.1"; }; example = { Gateway = "192.168.0.1"; };
type = types.addCheck (types.attrsOf unitOption) checkRoute; type = types.addCheck (types.attrsOf unitOption) checkRoute;
description = '' description = ''
Each attribute in this set specifies an option in the Each attribute in this set specifies an option in the
<literal>[Route]</literal> section of the unit. See <literal>[Route]</literal> section of the unit. See
<citerefentry><refentrytitle>systemd.network</refentrytitle> <citerefentry><refentrytitle>systemd.network</refentrytitle>
<manvolnum>5</manvolnum></citerefentry> for details. <manvolnum>5</manvolnum></citerefentry> for details.
''; '';
};
}; };
}; };
networkOptions = commonNetworkOptions // { networkOptions = commonNetworkOptions // {
@ -471,7 +471,7 @@ let
addresses = mkOption { addresses = mkOption {
default = [ ]; default = [ ];
type = with types; listOf (submodule [ addressOptions ]); type = with types; listOf (submodule addressOptions);
description = '' description = ''
A list of address sections to be added to the unit. See A list of address sections to be added to the unit. See
<citerefentry><refentrytitle>systemd.network</refentrytitle> <citerefentry><refentrytitle>systemd.network</refentrytitle>
@ -481,7 +481,7 @@ let
routes = mkOption { routes = mkOption {
default = [ ]; default = [ ];
type = with types; listOf (submodule [ routeOptions ]); type = with types; listOf (submodule routeOptions);
description = '' description = ''
A list of route sections to be added to the unit. See A list of route sections to be added to the unit. See
<citerefentry><refentrytitle>systemd.network</refentrytitle> <citerefentry><refentrytitle>systemd.network</refentrytitle>
@ -622,19 +622,19 @@ in
systemd.network.links = mkOption { systemd.network.links = mkOption {
default = {}; default = {};
type = with types; attrsOf (submodule [ linkOptions ]); type = with types; attrsOf (submodule [ { options = linkOptions; } ]);
description = "Definition of systemd network links."; description = "Definition of systemd network links.";
}; };
systemd.network.netdevs = mkOption { systemd.network.netdevs = mkOption {
default = {}; default = {};
type = with types; attrsOf (submodule [ netdevOptions ]); type = with types; attrsOf (submodule [ { options = netdevOptions; } ]);
description = "Definition of systemd network devices."; description = "Definition of systemd network devices.";
}; };
systemd.network.networks = mkOption { systemd.network.networks = mkOption {
default = {}; default = {};
type = with types; attrsOf (submodule [ networkOptions networkConfig ]); type = with types; attrsOf (submodule [ { options = networkOptions; } networkConfig ]);
description = "Definition of systemd networks."; description = "Definition of systemd networks.";
}; };
@ -667,7 +667,6 @@ in
systemd.services.systemd-networkd = { systemd.services.systemd-networkd = {
wantedBy = [ "multi-user.target" ]; wantedBy = [ "multi-user.target" ];
before = [ "network-interfaces.target" ];
restartTriggers = [ config.environment.etc."systemd/network".source ]; restartTriggers = [ config.environment.etc."systemd/network".source ];
}; };

View File

@ -182,7 +182,7 @@ rec {
mkdir -p $out/getty.target.wants/ mkdir -p $out/getty.target.wants/
ln -s ../autovt@tty1.service $out/getty.target.wants/ ln -s ../autovt@tty1.service $out/getty.target.wants/
ln -s ../local-fs.target ../remote-fs.target ../network.target \ ln -s ../local-fs.target ../remote-fs.target \
../nss-lookup.target ../nss-user-lookup.target ../swap.target \ ../nss-lookup.target ../nss-user-lookup.target ../swap.target \
$out/multi-user.target.wants/ $out/multi-user.target.wants/
''} ''}

View File

@ -54,16 +54,22 @@ in
networkSetup = networkSetup =
{ description = "Networking Setup"; { description = "Networking Setup";
after = [ "network-interfaces.target" "network-pre.target" ]; after = [ "network-pre.target" "systemd-udevd.service" "systemd-sysctl.service" ];
before = [ "network.target" ]; before = [ "network.target" "shutdown.target" ];
wantedBy = [ "network.target" ]; wants = [ "network.target" ];
conflicts = [ "shutdown.target" ];
wantedBy = [ "multi-user.target" ];
unitConfig.ConditionCapability = "CAP_NET_ADMIN"; unitConfig.ConditionCapability = "CAP_NET_ADMIN";
path = [ pkgs.iproute ]; path = [ pkgs.iproute ];
serviceConfig.Type = "oneshot"; serviceConfig = {
serviceConfig.RemainAfterExit = true; Type = "oneshot";
RemainAfterExit = true;
};
unitConfig.DefaultDependencies = false;
script = script =
'' ''
@ -108,8 +114,12 @@ in
in in
nameValuePair "network-addresses-${i.name}" nameValuePair "network-addresses-${i.name}"
{ description = "Address configuration of ${i.name}"; { description = "Address configuration of ${i.name}";
wantedBy = [ "network-interfaces.target" ]; wantedBy = [ "network-setup.service" ];
before = [ "network-interfaces.target" ]; # propagate stop and reload from network-setup
partOf = [ "network-setup.service" ];
# order before network-setup because the routes that are configured
# there may need ip addresses configured
before = [ "network-setup.service" ];
bindsTo = [ (subsystemDevice i.name) ]; bindsTo = [ (subsystemDevice i.name) ];
after = [ (subsystemDevice i.name) "network-pre.target" ]; after = [ (subsystemDevice i.name) "network-pre.target" ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
@ -129,20 +139,11 @@ in
echo "checking ip ${address}..." echo "checking ip ${address}..."
if out=$(ip addr add "${address}" dev "${i.name}" 2>&1); then if out=$(ip addr add "${address}" dev "${i.name}" 2>&1); then
echo "added ip ${address}..." echo "added ip ${address}..."
restart_network_setup=true
elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
echo "failed to add ${address}" echo "failed to add ${address}"
exit 1 exit 1
fi fi
'') '');
+ optionalString (ips != [ ])
''
if [ "$restart_network_setup" = "true" ]; then
# Ensure that the default gateway remains set.
# (Flushing this interface may have removed it.)
${config.systemd.package}/bin/systemctl try-restart --no-block network-setup.service
fi
'';
preStop = flip concatMapStrings (ips) (ip: preStop = flip concatMapStrings (ips) (ip:
let let
address = "${ip.address}/${toString ip.prefixLength}"; address = "${ip.address}/${toString ip.prefixLength}";
@ -156,10 +157,11 @@ in
createTunDevice = i: nameValuePair "${i.name}-netdev" createTunDevice = i: nameValuePair "${i.name}-netdev"
{ description = "Virtual Network Interface ${i.name}"; { description = "Virtual Network Interface ${i.name}";
requires = [ "dev-net-tun.device" ]; bindsTo = [ "dev-net-tun.device" ];
after = [ "dev-net-tun.device" "network-pre.target" ]; after = [ "dev-net-tun.device" "network-pre.target" ];
wantedBy = [ "network.target" (subsystemDevice i.name) ]; wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
before = [ "network-interfaces.target" (subsystemDevice i.name) ]; partOf = [ "network-setup.service" ];
before = [ "network-setup.service" (subsystemDevice i.name) ];
path = [ pkgs.iproute ]; path = [ pkgs.iproute ];
serviceConfig = { serviceConfig = {
Type = "oneshot"; Type = "oneshot";
@ -180,12 +182,12 @@ in
deps = map subsystemDevice v.interfaces; deps = map subsystemDevice v.interfaces;
in in
{ description = "Bridge Interface ${n}"; { description = "Bridge Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ]; wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps ++ optional v.rstp "mstpd.service"; bindsTo = deps ++ optional v.rstp "mstpd.service";
partOf = optional v.rstp "mstpd.service"; partOf = [ "network-setup.service" ] ++ optional v.rstp "mstpd.service";
after = [ "network-pre.target" "mstpd.service" ] ++ deps after = [ "network-pre.target" "mstpd.service" ] ++ deps
++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces; ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
before = [ "network-interfaces.target" (subsystemDevice n) ]; before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute ]; path = [ pkgs.iproute ];
@ -222,11 +224,11 @@ in
ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules; ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules;
in in
{ description = "Open vSwitch Interface ${n}"; { description = "Open vSwitch Interface ${n}";
wantedBy = [ "network.target" "vswitchd.service" ] ++ deps; wantedBy = [ "network-setup.service" "vswitchd.service" ] ++ deps;
bindsTo = [ "vswitchd.service" (subsystemDevice n) ] ++ deps; bindsTo = [ "vswitchd.service" (subsystemDevice n) ] ++ deps;
partOf = [ "vswitchd.service" ]; partOf = [ "network-setup.service" "vswitchd.service" ];
after = [ "network-pre.target" "vswitchd.service" ] ++ deps; after = [ "network-pre.target" "vswitchd.service" ] ++ deps;
before = [ "network-interfaces.target" ]; before = [ "network-setup.service" ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute config.virtualisation.vswitch.package ]; path = [ pkgs.iproute config.virtualisation.vswitch.package ];
@ -254,11 +256,12 @@ in
deps = map subsystemDevice v.interfaces; deps = map subsystemDevice v.interfaces;
in in
{ description = "Bond Interface ${n}"; { description = "Bond Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ]; wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps; bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps after = [ "network-pre.target" ] ++ deps
++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces; ++ concatMap (i: [ "network-addresses-${i}.service" "network-link-${i}.service" ]) v.interfaces;
before = [ "network-interfaces.target" (subsystemDevice n) ]; before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute pkgs.gawk ]; path = [ pkgs.iproute pkgs.gawk ];
@ -291,10 +294,11 @@ in
deps = [ (subsystemDevice v.interface) ]; deps = [ (subsystemDevice v.interface) ];
in in
{ description = "Vlan Interface ${n}"; { description = "Vlan Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ]; wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps; bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps; after = [ "network-pre.target" ] ++ deps;
before = [ "network-interfaces.target" (subsystemDevice n) ]; before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute ]; path = [ pkgs.iproute ];
@ -315,10 +319,11 @@ in
deps = optional (v.dev != null) (subsystemDevice v.dev); deps = optional (v.dev != null) (subsystemDevice v.dev);
in in
{ description = "6-to-4 Tunnel Interface ${n}"; { description = "6-to-4 Tunnel Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ]; wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps; bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps; after = [ "network-pre.target" ] ++ deps;
before = [ "network-interfaces.target" (subsystemDevice n) ]; before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute ]; path = [ pkgs.iproute ];
@ -342,10 +347,11 @@ in
deps = [ (subsystemDevice v.interface) ]; deps = [ (subsystemDevice v.interface) ];
in in
{ description = "Vlan Interface ${n}"; { description = "Vlan Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ]; wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps; bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps; after = [ "network-pre.target" ] ++ deps;
before = [ "network-interfaces.target" (subsystemDevice n) ]; before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot"; serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true; serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute ]; path = [ pkgs.iproute ];

View File

@ -946,8 +946,10 @@ in
] ]
++ bridgeStp; ++ bridgeStp;
# The network-interfaces target is kept for backwards compatibility.
# New modules must NOT use it.
systemd.targets."network-interfaces" = systemd.targets."network-interfaces" =
{ description = "All Network Interfaces"; { description = "All Network Interfaces (deprecated)";
wantedBy = [ "network.target" ]; wantedBy = [ "network.target" ];
before = [ "network.target" ]; before = [ "network.target" ];
after = [ "network-pre.target" ]; after = [ "network-pre.target" ];

View File

@ -138,7 +138,7 @@ let cfg = config.ec2; in
# Allow root logins only using the SSH key that the user specified # Allow root logins only using the SSH key that the user specified
# at instance creation time. # at instance creation time.
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password"; services.openssh.permitRootLogin = "prohibit-password";
# Force getting the hostname from EC2. # Force getting the hostname from EC2.
networking.hostName = mkDefault ""; networking.hostName = mkDefault "";

View File

@ -24,7 +24,7 @@ with lib;
# Allow root logins only using the SSH key that the user specified # Allow root logins only using the SSH key that the user specified
# at instance creation time, ping client connections to avoid timeouts # at instance creation time, ping client connections to avoid timeouts
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password"; services.openssh.permitRootLogin = "prohibit-password";
services.openssh.extraConfig = '' services.openssh.extraConfig = ''
ClientAliveInterval 180 ClientAliveInterval 180
''; '';

View File

@ -103,7 +103,7 @@ in
# Allow root logins only using the SSH key that the user specified # Allow root logins only using the SSH key that the user specified
# at instance creation time. # at instance creation time.
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password"; services.openssh.permitRootLogin = "prohibit-password";
# Force getting the hostname from Google Compute. # Force getting the hostname from Google Compute.
networking.hostName = mkDefault ""; networking.hostName = mkDefault "";

View File

@ -502,8 +502,7 @@ in
}; };
allowedDevices = mkOption { allowedDevices = mkOption {
type = types.listOf types.optionSet; type = with types; listOf (submodule allowedDeviceOpts);
options = [ allowedDeviceOpts ];
default = []; default = [];
example = [ { node = "/dev/net/tun"; modifier = "rw"; } ]; example = [ { node = "/dev/net/tun"; modifier = "rw"; } ];
description = '' description = ''

View File

@ -1,4 +1,4 @@
{ let self = {
"14.04".ap-northeast-1.hvm-ebs = "ami-71c6f470"; "14.04".ap-northeast-1.hvm-ebs = "ami-71c6f470";
"14.04".ap-northeast-1.pv-ebs = "ami-4dcbf84c"; "14.04".ap-northeast-1.pv-ebs = "ami-4dcbf84c";
"14.04".ap-northeast-1.pv-s3 = "ami-8fc4f68e"; "14.04".ap-northeast-1.pv-s3 = "ami-8fc4f68e";
@ -134,4 +134,52 @@
"16.03".us-west-2.hvm-s3 = "ami-925c9ff2"; "16.03".us-west-2.hvm-s3 = "ami-925c9ff2";
"16.03".us-west-2.pv-ebs = "ami-5e61a23e"; "16.03".us-west-2.pv-ebs = "ami-5e61a23e";
"16.03".us-west-2.pv-s3 = "ami-734c8f13"; "16.03".us-west-2.pv-s3 = "ami-734c8f13";
}
# 16.09.666.3738950
"16.09".ap-northeast-1.hvm-ebs = "ami-35578954";
"16.09".ap-northeast-1.hvm-s3 = "ami-d6528cb7";
"16.09".ap-northeast-1.pv-ebs = "ami-07548a66";
"16.09".ap-northeast-1.pv-s3 = "ami-f1548a90";
"16.09".ap-northeast-2.hvm-ebs = "ami-d48753ba";
"16.09".ap-northeast-2.hvm-s3 = "ami-4c865222";
"16.09".ap-northeast-2.pv-ebs = "ami-ca8551a4";
"16.09".ap-northeast-2.pv-s3 = "ami-9c8551f2";
"16.09".ap-south-1.hvm-ebs = "ami-922450fd";
"16.09".ap-south-1.hvm-s3 = "ami-6d3a4e02";
"16.09".ap-south-1.pv-ebs = "ami-4d394d22";
"16.09".ap-south-1.pv-s3 = "ami-17384c78";
"16.09".ap-southeast-1.hvm-ebs = "ami-f824809b";
"16.09".ap-southeast-1.hvm-s3 = "ami-f924809a";
"16.09".ap-southeast-1.pv-ebs = "ami-af2480cc";
"16.09".ap-southeast-1.pv-s3 = "ami-5826823b";
"16.09".ap-southeast-2.hvm-ebs = "ami-40fecd23";
"16.09".ap-southeast-2.hvm-s3 = "ami-48fecd2b";
"16.09".ap-southeast-2.pv-ebs = "ami-dffecdbc";
"16.09".ap-southeast-2.pv-s3 = "ami-e0fccf83";
"16.09".eu-central-1.hvm-ebs = "ami-1d8b7472";
"16.09".eu-central-1.hvm-s3 = "ami-1c8b7473";
"16.09".eu-central-1.pv-ebs = "ami-8c8d72e3";
"16.09".eu-central-1.pv-s3 = "ami-3488775b";
"16.09".eu-west-1.hvm-ebs = "ami-15662766";
"16.09".eu-west-1.hvm-s3 = "ami-476b2a34";
"16.09".eu-west-1.pv-ebs = "ami-876928f4";
"16.09".eu-west-1.pv-s3 = "ami-70682903";
"16.09".sa-east-1.hvm-ebs = "ami-27bc2e4b";
"16.09".sa-east-1.hvm-s3 = "ami-e4b92b88";
"16.09".sa-east-1.pv-ebs = "ami-4dbe2c21";
"16.09".sa-east-1.pv-s3 = "ami-77fc6e1b";
"16.09".us-east-1.hvm-ebs = "ami-93347684";
"16.09".us-east-1.hvm-s3 = "ami-5e347649";
"16.09".us-east-1.pv-ebs = "ami-b0387aa7";
"16.09".us-east-1.pv-s3 = "ami-51357746";
"16.09".us-west-1.hvm-ebs = "ami-06337a66";
"16.09".us-west-1.hvm-s3 = "ami-76307916";
"16.09".us-west-1.pv-ebs = "ami-fd327b9d";
"16.09".us-west-1.pv-s3 = "ami-cc347dac";
"16.09".us-west-2.hvm-ebs = "ami-49fe2729";
"16.09".us-west-2.hvm-s3 = "ami-93fc25f3";
"16.09".us-west-2.pv-ebs = "ami-14fe2774";
"16.09".us-west-2.pv-s3 = "ami-74f12814";
latest = self."16.09";
}; in self

View File

@ -111,7 +111,7 @@ in
# Allow root logins only using the SSH key that the user specified # Allow root logins only using the SSH key that the user specified
# at instance creation time. # at instance creation time.
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password"; services.openssh.permitRootLogin = "prohibit-password";
services.openssh.passwordAuthentication = mkDefault false; services.openssh.passwordAuthentication = mkDefault false;
# Force getting the hostname from Google Compute. # Force getting the hostname from Google Compute.

View File

@ -31,7 +31,7 @@ with lib;
# Allow root logins # Allow root logins
services.openssh.enable = true; services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password"; services.openssh.permitRootLogin = "prohibit-password";
# Put /tmp and /var on /ephemeral0, which has a lot more space. # Put /tmp and /var on /ephemeral0, which has a lot more space.
# Unfortunately we can't do this with the `fileSystems' option # Unfortunately we can't do this with the `fileSystems' option

View File

@ -41,7 +41,6 @@ let
machine.networking.useNetworkd = networkd; machine.networking.useNetworkd = networkd;
testScript = '' testScript = ''
startAll; startAll;
$machine->waitForUnit("network-interfaces.target");
$machine->waitForUnit("network.target"); $machine->waitForUnit("network.target");
$machine->succeed("ip addr show lo | grep -q 'inet 127.0.0.1/8 '"); $machine->succeed("ip addr show lo | grep -q 'inet 127.0.0.1/8 '");
$machine->succeed("ip addr show lo | grep -q 'inet6 ::1/128 '"); $machine->succeed("ip addr show lo | grep -q 'inet6 ::1/128 '");
@ -71,9 +70,7 @@ let
'' ''
startAll; startAll;
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target"); $client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target"); $router->waitForUnit("network.target");
# Make sure dhcpcd is not started # Make sure dhcpcd is not started
@ -119,9 +116,7 @@ let
'' ''
startAll; startAll;
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target"); $client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target"); $router->waitForUnit("network.target");
# Wait until we have an ip address on each interface # Wait until we have an ip address on each interface
@ -164,9 +159,7 @@ let
startAll; startAll;
# Wait for networking to come up # Wait for networking to come up
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target"); $client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target"); $router->waitForUnit("network.target");
# Wait until we have an ip address on each interface # Wait until we have an ip address on each interface
@ -213,9 +206,7 @@ let
startAll; startAll;
# Wait for networking to come up # Wait for networking to come up
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target"); $client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target"); $client2->waitForUnit("network.target");
# Test bonding # Test bonding
@ -259,11 +250,8 @@ let
startAll; startAll;
# Wait for networking to come up # Wait for networking to come up
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target"); $client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target"); $client2->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target"); $router->waitForUnit("network.target");
# Test bridging # Test bridging
@ -298,9 +286,7 @@ let
startAll; startAll;
# Wait for networking to come up # Wait for networking to come up
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target"); $client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target"); $router->waitForUnit("network.target");
# Wait until we have an ip address on each interface # Wait until we have an ip address on each interface
@ -348,9 +334,7 @@ let
startAll; startAll;
# Wait for networking to be configured # Wait for networking to be configured
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target"); $client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target"); $client2->waitForUnit("network.target");
# Print diagnostic information # Print diagnostic information
@ -391,9 +375,7 @@ let
startAll; startAll;
# Wait for networking to be configured # Wait for networking to be configured
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target"); $client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target"); $client2->waitForUnit("network.target");
# Test vlan is setup # Test vlan is setup

View File

@ -0,0 +1,33 @@
{ stdenv, fetchgit, pkgconfig, which, qtbase }:
let
version = "0.53.0";
in stdenv.mkDerivation {
name = "notepadqq-${version}";
src = fetchgit {
url = "https://github.com/notepadqq/notepadqq.git";
rev = "3b0751277fb268ec72b466b37d0f0977c536bc1b";
sha256 = "0hw94mn2xg2r58afvz1xg990jinv9aa33942zgwq54qwj61r93hi";
fetchSubmodules = true;
};
nativeBuildInputs = [
pkgconfig which
];
buildInputs = [
qtbase.qtsvg qtbase.qtwebkit qtbase.qttools
];
preConfigure = ''
export LRELEASE="lrelease"
'';
meta = {
homepage = "http://notepadqq.altervista.org/";
description = "Notepad++-like editor for the Linux desktop";
license = stdenv.lib.licenses.gpl3;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ rszibele ];
};
}

View File

@ -5,11 +5,11 @@
}: }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "hugin-2016.0.0"; name = "hugin-2016.2.0";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/hugin/${name}.tar.bz2"; url = "mirror://sourceforge/hugin/${name}.tar.bz2";
sha256 = "1rk5bgsvszv9bza46jxwr3i3qgiha2rza5v8lbwkqn4b4idv0c5h"; sha256 = "058zd63vx29yrx2pphbbll7kzcxkai22q26lpw13rn4lvp41pasl";
}; };
buildInputs = [ buildInputs = [

View File

@ -0,0 +1,29 @@
{ stdenv, fetchurl, libX11, libXinerama, imlib2 }:
stdenv.mkDerivation rec {
name = "imlibsetroot-${version}";
version = "1.2";
src = fetchurl {
url = "http://robotmonkeys.net/wp-content/uploads/2010/03/imlibsetroot-12.tar.gz";
sha256 = "8c1b3b7c861e4d865883ec13a96b8e4ab22464a87d4e6c67255b17a88e3cfd1c";
};
buildInputs = [ libX11 imlib2 libXinerama ];
buildPhase = ''
gcc -g imlibsetroot.c -o imlibsetroot \
`imlib2-config --cflags` `imlib2-config --libs` \
-I/include/X11/extensions -lXinerama -lX11
'';
installPhase = ''
mkdir -p $out/bin
install -m 755 imlibsetroot $out/bin
'';
meta = with stdenv.lib; {
description = "A Xinerama Aware Background Changer";
homepage = "http://robotmonkeys.net/2010/03/30/imlibsetroot/";
license = licenses.gpl2;
platforms = platforms.linux;
maintainers = with maintainers; [ lucas8 ];
};
}

View File

@ -0,0 +1,84 @@
{ stdenv
, fetchFromGitHub
, cmake
, jsoncpp
, libjson_rpc_cpp
, curl
, boost
, leveldb
, cryptopp
, libcpuid
, opencl-headers
, ocl-icd
, miniupnpc
, libmicrohttpd
, gmp
, mesa
, extraCmakeFlags ? []
}:
stdenv.mkDerivation rec {
name = "cpp-ethereum-${version}";
version = "1.3.0";
src = fetchFromGitHub {
owner = "ethereum";
repo = "cpp-ethereum";
rev = "62ab9522e58df9f28d2168ea27999a214b16ea96";
sha256 = "1fxgpqhmjhpv0zzs1m3yf9h8mh25dqpa7pmcfy7f9qiqpfdr4zq9";
};
cmakeFlags = [ "-DCMAKE_BUILD_TYPE=Release" extraCmakeFlags ];
configurePhase = ''
export BOOST_INCLUDEDIR=${boost.dev}/include
export BOOST_LIBRARYDIR=${boost.out}/lib
mkdir -p Build/Install
pushd Build
cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/Install $cmakeFlags
'';
enableParallelBuilding = true;
runPath = with stdenv.lib; makeLibraryPath ([ stdenv.cc.cc ] ++ buildInputs);
installPhase = ''
make install
mkdir -p $out
for f in Install/lib/*.so* $(find Install/bin -executable -type f); do
patchelf --set-rpath $runPath:$out/lib $f
done
cp -r Install/* $out
'';
buildInputs = [
cmake
jsoncpp
libjson_rpc_cpp
curl
boost
leveldb
cryptopp
libcpuid
opencl-headers
ocl-icd
miniupnpc
libmicrohttpd
gmp
mesa
];
dontStrip = true;
meta = with stdenv.lib; {
decription = "Ethereum C++ client";
homepage = https://github.com/ethereum/cpp-ethereum;
license = licenses.gpl3;
maintainers = with maintainers; [ artuuge ];
platforms = platforms.linux;
};
}

View File

@ -3,14 +3,14 @@
}: }:
let let
version = "11"; version = "12";
termite = stdenv.mkDerivation { termite = stdenv.mkDerivation {
name = "termite-${version}"; name = "termite-${version}";
src = fetchgit { src = fetchgit {
url = "https://github.com/thestinger/termite"; url = "https://github.com/thestinger/termite";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
sha256 = "1cw4yw7n9m2si8b7zcfyz9pyihncabxm5g39v1mxslfajxgwzmd8"; sha256 = "0s6dyg3vcqk5qcx90bs24wdnd3p56rdjdcanx4pcxvp6ksjl61jz";
}; };
postPatch = "sed '1i#include <math.h>' -i termite.cc"; postPatch = "sed '1i#include <math.h>' -i termite.cc";

View File

@ -1,115 +0,0 @@
{ stdenv
, fetchgit
, cmake
, boost
, gmp
, jsoncpp
, leveldb
, cryptopp
, libcpuid
, miniupnpc
, libjson_rpc_cpp
, curl
, libmicrohttpd
, mesa
, withOpenCL ? false
, opencl-headers ? null
, ocl-icd ? null
, withGUI ? false
, qtwebengine ? null
, qtbase ? null
, qtdeclarative ? null
, withProfiling ? false
, gperftools ? null
, withEVMJIT ? false
, llvm ? null
, zlib ? null
, ncurses ? null
, extraCmakeFlags ? []
}:
assert withOpenCL -> (opencl-headers != null) && (ocl-icd != null);
assert withGUI -> (qtwebengine != null) && (qtbase != null) && (qtdeclarative != null);
assert withProfiling -> (gperftools != null);
assert withEVMJIT -> (llvm != null) && (zlib != null) && (ncurses != null);
stdenv.mkDerivation rec {
name = "cpp-ethereum-${version}";
version = "1.2.9";
src = fetchgit {
url = https://github.com/ethereum/webthree-umbrella.git;
rev = "850479b159a0bfa316fd261ab96b0a043acd766c";
sha256 = "0k8w8gqzy71x77p0p85r38gfdnzrlzk2yvb3ablml9ppg4qb4ch5";
};
cmakeFlags = with stdenv.lib; concatStringsSep " " (flatten [
"-DGUI=${toString withGUI}"
"-DETHASHCL=${toString withOpenCL}"
"-DPROFILING=${toString withProfiling}"
"-DEVMJIT=${toString withEVMJIT}"
(optional withOpenCL [
"-DCMAKE_INCLUDE_PATH=${opencl-headers}/include"
"-DCMAKE_LIBRARY_PATH=${ocl-icd}/lib"
])
(optional withEVMJIT "-DCMAKE_PREFIX_PATH=${llvm}")
extraCmakeFlags
]);
configurePhase = ''
export BOOST_INCLUDEDIR=${boost.dev}/include
export BOOST_LIBRARYDIR=${boost.out}/lib
mkdir -p Build/Install
pushd Build
cmake .. -DCMAKE_INSTALL_PREFIX=$(pwd)/Install $cmakeFlags
'';
buildInputs = with stdenv.lib; [
cmake
boost
gmp
jsoncpp
leveldb
cryptopp
libcpuid
miniupnpc
libjson_rpc_cpp
curl
libmicrohttpd
mesa
] ++ optionals withOpenCL [ opencl-headers ocl-icd ]
++ optionals withGUI [ qtwebengine qtbase qtdeclarative ]
++ optional withProfiling gperftools
++ optionals withEVMJIT [ llvm zlib ncurses ];
runPath = with stdenv.lib; (makeLibraryPath (flatten [ stdenv.cc.cc buildInputs ]));
installPhase = ''
make install
mkdir -p $out
for f in Install/lib/*.so* $(find Install/bin -executable -type f); do
patchelf --set-rpath $runPath:$out/lib $f
done
cp -r Install/* $out
'';
dontStrip = true;
meta = with stdenv.lib; {
decription = "Umbrella project for the Ethereum C++ implementation";
homepage = https://github.com/ethereum/webthree-umbrella.git;
license = licenses.gpl3;
maintainers = with maintainers; [ artuuge ];
platforms = platforms.linux;
};
}

View File

@ -94,6 +94,8 @@ stdenv.mkDerivation rec {
dontStrip = true; dontStrip = true;
dontPatchELF = true; dontPatchELF = true;
preferLocalBuild = true;
outputs = [ "out" ] ++ lib.optional is-i686 "sa"; outputs = [ "out" ] ++ lib.optional is-i686 "sa";
installPhase = '' installPhase = ''

View File

@ -0,0 +1,23 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
name = "c14-cli-2016-09-09";
goPackagePath = "github.com/online-net/c14-cli";
subPackages = [ "cmd/c14" ];
src = fetchFromGitHub {
owner = "online-net";
repo = "c14-cli";
rev = "e7c7c3cb214fd06df63530a4e861210e7a0a1b6c";
sha256 = "1k53lii2c04j8cy1bnyfvckl9fglprxp75cmbg15lrp9iic2w22a";
};
goDeps = ./deps.nix;
meta = with stdenv.lib; {
description = "C14 is designed for data archiving & long-term backups.";
homepage = "https://www.online.net/en/c14";
license = licenses.mit;
maintainers = with maintainers; [ apeyroux ];
};
}

View File

@ -0,0 +1,65 @@
[
{
goPackagePath = "github.com/davecgh/go-spew";
fetch = {
type = "git";
url = "https://github.com/davecgh/go-spew";
rev = "6d212800a42e8ab5c146b8ace3490ee17e5225f9";
sha256 = "01i0n1s4j7khb7n6mz2wymniz37q0vbzkgfv7rbi6p9hpg227q93";
};
}
{
goPackagePath = "github.com/fatih/color";
fetch = {
type = "git";
url = "https://github.com/fatih/color";
rev = "87d4004f2ab62d0d255e0a38f1680aa534549fe3";
sha256 = "0d51avdl4z38f7jd8qmzrzyh4gxkcjpxd0vvma9zfqhmqy15jqhb";
};
}
{
goPackagePath = "github.com/mattn/go-colorable";
fetch = {
type = "git";
url = "https://github.com/mattn/go-colorable";
rev = "ed8eb9e318d7a84ce5915b495b7d35e0cfe7b5a8";
sha256 = "034fhyqmiqmn0v9gdbdmm0ca5d0pki2q1ch1rd34p9kh9574mjyq";
};
}
{
goPackagePath = "github.com/mattn/go-isatty";
fetch = {
type = "git";
url = "https://github.com/mattn/go-isatty";
rev = "66b8e73f3f5cda9f96b69efd03dd3d7fc4a5cdb8";
sha256 = "17lf13ndnai9a6dlmykqkdyzf1z04q7kffs0l7kvd78wpv3l6rm5";
};
}
{
goPackagePath = "github.com/online-net/c14-cli";
fetch = {
type = "git";
url = "https://github.com/online-net/c14-cli";
rev = "e7c7c3cb214fd06df63530a4e861210e7a0a1b6c";
sha256 = "1k53lii2c04j8cy1bnyfvckl9fglprxp75cmbg15lrp9iic2w22a";
};
}
{
goPackagePath = "github.com/pmezard/go-difflib";
fetch = {
type = "git";
url = "https://github.com/pmezard/go-difflib";
rev = "792786c7400a136282c1664665ae0a8db921c6c2";
sha256 = "0c1cn55m4rypmscgf0rrb88pn58j3ysvc2d0432dp3c6fqg6cnzw";
};
}
{
goPackagePath = "github.com/stretchr/testify";
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
rev = "d77da356e56a7428ad25149ca77381849a6a5232";
sha256 = "11id286pkzyswxcx2xz6185fzh0nz6yzkk055dd6z02gvinl6pqa";
};
}
]

View File

@ -21,11 +21,11 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "gajim-${version}"; name = "gajim-${version}";
version = "0.16.5"; version = "0.16.6";
src = fetchurl { src = fetchurl {
url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2"; url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2";
sha256 = "14fhcqnkqygh91132dnf1idayj4r3iqbwb44sd3mxv20n6ribh55"; sha256 = "1p3qwzy07f0wkika9yigyiq167l2k6wn12flqa7x55z4ihbysmqk";
}; };
patches = [ patches = [

View File

@ -2,12 +2,12 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "purple-hangouts-hg-${version}"; name = "purple-hangouts-hg-${version}";
version = "2016-08-31"; version = "2016-10-01";
src = fetchhg { src = fetchhg {
url = "https://bitbucket.org/EionRobb/purple-hangouts/"; url = "https://bitbucket.org/EionRobb/purple-hangouts/";
rev = "1c0286e48e92"; rev = "00e28b7";
sha256 = "0iv1isa8brm89nvmwrvxjm5ymx4svqrz3gf5yciqzf6kpc82gnxr"; sha256 = "08jllhhww3cqlw6dg9w1hli3havdfzb47grcdl184537gl2bl49d";
}; };
buildInputs = [ pidgin glib json_glib protobuf protobufc ]; buildInputs = [ pidgin glib json_glib protobuf protobufc ];

View File

@ -20,12 +20,12 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "1.5"; version = "1.6";
name = "weechat-${version}"; name = "weechat-${version}";
src = fetchurl { src = fetchurl {
url = "http://weechat.org/files/src/weechat-${version}.tar.bz2"; url = "http://weechat.org/files/src/weechat-${version}.tar.bz2";
sha256 = "0n4cbhh9a7qq6y70ac9b4r0kb7hydwsic99h45ppr2jly322fvij"; sha256 = "0d1wcpsxx13clcf1ygcn5hsa1pjkck4xznbjbxphbdxd5whsbv3k";
}; };
cmakeFlags = with stdenv.lib; [] cmakeFlags = with stdenv.lib; []
@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
++ optional tclSupport tcl ++ optional tclSupport tcl
++ extraBuildInputs; ++ extraBuildInputs;
NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix} -DCA_FILE=/etc/ssl/certs/ca-certificates.crt"; NIX_CFLAGS_COMPILE = "-I${python}/include/${python.libPrefix}";
postInstall = with stdenv.lib; '' postInstall = with stdenv.lib; ''
NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages" NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages"

View File

@ -1,9 +1,13 @@
{ stdenv, fetchurl, cmake, pkgconfig, makeWrapper { stdenv, fetchFromGitHub, cmake, pkgconfig, makeWrapper
, glib, gtk2, gettext, libxkbfile, libgnome_keyring, libX11 , glib, gtk3, gettext, libxkbfile, libgnome_keyring, libX11
, freerdp, libssh, libgcrypt, gnutls, makeDesktopItem }: , freerdp, libssh, libgcrypt, gnutls, makeDesktopItem
, pcre, webkitgtk, libdbusmenu-gtk3, libappindicator-gtk3
, libvncserver, libpthreadstubs, libXdmcp, libxkbcommon
, libsecret, spice_protocol, spice_gtk, epoxy, at_spi2_core
, openssl }:
let let
version = "1.0.0"; version = "1.2.0-rcgit.15";
desktopItem = makeDesktopItem { desktopItem = makeDesktopItem {
name = "remmina"; name = "remmina";
@ -15,29 +19,45 @@ let
categories = "GTK;GNOME;X-GNOME-NetworkSettings;Network;"; categories = "GTK;GNOME;X-GNOME-NetworkSettings;Network;";
}; };
# Latest release of remmina refers to thing that aren't yet in
# a FreeRDP release so we need to build one from git source
# See also https://github.com/FreeRDP/Remmina/pull/731
# Remove when FreeRDP release catches up with this commit
freerdp_git = stdenv.lib.overrideDerivation freerdp (args: {
name = "freerdp-git-2016-09-30";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "FreeRDP";
rev = "dbb353db92e7a5cb0be3c73aa950fb1113e627ec";
sha256 = "1nhm4v6z9var9hasp4bkmhvlrksbdizx95swx19shizfc82s9g4y";
};
});
in in
stdenv.mkDerivation { stdenv.mkDerivation {
name = "remmina-${version}"; name = "remmina-${version}";
src = fetchurl { src = fetchFromGitHub {
url = "https://github.com/downloads/FreeRDP/Remmina/Remmina-${version}.tar.gz"; owner = "FreeRDP";
sha256 = "7cd0d2d6adbd96c7139da8c4bfc4cf4821e1fa97242bb9cc9db32a53df289731"; repo = "Remmina";
rev = "v${version}";
sha256 = "07lj6a7x9cqcff18pwfkx8c8iml015zp6sq29dfcxpfg4ai578h0";
}; };
buildInputs = [ cmake pkgconfig makeWrapper buildInputs = [ cmake pkgconfig makeWrapper
glib gtk2 gettext libxkbfile libgnome_keyring libX11 glib gtk3 gettext libxkbfile libgnome_keyring libX11
freerdp libssh libgcrypt gnutls ]; freerdp_git libssh libgcrypt gnutls
pcre webkitgtk libdbusmenu-gtk3 libappindicator-gtk3
libvncserver libpthreadstubs libXdmcp libxkbcommon
libsecret spice_protocol spice_gtk epoxy at_spi2_core
openssl ];
cmakeFlags = "-DWITH_VTE=OFF -DWITH_TELEPATHY=OFF -DWITH_AVAHI=OFF"; cmakeFlags = "-DWITH_VTE=OFF -DWITH_TELEPATHY=OFF -DWITH_AVAHI=OFF -DWINPR_INCLUDE_DIR=${freerdp_git}/include/winpr2";
patches = [ ./lgthread.patch ];
postInstall = '' postInstall = ''
mkdir -pv $out/share/applications mkdir -pv $out/share/applications
mkdir -pv $out/share/icons
cp ${desktopItem}/share/applications/* $out/share/applications cp ${desktopItem}/share/applications/* $out/share/applications
cp -r $out/share/remmina/icons/* $out/share/icons
wrapProgram $out/bin/remmina --prefix LD_LIBRARY_PATH : "${libX11.out}/lib" wrapProgram $out/bin/remmina --prefix LD_LIBRARY_PATH : "${libX11.out}/lib"
''; '';

View File

@ -1,16 +0,0 @@
Fix [undefined reference to `g_thread_init'] as suggested by
http://ragnermagalhaes.blogspot.ru/2007/09/undefined-reference-to-gthreadinit.html
diff -ru FreeRDP-Remmina-356c033.orig/remmina/CMakeLists.txt FreeRDP-Remmina-356c033/remmina/CMakeLists.txt
--- FreeRDP-Remmina-356c033.orig/remmina/CMakeLists.txt 2013-11-05 12:43:27.660276912 +0400
+++ FreeRDP-Remmina-356c033/remmina/CMakeLists.txt 2013-11-05 12:53:39.607018349 +0400
@@ -132,6 +132,8 @@
endif()
endif()
+set( CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -lgthread-2.0" )
+
add_subdirectory(po)
add_subdirectory(icons)
add_subdirectory(desktop)

View File

@ -0,0 +1,25 @@
{ stdenv, buildGoPackage, fetchFromGitHub, fetchhg, fetchbzr, fetchsvn }:
buildGoPackage rec {
name = "rclone-${version}";
version = "1.33";
goPackagePath = "github.com/ncw/rclone";
src = fetchFromGitHub {
owner = "ncw";
repo = "rclone";
rev = "v${version}";
sha256 = "00y48ww40x73xpdvkzfhllwvbh9a2ffmmkc6ri9343wvmb53laqk";
};
goDeps = ./deps.nix;
meta = {
description = "Command line program to sync files and directories to and from major cloud storage";
homepage = "http://rclone.org";
license = stdenv.lib.licenses.mit;
maintainers = [ ];
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -0,0 +1,219 @@
# This file was generated by go2nix.
[
{
goPackagePath = "bazil.org/fuse";
fetch = {
type = "git";
url = "https://github.com/bazil/fuse";
rev = "371fbbdaa8987b715bdd21d6adc4c9b20155f748";
sha256 = "1x5p301py7mcxgwklfm6pqqkzssln0nfzllng49pnk60m03ilp4w";
};
}
{
goPackagePath = "cloud.google.com/go";
fetch = {
type = "git";
url = "https://code.googlesource.com/gocloud";
rev = "90296fd601ebfc594192e722a022663b0c3f8756";
sha256 = "0qg0d1afhqmpfaq2lh29c87d18s5148yshg0s295dhzdn1m9nhww";
};
}
{
goPackagePath = "github.com/Unknwon/goconfig";
fetch = {
type = "git";
url = "https://github.com/Unknwon/goconfig";
rev = "5aa4f8cd5a472c2411c778b4680f59f2223f1966";
sha256 = "0r6na17sz762c1dyn6gb16v2zhvzg6krmz7pcjg1m0l5wxdf4n0d";
};
}
{
goPackagePath = "github.com/VividCortex/ewma";
fetch = {
type = "git";
url = "https://github.com/VividCortex/ewma";
rev = "c595cd886c223c6c28fc9ae2727a61b5e4693d85";
sha256 = "0f09886vm4rkhgqqh2b20r8rws4syvny3la107hh6qby027bpab2";
};
}
{
goPackagePath = "github.com/aws/aws-sdk-go";
fetch = {
type = "git";
url = "https://github.com/aws/aws-sdk-go";
rev = "13a12060f716145019378a10e2806c174356b857";
sha256 = "09yl85kk2y4ayk44af5rbnkq4vy82vbh2z5ac4vpl2vgv7zyh46h";
};
}
{
goPackagePath = "github.com/cpuguy83/go-md2man";
fetch = {
type = "git";
url = "https://github.com/cpuguy83/go-md2man";
rev = "a65d4d2de4d5f7c74868dfa9b202a3c8be315aaa";
sha256 = "1rm3zjrmfpzy0l3qp02xmd5pqzl77pdql9pbxhl0k1qw2vfzrjv6";
};
}
{
goPackagePath = "github.com/google/go-querystring";
fetch = {
type = "git";
url = "https://github.com/google/go-querystring";
rev = "9235644dd9e52eeae6fa48efd539fdc351a0af53";
sha256 = "0q398679fwp7vlnpd2rlzz452a7a4qvpcspak81psfl3xwimpzgq";
};
}
{
goPackagePath = "github.com/mreiferson/go-httpclient";
fetch = {
type = "git";
url = "https://github.com/mreiferson/go-httpclient";
rev = "31f0106b4474f14bc441575c19d3a5fa21aa1f6c";
sha256 = "1iz95p7fl43smyh1lzjnwk6gq9y7q15m2qdkf0f4kxf3x5731v9i";
};
}
{
goPackagePath = "github.com/ncw/go-acd";
fetch = {
type = "git";
url = "https://github.com/ncw/go-acd";
rev = "56da839497f9854a91f99fe752c33c7977a6f48b";
sha256 = "1va6hpl73ps443r0s2icplcx113gkhmi2gbsgpaw2iii5lji5085";
};
}
{
goPackagePath = "github.com/ncw/swift";
fetch = {
type = "git";
url = "https://github.com/ncw/swift";
rev = "b964f2ca856aac39885e258ad25aec08d5f64ee6";
sha256 = "0c86ap1zb56r6g96cnbn5j3i3r96c5l8rl98h3sxlqi5agwp3km4";
};
}
{
goPackagePath = "github.com/ogier/pflag";
fetch = {
type = "git";
url = "https://github.com/ogier/pflag";
rev = "45c278ab3607870051a2ea9040bb85fcb8557481";
sha256 = "0620v75wppfd84d95n312wpngcb73cph4q3ivs1h0waljfnsrd5l";
};
}
{
goPackagePath = "github.com/pkg/errors";
fetch = {
type = "git";
url = "https://github.com/pkg/errors";
rev = "645ef00459ed84a119197bfb8d8205042c6df63d";
sha256 = "001i6n71ghp2l6kdl3qq1v2vmghcz3kicv9a5wgcihrzigm75pp5";
};
}
{
goPackagePath = "github.com/rfjakob/eme";
fetch = {
type = "git";
url = "https://github.com/rfjakob/eme";
rev = "601d0e278ceda9aa2085a61c9265f6e690ef5255";
sha256 = "1ryh5f2a42psrqcpjh73shk3p0mva2vcyyfav4nhxmfqall77k5z";
};
}
{
goPackagePath = "github.com/skratchdot/open-golang";
fetch = {
type = "git";
url = "https://github.com/skratchdot/open-golang";
rev = "75fb7ed4208cf72d323d7d02fd1a5964a7a9073c";
sha256 = "1b67imqbsdvg19vif1q1dfmapxy3v2anagacbql95fwnnw0v8jga";
};
}
{
goPackagePath = "github.com/spf13/cobra";
fetch = {
type = "git";
url = "https://github.com/spf13/cobra";
rev = "9c28e4bbd74e5c3ed7aacbc552b2cab7cfdfe744";
sha256 = "02bgp0yy9bi05k2in9axqi3db1c6mjffdsmki51pn9iryxz4zkh3";
};
}
{
goPackagePath = "github.com/spf13/pflag";
fetch = {
type = "git";
url = "https://github.com/spf13/pflag";
rev = "c7e63cf4530bcd3ba943729cee0efeff2ebea63f";
sha256 = "197mlkgb01zk86fxfl8r8maymcxsspqblg7hmngjxf7ivdid1i1l";
};
}
{
goPackagePath = "github.com/stacktic/dropbox";
fetch = {
type = "git";
url = "https://github.com/stacktic/dropbox";
rev = "58f839b21094d5e0af7caf613599830589233d20";
sha256 = "1psmxpnn40ri9bgjvivljnd4p977f635mh3w7m5mglxxgc9392pi";
};
}
{
goPackagePath = "github.com/tsenart/tb";
fetch = {
type = "git";
url = "https://github.com/tsenart/tb";
rev = "19f4c3d79d2bd67d0911b2e310b999eeea4454c1";
sha256 = "148vy4xij5qm8dq5plyczx2wbpi4gpg8ksr5r3b4m8j0z1kjws8y";
};
}
{
goPackagePath = "golang.org/x/crypto";
fetch = {
type = "git";
url = "https://go.googlesource.com/crypto";
rev = "5dc8cb4b8a8eb076cbb5a06bc3b8682c15bdbbd3";
sha256 = "18c1vpqlj10z1id66hglgnv51d9gwphgsdvxgghc6mcm01f1g5xj";
};
}
{
goPackagePath = "golang.org/x/net";
fetch = {
type = "git";
url = "https://go.googlesource.com/net";
rev = "6acef71eb69611914f7a30939ea9f6e194c78172";
sha256 = "1fcsv50sbq0lpzrhx3m9jw51wa255fsbqjwsx9iszq4d0gysnnvc";
};
}
{
goPackagePath = "golang.org/x/oauth2";
fetch = {
type = "git";
url = "https://go.googlesource.com/oauth2";
rev = "3c3a985cb79f52a3190fbc056984415ca6763d01";
sha256 = "0c7x8wkya56z03j2qfm61932npsddgqyggi75hkla9755d1inqlv";
};
}
{
goPackagePath = "golang.org/x/text";
fetch = {
type = "git";
url = "https://go.googlesource.com/text";
rev = "a71fd10341b064c10f4a81ceac72bcf70f26ea34";
sha256 = "1igxqrgnnb6983fl0yck0xal2hwnkcgbslr7cxyrg7a65vawd0q1";
};
}
{
goPackagePath = "google.golang.org/api";
fetch = {
type = "git";
url = "https://code.googlesource.com/google-api-go-client";
rev = "eb84d1a029af1654777e7ba65c979085305c3e38";
sha256 = "0ldmzcx5lxa81lcr39djcvyhd0ls11jlswj5877rinq3505ayf5l";
};
}
{
goPackagePath = "github.com/stretchr/testify/";
fetch = {
type = "git";
url = "https://github.com/stretchr/testify";
rev = "1f4a1643a57e798696635ea4c126e9127adb7d3c";
sha256 = "0nam9d68rn8ha8ldif22kkgv6k6ph3y88fp26159wdrs63ca3bzl";
};
}
]

View File

@ -0,0 +1,31 @@
{ stdenv, fetchFromGitHub, python3Packages }:
stdenv.mkDerivation rec {
name = "bean-add-2016-10-03";
src = fetchFromGitHub {
owner = "simon-v";
repo = "bean-add";
rev = "41deacc09b992db5eede34fefbfb2c0faeba1652";
sha256 = "09xdsskk5rc3xsf1v1vq7nkdxrxy8w2fixx2vdv8c97ak6a4hrca";
};
propagatedBuildInputs = with python3Packages; [ python readline ];
installPhase = ''
mkdir -p $out/bin/
cp bean-add $out/bin/bean-add
chmod +x $out/bin/bean-add
'';
meta = {
homepage = https://github.com/simon-v/bean-add/;
description = "beancount transaction entry assistant";
# The (only) source file states:
# License: "Do what you feel is right, but don't be a jerk" public license.
maintainers = with stdenv.lib.maintainers; [ matthiasbeyer ];
};
}

View File

@ -3,7 +3,7 @@
rec { rec {
major = "5"; major = "5";
minor = "2"; minor = "2";
patch = "1"; patch = "2";
tweak = "2"; tweak = "2";
subdir = "${major}.${minor}.${patch}"; subdir = "${major}.${minor}.${patch}";
@ -12,6 +12,6 @@ rec {
src = fetchurl { src = fetchurl {
url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz"; url = "http://download.documentfoundation.org/libreoffice/src/${subdir}/libreoffice-${version}.tar.xz";
sha256 = "14g2xwpid4vsgmc69rs7hz1wx96dfkq0cbm32vjgljsm7a19qfc1"; sha256 = "1q6rv935g633ngg10hzi23sg0wqfq2apyffagk7mj1kan2hflljr";
}; };
} }

View File

@ -42,14 +42,14 @@ let
translations = fetchSrc { translations = fetchSrc {
name = "translations"; name = "translations";
sha256 = "1ahdz1ynbab001441lqqlfphysr867rjcndq93z66mr5v3r1spvm"; sha256 = "0nxwf3b63gzb04svb6z1hi3qf95i90pwda5gpmlrfrq6250n3bpi";
}; };
# TODO: dictionaries # TODO: dictionaries
help = fetchSrc { help = fetchSrc {
name = "help"; name = "help";
sha256 = "0mln1mqy3c7k4c449w5knjnc4dv0ckl0i7q47p2pldxjjf5n2887"; sha256 = "1gm23i0snhcm4svciypm0qiviiqv9zpiyplkh22baccs7li3kih1";
}; };
}; };
@ -243,6 +243,7 @@ in stdenv.mkDerivation rec {
libxshmfence libatomic_ops graphite2 harfbuzz libxshmfence libatomic_ops graphite2 harfbuzz
librevenge libe-book libmwaw glm glew ncurses librevenge libe-book libmwaw glm glew ncurses
libodfgen CoinMP librdf_rasqal defaultIconTheme makeWrapper libodfgen CoinMP librdf_rasqal defaultIconTheme makeWrapper
gdb
] ]
++ lib.optional kdeIntegration kde4.kdelibs; ++ lib.optional kdeIntegration kde4.kdelibs;

View File

@ -8,13 +8,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "openshot-qt-${version}"; name = "openshot-qt-${version}";
version = "2.0.7"; version = "2.1.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OpenShot"; owner = "OpenShot";
repo = "openshot-qt"; repo = "openshot-qt";
rev = "v${version}"; rev = "v${version}";
sha256 = "1s4b61fd8cyjy8kvc25mqd97dkxx6gqmz02i42rrcriz51pw8wgh"; sha256 = "1cyr5m1n6qcb9bzkhh3v6ka91a6x9c50dl5j0ilrc8vj0mb43g8c";
}; };
buildInputs = [doxygen python3Packages.python makeWrapper ffmpeg]; buildInputs = [doxygen python3Packages.python makeWrapper ffmpeg];
@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
echo "exec ${python3Packages.python.interpreter} $(toPythonPath $out)/launch.py" >>$out/bin/openshot-qt echo "exec ${python3Packages.python.interpreter} $(toPythonPath $out)/launch.py" >>$out/bin/openshot-qt
chmod +x $out/bin/openshot-qt chmod +x $out/bin/openshot-qt
wrapProgram $out/bin/openshot-qt \ wrapProgram $out/bin/openshot-qt \
--prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${libopenshot}):$(toPythonPath ${python3Packages.pyqt5}):$(toPythonPath ${python3Packages.sip}):$(toPythonPath ${python3Packages.httplib2}):$PYTHONPATH" --prefix PYTHONPATH : "$(toPythonPath $out):$(toPythonPath ${libopenshot}):$(toPythonPath ${python3Packages.pyqt5}):$(toPythonPath ${python3Packages.sip}):$(toPythonPath ${python3Packages.httplib2}):$(toPythonPath ${python3Packages.pyzmq}):$PYTHONPATH"
''; '';
doCheck = false; doCheck = false;

View File

@ -5,13 +5,13 @@ with stdenv.lib;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libopenshot-audio-${version}"; name = "libopenshot-audio-${version}";
version = "0.1.1"; version = "0.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OpenShot"; owner = "OpenShot";
repo = "libopenshot-audio"; repo = "libopenshot-audio";
rev = "v${version}"; rev = "v${version}";
sha256 = "0pgw7vzx3znglwm58187ybhg5maa13n4xcy5hrhzfsp8bqhrwkc7"; sha256 = "0dxyhnqkjc5y4hra8s17q9lafll6fx0pgibmmjznjm70whqcj8a6";
}; };
buildInputs = [ buildInputs = [

View File

@ -1,5 +1,7 @@
{stdenv, fetchurl, fetchFromGitHub, callPackage, cmake, doxygen {stdenv, fetchurl, fetchFromGitHub, callPackage, cmake, doxygen
, imagemagick, ffmpeg, qt55, swig, python3, ruby, unittest-cpp}: , imagemagick, ffmpeg, qt55, swig, python3, ruby, unittest-cpp
, cppzmq, czmqpp
}:
with stdenv.lib; with stdenv.lib;
@ -8,13 +10,13 @@ let
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libopenshot-${version}"; name = "libopenshot-${version}";
version = "0.1.1"; version = "0.1.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "OpenShot"; owner = "OpenShot";
repo = "libopenshot"; repo = "libopenshot";
rev = "v${version}"; rev = "v${version}";
sha256 = "12nfkris7spn8n4s8fvy2f6yk1hqh97wzh1z3fsdxldg4gppi903"; sha256 = "00051ipb8y4z9j5m5smwm1ahv755k0glarwic8fv5b9fzryfbrdm";
}; };
patchPhase = '' patchPhase = ''
@ -28,7 +30,7 @@ stdenv.mkDerivation rec {
buildInputs = [ buildInputs = [
cmake doxygen cmake doxygen
imagemagick ffmpeg qt55.qtbase qt55.qtmultimedia swig python3 ruby imagemagick ffmpeg qt55.qtbase qt55.qtmultimedia swig python3 ruby
unittest-cpp unittest-cpp cppzmq czmqpp
]; ];
LIBOPENSHOT_AUDIO_DIR = "${libopenshot_audio}"; LIBOPENSHOT_AUDIO_DIR = "${libopenshot_audio}";

View File

@ -22,7 +22,11 @@ assert (kernel.version == grsecPatch.kver);
overrideDerivation (kernel.override { overrideDerivation (kernel.override {
inherit modDirVersion; inherit modDirVersion;
kernelPatches = [ grsecPatch ] ++ kernelPatches ++ (kernel.kernelPatches or []); kernelPatches = [ grsecPatch ] ++ kernelPatches ++ (kernel.kernelPatches or []);
inherit extraConfig; extraConfig = ''
GRKERNSEC y
PAX y
${extraConfig}
'';
ignoreConfigErrors = true; ignoreConfigErrors = true;
}) (attrs: { }) (attrs: {
nativeBuildInputs = (lib.chooseDevOutputs [ gmp libmpc mpfr ]) ++ (attrs.nativeBuildInputs or []); nativeBuildInputs = (lib.chooseDevOutputs [ gmp libmpc mpfr ]) ++ (attrs.nativeBuildInputs or []);

View File

@ -1,6 +1,7 @@
{ stdenv, fetchurl, intltool, pkgconfig, gnome3, gtk3 { stdenv, fetchurl, intltool, pkgconfig, gnome3, gtk3
, gobjectIntrospection, gdk_pixbuf, librsvg, autoreconfHook , gobjectIntrospection, gdk_pixbuf, librsvg, autoreconfHook
, geoclue2, wrapGAppsHook, folks, libchamplain, gfbgraph, file, libsoup }: , geoclue2, wrapGAppsHook, folks, libchamplain, gfbgraph, file, libsoup
, webkitgtk }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit (import ./src.nix fetchurl) name src; inherit (import ./src.nix fetchurl) name src;
@ -12,7 +13,8 @@ stdenv.mkDerivation rec {
gnome3.geocode_glib libchamplain file libsoup gnome3.geocode_glib libchamplain file libsoup
gdk_pixbuf librsvg autoreconfHook gdk_pixbuf librsvg autoreconfHook
gnome3.gsettings_desktop_schemas gnome3.evolution_data_server gnome3.gsettings_desktop_schemas gnome3.evolution_data_server
gnome3.gnome_online_accounts gnome3.defaultIconTheme ]; gnome3.gnome_online_accounts gnome3.defaultIconTheme
webkitgtk ];
patches = [ ./soup.patch ]; patches = [ ./soup.patch ];

View File

@ -39,12 +39,12 @@ let baseAttrs = rec {
in stdenv.mkDerivation ( baseAttrs in stdenv.mkDerivation ( baseAttrs
// stdenv.lib.optionalAttrs selectTextPatch rec { // stdenv.lib.optionalAttrs selectTextPatch rec {
name = "vte-ng-${version}"; name = "vte-ng-${version}";
version = "0.42.4.a"; version = "0.44.1b-ng";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "thestinger"; owner = "thestinger";
repo = "vte-ng"; repo = "vte-ng";
rev = version; rev = version;
sha256 = "1w91lz30j5lrskp9ds5j3nn27m5mpdpn7nlcvf5y1w63mpmjg8k1"; sha256 = "0p61znma9742fd3c6b44rq7j6mhpr6gx2b9rldm3jhb62ss4vsyy";
}; };
# slightly hacky; I couldn't make it work with autoreconfHook # slightly hacky; I couldn't make it work with autoreconfHook
configureScript = "./autogen.sh"; configureScript = "./autogen.sh";

View File

@ -46,7 +46,7 @@ let
]; ];
inherit (pkgs) glib gtk2 webkitgtk24x webkitgtk212x gtk3 gtkmm3 libcanberra_gtk2 inherit (pkgs) glib gtk2 webkitgtk24x webkitgtk212x gtk3 gtkmm3 libcanberra_gtk2
clutter clutter-gst clutter_gtk cogl; clutter clutter-gst clutter_gtk cogl gtkvnc;
inherit (pkgs.gnome2) ORBit2; inherit (pkgs.gnome2) ORBit2;
libsoup = pkgs.libsoup.override { gnomeSupport = true; }; libsoup = pkgs.libsoup.override { gnomeSupport = true; };
libchamplain = pkgs.libchamplain.override { libsoup = libsoup; }; libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
@ -54,7 +54,6 @@ let
gnome3 = self // { recurseForDerivations = false; }; gnome3 = self // { recurseForDerivations = false; };
gtk = gtk3; gtk = gtk3;
gtkmm = gtkmm3; gtkmm = gtkmm3;
gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; };
vala = pkgs.vala_0_32; vala = pkgs.vala_0_32;
gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; }; gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; };
webkitgtk = webkitgtk212x; webkitgtk = webkitgtk212x;
@ -268,7 +267,6 @@ let
glade = callPackage ./apps/glade { }; glade = callPackage ./apps/glade { };
gnome-boxes = callPackage ./apps/gnome-boxes { gnome-boxes = callPackage ./apps/gnome-boxes {
gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; };
spice_gtk = pkgs.spice_gtk; spice_gtk = pkgs.spice_gtk;
}; };

View File

@ -1 +1 @@
WGET_ARGS=( http://download.kde.org/stable/plasma/5.7.4/ -A '*.tar.xz' ) WGET_ARGS=( http://download.kde.org/stable/plasma/5.7.5/ -A '*.tar.xz' )

View File

@ -21,7 +21,7 @@ plasmaPackage {
kidletime kinit kio knewstuff knotifications kpackage kscreenlocker kservice kidletime kinit kio knewstuff knotifications kpackage kscreenlocker kservice
kwayland kwidgetsaddons kwindowsystem kxmlgui libinput libICE libSM kwayland kwidgetsaddons kwindowsystem kxmlgui libinput libICE libSM
plasma-framework qtdeclarative qtmultimedia qtscript qtx11extras udev plasma-framework qtdeclarative qtmultimedia qtscript qtx11extras udev
wayland xcb-util-cursor wayland xcb-util-cursor xwayland
]; ];
patches = copyPathsToStore (lib.readPathsFromFile ./. ./series); patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
postPatch = '' postPatch = ''

View File

@ -3,315 +3,323 @@
{ {
bluedevil = { bluedevil = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/bluedevil-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/bluedevil-5.7.5.tar.xz";
sha256 = "0f6hdl5z9nfakhgsh9lgf1j63wnrw28wdqibahra6n97z5q6ymn9"; sha256 = "1kvdaf1dkzafc3kkgwj0jzdkd897jfdqpp9spk9ywg7pd3ds072x";
name = "bluedevil-5.7.4.tar.xz"; name = "bluedevil-5.7.5.tar.xz";
}; };
}; };
breeze = { breeze = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/breeze-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/breeze-5.7.5.tar.xz";
sha256 = "0sjcbn87zk1xnkw19byhqwkldz9j1j10421akc77cwla0qmz1586"; sha256 = "0amxc3g4bb3mg5fai8ssjfvpxd86kx9zz45qpxpgp4jb5g6n03w2";
name = "breeze-5.7.4.tar.xz"; name = "breeze-5.7.5.tar.xz";
}; };
}; };
breeze-grub = { breeze-grub = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/breeze-grub-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/breeze-grub-5.7.5.tar.xz";
sha256 = "0gixa1myhim3g06jpvbp5ygkmg1pq8bncigc9njc2fxxy8naj8jf"; sha256 = "03wgxxgpgkcx5jrm13h3sc1f5b8zwa2jqzvmc1fpb3y0m4qaajvy";
name = "breeze-grub-5.7.4.tar.xz"; name = "breeze-grub-5.7.5.tar.xz";
}; };
}; };
breeze-gtk = { breeze-gtk = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/breeze-gtk-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/breeze-gtk-5.7.5.tar.xz";
sha256 = "0igrr82cprk69g19h2lgv265780jbjlgbj1rh1j6hpfccwrwhg0x"; sha256 = "0vg60b999z9pli5ng8jnb6svy80jv9c2sn63b7a6xj59xajclzxc";
name = "breeze-gtk-5.7.4.tar.xz"; name = "breeze-gtk-5.7.5.tar.xz";
}; };
}; };
breeze-plymouth = { breeze-plymouth = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/breeze-plymouth-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/breeze-plymouth-5.7.5.tar.xz";
sha256 = "02qn0fvkcq4gd170pakm0ypfmwj51wjascdhylvn9aclmac3j7zk"; sha256 = "08bxsfljpaz3qpy7p6zxs1bfnssjs951kh3v0qb5wwa4zpm04zpd";
name = "breeze-plymouth-5.7.4.tar.xz"; name = "breeze-plymouth-5.7.5.tar.xz";
}; };
}; };
discover = { discover = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/discover-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/discover-5.7.5.tar.xz";
sha256 = "00w4n7c7k0lmjkqa6554sg0fh91n8aj01srcq6dz5h5fx1n858wz"; sha256 = "1i3qmyxl4rs3849hsgda85x6lckbl4ycal3dl3s6k1mx9fk6hm6c";
name = "discover-5.7.4.tar.xz"; name = "discover-5.7.5.tar.xz";
}; };
}; };
kactivitymanagerd = { kactivitymanagerd = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kactivitymanagerd-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kactivitymanagerd-5.7.5.tar.xz";
sha256 = "10v4w8cadrhnc7xpy8j0s1fi10gmcv1vvisi6lc8vqzdil2hk89b"; sha256 = "1ly57792c27vvia62gmnc3xrpav9ysfzql8xrapw09vdvyp0yc6r";
name = "kactivitymanagerd-5.7.4.tar.xz"; name = "kactivitymanagerd-5.7.5.tar.xz";
}; };
}; };
kde-cli-tools = { kde-cli-tools = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kde-cli-tools-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kde-cli-tools-5.7.5.tar.xz";
sha256 = "0q2dz8qx2zqsc7d185zvmv1x5wz1mvkb8zs6i2454l2l1jy6934p"; sha256 = "0jmav5mkn3qvv8a52kpfyn0065g4wnqiw2r7gw9fh0qh4wckd85s";
name = "kde-cli-tools-5.7.4.tar.xz"; name = "kde-cli-tools-5.7.5.tar.xz";
}; };
}; };
kdecoration = { kdecoration = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kdecoration-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kdecoration-5.7.5.tar.xz";
sha256 = "160cb3ra9vgxydrgskvsacm50jhwnb0caqmfaj387gcpykxxayl1"; sha256 = "091h6aivk58k66cpry6h3i4w3vsmpl0d3i9r9zz679j0mz5vghxf";
name = "kdecoration-5.7.4.tar.xz"; name = "kdecoration-5.7.5.tar.xz";
}; };
}; };
kde-gtk-config = { kde-gtk-config = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kde-gtk-config-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kde-gtk-config-5.7.5.tar.xz";
sha256 = "0l69d6rj0r9mga2p6rf9vwsalcir140xb3szy2nhdrgqmrka3mbl"; sha256 = "1r82js7b2js97v803qky6cybb1239c0628m4a11am81191d0a0rn";
name = "kde-gtk-config-5.7.4.tar.xz"; name = "kde-gtk-config-5.7.5.tar.xz";
}; };
}; };
kdeplasma-addons = { kdeplasma-addons = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kdeplasma-addons-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kdeplasma-addons-5.7.5.tar.xz";
sha256 = "0vc865f3903g93r5w8phi9l0rnlblq68nirwblic2j2a2gyjsn4r"; sha256 = "04qnbharl3z74d8jwrvky02mrzcy9h92827a8qcx6xis9kfvlrh0";
name = "kdeplasma-addons-5.7.4.tar.xz"; name = "kdeplasma-addons-5.7.5.tar.xz";
}; };
}; };
kgamma5 = { kgamma5 = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kgamma5-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kgamma5-5.7.5.tar.xz";
sha256 = "15y86qhgrfs7p8imabsf45l7rpfis1mcjg4g22phizk17w4rzk92"; sha256 = "1x2vn26f6krb9zxkyj7kxj4wlmjqjslvqncvmwbsi4lxpnsrsxsk";
name = "kgamma5-5.7.4.tar.xz"; name = "kgamma5-5.7.5.tar.xz";
}; };
}; };
khotkeys = { khotkeys = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/khotkeys-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/khotkeys-5.7.5.tar.xz";
sha256 = "1lggfcgpq4x1hdvlcjmi3k63rffprhrpjkfvjhryhx62648xb24a"; sha256 = "0c54zkib69dg31llipbkabd40hs16p0ff4h6mpw3x3iqj2nmxjpg";
name = "khotkeys-5.7.4.tar.xz"; name = "khotkeys-5.7.5.tar.xz";
}; };
}; };
kinfocenter = { kinfocenter = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kinfocenter-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kinfocenter-5.7.5.tar.xz";
sha256 = "0j4l5yw0h0iwqqcfyah1wh5mnrg47nhqmqza7dz13b48n0bpg31l"; sha256 = "0f2j25jvqjw4qy7xaqz1l0sba9vsjp6x6f32ykblnb1kbmbzbkgr";
name = "kinfocenter-5.7.4.tar.xz"; name = "kinfocenter-5.7.5.tar.xz";
}; };
}; };
kmenuedit = { kmenuedit = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kmenuedit-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kmenuedit-5.7.5.tar.xz";
sha256 = "1g8a092kx68spvrys0b8xjyrnx1y94i5lsi51j1cw0ylgjmqsp3p"; sha256 = "1midyip0vb9zs4xcyzih5vlj49klkmby3w9ylb2mq4bvp9h62bx1";
name = "kmenuedit-5.7.4.tar.xz"; name = "kmenuedit-5.7.5.tar.xz";
}; };
}; };
kscreen = { kscreen = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kscreen-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kscreen-5.7.5.tar.xz";
sha256 = "1i0c0znfr2y7b5aczmkym5aflh08sv1f7nfi3j6xmbzcxpfdvidy"; sha256 = "1hjnbqgng19k5bxfx9m5kbm6hx6rn0hr7ya00i8nj8qvb4l8q7cd";
name = "kscreen-5.7.4.tar.xz"; name = "kscreen-5.7.5.tar.xz";
}; };
}; };
kscreenlocker = { kscreenlocker = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kscreenlocker-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kscreenlocker-5.7.5.tar.xz";
sha256 = "03giy5fxy11bdz6ww5hmgwhnlngcrzk7ahp4l1sd9yf3fd4rav6q"; sha256 = "1q8dpfsprrd8ryindi8xpssc8sn2j7fiwzx6awmgxa3ibz0y7zv5";
name = "kscreenlocker-5.7.4.tar.xz"; name = "kscreenlocker-5.7.5.tar.xz";
}; };
}; };
ksshaskpass = { ksshaskpass = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/ksshaskpass-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/ksshaskpass-5.7.5.tar.xz";
sha256 = "15b0jhpkg086rspjmcpqi0ylnvxvl9wylz13vkaqdm6408d558gg"; sha256 = "0f89s06phnzwn4k4y51haqcw8i5bp6rh1ns0qpyps03vpalqhwln";
name = "ksshaskpass-5.7.4.tar.xz"; name = "ksshaskpass-5.7.5.tar.xz";
}; };
}; };
ksysguard = { ksysguard = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/ksysguard-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/ksysguard-5.7.5.tar.xz";
sha256 = "1r96zrplcbfb37r8vxvm2hzq638g979xx9y0jrsyhpzxhxgv4w1w"; sha256 = "0b9y98043craw4afzs63lw7xgi0fbylyr6iv24zxxyig50n8frs7";
name = "ksysguard-5.7.4.tar.xz"; name = "ksysguard-5.7.5.tar.xz";
}; };
}; };
kwallet-pam = { kwallet-pam = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kwallet-pam-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kwallet-pam-5.7.5.tar.xz";
sha256 = "1p3py66qw09s9pcrbn0x356c13w24nrhkgypz0v3kyr51ia1r1jr"; sha256 = "1ljxfp8w20329c67y0hkk9ar4mff0x3329lq2rlj9sdsxrhbn6sa";
name = "kwallet-pam-5.7.4.tar.xz"; name = "kwallet-pam-5.7.5.tar.xz";
}; };
}; };
kwayland-integration = { kwayland-integration = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kwayland-integration-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kwayland-integration-5.7.5.tar.xz";
sha256 = "05n0m38rmil1zg5clilsic2pq7973nymcr54w6kh93dzrr4r9ls3"; sha256 = "1da8qq67nn2bilarxn9g76hys723jrv8p0vazq7dnis786adk1yl";
name = "kwayland-integration-5.7.4.tar.xz"; name = "kwayland-integration-5.7.5.tar.xz";
}; };
}; };
kwin = { kwin = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kwin-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kwin-5.7.5.tar.xz";
sha256 = "06fmk3jpk3zbig46rzsi5wmxa17z0lnh3r0fk9hxdalxdz4c9ws8"; sha256 = "1mi6j7lqdarzih8ib4lxxc9wk4yx0898cl9s6j4rqs8rzz9rh7mb";
name = "kwin-5.7.4.tar.xz"; name = "kwin-5.7.5.tar.xz";
}; };
}; };
kwrited = { kwrited = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/kwrited-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/kwrited-5.7.5.tar.xz";
sha256 = "14c1rw8vmvi4iffqinkz7pgk49g80hw3mhh2mqk5lqj21rnrliqz"; sha256 = "0kqjgqq92sd92897sk7a28mzvyjzbismx816llyld6f1lm7saqrs";
name = "kwrited-5.7.4.tar.xz"; name = "kwrited-5.7.5.tar.xz";
}; };
}; };
libkscreen = { libkscreen = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/libkscreen-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/libkscreen-5.7.5.tar.xz";
sha256 = "1jifb6xi3d541y2c3ipx666dr4wa0i9sc59a4s75cdp82322qvsj"; sha256 = "0z4wk0g7qwr9jq8larpv2y7j7cfklarimjnwdi7hjvgvkjb98671";
name = "libkscreen-5.7.4.tar.xz"; name = "libkscreen-5.7.5.tar.xz";
}; };
}; };
libksysguard = { libksysguard = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/libksysguard-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/libksysguard-5.7.5.tar.xz";
sha256 = "1kkfsjzpraj0hc02mrz93jdp3ha2dv0m28jmwrxd7z059slfyfj0"; sha256 = "0iys51c72lg5v503cpns3vqw915mh43p21185v461qmp63pf9145";
name = "libksysguard-5.7.4.tar.xz"; name = "libksysguard-5.7.5.tar.xz";
}; };
}; };
milou = { milou = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/milou-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/milou-5.7.5.tar.xz";
sha256 = "1v117cdsiwg4l6g7x2k0mpgp57a9gc6k95jxxms9d41hqwq8qg6q"; sha256 = "0wnz2rj27rk272zk12gj3231lljqiq9z9ymkvfza14pqikx2vyq5";
name = "milou-5.7.4.tar.xz"; name = "milou-5.7.5.tar.xz";
}; };
}; };
oxygen = { oxygen = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/oxygen-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/oxygen-5.7.5.tar.xz";
sha256 = "1g18h5a3vxa7pxp07wg9g0yzddvjcqs7cnrlrb2mj8r4zdxg4nx3"; sha256 = "0y6s50w27q94zk9kdf6jy4zicr593ks63dygpjhj0iwll3wqnw39";
name = "oxygen-5.7.4.tar.xz"; name = "oxygen-5.7.5.tar.xz";
}; };
}; };
plasma-desktop = { plasma-desktop = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/plasma-desktop-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/plasma-desktop-5.7.5.tar.xz";
sha256 = "0xm8666acp3149gd9simmbkjpi36fbibpy86ppj0hg26pknc66mr"; sha256 = "04x6sr6mh0bkzwbq9kvvr94ffijnzymbdsxzm8r3739grk5hbg3y";
name = "plasma-desktop-5.7.4.tar.xz"; name = "plasma-desktop-5.7.5.tar.xz";
}; };
}; };
plasma-integration = { plasma-integration = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/plasma-integration-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/plasma-integration-5.7.5.tar.xz";
sha256 = "0h0pmwhkz052dzv7gk9j2a699912agzx39z9iirhigkwniij8q1x"; sha256 = "05nfycbzj27q4jcc9qw2d42nxdib73fr7v5ai4agmlrj733bs6nl";
name = "plasma-integration-5.7.4.tar.xz"; name = "plasma-integration-5.7.5.tar.xz";
};
};
plasma-mediacenter = {
version = "5.7.5";
src = fetchurl {
url = "${mirror}/stable/plasma/5.7.5/plasma-mediacenter-5.7.5.tar.xz";
sha256 = "1gv3m1cragvgj6mf1n3zvpjddqxjn8jmqdm657iw87p5qgdzf3fx";
name = "plasma-mediacenter-5.7.5.tar.xz";
}; };
}; };
plasma-nm = { plasma-nm = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/plasma-nm-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/plasma-nm-5.7.5.tar.xz";
sha256 = "0p5c4n6xc4dw9393l2an320z85mgg8f9wsa04dxdami2638drq9i"; sha256 = "1vpd3bvlvzw1xjs2sxsn4bllc5igxz4102zjnrxhj0r7jrn2ax7b";
name = "plasma-nm-5.7.4.tar.xz"; name = "plasma-nm-5.7.5.tar.xz";
}; };
}; };
plasma-pa = { plasma-pa = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/plasma-pa-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/plasma-pa-5.7.5.tar.xz";
sha256 = "1zk6kry02vfmm4mwznq5gy7xzjlbpvbb4a749z0zq0nkmlpx78d4"; sha256 = "09wagng7v33kxlyq8vd498fahcixs00dq22g46243xrf363rsa6i";
name = "plasma-pa-5.7.4.tar.xz"; name = "plasma-pa-5.7.5.tar.xz";
}; };
}; };
plasma-sdk = { plasma-sdk = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/plasma-sdk-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/plasma-sdk-5.7.5.tar.xz";
sha256 = "11zq31ja965p9xi4k5siki25blmy5lqsmhscq6pysqs7yzijjban"; sha256 = "07x1dywdm5x93bm7c6ipm0jqrwlphq45vgp878sd67mwj6gdc2s2";
name = "plasma-sdk-5.7.4.tar.xz"; name = "plasma-sdk-5.7.5.tar.xz";
}; };
}; };
plasma-workspace = { plasma-workspace = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/plasma-workspace-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/plasma-workspace-5.7.5.tar.xz";
sha256 = "0g8f1wn3cjgxiyvsbgaac91digglrka9lqsf1xr4fj6l7kfvb1ap"; sha256 = "1xdr7skwb8jbkc6nzyb7r4ima23qaiyin3qkcf0xa4n20krrlv8i";
name = "plasma-workspace-5.7.4.tar.xz"; name = "plasma-workspace-5.7.5.tar.xz";
}; };
}; };
plasma-workspace-wallpapers = { plasma-workspace-wallpapers = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/plasma-workspace-wallpapers-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/plasma-workspace-wallpapers-5.7.5.tar.xz";
sha256 = "1px6sp59wld8j6b7a22dc61b4x4rk4jv4bdfispkxv9b6nb29pdp"; sha256 = "1z64vnm05n8wh17g509ndhmvi1ivbjmdnlxy5jn69ayfipz49bpi";
name = "plasma-workspace-wallpapers-5.7.4.tar.xz"; name = "plasma-workspace-wallpapers-5.7.5.tar.xz";
}; };
}; };
polkit-kde-agent = { polkit-kde-agent = {
version = "1-5.7.4"; version = "1-5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/polkit-kde-agent-1-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/polkit-kde-agent-1-5.7.5.tar.xz";
sha256 = "19xw0y1d5cbxs5x79gg8x5nhpsc3lzrk3cq913symg1lz4y8py8l"; sha256 = "1mham7i0wwskjdaybn5rqsib4k77gjwb61yzf7vibbfv6njra8af";
name = "polkit-kde-agent-1-5.7.4.tar.xz"; name = "polkit-kde-agent-1-5.7.5.tar.xz";
}; };
}; };
powerdevil = { powerdevil = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/powerdevil-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/powerdevil-5.7.5.tar.xz";
sha256 = "19vjhs7cccfgvln4zn8wdnawk5xq6l12qi9jkzzxbhds456xqr84"; sha256 = "1j9fiyqxgccpxxssgj9mjr8wr9sklqq0k1nijzimbc1vg7ghxyak";
name = "powerdevil-5.7.4.tar.xz"; name = "powerdevil-5.7.5.tar.xz";
}; };
}; };
sddm-kcm = { sddm-kcm = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/sddm-kcm-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/sddm-kcm-5.7.5.tar.xz";
sha256 = "0aljr8pmc65dd6xq4c1i17wasn50nk3p3qwm54rfm9z063qm865h"; sha256 = "1s8jkip5fn2ljll0xsj4sy46bz9ggp1qx4q0fwriqagfr0pvphs1";
name = "sddm-kcm-5.7.4.tar.xz"; name = "sddm-kcm-5.7.5.tar.xz";
}; };
}; };
systemsettings = { systemsettings = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/systemsettings-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/systemsettings-5.7.5.tar.xz";
sha256 = "024rqmnw5bdph15ck8zmzxjars77jzh0hfh3yys1c3ydbhnvrc3w"; sha256 = "16r0ajzj9g1k1g7ypmxzknwqw38xki98jq9yvycawkf0jpg3h2cn";
name = "systemsettings-5.7.4.tar.xz"; name = "systemsettings-5.7.5.tar.xz";
}; };
}; };
user-manager = { user-manager = {
version = "5.7.4"; version = "5.7.5";
src = fetchurl { src = fetchurl {
url = "${mirror}/stable/plasma/5.7.4/user-manager-5.7.4.tar.xz"; url = "${mirror}/stable/plasma/5.7.5/user-manager-5.7.5.tar.xz";
sha256 = "002qzlvh911ybffp7d0ln4qn6z87lnikagmcagy5bb3ypg217ijf"; sha256 = "1zrcy8vj59xa0b57liqm48lvkmw9g9w0l4kzkg9li37hf6z3hk6s";
name = "user-manager-5.7.4.tar.xz"; name = "user-manager-5.7.5.tar.xz";
}; };
}; };
} }

View File

@ -92,6 +92,13 @@ stdenv.mkDerivation {
# Useful debugging parameter # Useful debugging parameter
# export VERBOSE=1 # export VERBOSE=1
'' +
# In src/compiler-rt/cmake/config-ix.cmake, the cmake build falls
# back to darwin 10.4. This causes the OS name to be recorded as
# "10.4" rather than the expected "osx". But mk/rt.mk expects the
# built library name to have an "_osx" suffix on darwin.
optionalString stdenv.isDarwin ''
substituteInPlace mk/rt.mk --replace "_osx" "_10.4"
''; '';
preConfigure = '' preConfigure = ''
@ -118,7 +125,13 @@ stdenv.mkDerivation {
preCheck = '' preCheck = ''
export TZDIR=${tzdata}/share/zoneinfo export TZDIR=${tzdata}/share/zoneinfo
${optionalString stdenv.isDarwin "export TMPDIR=/tmp"} '' +
# Ensure TMPDIR is set, and disable a test that removing the HOME
# variable from the environment falls back to another home
# directory.
optionalString stdenv.isDarwin ''
export TMPDIR=/tmp
sed -i '28s/home_dir().is_some()/true/' ./src/test/run-pass/env-home-dir.rs
''; '';
# Disable doCheck on Darwin to work around upstream issue # Disable doCheck on Darwin to work around upstream issue

View File

@ -160,8 +160,10 @@ self: super: {
ABList = dontCheck super.ABList; ABList = dontCheck super.ABList;
# https://github.com/haskell/vector/issues/47 # https://github.com/haskell/vector/issues/47
vector = if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector; # https://github.com/haskell/vector/issues/138
vector = doJailbreak (if pkgs.stdenv.isi686 then appendConfigureFlag super.vector "--ghc-options=-msse2" else super.vector);
# Fix Darwin build.
halive = if pkgs.stdenv.isDarwin halive = if pkgs.stdenv.isDarwin
then addBuildDepend super.halive pkgs.darwin.apple_sdk.frameworks.AppKit then addBuildDepend super.halive pkgs.darwin.apple_sdk.frameworks.AppKit
else super.halive; else super.halive;

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,32 +1,35 @@
{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub { stdenv, lib, fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
, zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison , zlib, openssl, gdbm, ncurses, readline, groff, libyaml, libffi, autoreconfHook, bison
, autoconf, darwin ? null , autoconf, darwin ? null
, buildEnv, bundler, bundix , buildEnv, bundler, bundix
} @ args: } @ args:
let let
op = stdenv.lib.optional; op = lib.optional;
ops = stdenv.lib.optionals; ops = lib.optionals;
opString = stdenv.lib.optionalString; opString = lib.optionalString;
patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; }; patchSet = import ./rvm-patchsets.nix { inherit fetchFromGitHub; };
config = import ./config.nix { inherit fetchFromSavannah; }; config = import ./config.nix { inherit fetchFromSavannah; };
rubygemsSrc = import ./rubygems-src.nix { inherit fetchurl; }; rubygemsSrc = import ./rubygems-src.nix { inherit fetchurl; };
rubygemsPatch = fetchpatch {
url = "https://github.com/zimbatm/rubygems/compare/v2.6.6...v2.6.6-nix.patch";
sha256 = "0297rdb1m6v75q8665ry9id1s74p9305dv32l95ssf198liaihhd";
};
unpackdir = obj: unpackdir = obj:
lib.removeSuffix ".tgz" lib.removeSuffix ".tgz"
(lib.removeSuffix ".tar.gz" obj.name); (lib.removeSuffix ".tar.gz" obj.name);
generic = { majorVersion, minorVersion, teenyVersion, patchLevel, sha256 }: let # Contains the ruby version heuristics
versionNoPatch = "${majorVersion}.${minorVersion}.${teenyVersion}"; rubyVersion = import ./ruby-version.nix { inherit lib; };
version = "${versionNoPatch}-p${patchLevel}";
fullVersionName = if patchLevel != "0" && stdenv.lib.versionOlder versionNoPatch "2.1" generic = { version, sha256 }: let
then version ver = version;
else versionNoPatch; tag = ver.gitTag;
tag = "v" + stdenv.lib.replaceChars ["." "p" "-"] ["_" "_" ""] fullVersionName; isRuby20 = ver.majMin == "2.0";
isRuby20 = majorVersion == "2" && minorVersion == "0"; isRuby21 = ver.majMin == "2.1";
isRuby21 = majorVersion == "2" && minorVersion == "1";
baseruby = self.override { useRailsExpress = false; }; baseruby = self.override { useRailsExpress = false; };
self = lib.makeOverridable ( self = lib.makeOverridable (
{ stdenv, lib, fetchurl, fetchFromSavannah, fetchFromGitHub { stdenv, lib, fetchurl, fetchpatch, fetchFromSavannah, fetchFromGitHub
, useRailsExpress ? true , useRailsExpress ? true
, zlib, zlibSupport ? true , zlib, zlibSupport ? true
, openssl, opensslSupport ? true , openssl, opensslSupport ? true
@ -46,13 +49,11 @@ let
rev = tag; rev = tag;
sha256 = sha256.git; sha256 = sha256.git;
} else fetchurl { } else fetchurl {
url = "http://cache.ruby-lang.org/pub/ruby/${majorVersion}.${minorVersion}/ruby-${fullVersionName}.tar.gz"; url = "http://cache.ruby-lang.org/pub/ruby/${ver.majMin}/ruby-${ver}.tar.gz";
sha256 = sha256.src; sha256 = sha256.src;
}; };
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
inherit version;
name = "ruby-${version}"; name = "ruby-${version}";
srcs = [ rubySrc rubygemsSrc ]; srcs = [ rubySrc rubygemsSrc ];
@ -85,13 +86,16 @@ let
hardeningDisable = lib.optional isRuby20 [ "format" ]; hardeningDisable = lib.optional isRuby20 [ "format" ];
patches = patches =
[ ./gem_hook.patch ] ++
(import ./patchsets.nix { (import ./patchsets.nix {
inherit patchSet useRailsExpress ops patchLevel; inherit patchSet useRailsExpress ops;
})."${versionNoPatch}"; patchLevel = ver.patchLevel;
})."${ver.majMinTiny}";
postUnpack = '' postUnpack = ''
cp -r ${unpackdir rubygemsSrc} ${sourceRoot}/rubygems cp -r ${unpackdir rubygemsSrc} ${sourceRoot}/rubygems
pushd ${sourceRoot}/rubygems
patch -p1 < ${rubygemsPatch}
popd
'' + opString isRuby21 '' '' + opString isRuby21 ''
rm "$sourceRoot/enc/unicode/name2ctype.h" rm "$sourceRoot/enc/unicode/name2ctype.h"
''; '';
@ -152,25 +156,28 @@ let
}; };
passthru = rec { passthru = rec {
inherit majorVersion minorVersion teenyVersion patchLevel version; version = ver;
rubyEngine = "ruby"; rubyEngine = "ruby";
baseRuby = baseruby; baseRuby = baseruby;
libPath = "lib/${rubyEngine}/${versionNoPatch}"; libPath = "lib/${rubyEngine}/${ver.libDir}";
gemPath = "lib/${rubyEngine}/gems/${versionNoPatch}"; gemPath = "lib/${rubyEngine}/gems/${ver.libDir}";
devEnv = import ./dev.nix { devEnv = import ./dev.nix {
inherit buildEnv bundler bundix; inherit buildEnv bundler bundix;
ruby = self; ruby = self;
}; };
# deprecated 2016-09-21
majorVersion = ver.major;
minorVersion = ver.minor;
teenyVersion = ver.tiny;
patchLevel = ver.patchLevel;
}; };
} }
) args; in self; ) args; in self;
in { in {
ruby_1_9_3 = generic { ruby_1_9_3 = generic {
majorVersion = "1"; version = rubyVersion "1" "9" "3" "p551";
minorVersion = "9";
teenyVersion = "3";
patchLevel = "551";
sha256 = { sha256 = {
src = "1s2ibg3s2iflzdv7rfxi1qqkvdbn2dq8gxdn0nxrb77ls5ffanxv"; src = "1s2ibg3s2iflzdv7rfxi1qqkvdbn2dq8gxdn0nxrb77ls5ffanxv";
git = "1r9xzzxmci2ajb34qb4y1w424mz878zdgzxkfp9w60agldxnb36s"; git = "1r9xzzxmci2ajb34qb4y1w424mz878zdgzxkfp9w60agldxnb36s";
@ -178,10 +185,7 @@ in {
}; };
ruby_2_0_0 = generic { ruby_2_0_0 = generic {
majorVersion = "2"; version = rubyVersion "2" "0" "0" "p647";
minorVersion = "0";
teenyVersion = "0";
patchLevel = "647";
sha256 = { sha256 = {
src = "1v2vbvydarcx5801gx9lc6gr6dfi0i7qbzwhsavjqbn79rdsz2n8"; src = "1v2vbvydarcx5801gx9lc6gr6dfi0i7qbzwhsavjqbn79rdsz2n8";
git = "186pf4q9xymzn4zn1sjppl1skrl5f0159ixz5cz8g72dmmynq3g3"; git = "186pf4q9xymzn4zn1sjppl1skrl5f0159ixz5cz8g72dmmynq3g3";
@ -189,10 +193,7 @@ in {
}; };
ruby_2_1_10 = generic { ruby_2_1_10 = generic {
majorVersion = "2"; version = rubyVersion "2" "1" "10" "";
minorVersion = "1";
teenyVersion = "10";
patchLevel = "0";
sha256 = { sha256 = {
src = "086x66w51lg41abjn79xb7f6xsryymkcc3nvakmkjnjyg96labpv"; src = "086x66w51lg41abjn79xb7f6xsryymkcc3nvakmkjnjyg96labpv";
git = "133phd5r5y0np5lc9nqif93l7yb13yd52aspyl6c46z5jhvhyvfi"; git = "133phd5r5y0np5lc9nqif93l7yb13yd52aspyl6c46z5jhvhyvfi";
@ -200,10 +201,7 @@ in {
}; };
ruby_2_2_5 = generic { ruby_2_2_5 = generic {
majorVersion = "2"; version = rubyVersion "2" "2" "5" "";
minorVersion = "2";
teenyVersion = "5";
patchLevel = "0";
sha256 = { sha256 = {
src = "1qrmlcyc0cy9hgafb1wny2h90rjyyh6d72nvr2h4xjm4jwbb7i1h"; src = "1qrmlcyc0cy9hgafb1wny2h90rjyyh6d72nvr2h4xjm4jwbb7i1h";
git = "0k0av6ypyq08c9axm721f0xi2bcp1443l7ydbxv4v8x4vsxdkmq2"; git = "0k0av6ypyq08c9axm721f0xi2bcp1443l7ydbxv4v8x4vsxdkmq2";
@ -211,10 +209,7 @@ in {
}; };
ruby_2_3_1 = generic { ruby_2_3_1 = generic {
majorVersion = "2"; version = rubyVersion "2" "3" "1" "";
minorVersion = "3";
teenyVersion = "1";
patchLevel = "0";
sha256 = { sha256 = {
src = "1kbxg72las93w0y553cxv3lymy2wvij3i3pg1y9g8aq3na676z5q"; src = "1kbxg72las93w0y553cxv3lymy2wvij3i3pg1y9g8aq3na676z5q";
git = "0dv1rf5f9lj3icqs51bq7ljdcf17sdclmxm9hilwxps5l69v5q9r"; git = "0dv1rf5f9lj3icqs51bq7ljdcf17sdclmxm9hilwxps5l69v5q9r";

View File

@ -1,21 +0,0 @@
diff --git a/rubygems/lib/rubygems/installer.rb b/rubygems/lib/rubygems/installer.rb
index a88d393..8612901 100644
--- a/rubygems/lib/rubygems/installer.rb
+++ b/rubygems/lib/rubygems/installer.rb
@@ -766,7 +766,15 @@ TEXT
# Ensures that files can't be installed outside the gem directory.
def extract_files
- @package.extract_files gem_dir
+ ret = @package.extract_files gem_dir
+ if ENV['NIX_POST_EXTRACT_FILES_HOOK']
+ puts
+ puts "running NIX_POST_EXTRACT_FILES_HOOK #{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{gem_dir}"
+ system("#{ENV['NIX_POST_EXTRACT_FILES_HOOK']} #{gem_dir}")
+ puts "running NIX_POST_EXTRACT_FILES_HOOK done"
+ puts
+ end
+ ret
end
##

View File

@ -0,0 +1,63 @@
# Contains the ruby version heuristics
{ lib }:
with lib;
let
# The returned set should be immutable
rubyVersion = major: minor: tiny: tail:
rec {
inherit major minor tiny tail;
# Contains the patch number "223" if tail is "p223" or null
patchLevel =
let
p = removePrefix "p" tail;
isPosInt = num:
0 == stringLength
(replaceStrings
["0" "1" "2" "3" "4" "5" "6" "7" "8" "9"]
["" "" "" "" "" "" "" "" "" "" ]
num);
in
if hasPrefix "p" tail && isPosInt p then p
else null;
# Shortcuts
majMin = "${major}.${minor}";
majMinTiny = "${major}.${minor}.${tiny}";
# Ruby separates lib and gem folders by ABI version which isn't very
# consistent.
libDir =
if versionAtLeast majMinTiny "2.1.0" then
"${majMin}.0"
else if versionAtLeast majMinTiny "2.0.0" then
"2.0.0"
else if versionAtLeast majMinTiny "1.9.1" then
"1.9.1"
else
throw "version ${majMinTiny} is not supported";
# How ruby releases are tagged on github.com/ruby/ruby
gitTag =
let
base = "v${major}_${minor}_${tiny}";
in
if patchLevel != null then
"${base}_${patchLevel}"
else
if tail != "" then
"${base}_${tail}"
else
base;
# Implements the builtins.toString interface.
__toString = self:
self.majMinTiny + (
if self.patchLevel != null then
"-p${self.patchLevel}"
else if self.tail != "" then
"-${self.tail}"
else "");
};
in
rubyVersion

Some files were not shown because too many files have changed in this diff Show More