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>";
aneeshusa = "Aneesh Agrawal <aneeshusa@gmail.com>";
antono = "Antono Vasiljev <self@antono.info>";
apeyroux = "Alexandre Peyroux <alex@px.io>";
ardumont = "Antoine R. Dumont <eniotna.t@gmail.com>";
aristid = "Aristid Breitkreuz <aristidb@gmail.com>";
arobyn = "Alexei Robyn <shados@shados.net>";
@ -233,6 +234,7 @@
lovek323 = "Jason O'Conal <jason@oconal.id.au>";
lowfatcomputing = "Andreas Wagner <andreas.wagner@lowfatcomputing.org>";
lsix = "Lancelot SIX <lsix@lancelotsix.com>";
lucas8 = "Luc Chabassier <luc.linux@mailoo.org>";
ludo = "Ludovic Courtès <ludo@gnu.org>";
luispedro = "Luis Pedro Coelho <luis@luispedro.org>";
lukasepple = "Lukas Epple <post@lukasepple.de>";
@ -277,6 +279,7 @@
mounium = "Katona László <muoniurn@gmail.com>";
MP2E = "Cray Elliott <MP2E@archlinux.us>";
mpscholten = "Marc Scholten <marc@mpscholten.de>";
mpsyco = "Francis St-Amour <fr.st-amour@gmail.com>";
msackman = "Matthew Sackman <matthew@wellquite.org>";
mschristiansen = "Mikkel Christiansen <mikkel@rheosystems.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 {
type = types.bool;
default = false;
@ -171,6 +184,9 @@ in
${cfg.extraHosts}
'';
# /etc/host.conf: resolver configuration file
"host.conf".text = cfg.hostConf;
# /etc/resolvconf.conf: Configuration for openresolv.
"resolvconf.conf".text =
''

View File

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

View File

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

View File

@ -84,6 +84,14 @@ in
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 ""}
${optionalString (cfg.enableSyntaxHighlighting)
"source ${pkgs.zsh-syntax-highlighting}/share/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh"
}
HELPDIR="${pkgs.zsh}/share/zsh/$ZSH_VERSION/help"
'';
@ -182,7 +194,8 @@ in
environment.etc."zinputrc".source = ./zinputrc;
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";

View File

