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 { };