diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a6a07deae49..ba6a3501e38 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -122,6 +122,14 @@
/nixos/modules/services/databases/postgresql.nix @thoughtpolice
/nixos/tests/postgresql.nix @thoughtpolice
+# Hardened profile & related modules
+/nixos/modules/profiles/hardened.nix @joachifm
+/nixos/modules/security/hidepid.nix @joachifm
+/nixos/modules/security/lock-kernel-modules.nix @joachifm
+/nixos/modules/security/misc.nix @joachifm
+/nixos/tests/hardened.nix @joachifm
+/pkgs/os-specific/linux/kernel/hardened-config.nix @joachifm
+
# Dhall
/pkgs/development/dhall-modules @Gabriel439 @Profpatsch
/pkgs/development/interpreters/dhall @Gabriel439 @Profpatsch
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index de8d00f9433..c840c5f702d 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -4031,6 +4031,11 @@
github = "renatoGarcia";
name = "Renato Garcia";
};
+ rencire = {
+ email = "546296+rencire@users.noreply.github.com";
+ github = "rencire";
+ name = "Eric Ren";
+ };
renzo = {
email = "renzocarbonara@gmail.com";
github = "k0001";
@@ -4823,6 +4828,15 @@
github = "the-kenny";
name = "Moritz Ulrich";
};
+ thesola10 = {
+ email = "thesola10@bobile.fr";
+ github = "thesola10";
+ keys = [{
+ longkeyid = "rsa4096/0x89245619BEBB95BA";
+ fingerprint = "1D05 13A6 1AC4 0D8D C6D6 5F2C 8924 5619 BEBB 95BA";
+ }];
+ name = "Karim Vergnes";
+ };
theuni = {
email = "ct@flyingcircus.io";
github = "ctheune";
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix
index 7373be2a9b0..302b94de196 100644
--- a/nixos/modules/services/amqp/rabbitmq.nix
+++ b/nixos/modules/services/amqp/rabbitmq.nix
@@ -179,11 +179,11 @@ in {
} // optionalAttrs (cfg.config != "") { RABBITMQ_ADVANCED_CONFIG_FILE = advanced_config_file; };
serviceConfig = {
- PermissionsStartOnly = true; # preStart must be run as root
ExecStart = "${cfg.package}/sbin/rabbitmq-server";
ExecStop = "${cfg.package}/sbin/rabbitmqctl shutdown";
User = "rabbitmq";
Group = "rabbitmq";
+ LogsDirectory = "rabbitmq";
WorkingDirectory = cfg.dataDir;
Type = "notify";
NotifyAccess = "all";
@@ -197,11 +197,8 @@ in {
preStart = ''
${optionalString (cfg.cookie != "") ''
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
- chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie
chmod 600 ${cfg.dataDir}/.erlang.cookie
''}
- mkdir -p /var/log/rabbitmq
- chown rabbitmq:rabbitmq /var/log/rabbitmq
'';
};
diff --git a/nixos/modules/services/audio/liquidsoap.nix b/nixos/modules/services/audio/liquidsoap.nix
index 66f84ef2076..3a047d10a63 100644
--- a/nixos/modules/services/audio/liquidsoap.nix
+++ b/nixos/modules/services/audio/liquidsoap.nix
@@ -14,15 +14,10 @@ let
description = "${name} liquidsoap stream";
wantedBy = [ "multi-user.target" ];
path = [ pkgs.wget ];
- preStart =
- ''
- mkdir -p /var/log/liquidsoap
- chown liquidsoap -R /var/log/liquidsoap
- '';
serviceConfig = {
- PermissionsStartOnly="true";
ExecStart = "${pkgs.liquidsoap}/bin/liquidsoap ${stream}";
User = "liquidsoap";
+ LogsDirectory = "liquidsoap";
};
};
};
diff --git a/nixos/modules/services/audio/mpd.nix b/nixos/modules/services/audio/mpd.nix
index 5bfe2b6a22a..0df8f9688d2 100644
--- a/nixos/modules/services/audio/mpd.nix
+++ b/nixos/modules/services/audio/mpd.nix
@@ -158,18 +158,18 @@ in {
};
};
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' - ${cfg.user} ${cfg.group} - -"
+ "d '${cfg.playlistDirectory}' - ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.mpd = {
after = [ "network.target" "sound.target" ];
description = "Music Player Daemon";
wantedBy = optional (!cfg.startWhenNeeded) "multi-user.target";
- preStart = ''
- mkdir -p "${cfg.dataDir}" && chown -R ${cfg.user}:${cfg.group} "${cfg.dataDir}"
- mkdir -p "${cfg.playlistDirectory}" && chown -R ${cfg.user}:${cfg.group} "${cfg.playlistDirectory}"
- '';
serviceConfig = {
User = "${cfg.user}";
- PermissionsStartOnly = true;
ExecStart = "${pkgs.mpd}/bin/mpd --no-daemon ${mpdConf}";
Type = "notify";
LimitRTPRIO = 50;
diff --git a/nixos/modules/services/backup/mysql-backup.nix b/nixos/modules/services/backup/mysql-backup.nix
index f0c273ffebf..ba6e154f6b3 100644
--- a/nixos/modules/services/backup/mysql-backup.nix
+++ b/nixos/modules/services/backup/mysql-backup.nix
@@ -117,14 +117,12 @@ in
enable = true;
serviceConfig = {
User = cfg.user;
- PermissionsStartOnly = true;
};
- preStart = ''
- mkdir -m 0700 -p ${cfg.location}
- chown -R ${cfg.user} ${cfg.location}
- '';
script = backupScript;
};
+ tmpfiles.rules = [
+ "d ${cfg.location} 0700 ${cfg.user} - - -"
+ ];
};
};
diff --git a/nixos/modules/services/backup/postgresql-backup.nix b/nixos/modules/services/backup/postgresql-backup.nix
index 11efa47ec5b..17b410a97f3 100644
--- a/nixos/modules/services/backup/postgresql-backup.nix
+++ b/nixos/modules/services/backup/postgresql-backup.nix
@@ -14,11 +14,6 @@ let
requires = [ "postgresql.service" ];
- preStart = ''
- mkdir -m 0700 -p ${cfg.location}
- chown postgres ${cfg.location}
- '';
-
script = ''
umask 0077 # ensure backup is only readable by postgres user
@@ -32,7 +27,6 @@ let
serviceConfig = {
Type = "oneshot";
- PermissionsStartOnly = "true";
User = "postgres";
};
@@ -107,6 +101,11 @@ in {
message = "config.services.postgresqlBackup.backupAll cannot be used together with config.services.postgresqlBackup.databases";
}];
}
+ (mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.location}' 0700 postgres - - -"
+ ];
+ })
(mkIf (cfg.enable && cfg.backupAll) {
systemd.services.postgresqlBackup =
postgresqlBackupService "all" "${config.services.postgresql.package}/bin/pg_dumpall";
diff --git a/nixos/modules/services/databases/clickhouse.nix b/nixos/modules/services/databases/clickhouse.nix
index 21e0cee3415..dbabcae43ee 100644
--- a/nixos/modules/services/databases/clickhouse.nix
+++ b/nixos/modules/services/databases/clickhouse.nix
@@ -1,8 +1,6 @@
{ config, lib, pkgs, ... }:
let
cfg = config.services.clickhouse;
- confDir = "/etc/clickhouse-server";
- stateDir = "/var/lib/clickhouse";
in
with lib;
{
@@ -43,20 +41,13 @@ with lib;
after = [ "network.target" ];
- preStart = ''
- mkdir -p ${stateDir}
- chown clickhouse:clickhouse ${confDir} ${stateDir}
- '';
-
- script = ''
- cd "${confDir}"
- exec ${pkgs.clickhouse}/bin/clickhouse-server
- '';
-
serviceConfig = {
User = "clickhouse";
Group = "clickhouse";
- PermissionsStartOnly = true;
+ ConfigurationDirectory = "clickhouse-server";
+ StateDirectory = "clickhouse";
+ LogsDirectory = "clickhouse";
+ ExecStart = "${pkgs.clickhouse}/bin/clickhouse-server --config-file=${pkgs.clickhouse}/etc/clickhouse-server/config.xml";
};
};
diff --git a/nixos/modules/services/databases/couchdb.nix b/nixos/modules/services/databases/couchdb.nix
index 84d108d9c74..5ddf8ba4bfb 100644
--- a/nixos/modules/services/databases/couchdb.nix
+++ b/nixos/modules/services/databases/couchdb.nix
@@ -158,27 +158,21 @@ in {
services.couchdb.configFile = mkDefault
(if useVersion2 then "/var/lib/couchdb/local.ini" else "/var/lib/couchdb/couchdb.ini");
+ systemd.tmpfiles.rules = [
+ "d '${dirOf cfg.uriFile}' - ${cfg.user} ${cfg.group} - -"
+ "d '${dirOf cfg.logFile}' - ${cfg.user} ${cfg.group} - -"
+ "d '${cfg.databaseDir}' - ${cfg.user} ${cfg.group} - -"
+ "d '${cfg.viewIndexDir}' - ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.couchdb = {
description = "CouchDB Server";
wantedBy = [ "multi-user.target" ];
preStart =
''
- mkdir -p `dirname ${cfg.uriFile}`;
- mkdir -p `dirname ${cfg.logFile}`;
- mkdir -p ${cfg.databaseDir};
- mkdir -p ${cfg.viewIndexDir};
touch ${cfg.configFile}
touch -a ${cfg.logFile}
-
- if [ "$(id -u)" = 0 ]; then
- chown ${cfg.user}:${cfg.group} `dirname ${cfg.uriFile}`;
- (test -f ${cfg.uriFile} && chown ${cfg.user}:${cfg.group} ${cfg.uriFile}) || true
- chown ${cfg.user}:${cfg.group} ${cfg.databaseDir}
- chown ${cfg.user}:${cfg.group} ${cfg.viewIndexDir}
- chown ${cfg.user}:${cfg.group} ${cfg.configFile}
- chown ${cfg.user}:${cfg.group} ${cfg.logFile}
- fi
'';
environment = mkIf useVersion2 {
@@ -191,7 +185,6 @@ in {
};
serviceConfig = {
- PermissionsStartOnly = true;
User = cfg.user;
Group = cfg.group;
ExecStart = executable;
diff --git a/nixos/modules/services/databases/influxdb.nix b/nixos/modules/services/databases/influxdb.nix
index 888bf13c3df..6868050c844 100644
--- a/nixos/modules/services/databases/influxdb.nix
+++ b/nixos/modules/services/databases/influxdb.nix
@@ -157,20 +157,19 @@ in
config = mkIf config.services.influxdb.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0770 ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.influxdb = {
description = "InfluxDB Server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
ExecStart = ''${cfg.package}/bin/influxd -config "${configFile}"'';
- User = "${cfg.user}";
- Group = "${cfg.group}";
- PermissionsStartOnly = true;
+ User = cfg.user;
+ Group = cfg.group;
};
- preStart = ''
- mkdir -m 0770 -p ${cfg.dataDir}
- if [ "$(id -u)" = 0 ]; then chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}; fi
- '';
postStart =
let
scheme = if configOptions.http.https-enabled then "-k https" else "http";
diff --git a/nixos/modules/services/databases/memcached.nix b/nixos/modules/services/databases/memcached.nix
index 7af452e4dce..052ff1f308e 100644
--- a/nixos/modules/services/databases/memcached.nix
+++ b/nixos/modules/services/databases/memcached.nix
@@ -78,11 +78,6 @@ in
after = [ "network.target" ];
serviceConfig = {
- PermissionsStartOnly = true;
- ExecStartPre = optionals cfg.enableUnixSocket [
- "${pkgs.coreutils}/bin/install -d -o ${cfg.user} /run/memcached/"
- "${pkgs.coreutils}/bin/chown -R ${cfg.user} /run/memcached/"
- ];
ExecStart =
let
networking = if cfg.enableUnixSocket
@@ -91,12 +86,13 @@ in
in "${memcached}/bin/memcached ${networking} -m ${toString cfg.maxMemory} -c ${toString cfg.maxConnections} ${concatStringsSep " " cfg.extraOptions}";
User = cfg.user;
+ RuntimeDirectory = "memcached";
};
};
};
imports = [
(mkRemovedOptionModule ["services" "memcached" "socket"] ''
- This option was replaced by a fixed unix socket path at /run/memcached/memcached.sock enabled using services.memached.enableUnixSocket.
+ This option was replaced by a fixed unix socket path at /run/memcached/memcached.sock enabled using services.memcached.enableUnixSocket.
'')
];
diff --git a/nixos/modules/services/databases/stanchion.nix b/nixos/modules/services/databases/stanchion.nix
index 9fe49f51edd..97e55bc70c4 100644
--- a/nixos/modules/services/databases/stanchion.nix
+++ b/nixos/modules/services/databases/stanchion.nix
@@ -98,7 +98,7 @@ in
type = types.path;
default = "/var/log/stanchion";
description = ''
- Log directory for Stanchino.
+ Log directory for Stanchion.
'';
};
@@ -152,6 +152,11 @@ in
users.groups.stanchion.gid = config.ids.gids.stanchion;
+ systemd.tmpfiles.rules = [
+ "d '${cfg.logDir}' - stanchion stanchion --"
+ "d '${cfg.dataDir}' 0700 stanchion stanchion --"
+ ];
+
systemd.services.stanchion = {
description = "Stanchion Server";
@@ -168,25 +173,12 @@ in
environment.STANCHION_LOG_DIR = "${cfg.logDir}";
environment.STANCHION_ETC_DIR = "/etc/stanchion";
- preStart = ''
- if ! test -e ${cfg.logDir}; then
- mkdir -m 0755 -p ${cfg.logDir}
- chown -R stanchion:stanchion ${cfg.logDir}
- fi
-
- if ! test -e ${cfg.dataDir}; then
- mkdir -m 0700 -p ${cfg.dataDir}
- chown -R stanchion:stanchion ${cfg.dataDir}
- fi
- '';
-
serviceConfig = {
ExecStart = "${cfg.package}/bin/stanchion console";
ExecStop = "${cfg.package}/bin/stanchion stop";
StandardInput = "tty";
User = "stanchion";
Group = "stanchion";
- PermissionsStartOnly = true;
# Give Stanchion a decent amount of time to clean up.
TimeoutStopSec = 120;
LimitNOFILE = 65536;
diff --git a/nixos/modules/services/mail/nullmailer.nix b/nixos/modules/services/mail/nullmailer.nix
index 418c02af4b7..9997d287013 100644
--- a/nixos/modules/services/mail/nullmailer.nix
+++ b/nixos/modules/services/mail/nullmailer.nix
@@ -212,6 +212,10 @@ with lib;
};
};
+ systemd.tmpfiles.rules = [
+ "d /var/spool/nullmailer - ${cfg.user} - - -"
+ ];
+
systemd.services.nullmailer = {
description = "nullmailer";
wantedBy = [ "multi-user.target" ];
@@ -220,13 +224,11 @@ with lib;
preStart = ''
mkdir -p /var/spool/nullmailer/{queue,tmp}
rm -f /var/spool/nullmailer/trigger && mkfifo -m 660 /var/spool/nullmailer/trigger
- chown ${cfg.user} /var/spool/nullmailer/*
'';
serviceConfig = {
User = cfg.user;
Group = cfg.group;
- PermissionsStartOnly=true;
ExecStart = "${pkgs.nullmailer}/bin/nullmailer-send";
Restart = "always";
};
diff --git a/nixos/modules/services/mail/rss2email.nix b/nixos/modules/services/mail/rss2email.nix
index 5f3b2877008..a123736005a 100644
--- a/nixos/modules/services/mail/rss2email.nix
+++ b/nixos/modules/services/mail/rss2email.nix
@@ -94,6 +94,10 @@ in {
services.rss2email.config.to = cfg.to;
+ systemd.tmpfiles.rules = [
+ "d /var/rss2email 0700 rss2email rss2email - -"
+ ];
+
systemd.services.rss2email = let
conf = pkgs.writeText "rss2email.cfg" (lib.generators.toINI {} ({
DEFAULT = cfg.config;
@@ -105,22 +109,16 @@ in {
in
{
preStart = ''
- mkdir -p /var/rss2email
- chmod 700 /var/rss2email
-
cp ${conf} /var/rss2email/conf.cfg
if [ ! -f /var/rss2email/db.json ]; then
echo '{"version":2,"feeds":[]}' > /var/rss2email/db.json
fi
-
- chown -R rss2email:rss2email /var/rss2email
'';
path = [ pkgs.system-sendmail ];
serviceConfig = {
ExecStart =
"${pkgs.rss2email}/bin/r2e -c /var/rss2email/conf.cfg -d /var/rss2email/db.json run";
User = "rss2email";
- PermissionsStartOnly = "true";
};
};
diff --git a/nixos/modules/services/misc/etcd.nix b/nixos/modules/services/misc/etcd.nix
index 2d1893dae64..e4d5322f9b5 100644
--- a/nixos/modules/services/misc/etcd.nix
+++ b/nixos/modules/services/misc/etcd.nix
@@ -142,6 +142,10 @@ in {
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0700 etcd - - -"
+ ];
+
systemd.services.etcd = {
description = "etcd key-value store";
wantedBy = [ "multi-user.target" ];
@@ -176,14 +180,8 @@ in {
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
- '';
};
environment.systemPackages = [ pkgs.etcdctl ];
diff --git a/nixos/modules/services/misc/jackett.nix b/nixos/modules/services/misc/jackett.nix
index b18ce2b1f81..a07f20e5c24 100644
--- a/nixos/modules/services/misc/jackett.nix
+++ b/nixos/modules/services/misc/jackett.nix
@@ -38,24 +38,19 @@ in
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.jackett = {
description = "Jackett";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- preStart = ''
- test -d ${cfg.dataDir} || {
- echo "Creating jackett data directory in ${cfg.dataDir}"
- mkdir -p ${cfg.dataDir}
- }
- chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
- chmod 0700 ${cfg.dataDir}
- '';
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
- PermissionsStartOnly = "true";
ExecStart = "${pkgs.jackett}/bin/Jackett --NoUpdates --DataFolder '${cfg.dataDir}'";
Restart = "on-failure";
};
diff --git a/nixos/modules/services/misc/lidarr.nix b/nixos/modules/services/misc/lidarr.nix
index 627f22334fe..f466402abfc 100644
--- a/nixos/modules/services/misc/lidarr.nix
+++ b/nixos/modules/services/misc/lidarr.nix
@@ -17,20 +17,15 @@ in
description = "Lidarr";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- preStart = ''
- [ ! -d /var/lib/lidarr ] && mkdir -p /var/lib/lidarr
- chown -R lidarr:lidarr /var/lib/lidarr
- '';
serviceConfig = {
Type = "simple";
User = "lidarr";
Group = "lidarr";
- PermissionsStartOnly = "true";
ExecStart = "${pkgs.lidarr}/bin/Lidarr";
Restart = "on-failure";
- StateDirectory = "/var/lib/lidarr/";
+ StateDirectory = "lidarr";
StateDirectoryMode = "0770";
};
};
diff --git a/nixos/modules/services/misc/mesos-master.nix b/nixos/modules/services/misc/mesos-master.nix
index 0523c6549ed..572a9847e46 100644
--- a/nixos/modules/services/misc/mesos-master.nix
+++ b/nixos/modules/services/misc/mesos-master.nix
@@ -95,6 +95,9 @@ in {
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.workDir}' 0700 - - - -"
+ ];
systemd.services.mesos-master = {
description = "Mesos Master";
wantedBy = [ "multi-user.target" ];
@@ -114,11 +117,7 @@ in {
${toString cfg.extraCmdLineOptions}
'';
Restart = "on-failure";
- PermissionsStartOnly = true;
};
- preStart = ''
- mkdir -m 0700 -p ${cfg.workDir}
- '';
};
};
diff --git a/nixos/modules/services/misc/mesos-slave.nix b/nixos/modules/services/misc/mesos-slave.nix
index 468c7f36ecc..170065d0065 100644
--- a/nixos/modules/services/misc/mesos-slave.nix
+++ b/nixos/modules/services/misc/mesos-slave.nix
@@ -184,6 +184,9 @@ in {
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.workDir}' 0701 - - - -"
+ ];
systemd.services.mesos-slave = {
description = "Mesos Slave";
wantedBy = [ "multi-user.target" ];
@@ -210,11 +213,7 @@ in {
--executor_environment_variables=${lib.escapeShellArg (builtins.toJSON cfg.executorEnvironmentVariables)} \
${toString cfg.extraCmdLineOptions}
'';
- PermissionsStartOnly = true;
};
- preStart = ''
- mkdir -m 0701 -p ${cfg.workDir}
- '';
};
};
diff --git a/nixos/modules/services/misc/radarr.nix b/nixos/modules/services/misc/radarr.nix
index 9ab26d84832..74444e24043 100644
--- a/nixos/modules/services/misc/radarr.nix
+++ b/nixos/modules/services/misc/radarr.nix
@@ -38,24 +38,19 @@ in
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.radarr = {
description = "Radarr";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- preStart = ''
- test -d ${cfg.dataDir} || {
- echo "Creating radarr data directory in ${cfg.dataDir}"
- mkdir -p ${cfg.dataDir}
- }
- chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
- chmod 0700 ${cfg.dataDir}
- '';
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
- PermissionsStartOnly = "true";
ExecStart = "${pkgs.radarr}/bin/Radarr -nobrowser -data='${cfg.dataDir}'";
Restart = "on-failure";
};
diff --git a/nixos/modules/services/misc/sonarr.nix b/nixos/modules/services/misc/sonarr.nix
index a99445a268d..77c7f0582d0 100644
--- a/nixos/modules/services/misc/sonarr.nix
+++ b/nixos/modules/services/misc/sonarr.nix
@@ -39,24 +39,19 @@ in
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0700 ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.sonarr = {
description = "Sonarr";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- preStart = ''
- test -d ${cfg.dataDir} || {
- echo "Creating sonarr data directory in ${cfg.dataDir}"
- mkdir -p ${cfg.dataDir}
- }
- chown -R ${cfg.user}:${cfg.group} ${cfg.dataDir}
- chmod 0700 ${cfg.dataDir}
- '';
serviceConfig = {
Type = "simple";
User = cfg.user;
Group = cfg.group;
- PermissionsStartOnly = "true";
ExecStart = "${pkgs.sonarr}/bin/NzbDrone -nobrowser -data='${cfg.dataDir}'";
Restart = "on-failure";
};
diff --git a/nixos/modules/services/misc/zookeeper.nix b/nixos/modules/services/misc/zookeeper.nix
index cb7cc97d5a5..50c84e3c6b8 100644
--- a/nixos/modules/services/misc/zookeeper.nix
+++ b/nixos/modules/services/misc/zookeeper.nix
@@ -119,6 +119,10 @@ in {
config = mkIf cfg.enable {
environment.systemPackages = [cfg.package];
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0700 zookeeper - - -"
+ ];
+
systemd.services.zookeeper = {
description = "Zookeeper Daemon";
wantedBy = [ "multi-user.target" ];
@@ -135,11 +139,8 @@ in {
${configDir}/zoo.cfg
'';
User = "zookeeper";
- PermissionsStartOnly = true;
};
preStart = ''
- mkdir -m 0700 -p ${cfg.dataDir}
- if [ "$(id -u)" = 0 ]; then chown zookeeper ${cfg.dataDir}; fi
echo "${toString cfg.id}" > ${cfg.dataDir}/myid
'';
};
diff --git a/nixos/modules/services/monitoring/collectd.nix b/nixos/modules/services/monitoring/collectd.nix
index 45e3312c0f4..6a4c678eb21 100644
--- a/nixos/modules/services/monitoring/collectd.nix
+++ b/nixos/modules/services/monitoring/collectd.nix
@@ -79,6 +79,10 @@ in {
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' - ${cfg.user} - - -"
+ ];
+
systemd.services.collectd = {
description = "Collectd Monitoring Agent";
after = [ "network.target" ];
@@ -87,16 +91,9 @@ in {
serviceConfig = {
ExecStart = "${cfg.package}/sbin/collectd -C ${conf} -f";
User = cfg.user;
- PermissionsStartOnly = true;
Restart = "on-failure";
RestartSec = 3;
};
-
- preStart = ''
- mkdir -p "${cfg.dataDir}"
- chmod 755 "${cfg.dataDir}"
- chown -R ${cfg.user} "${cfg.dataDir}"
- '';
};
users.users = optional (cfg.user == "collectd") {
diff --git a/nixos/modules/services/monitoring/prometheus/default.nix b/nixos/modules/services/monitoring/prometheus/default.nix
index e7ac12c07d3..d8384e0d35b 100644
--- a/nixos/modules/services/monitoring/prometheus/default.nix
+++ b/nixos/modules/services/monitoring/prometheus/default.nix
@@ -22,9 +22,6 @@ let
workingDir = stateDirBase + stateDir;
workingDir2 = stateDirBase + cfg2.stateDir;
- # Get a submodule without any embedded metadata:
- _filter = x: filterAttrs (k: v: k != "_module") x;
-
# a wrapper that verifies that the configuration is valid
promtoolCheck = what: name: file: pkgs.runCommand "${name}-${what}-checked"
{ buildInputs = [ cfg.package ]; } ''
@@ -50,11 +47,11 @@ let
# This becomes the main config file for Prometheus 1
promConfig = {
- global = cfg.globalConfig;
+ global = filterValidPrometheus cfg.globalConfig;
rule_files = map (promtoolCheck "check-rules" "rules") (cfg.ruleFiles ++ [
(pkgs.writeText "prometheus.rules" (concatStringsSep "\n" cfg.rules))
]);
- scrape_configs = filterEmpty cfg.scrapeConfigs;
+ scrape_configs = filterValidPrometheus cfg.scrapeConfigs;
};
generatedPrometheusYml = writePrettyJSON "prometheus.yml" promConfig;
@@ -77,11 +74,11 @@ let
# This becomes the main config file for Prometheus 2
promConfig2 = {
- global = cfg2.globalConfig;
+ global = filterValidPrometheus cfg2.globalConfig;
rule_files = map (prom2toolCheck "check rules" "rules") (cfg2.ruleFiles ++ [
(pkgs.writeText "prometheus.rules" (concatStringsSep "\n" cfg2.rules))
]);
- scrape_configs = filterEmpty cfg2.scrapeConfigs;
+ scrape_configs = filterValidPrometheus cfg2.scrapeConfigs;
alerting = optionalAttrs (cfg2.alertmanagerURL != []) {
alertmanagers = [{
static_configs = [{
@@ -108,7 +105,7 @@ let
] ++
optional (cfg2.webExternalUrl != null) "--web.external-url=${cfg2.webExternalUrl}";
- filterEmpty = filterAttrsListRecursive (_n: v: !(v == null || v == [] || v == {}));
+ filterValidPrometheus = filterAttrsListRecursive (n: v: !(n == "_module" || v == null));
filterAttrsListRecursive = pred: x:
if isAttrs x then
listToAttrs (
@@ -123,41 +120,37 @@ let
map (filterAttrsListRecursive pred) x
else x;
+ mkDefOpt = type : defaultStr : description : mkOpt type (description + ''
+
+ Defaults to ${defaultStr} in prometheus
+ when set to null.
+ '');
+
+ mkOpt = type : description : mkOption {
+ type = types.nullOr type;
+ default = null;
+ inherit description;
+ };
+
promTypes.globalConfig = types.submodule {
options = {
- scrape_interval = mkOption {
- type = types.str;
- default = "1m";
- description = ''
- How frequently to scrape targets by default.
- '';
- };
+ scrape_interval = mkDefOpt types.str "1m" ''
+ How frequently to scrape targets by default.
+ '';
- scrape_timeout = mkOption {
- type = types.str;
- default = "10s";
- description = ''
- How long until a scrape request times out.
- '';
- };
+ scrape_timeout = mkDefOpt types.str "10s" ''
+ How long until a scrape request times out.
+ '';
- evaluation_interval = mkOption {
- type = types.str;
- default = "1m";
- description = ''
- How frequently to evaluate rules by default.
- '';
- };
+ evaluation_interval = mkDefOpt types.str "1m" ''
+ How frequently to evaluate rules by default.
+ '';
- external_labels = mkOption {
- type = types.attrsOf types.str;
- description = ''
- The labels to add to any time series or alerts when
- communicating with external systems (federation, remote
- storage, Alertmanager).
- '';
- default = {};
- };
+ external_labels = mkOpt (types.attrsOf types.str) ''
+ The labels to add to any time series or alerts when
+ communicating with external systems (federation, remote
+ storage, Alertmanager).
+ '';
};
};
@@ -169,145 +162,127 @@ let
The job name assigned to scraped metrics by default.
'';
};
- scrape_interval = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- How frequently to scrape targets from this job. Defaults to the
- globally configured default.
- '';
- };
- scrape_timeout = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Per-target timeout when scraping this job. Defaults to the
- globally configured default.
- '';
- };
- metrics_path = mkOption {
- type = types.str;
- default = "/metrics";
- description = ''
- The HTTP resource path on which to fetch metrics from targets.
- '';
- };
- honor_labels = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Controls how Prometheus handles conflicts between labels
- that are already present in scraped data and labels that
- Prometheus would attach server-side ("job" and "instance"
- labels, manually configured target labels, and labels
- generated by service discovery implementations).
+ scrape_interval = mkOpt types.str ''
+ How frequently to scrape targets from this job. Defaults to the
+ globally configured default.
+ '';
- If honor_labels is set to "true", label conflicts are
- resolved by keeping label values from the scraped data and
- ignoring the conflicting server-side labels.
+ scrape_timeout = mkOpt types.str ''
+ Per-target timeout when scraping this job. Defaults to the
+ globally configured default.
+ '';
- If honor_labels is set to "false", label conflicts are
- resolved by renaming conflicting labels in the scraped data
- to "exported_<original-label>" (for example
- "exported_instance", "exported_job") and then attaching
- server-side labels. This is useful for use cases such as
- federation, where all labels specified in the target should
- be preserved.
- '';
- };
- scheme = mkOption {
- type = types.enum ["http" "https"];
- default = "http";
- description = ''
- The URL scheme with which to fetch metrics from targets.
- '';
- };
- params = mkOption {
- type = types.attrsOf (types.listOf types.str);
- default = {};
- description = ''
- Optional HTTP URL parameters.
- '';
- };
- basic_auth = mkOption {
- type = types.nullOr (types.submodule {
- options = {
- username = mkOption {
- type = types.str;
- description = ''
- HTTP username
- '';
- };
- password = mkOption {
- type = types.str;
- description = ''
- HTTP password
- '';
- };
+ metrics_path = mkDefOpt types.str "/metrics" ''
+ The HTTP resource path on which to fetch metrics from targets.
+ '';
+
+ honor_labels = mkDefOpt types.bool "false" ''
+ Controls how Prometheus handles conflicts between labels
+ that are already present in scraped data and labels that
+ Prometheus would attach server-side ("job" and "instance"
+ labels, manually configured target labels, and labels
+ generated by service discovery implementations).
+
+ If honor_labels is set to "true", label conflicts are
+ resolved by keeping label values from the scraped data and
+ ignoring the conflicting server-side labels.
+
+ If honor_labels is set to "false", label conflicts are
+ resolved by renaming conflicting labels in the scraped data
+ to "exported_<original-label>" (for example
+ "exported_instance", "exported_job") and then attaching
+ server-side labels. This is useful for use cases such as
+ federation, where all labels specified in the target should
+ be preserved.
+ '';
+
+ honor_timestamps = mkDefOpt types.bool "true" ''
+ honor_timestamps controls whether Prometheus respects the timestamps present
+ in scraped data.
+
+ If honor_timestamps is set to true, the timestamps of the metrics exposed
+ by the target will be used.
+
+ If honor_timestamps is set to false, the timestamps of the metrics exposed
+ by the target will be ignored.
+ '';
+
+ scheme = mkDefOpt (types.enum ["http" "https"]) "http" ''
+ The URL scheme with which to fetch metrics from targets.
+ '';
+
+ params = mkOpt (types.attrsOf (types.listOf types.str)) ''
+ Optional HTTP URL parameters.
+ '';
+
+ basic_auth = mkOpt (types.submodule {
+ options = {
+ username = mkOption {
+ type = types.str;
+ description = ''
+ HTTP username
+ '';
};
- });
- default = null;
- apply = x: mapNullable _filter x;
- description = ''
- Optional http login credentials for metrics scraping.
- '';
- };
- tls_config = mkOption {
- type = types.nullOr promTypes.tls_config;
- default = null;
- apply = x: mapNullable _filter x;
- description = ''
- Configures the scrape request's TLS settings.
- '';
- };
- dns_sd_configs = mkOption {
- type = types.listOf promTypes.dns_sd_config;
- default = [];
- apply = x: map _filter x;
- description = ''
- List of DNS service discovery configurations.
- '';
- };
- consul_sd_configs = mkOption {
- type = types.listOf promTypes.consul_sd_config;
- default = [];
- apply = x: map _filter x;
- description = ''
- List of Consul service discovery configurations.
- '';
- };
- file_sd_configs = mkOption {
- type = types.listOf promTypes.file_sd_config;
- default = [];
- apply = x: map _filter x;
- description = ''
- List of file service discovery configurations.
- '';
- };
- static_configs = mkOption {
- type = types.listOf promTypes.static_config;
- default = [];
- apply = x: map _filter x;
- description = ''
- List of labeled target groups for this job.
- '';
- };
- ec2_sd_configs = mkOption {
- type = types.listOf promTypes.ec2_sd_config;
- default = [];
- apply = x: map _filter x;
- description = ''
- List of EC2 service discovery configurations.
- '';
- };
- relabel_configs = mkOption {
- type = types.listOf promTypes.relabel_config;
- default = [];
- apply = x: map _filter x;
- description = ''
- List of relabel configurations.
- '';
- };
+ password = mkOption {
+ type = types.str;
+ description = ''
+ HTTP password
+ '';
+ };
+ };
+ }) ''
+ Optional http login credentials for metrics scraping.
+ '';
+
+ bearer_token = mkOpt types.str ''
+ Sets the `Authorization` header on every scrape request with
+ the configured bearer token. It is mutually exclusive with
+ .
+ '';
+
+ bearer_token_file = mkOpt types.str ''
+ Sets the `Authorization` header on every scrape request with
+ the bearer token read from the configured file. It is mutually
+ exclusive with .
+ '';
+
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the scrape request's TLS settings.
+ '';
+
+ proxy_url = mkOpt types.str ''
+ Optional proxy URL.
+ '';
+
+ ec2_sd_configs = mkOpt (types.listOf promTypes.ec2_sd_config) ''
+ List of EC2 service discovery configurations.
+ '';
+
+ dns_sd_configs = mkOpt (types.listOf promTypes.dns_sd_config) ''
+ List of DNS service discovery configurations.
+ '';
+
+ consul_sd_configs = mkOpt (types.listOf promTypes.consul_sd_config) ''
+ List of Consul service discovery configurations.
+ '';
+
+ file_sd_configs = mkOpt (types.listOf promTypes.file_sd_config) ''
+ List of file service discovery configurations.
+ '';
+
+ static_configs = mkOpt (types.listOf promTypes.static_config) ''
+ List of labeled target groups for this job.
+ '';
+
+ relabel_configs = mkOpt (types.listOf promTypes.relabel_config) ''
+ List of relabel configurations.
+ '';
+
+ sample_limit = mkDefOpt types.int "0" ''
+ Per-scrape limit on number of scraped samples that will be accepted.
+ If more than this number of samples are present after metric relabelling
+ the entire scrape will be treated as failed. 0 means no limit.
+ '';
};
};
@@ -337,66 +312,41 @@ let
The AWS Region.
'';
};
- endpoint = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Custom endpoint to be used.
- '';
- };
- access_key = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- The AWS API key id. If blank, the environment variable
- AWS_ACCESS_KEY_ID is used.
- '';
- };
- secret_key = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- The AWS API key secret. If blank, the environment variable
- AWS_SECRET_ACCESS_KEY is used.
- '';
- };
- profile = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Named AWS profile used to connect to the API.
- '';
- };
- role_arn = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- AWS Role ARN, an alternative to using AWS API keys.
- '';
- };
- refresh_interval = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Refresh interval to re-read the instance list.
- '';
- };
- port = mkOption {
- type = types.int;
- default = 80;
- description = ''
- The port to scrape metrics from. If using the public IP
- address, this must instead be specified in the relabeling
- rule.
- '';
- };
- filters = mkOption {
- type = types.nullOr (types.listOf promTypes.filter);
- default = null;
- description = ''
- Filters can be used optionally to filter the instance list by other criteria.
- '';
- };
+ endpoint = mkOpt types.str ''
+ Custom endpoint to be used.
+ '';
+
+ access_key = mkOpt types.str ''
+ The AWS API key id. If blank, the environment variable
+ AWS_ACCESS_KEY_ID is used.
+ '';
+
+ secret_key = mkOpt types.str ''
+ The AWS API key secret. If blank, the environment variable
+ AWS_SECRET_ACCESS_KEY is used.
+ '';
+
+ profile = mkOpt types.str ''
+ Named AWS profile used to connect to the API.
+ '';
+
+ role_arn = mkOpt types.str ''
+ AWS Role ARN, an alternative to using AWS API keys.
+ '';
+
+ refresh_interval = mkDefOpt types.str "60s" ''
+ Refresh interval to re-read the instance list.
+ '';
+
+ port = mkDefOpt types.int "80" ''
+ The port to scrape metrics from. If using the public IP
+ address, this must instead be specified in the relabeling
+ rule.
+ '';
+
+ filters = mkOpt (types.listOf promTypes.filter) ''
+ Filters can be used optionally to filter the instance list by other criteria.
+ '';
};
};
@@ -409,6 +359,7 @@ let
for the available filters.
'';
};
+
value = mkOption {
type = types.listOf types.str;
default = [];
@@ -427,56 +378,63 @@ let
A list of DNS SRV record names to be queried.
'';
};
- refresh_interval = mkOption {
- type = types.str;
- default = "30s";
- description = ''
- The time after which the provided names are refreshed.
- '';
- };
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time after which the provided names are refreshed.
+ '';
};
};
promTypes.consul_sd_config = types.submodule {
options = {
- server = mkOption {
- type = types.str;
- description = "Consul server to query.";
- };
- token = mkOption {
- type = types.nullOr types.str;
- description = "Consul token";
- };
- datacenter = mkOption {
- type = types.nullOr types.str;
- description = "Consul datacenter";
- };
- scheme = mkOption {
- type = types.nullOr types.str;
- description = "Consul scheme";
- };
- username = mkOption {
- type = types.nullOr types.str;
- description = "Consul username";
- };
- password = mkOption {
- type = types.nullOr types.str;
- description = "Consul password";
- };
+ server = mkDefOpt types.str "localhost:8500" ''
+ Consul server to query.
+ '';
- services = mkOption {
- type = types.listOf types.str;
- description = ''
- A list of services for which targets are retrieved.
- '';
- };
- tag_separator = mkOption {
- type = types.str;
- default = ",";
- description = ''
- The string by which Consul tags are joined into the tag label.
- '';
- };
+ token = mkOpt types.str "Consul token";
+
+ datacenter = mkOpt types.str "Consul datacenter";
+
+ scheme = mkDefOpt types.str "http" "Consul scheme";
+
+ username = mkOpt types.str "Consul username";
+
+ password = mkOpt types.str "Consul password";
+
+ tls_config = mkOpt promTypes.tls_config ''
+ Configures the Consul request's TLS settings.
+ '';
+
+ services = mkOpt (types.listOf types.str) ''
+ A list of services for which targets are retrieved.
+ '';
+
+ tags = mkOpt (types.listOf types.str) ''
+ An optional list of tags used to filter nodes for a given
+ service. Services must contain all tags in the list.
+ '';
+
+ node_meta = mkOpt (types.attrsOf types.str) ''
+ Node metadata used to filter nodes for a given service.
+ '';
+
+ tag_separator = mkDefOpt types.str "," ''
+ The string by which Consul tags are joined into the tag label.
+ '';
+
+ allow_stale = mkOpt types.bool ''
+ Allow stale Consul results
+ (see ).
+
+ Will reduce load on Consul.
+ '';
+
+ refresh_interval = mkDefOpt types.str "30s" ''
+ The time after which the provided names are refreshed.
+
+ On large setup it might be a good idea to increase this value
+ because the catalog will change all the time.
+ '';
};
};
@@ -488,108 +446,74 @@ let
Patterns for files from which target groups are extracted. Refer
to the Prometheus documentation for permitted filename patterns
and formats.
+ '';
+ };
- '';
- };
- refresh_interval = mkOption {
- type = types.str;
- default = "30s";
- description = ''
- Refresh interval to re-read the files.
- '';
- };
+ refresh_interval = mkDefOpt types.str "5m" ''
+ Refresh interval to re-read the files.
+ '';
};
};
promTypes.relabel_config = types.submodule {
options = {
- source_labels = mkOption {
- type = with types; nullOr (listOf str);
- default = null;
- description = ''
- The source labels select values from existing labels. Their content
- is concatenated using the configured separator and matched against
- the configured regular expression.
- '';
- };
- separator = mkOption {
- type = types.str;
- default = ";";
- description = ''
- Separator placed between concatenated source label values.
- '';
- };
- target_label = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Label to which the resulting value is written in a replace action.
- It is mandatory for replace actions.
- '';
- };
- regex = mkOption {
- type = types.str;
- default = "(.*)";
- description = ''
- Regular expression against which the extracted value is matched.
- '';
- };
- replacement = mkOption {
- type = types.str;
- default = "$1";
- description = ''
- Replacement value against which a regex replace is performed if the
- regular expression matches.
- '';
- };
- action = mkOption {
- type = types.enum ["replace" "keep" "drop"];
- default = "replace";
- description = ''
- Action to perform based on regex matching.
- '';
- };
+ source_labels = mkOpt (types.listOf types.str) ''
+ The source labels select values from existing labels. Their content
+ is concatenated using the configured separator and matched against
+ the configured regular expression.
+ '';
+
+ separator = mkDefOpt types.str ";" ''
+ Separator placed between concatenated source label values.
+ '';
+
+ target_label = mkOpt types.str ''
+ Label to which the resulting value is written in a replace action.
+ It is mandatory for replace actions.
+ '';
+
+ regex = mkDefOpt types.str "(.*)" ''
+ Regular expression against which the extracted value is matched.
+ '';
+
+ modulus = mkOpt types.int ''
+ Modulus to take of the hash of the source label values.
+ '';
+
+ replacement = mkDefOpt types.str "$1" ''
+ Replacement value against which a regex replace is performed if the
+ regular expression matches.
+ '';
+
+ action = mkDefOpt (types.enum ["replace" "keep" "drop"]) "replace" ''
+ Action to perform based on regex matching.
+ '';
+
};
};
promTypes.tls_config = types.submodule {
options = {
- ca_file = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- CA certificate to validate API server certificate with.
- '';
- };
- cert_file = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Certificate file for client cert authentication to the server.
- '';
- };
- key_file = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- Key file for client cert authentication to the server.
- '';
- };
- server_name = mkOption {
- type = types.nullOr types.str;
- default = null;
- description = ''
- ServerName extension to indicate the name of the server.
- http://tools.ietf.org/html/rfc4366#section-3.1
- '';
- };
- insecure_skip_verify = mkOption {
- type = types.bool;
- default = false;
- description = ''
- Disable validation of the server certificate.
- '';
- };
+ ca_file = mkOpt types.str ''
+ CA certificate to validate API server certificate with.
+ '';
+
+ cert_file = mkOpt types.str ''
+ Certificate file for client cert authentication to the server.
+ '';
+
+ key_file = mkOpt types.str ''
+ Key file for client cert authentication to the server.
+ '';
+
+ server_name = mkOpt types.str ''
+ ServerName extension to indicate the name of the server.
+ http://tools.ietf.org/html/rfc4366#section-3.1
+ '';
+
+ insecure_skip_verify = mkOpt types.bool ''
+ Disable validation of the server certificate.
+ '';
};
};
@@ -662,7 +586,6 @@ in {
globalConfig = mkOption {
type = promTypes.globalConfig;
default = {};
- apply = _filter;
description = ''
Parameters that are valid in all configuration contexts. They
also serve as defaults for other configuration sections
@@ -688,7 +611,6 @@ in {
scrapeConfigs = mkOption {
type = types.listOf promTypes.scrape_config;
default = [];
- apply = x: map _filter x;
description = ''
A list of scrape configurations.
'';
@@ -786,7 +708,6 @@ in {
globalConfig = mkOption {
type = promTypes.globalConfig;
default = {};
- apply = _filter;
description = ''
Parameters that are valid in all configuration contexts. They
also serve as defaults for other configuration sections
@@ -812,7 +733,6 @@ in {
scrapeConfigs = mkOption {
type = types.listOf promTypes.scrape_config;
default = [];
- apply = x: map _filter x;
description = ''
A list of scrape configurations.
'';
diff --git a/nixos/modules/services/network-filesystems/ipfs.nix b/nixos/modules/services/network-filesystems/ipfs.nix
index d4fa1eccdf3..f19bf9d8139 100644
--- a/nixos/modules/services/network-filesystems/ipfs.nix
+++ b/nixos/modules/services/network-filesystems/ipfs.nix
@@ -226,18 +226,19 @@ in {
ipfs.gid = config.ids.gids.ipfs;
};
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' - ${cfg.user} ${cfg.group} - -"
+ ] ++ optionals cfg.autoMount [
+ "d '${cfg.ipfsMountDir}' - ${cfg.user} ${cfg.group} - -"
+ "d '${cfg.ipnsMountDir}' - ${cfg.user} ${cfg.group} - -"
+ ];
+
systemd.services.ipfs-init = recursiveUpdate commonEnv {
description = "IPFS Initializer";
after = [ "local-fs.target" ];
before = [ "ipfs.service" "ipfs-offline.service" "ipfs-norouting.service" ];
- preStart = ''
- install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.dataDir}
- '' + optionalString cfg.autoMount ''
- install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.ipfsMountDir}
- install -m 0755 -o ${cfg.user} -g ${cfg.group} -d ${cfg.ipnsMountDir}
- '';
script = ''
if [[ ! -f ${cfg.dataDir}/config ]]; then
ipfs init ${optionalString cfg.emptyRepo "-e"} \
@@ -253,7 +254,6 @@ in {
serviceConfig = {
Type = "oneshot";
RemainAfterExit = true;
- PermissionsStartOnly = true;
};
};
diff --git a/nixos/modules/services/networking/mxisd.nix b/nixos/modules/services/networking/mxisd.nix
index 0aa6d0d9ecd..0b9824f29fd 100644
--- a/nixos/modules/services/networking/mxisd.nix
+++ b/nixos/modules/services/networking/mxisd.nix
@@ -116,7 +116,6 @@ in {
Group = "mxisd";
ExecStart = "${cfg.package}/bin/mxisd --spring.config.location=${cfg.dataDir}/ --spring.profiles.active=systemd --java.security.egd=file:/dev/./urandom";
WorkingDirectory = cfg.dataDir;
- PermissionsStartOnly = true;
SuccessExitStatus = 143;
Restart = "on-failure";
};
diff --git a/nixos/modules/services/networking/smokeping.nix b/nixos/modules/services/networking/smokeping.nix
index 9ba6e48f417..fab3ed5bb39 100644
--- a/nixos/modules/services/networking/smokeping.nix
+++ b/nixos/modules/services/networking/smokeping.nix
@@ -285,12 +285,12 @@ in
uid = config.ids.uids.smokeping;
description = "smokeping daemon user";
home = smokepingHome;
+ createHome = true;
};
systemd.services.smokeping = {
wantedBy = [ "multi-user.target"];
serviceConfig = {
User = cfg.user;
- PermissionsStartOnly = true;
Restart = "on-failure";
};
preStart = ''
@@ -300,7 +300,6 @@ in
cp ${cgiHome} ${smokepingHome}/smokeping.fcgi
${cfg.package}/bin/smokeping --check --config=${configPath}
${cfg.package}/bin/smokeping --static --config=${configPath}
- chown -R ${cfg.user} ${smokepingHome}
'';
script = ''${cfg.package}/bin/smokeping --config=${configPath} --nodaemon'';
};
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix
index 702481ec517..114a64dfb17 100644
--- a/nixos/modules/services/networking/syncthing.nix
+++ b/nixos/modules/services/networking/syncthing.nix
@@ -151,7 +151,6 @@ in {
RestartForceExitStatus="3 4";
User = cfg.user;
Group = cfg.group;
- PermissionsStartOnly = true;
ExecStart = ''
${cfg.package}/bin/syncthing \
-no-browser \
diff --git a/nixos/modules/services/security/munge.nix b/nixos/modules/services/security/munge.nix
index 504bc66c6d1..1c4f8e20552 100644
--- a/nixos/modules/services/security/munge.nix
+++ b/nixos/modules/services/security/munge.nix
@@ -49,21 +49,16 @@ in
path = [ pkgs.munge pkgs.coreutils ];
- preStart = ''
- chmod 0400 ${cfg.password}
- mkdir -p /var/lib/munge -m 0711
- chown -R munge:munge /var/lib/munge
- mkdir -p /run/munge -m 0755
- chown -R munge:munge /run/munge
- '';
-
serviceConfig = {
+ ExecStartPre = "+${pkgs.coreutils}/bin/chmod 0400 ${cfg.password}";
ExecStart = "${pkgs.munge}/bin/munged --syslog --key-file ${cfg.password}";
PIDFile = "/run/munge/munged.pid";
ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID";
- PermissionsStartOnly = "true";
User = "munge";
Group = "munge";
+ StateDirectory = "munge";
+ StateDirectoryMode = "0711";
+ RuntimeDirectory = "munge";
};
};
diff --git a/nixos/modules/services/security/vault.nix b/nixos/modules/services/security/vault.nix
index 0b28bc89445..8176c168ca9 100644
--- a/nixos/modules/services/security/vault.nix
+++ b/nixos/modules/services/security/vault.nix
@@ -119,6 +119,10 @@ in
};
users.groups.vault.gid = config.ids.gids.vault;
+ systemd.tmpfiles.rules = optional (cfg.storagePath != null) [
+ "d '${cfg.storagePath}' 0700 vault vault - -"
+ ];
+
systemd.services.vault = {
description = "Vault server daemon";
@@ -128,14 +132,9 @@ in
restartIfChanged = false; # do not restart on "nixos-rebuild switch". It would seal the storage and disrupt the clients.
- preStart = optionalString (cfg.storagePath != null) ''
- install -d -m0700 -o vault -g vault "${cfg.storagePath}"
- '';
-
serviceConfig = {
User = "vault";
Group = "vault";
- PermissionsStartOnly = true;
ExecStart = "${cfg.package}/bin/vault server -config ${configFile}";
PrivateDevices = true;
PrivateTmp = true;
diff --git a/nixos/modules/services/torrent/peerflix.nix b/nixos/modules/services/torrent/peerflix.nix
index bed6661f84d..a74f6598432 100644
--- a/nixos/modules/services/torrent/peerflix.nix
+++ b/nixos/modules/services/torrent/peerflix.nix
@@ -39,6 +39,10 @@ in {
###### implementation
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.stateDir}' - peerflix - - -"
+ ];
+
systemd.services.peerflix = {
description = "Peerflix Daemon";
wantedBy = [ "multi-user.target" ];
@@ -47,13 +51,11 @@ in {
preStart = ''
mkdir -p "${cfg.stateDir}"/{torrents,.config/peerflix-server}
- if [ "$(id -u)" = 0 ]; then chown -R peerflix "${cfg.stateDir}"; fi
ln -fs "${configFile}" "${cfg.stateDir}/.config/peerflix-server/config.json"
'';
serviceConfig = {
ExecStart = "${pkgs.nodePackages.peerflix-server}/bin/peerflix-server";
- PermissionsStartOnly = true;
User = "peerflix";
};
};
diff --git a/nixos/modules/services/web-apps/codimd.nix b/nixos/modules/services/web-apps/codimd.nix
index ee2fc2b9d85..7ae7cd9c52d 100644
--- a/nixos/modules/services/web-apps/codimd.nix
+++ b/nixos/modules/services/web-apps/codimd.nix
@@ -899,10 +899,6 @@ in
description = "CodiMD Service";
wantedBy = [ "multi-user.target" ];
after = [ "networking.target" ];
- preStart = ''
- mkdir -p ${cfg.workDir}
- chown -R codimd: ${cfg.workDir}
- '';
serviceConfig = {
WorkingDirectory = cfg.workDir;
ExecStart = "${pkgs.codimd}/bin/codimd";
@@ -912,7 +908,6 @@ in
];
Restart = "always";
User = "codimd";
- PermissionsStartOnly = true;
PrivateTmp = true;
};
};
diff --git a/nixos/modules/services/web-apps/nexus.nix b/nixos/modules/services/web-apps/nexus.nix
index 050f8757fa5..052dbed6d4f 100644
--- a/nixos/modules/services/web-apps/nexus.nix
+++ b/nixos/modules/services/web-apps/nexus.nix
@@ -83,6 +83,8 @@ in
users.users."${cfg.user}" = {
isSystemUser = true;
group = cfg.group;
+ home = cfg.home;
+ createHome = true;
};
users.groups."${cfg.group}" = {};
@@ -104,8 +106,6 @@ in
preStart = ''
mkdir -p ${cfg.home}/nexus3/etc
- chown -R ${cfg.user}:${cfg.group} ${cfg.home}
-
if [ ! -f ${cfg.home}/nexus3/etc/nexus.properties ]; then
echo "# Jetty section" > ${cfg.home}/nexus3/etc/nexus.properties
echo "application-port=${toString cfg.listenPort}" >> ${cfg.home}/nexus3/etc/nexus.properties
@@ -124,7 +124,6 @@ in
User = cfg.user;
Group = cfg.group;
PrivateTmp = true;
- PermissionsStartOnly = true;
LimitNOFILE = 102642;
};
};
diff --git a/nixos/modules/services/web-servers/minio.nix b/nixos/modules/services/web-servers/minio.nix
index f78a966989b..cd123000f00 100644
--- a/nixos/modules/services/web-servers/minio.nix
+++ b/nixos/modules/services/web-servers/minio.nix
@@ -72,19 +72,16 @@ in
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.configDir}' - minio minio - -"
+ "d '${cfg.dataDir}' - minio minio - -"
+ ];
+
systemd.services.minio = {
description = "Minio Object Storage";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
- preStart = ''
- # Make sure directories exist with correct owner
- mkdir -p ${cfg.configDir}
- chown -R minio:minio ${cfg.configDir}
- mkdir -p ${cfg.dataDir}
- chown minio:minio ${cfg.dataDir}
- '';
serviceConfig = {
- PermissionsStartOnly = true;
ExecStart = "${cfg.package}/bin/minio server --json --address ${cfg.listenAddress} --config-dir=${cfg.configDir} ${cfg.dataDir}";
Type = "simple";
User = "minio";
diff --git a/nixos/modules/services/web-servers/traefik.nix b/nixos/modules/services/web-servers/traefik.nix
index 4674ed0177e..5bac895d43a 100644
--- a/nixos/modules/services/web-servers/traefik.nix
+++ b/nixos/modules/services/web-servers/traefik.nix
@@ -84,18 +84,16 @@ in {
};
config = mkIf cfg.enable {
+ systemd.tmpfiles.rules = [
+ "d '${cfg.dataDir}' 0700 traefik traefik - -"
+ ];
+
systemd.services.traefik = {
description = "Traefik web server";
after = [ "network-online.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
- PermissionsStartOnly = true;
ExecStart = ''${cfg.package.bin}/bin/traefik --configfile=${configFile}'';
- ExecStartPre = [
- ''${pkgs.coreutils}/bin/mkdir -p "${cfg.dataDir}"''
- ''${pkgs.coreutils}/bin/chmod 700 "${cfg.dataDir}"''
- ''${pkgs.coreutils}/bin/chown -R traefik:traefik "${cfg.dataDir}"''
- ];
Type = "simple";
User = "traefik";
Group = cfg.group;
diff --git a/nixos/modules/services/x11/desktop-managers/maxx.nix b/nixos/modules/services/x11/desktop-managers/maxx.nix
index d7bd2fc5eb0..6a698658bdd 100644
--- a/nixos/modules/services/x11/desktop-managers/maxx.nix
+++ b/nixos/modules/services/x11/desktop-managers/maxx.nix
@@ -13,6 +13,12 @@ in {
config = mkIf (xcfg.enable && cfg.enable) {
environment.systemPackages = [ pkgs.maxx ];
+ # there is hardcoded path in binaries
+ system.activationScripts.setup-maxx = ''
+ mkdir -p /opt
+ ln -sfn ${pkgs.maxx}/opt/MaXX /opt
+ '';
+
services.xserver.desktopManager.session = [
{ name = "MaXX";
start = ''
diff --git a/nixos/modules/system/boot/stage-1-init.sh b/nixos/modules/system/boot/stage-1-init.sh
index 6dafc6cddde..67cbe720ddc 100644
--- a/nixos/modules/system/boot/stage-1-init.sh
+++ b/nixos/modules/system/boot/stage-1-init.sh
@@ -555,7 +555,7 @@ echo /sbin/modprobe > /proc/sys/kernel/modprobe
# Start stage 2. `switch_root' deletes all files in the ramfs on the
# current root. Note that $stage2Init might be an absolute symlink,
# in which case "-e" won't work because we're not in the chroot yet.
-if ! test -e "$targetRoot/$stage2Init" -o ! -L "$targetRoot/$stage2Init"; then
+if [ ! -e "$targetRoot/$stage2Init" ] && [ ! -L "$targetRoot/$stage2Init" ] ; then
echo "stage 2 init script ($targetRoot/$stage2Init) not found"
fail
fi
diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix
index 8702abd3df8..788e3f4a2ab 100644
--- a/nixos/modules/system/boot/stage-1.nix
+++ b/nixos/modules/system/boot/stage-1.nix
@@ -32,7 +32,7 @@ let
fileSystems = filter utils.fsNeededForBoot config.system.build.fileSystems;
# A utility for enumerating the shared-library dependencies of a program
- findLibs = pkgs.writeShellScriptBin "find-libs" ''
+ findLibs = pkgs.buildPackages.writeShellScriptBin "find-libs" ''
set -euo pipefail
declare -A seen
diff --git a/nixos/modules/virtualisation/ec2-amis.nix b/nixos/modules/virtualisation/ec2-amis.nix
index aaea06bb9a6..f640bb21b13 100644
--- a/nixos/modules/virtualisation/ec2-amis.nix
+++ b/nixos/modules/virtualisation/ec2-amis.nix
@@ -274,5 +274,22 @@ let self = {
"18.09".sa-east-1.hvm-ebs = "ami-0e4a8a47fd6db6112";
"18.09".ap-south-1.hvm-ebs = "ami-0880a678d3f555313";
- latest = self."18.09";
+ # 19.03.172286.8ea36d73256
+ "19.03".eu-west-1.hvm-ebs = "ami-0fe40176548ff0940";
+ "19.03".eu-west-2.hvm-ebs = "ami-03a40fd3a02fe95ba";
+ "19.03".eu-west-3.hvm-ebs = "ami-0436f9da0f20a638e";
+ "19.03".eu-central-1.hvm-ebs = "ami-0022b8ea9efde5de4";
+ "19.03".us-east-1.hvm-ebs = "ami-0efc58fb70ae9a217";
+ "19.03".us-east-2.hvm-ebs = "ami-0abf711b1b34da1af";
+ "19.03".us-west-1.hvm-ebs = "ami-07d126e8838c40ec5";
+ "19.03".us-west-2.hvm-ebs = "ami-03f8a737546e47fb0";
+ "19.03".ca-central-1.hvm-ebs = "ami-03f9fd0ef2e035ede";
+ "19.03".ap-southeast-1.hvm-ebs = "ami-0cff66114c652c262";
+ "19.03".ap-southeast-2.hvm-ebs = "ami-054c73a7f8d773ea9";
+ "19.03".ap-northeast-1.hvm-ebs = "ami-00db62688900456a4";
+ "19.03".ap-northeast-2.hvm-ebs = "ami-0485cdd1a5fdd2117";
+ "19.03".sa-east-1.hvm-ebs = "ami-0c6a43c6e0ad1f4e2";
+ "19.03".ap-south-1.hvm-ebs = "ami-0303deb1b5890f878";
+
+ latest = self."19.03";
}; in self
diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix
index 903411799d3..840ac2e291d 100644
--- a/nixos/modules/virtualisation/virtualbox-image.nix
+++ b/nixos/modules/virtualisation/virtualbox-image.nix
@@ -100,6 +100,11 @@ in {
boot.growPartition = true;
boot.loader.grub.device = "/dev/sda";
+ swap.swapDevices = {
+ device = "/var/swap";
+ size = 2048;
+ };
+
virtualisation.virtualbox.guest.enable = true;
};
diff --git a/nixos/tests/nginx.nix b/nixos/tests/nginx.nix
index a4d14986a14..d66d99821c1 100644
--- a/nixos/tests/nginx.nix
+++ b/nixos/tests/nginx.nix
@@ -1,18 +1,19 @@
# verifies:
# 1. nginx generates config file with shared http context definitions above
# generated virtual hosts config.
+# 2. whether the ETag header is properly generated whenever we're serving
+# files in Nix store paths
-import ./make-test.nix ({ pkgs, ...} : {
+import ./make-test.nix ({ pkgs, ... }: {
name = "nginx";
meta = with pkgs.stdenv.lib.maintainers; {
maintainers = [ mbbx6spp ];
};
- nodes = {
- webserver =
- { ... }:
- { services.nginx.enable = true;
- services.nginx.commonHttpConfig = ''
+ nodes = let
+ commonConfig = { pkgs, ... }: {
+ services.nginx.enable = true;
+ services.nginx.commonHttpConfig = ''
log_format ceeformat '@cee: {"status":"$status",'
'"request_time":$request_time,'
'"upstream_response_time":$upstream_response_time,'
@@ -24,20 +25,61 @@ import ./make-test.nix ({ pkgs, ...} : {
'"request":"$request",'
'"http_referer":"$http_referer",'
'"upstream_addr":"$upstream_addr"}';
+ '';
+ services.nginx.virtualHosts."0.my.test" = {
+ extraConfig = ''
+ access_log syslog:server=unix:/dev/log,facility=user,tag=mytag,severity=info ceeformat;
+ location /favicon.ico { allow all; access_log off; log_not_found off; }
'';
- services.nginx.virtualHosts."0.my.test" = {
- extraConfig = ''
- access_log syslog:server=unix:/dev/log,facility=user,tag=mytag,severity=info ceeformat;
- location /favicon.ico { allow all; access_log off; log_not_found off; }
- '';
- };
};
+ services.nginx.virtualHosts.localhost = {
+ root = pkgs.runCommand "testdir" {} ''
+ mkdir "$out"
+ echo hello world > "$out/index.html"
+ '';
+ };
+ };
+ in {
+ webserver = commonConfig;
+
+ newwebserver = { pkgs, lib, ... }: {
+ imports = [ commonConfig ];
+ services.nginx.virtualHosts.localhost = {
+ root = lib.mkForce (pkgs.runCommand "testdir2" {} ''
+ mkdir "$out"
+ echo hello world > "$out/index.html"
+ '');
+ };
+ };
};
- testScript = ''
- startAll;
+ testScript = { nodes, ... }: let
+ newServerSystem = nodes.newwebserver.config.system.build.toplevel;
+ switch = "${newServerSystem}/bin/switch-to-configuration test";
+ in ''
+ my $url = 'http://localhost/index.html';
+
+ sub checkEtag {
+ my $etag = $webserver->succeed(
+ 'curl -v '.$url.' 2>&1 | sed -n -e "s/^< [Ee][Tt][Aa][Gg]: *//p"'
+ );
+ $etag =~ s/\r?\n$//;
+ my $httpCode = $webserver->succeed(
+ 'curl -w "%{http_code}" -X HEAD -H \'If-None-Match: '.$etag.'\' '.$url
+ );
+ chomp $httpCode;
+ die "HTTP code is not 304" unless $httpCode == 304;
+ return $etag;
+ }
$webserver->waitForUnit("nginx");
$webserver->waitForOpenPort("80");
+
+ subtest "check ETag if serving Nix store paths", sub {
+ my $oldEtag = checkEtag;
+ $webserver->succeed('${switch}');
+ my $newEtag = checkEtag;
+ die "Old ETag $oldEtag is the same as $newEtag" if $oldEtag eq $newEtag;
+ };
'';
})
diff --git a/pkgs/applications/altcoins/go-ethereum.nix b/pkgs/applications/altcoins/go-ethereum.nix
index 22697af2092..1e16eb78cef 100644
--- a/pkgs/applications/altcoins/go-ethereum.nix
+++ b/pkgs/applications/altcoins/go-ethereum.nix
@@ -1,8 +1,9 @@
-{ stdenv, buildGoPackage, fetchFromGitHub, libobjc, IOKit }:
+{ stdenv, buildGoPackage, fetchFromGitHub, libobjc, IOKit, fetchpatch }:
buildGoPackage rec {
- name = "go-ethereum-${version}";
- version = "1.8.26";
+ pname = "go-ethereum";
+ version = "1.8.27";
+
goPackagePath = "github.com/ethereum/go-ethereum";
# Fix for usb-related segmentation faults on darwin
@@ -12,11 +13,22 @@ buildGoPackage rec {
# Fixes Cgo related build failures (see https://github.com/NixOS/nixpkgs/issues/25959 )
hardeningDisable = [ "fortify" ];
+ # Apply ethereum/go-ethereum#19183 to fix the aarch64 build failure.
+ #
+ # TODO Remove this patch when upstream (https://github.com/ethereum/go-ethereum)
+ # fix this problem in the future release.
+ patches = [
+ (fetchpatch {
+ url = "https://github.com/ethereum/go-ethereum/commit/39bd2609.patch";
+ sha256 = "1a362hzvcjk505hicv25kziy3c6s5an4j7rk4jibcxwgvygb3mz5";
+ })
+ ];
+
src = fetchFromGitHub {
owner = "ethereum";
- repo = "go-ethereum";
+ repo = pname;
rev = "v${version}";
- sha256 = "0i7shrwix5j8l5i0ap5pzhninwyk2kvm1pax27pnnjlpam8577i4";
+ sha256 = "1640y7lqy7bvjjgx6wp0cnbw632ls5fj4ixclr819lfz4p5dfhx1";
};
meta = with stdenv.lib; {
diff --git a/pkgs/applications/audio/audio-recorder/default.nix b/pkgs/applications/audio/audio-recorder/default.nix
index 2ac7e3af7ab..7b84cd02a62 100644
--- a/pkgs/applications/audio/audio-recorder/default.nix
+++ b/pkgs/applications/audio/audio-recorder/default.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl
-, pkgconfig, intltool, gnome3
+, pkgconfig, intltool
, glib, dbus, gtk3, libappindicator-gtk3, gst_all_1
, librsvg, wrapGAppsHook
, pulseaudioSupport ? true, libpulseaudio ? null }:
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
};
# https://bugs.launchpad.net/audio-recorder/+bug/1784622
- NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
nativeBuildInputs = [ pkgconfig intltool wrapGAppsHook ];
diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix
index fdba9f7be77..10d06635788 100644
--- a/pkgs/applications/editors/android-studio/common.nix
+++ b/pkgs/applications/editors/android-studio/common.nix
@@ -39,12 +39,11 @@
let
drvName = "android-studio-${channel}-${version}";
- archiveFormat = if builtins.elem channel [ "dev" "canary" ] then "tar.gz" else "zip";
androidStudio = stdenv.mkDerivation {
name = drvName;
src = fetchurl {
- url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.${archiveFormat}";
+ url = "https://dl.google.com/dl/android/studio/ide-zips/${version}/android-studio-ide-${build}-linux.tar.gz";
sha256 = sha256Hash;
};
diff --git a/pkgs/applications/editors/android-studio/default.nix b/pkgs/applications/editors/android-studio/default.nix
index 80d84bcd2fd..a7c2c3da444 100644
--- a/pkgs/applications/editors/android-studio/default.nix
+++ b/pkgs/applications/editors/android-studio/default.nix
@@ -8,19 +8,15 @@ let
inherit (gnome2) GConf gnome_vfs;
};
stableVersion = {
- version = "3.3.2.0"; # "Android Studio 3.3.2"
- build = "182.5314842";
- sha256Hash = "0smh3d3v8n0isxg7fkls20622gp52f58i2b6wa4a0g8wnvmd6mw2";
- };
- betaVersion = {
- version = "3.4.0.17"; # "Android Studio 3.4 RC 3"
- build = "183.5400832";
- sha256Hash = "1v4apc73jdhavhzj8j46mzh15rw08w1hd9y9ykarj3b5q7i2vyq1";
+ version = "3.4.0.18"; # "Android Studio 3.4.0"
+ build = "183.5452501";
+ sha256Hash = "0i8wz9v6nxzr27a07cv2330i84v94pcl13gjwvpglp55hyzd8axd";
};
+ betaVersion = stableVersion;
latestVersion = { # canary & dev
- version = "3.5.0.10"; # "Android Studio 3.5 Canary 11"
- build = "191.5455988";
- sha256Hash = "1g24a8fwnrfzdf093wdmqly3mzjddk5ndgi51qj98amn7kclsdpf";
+ version = "3.5.0.11"; # "Android Studio 3.5 Canary 12"
+ build = "191.5471097";
+ sha256Hash = "1dz9iy8f12fzqp8wv9c5v01d33djy97aha8rxxp18vi6myak42ca";
};
in rec {
# Attributes are named by their corresponding release channels
diff --git a/pkgs/applications/editors/atom/default.nix b/pkgs/applications/editors/atom/default.nix
index e5a71b134f1..63b322b06ab 100644
--- a/pkgs/applications/editors/atom/default.nix
+++ b/pkgs/applications/editors/atom/default.nix
@@ -3,14 +3,14 @@
let
versions = {
atom = {
- version = "1.34.0";
- sha256 = "16hrjymrc43izg7frcrk7cwjwwrclcxzcwb5iw2llzjc6iadzlkb";
+ version = "1.36.0";
+ sha256 = "1ljg39h5xjigk2njvxyinb1gd3sbja21v47c7va6vl9hjr5xb3fr";
};
atom-beta = {
- version = "1.35.0";
+ version = "1.37.0";
beta = 0;
- sha256 = "0gm5k573dq1hhnyw3719f5k1c6rsz872mhzg8q53n89y0g2r5xmw";
+ sha256 = "0aq8r5vfgq7r31qajjgcg4n5a57a2m8fvq6fzy9vq5gawkvmaxxx";
};
};
diff --git a/pkgs/applications/editors/manuskript/default.nix b/pkgs/applications/editors/manuskript/default.nix
index 4f4be05f79e..ecbe7e8b719 100644
--- a/pkgs/applications/editors/manuskript/default.nix
+++ b/pkgs/applications/editors/manuskript/default.nix
@@ -2,13 +2,13 @@
python3Packages.buildPythonApplication rec {
pname = "manuskript";
- version = "0.8.0";
+ version = "0.9.0";
src = fetchFromGitHub {
repo = pname;
owner = "olivierkes";
rev = version;
- sha256 = "0vqz02p3m9n4hk2jplnklr9s6niqdm5iykab6nblqdm4plb04c34";
+ sha256 = "13y1s0kba1ib6g977n7h920kyr7abdw03kpal512m7iwa9g2kdw8";
};
propagatedBuildInputs = [
diff --git a/pkgs/applications/editors/vscode/default.nix b/pkgs/applications/editors/vscode/default.nix
index 67c1ddf175f..04e084dfc3b 100644
--- a/pkgs/applications/editors/vscode/default.nix
+++ b/pkgs/applications/editors/vscode/default.nix
@@ -110,8 +110,8 @@ in
cp $out/lib/vscode/resources/app/resources/linux/code.png $out/share/pixmaps/code.png
# Override the previously determined VSCODE_PATH with the one we know to be correct
- sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" $out/bin/code
- grep -q "VSCODE_PATH='$out/lib/vscode'" $out/bin/code # check if sed succeeded
+ sed -i "/ELECTRON=/iVSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName}
+ grep -q "VSCODE_PATH='$out/lib/vscode'" $out/bin/${executableName} # check if sed succeeded
'';
preFixup = lib.optionalString (system == "i686-linux" || system == "x86_64-linux") ''
diff --git a/pkgs/applications/graphics/apitrace/default.nix b/pkgs/applications/graphics/apitrace/default.nix
index 459e07f9838..c98c323fc79 100644
--- a/pkgs/applications/graphics/apitrace/default.nix
+++ b/pkgs/applications/graphics/apitrace/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "apitrace-${version}";
- version = "7.1-363-ge3509be1";
+ version = "7.1-572-g${builtins.substring 0 8 src.rev}";
src = fetchFromGitHub {
- sha256 = "1xbz6gwl7kqjm7jjy5gxkdxzrg93vj1a3l19ara7rni6dii0q136";
- rev = "e3509be175eda77749abffe051ed0d3eb5d14e72";
+ sha256 = "11bwb0l8cr1bf9bj1s6cbmi77d5fy4qrphj9cgmcd8jpa862anp5";
+ rev = "26966134f15d28f6b4a9a0a560017b3ba36d60bf";
repo = "apitrace";
owner = "apitrace";
};
diff --git a/pkgs/applications/misc/crumbs/default.nix b/pkgs/applications/misc/crumbs/default.nix
new file mode 100644
index 00000000000..2d612c16fef
--- /dev/null
+++ b/pkgs/applications/misc/crumbs/default.nix
@@ -0,0 +1,33 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "crumbs";
+ version = "0.0.3";
+
+ src = fetchFromGitHub
+ { owner = "fasseg";
+ repo = "crumbs";
+ rev = version;
+ sha256 = "0jjvydn4i4n9xv8vsal2jxpa95mk2lw6myv0gx9wih242k9vy0l7";
+ };
+
+ prePatch = ''
+ sed -i 's|gfind|find|' crumbs-completion.fish
+ '';
+
+ postInstall = ''
+ mkdir -p $out/share/bash-completion/completions
+ mkdir -p $out/share/fish/vendor_completions.d
+
+ cp crumbs-completion.bash $out/share/bash-completion/completions/crumbs
+ cp crumbs-completion.fish $out/share/fish/vendor_completions.d/crumbs.fish
+ '';
+
+ meta = with stdenv.lib;
+ { description = "Bookmarks for the command line";
+ homepage = https://github.com/fasseg/crumbs;
+ license = licenses.wtfpl;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ thesola10 ];
+ };
+}
diff --git a/pkgs/applications/misc/gnome-recipes/default.nix b/pkgs/applications/misc/gnome-recipes/default.nix
index 1cf6f547c30..01f5af339ff 100644
--- a/pkgs/applications/misc/gnome-recipes/default.nix
+++ b/pkgs/applications/misc/gnome-recipes/default.nix
@@ -55,7 +55,7 @@ in stdenv.mkDerivation rec {
# https://github.com/NixOS/nixpkgs/issues/36468
# https://gitlab.gnome.org/GNOME/recipes/issues/76
- NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
postPatch = ''
chmod +x src/list_to_c.py
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index da48f702f73..8f221b087ca 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -2,7 +2,7 @@
buildGoModule rec {
name = "hugo-${version}";
- version = "0.55.0";
+ version = "0.55.2";
goPackagePath = "github.com/gohugoio/hugo";
@@ -10,7 +10,7 @@ buildGoModule rec {
owner = "gohugoio";
repo = "hugo";
rev = "v${version}";
- sha256 = "063z79m9rganzjzqvy7bg6b29m877asm5haxp0d5cb5ac7cx55rj";
+ sha256 = "0v06hn9wnq9bp4pdh3pzhkp6adpba6pxk9w42p0v2mpgsjdvm5j0";
};
modSha256 = "0yrwkaaasj9ihjjfbywnzkppix1y2znagg3dkyikk21sl5n0nz23";
diff --git a/pkgs/applications/misc/rofi/default.nix b/pkgs/applications/misc/rofi/default.nix
index 0edcde12e34..a8e82998c30 100644
--- a/pkgs/applications/misc/rofi/default.nix
+++ b/pkgs/applications/misc/rofi/default.nix
@@ -26,7 +26,7 @@ stdenv.mkDerivation rec {
meta = with stdenv.lib; {
description = "Window switcher, run dialog and dmenu replacement";
- homepage = https://davedavenport.github.io/rofi;
+ homepage = https://github.com/davatorium/rofi;
license = licenses.mit;
maintainers = with maintainers; [ mbakke garbas ma27 ];
platforms = with platforms; linux;
diff --git a/pkgs/applications/misc/rxvt_unicode/wrapper.nix b/pkgs/applications/misc/rxvt_unicode/wrapper.nix
index 909c267def8..a7b25e112a9 100644
--- a/pkgs/applications/misc/rxvt_unicode/wrapper.nix
+++ b/pkgs/applications/misc/rxvt_unicode/wrapper.nix
@@ -1,4 +1,4 @@
-{ symlinkJoin, rxvt_unicode, makeWrapper, plugins }:
+{ symlinkJoin, rxvt_unicode, makeWrapper, plugins, perlPackages, perlDeps ? []}:
let
rxvt_name = builtins.parseDrvName rxvt_unicode.name;
@@ -12,8 +12,10 @@ in symlinkJoin {
postBuild = ''
wrapProgram $out/bin/urxvt \
+ --set PERL5LIB : "${perlPackages.makePerlPath perlDeps}" \
--suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
wrapProgram $out/bin/urxvtd \
+ --set PERL5LIB : "${perlPackages.makePerlPath perlDeps}" \
--suffix-each URXVT_PERL_LIB ':' "$out/lib/urxvt/perl"
'';
diff --git a/pkgs/applications/networking/instant-messengers/rambox/bare.nix b/pkgs/applications/networking/instant-messengers/rambox/bare.nix
index 29ed30dd27f..9b9b479d257 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/bare.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/bare.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
name = "rambox-bare-${version}";
- version = "0.6.3";
+ version = "0.6.6";
src = fetchFromGitHub {
owner = "ramboxapp";
repo = "community-edition";
rev = version;
- sha256 = "1ghk29d0x6i3j8b1b4xxgyf961lp17qsvvhnilnkh1nhmvxpwmw5";
+ sha256 = "15cy8krzl66b6sfazhff41adq4kf2857sj4h0qvzmadv85dy301v";
};
nativeBuildInputs = [ nodejs-8_x ruby sencha ];
@@ -18,7 +18,7 @@ stdenv.mkDerivation rec {
inherit src;
nodejs = nodejs-8_x;
- sha256 = "03h1kfiaflwbrvcd8v0bsymn7n2dxi3yj4pxkwcigqg4jgcf56k6";
+ sha256 = "0ifk0fzw4zhi4195jlmiq5k57bdmf912372r4bwa4z500wipikq3";
};
patches = [ ./isDev.patch ];
diff --git a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
index 5127e9ca827..eb5094bb26e 100644
--- a/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/signal-desktop/default.nix
@@ -57,11 +57,11 @@ let
in stdenv.mkDerivation rec {
name = "signal-desktop-${version}";
- version = "1.24.0";
+ version = "1.24.1";
src = fetchurl {
url = "https://updates.signal.org/desktop/apt/pool/main/s/signal-desktop/signal-desktop_${version}_amd64.deb";
- sha256 = "0h5f1y29glq3l59gr54vln1jqfg5w9br3kg37wzwjjgvcac81ck9";
+ sha256 = "195rwx4xhgij5nrda1y6bhf5jyvcgb70g6ykangywhcagglqqair";
};
phases = [ "unpackPhase" "installPhase" ];
diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix
index e7aacb9de0f..a9578e6525d 100644
--- a/pkgs/applications/office/gnucash/default.nix
+++ b/pkgs/applications/office/gnucash/default.nix
@@ -25,11 +25,11 @@ in
stdenv.mkDerivation rec {
name = "gnucash-${version}";
- version = "3.4";
+ version = "3.5";
src = fetchurl {
url = "mirror://sourceforge/gnucash/${name}.tar.bz2";
- sha256 = "1ms2wg4sh5gq3rpjmmnp85rh5nc9ahca1imxkvhz4d3yiwy8hm52";
+ sha256 = "0ibp7g6aknvnkwkin97kv04ipksy3l18dsz9qysjb7h2nr8hnvbp";
};
nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ];
diff --git a/pkgs/applications/science/biology/exonerate/default.nix b/pkgs/applications/science/biology/exonerate/default.nix
new file mode 100644
index 00000000000..1dd6b44692a
--- /dev/null
+++ b/pkgs/applications/science/biology/exonerate/default.nix
@@ -0,0 +1,25 @@
+{ stdenv, fetchurl, glib, pkgconfig }:
+
+stdenv.mkDerivation rec {
+ version = "2.4.0";
+ pname = "exonerate";
+
+ src = fetchurl {
+ url = "http://ftp.ebi.ac.uk/pub/software/vertebrategenomics/exonerate/${pname}-${version}.tar.gz";
+ sha256 = "0hj0m9xygiqsdxvbg79wq579kbrx1mdrabi2bzqz2zn9qwfjcjgq";
+ };
+
+ doCheck = true;
+
+ buildInputs = [ glib ];
+
+ nativeBuildInputs = [ pkgconfig ];
+
+ meta = with stdenv.lib; {
+ description = "Generic tool for sequence alignment";
+ homepage = https://www.ebi.ac.uk/about/vertebrate-genomics/software/exonerate;
+ license = licenses.gpl3;
+ maintainers = [ maintainers.bzizou ];
+ platforms = platforms.unix ;
+ };
+}
diff --git a/pkgs/applications/science/biology/prodigal/default.nix b/pkgs/applications/science/biology/prodigal/default.nix
new file mode 100644
index 00000000000..653f4390488
--- /dev/null
+++ b/pkgs/applications/science/biology/prodigal/default.nix
@@ -0,0 +1,26 @@
+{ stdenv, fetchFromGitHub }:
+
+stdenv.mkDerivation rec {
+ pname = "prodigal";
+ version = "2.6.3";
+
+ src = fetchFromGitHub {
+ repo = "Prodigal";
+ owner = "hyattpd";
+ rev = "v${version}";
+ sha256 = "1fs1hqk83qjbjhrvhw6ni75zakx5ki1ayy3v6wwkn3xvahc9hi5s";
+ };
+
+ makeFlags = [
+ "CC=cc"
+ "INSTALLDIR=$(out)/bin"
+ ];
+
+ meta = with stdenv.lib; {
+ description = "Fast, reliable protein-coding gene prediction for prokaryotic genomes";
+ homepage = https://github.com/hyattpd/Prodigal;
+ license = licenses.gpl3;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ luispedro ];
+ };
+}
diff --git a/pkgs/applications/science/math/sage/env-locations.nix b/pkgs/applications/science/math/sage/env-locations.nix
index 8354629cab5..bda2d23b9e5 100644
--- a/pkgs/applications/science/math/sage/env-locations.nix
+++ b/pkgs/applications/science/math/sage/env-locations.nix
@@ -28,6 +28,7 @@ writeTextFile rec {
export GPDOCDIR="${pari}/share/pari/doc"
export SINGULARPATH='${singular}/share/singular'
export SINGULAR_SO='${singular}/lib/libSingular.so'
+ export GAP_SO='${gap}/lib/libgap.so'
export SINGULAR_EXECUTABLE='${singular}/bin/Singular'
export MAXIMA_FAS='${maxima-ecl}/lib/maxima/${maxima-ecl.version}/binary-ecl/maxima.fas'
export MAXIMA_PREFIX="${maxima-ecl}"
diff --git a/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
new file mode 100644
index 00000000000..3f844e1b1ef
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/do-not-test-find-library.patch
@@ -0,0 +1,95 @@
+diff --git a/src/sage/env.py b/src/sage/env.py
+index 061b94f3f1..67cd091540 100644
+--- a/src/sage/env.py
++++ b/src/sage/env.py
+@@ -189,88 +189,13 @@ var('MAXIMA_FAS')
+ var('SAGE_BANNER', '')
+ var('SAGE_IMPORTALL', 'yes')
+
+-
+-def _get_shared_lib_filename(libname, *additional_libnames):
+- """
+- Return the full path to a shared library file installed in the standard
+- location for the system within the ``LIBDIR`` prefix (or
+- ``$SAGE_LOCAL/lib`` in the case of manual build of Sage).
+-
+- This can also be passed more than one library name (e.g. for cases where
+- some library may have multiple names depending on the platform) in which
+- case the first one found is returned.
+-
+- This supports most *NIX variants (in which ``lib.so`` is found
+- under ``$SAGE_LOCAL/lib``), macOS (same, but with the ``.dylib``
+- extension), and Cygwin (under ``$SAGE_LOCAL/bin/cyg.dll``,
+- or ``$SAGE_LOCAL/bin/cyg-*.dll`` for versioned DLLs).
+-
+- For distributions like Debian that use a multiarch layout, we also try the
+- multiarch lib paths (i.e. ``/usr/lib//``).
+-
+- Returns ``None`` if the file does not exist.
+-
+- EXAMPLES::
+-
+- sage: import sys
+- sage: from fnmatch import fnmatch
+- sage: from sage.env import _get_shared_lib_filename
+- sage: lib_filename = _get_shared_lib_filename("Singular",
+- ....: "singular-Singular")
+- sage: if sys.platform == 'cygwin':
+- ....: pattern = "*/cygSingular-*.dll"
+- ....: elif sys.platform == 'darwin':
+- ....: pattern = "*/libSingular.dylib"
+- ....: else:
+- ....: pattern = "*/lib*Singular.so"
+- sage: fnmatch(lib_filename, pattern)
+- True
+- sage: _get_shared_lib_filename("an_absurd_lib") is None
+- True
+- """
+-
+- for libname in (libname,) + additional_libnames:
+- if sys.platform == 'cygwin':
+- bindir = sysconfig.get_config_var('BINDIR')
+- pats = ['cyg{}.dll'.format(libname), 'cyg{}-*.dll'.format(libname)]
+- filenames = []
+- for pat in pats:
+- filenames += glob.glob(os.path.join(bindir, pat))
+-
+- # Note: This is not very robust, since if there are multi DLL
+- # versions for the same library this just selects one more or less
+- # at arbitrary. However, practically speaking, on Cygwin, there
+- # will only ever be one version
+- if filenames:
+- return filenames[-1]
+- else:
+- if sys.platform == 'darwin':
+- ext = 'dylib'
+- else:
+- ext = 'so'
+-
+- libdirs = [sysconfig.get_config_var('LIBDIR')]
+- multilib = sysconfig.get_config_var('MULTILIB')
+- if multilib:
+- libdirs.insert(0, os.path.join(libdirs[0], multilib))
+-
+- for libdir in libdirs:
+- basename = 'lib{}.{}'.format(libname, ext)
+- filename = os.path.join(libdir, basename)
+- if os.path.exists(filename):
+- return filename
+-
+- # Just return None if no files were found
+- return None
+-
+-
+ # locate singular shared object
+ # On Debian it's libsingular-Singular so try that as well
+-SINGULAR_SO = _get_shared_lib_filename('Singular', 'singular-Singular')
++SINGULAR_SO = '/default'
+ var('SINGULAR_SO', SINGULAR_SO)
+
+ # locate libgap shared object
+-GAP_SO= _get_shared_lib_filename('gap','')
++GAP_SO= '/default'
+ var('GAP_SO', GAP_SO)
+
+ # post process
diff --git a/pkgs/applications/science/math/sage/patches/do-not-test-package-manifests.patch b/pkgs/applications/science/math/sage/patches/do-not-test-package-manifests.patch
new file mode 100644
index 00000000000..9e3f0f5ae88
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/do-not-test-package-manifests.patch
@@ -0,0 +1,26 @@
+diff --git a/src/sage/misc/package.py b/src/sage/misc/package.py
+index 3bca15d53b..7cf04ff8d1 100644
+--- a/src/sage/misc/package.py
++++ b/src/sage/misc/package.py
+@@ -478,16 +478,16 @@ def package_manifest(package):
+
+ EXAMPLES::
+
+- sage: from sage.misc.package import package_manifest
+- sage: sagetex_manifest = package_manifest('sagetex')
+- sage: sagetex_manifest['package_name'] == 'sagetex'
++ sage: from sage.misc.package import package_manifest # optional - buildsystem
++ sage: sagetex_manifest = package_manifest('sagetex') # optional - buildsystem
++ sage: sagetex_manifest['package_name'] == 'sagetex' # optional - buildsystem
+ True
+- sage: 'files' in sagetex_manifest
++ sage: 'files' in sagetex_manifest # optional - buildsystem
+ True
+
+ Test a nonexistent package::
+
+- sage: package_manifest('dummy-package')
++ sage: package_manifest('dummy-package') # optional - buildsystem
+ Traceback (most recent call last):
+ ...
+ KeyError: 'dummy-package'
diff --git a/pkgs/applications/science/math/sage/patches/giac-1.5.0.patch b/pkgs/applications/science/math/sage/patches/giac-1.5.0.patch
deleted file mode 100644
index 58090b241d2..00000000000
--- a/pkgs/applications/science/math/sage/patches/giac-1.5.0.patch
+++ /dev/null
@@ -1,14 +0,0 @@
---- a/src/sage/interfaces/giac.py 2018-12-08 22:11:56.285500644 +0100
-+++ b/src/sage/interfaces/giac.py 2018-12-08 22:11:56.285500644 +0100
-@@ -617,10 +617,7 @@
- '4\n3'
- sage: s='g(x):={\nx+1;\nx+2;\n}'
- sage: giac(s)
-- (x)->{
-- x+1;
-- x+2;
-- }
-+ (x)->[x+1,x+2]
- sage: giac.g(5)
- 7
- """
diff --git a/pkgs/applications/science/math/sage/patches/ignore-pip-deprecation.patch b/pkgs/applications/science/math/sage/patches/ignore-pip-deprecation.patch
deleted file mode 100644
index 95b377dc955..00000000000
--- a/pkgs/applications/science/math/sage/patches/ignore-pip-deprecation.patch
+++ /dev/null
@@ -1,22 +0,0 @@
-diff --git a/src/sage/misc/package.py b/src/sage/misc/package.py
-index 689e5a23b9..4e16fe3a8d 100644
---- a/src/sage/misc/package.py
-+++ b/src/sage/misc/package.py
-@@ -142,9 +142,14 @@ def pip_installed_packages():
- sage: d['beautifulsoup'] # optional - beautifulsoup
- u'...'
- """
-- proc = subprocess.Popen(["pip", "list", "--no-index", "--format", "json"], stdout=subprocess.PIPE)
-- stdout = proc.communicate()[0].decode()
-- return {package['name'].lower():package['version'] for package in json.loads(stdout)}
-+ with open(os.devnull, 'w') as devnull:
-+ proc = subprocess.Popen(
-+ ["pip", "list", "--no-index", "--format", "json"],
-+ stdout=subprocess.PIPE,
-+ stderr=devnull,
-+ )
-+ stdout = proc.communicate()[0].decode()
-+ return {package['name'].lower():package['version'] for package in json.loads(stdout)}
-
- def list_packages(*pkg_types, **opts):
- r"""
diff --git a/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch b/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch
deleted file mode 100644
index 64dd6fd9377..00000000000
--- a/pkgs/applications/science/math/sage/patches/revert-sphinx-always-fork.patch
+++ /dev/null
@@ -1,71 +0,0 @@
-commit f1c59929c3c180ac283334c2b3c901ac8c82f6b1
-Author: Timo Kaufmann
-Date: Sat Oct 20 20:07:41 2018 +0200
-
- Revert "Something related to the sphinxbuild seems to be leaking memory"
-
- This reverts commit 7d85dc796c58c3de57401bc22d3587b94e205091.
-
-diff --git a/src/sage_setup/docbuild/__init__.py b/src/sage_setup/docbuild/__init__.py
-index 0b24b1a60b..084c3f89d7 100644
---- a/src/sage_setup/docbuild/__init__.py
-+++ b/src/sage_setup/docbuild/__init__.py
-@@ -265,29 +265,35 @@ class DocBuilder(object):
- # import the customized builder for object.inv files
- inventory = builder_helper('inventory')
-
--def build_many(target, args):
-- # Pool() uses an actual fork() to run each new instance. This is important
-- # for performance reasons, i.e., don't use a forkserver when it becomes
-- # available with Python 3: Here, sage is already initialized which is quite
-- # costly, with a forkserver we would have to reinitialize it for every
-- # document we build. At the same time, don't serialize this by taking the
-- # pool (and thus the call to fork()) out completely: The call to Sphinx
-- # leaks memory, so we need to build each document in its own process to
-- # control the RAM usage.
-- from multiprocessing import Pool
-- pool = Pool(NUM_THREADS, maxtasksperchild=1)
-- # map_async handles KeyboardInterrupt correctly. Plain map and
-- # apply_async does not, so don't use it.
-- x = pool.map_async(target, args, 1)
-- try:
-- ret = x.get(99999)
-- pool.close()
-- pool.join()
-- except Exception:
-- pool.terminate()
-- if ABORT_ON_ERROR:
-- raise
-- return ret
-+if NUM_THREADS > 1:
-+ def build_many(target, args):
-+ from multiprocessing import Pool
-+ pool = Pool(NUM_THREADS, maxtasksperchild=1)
-+ # map_async handles KeyboardInterrupt correctly. Plain map and
-+ # apply_async does not, so don't use it.
-+ x = pool.map_async(target, args, 1)
-+ try:
-+ ret = x.get(99999)
-+ pool.close()
-+ pool.join()
-+ except Exception:
-+ pool.terminate()
-+ if ABORT_ON_ERROR:
-+ raise
-+ return ret
-+else:
-+ def build_many(target, args):
-+ results = []
-+
-+ for arg in args:
-+ try:
-+ results.append(target(arg))
-+ except Exception:
-+ if ABORT_ON_ERROR:
-+ raise
-+
-+ return results
-+
-
- ##########################################
- # Parallel Building Ref Manual #
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index e14d24cf70e..f2d65b68a33 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -10,14 +10,14 @@
# all get the same sources with the same patches applied.
stdenv.mkDerivation rec {
- version = "8.6";
- name = "sage-src-${version}";
+ version = "8.7";
+ pname = "sage-src";
src = fetchFromGitHub {
owner = "sagemath";
repo = "sage";
rev = version;
- sha256 = "1vs3pbgbqpg0qnwr018bqsdmm7crgjp310cx8zwh7za3mv1cw5j3";
+ sha256 = "05vvrd6syh0hlmrk6kzjrwd0hpmvxp8vr8p3mkjb0jh5p2kjdd27";
};
# Patches needed because of particularities of nix or the way this is packaged.
@@ -37,12 +37,6 @@ stdenv.mkDerivation rec {
# https://github.com/python/cpython/pull/7476
./patches/python-5755-hotpatch.patch
- # Revert the commit that made the sphinx build fork even in the single thread
- # case. For some yet unknown reason, that breaks the docbuild on nix and archlinux.
- # See https://groups.google.com/forum/#!msg/sage-packaging/VU4h8IWGFLA/mrmCMocYBwAJ.
- # https://trac.sagemath.org/ticket/26608
- ./patches/revert-sphinx-always-fork.patch
-
# Make sure py2/py3 tests are only run when their expected context (all "sage"
# tests) are also run. That is necessary to test dochtml individually. See
# https://trac.sagemath.org/ticket/26110 for an upstream discussion.
@@ -59,6 +53,21 @@ stdenv.mkDerivation rec {
sha256 = "07p9i0fwjgapmfvmi436yn6v60p8pvmxqjc93wsssqgh5kd8qw3n";
stripLen = 1;
})
+
+ # Part of the build system. Should become unnecessary with sage 8.8.
+ # Upstream discussion here: https://trac.sagemath.org/ticket/27124#comment:33
+ ./patches/do-not-test-package-manifests.patch
+
+ # Not necessary since library location is set explicitly
+ # https://trac.sagemath.org/ticket/27660#ticket
+ ./patches/do-not-test-find-library.patch
+
+ # https://trac.sagemath.org/ticket/27697#ticket
+ (fetchpatch {
+ name = "pplpy-doc-location-configurable.patch";
+ url = "https://git.sagemath.org/sage.git/patch/?h=c4d966e7cb0c7b87c55d52dc6f46518433a2a0a2";
+ sha256 = "0pqbbsx8mriwny422s9mp3z5d095cnam32sm62q4mxk8g8jb9vm9";
+ })
];
# Since sage unfortunately does not release bugfix releases, packagers must
@@ -72,12 +81,6 @@ stdenv.mkDerivation rec {
url = "https://git.sagemath.org/sage.git/patch?id2=10407524b18659e14e184114b61c043fb816f3c2&id=c9b0cc9d0b8748ab85e568f8f57f316c5e8cbe54";
sha256 = "0wgp7yvn9sm1ynlhcr4l0hzmvr2n28llg4xc01p6k1zz4im64c17";
})
- # https://trac.sagemath.org/ticket/27224
- (fetchpatch {
- name = "sig_on_in_matrix_misc.patch";
- url = "https://git.sagemath.org/sage.git/patch?id=85d25bf2eb73f7d3c6de4ee6222b0c399be43b07";
- sha256 = "1ciwhh57pnb9b4i8m3vb07wfsibsay5sg0jp5giq1pzc5zc79a4p";
- })
];
# Patches needed because of package updates. We could just pin the versions of
@@ -110,52 +113,12 @@ stdenv.mkDerivation rec {
stripLen = 1;
})
- # https://trac.sagemath.org/ticket/26315
- ./patches/giac-1.5.0.patch
-
- # https://trac.sagemath.org/ticket/26442
- (fetchSageDiff {
- name = "cypari2-2.0.3.patch";
- base = "8.6.rc1";
- rev = "cd62d45bcef93fb4f7ed62609a46135e6de07051";
- sha256 = "08l2b9w0rn1zrha6188j72f7737xs126gkgmydjd31baa6367np2";
- })
-
- # https://trac.sagemath.org/ticket/26949
- (fetchpatch {
- name = "sphinx-1.8.3-dependency.patch";
- url = "https://git.sagemath.org/sage.git/patch?id=d305eda0fedc73fdbe0447b5d6d2b520b8d112c4";
- sha256 = "1x3q5j8lq35vlj893gj5gq9fhzs60szm9r9rx6ri79yiy9apabph";
- })
# https://trac.sagemath.org/ticket/26451
- (fetchpatch {
- name = "sphinx-1.8.3.patch";
- url = "https://git.sagemath.org/sage.git/patch?id2=0cb494282d7b4cea50aba7f4d100e7932a4c00b1&id=62b989d5ee1d9646db85ea56053cd22e9ffde5ab";
- sha256 = "1n5c61mvhalcr2wbp66wzsynwwk59aakvx3xqa5zw9nlkx3rd0h1";
- })
-
- # https://trac.sagemath.org/ticket/27061
- (fetchpatch {
- name = "numpy-1.16-inline-fortran.patch";
- url = "https://git.sagemath.org/sage.git/patch?id=a05b6b038e1571ab15464e98f76d1927c0c3fd12";
- sha256 = "05yq97pq84xi60wb1p9skrad5h5x770gq98ll4frr7hvvmlwsf58";
- })
-
- # https://trac.sagemath.org/ticket/27405
- ./patches/ignore-pip-deprecation.patch
-
- # https://trac.sagemath.org/ticket/27360
- (fetchpatch {
- name = "eclib-20190226.patch";
- url = "https://git.sagemath.org/sage.git/patch/?id=f570e3a7fc2965764b84c04ce301a88ded2c42df";
- sha256 = "0l5c4giixkn15v2a06sfzq5mkxila6l67zkjbacirwprrlpcnmmp";
- })
-
- # https://trac.sagemath.org/ticket/27420
- (fetchpatch {
- name = "cypari-2.1.patch";
- url = "https://git.sagemath.org/sage.git/patch/?id=e351bf2f2914e683d5e2028597c45ae8d1b7f855";
- sha256 = "00faa7fl0vaqcqbw0bidkhl78qa8l34d3a07zirbcl0vm74bdn1p";
+ (fetchSageDiff {
+ name = "sphinx-1.8.patch";
+ base = "8.7";
+ rev = "737afd8f314bd1e16feaec562bb4b5efa2effa8b";
+ sha256 = "0n56ss88ds662bp49j23z5c2i6hsn3jynxw13wv76hyl0h7l1hjh";
})
# https://trac.sagemath.org/ticket/27653
@@ -177,6 +140,12 @@ stdenv.mkDerivation rec {
echo '#!${runtimeShell}
python "$@"' > build/bin/sage-python23
+ # Make sure sage can at least be imported without setting any environment
+ # variables. It won't be close to feature complete though.
+ sed -i \
+ "s|var('SAGE_LOCAL',.*|var('SAGE_LOCAL', '$out/src')|" \
+ src/sage/env.py
+
# Do not use sage-env-config (generated by ./configure).
# Instead variables are set manually.
echo '# do nothing' > src/bin/sage-env-config
diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix
index cc1a4fc61e0..91c880673a1 100644
--- a/pkgs/applications/science/math/sage/sagedoc.nix
+++ b/pkgs/applications/science/math/sage/sagedoc.nix
@@ -52,6 +52,9 @@ stdenv.mkDerivation rec {
export HOME="$TMPDIR/sage_home"
mkdir -p "$HOME"
+ # needed to link them in the sage docs using intersphinx
+ export PPLPY_DOCS=${python.pkgs.pplpy.doc}/share/doc/pplpy
+
${sage-with-env}/bin/sage -python -m sage_setup.docbuild \
--mathjax \
--no-pdf-links \
diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix
index d7f9cb9ee32..d745532d5d7 100644
--- a/pkgs/applications/science/math/sage/sagelib.nix
+++ b/pkgs/applications/science/math/sage/sagelib.nix
@@ -47,6 +47,8 @@
, jupyter_core
, libhomfly
, libbraiding
+, gmpy2
+, pplpy
}:
# This is the core sage python package. Everything else is just wrappers gluing
@@ -115,6 +117,8 @@ buildPythonPackage rec {
cysignals
libhomfly
libbraiding
+ gmpy2
+ pplpy
];
buildPhase = ''
diff --git a/pkgs/applications/science/programming/groove/default.nix b/pkgs/applications/science/programming/groove/default.nix
new file mode 100644
index 00000000000..e854f20d39a
--- /dev/null
+++ b/pkgs/applications/science/programming/groove/default.nix
@@ -0,0 +1,54 @@
+{ stdenv, fetchurl, unzip, makeWrapper, makeDesktopItem, icoutils, jre }:
+
+let
+ desktopItem = makeDesktopItem {
+ name = "groove-simulator";
+ exec = "groove-simulator";
+ icon = "groove";
+ desktopName = "GROOVE Simulator";
+ comment = "GRaphs for Object-Oriented VErification";
+ categories = "Science;ComputerScience;";
+ };
+
+in stdenv.mkDerivation rec {
+ pname = "groove";
+ version = "5.7.4";
+
+ src = fetchurl {
+ url = "mirror://sourceforge/groove/groove/${version}/${pname}-${builtins.replaceStrings ["."] ["_"] version}-bin.zip";
+ sha256 = "1cl3xzl3n8b9a7h5pvnv31bab9j9zaw07ppk8whk8h865dcq1d10";
+ };
+
+ nativeBuildInputs = [ unzip makeWrapper icoutils ];
+
+ dontBuild = true;
+
+ installPhase = ''
+ mkdir -p $out/share/groove
+ cp -r bin lib $out/share/groove/
+
+ mkdir -p $out/share/doc/groove
+ cp CHANGES README *.pdf $out/share/doc/groove/
+
+ mkdir -p $out/bin
+ for bin in Generator Imager ModelChecker PrologChecker Simulator Viewer; do
+ makeWrapper ${jre}/bin/java $out/bin/groove-''${bin,,} \
+ --add-flags "-jar $out/share/groove/bin/$bin.jar"
+ done
+
+ mkdir -p $out/share/applications
+ ln -s ${desktopItem}/share/applications/* $out/share/applications/
+
+ mkdir -p $out/share/icons/hicolor/{16x16,32x32}/apps
+ icotool -x -i 1 -o $out/share/icons/hicolor/32x32/apps/groove.png groove-green-g.ico
+ icotool -x -i 2 -o $out/share/icons/hicolor/16x16/apps/groove.png groove-green-g.ico
+ '';
+
+ meta = with stdenv.lib; {
+ description = "GRaphs for Object-Oriented VErification";
+ homepage = http://groove.cs.utwente.nl/;
+ license = licenses.asl20;
+ platforms = platforms.all;
+ maintainers = with maintainers; [ jfrankenau ];
+ };
+}
diff --git a/pkgs/applications/video/mkvtoolnix/default.nix b/pkgs/applications/video/mkvtoolnix/default.nix
index 28056bf6cb8..f5cac00a5bb 100644
--- a/pkgs/applications/video/mkvtoolnix/default.nix
+++ b/pkgs/applications/video/mkvtoolnix/default.nix
@@ -12,13 +12,13 @@ with stdenv.lib;
stdenv.mkDerivation rec {
pname = "mkvtoolnix";
- version = "32.0.0";
+ version = "33.0.0";
src = fetchFromGitLab {
owner = "mbunkus";
repo = "mkvtoolnix";
rev = "release-${version}";
- sha256 = "022mmgm0a6qxybjrygisg731sg9m9d8svd0mxr77wfknwa7m09c9";
+ sha256 = "0bphwjjpcj86phcx795wdy5b0ivwh5mvbvi5288pql88x6x0jjk9";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/window-managers/i3/easyfocus.nix b/pkgs/applications/window-managers/i3/easyfocus.nix
index 7cdc8854951..9ce5486557a 100644
--- a/pkgs/applications/window-managers/i3/easyfocus.nix
+++ b/pkgs/applications/window-managers/i3/easyfocus.nix
@@ -2,15 +2,15 @@
, xorg , i3ipc-glib , glib
}:
-stdenv.mkDerivation rec {
- name = "i3easyfocus-${version}";
- version = "20180622";
+stdenv.mkDerivation {
+ pname = "i3easyfocus";
+ version = "20190411";
src = fetchFromGitHub {
owner = "cornerman";
repo = "i3-easyfocus";
- rev = "3631d5af612d58c3d027f59c86b185590bd78ae1";
- sha256 = "1wgknmmm7iz0wxsdh29gmx4arizva9101pzhnmac30bmixf3nzhr";
+ rev = "fffb468f7274f9d7c9b92867c8cb9314ec6cf81a";
+ sha256 = "1db23vzzmp0hnfss1fkd80za6d2pajx7hdwikw50pk95jq0w8wfm";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/build-support/trivial-builders.nix b/pkgs/build-support/trivial-builders.nix
index 592af3fe4f2..e498417adf0 100644
--- a/pkgs/build-support/trivial-builders.nix
+++ b/pkgs/build-support/trivial-builders.nix
@@ -18,8 +18,8 @@ rec {
* stdenv with no compiler environment. `runCommandCC`
*
* Examples:
- * runCommand "name" {envVariable = true;} ''echo hello''
- * runCommandNoCC "name" {envVariable = true;} ''echo hello'' # equivalent to prior
+ * runCommand "name" {envVariable = true;} ''echo hello > $out''
+ * runCommandNoCC "name" {envVariable = true;} ''echo hello > $out'' # equivalent to prior
* runCommandCC "name" {} ''gcc -o myfile myfile.c; cp myfile $out'';
*/
runCommand = runCommandNoCC;
diff --git a/pkgs/data/themes/materia-theme/default.nix b/pkgs/data/themes/materia-theme/default.nix
index ba0958896c5..46b44d3ff90 100644
--- a/pkgs/data/themes/materia-theme/default.nix
+++ b/pkgs/data/themes/materia-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gnome3, libxml2, gtk-engine-murrine, gdk_pixbuf, librsvg, bc }:
+{ stdenv, fetchFromGitHub, gnome3, glib, libxml2, gtk-engine-murrine, gdk_pixbuf, librsvg, bc }:
stdenv.mkDerivation rec {
pname = "materia-theme";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "1fpipwvwxjiriqhysqgx51rnax73hyd5jkyxhc2g3y73s5r2xq82";
};
- nativeBuildInputs = [ gnome3.glib libxml2 bc ];
+ nativeBuildInputs = [ glib libxml2 bc ];
buildInputs = [ gnome3.gnome-themes-extra gdk_pixbuf librsvg ];
diff --git a/pkgs/data/themes/plata/default.nix b/pkgs/data/themes/plata/default.nix
index de15034590d..b43a6e35ab2 100644
--- a/pkgs/data/themes/plata/default.nix
+++ b/pkgs/data/themes/plata/default.nix
@@ -18,13 +18,13 @@
stdenv.mkDerivation rec {
name = "plata-theme-${version}";
- version = "0.6.0";
+ version = "0.7.6";
src = fetchFromGitLab {
owner = "tista500";
repo = "plata-theme";
rev = version;
- sha256 = "182i2wbviwpdvmkmayyqggjx6fvlpf4vsmhsyi6nlg9m4n1djxp8";
+ sha256 = "1jllsl2h3zdvlp3k2dy3h4jyccrzzymwbqz43jhnm6mxxabxzijg";
};
preferLocalBuild = true;
diff --git a/pkgs/desktops/enlightenment/terminology.nix b/pkgs/desktops/enlightenment/terminology.nix
index f11f21f5b95..5c8aba4d882 100644
--- a/pkgs/desktops/enlightenment/terminology.nix
+++ b/pkgs/desktops/enlightenment/terminology.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
name = "terminology-${version}";
- version = "1.3.2";
+ version = "1.4.0";
src = fetchurl {
url = "http://download.enlightenment.org/rel/apps/terminology/${name}.tar.xz";
- sha256 = "1kclxzadmk272s9spa7n704pcb1c611ixxrq88w5zk22va0i25xm";
+ sha256 = "0q1y7fadj42n23aspx9y8hm4w4xlc316wc3415wnf75ibsx08ngd";
};
nativeBuildInputs = [
diff --git a/pkgs/desktops/gnome-3/apps/polari/default.nix b/pkgs/desktops/gnome-3/apps/polari/default.nix
index a1d84164640..cf056ca7841 100644
--- a/pkgs/desktops/gnome-3/apps/polari/default.nix
+++ b/pkgs/desktops/gnome-3/apps/polari/default.nix
@@ -5,13 +5,13 @@
let
pname = "polari";
- version = "3.32.0";
+ version = "3.32.1";
in stdenv.mkDerivation rec {
name = "${pname}-${version}";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1jq1xvk9a05x37g9w349f5q069cvg5lfbhxj88gpbnf4fyndnr70";
+ sha256 = "0z2dxj1hd798jn79y9a7lkb77lm8l7y5fsqh9g6lbr7pnmg559yk";
};
propagatedUserEnvPkgs = [ telepathy-idle telepathy-logger ];
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
index 5e4182afb10..21281f15a5c 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell-extensions/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
name = "gnome-shell-extensions-${version}";
- version = "3.32.0";
+ version = "3.32.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell-extensions/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "0wzrivhp6vs4754yldza38gkhkhah35rdncb3c3hxhhyv9fr3pl5";
+ sha256 = "07libf6z24n42hpdsq163w0j8xyrav0lxqrwxrvq5kbz8zxv5ch2";
};
passthru = {
diff --git a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
index fb92d55c799..337ea4d1368 100644
--- a/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-shell/default.nix
@@ -14,11 +14,11 @@ let
in stdenv.mkDerivation rec {
name = "gnome-shell-${version}";
- version = "3.32.0";
+ version = "3.32.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-shell/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "1djkswsv3fhb3lf2w77bbl6z2kvji29cfxbwh5gqvyykwwx87y92";
+ sha256 = "1pb00af3w4wivdhcvdy59z2xlxasg90bcm5a9ck0p5lf97adwx08";
};
LANG = "en_US.UTF-8";
diff --git a/pkgs/desktops/gnome-3/core/gnome-software/default.nix b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
index 0cd8267f521..f71df437d11 100644
--- a/pkgs/desktops/gnome-3/core/gnome-software/default.nix
+++ b/pkgs/desktops/gnome-3/core/gnome-software/default.nix
@@ -5,11 +5,11 @@
stdenv.mkDerivation rec {
name = "gnome-software-${version}";
- version = "3.32.0";
+ version = "3.32.1";
src = fetchurl {
url = "mirror://gnome/sources/gnome-software/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "19hrvkyavrfrhs19ii4ky5bpzsijiyq2vcxb5s4xk13xv8ys2151";
+ sha256 = "0xxhvyqfwlcyvlqc36rpcili00dpwy8b5c5klaqccn5qrc87rl38";
};
patches = [
diff --git a/pkgs/desktops/gnome-3/core/mutter/default.nix b/pkgs/desktops/gnome-3/core/mutter/default.nix
index 4d3e72e7ff0..2c305f002fd 100644
--- a/pkgs/desktops/gnome-3/core/mutter/default.nix
+++ b/pkgs/desktops/gnome-3/core/mutter/default.nix
@@ -10,12 +10,12 @@
}:
stdenv.mkDerivation rec {
- name = "mutter-${version}";
- version = "3.32.0";
+ pname = "mutter";
+ version = "3.32.1";
src = fetchurl {
- url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${name}.tar.xz";
- sha256 = "068zir5c1awmzb31gx94zjykv6c3xb1p5pch7860y3xlihha4s3n";
+ url = "mirror://gnome/sources/mutter/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
+ sha256 = "1q74lrb08vy0ynxbssqyxvbzf9252xgf9l6jxr9g4q0gmvpq402j";
};
mesonFlags = [
diff --git a/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch b/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch
new file mode 100644
index 00000000000..4259f93eb24
--- /dev/null
+++ b/pkgs/desktops/gnome-3/core/rygel/add-option-for-installation-sysconfdir.patch
@@ -0,0 +1,38 @@
+diff --git a/meson.build b/meson.build
+index 209d4187..58580980 100644
+--- a/meson.build
++++ b/meson.build
+@@ -20,7 +20,11 @@ if not get_option('uninstalled')
+ rygel_datadir = join_paths(get_option('prefix'), get_option('datadir'), 'rygel')
+ rygel_libexecdir = join_paths(get_option('prefix'), get_option('libexecdir'),
+ 'rygel')
+- rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
++ if get_option('sysconfdir_install') != ''
++ rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir_install'))
++ else
++ rygel_sysconfdir = join_paths(get_option('prefix'), get_option('sysconfdir'))
++ endif
+ rygel_plugindir = join_paths(rygel_libdir, 'rygel-2.6', 'plugins')
+ rygel_enginedir = join_paths(rygel_libdir, 'rygel-2.6', 'engines')
+ rygel_presetdir = join_paths(rygel_datadir, 'rygel', 'presets')
+@@ -55,7 +59,7 @@ conf.set_quoted('DATA_DIR', rygel_datadir)
+ conf.set_quoted('PLUGIN_DIR', rygel_plugindir)
+ conf.set_quoted('BIG_ICON_DIR', rygel_bigicondir)
+ conf.set_quoted('SMALL_ICON_DIR', rygel_smallicondir)
+-conf.set_quoted('SYS_CONFIG_DIR', rygel_sysconfdir)
++conf.set_quoted('SYS_CONFIG_DIR', get_option('sysconfdir'))
+ conf.set_quoted('LOCALEDIR', join_paths(get_option('prefix'), get_option('localedir')))
+ conf.set_quoted('MX_EXTRACT_PATH', join_paths(rygel_libexecdir, 'mx-extract'))
+ conf.set_quoted('DESKTOP_DIR', join_paths(get_option('prefix'), get_option('datadir'), 'applications'))
+diff --git a/meson_options.txt b/meson_options.txt
+index f09cac58..ff11c548 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,6 +1,7 @@
+ option('uninstalled', type: 'boolean', value: 'false', description: 'Run Rygel from build directory only')
+ option('api-docs', type: 'boolean', value: 'false', description: 'Build the API documentation')
+ option('systemd-user-units-dir', type : 'string', value : 'auto', description : 'Where to install the systemd user unit (use special values "auto" or "none", or pass a path')
++option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
+ option('plugins', type : 'array', choices : ['external', 'gst-launch', 'lms', 'media-export', 'mpris', 'playbin', 'ruih', 'tracker'])
+ option('engines', type : 'array', choices : ['simple', 'gstreamer'])
+ option('examples', type : 'boolean', value : 'true')
diff --git a/pkgs/desktops/gnome-3/core/rygel/default.nix b/pkgs/desktops/gnome-3/core/rygel/default.nix
index 09ff43041fd..5e701e488f2 100644
--- a/pkgs/desktops/gnome-3/core/rygel/default.nix
+++ b/pkgs/desktops/gnome-3/core/rygel/default.nix
@@ -7,7 +7,6 @@
, gettext
, libxml2
, gobject-introspection
-, gtk-doc
, wrapGAppsHook
, python3
, glib
@@ -32,7 +31,7 @@ stdenv.mkDerivation rec {
version = "0.38.0";
# TODO: split out lib
- outputs = [ "out" "dev" "devdoc" ];
+ outputs = [ "out" "dev" ];
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
@@ -47,7 +46,6 @@ stdenv.mkDerivation rec {
gettext
libxml2
gobject-introspection
- gtk-doc
wrapGAppsHook
python3
];
@@ -76,12 +74,17 @@ stdenv.mkDerivation rec {
mesonFlags = [
"-Dsystemd-user-units-dir=${placeholder "out"}/lib/systemd/user"
- "-Dapi-docs=true"
+ "-Dapi-docs=false"
"--sysconfdir=/etc"
+ "-Dsysconfdir_install=${placeholder "out"}/etc"
];
doCheck = true;
+ patches = [
+ ./add-option-for-installation-sysconfdir.patch
+ ];
+
postPatch = ''
patchShebangs data/xml/process-xml.py
'';
diff --git a/pkgs/desktops/mate/marco/default.nix b/pkgs/desktops/mate/marco/default.nix
index 8a707c78a51..594ec398d20 100644
--- a/pkgs/desktops/mate/marco/default.nix
+++ b/pkgs/desktops/mate/marco/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, libcanberra-gtk3, libgtop, gnome2, gnome3, gtk3, mate, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, libxml2, libcanberra-gtk3, libgtop, libstartup_notification, gnome3, gtk3, mate, wrapGAppsHook }:
stdenv.mkDerivation rec {
name = "marco-${version}";
@@ -20,7 +20,7 @@ stdenv.mkDerivation rec {
libxml2
libcanberra-gtk3
libgtop
- gnome2.startup_notification
+ libstartup_notification
gtk3
gnome3.zenity
];
diff --git a/pkgs/desktops/mate/mate-applets/default.nix b/pkgs/desktops/mate/mate-applets/default.nix
index 8720c8ec050..232fe79591b 100644
--- a/pkgs/desktops/mate/mate-applets/default.nix
+++ b/pkgs/desktops/mate/mate-applets/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchurl, pkgconfig, intltool, itstool, gnome3, gtk3, gtksourceview3, libwnck3, libgtop, libxml2, libnotify, polkit, upower, wirelesstools, mate, hicolor-icon-theme, wrapGAppsHook }:
+{ stdenv, fetchurl, pkgconfig, intltool, itstool, gnome3, glib, gtk3, gtksourceview3, libwnck3, libgtop, libxml2, libnotify, polkit, upower, wirelesstools, mate, hicolor-icon-theme, wrapGAppsHook }:
stdenv.mkDerivation rec {
name = "mate-applets-${version}";
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
configureFlags = [ "--enable-suid=no" ];
- NIX_CFLAGS_COMPILE = "-I${gnome3.glib.dev}/include/gio-unix-2.0";
+ NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
meta = with stdenv.lib; {
description = "Applets for use with the MATE panel";
diff --git a/pkgs/desktops/maxx/default.nix b/pkgs/desktops/maxx/default.nix
index 6f515068418..5edebb39be4 100644
--- a/pkgs/desktops/maxx/default.nix
+++ b/pkgs/desktops/maxx/default.nix
@@ -1,43 +1,34 @@
-{ stdenv, fetchurl, makeWrapper, autoPatchelfHook
-, libredirect, gcc-unwrapped, bash, gtk-engine-murrine, gtk_engines, librsvg
+{ stdenv, fetchurl, makeWrapper, autoPatchelfHook, gnused
+, gcc, bash, gtk-engine-murrine, gtk_engines, librsvg
, libX11, libXext, libXi, libXau, libXrender, libXft, libXmu, libSM, libXcomposite, libXfixes, libXpm
, libXinerama, libXdamage, libICE, libXtst, libXaw, fontconfig, pango, cairo, glib, libxml2, atk, gtk2
-, gdk_pixbuf, libGL, ncurses
+, gdk_pixbuf, libGL, ncurses5
-, xclock, xsettingsd }:
+, dmidecode, pciutils, usbutils
+}:
-let
- version = "Indy-1.1.0";
-
- runtime_deps = [
- xclock xsettingsd
- ];
-in stdenv.mkDerivation {
- name = "MaXX-${version}";
+stdenv.mkDerivation rec {
+ pname = "MaXX";
+ version = "2.0.1";
+ codename = "Indigo";
srcs = [
(fetchurl {
- url = "http://maxxdesktop.arcadedaydream.com/Indy-Releases/Installers/MaXX-${version}-NO-ARCH.tar.gz";
- sha256 = "1d23j08wwrrn5cp7csv70pcz9jppcn0xb1894wkp0caaliy7g31y";
- })
- (fetchurl {
- url = "http://maxxdesktop.arcadedaydream.com/Indy-Releases/Installers/MaXX-${version}-x86_64.tar.gz";
- sha256 = "156p2lra184wyvibrihisd7cr1ivqaygsf0zfm26a12gx23b7708";
+ url = "http://maxxdesktop.arcadedaydream.com/${codename}-Releases/Installers/MaXX-${codename}-${version}-x86_64.tar.gz";
+ sha256 = "17hd3j8773kmvvhyf657in6zmhnw4mbvyn4r6dfip5bdaz66pj01";
})
];
- nativeBuildInputs = [ makeWrapper autoPatchelfHook ];
+ nativeBuildInputs = [ makeWrapper autoPatchelfHook gnused ];
buildInputs = [
stdenv.cc.cc libX11 libXext libXi libXau libXrender libXft libXmu libSM libXcomposite libXfixes libXpm
libXinerama libXdamage libICE libXtst libXaw fontconfig pango cairo glib libxml2 atk gtk2
- gdk_pixbuf libGL ncurses
+ gdk_pixbuf libGL ncurses5
];
buildPhase = ''
- while IFS= read -r -d ''$'\0' i; do
- substituteInPlace "$i" --replace /opt/MaXX $out/opt/MaXX
- done < <(find "." -type f -exec grep -Iq /opt/MaXX {} \; -and -print0)
+ sed -i "s/\(LD_LIBRARY_PATH=.*\)$/\1:\$LD_LIBRARY_PATH/p" etc/system.desktopenv
substituteInPlace bin/adminterm \
--replace /bin/bash ${bash}/bin/bash
@@ -55,33 +46,25 @@ in stdenv.mkDerivation {
wrapProgram $maxx/etc/skel/Xsession.dt \
--prefix GTK_PATH : "${gtk-engine-murrine}/lib/gtk-2.0:${gtk_engines}/lib/gtk-2.0" \
- --prefix GDK_PIXBUF_MODULE_FILE : "$(echo ${librsvg.out}/lib/gdk-pixbuf-2.0/*/loaders.cache)" \
- --prefix PATH : ${stdenv.lib.makeBinPath runtime_deps}
+ --prefix GDK_PIXBUF_MODULE_FILE : "$(echo ${librsvg.out}/lib/gdk-pixbuf-2.0/*/loaders.cache)"
while IFS= read -r -d ''$'\0' i; do
if isExecutable "$i"; then
wrapProgram "$i" \
- --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
- --set NIX_REDIRECTS /opt/MaXX=$maxx \
- --prefix PATH : $maxx/sbin
+ --prefix PATH : ${gcc}/bin
fi
done < <(find "$maxx" -type f -print0)
- cp ${gcc-unwrapped}/bin/cpp ${gcc-unwrapped}/libexec/gcc/*/*/cc1 $maxx/sbin
- for i in $maxx/sbin/cpp $maxx/sbin/cc1
- do
- wrapProgram "$i" \
- --set LD_PRELOAD "${libredirect}/lib/libredirect.so" \
- --set NIX_REDIRECTS /opt/MaXX=$maxx
- done
+ wrapProgram $maxx/bin/hinv \
+ --prefix PATH : ${stdenv.lib.makeBinPath [ dmidecode pciutils usbutils ]}
'';
meta = with stdenv.lib; {
description = "A replica of IRIX Interactive Desktop";
- homepage = http://www.maxxinteractive.com;
+ homepage = https://www.facebook.com/maxxdesktop/;
license = {
fullName = "The MaXX Interactive Desktop for Linux License Agreement";
- url = http://www.maxxinteractive.com/site/?page_id=97;
+ url = http://maxxdesktop.arcadedaydream.com/Indigo-Releases/docs/license.html;
free = false; # redistribution is only allowed to *some* hardware, etc.
};
maintainers = [ maintainers.gnidorah ];
diff --git a/pkgs/desktops/pantheon/apps/elementary-music/default.nix b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
index 7b374236a12..78ddeb6e6d9 100644
--- a/pkgs/desktops/pantheon/apps/elementary-music/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-music/default.nix
@@ -7,7 +7,7 @@
stdenv.mkDerivation rec {
pname = "music";
- version = "5.0.3";
+ version = "5.0.4";
name = "elementary-${pname}-${version}";
@@ -15,7 +15,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "0qbny4484kr7lihg54rbhfwah9k43iivk3rivfvn7i5w66vn5spl";
+ sha256 = "02qjsf9xnfh043xbls9mll2r1wcdvclw60x8wysv12rhbm90gwvp";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
index 644841354e5..493e7a97805 100644
--- a/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/default.nix
@@ -5,7 +5,7 @@
stdenv.mkDerivation rec {
pname = "photos";
- version = "2.6.2";
+ version = "2.6.3";
name = "elementary-${pname}-${version}";
@@ -13,7 +13,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "166a1jb85n67z6ffm5i0xzap407rv0r511lzh0gidkap1qy6pnmi";
+ sha256 = "1s0ww5g26wj0gd1drj8gxs74gvg2c9fdj4ixpifj8jh8yafdmrvg";
};
passthru = {
@@ -67,11 +67,9 @@ stdenv.mkDerivation rec {
];
patches = [
- # Fix build against gexiv2 0.12
- (fetchpatch {
- url = "https://github.com/elementary/photos/commit/86df00ced674abb2ee430ea24422079cfabb314c.patch";
- sha256 = "0836fzja93w36jf7ldqypsmnqn46mwsl93q41m104zn8qm0wrkmy";
- })
+ # https://github.com/elementary/photos/pull/505
+ # Unrelated line got dropped in https://github.com/elementary/photos/pull/498
+ ./fix-missing-line.patch
];
postPatch = ''
diff --git a/pkgs/desktops/pantheon/apps/elementary-photos/fix-missing-line.patch b/pkgs/desktops/pantheon/apps/elementary-photos/fix-missing-line.patch
new file mode 100644
index 00000000000..ae859d9dff9
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/elementary-photos/fix-missing-line.patch
@@ -0,0 +1,21 @@
+From 88ee69b57f94efa2779595d1544109fed6a3211c Mon Sep 17 00:00:00 2001
+From: Fabio Valentini
+Date: Tue, 16 Apr 2019 16:12:47 +0200
+Subject: [PATCH] photos/PhotoMetadata: fix issue introduced with PR #498
+
+---
+ src/photos/PhotoMetadata.vala | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/photos/PhotoMetadata.vala b/src/photos/PhotoMetadata.vala
+index f0a4a73b..34dcbb55 100644
+--- a/src/photos/PhotoMetadata.vala
++++ b/src/photos/PhotoMetadata.vala
+@@ -197,6 +197,7 @@ public class PhotoMetadata : MediaMetadata {
+ #else
+ exiv2.from_app1_segment (buffer, length);
+ #endif
++ exif = Exif.Data.new_from_data (buffer, length);
+ source_name = "".printf (length);
+ }
+
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
index 2ee92520983..1883e229479 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/a11y/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Universal Access Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
index bdba8328fe9..d217ad20d2e 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/about/default.nix
@@ -41,7 +41,7 @@ stdenv.mkDerivation rec {
./remove-update-button.patch
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard About Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
index 0cdb732ca73..ed4dc0c8447 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/applications/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Applications Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
index f67b5bc7763..db653a7f8ff 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/bluetooth/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Bluetooth Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
index 95a350372b9..8c00ff4728e 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/datetime/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
./clock-format.patch
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Date & Time Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
index 643bce5fe74..21cb26aaa39 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/display/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Displays Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
index c87723007bb..50256b8f77d 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/keyboard/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
})
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Keyboard Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
index 6c4bdeb7fb7..eaf15fdb815 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/default.nix
@@ -1,17 +1,25 @@
-{ stdenv, fetchFromGitHub, pantheon, fetchpatch, meson, ninja
-, pkgconfig, vala, libgee, granite, gtk3, switchboard, gobject-introspection }:
+{ stdenv, fetchFromGitHub, pantheon, fetchpatch, meson, ninja, pkgconfig, vala
+, libgee, granite, gtk3, switchboard, elementary-settings-daemon, gobject-introspection }:
stdenv.mkDerivation rec {
pname = "switchboard-plug-mouse-touchpad";
- version = "2.1.4";
+ version = "2.2.0";
src = fetchFromGitHub {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "1zh5472ab01bckrc1py5bqqsal9i9pbgx6i8ap2d4yzhc8sirjrf";
+ sha256 = "0mr25p7j5hl8zmvz5i3g30s4xbdhk6d22lw2akch3si40il9q5fv";
};
+ patches = [
+ ./hardcode-settings-daemon-gsettings.patch
+ ];
+
+ postPatch = ''
+ substituteInPlace src/Views/General.vala --subst-var-by GSD_GSETTINGS ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas
+ '';
+
passthru = {
updateScript = pantheon.updateScript {
repoName = pname;
@@ -33,7 +41,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Mouse & Touchpad Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/hardcode-settings-daemon-gsettings.patch b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/hardcode-settings-daemon-gsettings.patch
new file mode 100644
index 00000000000..b904fe15309
--- /dev/null
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/mouse-touchpad/hardcode-settings-daemon-gsettings.patch
@@ -0,0 +1,63 @@
+diff --git a/src/Views/General.vala b/src/Views/General.vala
+index 4b19b73..dfa3d4d 100644
+--- a/src/Views/General.vala
++++ b/src/Views/General.vala
+@@ -138,32 +138,34 @@ public class MouseTouchpad.GeneralView : Gtk.Grid {
+ attach (pointer_speed_scale, 3, 8);
+ attach (pointer_speed_help, 1, 9, 3);
+
+- var xsettings_schema = SettingsSchemaSource.get_default ().lookup ("org.gnome.settings-daemon.plugins.xsettings", false);
+- if (xsettings_schema != null) {
+- var primary_paste_switch = new Gtk.Switch ();
+- primary_paste_switch.halign = Gtk.Align.START;
+-
+- var primary_paste_help = new Gtk.Label (_("Middle or three-finger clicking on an input will paste any selected text"));
+- primary_paste_help.margin_bottom = 18;
+- primary_paste_help.wrap = true;
+- primary_paste_help.xalign = 0;
+- primary_paste_help.get_style_context ().add_class (Gtk.STYLE_CLASS_DIM_LABEL);
+-
+- attach (new SettingLabel (_("Middle click paste:")), 0, 4);
+- attach (primary_paste_switch, 1, 4);
+- attach (primary_paste_help, 1, 5, 3);
+-
+- var xsettings = new GLib.Settings ("org.gnome.settings-daemon.plugins.xsettings");
+- primary_paste_switch.notify["active"].connect (() => on_primary_paste_switch_changed (primary_paste_switch, xsettings));
+-
+- var current_value = xsettings.get_value ("overrides").lookup_value ("Gtk/EnablePrimaryPaste", VariantType.INT32);
+- if (current_value != null) {
+- primary_paste_switch.active = current_value.get_int32 () == 1;
+- }
++ var primary_paste_switch = new Gtk.Switch ();
++ primary_paste_switch.halign = Gtk.Align.START;
++
++ var primary_paste_help = new Gtk.Label (_("Middle or three-finger clicking on an input will paste any selected text"));
++ primary_paste_help.margin_bottom = 18;
++ primary_paste_help.wrap = true;
++ primary_paste_help.xalign = 0;
++ primary_paste_help.get_style_context ().add_class (Gtk.STYLE_CLASS_DIM_LABEL);
++
++ attach (new SettingLabel (_("Middle click paste:")), 0, 4);
++ attach (primary_paste_switch, 1, 4);
++ attach (primary_paste_help, 1, 5, 3);
++
++ SettingsSchemaSource daemon_schema_source = new SettingsSchemaSource.from_directory ("@GSD_GSETTINGS@", null, true);
++ SettingsSchema xsettings_schema = daemon_schema_source.lookup ("org.gnome.settings-daemon.plugins.xsettings", false);
++
++ var xsettings = new GLib.Settings.full (xsettings_schema, null, null);
++ primary_paste_switch.notify["active"].connect (() => on_primary_paste_switch_changed (primary_paste_switch, xsettings));
++
++ var current_value = xsettings.get_value ("overrides").lookup_value ("Gtk/EnablePrimaryPaste", VariantType.INT32);
++ if (current_value != null) {
++ primary_paste_switch.active = current_value.get_int32 () == 1;
+ }
+
+- var daemon_settings = new GLib.Settings ("org.gnome.settings-daemon.peripherals.mouse");
+- daemon_settings.bind ("locate-pointer", reveal_pointer_switch, "active", GLib.SettingsBindFlags.DEFAULT);
++ SettingsSchema daemon_mouse_schema = daemon_schema_source.lookup ("org.gnome.settings-daemon.peripherals.mouse", false);
++
++ var daemon_mouse_settings = new GLib.Settings.full (daemon_mouse_schema, null, null);
++ daemon_mouse_settings.bind ("locate-pointer", reveal_pointer_switch, "active", GLib.SettingsBindFlags.DEFAULT);
+
+ var a11y_mouse_settings = new GLib.Settings ("org.gnome.desktop.a11y.mouse");
+ a11y_mouse_settings.bind ("secondary-click-enabled", hold_switch, "active", GLib.SettingsBindFlags.DEFAULT);
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
index 3943cad48fd..95b558901d2 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/network/default.nix
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Networking Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
index 6bb5d285a34..a6fb86bb828 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/notifications/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Notifications Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
index c661e4f2111..6c29282652c 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/pantheon-shell/default.nix
@@ -51,7 +51,7 @@ stdenv.mkDerivation rec {
'';
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Desktop Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
index ab1fd98795a..0178f23f5e1 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/power/default.nix
@@ -49,10 +49,10 @@ stdenv.mkDerivation rec {
substituteInPlace src/MainView.vala --subst-var-by GSD_GSETTINGS_PATH ${elementary-settings-daemon}/share/gsettings-schemas/${elementary-settings-daemon.name}/glib-2.0/schemas
'';
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
- PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "share/dbus-1/system-services";
- PKG_CONFIG_DBUS_1_SYSCONFDIR = "etc";
- PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "share/polkit-1/actions";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
+ PKG_CONFIG_DBUS_1_SYSTEM_BUS_SERVICES_DIR = "${placeholder ''out''}/share/dbus-1/system-services";
+ PKG_CONFIG_DBUS_1_SYSCONFDIR = "${placeholder ''out''}/etc";
+ PKG_CONFIG_POLKIT_GOBJECT_1_POLICYDIR = "${placeholder ''out''}/share/polkit-1/actions";
meta = with stdenv.lib; {
description = "Switchboard Power Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
index bb9e576a4c4..11bd70894ed 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/printers/default.nix
@@ -34,7 +34,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Printers Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
index 089777e399a..ff59768e363 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/security-privacy/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
zeitgeist
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
patches = [
./hardcode-gsettings.patch
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
index a2c047ffcb4..9660daa7715 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sharing/default.nix
@@ -33,7 +33,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Sharing Plug";
diff --git a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
index c0f005cba2f..ad379f37471 100644
--- a/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
+++ b/pkgs/desktops/pantheon/apps/switchboard-plugs/sound/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
switchboard
];
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
meta = with stdenv.lib; {
description = "Switchboard Sound Plug";
diff --git a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
index fe04d2b698b..0e0fa106958 100644
--- a/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
+++ b/pkgs/desktops/pantheon/artwork/elementary-gtk-theme/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "stylesheet";
- version = "5.2.2";
+ version = "5.2.3";
name = "elementary-gtk-theme-${version}";
@@ -10,7 +10,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = pname;
rev = version;
- sha256 = "10b44dz7ndrckvq25pdxav59rzjcjbcpxb64z4nz62rfshvnrn8q";
+ sha256 = "1ghb6zl9yszsrxdkg8va1b29kyazbny2kncr9fdw6v2rbjnp7zhr";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
index e4f7df107ba..2461ea4875e 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/applications-menu/default.nix
@@ -51,8 +51,8 @@ stdenv.mkDerivation rec {
zeitgeist
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
- PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "lib/switchboard";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
+ PKG_CONFIG_SWITCHBOARD_2_0_PLUGSDIR = "${placeholder ''out''}/lib/switchboard";
patches = [
(substituteAll {
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
index 16f3ae2e28e..8db8eb5d5e0 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/bluetooth/default.nix
@@ -39,7 +39,7 @@ stdenv.mkDerivation rec {
wingpanel
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
postPatch = ''
chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
index 5fa95c75ccc..297e99fe47b 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/datetime/default.nix
@@ -55,7 +55,7 @@ stdenv.mkDerivation rec {
})
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
postPatch = ''
chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
index be5cd93eb0d..f34ca29a98b 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/keyboard/default.nix
@@ -45,7 +45,7 @@ stdenv.mkDerivation rec {
})
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
meta = with stdenv.lib; {
description = "Keyboard Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
index 245e12d4591..2ac05fdc6d8 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/network/default.nix
@@ -38,7 +38,7 @@ stdenv.mkDerivation rec {
wingpanel
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
meta = with stdenv.lib; {
description = "Network Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
index 08b0710977f..8e450726976 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/nightlight/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
wingpanel
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
meta = with stdenv.lib; {
description = "Night Light Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
index aff7d9891ad..6a7fcfbb4e0 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/notifications/default.nix
@@ -36,7 +36,7 @@ stdenv.mkDerivation rec {
wingpanel
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
meta = with stdenv.lib; {
description = "Notifications Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
index d7627c51100..45a4e543b66 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/power/default.nix
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
wingpanel
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
postPatch = ''
chmod +x meson/post_install.py
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 8227ca6f57e..a46e001e7a0 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -37,7 +37,7 @@ stdenv.mkDerivation rec {
wingpanel
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
meta = with stdenv.lib; {
description = "Session Indicator for Wingpanel";
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
index 65a4b1abd2c..fc40c2faf5e 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/sound/default.nix
@@ -42,7 +42,7 @@ stdenv.mkDerivation rec {
wingpanel
];
- PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "lib/wingpanel";
+ PKG_CONFIG_WINGPANEL_2_0_INDICATORSDIR = "${placeholder ''out''}/lib/wingpanel";
postPatch = ''
chmod +x meson/post_install.py
diff --git a/pkgs/development/arduino/platformio/core.nix b/pkgs/development/arduino/platformio/core.nix
index a4d5b338242..0866311ad89 100644
--- a/pkgs/development/arduino/platformio/core.nix
+++ b/pkgs/development/arduino/platformio/core.nix
@@ -10,6 +10,8 @@ let
"commands/test_ci.py::test_ci_boards"
"commands/test_ci.py::test_ci_project_conf"
"commands/test_ci.py::test_ci_lib_and_board"
+ "commands/test_ci.py::test_ci_build_dir"
+ "commands/test_ci.py::test_ci_keep_build_dir"
"commands/test_init.py::test_init_enable_auto_uploading"
"commands/test_init.py::test_init_custom_framework"
"commands/test_init.py::test_init_incorrect_board"
@@ -44,14 +46,14 @@ let
in buildPythonApplication rec {
pname = "platformio";
- version = "3.6.4";
+ version = "3.6.6";
# pypi tarballs don't contain tests - https://github.com/platformio/platformio-core/issues/1964
src = fetchFromGitHub {
owner = "platformio";
repo = "platformio-core";
rev = "v${version}";
- sha256 = "1c1y099xvpdh35n8fln642psa4xsaaqly2i2jgkvhrb9yl77x5aj";
+ sha256 = "1qwd6684y2xagl375sv8fm6a535hcdqx296hknjlbvsgc1jc514a";
};
propagatedBuildInputs = [
diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix
index fc75fe92c73..48661ba407c 100644
--- a/pkgs/development/compilers/binaryen/default.nix
+++ b/pkgs/development/compilers/binaryen/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, cmake, fetchFromGitHub, emscriptenRev ? null }:
+{ stdenv, cmake, python, fetchFromGitHub, emscriptenRev ? null }:
let
defaultVersion = "45";
@@ -6,7 +6,7 @@ let
# Map from git revs to SHA256 hashes
sha256s = {
"version_45" = "1wgzfzjjzkiaz0rf2lnwrcvlcsjvjhyvbyh58jxhqq43vi34zyjc";
- "1.37.36" = "1wgzfzjjzkiaz0rf2lnwrcvlcsjvjhyvbyh58jxhqq43vi34zyjc";
+ "1.38.28" = "172s7y5f38736ic8ri3mnbdqcrkadd40a26cxcfwbscc53phl11v";
};
in
@@ -29,7 +29,7 @@ stdenv.mkDerivation rec {
inherit rev;
};
- nativeBuildInputs = [ cmake ];
+ nativeBuildInputs = [ cmake python ];
meta = with stdenv.lib; {
homepage = https://github.com/WebAssembly/binaryen;
diff --git a/pkgs/development/compilers/emscripten/default.nix b/pkgs/development/compilers/emscripten/default.nix
index e03039cb5e1..d0af770a2a4 100644
--- a/pkgs/development/compilers/emscripten/default.nix
+++ b/pkgs/development/compilers/emscripten/default.nix
@@ -12,9 +12,9 @@ stdenv.mkDerivation {
name = "emscripten-${rev}";
src = fetchFromGitHub {
- owner = "kripken";
+ owner = "emscripten-core";
repo = "emscripten";
- sha256 = "02p0cp86vd1mydlpq544xbydggpnrq9dhbxx7h08j235frjm5cdc";
+ sha256 = "1j3f0hpy05qskaiyv75l7wv4n0nzxhrh9b296zchx3f6f9h2rghq";
inherit rev;
};
@@ -61,7 +61,7 @@ stdenv.mkDerivation {
'';
meta = with stdenv.lib; {
- homepage = https://github.com/kripken/emscripten;
+ homepage = https://github.com/emscripten-core/emscripten;
description = "An LLVM-to-JavaScript Compiler";
platforms = platforms.all;
maintainers = with maintainers; [ qknight matthewbauer ];
diff --git a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
index 06acebd2ba4..91a42f53d28 100644
--- a/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
+++ b/pkgs/development/compilers/emscripten/fastcomp/emscripten-fastcomp.nix
@@ -8,16 +8,16 @@ stdenv.mkDerivation rec {
name = "emscripten-fastcomp-${rev}";
src = fetchFromGitHub {
- owner = "kripken";
+ owner = "emscripten-core";
repo = "emscripten-fastcomp";
- sha256 = "04j698gmp686b5lricjakm5hyh2z2kh28m1ffkghmkyz4zkzmx98";
+ sha256 = "0bd0l5k2fa4k0nax2cpxi003pqffqivx4z4m2j5xdha1a12sid8i";
inherit rev;
};
srcFL = fetchFromGitHub {
- owner = "kripken";
+ owner = "emscripten-core";
repo = "emscripten-fastcomp-clang";
- sha256 = "1ici51mmpgg80xk3y8f376nbbfak6rz27qdy98l8lxkrymklp5g5";
+ sha256 = "1iw2qplhp489qzw0rma73sab7asnm27g4m95sr36c6kq9cq6agri";
inherit rev;
};
@@ -46,7 +46,7 @@ stdenv.mkDerivation rec {
};
meta = with stdenv.lib; {
- homepage = https://github.com/kripken/emscripten-fastcomp;
+ homepage = https://github.com/emscripten-core/emscripten-fastcomp;
description = "Emscripten LLVM";
platforms = platforms.all;
maintainers = with maintainers; [ qknight matthewbauer ];
diff --git a/pkgs/development/interpreters/janet/default.nix b/pkgs/development/interpreters/janet/default.nix
index 00acfd0df8c..22ccdec8a10 100644
--- a/pkgs/development/interpreters/janet/default.nix
+++ b/pkgs/development/interpreters/janet/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "janet";
- version = "0.4.0";
+ version = "0.4.1";
src = fetchFromGitHub {
owner = "janet-lang";
repo = "janet";
rev = "v${version}";
- sha256 = "1590f1fxb6qfhf1vp2xhbvdn2jfrgipn5572cckk1ma7f13jnkpy";
+ sha256 = "06iq2y7c9i4pcmmgc8x2fklqkj2i3jrvmq694djiiyd4x81kzcj5";
};
JANET_BUILD=''\"release\"'';
diff --git a/pkgs/development/interpreters/joker/default.nix b/pkgs/development/interpreters/joker/default.nix
index 21a7cfba406..c3b494783e7 100644
--- a/pkgs/development/interpreters/joker/default.nix
+++ b/pkgs/development/interpreters/joker/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
name = "joker-${version}";
- version = "0.10.1";
+ version = "0.12.2";
goPackagePath = "github.com/candid82/joker";
@@ -10,7 +10,7 @@ buildGoPackage rec {
rev = "v${version}";
owner = "candid82";
repo = "joker";
- sha256 = "1c3p61jmlljljbiwsylmfa75pi00y7yj5wabx1rxmpswc41g5mab";
+ sha256 = "0cqz8k53fzz3xqx9czk3hgq164dsbvnk51s0j29g1bmkbl51c2vm";
};
preBuild = "go generate ./...";
diff --git a/pkgs/development/interpreters/ruby/default.nix b/pkgs/development/interpreters/ruby/default.nix
index e7aedfc0750..ed2bf99d197 100644
--- a/pkgs/development/interpreters/ruby/default.nix
+++ b/pkgs/development/interpreters/ruby/default.nix
@@ -223,10 +223,10 @@ in {
};
ruby_2_6 = generic {
- version = rubyVersion "2" "6" "2" "";
+ version = rubyVersion "2" "6" "3" "";
sha256 = {
- src = "1as97d2j0d21g8mldp8fmdjah96jakrxyw1v0crg7ln2y8mmsh50";
- git = "0f4mnrd7733353kx1jjha770kvm0wlc59z7id9h23kmjdg6k76nl";
+ src = "1yw23hmllxsc4b7zqndn5l4d9503gdik6rsf3lfdkf12bxwx6zsp";
+ git = "1h4k2kw0vr4jh2ra9l89i8lnddfh2qfw67y9cknjylf7kw2m1pmh";
};
};
}
diff --git a/pkgs/development/interpreters/ruby/patchsets.nix b/pkgs/development/interpreters/ruby/patchsets.nix
index 9f2a8b1b9fe..47d8397c966 100644
--- a/pkgs/development/interpreters/ruby/patchsets.nix
+++ b/pkgs/development/interpreters/ruby/patchsets.nix
@@ -16,7 +16,7 @@ rec {
"${patchSet}/patches/ruby/2.5/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.5/head/railsexpress/03-more-detailed-stacktrace.patch"
];
- "2.6.2" = ops useRailsExpress [
+ "2.6.3" = ops useRailsExpress [
"${patchSet}/patches/ruby/2.6/head/railsexpress/01-fix-broken-tests-caused-by-ad.patch"
"${patchSet}/patches/ruby/2.6/head/railsexpress/02-improve-gc-stats.patch"
"${patchSet}/patches/ruby/2.6/head/railsexpress/03-more-detailed-stacktrace.patch"
diff --git a/pkgs/development/libraries/abseil-cpp/default.nix b/pkgs/development/libraries/abseil-cpp/default.nix
new file mode 100644
index 00000000000..4e1da866622
--- /dev/null
+++ b/pkgs/development/libraries/abseil-cpp/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, fetchFromGitHub, cmake }:
+
+stdenv.mkDerivation rec {
+ name = "abseil-cpp-${version}";
+ date = "20190322";
+ rev = "eab2078b53c9e3d9d240135c09d27e3393acb50a";
+ version = "${date}-${rev}";
+
+ src = fetchFromGitHub {
+ owner = "abseil";
+ repo = "abseil-cpp";
+ rev = "${rev}";
+ sha256 = "1bpz44hxq5fpkv6jlgphzk7mxjiiah526jgb63ih5pd1hd2cfw1r";
+ };
+
+ nativeBuildInputs = [ cmake ];
+
+ meta = with stdenv.lib; {
+ description = "An open-source collection of C++ code designed to augment the C++ standard library";
+ homepage = https://abseil.io/;
+ license = licenses.asl20;
+ maintainers = [ maintainers.andersk ];
+ };
+}
diff --git a/pkgs/development/libraries/agda/agda-stdlib/default.nix b/pkgs/development/libraries/agda/agda-stdlib/default.nix
index 276e1531acd..d9350d135eb 100644
--- a/pkgs/development/libraries/agda/agda-stdlib/default.nix
+++ b/pkgs/development/libraries/agda/agda-stdlib/default.nix
@@ -1,14 +1,14 @@
{ stdenv, agda, fetchFromGitHub, ghcWithPackages }:
agda.mkDerivation (self: rec {
- version = "0.17";
+ version = "1.0";
name = "agda-stdlib-${version}";
src = fetchFromGitHub {
repo = "agda-stdlib";
owner = "agda";
rev = "v${version}";
- sha256 = "05c5zgj9fcaqz7z2l70jh48b3g4811vm7bccj0vd9r82wi02g3p1";
+ sha256 = "19qrdfi0vig3msqg76k1zf5j3vav0jz44cvj6i4dyfbscdwf2l9c";
};
nativeBuildInputs = [ (ghcWithPackages (self : [ self.filemanip ])) ];
diff --git a/pkgs/development/libraries/cimg/default.nix b/pkgs/development/libraries/cimg/default.nix
index a647c84016b..5dece8328b4 100644
--- a/pkgs/development/libraries/cimg/default.nix
+++ b/pkgs/development/libraries/cimg/default.nix
@@ -3,11 +3,11 @@
stdenv.mkDerivation rec {
name = "cimg-${version}";
- version = "2.5.5";
+ version = "2.5.6";
src = fetchurl {
url = "http://cimg.eu/files/CImg_${version}.zip";
- sha256 = "12jwis90ijakfiqngcd8s4a22wzr32f6midszja9ry41ilv63nic";
+ sha256 = "02n3xjjs68xszvyk2830i03clbqlngnic0cw1rk6xca7gsvad3ij";
};
nativeBuildInputs = [ unzip ];
diff --git a/pkgs/development/libraries/dav1d/default.nix b/pkgs/development/libraries/dav1d/default.nix
index c8aa70d0892..4b94f673a65 100644
--- a/pkgs/development/libraries/dav1d/default.nix
+++ b/pkgs/development/libraries/dav1d/default.nix
@@ -2,14 +2,14 @@
stdenv.mkDerivation rec {
pname = "dav1d";
- version = "0.2.1";
+ version = "0.2.2";
src = fetchFromGitLab {
domain = "code.videolan.org";
owner = "videolan";
repo = pname;
rev = version;
- sha256 = "0diihk7lcdxxbfqp79dpvj14008zfzmayamh4vj310i524lqnkb6";
+ sha256 = "130yjr82w0az4xsdcmcjdwkhd0sin5pm6q6s9dyn5yhrwfx1vf0p";
};
nativeBuildInputs = [ meson ninja nasm ];
diff --git a/pkgs/development/libraries/graphene-hardened-malloc/default.nix b/pkgs/development/libraries/graphene-hardened-malloc/default.nix
new file mode 100644
index 00000000000..0aae8ca4945
--- /dev/null
+++ b/pkgs/development/libraries/graphene-hardened-malloc/default.nix
@@ -0,0 +1,55 @@
+{ stdenv, fetchurl }:
+
+stdenv.mkDerivation rec {
+ name = "graphene-hardened-malloc-${version}";
+ version = "190405.003.2019.04.01.19";
+
+ src = fetchurl {
+ url = "https://github.com/GrapheneOS/hardened_malloc/archive/PQ2A.${version}.tar.gz";
+ sha256 = "1qczmajy3q07jd236dmal4iq5xxcsrkyw26gc9r4vs4wj4m42d11";
+ };
+
+ installPhase = ''
+ install -Dm444 -t $out/lib libhardened_malloc.so
+
+ mkdir -p $out/bin
+ substitute preload.sh $out/bin/preload-hardened-malloc --replace "\$dir" $out/lib
+ chmod 0555 $out/bin/preload-hardened-malloc
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ pushd test
+ make
+ $out/bin/preload-hardened-malloc ./offset
+
+ pushd simple-memory-corruption
+ make
+
+ # these tests don't actually appear to generate overflows currently
+ rm read_after_free_small string_overflow
+
+ for t in `find . -regex ".*/[a-z_]+"` ; do
+ echo "Running $t..."
+ # the program being aborted (as it should be) would result in an exit code > 128
+ (($out/bin/preload-hardened-malloc $t) && false) \
+ || (test $? -gt 128 || (echo "$t was not aborted" && false))
+ done
+ popd
+
+ popd
+ '';
+
+ meta = with stdenv.lib; {
+ homepage = https://github.com/GrapheneOS/hardened_malloc;
+ description = "Hardened allocator designed for modern systems";
+ longDescription = ''
+ This is a security-focused general purpose memory allocator providing the malloc API
+ along with various extensions. It provides substantial hardening against heap
+ corruption vulnerabilities yet aims to provide decent overall performance.
+ '';
+ license = licenses.mit;
+ maintainers = with maintainers; [ ris ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/development/libraries/libltc/default.nix b/pkgs/development/libraries/libltc/default.nix
index dfc2402a7ec..d6918ef3044 100644
--- a/pkgs/development/libraries/libltc/default.nix
+++ b/pkgs/development/libraries/libltc/default.nix
@@ -1,11 +1,11 @@
{stdenv, fetchurl}:
stdenv.mkDerivation {
- name = "libltc-1.3.0";
+ name = "libltc-1.3.1";
src = fetchurl {
- url = https://github.com/x42/libltc/releases/download/v1.3.0/libltc-1.3.0.tar.gz;
- sha256 = "0p7fgp44i9d1lrgbk5zj3sm5yzavx428zn36xb3bl7y65c2xxcda";
+ url = https://github.com/x42/libltc/releases/download/v1.3.1/libltc-1.3.1.tar.gz;
+ sha256 = "173h9dgmain3nyrwk6q2d7yl4fnh4vacag4s2p01n5b7nyrkxrjh";
};
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/libnabo/default.nix b/pkgs/development/libraries/libnabo/default.nix
index 485b24beaa3..b461bfb3ddf 100644
--- a/pkgs/development/libraries/libnabo/default.nix
+++ b/pkgs/development/libraries/libnabo/default.nix
@@ -1,14 +1,14 @@
{stdenv, fetchFromGitHub, cmake, eigen, boost}:
stdenv.mkDerivation rec {
- version = "1.0.6";
+ version = "1.0.7";
name = "libnabo-${version}";
src = fetchFromGitHub {
owner = "ethz-asl";
repo = "libnabo";
rev = version;
- sha256 = "1pg4vjfq5n7zhjdf7rgvycd7bkk1iwr50fl2dljq43airxz6525w";
+ sha256 = "17vxlmszzpm95vvfdxnm98d5p297i10fyblblj6kf0ynq8r2mpsh";
};
buildInputs = [cmake eigen boost];
diff --git a/pkgs/development/libraries/libp11/default.nix b/pkgs/development/libraries/libp11/default.nix
index cb675f4d3e5..fa3e35e7ad3 100644
--- a/pkgs/development/libraries/libp11/default.nix
+++ b/pkgs/development/libraries/libp11/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "libp11-${version}";
- version = "0.4.9";
+ version = "0.4.10";
src = fetchFromGitHub {
owner = "OpenSC";
repo = "libp11";
rev = name;
- sha256 = "1f0ir1mnr4wxxnql8ld2aa6288fn04fai5pr0sics7kbdm1g0cki";
+ sha256 = "1m4aw45bqichhx7cn78d8l1r1v0ccvwzlfj09fay2l9rfic5jgfz";
};
makeFlags = [ "DESTDIR=$(out)" "PREFIX=" ];
diff --git a/pkgs/development/libraries/librealsense/default.nix b/pkgs/development/libraries/librealsense/default.nix
index 918335597c9..2da2963cfa6 100644
--- a/pkgs/development/libraries/librealsense/default.nix
+++ b/pkgs/development/libraries/librealsense/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "librealsense-${version}";
- version = "2.19.0";
+ version = "2.20.0";
src = fetchFromGitHub {
owner = "IntelRealSense";
repo = "librealsense";
rev = "v${version}";
- sha256 = "03ljn4igi8l1fd1nvpn448d3sqvxyl0r0l9sbkimlx77g52wjv2j";
+ sha256 = "131qpmp2h43snx0fx7jc810mil0zy52gy2dci367ln38a2pwvyhg";
};
buildInputs = [
diff --git a/pkgs/development/libraries/libu2f-host/default.nix b/pkgs/development/libraries/libu2f-host/default.nix
index 8430c462ca6..c163720f56e 100644
--- a/pkgs/development/libraries/libu2f-host/default.nix
+++ b/pkgs/development/libraries/libu2f-host/default.nix
@@ -1,11 +1,11 @@
{ stdenv, fetchurl, pkgconfig, json_c, hidapi }:
stdenv.mkDerivation rec {
- name = "libu2f-host-1.1.7";
+ name = "libu2f-host-1.1.9";
src = fetchurl {
url = "https://developers.yubico.com/libu2f-host/Releases/${name}.tar.xz";
- sha256 = "1zyws91b1fsbfwn3f23ry9a9zr0i1a1hqmhk3v1qnlvp56gjayli";
+ sha256 = "1hnh3f4scx07v9jfkr1nnxasmydk1cmivn0nijcp2p75bc1fznip";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/libraries/science/math/or-tools/default.nix b/pkgs/development/libraries/science/math/or-tools/default.nix
index 415e57e5d3c..ba6827bf694 100644
--- a/pkgs/development/libraries/science/math/or-tools/default.nix
+++ b/pkgs/development/libraries/science/math/or-tools/default.nix
@@ -1,15 +1,17 @@
-{ stdenv, fetchFromGitHub, cmake, google-gflags, which
-, lsb-release, glog, protobuf, cbc, zlib, python3 }:
+{ stdenv, fetchFromGitHub, cmake, abseil-cpp, google-gflags, which
+, lsb-release, glog, protobuf, cbc, zlib
+, ensureNewerSourcesForZipFilesHook, python, swig
+, pythonProtobuf }:
stdenv.mkDerivation rec {
name = "or-tools-${version}";
- version = "v6.10";
+ version = "v7.0";
src = fetchFromGitHub {
owner = "google";
repo = "or-tools";
rev = version;
- sha256 = "11k3671rpv968dsglc6bgarr9yi8ijaaqm2wq3m0rn4wy8fj7za2";
+ sha256 = "09rs2j3w4ljw9qhhnsjlvfii297njjszwvkbgj1i6kns3wnlr7cp";
};
# The original build system uses cmake which does things like pull
@@ -18,6 +20,7 @@ stdenv.mkDerivation rec {
# dependencies straight from nixpkgs and use the make build method.
configurePhase = ''
cat < Makefile.local
+ UNIX_ABSL_DIR=${abseil-cpp}
UNIX_GFLAGS_DIR=${google-gflags}
UNIX_GLOG_DIR=${glog}
UNIX_PROTOBUF_DIR=${protobuf}
@@ -25,23 +28,36 @@ stdenv.mkDerivation rec {
EOF
'';
- makeFlags = [ "prefix=${placeholder "out"}" ];
- buildFlags = [ "cc" ];
+ makeFlags = [
+ "prefix=${placeholder "out"}"
+ "PROTOBUF_PYTHON_DESC=${pythonProtobuf}/${python.sitePackages}/google/protobuf/descriptor_pb2.py"
+ ];
+ buildFlags = [ "cc" "pypi_archive" ];
checkTarget = "test_cc";
doCheck = true;
installTargets = [ "install_cc" ];
+ # The upstream install_python target installs to $HOME.
+ postInstall = ''
+ mkdir -p "$python/${python.sitePackages}"
+ (cd temp_python/ortools; PYTHONPATH="$python/${python.sitePackages}:$PYTHONPATH" python setup.py install '--prefix=$python')
+ '';
nativeBuildInputs = [
- cmake lsb-release which zlib python3
+ cmake lsb-release swig which zlib python
+ ensureNewerSourcesForZipFilesHook
+ python.pkgs.setuptools python.pkgs.wheel
];
propagatedBuildInputs = [
- google-gflags glog protobuf cbc
+ abseil-cpp google-gflags glog protobuf cbc
+ pythonProtobuf python.pkgs.six
];
enableParallelBuilding = true;
+ outputs = [ "out" "python" ];
+
meta = with stdenv.lib; {
homepage = https://github.com/google/or-tools;
license = licenses.asl20;
diff --git a/pkgs/development/libraries/science/math/or-tools/gflags-include.patch b/pkgs/development/libraries/science/math/or-tools/gflags-include.patch
deleted file mode 100644
index 08f76180638..00000000000
--- a/pkgs/development/libraries/science/math/or-tools/gflags-include.patch
+++ /dev/null
@@ -1,12 +0,0 @@
-diff --git a/ortools/data/jobshop_scheduling_parser.cc b/ortools/data/jobshop_scheduling_parser.cc
-index cb0a360b..c2f055eb 100644
---- a/ortools/data/jobshop_scheduling_parser.cc
-+++ b/ortools/data/jobshop_scheduling_parser.cc
-@@ -14,6 +14,7 @@
- #include "ortools/data/jobshop_scheduling_parser.h"
-
- #include
-+#include
-
- #include "google/protobuf/wrappers.pb.h"
- #include "ortools/base/filelineiter.h"
diff --git a/pkgs/development/libraries/vaapi-intel/default.nix b/pkgs/development/libraries/vaapi-intel/default.nix
index 4780ffb7519..14d49c3d0f0 100644
--- a/pkgs/development/libraries/vaapi-intel/default.nix
+++ b/pkgs/development/libraries/vaapi-intel/default.nix
@@ -5,13 +5,16 @@
stdenv.mkDerivation rec {
name = "intel-vaapi-driver-${version}";
- version = "2.3.0"; # generally try to match libva version, but not required
+ # TODO: go back to stable releases with the next stable release after 2.3.0.
+ # see: https://github.com/NixOS/nixpkgs/issues/55975 (and the libva comment v)
+ rev = "329975c63123610fc750241654a3bd18add75beb"; # generally try to match libva version, but not required
+ version = "git-20190211";
src = fetchFromGitHub {
owner = "intel";
repo = "intel-vaapi-driver";
- rev = version;
- sha256 = "0s6cz9grymll96s7n2rpzvb3b566a2n21nfp6b23r926db089kjd";
+ rev = rev;
+ sha256 = "10333wh2d0hvz5lxl3gjvqs71s7v9ajb0269b3bj5kbflj03v3n5";
};
patchPhase = ''
diff --git a/pkgs/development/libraries/vulkan-headers/default.nix b/pkgs/development/libraries/vulkan-headers/default.nix
index 5a321658308..f7c1bf9a65b 100644
--- a/pkgs/development/libraries/vulkan-headers/default.nix
+++ b/pkgs/development/libraries/vulkan-headers/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub, cmake }:
stdenv.mkDerivation rec {
name = "vulkan-headers-${version}";
- version = "1.1.101.0";
+ version = "1.1.106";
buildInputs = [ cmake ];
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
owner = "KhronosGroup";
repo = "Vulkan-Headers";
rev = "sdk-${version}";
- sha256 = "1rrpkibi4lnd9j63aarjk74z0xf4sy30zh8psq1vj92r21hfjr6m";
+ sha256 = "0idw7q715ikj575qmspvgq2gzc6c1sj581b8z3xnv6wz9qbzrmsd";
};
meta = with stdenv.lib; {
diff --git a/pkgs/development/libraries/vulkan-loader/default.nix b/pkgs/development/libraries/vulkan-loader/default.nix
index 04266361ea5..7d53065ba32 100644
--- a/pkgs/development/libraries/vulkan-loader/default.nix
+++ b/pkgs/development/libraries/vulkan-loader/default.nix
@@ -2,7 +2,7 @@
, xlibsWrapper, libxcb, libXrandr, libXext, wayland, libGL_driver }:
let
- version = "1.1.101.0";
+ version = "1.1.106";
in
assert version == vulkan-headers.version;
@@ -14,7 +14,7 @@ stdenv.mkDerivation rec {
owner = "KhronosGroup";
repo = "Vulkan-Loader";
rev = "sdk-${version}";
- sha256 = "0x891bha9mlsh4cvq59d1qnb4fnalwf6ml2b9y221cr7hikilamw";
+ sha256 = "0zhrwj1gi90x2w8gaaaw5h4b969a8gfy244kn0drrplhhb1nqz3b";
};
nativeBuildInputs = [ pkgconfig ];
diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix
index c1f85ce75ac..1cd55acdbeb 100644
--- a/pkgs/development/python-modules/cysignals/default.nix
+++ b/pkgs/development/python-modules/cysignals/default.nix
@@ -31,12 +31,13 @@ buildPythonPackage rec {
export PATH="$out/bin:$PATH"
'';
- buildInputs = lib.optionals pariSupport [
- pari
- ];
-
propagatedBuildInputs = [
cython
+ ] ++ lib.optionals pariSupport [
+ # When cysignals is built with pari, including cysignals into the
+ # buildInputs of another python package will cause cython to link against
+ # pari.
+ pari
];
enableParallelBuilding = true;
diff --git a/pkgs/development/python-modules/docutils/default.nix b/pkgs/development/python-modules/docutils/default.nix
index f427f95ffaa..b4a4953eb94 100644
--- a/pkgs/development/python-modules/docutils/default.nix
+++ b/pkgs/development/python-modules/docutils/default.nix
@@ -17,7 +17,7 @@ buildPythonPackage rec {
# Only Darwin needs LANG, but we could set it in general.
# It's done here conditionally to prevent mass-rebuilds.
- checkPhase = lib.optionalString (isPy3k && stdenv.isDarwin) ''LANG="en_US.UTF-8" '' + (if isPy3k then ''
+ checkPhase = lib.optionalString (isPy3k && stdenv.isDarwin) ''LANG="en_US.UTF-8" LC_ALL="en_US.UTF-8" '' + (if isPy3k then ''
${python.interpreter} test3/alltests.py
'' else ''
${python.interpreter} test/alltests.py
diff --git a/pkgs/development/python-modules/gmpy2/default.nix b/pkgs/development/python-modules/gmpy2/default.nix
index a03188bb8f2..edca1d30d8e 100644
--- a/pkgs/development/python-modules/gmpy2/default.nix
+++ b/pkgs/development/python-modules/gmpy2/default.nix
@@ -1,8 +1,15 @@
-{ stdenv, buildPythonPackage, fetchurl, isPyPy, gmp, mpfr, libmpc } :
+{ stdenv
+, buildPythonPackage
+, fetchFromGitHub
+, isPyPy
+, gmp
+, mpfr
+, libmpc
+}:
let
pname = "gmpy2";
- version = "2.0.8";
+ version = "2.1a4";
in
buildPythonPackage {
@@ -10,9 +17,11 @@ buildPythonPackage {
disabled = isPyPy;
- src = fetchurl {
- url = "mirror://pypi/g/gmpy2/${pname}-${version}.zip";
- sha256 = "0grx6zmi99iaslm07w6c2aqpnmbkgrxcqjrqpfq223xri0r3w8yx";
+ src = fetchFromGitHub {
+ owner = "aleaxit";
+ repo = "gmpy";
+ rev = "gmpy2-${version}";
+ sha256 = "1wg4w4q2l7n26ksrdh4rwqmifgfm32n7x29cgdvmmbv5lmilb5hz";
};
buildInputs = [ gmp mpfr libmpc ];
diff --git a/pkgs/development/python-modules/moviepy/default.nix b/pkgs/development/python-modules/moviepy/default.nix
index 693d5cf5d7f..7171409bec8 100644
--- a/pkgs/development/python-modules/moviepy/default.nix
+++ b/pkgs/development/python-modules/moviepy/default.nix
@@ -1,25 +1,48 @@
{ stdenv
, buildPythonPackage
, fetchPypi
+, pythonAtLeast
, numpy
, decorator
, imageio
+, imageio-ffmpeg
, isPy3k
+, proglog
+, requests
, tqdm
+# Advanced image processing (triples size of output)
+, advancedProcessing ? false
+, opencv ? null
+, scikitimage ? null
+, scikitlearn ? null
+, scipy ? null
+, matplotlib ? null
+, youtube-dl ? null
}:
+assert advancedProcessing -> (
+ opencv != null && scikitimage != null && scikitlearn != null
+ && scipy != null && matplotlib != null && youtube-dl != null);
+
buildPythonPackage rec {
pname = "moviepy";
version = "1.0.0";
+ disabled = !(pythonAtLeast "3.4");
+
src = fetchPypi {
inherit pname version;
sha256 = "16c7ffca23d90c76dd7b163f648c8166dfd589b7c180b8ff75aa327ae0a2fc6d";
};
- # No tests
+ # No tests, require network connection
doCheck = false;
- propagatedBuildInputs = [ numpy decorator imageio tqdm ];
+
+ propagatedBuildInputs = [
+ numpy decorator imageio imageio-ffmpeg tqdm requests proglog
+ ] ++ (stdenv.lib.optionals advancedProcessing [
+ opencv scikitimage scikitlearn scipy matplotlib youtube-dl
+ ]);
meta = with stdenv.lib; {
description = "Video editing with Python";
diff --git a/pkgs/development/python-modules/parse/default.nix b/pkgs/development/python-modules/parse/default.nix
index 004b58fec6a..2bbf92f40d4 100644
--- a/pkgs/development/python-modules/parse/default.nix
+++ b/pkgs/development/python-modules/parse/default.nix
@@ -3,11 +3,11 @@
}:
buildPythonPackage rec {
pname = "parse";
- version = "1.11.1";
+ version = "1.12.0";
src = fetchPypi {
inherit pname version;
- sha256 = "870dd675c1ee8951db3e29b81ebe44fd131e3eb8c03a79483a58ea574f3145c2";
+ sha256 = "0hkic57kaxd5s56ylbwslmngqnpab864mjj8c0ayawfk6is6as0v";
};
checkPhase = ''
diff --git a/pkgs/development/python-modules/pplpy/default.nix b/pkgs/development/python-modules/pplpy/default.nix
new file mode 100644
index 00000000000..6f118a51c87
--- /dev/null
+++ b/pkgs/development/python-modules/pplpy/default.nix
@@ -0,0 +1,64 @@
+{ lib
+, python
+, fetchPypi
+, buildPythonPackage
+, gmp
+, mpfr
+, libmpc
+, ppl
+, pari
+, cython
+, cysignals
+, gmpy2
+, sphinx
+}:
+
+buildPythonPackage rec {
+ pname = "pplpy";
+ version = "0.8.4";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0dk8l5r3f2jbkkasddvxwvhlq35pjsiirh801lrapv8lb16r2qmr";
+ };
+
+ buildInputs = [
+ gmp
+ mpfr
+ libmpc
+ ppl
+ ];
+
+ nativeBuildInputs = [
+ sphinx # docbuild, called by make
+ ];
+
+ propagatedBuildInputs = [
+ cython
+ cysignals
+ gmpy2
+ ];
+
+ outputs = [ "out" "doc" ];
+
+ postBuild = ''
+ # Find the build result in order to put it into PYTHONPATH. The doc
+ # build needs to import pplpy.
+ build_result="$PWD/$( find build/ -type d -name 'lib.*' | head -n1 )"
+
+ echo "Building documentation"
+ PYTHONPATH="$build_result:$PYTHONPATH" make -C docs html
+ '';
+
+ postInstall = ''
+ mkdir -p "$doc/share/doc"
+ mv docs/build/html "$doc/share/doc/pplpy"
+ '';
+
+ meta = with lib; {
+ description = "A Python wrapper for ppl";
+ homepage = https://gitlab.com/videlec/pplpy;
+ maintainers = with maintainers; [ timokau ];
+ license = licenses.gpl3;
+ };
+}
diff --git a/pkgs/development/python-modules/proglog/default.nix b/pkgs/development/python-modules/proglog/default.nix
new file mode 100644
index 00000000000..d6fe22e1754
--- /dev/null
+++ b/pkgs/development/python-modules/proglog/default.nix
@@ -0,0 +1,19 @@
+{ stdenv, fetchPypi, buildPythonPackage, tqdm }:
+
+buildPythonPackage rec {
+ pname = "proglog";
+ version = "0.1.9";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "13diln950wk6nnn4rpmzx37rvrnpa7f803gwygiwbq1q46zwri6q";
+ };
+
+ propagatedBuildInputs = [ tqdm ];
+
+ meta = with stdenv.lib; {
+ description = "Logs and progress bars manager for Python";
+ homepage = https://github.com/Edinburgh-Genome-Foundry/Proglog;
+ license = licenses.mit;
+ };
+}
diff --git a/pkgs/development/python-modules/pycdio/default.nix b/pkgs/development/python-modules/pycdio/default.nix
index 6d670006014..4a5577d7e0b 100644
--- a/pkgs/development/python-modules/pycdio/default.nix
+++ b/pkgs/development/python-modules/pycdio/default.nix
@@ -23,8 +23,8 @@ buildPythonPackage rec {
patchShebangs .
'';
- nativeBuildInputs = [ pkgs.pkgconfig ];
- buildInputs = [ setuptools nose pkgs.swig pkgs.libcdio ]
+ nativeBuildInputs = [ nose pkgs.pkgconfig pkgs.swig ];
+ buildInputs = [ setuptools pkgs.libcdio ]
++ stdenv.lib.optional stdenv.isDarwin pkgs.libiconv;
# Run tests using nosetests but first need to install the binaries
diff --git a/pkgs/development/python-modules/pyramid_chameleon/default.nix b/pkgs/development/python-modules/pyramid_chameleon/default.nix
index 257be31f32d..398869e467b 100644
--- a/pkgs/development/python-modules/pyramid_chameleon/default.nix
+++ b/pkgs/development/python-modules/pyramid_chameleon/default.nix
@@ -16,6 +16,11 @@ buildPythonPackage rec {
sha256 = "d176792a50eb015d7865b44bd9b24a7bd0489fa9a5cebbd17b9e05048cef9017";
};
+ patches = [
+ # https://github.com/Pylons/pyramid_chameleon/pull/25
+ ./test-renderers-pyramid-import.patch
+ ];
+
propagatedBuildInputs = [ chameleon pyramid zope_interface setuptools ];
meta = with stdenv.lib; {
diff --git a/pkgs/development/python-modules/pyramid_chameleon/test-renderers-pyramid-import.patch b/pkgs/development/python-modules/pyramid_chameleon/test-renderers-pyramid-import.patch
new file mode 100644
index 00000000000..635ed3510fc
--- /dev/null
+++ b/pkgs/development/python-modules/pyramid_chameleon/test-renderers-pyramid-import.patch
@@ -0,0 +1,11 @@
+--- a/pyramid_chameleon/tests/test_renderers.py
++++ b/pyramid_chameleon/tests/test_renderers.py
+@@ -258,7 +258,7 @@ class TestChameleonRendererLookup(unittest.TestCase):
+ self.assertRaises(ValueError, lookup.__call__, info)
+
+ def test___call__spec_alreadyregistered(self):
+- from pyramid import tests
++ from pyramid_chameleon import tests
+ module_name = tests.__name__
+ relpath = 'test_renderers.py'
+ spec = '%s:%s' % (module_name, relpath)
diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix
index c08106eea2f..ab00573965e 100644
--- a/pkgs/development/tools/analysis/pmd/default.nix
+++ b/pkgs/development/tools/analysis/pmd/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "pmd-${version}";
- version = "6.12.0";
+ version = "6.13.0";
buildInputs = [ unzip ];
src = fetchurl {
url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip";
- sha256 = "1fayb62i6p21q1d6y7ixljf37r7n7vwjwa69q5z6wr4zspaj79f9";
+ sha256 = "1g8ds38zwprjswm71y7l10l15rbh2s6ha9xpp20wjy823q9agbpq";
};
installPhase = ''
diff --git a/pkgs/development/tools/profiling/pyflame/default.nix b/pkgs/development/tools/profiling/pyflame/default.nix
index ede8499694d..acb5d9d943c 100644
--- a/pkgs/development/tools/profiling/pyflame/default.nix
+++ b/pkgs/development/tools/profiling/pyflame/default.nix
@@ -1,11 +1,12 @@
-{ stdenv, fetchFromGitHub, autoreconfHook, coreutils, pkgconfig
+{ stdenv, autoreconfHook, coreutils, fetchFromGitHub, fetchpatch, pkgconfig
# pyflame needs one python version per ABI
# are currently supported
# * 2.6 or 2.7 for 2.x ABI
# * 3.4 or 3.5 for 3.{4,5} ABI
-# * 3.6 for 3.6+ ABI
-# if you want to disable support for some ABI, make the corresponding argument null
-, python2, python35, python36, python3
+# * 3.6 for 3.6 ABI
+# * 3.7 for 3.7+ ABI
+# to disable support for an ABI, make the corresponding argument null
+, python2, python35, python36, python37, python3
}:
stdenv.mkDerivation rec {
pname = "pyflame";
@@ -17,8 +18,57 @@ stdenv.mkDerivation rec {
sha256 = "0hz1ryimh0w8zyxx4y8chcn54d6b02spflj5k9rcg26an2chkg2w";
};
+ # Uber's abandoned this since Jun 2018, so we have to patch a lot.
+ # Yay.
+ patches = let
+ # "Add support for Python3.7 (#151)":
+ py37-support = [ # https://github.com/uber/pyflame/pull/153
+ (fetchpatch { # "Add support for python3.7"
+ url = "https://github.com/uber/pyflame/commit/5ee674c4b09a29b82a0e2d7a4ce064fea3df1f4c.patch";
+ sha256 = "19v0yl8frbsq1dkvcmr1zsxf9v75bs8hvlkiv2x8cwylndvz2g5n";
+ })
+ (fetchpatch { # "Add python3.7 to travis test matrix"
+ url = "https://github.com/uber/pyflame/commit/610b5281502ff6d57471e84071f17a33d30f3bcf.patch";
+ sha256 = "13kwzrz0zwmdiirg061wvz7zvdl2w9dnrc81xbkxpm1hh8h0mi9z";
+ })
+ (fetchpatch { # "Update ppa and Ubuntu version"
+ url = "https://github.com/uber/pyflame/commit/ec82a43c90da64815a87d4e3fe2a12ec3c93dc38.patch";
+ sha256 = "1rrcsj5095ns5iyk6ij9kylv8hsrflxjld7b4s5dbpk8jqkf3ndi";
+ })
+ (fetchpatch { # "Clang-Format"
+ url = "https://github.com/uber/pyflame/commit/fb81e40398d6209c38d49d0b6758d9581b3c2bba.patch";
+ sha256 = "024namalrsai8ppl87lqsalfgd2fbqsnbkhpg8q93bvsdxldwc6r";
+ })
+ ];
+
+ # "Fix pyflame for code compiled with ld -z separate-code":
+ separate-code-support = [ # https://github.com/uber/pyflame/pull/170
+ (fetchpatch { # "Fix for code compiled with ld -z separate-code"
+ url = "https://github.com/uber/pyflame/commit/739a77d9b9abf9599f633d49c9ec98a201bfe058.patch";
+ sha256 = "03xhdysr5s73bw3a7nj2h45dylj9a4c1f1i3xqm1nngpd6arq4y6";
+ })
+ ];
+
+ # "Improve PtraceSeize error output"
+ full-ptrace-seize-errors = [ # https://github.com/uber/pyflame/pull/152
+ (fetchpatch { # "Print whole error output from PtraceSeize"
+ url = "https://github.com/uber/pyflame/commit/4b0e2c1b442b0f0c6ac5f56471359cea9886aa0f.patch";
+ sha256 = "0nkqs5zszf78cna0bavcdg18g7rdmn72li3091ygpkgxn77cnvis";
+ })
+ (fetchpatch { # "Print whole error for PtraceSeize"
+ url = "https://github.com/uber/pyflame/commit/1abb23abe4912c4a27553f0b3b5c934753f41f6d.patch";
+ sha256 = "07razp9rlq3s92j8a3iak3qk2h4x4xwz4y915h52ivvnxayscj89";
+ })
+ ];
+ in stdenv.lib.concatLists [
+ py37-support
+ # Without this, tests will leak memory and run forever.
+ separate-code-support
+ full-ptrace-seize-errors
+ ];
+
nativeBuildInputs = [ autoreconfHook pkgconfig ];
- buildInputs = [ python36 python2 python35 ];
+ buildInputs = [ python37 python36 python2 python35 ];
postPatch = ''
patchShebangs .
@@ -32,29 +82,30 @@ stdenv.mkDerivation rec {
'';
postInstall = ''
- install -D utils/flame-chart-json $out/bin/flame-chart-json
+ install -D utils/flame-chart-json $out/bin/flame-chart-json
'';
doCheck = true;
# reproduces the logic of their test script, but without downloading pytest
# from the internet with pip
- checkPhase = with stdenv.lib; concatMapStringsSep "\n" (python: ''
- set -x
- PYMAJORVERSION=${head (strings.stringToCharacters python.version)} \
- PATH=${makeBinPath [ coreutils ]}\
- PYTHONPATH= \
- ${python.pkgs.pytest}/bin/pytest tests/
- set +x
- '') (filter (x: x!=null) buildInputs);
+ checkPhase = let inherit (stdenv) lib; in
+ lib.concatMapStringsSep "\n" (python: ''
+ set -x
+ PYMAJORVERSION=${lib.substring 0 1 python.version} \
+ PATH=${lib.makeBinPath [ coreutils ]}\
+ PYTHONPATH= \
+ ${python.pkgs.pytest}/bin/pytest tests/
+ set +x
+ '') (lib.filter (x: x != null) buildInputs);
meta = with stdenv.lib; {
description = "A ptracing profiler for Python ";
longDescription = ''
- Pyflame is a high performance profiling tool that generates flame graphs for
- Python. Pyflame uses the Linux ptrace(2) system call to collect profiling
- information. It can take snapshots of the Python call stack without
- explicit instrumentation, meaning you can profile a program without
- modifying its source code.
+ Pyflame is a high performance profiling tool that generates flame graphs
+ for Python. Pyflame uses the Linux ptrace(2) system call to collect
+ profiling information. It can take snapshots of the Python call stack
+ without explicit instrumentation, meaning you can profile a program
+ without modifying its source code.
'';
homepage = https://github.com/uber/pyflame;
license = licenses.asl20;
diff --git a/pkgs/development/tools/rust/cargo-bloat/default.nix b/pkgs/development/tools/rust/cargo-bloat/default.nix
new file mode 100644
index 00000000000..d3ded6e9f58
--- /dev/null
+++ b/pkgs/development/tools/rust/cargo-bloat/default.nix
@@ -0,0 +1,24 @@
+{ stdenv, rustPlatform, fetchFromGitHub }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cargo-bloat";
+ version = "0.6.2";
+
+ src = fetchFromGitHub {
+ owner = "RazrFalcon";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "0wf86r1s9skv0m4gp66g388847309nw9z1h8gadfg2c5w5idh3fb";
+ };
+
+ cargoSha256 = "1mmfcvpwwi6fjb47fz1azrpdkg1x5p3qn5bx4p6dyjcs1fmpdbbq";
+
+ meta = with stdenv.lib; {
+ description = "A tool and Cargo subcommand that helps you find out what takes most of the space in your executable";
+ homepage = https://github.com/RazrFalcon/cargo-bloat;
+ license = licenses.mit;
+ platforms = platforms.unix;
+ maintainers = with maintainers; [ xrelkd ];
+ };
+}
+
diff --git a/pkgs/development/tools/rust/cargo-expand/default.nix b/pkgs/development/tools/rust/cargo-expand/default.nix
index ab88aff0ea1..88fd212dad2 100644
--- a/pkgs/development/tools/rust/cargo-expand/default.nix
+++ b/pkgs/development/tools/rust/cargo-expand/default.nix
@@ -2,19 +2,19 @@
rustPlatform.buildRustPackage rec {
pname = "cargo-expand";
- version = "0.4.10";
+ version = "0.4.11";
src = fetchFromGitHub {
owner = "dtolnay";
repo = pname;
rev = version;
- sha256 = "1f90v67clmql2bb32sgs7c48q8nhyw2pfk4hpkiy8qll8fypjgik";
+ sha256 = "051hy2320mqdxvafhafwnk1n8q2sq2d7jyhx5bbxvqmjjm55lg8h";
};
- cargoSha256 = "042s28p68jz3my2q1crmq7xzcajwxmcprgg9z7r9ffhrybk4jvwz";
+ cargoSha256 = "0d1j01nrq5j0yrgd85lnvg1mzalcd8xadkza3yvwnqzf554idrcy";
meta = with stdenv.lib; {
- description = ''A utility and Cargo subcommand designed to let people expand macros in their Rust source code'';
+ description = "A utility and Cargo subcommand designed to let people expand macros in their Rust source code";
homepage = https://github.com/dtolnay/cargo-expand;
license = with licenses; [ mit asl20 ];
platforms = platforms.all;
diff --git a/pkgs/games/factorio/default.nix b/pkgs/games/factorio/default.nix
index 2bf41a3cc32..c5c239fc04f 100644
--- a/pkgs/games/factorio/default.nix
+++ b/pkgs/games/factorio/default.nix
@@ -53,11 +53,11 @@ let
x86_64-linux = let bdist = bdistForArch { inUrl = "linux64"; inTar = "x64"; }; in {
alpha = {
stable = bdist { sha256 = "0b4hbpdcrh5hgip9q5dkmw22p66lcdhnr0kmb0w5dw6yi7fnxxh0"; version = "0.16.51"; withAuth = true; };
- experimental = bdist { sha256 = "11vwyyf3him2bi0c5cgv0h0k304kvw667ygqplq5giyzcvadjix8"; version = "0.17.16"; withAuth = true; };
+ experimental = bdist { sha256 = "0xgvvmyh49992y2r8yhafi80j3j4pcsp7pf0fg3rbc6zi1ariwsr"; version = "0.17.32"; withAuth = true; };
};
headless = {
stable = bdist { sha256 = "0zrnpg2js0ysvx9y50h3gajldk16mv02dvrwnkazh5kzr1d9zc3c"; version = "0.16.51"; };
- experimental = bdist { sha256 = "1sxv4kc5vg53lgjrm5c250hvbg6hqz0ijfxpvfjk7bzps5g6n1fx"; version = "0.17.16"; };
+ experimental = bdist { sha256 = "1jfjbb0v7yiqpn7nxkr4fcd1rsz59s8k6qcl82d1j320l3y7nl9w"; version = "0.17.32"; };
};
demo = {
stable = bdist { sha256 = "0zf61z8937yd8pyrjrqdjgd0rjl7snwrm3xw86vv7s7p835san6a"; version = "0.16.51"; };
diff --git a/pkgs/games/steam/runtime-generated.nix b/pkgs/games/steam/runtime-generated.nix
index d5532c051d4..2ed7c21a91e 100644
--- a/pkgs/games/steam/runtime-generated.nix
+++ b/pkgs/games/steam/runtime-generated.nix
@@ -31,9 +31,9 @@
};
}
rec {
- name = "gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
- sha256 = "1vpdmgq0vbh7x4r6n1b5cxlz6yl2lfy5bwp89xph640kip1j1xax";
- url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+ name = "gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt1_amd64";
+ sha256 = "1awll78spja93gw4isbhxlix6nd29xf6b5pyznzggfcsvvxb4jcy";
+ url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt1_amd64.deb";
source = fetchurl {
inherit url sha256;
name = "gcc-5-base.deb";
@@ -256,9 +256,9 @@
};
}
rec {
- name = "libcomerr2_1.42-1ubuntu2.3+srt1_amd64";
- sha256 = "0ar9lzaxlmhqxpp6v2b3jz3lblkqhqwy0ywbwkdq4zs5za69kh1b";
- url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+srt1_amd64.deb";
+ name = "libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt1_amd64";
+ sha256 = "0svnif26x36swnfvhb6mbr6i4jg8r96rjlldsymaalgajdj0hv1j";
+ url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt1_amd64.deb";
source = fetchurl {
inherit url sha256;
name = "libcomerr2.deb";
@@ -391,9 +391,9 @@
};
}
rec {
- name = "libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
- sha256 = "1r6nviva9jnkwyg28lxjcr142lda88f3r2312wgdfhry69szw2ld";
- url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+ name = "libgcc1_5.4.0-7.really.6+steamrt1.2+srt1_amd64";
+ sha256 = "1dzlgamx6g8n07pzln9yipnfxw1vylsrzdbrgj2lq0r5axri234h";
+ url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.2+srt1_amd64.deb";
source = fetchurl {
inherit url sha256;
name = "libgcc1.deb";
@@ -490,9 +490,9 @@
};
}
rec {
- name = "libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
- sha256 = "1pcc8jj73bgs2ks0pkxhn3hc43yk0h97jsss6ckhmp3j5mg9szq7";
- url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+ name = "libgomp1_5.4.0-7.really.6+steamrt1.2+srt1_amd64";
+ sha256 = "04fmimz83v6b9ndq6s8yamqb462sp368h53zbqq819ixrwkpbqic";
+ url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.2+srt1_amd64.deb";
source = fetchurl {
inherit url sha256;
name = "libgomp1.deb";
@@ -751,9 +751,9 @@
};
}
rec {
- name = "libmikmod2_3.1.12-2+srt5_amd64";
- sha256 = "1i6kwzy1dz0a78jm0vpa0hjqahkwnj8yab8aky2srsf07y8bz2r8";
- url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-2+srt5_amd64.deb";
+ name = "libmikmod2_3.1.12-5+srt1_amd64";
+ sha256 = "0kmhiwdzgzspbhhlm69fbkzh6bpa0lc25dys9k2yidnfk51wwdbm";
+ url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-5+srt1_amd64.deb";
source = fetchurl {
inherit url sha256;
name = "libmikmod2.deb";
@@ -1138,9 +1138,9 @@
};
}
rec {
- name = "libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_amd64";
- sha256 = "09gn89qdjpwhh4yzydrpjbpwgbfhc0xmy56113an0rk9hs43ym1i";
- url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_amd64.deb";
+ name = "libstdc++6_5.4.0-7.really.6+steamrt1.2+srt1_amd64";
+ sha256 = "0mgnrbiv2wypw9rxilrv4f2mw5fl230xqpiq85xdmz8y8pg87w0i";
+ url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.2+srt1_amd64.deb";
source = fetchurl {
inherit url sha256;
name = "libstdc++6.deb";
@@ -1842,9 +1842,9 @@
};
}
rec {
- name = "gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_i386";
- sha256 = "1jlyq99j7rgw6m4rvrxcrpk5l386sps36isld18bg7hb67qm5gzy";
- url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+ name = "gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt1_i386";
+ sha256 = "0pjjl8h8fqpb21y5ng7s4ysxqy3v2s0qnfqivq6wvcd918vgr7gr";
+ url = "mirror://steamrt/pool/main/g/gcc-5/gcc-5-base_5.4.0-7.really.6+steamrt1.2+srt1_i386.deb";
source = fetchurl {
inherit url sha256;
name = "gcc-5-base.deb";
@@ -2067,9 +2067,9 @@
};
}
rec {
- name = "libcomerr2_1.42-1ubuntu2.3+srt1_i386";
- sha256 = "12c8gxi0l0qysbiw81hbysf5hn1kgv956csvrn71yf52zwqwr388";
- url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+srt1_i386.deb";
+ name = "libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt1_i386";
+ sha256 = "0ikh5z94nykxg8d1hqynknw6q6bbqyfvpjgq6yb9dz6yvfd5hwdr";
+ url = "mirror://steamrt/pool/main/e/e2fsprogs/libcomerr2_1.42-1ubuntu2.3+steamrt1.1+srt1_i386.deb";
source = fetchurl {
inherit url sha256;
name = "libcomerr2.deb";
@@ -2202,9 +2202,9 @@
};
}
rec {
- name = "libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_i386";
- sha256 = "0x9sssiqkdpbya6v5slw6lv3ad0w7k4j25bxh0zqxgjfpf3np8m7";
- url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+ name = "libgcc1_5.4.0-7.really.6+steamrt1.2+srt1_i386";
+ sha256 = "0gqvybwl19958cqvpv180wgccgzix03rvk8p8r198f83w65g01n4";
+ url = "mirror://steamrt/pool/main/g/gcc-5/libgcc1_5.4.0-7.really.6+steamrt1.2+srt1_i386.deb";
source = fetchurl {
inherit url sha256;
name = "libgcc1.deb";
@@ -2301,9 +2301,9 @@
};
}
rec {
- name = "libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_i386";
- sha256 = "0z73ay26wi49hg74lwn13gyraqvdim7q79rpckvk7p7cimb65ina";
- url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+ name = "libgomp1_5.4.0-7.really.6+steamrt1.2+srt1_i386";
+ sha256 = "1jcg2g6ip371hgfh9q4cfhvhp5mxpf5qb4w07p749md6aafc7m91";
+ url = "mirror://steamrt/pool/main/g/gcc-5/libgomp1_5.4.0-7.really.6+steamrt1.2+srt1_i386.deb";
source = fetchurl {
inherit url sha256;
name = "libgomp1.deb";
@@ -2562,9 +2562,9 @@
};
}
rec {
- name = "libmikmod2_3.1.12-2+srt5_i386";
- sha256 = "12dmbmkv3gmi1cz0bs3fsbhgnhzvf8cjp0b6zj2a2dgplw1h6qdr";
- url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-2+srt5_i386.deb";
+ name = "libmikmod2_3.1.12-5+srt1_i386";
+ sha256 = "18ib26cm7lavz4bqi7jw71s7kzj21caawiarwkcqh1idlgwaw2sf";
+ url = "mirror://steamrt/pool/main/libm/libmikmod/libmikmod2_3.1.12-5+srt1_i386.deb";
source = fetchurl {
inherit url sha256;
name = "libmikmod2.deb";
@@ -2949,9 +2949,9 @@
};
}
rec {
- name = "libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_i386";
- sha256 = "0l60yc1i7p20gaih1mzjk8c62zq9ba4zvmfmrk5w8xr05dpyq9a6";
- url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.1+srt2_i386.deb";
+ name = "libstdc++6_5.4.0-7.really.6+steamrt1.2+srt1_i386";
+ sha256 = "0zpxvknlis6r4fw5q2g1cd8j01qw5blxrph76yj7y1sb2rj10li7";
+ url = "mirror://steamrt/pool/main/g/gcc-5/libstdc++6_5.4.0-7.really.6+steamrt1.2+srt1_i386.deb";
source = fetchurl {
inherit url sha256;
name = "libstdc++6.deb";
diff --git a/pkgs/misc/base16-shell-preview/default.nix b/pkgs/misc/base16-shell-preview/default.nix
new file mode 100644
index 00000000000..72b7de3b9a2
--- /dev/null
+++ b/pkgs/misc/base16-shell-preview/default.nix
@@ -0,0 +1,23 @@
+{ lib, python3Packages }:
+
+python3Packages.buildPythonApplication rec {
+ pname = "base16-shell-preview";
+ version = "0.3.0";
+
+ src = python3Packages.fetchPypi {
+ inherit version;
+ pname = "base16_shell_preview";
+ sha256 = "0x2fbicrcqgf2dl7dqzm14dz08vjjziabaaw33wah3v9wv4rw7jq";
+ };
+
+ # No tests
+ # If enabled, will attempt to run '__init__.py, and will fail with "/homeless-shelter" as HOME
+ doCheck = false;
+
+ meta = with lib; {
+ description = "Browse and preview Base16 Shell themes in your terminal";
+ homepage = https://github.com/nvllsvm/base16-shell-preview;
+ license = licenses.mit;
+ maintainers = [ maintainers.rencire ];
+ };
+}
diff --git a/pkgs/misc/emulators/vbam/default.nix b/pkgs/misc/emulators/vbam/default.nix
index 66e17fd3a7a..72eb537bf18 100644
--- a/pkgs/misc/emulators/vbam/default.nix
+++ b/pkgs/misc/emulators/vbam/default.nix
@@ -15,12 +15,12 @@
stdenv.mkDerivation rec {
name = "visualboyadvance-m-${version}";
- version = "2.1.1";
+ version = "2.1.2";
src = fetchFromGitHub {
owner = "visualboyadvance-m";
repo = "visualboyadvance-m";
rev = "v${version}";
- sha256 = "03cs7wn01flx925sxhpz1j5sxa6s7wfxq71955kasn7a3xr1kxwn";
+ sha256 = "0bgb9r6qc4g1biymayknj1fccwrdmn772i4qnc9zs3f9jrs0b34g";
};
buildInputs = [
diff --git a/pkgs/misc/emulators/wine/sources.nix b/pkgs/misc/emulators/wine/sources.nix
index cfb4e35c2b5..70fadf7683f 100644
--- a/pkgs/misc/emulators/wine/sources.nix
+++ b/pkgs/misc/emulators/wine/sources.nix
@@ -31,24 +31,24 @@ in rec {
## see http://wiki.winehq.org/Mono
mono = fetchurl rec {
- version = "4.8.0";
+ version = "4.8.2";
url = "http://dl.winehq.org/wine/wine-mono/${version}/wine-mono-${version}.msi";
- sha256 = "0y47mfjkb2viraqrvi8qpjn2935sra81h3l4bvaag737s7zmj0c9";
+ sha256 = "1hvwhqdb11j9yzhhw86fjhj9bawg76zrh0wnx658pn5xghhk2jhy";
};
};
unstable = fetchurl rec {
# NOTE: Don't forget to change the SHA256 for staging as well.
- version = "4.5";
+ version = "4.6";
url = "https://dl.winehq.org/wine/source/4.x/wine-${version}.tar.xz";
- sha256 = "1dy1v27cw9vp2xnr8y4bdcvvw5ivcgpk2375jgn536csbwaxgwjz";
+ sha256 = "1nk2nlkdklwpd0kbq8hx59gl05b5wglcla0v3892by6k4kwh341j";
inherit (stable) mono gecko32 gecko64;
};
staging = fetchFromGitHub rec {
# https://github.com/wine-staging/wine-staging/releases
inherit (unstable) version;
- sha256 = "18xpha7nl3jg7c24cgbncciyyqqb6svsyfp1xk81993wnl6r8abs";
+ sha256 = "0mripibsi1p8h2j9ngqszkcjppdxji027ss4shqwb0nypaydd9w2";
owner = "wine-staging";
repo = "wine-staging";
rev = "v${version}";
diff --git a/pkgs/misc/screensavers/light-locker/default.nix b/pkgs/misc/screensavers/light-locker/default.nix
index f38851d6fa0..dc3f87b1f2b 100644
--- a/pkgs/misc/screensavers/light-locker/default.nix
+++ b/pkgs/misc/screensavers/light-locker/default.nix
@@ -1,43 +1,64 @@
{ stdenv
, fetchFromGitHub
-, which
-, xfce
-, glib
+, meson
+, ninja
, pkgconfig
+, gtk3
+, glib
+, intltool
+, dbus-glib
, libX11
, libXScrnSaver
-, libXxf86misc
-, gtk3
-, dbus-glib
+, libXxf86vm
+, libXext
, systemd
+, pantheon
, wrapGAppsHook
}:
stdenv.mkDerivation rec {
- name = "${basename}-${version}";
- basename = "light-locker";
- version = "1.8.0";
+ pname = "light-locker";
+ version = "1.9.0";
+
+ outputs = [ "out" "man" ];
src = fetchFromGitHub {
owner = "the-cavalry";
- repo = basename;
+ repo = pname;
rev = "v${version}";
- sha256 = "1zsafc10bmliknf12h3mgy7f73lvgph0q0wkaqp42iagmw11yaj8";
+ sha256 = "1z5lcd02gqax65qc14hj5khifg7gr53zy3s5i6apba50lbdlfk46";
};
- nativeBuildInputs = [ pkgconfig ];
- buildInputs = [ which xfce.xfce4-dev-tools glib systemd
- libX11 libXScrnSaver libXxf86misc gtk3 dbus-glib wrapGAppsHook ];
+ nativeBuildInputs = [
+ intltool
+ meson
+ ninja
+ pkgconfig
+ ];
- preConfigure = ''
- ./autogen.sh
- '';
+ buildInputs = [
+ dbus-glib
+ glib
+ gtk3
+ libX11
+ libXScrnSaver
+ libXext
+ libXxf86vm
+ systemd
+ wrapGAppsHook
+ ];
- configureFlags = [ "--with-xf86gamma-ext" "--with-mit-ext"
- "--with-dpms-ext" "--with-systemd"
- # ConsoleKit and UPower were dropped in favor
- # of systemd replacements
- "--without-console-kit" "--without-upower" ];
+ mesonFlags = [
+ "-Dmit-ext=true"
+ "-Ddpms-ext=true"
+ "-Dxf86gamma-ext=true"
+ "-Dsystemd=true"
+ "-Dupower=true"
+ "-Dlate-locking=true"
+ "-Dlock-on-suspend=true"
+ "-Dlock-on-lid=true"
+ "-Dgsettings=true"
+ ];
meta = with stdenv.lib; {
homepage = https://github.com/the-cavalry/light-locker;
@@ -52,7 +73,7 @@ stdenv.mkDerivation rec {
ConsoleKit/UPower or logind/systemd.
'';
license = licenses.gpl2;
- maintainers = with maintainers; [ obadz ];
+ maintainers = with maintainers; [ obadz ] ++ pantheon.maintainers;
platforms = platforms.linux;
};
}
diff --git a/pkgs/misc/themes/equilux-theme/default.nix b/pkgs/misc/themes/equilux-theme/default.nix
index 21016eba844..66e88630342 100644
--- a/pkgs/misc/themes/equilux-theme/default.nix
+++ b/pkgs/misc/themes/equilux-theme/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, fetchFromGitHub, gnome3, libxml2, gtk-engine-murrine, gdk_pixbuf, librsvg, bc }:
+{ stdenv, fetchFromGitHub, gnome3, glib, libxml2, gtk-engine-murrine, gdk_pixbuf, librsvg, bc }:
stdenv.mkDerivation rec {
name = "equilux-theme-${version}";
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
sha256 = "0lv2yyxhnmnkwxp576wnb01id4fp734b5z5n0l67sg5z7vc2h8fc";
};
- nativeBuildInputs = [ gnome3.glib libxml2 bc ];
+ nativeBuildInputs = [ glib libxml2 bc ];
buildInputs = [ gnome3.gnome-themes-extra gdk_pixbuf librsvg ];
diff --git a/pkgs/misc/vim-plugins/generated.nix b/pkgs/misc/vim-plugins/generated.nix
index 3932a491242..6ffd3bdcf49 100644
--- a/pkgs/misc/vim-plugins/generated.nix
+++ b/pkgs/misc/vim-plugins/generated.nix
@@ -61,12 +61,12 @@ let
ale = buildVimPluginFrom2Nix {
pname = "ale";
- version = "2019-04-13";
+ version = "2019-04-17";
src = fetchFromGitHub {
owner = "w0rp";
repo = "ale";
- rev = "495bce32e957dcf45d6d6acf183599e18c92b09d";
- sha256 = "0kiflcafiaz3r5a721551n8fa9sx94hwgh5dr50fbgbzjgpshn54";
+ rev = "fcc2c3ba71afa2a7965f3c1e9ec8c03381178180";
+ sha256 = "1xwm7rn9jz4xa4hyky07skqhlc9g13zggckyi6g3hq4qhamzjsvw";
};
};
@@ -403,12 +403,12 @@ let
denite-nvim = buildVimPluginFrom2Nix {
pname = "denite-nvim";
- version = "2019-04-07";
+ version = "2019-04-18";
src = fetchFromGitHub {
owner = "Shougo";
repo = "denite.nvim";
- rev = "fbde64c2be0482e9505a3fbdf4cb701f17662e51";
- sha256 = "1z7506ch0b5lim098v4n52fhz7mqxrfgywanavpgppyas496sdp0";
+ rev = "b62a596c0936c0d3ce7480ed22bb54af4ea089fb";
+ sha256 = "0kacnl2h7cv359g92v30cbsz1abdvml98ir5vp56n2gap91z2bnd";
};
};
@@ -494,12 +494,12 @@ let
deoplete-nvim = buildVimPluginFrom2Nix {
pname = "deoplete-nvim";
- version = "2019-04-07";
+ version = "2019-04-15";
src = fetchFromGitHub {
owner = "Shougo";
repo = "deoplete.nvim";
- rev = "5c50f254175ee1e815a47761c50abec861afcc61";
- sha256 = "133zlaha0lvibrcd4ci7h353pgv64yyvvh211g8pdlq8vd9qbrhn";
+ rev = "9d4e88f6cce63ed1b52ca2401d809c55ab443b25";
+ sha256 = "165vxlr2zjh0p7mcqaj60axpnffcrjfx6rvp786nxch4kmfhrz5p";
};
};
@@ -527,12 +527,12 @@ let
echodoc-vim = buildVimPluginFrom2Nix {
pname = "echodoc-vim";
- version = "2019-04-04";
+ version = "2019-04-15";
src = fetchFromGitHub {
owner = "Shougo";
repo = "echodoc.vim";
- rev = "1dfd4d45eb169bba4a5d5a3a4210e663e4a18dfe";
- sha256 = "021qx04ka3w3w7wlv0p3lrpwxnlvxn0xkv7qwx6fk6594xfbaxi7";
+ rev = "ff8d60d631a66de5bcad8325eb50f2cd20fa163d";
+ sha256 = "1v63yii2d2ccij2cyz1n1vsfl27r70g0hj68pmcfmx4azfb8yxa7";
};
};
@@ -561,12 +561,12 @@ let
emmet-vim = buildVimPluginFrom2Nix {
pname = "emmet-vim";
- version = "2019-02-10";
+ version = "2019-04-15";
src = fetchFromGitHub {
owner = "mattn";
repo = "emmet-vim";
- rev = "d698f1658770ca5fa58c87e80421c8d65bbe9065";
- sha256 = "12dk21ddjw9dz87bw8hq37v1nd4q7q452sn5pa4sa289b9v0ik8q";
+ rev = "ae7d31f29080ad18073dda3530582dacb18475e6";
+ sha256 = "0ip4qrbbamdw9rmzh3w29bw9gx8gqlnxgyrdj4z9a1cpxp0cd5k3";
fetchSubmodules = true;
};
};
@@ -584,12 +584,12 @@ let
falcon = buildVimPluginFrom2Nix {
pname = "falcon";
- version = "2019-04-08";
+ version = "2019-04-18";
src = fetchFromGitHub {
owner = "fenetikm";
repo = "falcon";
- rev = "8d1cfd1b700c9945bf98a29d3713a9f1e0e9e5e6";
- sha256 = "0asm7wvvj3z5zvjm61kj7qg5k8jkqncdrd1snbb34nq4vayr5y7a";
+ rev = "b0b5f19042685cd3ec3b3f388f64aaed489889db";
+ sha256 = "0rikl448c1ps3phivb0xpx8a085wk5fz2xj1b6n24g88xfay1psm";
};
};
@@ -783,12 +783,12 @@ let
iceberg-vim = buildVimPluginFrom2Nix {
pname = "iceberg-vim";
- version = "2019-01-04";
+ version = "2019-04-19";
src = fetchFromGitHub {
owner = "cocopon";
repo = "iceberg.vim";
- rev = "8b5ca0059c0f5f0bf0f78d7c5fbd3e83b7a5d5b6";
- sha256 = "1522psnakmcsm781lpnq09i3ylrg0lj8kx3nb7xm4wi6m100zzlk";
+ rev = "24fd10b301e406ea2e6fb77c649688a3b34dc8c8";
+ sha256 = "1i1k6cpv0nrliwf32m07ycsxx1h2m47c52wfb9bdbfk4pp9w62fp";
};
};
@@ -858,6 +858,17 @@ let
};
};
+ jdaddy-vim = buildVimPluginFrom2Nix {
+ pname = "jdaddy-vim";
+ version = "2014-02-22";
+ src = fetchFromGitHub {
+ owner = "vim-scripts";
+ repo = "jdaddy.vim";
+ rev = "3e44c2e6d22e2d6fc94863379b5b4f5424537321";
+ sha256 = "1ch12bffrs3gqqzdj9vh0i2azhc5d06i5vwds4rqcx797lqh7pzb";
+ };
+ };
+
jedi-vim = buildVimPluginFrom2Nix {
pname = "jedi-vim";
version = "2019-04-05";
@@ -1125,12 +1136,12 @@ let
neoinclude-vim = buildVimPluginFrom2Nix {
pname = "neoinclude-vim";
- version = "2018-05-21";
+ version = "2019-04-17";
src = fetchFromGitHub {
owner = "Shougo";
repo = "neoinclude.vim";
- rev = "2fa77b9211d3f10c29559b715b6863da67ae7d3a";
- sha256 = "0pdahb2z9q4dk67xkwvaqrlpai86slhncfb4gn88x40dlnd7rkbg";
+ rev = "9baaab193f461193e737dd1342a43d43a380bca6";
+ sha256 = "0gh2sdz32hp7wa5rvnrgwp8ga75sxpb4d3fxszkf8vd3gdxkxsq4";
};
};
@@ -1158,12 +1169,12 @@ let
neosnippet-snippets = buildVimPluginFrom2Nix {
pname = "neosnippet-snippets";
- version = "2019-03-16";
+ version = "2019-04-18";
src = fetchFromGitHub {
owner = "Shougo";
repo = "neosnippet-snippets";
- rev = "38024eceb05df57c1a3dbf64079f1120f51deb3c";
- sha256 = "16ppys1hvxbh1wivz3z0yyhd77l277lkp6xnsp2q1nwk70cwsag3";
+ rev = "ed18d979d76709036f6c4f7a2bdbfb29b11e3e0e";
+ sha256 = "1f7d174pbwfppaa0fsk0imfg1j1c463fniypqjs8c1djbw698m37";
};
};
@@ -1213,23 +1224,23 @@ let
nerdcommenter = buildVimPluginFrom2Nix {
pname = "nerdcommenter";
- version = "2019-03-07";
+ version = "2019-04-17";
src = fetchFromGitHub {
owner = "scrooloose";
repo = "nerdcommenter";
- rev = "f46226bcd679a2d656b3179c54cc6b88f1db3b27";
- sha256 = "1l4wh87zdsw5k0anjwjkrbhscpbsl56v0nndvwjhlwimw4jxx390";
+ rev = "17b68e47d781b9fcbf1c77495e535eab366f20ca";
+ sha256 = "0slv0dfcxx44b795bg4b8w7wmny7jax4h9vivb9jsbxjrj0zcygl";
};
};
nerdtree = buildVimPluginFrom2Nix {
pname = "nerdtree";
- version = "2019-03-26";
+ version = "2019-04-16";
src = fetchFromGitHub {
owner = "scrooloose";
repo = "nerdtree";
- rev = "7513f256aa1d59b6a749cefe5ac505375b1b8a6a";
- sha256 = "0163bvsmnnw598x2nyi9lzdk6akzj62cbsldp8prhl6d7x3gdmaf";
+ rev = "e126b8745dc40931ae8da03d92c78264e8e4b029";
+ sha256 = "1f43a04alrb5k5k7kys3i6ld7cxzcz9yz6il95z0xi9lwbb8mnid";
};
};
@@ -1257,12 +1268,12 @@ let
nord-vim = buildVimPluginFrom2Nix {
pname = "nord-vim";
- version = "2019-03-21";
+ version = "2019-04-18";
src = fetchFromGitHub {
owner = "arcticicestudio";
repo = "nord-vim";
- rev = "bfa069b12b3af000b07eb23c01ff516bab452db7";
- sha256 = "1wyslhazi9vwnk3z68ibd4gswvc340mwnffg9lnpskqi56qpw005";
+ rev = "39e0742d57c8f4b5442939362942a7c5afa20a62";
+ sha256 = "0mp5mf0bzkq6rsh23s1912vwkmdhx1nc4q81nyf0y32m84lrjx1w";
};
};
@@ -1334,12 +1345,12 @@ let
papercolor-theme = buildVimPluginFrom2Nix {
pname = "papercolor-theme";
- version = "2019-03-17";
+ version = "2019-04-16";
src = fetchFromGitHub {
owner = "NLKNguyen";
repo = "papercolor-theme";
- rev = "6f34e06ac4b3e1ac7c5755a0216791066fbe74c8";
- sha256 = "13kdglkxdwxpmv0xwcwgzivb8x74bfypw2xn8w237niryvxg4y7z";
+ rev = "129608399ad3cc49dde798741a64c14131dfc908";
+ sha256 = "1jvazpk51azklm3la590k3318mnz2v4pg7sdjj5z9dsdvd69qi3y";
};
};
@@ -1433,12 +1444,12 @@ let
rainbow = buildVimPluginFrom2Nix {
pname = "rainbow";
- version = "2019-03-04";
+ version = "2019-04-17";
src = fetchFromGitHub {
owner = "luochen1990";
repo = "rainbow";
- rev = "d08e167596511d40a0d3451931b52cc62d9001eb";
- sha256 = "0mq2kcx5rwav5az2w7cbhws0kqp0jm7mpskbmhcd7x352xh0308d";
+ rev = "78afcbe5395fac8fab2d4bb122ae638c4485bf69";
+ sha256 = "1j7ymlvlgvwklvxjjm2ab86d1frlss560ms4gs9dh73qyjfjr3p2";
};
};
@@ -1895,12 +1906,12 @@ let
vim = buildVimPluginFrom2Nix {
pname = "vim";
- version = "2019-04-07";
+ version = "2019-04-15";
src = fetchFromGitHub {
owner = "dracula";
repo = "vim";
- rev = "34efabac145c06cda8084aea11bf46382a3d2254";
- sha256 = "1qswcnjl60gw8grgy0gym5lmx29rqxhz5p01dibpcv1qq1ij2msg";
+ rev = "d8ca3b52b07529f4a55da451291fe0ca8e18d02d";
+ sha256 = "153pmg4x0yrc9npwjk9zyzd347r2xkr3r72nmhh1cfy0n0lg10gg";
};
};
@@ -2126,12 +2137,12 @@ let
vim-airline = buildVimPluginFrom2Nix {
pname = "vim-airline";
- version = "2019-04-09";
+ version = "2019-04-18";
src = fetchFromGitHub {
owner = "vim-airline";
repo = "vim-airline";
- rev = "cbf264ff5f323ab8a8cf02f59f79bf858d496047";
- sha256 = "11clk44jpdc4v67hrv0m5isjd4hxxr4figxj1ck0v0bkcd714jcm";
+ rev = "ead2cd63bbe4ceec161f9634c8b52048551f91b4";
+ sha256 = "0x0mv047r2li57l2b9cdlpdjl5fy0qhcs973w40kwp8pxnzrs332";
};
};
@@ -2201,6 +2212,17 @@ let
};
};
+ vim-beancount = buildVimPluginFrom2Nix {
+ pname = "vim-beancount";
+ version = "2017-10-28";
+ src = fetchFromGitHub {
+ owner = "nathangrigg";
+ repo = "vim-beancount";
+ rev = "8054352c43168ece62094dfc8ec510e347e19e3c";
+ sha256 = "0fd4fbdmhapdhjr3f9bhd4lqxzpdwwvpf64vyqwahkqn8hrrbc4m";
+ };
+ };
+
vim-better-whitespace = buildVimPluginFrom2Nix {
pname = "vim-better-whitespace";
version = "2019-01-25";
@@ -2247,12 +2269,12 @@ let
vim-codefmt = buildVimPluginFrom2Nix {
pname = "vim-codefmt";
- version = "2019-03-27";
+ version = "2019-04-17";
src = fetchFromGitHub {
owner = "google";
repo = "vim-codefmt";
- rev = "b4aafd5b0f7e5c2b44ba6d92a18196331ac1003a";
- sha256 = "0plr53xaavwwxvzk1rb724i1cpknh6z09zvbg2y0bgl5cj51b665";
+ rev = "fc45c30907106801f0bf443a9fa20300fc6ce100";
+ sha256 = "0rnlcvv6jw0q9hhy0f5l52hv8kajymii8c1qlc04bpwm8ibkxjkn";
};
};
@@ -2467,12 +2489,12 @@ let
vim-elixir = buildVimPluginFrom2Nix {
pname = "vim-elixir";
- version = "2019-03-18";
+ version = "2019-04-17";
src = fetchFromGitHub {
owner = "elixir-lang";
repo = "vim-elixir";
- rev = "d51d5f7eb5c46992ac718ac648e02e38322e073e";
- sha256 = "1n95zybvncfz5w4h77li22dcskb3xpf0jlfrw9g5ix80w1n41aar";
+ rev = "7e00da6033b7847c6bb71df18f852342946eab42";
+ sha256 = "0v3agkkdwpzi8gys1nysrm6jisjd42v5ipbvd5w5kn3qhr28n1d5";
};
};
@@ -2621,12 +2643,12 @@ let
vim-go = buildVimPluginFrom2Nix {
pname = "vim-go";
- version = "2019-04-13";
+ version = "2019-04-18";
src = fetchFromGitHub {
owner = "fatih";
repo = "vim-go";
- rev = "473636c94cf0887a39839c82c4dcde0faab34f85";
- sha256 = "1khzkpyg3hvz5brmzbrdxf33fdk62dfrss4q9gsfai61k1inrbfn";
+ rev = "203366598ff157b0d81e83ff91b8a26728929f04";
+ sha256 = "018kg7lbzrrz2zswlrp37p0bcsk1hjf9pcx74748vs92vi2q9zlq";
};
};
@@ -2852,12 +2874,12 @@ let
vim-javascript = buildVimPluginFrom2Nix {
pname = "vim-javascript";
- version = "2019-03-26";
+ version = "2019-04-16";
src = fetchFromGitHub {
owner = "pangloss";
repo = "vim-javascript";
- rev = "24c896e13d9241024bdb79f48e811748654d7ba2";
- sha256 = "1c89n4rzjdq12h6wjz04np14hnd33i7fyrxlxv3yyl3hdcvs8bk1";
+ rev = "ee445807a71ee6933cd6cbcd74940bc288815793";
+ sha256 = "0x4cscpfll8m7f9hvx4fjxff5vscz4kzvs14ai1sdg75b6dngxl0";
};
};
@@ -3007,12 +3029,12 @@ let
vim-lsc = buildVimPluginFrom2Nix {
pname = "vim-lsc";
- version = "2019-04-09";
+ version = "2019-04-19";
src = fetchFromGitHub {
owner = "natebosch";
repo = "vim-lsc";
- rev = "4fd4668966e430946a864eb4e973634b3f506ded";
- sha256 = "0gz1w7lcvy3rv4h4bfk8fdsa0k1nhxfkzrn2ncapkl210gw0v7zq";
+ rev = "c0514ddfdc9b1205e6f0952bf19b8d7105972a52";
+ sha256 = "04w46nv8bqqc7kjxhs63blwqs787n0x3kgy5xrgg7h20vwbq5a5s";
};
};
@@ -3205,12 +3227,12 @@ let
vim-pandoc-syntax = buildVimPluginFrom2Nix {
pname = "vim-pandoc-syntax";
- version = "2017-04-13";
+ version = "2019-04-17";
src = fetchFromGitHub {
owner = "vim-pandoc";
repo = "vim-pandoc-syntax";
- rev = "56e8e41ef863a0a7d33d85c3c0c895aa6e9e62d3";
- sha256 = "19ll4zrw5yd0frgsbi7pg9b68lmy4bfiwbnwgzii7inifrqsykfw";
+ rev = "e1ce4ff92afd23139759e7322ebeb434bbad88b0";
+ sha256 = "1wa2gwkq5d5mb97dklyl6q81f0irr8bmbwcdn39x5sxwsahck83c";
};
};
@@ -3689,12 +3711,12 @@ let
vim-test = buildVimPluginFrom2Nix {
pname = "vim-test";
- version = "2019-04-07";
+ version = "2019-04-16";
src = fetchFromGitHub {
owner = "janko-m";
repo = "vim-test";
- rev = "9c38bb948e7a08fc35b5235535a27fe45777d0e4";
- sha256 = "0b7n89rnrk70bh67xlb6wm2fpww8s7v86kia29bfirs5mrii3kqf";
+ rev = "f54101bb7e190186df39442f87ea66c08e73a1da";
+ sha256 = "13x0jwk8hv6z52dhgh7w6ism2z0pydlhcxh9qpb3yk42mns57pyd";
};
};
@@ -3931,12 +3953,12 @@ let
vimtex = buildVimPluginFrom2Nix {
pname = "vimtex";
- version = "2019-04-12";
+ version = "2019-04-18";
src = fetchFromGitHub {
owner = "lervag";
repo = "vimtex";
- rev = "51892b2b592331ce05b9b95e342cf5312b4f210b";
- sha256 = "1chb8l9w2lnqpnjxy7h4ylmrqlyzfl5l1jj1x42bnc0l3mj62pa0";
+ rev = "7f7adf281d77282d5853eec17ed817e6bf5793b6";
+ sha256 = "0wmbrgjsqsi8na3nbx8nxqjkhdz434c6zlwvdx871kiffv9i43ig";
};
};
diff --git a/pkgs/misc/vim-plugins/vim-plugin-names b/pkgs/misc/vim-plugins/vim-plugin-names
index b296cd0a827..118d18087e5 100644
--- a/pkgs/misc/vim-plugins/vim-plugin-names
+++ b/pkgs/misc/vim-plugins/vim-plugin-names
@@ -203,6 +203,7 @@ motus/pig.vim
mpickering/hlint-refactor-vim
natebosch/vim-lsc
nathanaelkane/vim-indent-guides
+nathangrigg/vim-beancount
navicore/vissort.vim
nbouscal/vim-stylish-haskell
ncm2/ncm2
@@ -354,6 +355,7 @@ vim-scripts/Rename
vim-scripts/ReplaceWithRegister
vim-scripts/tabmerge
vim-scripts/taglist.vim
+vim-scripts/jdaddy.vim
vim-scripts/wombat256.vim
vim-scripts/YankRing.vim
vim-utils/vim-husk
diff --git a/pkgs/os-specific/linux/pam/default.nix b/pkgs/os-specific/linux/pam/default.nix
index 5a5da4dfc71..1f2a7d3edf2 100644
--- a/pkgs/os-specific/linux/pam/default.nix
+++ b/pkgs/os-specific/linux/pam/default.nix
@@ -18,10 +18,9 @@ stdenv.mkDerivation rec {
url = "https://git.alpinelinux.org/cgit/aports/plain/main/linux-pam/libpam-fix-build-with-eglibc-2.16.patch?id=05a62bda8ec255d7049a2bd4cf0fdc4b32bdb2cc";
sha256 = "1ib6shhvgzinjsc603k2x1lxh9dic6qq449fnk110gc359m23j81";
})
- (fetchpatch {
- url = "https://git.alpinelinux.org/cgit/aports/plain/main/linux-pam/musl-fix-pam_exec.patch?id=05a62bda8ec255d7049a2bd4cf0fdc4b32bdb2cc";
- sha256 = "04dx6s9d8cxl40r7m7dc4si47ds4niaqm7902y1d6wcjvs11vrf0";
- })
+ # From adelie's package repo, using local copy since it seems to be currently offline.
+ # (we previously used similar patch from void, but stopped working with update to 1.3.1)
+ ./musl-fix-pam_exec.patch
];
outputs = [ "out" "doc" "man" /* "modules" */ ];
diff --git a/pkgs/os-specific/linux/pam/musl-fix-pam_exec.patch b/pkgs/os-specific/linux/pam/musl-fix-pam_exec.patch
new file mode 100644
index 00000000000..194e47b9e5b
--- /dev/null
+++ b/pkgs/os-specific/linux/pam/musl-fix-pam_exec.patch
@@ -0,0 +1,33 @@
+--- ./modules/pam_exec/pam_exec.c.orig
++++ ./modules/pam_exec/pam_exec.c
+@@ -103,11 +103,14 @@
+ int optargc;
+ const char *logfile = NULL;
+ const char *authtok = NULL;
++ char authtok_buf[PAM_MAX_RESP_SIZE+1];
++
+ pid_t pid;
+ int fds[2];
+ int stdout_fds[2];
+ FILE *stdout_file = NULL;
+
++ memset(authtok_buf, 0, sizeof(authtok_buf));
+ if (argc < 1) {
+ pam_syslog (pamh, LOG_ERR,
+ "This module needs at least one argument");
+@@ -180,12 +183,12 @@
+ if (resp)
+ {
+ pam_set_item (pamh, PAM_AUTHTOK, resp);
+- authtok = strndupa (resp, PAM_MAX_RESP_SIZE);
++ authtok = strncpy(authtok_buf, resp, sizeof(authtok_buf));
+ _pam_drop (resp);
+ }
+ }
+ else
+- authtok = strndupa (void_pass, PAM_MAX_RESP_SIZE);
++ authtok = strncpy(authtok_buf, void_pass, sizeof(authtok_buf));
+
+ if (pipe(fds) != 0)
+ {
+
diff --git a/pkgs/servers/home-assistant/esphome.nix b/pkgs/servers/home-assistant/esphome.nix
index d4420be94b5..a8cb12193b0 100644
--- a/pkgs/servers/home-assistant/esphome.nix
+++ b/pkgs/servers/home-assistant/esphome.nix
@@ -1,17 +1,40 @@
-{ lib, python3, fetchpatch, platformio, esptool, git }:
+{ lib, python3, fetchpatch, platformio, esptool, git, protobuf3_7 }:
-python3.pkgs.buildPythonApplication rec {
+let
+ python = python3.override {
+ packageOverrides = self: super: {
+ pyyaml = super.pyyaml.overridePythonAttrs (oldAttrs: rec {
+ version = "5.1";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "436bc774ecf7c103814098159fbb84c2715d25980175292c648f2da143909f95";
+ };
+ });
+ tornado = super.tornado.overridePythonAttrs (oldAttrs: rec {
+ version = "5.1.1";
+ src = oldAttrs.src.override {
+ inherit version;
+ sha256 = "4e5158d97583502a7e2739951553cbd88a72076f152b4b11b64b9a10c4c49409";
+ };
+ });
+ protobuf = super.protobuf.override {
+ protobuf = protobuf3_7;
+ };
+ };
+ };
+
+in python.pkgs.buildPythonApplication rec {
pname = "esphome";
- version = "1.11.2";
+ version = "1.12.2";
- src = python3.pkgs.fetchPypi {
+ src = python.pkgs.fetchPypi {
inherit pname version;
- sha256 = "0kg8fqv3mv8i852jr42p4mipa9wjlzjwj60j1r2zpgzgr8p8wfs8";
+ sha256 = "935fc3d0f05b2f5911c29f60c9b5538bed584a31455b492944007d8b1524462c";
};
ESPHOME_USE_SUBPROCESS = "";
- propagatedBuildInputs = with python3.pkgs; [
+ propagatedBuildInputs = with python.pkgs; [
voluptuous pyyaml paho-mqtt colorlog
tornado protobuf tzlocal pyserial ifaddr
];
@@ -24,11 +47,6 @@ python3.pkgs.buildPythonApplication rec {
"--set ESPHOME_USE_SUBPROCESS ''"
];
- checkPhase = ''
- $out/bin/esphomeyaml tests/test1.yaml compile
- $out/bin/esphomeyaml tests/test2.yaml compile
- '';
-
# Platformio will try to access the network
doCheck = false;
diff --git a/pkgs/servers/http/nginx/generic.nix b/pkgs/servers/http/nginx/generic.nix
index 02bef43c184..12b873df6a4 100644
--- a/pkgs/servers/http/nginx/generic.nix
+++ b/pkgs/servers/http/nginx/generic.nix
@@ -1,5 +1,5 @@
{ stdenv, fetchurl, fetchpatch, openssl, zlib, pcre, libxml2, libxslt
-, gd, geoip
+, substituteAll, gd, geoip
, withDebug ? false
, withStream ? true
, withMail ? false
@@ -75,7 +75,12 @@ stdenv.mkDerivation {
preConfigure = (concatMapStringsSep "\n" (mod: mod.preConfigure or "") modules);
- patches = stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
+ patches = stdenv.lib.singleton (substituteAll {
+ src = ./nix-etag-1.15.4.patch;
+ preInstall = ''
+ export nixStoreDir="$NIX_STORE" nixStoreDirLen="''${#NIX_STORE}"
+ '';
+ }) ++ stdenv.lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [
(fetchpatch {
url = "https://raw.githubusercontent.com/openwrt/packages/master/net/nginx/patches/102-sizeof_test_fix.patch";
sha256 = "0i2k30ac8d7inj9l6bl0684kjglam2f68z8lf3xggcc2i5wzhh8a";
diff --git a/pkgs/servers/http/nginx/nix-etag-1.15.4.patch b/pkgs/servers/http/nginx/nix-etag-1.15.4.patch
new file mode 100644
index 00000000000..9dec715bf6c
--- /dev/null
+++ b/pkgs/servers/http/nginx/nix-etag-1.15.4.patch
@@ -0,0 +1,92 @@
+From f6a978f024d01202f954483423af1b2d5d5159a6 Mon Sep 17 00:00:00 2001
+From: Yegor Timoshenko
+Date: Fri, 28 Sep 2018 03:27:04 +0000
+Subject: [PATCH] If root is in Nix store, set ETag to its path hash
+
+---
+ src/http/ngx_http_core_module.c | 56 +++++++++++++++++++++++++++++----
+ 1 file changed, 50 insertions(+), 6 deletions(-)
+
+diff --git a/src/http/ngx_http_core_module.c b/src/http/ngx_http_core_module.c
+index c57ec00c..b7992de2 100644
+--- a/src/http/ngx_http_core_module.c
++++ b/src/http/ngx_http_core_module.c
+@@ -1583,6 +1583,7 @@ ngx_http_set_etag(ngx_http_request_t *r)
+ {
+ ngx_table_elt_t *etag;
+ ngx_http_core_loc_conf_t *clcf;
++ u_char *real, *ptr1, *ptr2;
+
+ clcf = ngx_http_get_module_loc_conf(r, ngx_http_core_module);
+
+@@ -1598,16 +1599,61 @@ ngx_http_set_etag(ngx_http_request_t *r)
+ etag->hash = 1;
+ ngx_str_set(&etag->key, "ETag");
+
+- etag->value.data = ngx_pnalloc(r->pool, NGX_OFF_T_LEN + NGX_TIME_T_LEN + 3);
+- if (etag->value.data == NULL) {
++ real = ngx_realpath(clcf->root.data, NULL);
++
++ if (real == NULL) {
+ etag->hash = 0;
+ return NGX_ERROR;
+ }
+
+- etag->value.len = ngx_sprintf(etag->value.data, "\"%xT-%xO\"",
+- r->headers_out.last_modified_time,
+- r->headers_out.content_length_n)
+- - etag->value.data;
++ #define NIX_STORE_DIR "@nixStoreDir@"
++ #define NIX_STORE_LEN @nixStoreDirLen@
++
++ if (r->headers_out.last_modified_time == 1
++ && !ngx_strncmp(real, NIX_STORE_DIR, NIX_STORE_LEN)
++ && real[NIX_STORE_LEN] == '/'
++ && real[NIX_STORE_LEN + 1] != '\0')
++ {
++ ptr1 = real + NIX_STORE_LEN;
++ *ptr1 = '"';
++
++ ptr2 = (u_char *) ngx_strchr(ptr1, '-');
++
++ if (ptr2 == NULL) {
++ ngx_free(real);
++ etag->hash = 0;
++ return NGX_ERROR;
++ }
++
++ *ptr2++ = '"';
++ *ptr2 = '\0';
++
++ etag->value.len = ngx_strlen(ptr1);
++ etag->value.data = ngx_pnalloc(r->pool, etag->value.len);
++
++ if (etag->value.data == NULL) {
++ ngx_free(real);
++ etag->hash = 0;
++ return NGX_ERROR;
++ }
++
++ ngx_memcpy(etag->value.data, ptr1, etag->value.len);
++ } else {
++ etag->value.data = ngx_pnalloc(r->pool, NGX_OFF_T_LEN + NGX_TIME_T_LEN + 3);
++
++ if (etag->value.data == NULL) {
++ ngx_free(real);
++ etag->hash = 0;
++ return NGX_ERROR;
++ }
++
++ etag->value.len = ngx_sprintf(etag->value.data, "\"%xT-%xO\"",
++ r->headers_out.last_modified_time,
++ r->headers_out.content_length_n)
++ - etag->value.data;
++ }
++
++ ngx_free(real);
+
+ r->headers_out.etag = etag;
+
+--
+2.19.0
+
diff --git a/pkgs/servers/hylafaxplus/default.nix b/pkgs/servers/hylafaxplus/default.nix
index f5876687f8e..bbd5b80184f 100644
--- a/pkgs/servers/hylafaxplus/default.nix
+++ b/pkgs/servers/hylafaxplus/default.nix
@@ -30,8 +30,8 @@
let
name = "hylafaxplus-${version}";
- version = "5.6.1";
- sha256 = "100jcnkf44g659fh732a3ic2ik6l619cv0zhhp37n2kaydv876s1";
+ version = "7.0.0";
+ sha256 = "1ryqd8mcaj536pxykja3qzwgd985ad1nn5zfqr1wksf2mzqvwscy";
configSite = substituteAll {
name = "hylafaxplus-config.site";
diff --git a/pkgs/servers/mail/postsrsd/default.nix b/pkgs/servers/mail/postsrsd/default.nix
index 7af785aa87c..f13c57e3b35 100644
--- a/pkgs/servers/mail/postsrsd/default.nix
+++ b/pkgs/servers/mail/postsrsd/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
name = "postsrsd-${version}";
- version = "1.5";
+ version = "1.6";
src = fetchFromGitHub {
owner = "roehling";
repo = "postsrsd";
rev = version;
- sha256 = "170pbjicpfac8qca2vkp6bpbw42xrcm14b3p1dhnp877glrzlih8";
+ sha256 = "1dza22f0zlzsvr2dpnmsg8m8mj9rgdk0pzm1wvxrcfwyi8899ggm";
};
cmakeFlags = [ "-DGENERATE_SRS_SECRET=OFF" "-DINIT_FLAVOR=systemd" ];
diff --git a/pkgs/servers/memcached/default.nix b/pkgs/servers/memcached/default.nix
index 73251bfd9e1..493bcde6a14 100644
--- a/pkgs/servers/memcached/default.nix
+++ b/pkgs/servers/memcached/default.nix
@@ -1,12 +1,12 @@
{stdenv, fetchurl, cyrus_sasl, libevent}:
stdenv.mkDerivation rec {
- version = "1.5.12";
+ version = "1.5.13";
name = "memcached-${version}";
src = fetchurl {
url = "https://memcached.org/files/${name}.tar.gz";
- sha256 = "0aav15f0lh8k4i62aza2bdv4s8vv65j38pz2zc4v45snd3arfby0";
+ sha256 = "0qsdkjrns4f02lmabq8c7mzl5n4382q2p6a0dvmsjdcpjisagqb1";
};
configureFlags = [
diff --git a/pkgs/shells/zsh/nix-zsh-completions/default.nix b/pkgs/shells/zsh/nix-zsh-completions/default.nix
index 122a44dcd17..0a5c3ef666e 100644
--- a/pkgs/shells/zsh/nix-zsh-completions/default.nix
+++ b/pkgs/shells/zsh/nix-zsh-completions/default.nix
@@ -1,7 +1,7 @@
{ stdenv, fetchFromGitHub }:
let
- version = "0.4.2";
+ version = "0.4.3";
in
stdenv.mkDerivation rec {
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
owner = "spwhitt";
repo = "nix-zsh-completions";
rev = "${version}";
- sha256 = "1pfyn8kd9fc9fyy77imzg6xj00nzddkjagwjs2594db8ynp6cfil";
+ sha256 = "0fq1zlnsj1bb7byli7mwlz7nm2yszwmyx43ccczcv51mjjfivyp3";
};
installPhase = ''
diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix
index 6d6fa5d93e1..e2dbf46541e 100644
--- a/pkgs/shells/zsh/oh-my-zsh/default.nix
+++ b/pkgs/shells/zsh/oh-my-zsh/default.nix
@@ -4,13 +4,13 @@
{ stdenv, fetchgit }:
stdenv.mkDerivation rec {
- version = "2019-04-04";
+ version = "2019-04-18";
name = "oh-my-zsh-${version}";
- rev = "4ddb2e384ab0840b1d8a6d4c95770ef8a6c25fcc";
+ rev = "9b2410fbcfa21d6115219fe626a6f422b578d3ac";
src = fetchgit { inherit rev;
url = "https://github.com/robbyrussell/oh-my-zsh";
- sha256 = "0hvpq24qh10x3ii3j16kwpzlgas6zw9bg0sspd9dlfqb7rcmvqy2";
+ sha256 = "17lach3kzhl0yjbzdrmg4456ms0w6n0kzzvxqmm977mfg5i2hcif";
};
pathsToLink = [ "/share/oh-my-zsh" ];
diff --git a/pkgs/tools/graphics/wallutils/default.nix b/pkgs/tools/graphics/wallutils/default.nix
new file mode 100644
index 00000000000..25ef433304c
--- /dev/null
+++ b/pkgs/tools/graphics/wallutils/default.nix
@@ -0,0 +1,34 @@
+{ buildGoModule, fetchFromGitHub, lib
+, wayland, libX11, xbitmaps, libXcursor, libXmu
+}:
+
+buildGoModule rec {
+ name = "wallutils-${version}";
+ version = "5.7.2";
+
+ src = fetchFromGitHub {
+ owner = "xyproto";
+ repo = "wallutils";
+ rev = version;
+ sha256 = "1q4487s83iwwgd40hkihpns84ya8mg54zp63ag519cdjizz38xyi";
+ };
+
+ modSha256 = "0kj9s9ymd99a5w9r1d997qysnzlgpnmh5dnki33h1jlwz47nwkld";
+
+ patches = [ ./lscollection-Add-NixOS-paths-to-DefaultWallpaperDirectories.patch ];
+
+ postPatch = ''
+ # VersionString is sometimes not up-to-date:
+ sed -iE 's/VersionString = "[0-9].[0-9].[0-9]"/VersionString = "${version}"/' wallutils.go
+ '';
+
+ buildInputs = [ wayland libX11 xbitmaps libXcursor libXmu ];
+
+ meta = with lib; {
+ description = "Utilities for handling monitors, resolutions, and (timed) wallpapers";
+ inherit (src.meta) homepage;
+ license = licenses.mit;
+ maintainers = with maintainers; [ primeos ];
+ platforms = platforms.linux;
+ };
+}
diff --git a/pkgs/tools/graphics/wallutils/lscollection-Add-NixOS-paths-to-DefaultWallpaperDirectories.patch b/pkgs/tools/graphics/wallutils/lscollection-Add-NixOS-paths-to-DefaultWallpaperDirectories.patch
new file mode 100644
index 00000000000..00aeed6363e
--- /dev/null
+++ b/pkgs/tools/graphics/wallutils/lscollection-Add-NixOS-paths-to-DefaultWallpaperDirectories.patch
@@ -0,0 +1,25 @@
+From 9d064428cec970ced9be6753d6250b20a45a9fe2 Mon Sep 17 00:00:00 2001
+From: Michael Weiss
+Date: Fri, 19 Apr 2019 11:56:50 +0200
+Subject: [PATCH] lscollection: Add NixOS paths to DefaultWallpaperDirectories
+
+---
+ collections.go | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/collections.go b/collections.go
+index ef74ea6..9f9a608 100644
+--- a/collections.go
++++ b/collections.go
+@@ -21,7 +21,7 @@ const (
+ )
+
+ var (
+- DefaultWallpaperDirectories = []string{"/usr/share/pixmaps", "/usr/share/wallpapers", "/usr/share/backgrounds", "/usr/local/share/pixmaps", "/usr/local/share/wallpapers", "/usr/local/share/backgrounds", "/usr/share/archlinux"}
++ DefaultWallpaperDirectories = []string{"/run/current-system/sw/share/pixmaps", "/run/current-system/sw/share/wallpapers", "/run/current-system/sw/share/backgrounds", "/usr/share/pixmaps", "/usr/share/wallpapers", "/usr/share/backgrounds", "/usr/local/share/pixmaps", "/usr/local/share/wallpapers", "/usr/local/share/backgrounds", "/usr/share/archlinux"}
+ )
+
+ type SearchResults struct {
+--
+2.19.2
+
diff --git a/pkgs/tools/misc/fwup/default.nix b/pkgs/tools/misc/fwup/default.nix
index 4a95563b2ec..f5b4e4052b4 100644
--- a/pkgs/tools/misc/fwup/default.nix
+++ b/pkgs/tools/misc/fwup/default.nix
@@ -4,13 +4,13 @@
stdenv.mkDerivation rec {
name = "fwup-${version}";
- version = "1.2.7";
+ version = "1.3.0";
src = fetchFromGitHub {
owner = "fhunleth";
repo = "fwup";
rev = "v${version}";
- sha256 = "0r48l5jcb4pxb72ykigmaissm4ikadi7f6lkfma4jnd037w15bnl";
+ sha256 = "1npxps5kg5z9f52k3p62sxf4cvdrdddrggfpip0n0whm1dx9rjrx";
};
doCheck = true;
diff --git a/pkgs/tools/misc/lnav/default.nix b/pkgs/tools/misc/lnav/default.nix
index 85e4ecd3229..da7db422377 100644
--- a/pkgs/tools/misc/lnav/default.nix
+++ b/pkgs/tools/misc/lnav/default.nix
@@ -9,7 +9,7 @@ stdenv.mkDerivation rec {
owner = "tstack";
repo = "lnav";
rev = "v${meta.version}";
- sha256 = "0wzzny0sgrq1ga9qw9nr8ly4j3vy4agszma73902dsw2rwf17j6y";
+ sha256 = "0z8bsr0falxlkmd1b5gy871vyafyih0sw7lgg858lqnbsy0q2m4i";
inherit name;
};
@@ -43,7 +43,7 @@ stdenv.mkDerivation rec {
'';
downloadPage = "https://github.com/tstack/lnav/releases";
license = licenses.bsd2;
- version = "0.8.4";
+ version = "0.8.5";
maintainers = [ maintainers.dochang ];
platforms = platforms.unix;
};
diff --git a/pkgs/tools/misc/mimeo/default.nix b/pkgs/tools/misc/mimeo/default.nix
index 02637e4ea8f..03f9354445b 100644
--- a/pkgs/tools/misc/mimeo/default.nix
+++ b/pkgs/tools/misc/mimeo/default.nix
@@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
name = "mimeo-${version}";
- version = "2018.12";
+ version = "2019.3";
src = fetchurl {
url = "https://xyne.archlinux.ca/projects/mimeo/src/${name}.tar.xz";
- sha256 = "1bjhqwfi8rrf1m4fwwqvg0qzk035qcnxlmhh4kxrpm6rqhw48vk8";
+ sha256 = "1ry9f08584vngznbja76z53as12q2i06ncfnf52dxyidfgw5mx65";
};
buildInputs = [ file desktop-file-utils ];
diff --git a/pkgs/tools/networking/network-manager/applet.nix b/pkgs/tools/networking/network-manager/applet.nix
index 81dc7558d79..d9f9e6570ac 100644
--- a/pkgs/tools/networking/network-manager/applet.nix
+++ b/pkgs/tools/networking/network-manager/applet.nix
@@ -33,9 +33,14 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ meson ninja intltool pkgconfig wrapGAppsHook gobject-introspection python3 gtk-doc docbook_xsl docbook_xml_dtd_43 libxml2 ];
+ # Needed for wingpanel-indicator-network and switchboard-plug-network
+ patches = [ ./hardcode-gsettings.patch ];
+
postPatch = ''
chmod +x meson_post_install.py # patchShebangs requires executable file
patchShebangs meson_post_install.py
+
+ substituteInPlace src/wireless-security/eap-method.c --subst-var-by NM_APPLET_GSETTINGS $lib/share/gsettings-schemas/${name}/glib-2.0/schemas
'';
passthru = {
diff --git a/pkgs/tools/networking/network-manager/hardcode-gsettings.patch b/pkgs/tools/networking/network-manager/hardcode-gsettings.patch
new file mode 100644
index 00000000000..a480fd6d91e
--- /dev/null
+++ b/pkgs/tools/networking/network-manager/hardcode-gsettings.patch
@@ -0,0 +1,32 @@
+diff --git a/src/wireless-security/eap-method.c b/src/wireless-security/eap-method.c
+index 2e9daa23..6663b3ce 100644
+--- a/src/wireless-security/eap-method.c
++++ b/src/wireless-security/eap-method.c
+@@ -265,8 +265,11 @@ eap_method_ca_cert_ignore_get (EAPMethod *method, NMConnection *connection)
+ static GSettings *
+ _get_ca_ignore_settings (NMConnection *connection)
+ {
++ GSettingsSchemaSource *schema_source;
++ g_autoptr (GSettingsSchema) *schema;
+ GSettings *settings;
+- char *path = NULL;
++
++ g_autofree char *path = NULL;
+ const char *uuid;
+
+ g_return_val_if_fail (connection, NULL);
+@@ -274,9 +277,12 @@ _get_ca_ignore_settings (NMConnection *connection)
+ uuid = nm_connection_get_uuid (connection);
+ g_return_val_if_fail (uuid && *uuid, NULL);
+
++ schema_source = g_settings_schema_source_new_from_directory ("@NM_APPLET_GSETTINGS@", g_settings_schema_source_get_default (), TRUE, NULL);
++ schema = g_settings_schema_source_lookup (schema_source, "org.gnome.nm-applet.eap", FALSE);
++ g_settings_schema_source_unref (schema_source);
++
+ path = g_strdup_printf ("/org/gnome/nm-applet/eap/%s/", uuid);
+- settings = g_settings_new_with_path ("org.gnome.nm-applet.eap", path);
+- g_free (path);
++ settings = g_settings_new_full (schema, NULL, path);
+
+ return settings;
+ }
diff --git a/pkgs/tools/networking/xl2tpd/default.nix b/pkgs/tools/networking/xl2tpd/default.nix
index f3c1fbd853a..4b39594d84e 100644
--- a/pkgs/tools/networking/xl2tpd/default.nix
+++ b/pkgs/tools/networking/xl2tpd/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, libpcap, ppp }:
stdenv.mkDerivation rec {
- name = "xl2tpd-${version}";
- version = "1.3.13";
+ pname = "xl2tpd";
+ version = "1.3.14";
src = fetchFromGitHub {
owner = "xelerance";
repo = "xl2tpd";
rev = "v${version}";
- sha256 = "1nzkmhi9arwd4smhr07l0sssx46w48z0cblv7xcz25wg4hw86mcd";
+ sha256 = "1c2ahxz2zmmxwmk951d2qhijgz67zhwa1hn0r59fgz0y14w22myi";
};
buildInputs = [ libpcap ];
diff --git a/pkgs/tools/security/sops/default.nix b/pkgs/tools/security/sops/default.nix
index 2db2fddd9a2..4940ce8372d 100644
--- a/pkgs/tools/security/sops/default.nix
+++ b/pkgs/tools/security/sops/default.nix
@@ -1,16 +1,16 @@
{ stdenv, buildGoPackage, fetchFromGitHub }:
buildGoPackage rec {
- name = "sops-${version}";
- version = "3.2.0";
+ pname = "sops";
+ version = "3.3.0";
goPackagePath = "go.mozilla.org/sops";
src = fetchFromGitHub {
rev = version;
owner = "mozilla";
- repo = "sops";
- sha256 = "0lzwql3f4n70gmw1d0vnsg7hd0ma6ys0a4x54g3jk10nrn2f7wxl";
+ repo = pname;
+ sha256 = "0h02iy1dfn4874gyj3k07gbw8byb7rngvsi9kjglnad2pkf0pq2d";
};
meta = with stdenv.lib; {
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 8d6118bf097..7297a4ae9f6 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -697,6 +697,8 @@ in
cozy = callPackage ../applications/audio/cozy-audiobooks { };
+ crumbs = callPackage ../applications/misc/crumbs { };
+
deskew = callPackage ../applications/graphics/deskew { };
detect-secrets = python3Packages.callPackage ../development/tools/detect-secrets { };
@@ -915,6 +917,8 @@ in
bar = callPackage ../tools/system/bar {};
+ base16-shell-preview = callPackage ../misc/base16-shell-preview { };
+
base16-builder = callPackage ../misc/base16-builder { };
basex = callPackage ../tools/text/xml/basex { };
@@ -2557,6 +2561,8 @@ in
inherit (pythonPackages) sphinx;
};
+ wallutils = callPackage ../tools/graphics/wallutils { };
+
wl-clipboard = callPackage ../tools/misc/wl-clipboard { };
zabbix-cli = callPackage ../tools/misc/zabbix-cli { };
@@ -2571,7 +2577,7 @@ in
cholmod-extra = callPackage ../development/libraries/science/math/cholmod-extra { };
- emscriptenVersion = "1.37.36";
+ emscriptenVersion = "1.38.28";
emscripten = callPackage ../development/compilers/emscripten { };
@@ -7754,6 +7760,7 @@ in
cargo-asm = callPackage ../development/tools/rust/cargo-asm {
inherit (darwin.apple_sdk.frameworks) Security;
};
+ cargo-bloat = callPackage ../development/tools/rust/cargo-bloat { };
cargo-expand = callPackage ../development/tools/rust/cargo-expand { };
cargo-fuzz = callPackage ../development/tools/rust/cargo-fuzz { };
cargo-xbuild = callPackage ../development/tools/rust/cargo-xbuild { };
@@ -9008,6 +9015,8 @@ in
grail = callPackage ../development/libraries/grail { };
+ graphene-hardened-malloc = callPackage ../development/libraries/graphene-hardened-malloc { };
+
gtk-doc = callPackage ../development/tools/documentation/gtk-doc { };
gtkdialog = callPackage ../development/tools/misc/gtkdialog { };
@@ -9561,6 +9570,8 @@ in
aalib = callPackage ../development/libraries/aalib { };
+ abseil-cpp = callPackage ../development/libraries/abseil-cpp { };
+
accountsservice = callPackage ../development/libraries/accountsservice { };
acl = callPackage ../development/libraries/acl { };
@@ -21879,6 +21890,8 @@ in
ezminc = callPackage ../applications/science/biology/EZminc { };
+ exonerate = callPackage ../applications/science/biology/exonerate { };
+
hisat2 = callPackage ../applications/science/biology/hisat2 { };
htslib = callPackage ../development/libraries/science/biology/htslib { };
@@ -21945,6 +21958,8 @@ in
plink-ng = callPackage ../applications/science/biology/plink-ng { };
+ prodigal = callPackage ../applications/science/biology/prodigal { };
+
raxml = callPackage ../applications/science/biology/raxml { };
raxml-mpi = appendToName "mpi" (raxml.override {
@@ -22063,7 +22078,9 @@ in
nauty = callPackage ../applications/science/math/nauty {};
- or-tools = callPackage ../development/libraries/science/math/or-tools {};
+ or-tools = callPackage ../development/libraries/science/math/or-tools {
+ pythonProtobuf = pythonPackages.protobuf;
+ };
rubiks = callPackage ../development/libraries/science/math/rubiks { };
@@ -22155,6 +22172,8 @@ in
dafny = dotnetPackages.Dafny;
+ groove = callPackage ../applications/science/programming/groove { };
+
plm = callPackage ../applications/science/programming/plm { };
scyther = callPackage ../applications/science/programming/scyther { };
diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix
index 5c9e8f288a6..098b2652bf6 100644
--- a/pkgs/top-level/perl-packages.nix
+++ b/pkgs/top-level/perl-packages.nix
@@ -8187,7 +8187,7 @@ let
};
outputs = [ "out" ];
buildInputs = [ pkgs.apacheHttpd pkgs.apr pkgs.aprutil ApacheTest ExtUtilsXSBuilder ];
- propagatedBuildInputs = [ mod_perl2 ];
+ propagatedBuildInputs = [ (pkgs.apacheHttpdPackages.mod_perl.override { inherit perl; }) ];
makeMakerFlags = "--with-apache2-src=${pkgs.apacheHttpd.dev} --with-apache2-apxs=${pkgs.apacheHttpd.dev}/bin/apxs --with-apache2-httpd=${pkgs.apacheHttpd.out}/bin/httpd --with-apr-config=${pkgs.apr.dev}/bin/apr-1-config --with-apu-config=${pkgs.aprutil.dev}/bin/apu-1-config";
preConfigure = ''
# override broken prereq check
@@ -8198,11 +8198,30 @@ let
'';
installPhase = ''
mkdir $out
+
+ # install the library
make install DESTDIR=$out
cp -r $out/${pkgs.apacheHttpd.dev}/. $out/.
cp -r $out/$out/. $out/.
+
+ # install the perl module
+ pushd glue/perl
+ perl Makefile.PL
+ make install DESTDIR=$out
+ cp -r $out/${perl}/lib/perl5 $out/lib/
+ popd
+
+ # install the apache module
+ # https://computergod.typepad.com/home/2007/06/webgui_and_suse.html
+ # NOTE: if using the apache module you must use "apreq" as the module name, not "apreq2"
+ # services.httpd.extraModules = [ { name = "apreq"; path = "''${pkgs.perlPackages.libapreq2}/modules/mod_apreq2.so"; } ];
+ pushd module
+ make install DESTDIR=$out
+ cp -r $out/${pkgs.apacheHttpd.out}/modules $out/
+ popd
+
rm -r $out/nix
- '';
+ '';
doCheck = false; # test would need to start apache httpd
meta = {
license = stdenv.lib.licenses.asl20;
@@ -8461,6 +8480,20 @@ let
};
};
+ LinuxFD = buildPerlModule rec {
+ name = "Linux-FD-0.011";
+ src = fetchurl {
+ url = "mirror://cpan/authors/id/L/LE/LEONT/${name}.tar.gz";
+ sha256 = "6bb579d47644cb0ed35626ff77e909ae69063073c6ac09aa0614fef00fa37356";
+ };
+ buildInputs = [ ModuleBuild TestException ];
+ propagatedBuildInputs = [ SubExporter ];
+ meta = {
+ description = "Linux specific special filehandles";
+ license = with stdenv.lib.licenses; [ artistic1 gpl1Plus ];
+ };
+ };
+
LinuxInotify2 = buildPerlPackage rec {
name = "Linux-Inotify2-2.1";
src = fetchurl {
diff --git a/pkgs/top-level/php-packages.nix b/pkgs/top-level/php-packages.nix
index c2a268b8bfe..9afb7df820f 100644
--- a/pkgs/top-level/php-packages.nix
+++ b/pkgs/top-level/php-packages.nix
@@ -114,33 +114,14 @@ let
buildInputs = [ (if isPhp73 then pkgs.pcre2 else pkgs.pcre) ];
};
- memcached = if isPhp73 then memcached73 else memcached7;
-
- memcached7 = assert !isPhp73; buildPecl rec {
- name = "memcached-php7";
+ memcached = buildPecl rec {
+ version = "3.1.3";
+ name = "memcached-${version}";
src = fetchgit {
url = "https://github.com/php-memcached-dev/php-memcached";
- rev = "e573a6e8fc815f12153d2afd561fc84f74811e2f";
- sha256 = "0asfi6rsspbwbxhwmkxxnapd8w01xvfmwr1n9qsr2pryfk0w6y07";
- };
-
- configureFlags = [
- "--with-zlib-dir=${pkgs.zlib.dev}"
- "--with-libmemcached-dir=${pkgs.libmemcached}"
- ];
-
- nativeBuildInputs = [ pkgs.pkgconfig ];
- buildInputs = with pkgs; [ cyrus_sasl zlib ];
- };
-
- memcached73 = assert isPhp73; buildPecl rec {
- name = "memcached-php73";
-
- src = fetchgit {
- url = "https://github.com/php-memcached-dev/php-memcached";
- rev = "6d8f5d524f35e72422b9e81319b96f23af02adcc";
- sha256 = "1s1d5r3n2h9zys8sqvv52fld6jy21ki7cl0gbbvd9dixqc0lf1jh";
+ rev = "v${version}";
+ sha256 = "1w9g8k7bmq3nbzskskpsr5632gh9q75nqy7nkjdzgs17klq9khjk";
};
configureFlags = [
@@ -177,21 +158,11 @@ let
buildInputs = [ pkgs.unixODBC ];
};
- xdebug = if isPhp73 then xdebug73 else xdebug7;
+ xdebug = buildPecl rec {
+ version = "2.7.1";
+ name = "xdebug-${version}";
- xdebug7 = assert !isPhp73; buildPecl {
- name = "xdebug-2.6.1";
-
- sha256 = "0xxxy6n4lv7ghi9liqx133yskg07lw316vhcds43n1sjq3b93rns";
-
- doCheck = true;
- checkTarget = "test";
- };
-
- xdebug73 = assert isPhp73; buildPecl {
- name = "xdebug-2.7.0beta1";
-
- sha256 = "1ghh14z55l4jklinkgjkfhkw53lp2r7lgmyh7q8kdnf7jnpwx84h";
+ sha256 = "1hr4gy87a3gp682ggwp831xk1fxasil9wan8cxv23q3m752x3sdp";
doCheck = true;
checkTarget = "test";
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 1572eb7f654..592ff04178a 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -555,6 +555,11 @@ in {
ordered-set = callPackage ../development/python-modules/ordered-set { };
+ ortools = (toPythonModule (pkgs.or-tools.override {
+ inherit (self) python;
+ pythonProtobuf = self.protobuf;
+ })).python;
+
osmnx = callPackage ../development/python-modules/osmnx { };
outcome = callPackage ../development/python-modules/outcome {};
@@ -585,10 +590,14 @@ in {
poetry = callPackage ../development/python-modules/poetry { };
+ pplpy = callPackage ../development/python-modules/pplpy { };
+
pprintpp = callPackage ../development/python-modules/pprintpp { };
progress = callPackage ../development/python-modules/progress { };
+ proglog = callPackage ../development/python-modules/proglog { };
+
pure-python-adb-homeassistant = callPackage ../development/python-modules/pure-python-adb-homeassistant { };
pymysql = callPackage ../development/python-modules/pymysql { };