@ -149,6 +149,10 @@
<listitem><para>Trusted path execution: a desirable feature, but
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>
</para></listitem>
@ -208,8 +212,6 @@
let
kernel = pkgs.linux_grsec_nixos.override {
extraConfig = ''
GRKERNSEC y
PAX y
GRKERNSEC_CONFIG_AUTO y
GRKERNSEC_CONFIG_SERVER y
GRKERNSEC_CONFIG_SECURITY y

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -35,7 +35,7 @@ in
config = mkIf cfg.enable {
systemd.services.svnserve = {
after = [ "network-interfaces.target" ];
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart = "mkdir -p ${cfg.svnBaseDir}";
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 = {
description = "Zookeeper Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
after = [ "network.target" ];
environment = { ZOOCFGDIR = configDir; };
serviceConfig = {
ExecStart = ''

View File

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

View File

@ -36,11 +36,16 @@ in
];
systemd.services.monit = {
description = "Monit system watcher";
after = [ "network-interfaces.target" ];
description = "Pro-active monitoring utility for unix systems";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
script = "${pkgs.monit}/bin/monit -I -c /etc/monit.conf";
serviceConfig.Restart = "always";
serviceConfig = {
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";
path = [ pkgs.nagios ];
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
after = [ "network.target" ];
serviceConfig = {
User = "nagios";

View File

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

View File

@ -145,8 +145,8 @@ in
};
systemd.services.bind = {
description = "BIND name server job";
after = [ "network-interfaces.target" ];
description = "BIND Domain Name Server";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
preStart = ''
@ -155,6 +155,7 @@ in
'';
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 = ...
systemd.services.cjdns = {
description = "encrypted networking for everybody";
wantedBy = [ "network.target" ];
after = [ "networkSetup.service" "network-interfaces.target" ];
description = "cjdns: routing engine designed for security, scalability, speed and ease of use";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
preStart = if cfg.confFile != "" then "" else ''
[ -e /etc/cjdns.keys ] && source /etc/cjdns.keys

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -86,15 +86,15 @@ in
systemd.services.zerobin = {
enable = true;
after = [ "network-interfaces.target" ];
after = [ "network.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.PrivateTmp="yes";
serviceConfig.User = cfg.user;
serviceConfig.Group = cfg.group;
preStart = ''
mkdir -p ${cfg.dataDir}
chown ${cfg.user} ${cfg.dataDir}
mkdir -p ${cfg.dataDir}
chown ${cfg.user} ${cfg.dataDir}
'';
};
};

View File

@ -41,7 +41,7 @@ in {
systemd.services.chronos = {
description = "Chronos Service";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" "zookeeper.service" ];
after = [ "network.target" "zookeeper.service" ];
serviceConfig = {
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";
environment = cfg.environment;
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 = {
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 = {
description = "Elasticsearch Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
after = [ "network.target" ];
path = [ pkgs.inetutils ];
environment = {
ES_HOME = cfg.dataDir;

View File

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

View File

@ -510,7 +510,7 @@ in
description = "OAuth2 Proxy";
path = [ cfg.package ];
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
after = [ "network.target" ];
serviceConfig = {
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 = {
description = "Peerflix Daemon";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
after = [ "network.target" ];
environment.HOME = cfg.stateDir;
preStart = ''

View File

@ -245,7 +245,6 @@ in
chown ${serverInfo.serverConfig.user} ${config.wordpressUploads}
# we should use systemd dependencies here
#waitForUnit("network-interfaces.target");
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}'."
# Wait until MySQL is up

View File

@ -139,7 +139,7 @@ in
systemd.services.tomcat = {
description = "Apache Tomcat server";
wantedBy = [ "multi-user.target" ];
after = [ "network-interfaces.target" ];
after = [ "network.target" ];
serviceConfig.Type = "oneshot";
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 {
type = types.listOf types.lines;
default = [];
@ -504,7 +520,6 @@ in
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.
LD_LIBRARY_PATH = concatStringsSep ":" (
[ "${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.tty != null) "vt${toString cfg.tty}"
++ 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 =
concatLists (catAttrs "modules" cfg.drivers) ++

View File

@ -1,4 +1,4 @@
#! @python@/bin/python
#! @python3@/bin/python3
import argparse
import shutil
import os
@ -13,29 +13,21 @@ def copy_if_not_exists(source, dest):
if not os.path.exists(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):
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:
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)
BOOT_ENTRY = """title NixOS
version Generation {generation}
linux {kernel}
initrd {initrd}
options {kernel_params}
"""
def write_loader_conf(generation):
with open("@efiSysMountPoint@/loader/loader.conf.tmp", 'w') as f:
if "@timeout@" != "":
print >> f, "timeout @timeout@"
print >> f, "default nixos-generation-%d" % (generation)
f.write("timeout @timeout@\n")
f.write("default nixos-generation-%d\n" % generation)
os.rename("@efiSysMountPoint@/loader/loader.conf.tmp", "@efiSysMountPoint@/loader/loader.conf")
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))
return efi_file_path
def add_entry(generation):
efi_kernel_path = copy_from_profile(generation, "kernel")
efi_initrd_path = copy_from_profile(generation, "initrd")
write_entry(generation, efi_kernel_path, efi_initrd_path)
def write_entry(generation, machine_id):
kernel = copy_from_profile(generation, "kernel")
initrd = copy_from_profile(generation, "initrd")
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):
try:
@ -65,8 +70,8 @@ def get_generations(profile):
"--list-generations",
"-p",
"/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.pop()
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:
os.unlink(path)
parser = argparse.ArgumentParser(description='Update NixOS-related systemd-boot files')
parser.add_argument('default_config', metavar='DEFAULT-CONFIG', help='The default NixOS config to boot')
args = parser.parse_args()
def main():
parser = argparse.ArgumentParser(description='Update NixOS-related systemd-boot files')
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":
warnings.warn("NIXOS_INSTALL_GRUB env var deprecated, use NIXOS_INSTALL_BOOTLOADER", DeprecationWarning)
os.environ["NIXOS_INSTALL_BOOTLOADER"] = "1"
if os.getenv("NIXOS_INSTALL_GRUB") == "1":
warnings.warn("NIXOS_INSTALL_GRUB env var deprecated, use NIXOS_INSTALL_BOOTLOADER", DeprecationWarning)
os.environ["NIXOS_INSTALL_BOOTLOADER"] = "1"
if os.getenv("NIXOS_INSTALL_BOOTLOADER") == "1":
if "@canTouchEfiVariables@" == "1":
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "install"])
else:
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "--no-variables", "install"])
if os.getenv("NIXOS_INSTALL_BOOTLOADER") == "1":
if "@canTouchEfiVariables@" == "1":
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "install"])
else:
subprocess.check_call(["@systemd@/bin/bootctl", "--path=@efiSysMountPoint@", "--no-variables", "install"])
mkdir_p("@efiSysMountPoint@/efi/nixos")
mkdir_p("@efiSysMountPoint@/loader/entries")
try:
with open("/etc/machine-id") as machine_file:
machine_id = machine_file.readlines()[0]
except IOError as e:
if e.errno != errno.ENOENT:
raise
machine_id = None
mkdir_p("@efiSysMountPoint@/efi/nixos")
mkdir_p("@efiSysMountPoint@/loader/entries")
try:
with open("/etc/machine-id") as machine_file:
machine_id = machine_file.readlines()[0]
except IOError as e:
if e.errno != errno.ENOENT:
raise
machine_id = None
gens = get_generations("system")
remove_old_entries(gens)
for gen in gens:
add_entry(gen)
if os.readlink(system_dir(gen)) == args.default_config:
write_loader_conf(gen)
gens = get_generations("system")
remove_old_entries(gens)
for gen in gens:
write_entry(gen, machine_id)
if os.readlink(system_dir(gen)) == args.default_config:
write_loader_conf(gen)
if __name__ == '__main__':
main()

View File

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

View File

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

View File

@ -182,7 +182,7 @@ rec {
mkdir -p $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 \
$out/multi-user.target.wants/
''}

View File

@ -54,16 +54,22 @@ in
networkSetup =
{ description = "Networking Setup";
after = [ "network-interfaces.target" "network-pre.target" ];
before = [ "network.target" ];
wantedBy = [ "network.target" ];
after = [ "network-pre.target" "systemd-udevd.service" "systemd-sysctl.service" ];
before = [ "network.target" "shutdown.target" ];
wants = [ "network.target" ];
conflicts = [ "shutdown.target" ];
wantedBy = [ "multi-user.target" ];
unitConfig.ConditionCapability = "CAP_NET_ADMIN";
path = [ pkgs.iproute ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
};
unitConfig.DefaultDependencies = false;
script =
''
@ -108,8 +114,12 @@ in
in
nameValuePair "network-addresses-${i.name}"
{ description = "Address configuration of ${i.name}";
wantedBy = [ "network-interfaces.target" ];
before = [ "network-interfaces.target" ];
wantedBy = [ "network-setup.service" ];
# 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) ];
after = [ (subsystemDevice i.name) "network-pre.target" ];
serviceConfig.Type = "oneshot";
@ -129,20 +139,11 @@ in
echo "checking ip ${address}..."
if out=$(ip addr add "${address}" dev "${i.name}" 2>&1); then
echo "added ip ${address}..."
restart_network_setup=true
elif ! echo "$out" | grep "File exists" >/dev/null 2>&1; then
echo "failed to add ${address}"
exit 1
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:
let
address = "${ip.address}/${toString ip.prefixLength}";
@ -156,10 +157,11 @@ in
createTunDevice = i: nameValuePair "${i.name}-netdev"
{ description = "Virtual Network Interface ${i.name}";
requires = [ "dev-net-tun.device" ];
bindsTo = [ "dev-net-tun.device" ];
after = [ "dev-net-tun.device" "network-pre.target" ];
wantedBy = [ "network.target" (subsystemDevice i.name) ];
before = [ "network-interfaces.target" (subsystemDevice i.name) ];
wantedBy = [ "network-setup.service" (subsystemDevice i.name) ];
partOf = [ "network-setup.service" ];
before = [ "network-setup.service" (subsystemDevice i.name) ];
path = [ pkgs.iproute ];
serviceConfig = {
Type = "oneshot";
@ -180,12 +182,12 @@ in
deps = map subsystemDevice v.interfaces;
in
{ description = "Bridge Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ];
wantedBy = [ "network-setup.service" (subsystemDevice n) ];
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
++ 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.RemainAfterExit = true;
path = [ pkgs.iproute ];
@ -222,11 +224,11 @@ in
ofRules = pkgs.writeText "vswitch-${n}-openFlowRules" v.openFlowRules;
in
{ description = "Open vSwitch Interface ${n}";
wantedBy = [ "network.target" "vswitchd.service" ] ++ deps;
wantedBy = [ "network-setup.service" "vswitchd.service" ] ++ deps;
bindsTo = [ "vswitchd.service" (subsystemDevice n) ] ++ deps;
partOf = [ "vswitchd.service" ];
partOf = [ "network-setup.service" "vswitchd.service" ];
after = [ "network-pre.target" "vswitchd.service" ] ++ deps;
before = [ "network-interfaces.target" ];
before = [ "network-setup.service" ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute config.virtualisation.vswitch.package ];
@ -254,11 +256,12 @@ in
deps = map subsystemDevice v.interfaces;
in
{ description = "Bond Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ];
wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps
++ 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.RemainAfterExit = true;
path = [ pkgs.iproute pkgs.gawk ];
@ -291,10 +294,11 @@ in
deps = [ (subsystemDevice v.interface) ];
in
{ description = "Vlan Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ];
wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps;
before = [ "network-interfaces.target" (subsystemDevice n) ];
before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute ];
@ -315,10 +319,11 @@ in
deps = optional (v.dev != null) (subsystemDevice v.dev);
in
{ description = "6-to-4 Tunnel Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ];
wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps;
before = [ "network-interfaces.target" (subsystemDevice n) ];
before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute ];
@ -342,10 +347,11 @@ in
deps = [ (subsystemDevice v.interface) ];
in
{ description = "Vlan Interface ${n}";
wantedBy = [ "network.target" (subsystemDevice n) ];
wantedBy = [ "network-setup.service" (subsystemDevice n) ];
bindsTo = deps;
partOf = [ "network-setup.service" ];
after = [ "network-pre.target" ] ++ deps;
before = [ "network-interfaces.target" (subsystemDevice n) ];
before = [ "network-setup.service" (subsystemDevice n) ];
serviceConfig.Type = "oneshot";
serviceConfig.RemainAfterExit = true;
path = [ pkgs.iproute ];

View File

@ -946,8 +946,10 @@ in
]
++ bridgeStp;
# The network-interfaces target is kept for backwards compatibility.
# New modules must NOT use it.
systemd.targets."network-interfaces" =
{ description = "All Network Interfaces";
{ description = "All Network Interfaces (deprecated)";
wantedBy = [ "network.target" ];
before = [ "network.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
# at instance creation time.
services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password";
services.openssh.permitRootLogin = "prohibit-password";
# Force getting the hostname from EC2.
networking.hostName = mkDefault "";

View File

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

View File

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

View File

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

View File

@ -1,4 +1,4 @@
{
let self = {
"14.04".ap-northeast-1.hvm-ebs = "ami-71c6f470";
"14.04".ap-northeast-1.pv-ebs = "ami-4dcbf84c";
"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.pv-ebs = "ami-5e61a23e";
"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
# at instance creation time.
services.openssh.enable = true;
services.openssh.permitRootLogin = "without-password";
services.openssh.permitRootLogin = "prohibit-password";
services.openssh.passwordAuthentication = mkDefault false;
# Force getting the hostname from Google Compute.

View File

@ -31,7 +31,7 @@ with lib;
# Allow root logins
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.
# Unfortunately we can't do this with the `fileSystems' option

View File

@ -41,7 +41,6 @@ let
machine.networking.useNetworkd = networkd;
testScript = ''
startAll;
$machine->waitForUnit("network-interfaces.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 'inet6 ::1/128 '");
@ -71,9 +70,7 @@ let
''
startAll;
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target");
# Make sure dhcpcd is not started
@ -119,9 +116,7 @@ let
''
startAll;
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target");
# Wait until we have an ip address on each interface
@ -164,9 +159,7 @@ let
startAll;
# Wait for networking to come up
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target");
# Wait until we have an ip address on each interface
@ -213,9 +206,7 @@ let
startAll;
# Wait for networking to come up
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target");
# Test bonding
@ -259,11 +250,8 @@ let
startAll;
# Wait for networking to come up
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target");
# Test bridging
@ -298,9 +286,7 @@ let
startAll;
# Wait for networking to come up
$client->waitForUnit("network-interfaces.target");
$client->waitForUnit("network.target");
$router->waitForUnit("network-interfaces.target");
$router->waitForUnit("network.target");
# Wait until we have an ip address on each interface
@ -348,9 +334,7 @@ let
startAll;
# Wait for networking to be configured
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target");
# Print diagnostic information
@ -391,9 +375,7 @@ let
startAll;
# Wait for networking to be configured
$client1->waitForUnit("network-interfaces.target");
$client1->waitForUnit("network.target");
$client2->waitForUnit("network-interfaces.target");
$client2->waitForUnit("network.target");
# 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 {
name = "hugin-2016.0.0";
name = "hugin-2016.2.0";
src = fetchurl {
url = "mirror://sourceforge/hugin/${name}.tar.bz2";
sha256 = "1rk5bgsvszv9bza46jxwr3i3qgiha2rza5v8lbwkqn4b4idv0c5h";
sha256 = "058zd63vx29yrx2pphbbll7kzcxkai22q26lpw13rn4lvp41pasl";
};
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
version = "11";
version = "12";
termite = stdenv.mkDerivation {
name = "termite-${version}";
src = fetchgit {
url = "https://github.com/thestinger/termite";
rev = "refs/tags/v${version}";
sha256 = "1cw4yw7n9m2si8b7zcfyz9pyihncabxm5g39v1mxslfajxgwzmd8";
sha256 = "0s6dyg3vcqk5qcx90bs24wdnd3p56rdjdcanx4pcxvp6ksjl61jz";
};
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;
dontPatchELF = true;
preferLocalBuild = true;
outputs = [ "out" ] ++ lib.optional is-i686 "sa";
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 {
name = "gajim-${version}";
version = "0.16.5";
version = "0.16.6";
src = fetchurl {
url = "http://www.gajim.org/downloads/0.16/gajim-${version}.tar.bz2";
sha256 = "14fhcqnkqygh91132dnf1idayj4r3iqbwb44sd3mxv20n6ribh55";
sha256 = "1p3qwzy07f0wkika9yigyiq167l2k6wn12flqa7x55z4ihbysmqk";
};
patches = [

View File

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

View File

@ -20,12 +20,12 @@ let
in
stdenv.mkDerivation rec {
version = "1.5";
version = "1.6";
name = "weechat-${version}";
src = fetchurl {
url = "http://weechat.org/files/src/weechat-${version}.tar.bz2";
sha256 = "0n4cbhh9a7qq6y70ac9b4r0kb7hydwsic99h45ppr2jly322fvij";
sha256 = "0d1wcpsxx13clcf1ygcn5hsa1pjkck4xznbjbxphbdxd5whsbv3k";
};
cmakeFlags = with stdenv.lib; []
@ -50,7 +50,7 @@ stdenv.mkDerivation rec {
++ optional tclSupport tcl
++ 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; ''
NIX_PYTHONPATH="$out/lib/${python.libPrefix}/site-packages"

View File

@ -1,9 +1,13 @@
{ stdenv, fetchurl, cmake, pkgconfig, makeWrapper
, glib, gtk2, gettext, libxkbfile, libgnome_keyring, libX11
, freerdp, libssh, libgcrypt, gnutls, makeDesktopItem }:
{ stdenv, fetchFromGitHub, cmake, pkgconfig, makeWrapper
, glib, gtk3, gettext, libxkbfile, libgnome_keyring, libX11
, 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
version = "1.0.0";
version = "1.2.0-rcgit.15";
desktopItem = makeDesktopItem {
name = "remmina";
@ -15,29 +19,45 @@ let
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
stdenv.mkDerivation {
name = "remmina-${version}";
src = fetchurl {
url = "https://github.com/downloads/FreeRDP/Remmina/Remmina-${version}.tar.gz";
sha256 = "7cd0d2d6adbd96c7139da8c4bfc4cf4821e1fa97242bb9cc9db32a53df289731";
src = fetchFromGitHub {
owner = "FreeRDP";
repo = "Remmina";
rev = "v${version}";
sha256 = "07lj6a7x9cqcff18pwfkx8c8iml015zp6sq29dfcxpfg4ai578h0";
};
buildInputs = [ cmake pkgconfig makeWrapper
glib gtk2 gettext libxkbfile libgnome_keyring libX11
freerdp libssh libgcrypt gnutls ];
glib gtk3 gettext libxkbfile libgnome_keyring libX11
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";
patches = [ ./lgthread.patch ];
cmakeFlags = "-DWITH_VTE=OFF -DWITH_TELEPATHY=OFF -DWITH_AVAHI=OFF -DWINPR_INCLUDE_DIR=${freerdp_git}/include/winpr2";
postInstall = ''
mkdir -pv $out/share/applications
mkdir -pv $out/share/icons
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"
'';

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 {
major = "5";
minor = "2";
patch = "1";
patch = "2";
tweak = "2";
subdir = "${major}.${minor}.${patch}";
@ -12,6 +12,6 @@ rec {
src = fetchurl {
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 {
name = "translations";
sha256 = "1ahdz1ynbab001441lqqlfphysr867rjcndq93z66mr5v3r1spvm";
sha256 = "0nxwf3b63gzb04svb6z1hi3qf95i90pwda5gpmlrfrq6250n3bpi";
};
# TODO: dictionaries
help = fetchSrc {
name = "help";
sha256 = "0mln1mqy3c7k4c449w5knjnc4dv0ckl0i7q47p2pldxjjf5n2887";
sha256 = "1gm23i0snhcm4svciypm0qiviiqv9zpiyplkh22baccs7li3kih1";
};
};
@ -243,6 +243,7 @@ in stdenv.mkDerivation rec {
libxshmfence libatomic_ops graphite2 harfbuzz
librevenge libe-book libmwaw glm glew ncurses
libodfgen CoinMP librdf_rasqal defaultIconTheme makeWrapper
gdb
]
++ lib.optional kdeIntegration kde4.kdelibs;

View File

@ -8,13 +8,13 @@ let
in
stdenv.mkDerivation rec {
name = "openshot-qt-${version}";
version = "2.0.7";
version = "2.1.0";
src = fetchFromGitHub {
owner = "OpenShot";
repo = "openshot-qt";
rev = "v${version}";
sha256 = "1s4b61fd8cyjy8kvc25mqd97dkxx6gqmz02i42rrcriz51pw8wgh";
sha256 = "1cyr5m1n6qcb9bzkhh3v6ka91a6x9c50dl5j0ilrc8vj0mb43g8c";
};
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
chmod +x $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;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -46,7 +46,7 @@ let
];
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;
libsoup = pkgs.libsoup.override { gnomeSupport = true; };
libchamplain = pkgs.libchamplain.override { libsoup = libsoup; };
@ -54,7 +54,6 @@ let
gnome3 = self // { recurseForDerivations = false; };
gtk = gtk3;
gtkmm = gtkmm3;
gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; };
vala = pkgs.vala_0_32;
gegl_0_3 = pkgs.gegl_0_3.override { inherit gtk; };
webkitgtk = webkitgtk212x;
@ -268,7 +267,6 @@ let
glade = callPackage ./apps/glade { };
gnome-boxes = callPackage ./apps/gnome-boxes {
gtkvnc = pkgs.gtkvnc.override { enableGTK3 = true; };
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
kwayland kwidgetsaddons kwindowsystem kxmlgui libinput libICE libSM
plasma-framework qtdeclarative qtmultimedia qtscript qtx11extras udev
wayland xcb-util-cursor
wayland xcb-util-cursor xwayland
];
patches = copyPathsToStore (lib.readPathsFromFile ./. ./series);
postPatch = ''

View File

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

View File

@ -92,6 +92,13 @@ stdenv.mkDerivation {
# Useful debugging parameter
# 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 = ''
@ -118,7 +125,13 @@ stdenv.mkDerivation {
preCheck = ''
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

View File

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