diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 4daf488bb28..c4a5bb0612c 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -328,7 +328,7 @@ when building the bindings and are therefore added as `buildInputs`. meta = { description = "Pythonic binding for the libxml2 and libxslt libraries"; - homepage = http://lxml.de; + homepage = https://lxml.de; license = licenses.bsd3; maintainers = with maintainers; [ sjourdois ]; }; diff --git a/lib/kernel.nix b/lib/kernel.nix new file mode 100644 index 00000000000..45b33aea7b8 --- /dev/null +++ b/lib/kernel.nix @@ -0,0 +1,57 @@ +{ lib +# we pass the kernel version here to keep a nice syntax `whenOlder "4.13"` +# kernelVersion, e.g., config.boot.kernelPackages.version +, version +, mkValuePreprocess ? null +}: + +with lib; +rec { + # Common patterns + when = cond: opt: if cond then opt else null; + whenAtLeast = ver: when (versionAtLeast version ver); + whenOlder = ver: when (versionOlder version ver); + whenBetween = verLow: verHigh: when (versionAtLeast version verLow && versionOlder version verHigh); + + # Keeping these around in case we decide to change this horrible implementation :) + option = x: if x == null then null else "?${x}"; + yes = "y"; + no = "n"; + module = "m"; + + mkValue = val: + let + isNumber = c: elem c ["0" "1" "2" "3" "4" "5" "6" "7" "8" "9"]; + in + if val == "" then "\"\"" + else if val == yes || val == module || val == no then val + else if all isNumber (stringToCharacters val) then val + else if substring 0 2 val == "0x" then val + else val; # FIXME: fix quoting one day + + + # generate nix intermediate kernel config file of the form + # + # VIRTIO_MMIO m + # VIRTIO_BLK y + # VIRTIO_CONSOLE n + # NET_9P_VIRTIO? y + # + # Use mkValuePreprocess to preprocess option values, aka mark 'modules' as + # 'yes' or vice-versa + # Borrowed from copumpkin https://github.com/NixOS/nixpkgs/pull/12158 + # returns a string, expr should be an attribute set + generateNixKConf = exprs: mkValuePreprocess: + let + mkConfigLine = key: rawval: + let + val = if builtins.isFunction mkValuePreprocess then mkValuePreprocess rawval else rawval; + in + if val == null + then "" + else if hasPrefix "?" val + then "${key}? ${mkValue (removePrefix "?" val)}\n" + else "${key} ${mkValue val}\n"; + mkConf = cfg: concatStrings (mapAttrsToList mkConfigLine cfg); + in mkConf exprs; +} diff --git a/nixos/doc/manual/administration/imperative-containers.xml b/nixos/doc/manual/administration/imperative-containers.xml index 9cc7ca3e672..9bb62bc2ece 100644 --- a/nixos/doc/manual/administration/imperative-containers.xml +++ b/nixos/doc/manual/administration/imperative-containers.xml @@ -27,7 +27,7 @@ # nixos-container create foo --config ' = true; - users.extraUsers.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"]; + users.users.root.openssh.authorizedKeys.keys = ["ssh-dss AAAAB3N…"]; ' diff --git a/nixos/doc/manual/configuration/network-manager.xml b/nixos/doc/manual/configuration/network-manager.xml index e217a99148b..d103ee24978 100644 --- a/nixos/doc/manual/configuration/network-manager.xml +++ b/nixos/doc/manual/configuration/network-manager.xml @@ -19,7 +19,7 @@ All users that should have permission to change network settings must belong to the networkmanager group: -users.extraUsers.youruser.extraGroups = [ "networkmanager" ]; +users.users.alice.extraGroups = [ "networkmanager" ]; diff --git a/nixos/doc/manual/configuration/ssh.xml b/nixos/doc/manual/configuration/ssh.xml index 6e883e3fbbc..a4af1b96583 100644 --- a/nixos/doc/manual/configuration/ssh.xml +++ b/nixos/doc/manual/configuration/ssh.xml @@ -20,7 +20,7 @@ follows: -users.extraUsers.alice.openssh.authorizedKeys.keys = +users.users.alice.openssh.authorizedKeys.keys = [ "ssh-dss AAAAB3NzaC1kc3MAAACBAPIkGWVEt4..." ]; diff --git a/nixos/doc/manual/installation/changing-config.xml b/nixos/doc/manual/installation/changing-config.xml index 680160a3cb7..1a116ec0b65 100644 --- a/nixos/doc/manual/installation/changing-config.xml +++ b/nixos/doc/manual/installation/changing-config.xml @@ -66,7 +66,7 @@ $ ./result/bin/run-*-vm mutableUsers = false. Another way is to temporarily add the following to your configuration: -users.extraUsers.your-user.initialHashedPassword = "test"; +users.users.your-user.initialHashedPassword = "test"; Important: delete the $hostname.qcow2 file if you have started the virtual machine at least once without the right users, otherwise diff --git a/nixos/doc/manual/installation/installing-from-other-distro.xml b/nixos/doc/manual/installation/installing-from-other-distro.xml index c55aa90267f..d1e49a2a159 100644 --- a/nixos/doc/manual/installation/installing-from-other-distro.xml +++ b/nixos/doc/manual/installation/installing-from-other-distro.xml @@ -211,7 +211,7 @@ $ sudo groupdel nixbld use sudo) -users.extraUsers.root.initialHashedPassword = ""; +users.users.root.initialHashedPassword = ""; diff --git a/nixos/doc/manual/release-notes/rl-1809.xml b/nixos/doc/manual/release-notes/rl-1809.xml index 667437a2413..51e77d24a74 100644 --- a/nixos/doc/manual/release-notes/rl-1809.xml +++ b/nixos/doc/manual/release-notes/rl-1809.xml @@ -330,6 +330,11 @@ inherit (pkgs.nixos { will be added to environment.systemPackages. + + + The module now uses WPA2 by default. + + diff --git a/nixos/modules/misc/ids.nix b/nixos/modules/misc/ids.nix index 73231edf077..aac86087f9e 100644 --- a/nixos/modules/misc/ids.nix +++ b/nixos/modules/misc/ids.nix @@ -317,6 +317,10 @@ restic = 291; openvpn = 292; meguca = 293; + yarn = 294; + hdfs = 295; + mapred = 296; + hadoop = 297; # When adding a uid, make sure it doesn't match an existing gid. And don't use uids above 399! @@ -594,6 +598,10 @@ restic = 291; openvpn = 292; meguca = 293; + yarn = 294; + hdfs = 295; + mapred = 296; + hadoop = 297; # When adding a gid, make sure it doesn't match an existing # uid. Users and groups with the same name should have equal diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index ea996acebb2..c70d52c94cd 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -178,6 +178,7 @@ ./services/backup/rsnapshot.nix ./services/backup/tarsnap.nix ./services/backup/znapzend.nix + ./services/cluster/hadoop/default.nix ./services/cluster/kubernetes/default.nix ./services/cluster/kubernetes/dns.nix ./services/cluster/kubernetes/dashboard.nix diff --git a/nixos/modules/services/cluster/hadoop/conf.nix b/nixos/modules/services/cluster/hadoop/conf.nix new file mode 100644 index 00000000000..38db10406b9 --- /dev/null +++ b/nixos/modules/services/cluster/hadoop/conf.nix @@ -0,0 +1,31 @@ +{ hadoop, pkgs }: +let + propertyXml = name: value: '' + + ${name} + ${builtins.toString value} + + ''; + siteXml = fileName: properties: pkgs.writeTextDir fileName '' + + + + ${builtins.concatStringsSep "\n" (pkgs.lib.mapAttrsToList propertyXml properties)} + + ''; + userFunctions = '' + hadoop_verify_logdir() { + echo Skipping verification of log directory + } + ''; +in +pkgs.buildEnv { + name = "hadoop-conf"; + paths = [ + (siteXml "core-site.xml" hadoop.coreSite) + (siteXml "hdfs-site.xml" hadoop.hdfsSite) + (siteXml "mapred-site.xml" hadoop.mapredSite) + (siteXml "yarn-site.xml" hadoop.yarnSite) + (pkgs.writeTextDir "hadoop-user-functions.sh" userFunctions) + ]; +} diff --git a/nixos/modules/services/cluster/hadoop/default.nix b/nixos/modules/services/cluster/hadoop/default.nix new file mode 100644 index 00000000000..53c13fd0603 --- /dev/null +++ b/nixos/modules/services/cluster/hadoop/default.nix @@ -0,0 +1,63 @@ +{ config, lib, pkgs, ...}: +let + cfg = config.services.hadoop; + hadoopConf = import ./conf.nix { hadoop = cfg; pkgs = pkgs; }; +in +with lib; +{ + imports = [ ./yarn.nix ./hdfs.nix ]; + + options.services.hadoop = { + coreSite = mkOption { + default = {}; + example = { + "fs.defaultFS" = "hdfs://localhost"; + }; + description = "Hadoop core-site.xml definition"; + }; + + hdfsSite = mkOption { + default = {}; + example = { + "dfs.nameservices" = "namenode1"; + }; + description = "Hadoop hdfs-site.xml definition"; + }; + + mapredSite = mkOption { + default = {}; + example = { + "mapreduce.map.cpu.vcores" = "1"; + }; + description = "Hadoop mapred-site.xml definition"; + }; + + yarnSite = mkOption { + default = {}; + example = { + "yarn.resourcemanager.ha.id" = "resourcemanager1"; + }; + description = "Hadoop yarn-site.xml definition"; + }; + + package = mkOption { + type = types.package; + default = pkgs.hadoop; + defaultText = "pkgs.hadoop"; + example = literalExample "pkgs.hadoop"; + description = '' + ''; + }; + }; + + + config = mkMerge [ + (mkIf (builtins.hasAttr "yarn" config.users.extraUsers || + builtins.hasAttr "hdfs" config.users.extraUsers ) { + users.extraGroups.hadoop = { + gid = config.ids.gids.hadoop; + }; + }) + + ]; +} diff --git a/nixos/modules/services/cluster/hadoop/hdfs.nix b/nixos/modules/services/cluster/hadoop/hdfs.nix new file mode 100644 index 00000000000..48020e6139c --- /dev/null +++ b/nixos/modules/services/cluster/hadoop/hdfs.nix @@ -0,0 +1,73 @@ +{ config, lib, pkgs, ...}: +let + cfg = config.services.hadoop; + hadoopConf = import ./conf.nix { hadoop = cfg; pkgs = pkgs; }; +in +with lib; +{ + options.services.hadoop.hdfs = { + namenode.enabled = mkOption { + type = types.bool; + default = false; + description = '' + Whether to run the Hadoop YARN NameNode + ''; + }; + datanode.enabled = mkOption { + type = types.bool; + default = false; + description = '' + Whether to run the Hadoop YARN DataNode + ''; + }; + }; + + config = mkMerge [ + (mkIf cfg.hdfs.namenode.enabled { + systemd.services."hdfs-namenode" = { + description = "Hadoop HDFS NameNode"; + wantedBy = [ "multi-user.target" ]; + + environment = { + HADOOP_HOME = "${cfg.package}"; + }; + + preStart = '' + ${cfg.package}/bin/hdfs --config ${hadoopConf} namenode -format -nonInteractive || true + ''; + + serviceConfig = { + User = "hdfs"; + SyslogIdentifier = "hdfs-namenode"; + ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} namenode"; + }; + }; + }) + (mkIf cfg.hdfs.datanode.enabled { + systemd.services."hdfs-datanode" = { + description = "Hadoop HDFS DataNode"; + wantedBy = [ "multi-user.target" ]; + + environment = { + HADOOP_HOME = "${cfg.package}"; + }; + + serviceConfig = { + User = "hdfs"; + SyslogIdentifier = "hdfs-datanode"; + ExecStart = "${cfg.package}/bin/hdfs --config ${hadoopConf} datanode"; + }; + }; + }) + (mkIf ( + cfg.hdfs.namenode.enabled || cfg.hdfs.datanode.enabled + ) { + users.extraUsers.hdfs = { + description = "Hadoop HDFS user"; + group = "hadoop"; + uid = config.ids.uids.hdfs; + }; + }) + + ]; +} diff --git a/nixos/modules/services/cluster/hadoop/yarn.nix b/nixos/modules/services/cluster/hadoop/yarn.nix new file mode 100644 index 00000000000..ce5b04a331c --- /dev/null +++ b/nixos/modules/services/cluster/hadoop/yarn.nix @@ -0,0 +1,74 @@ +{ config, lib, pkgs, ...}: +let + cfg = config.services.hadoop; + hadoopConf = import ./conf.nix { hadoop = cfg; pkgs = pkgs; }; +in +with lib; +{ + options.services.hadoop.yarn = { + resourcemanager.enabled = mkOption { + type = types.bool; + default = false; + description = '' + Whether to run the Hadoop YARN ResourceManager + ''; + }; + nodemanager.enabled = mkOption { + type = types.bool; + default = false; + description = '' + Whether to run the Hadoop YARN NodeManager + ''; + }; + }; + + config = mkMerge [ + (mkIf ( + cfg.yarn.resourcemanager.enabled || cfg.yarn.nodemanager.enabled + ) { + + users.extraUsers.yarn = { + description = "Hadoop YARN user"; + group = "hadoop"; + uid = config.ids.uids.yarn; + }; + }) + + (mkIf cfg.yarn.resourcemanager.enabled { + systemd.services."yarn-resourcemanager" = { + description = "Hadoop YARN ResourceManager"; + wantedBy = [ "multi-user.target" ]; + + environment = { + HADOOP_HOME = "${cfg.package}"; + }; + + serviceConfig = { + User = "yarn"; + SyslogIdentifier = "yarn-resourcemanager"; + ExecStart = "${cfg.package}/bin/yarn --config ${hadoopConf} " + + " resourcemanager"; + }; + }; + }) + + (mkIf cfg.yarn.nodemanager.enabled { + systemd.services."yarn-nodemanager" = { + description = "Hadoop YARN NodeManager"; + wantedBy = [ "multi-user.target" ]; + + environment = { + HADOOP_HOME = "${cfg.package}"; + }; + + serviceConfig = { + User = "yarn"; + SyslogIdentifier = "yarn-nodemanager"; + ExecStart = "${cfg.package}/bin/yarn --config ${hadoopConf} " + + " nodemanager"; + }; + }; + }) + + ]; +} diff --git a/nixos/modules/services/hardware/fwupd.nix b/nixos/modules/services/hardware/fwupd.nix index d8abde2a600..d97d690920a 100644 --- a/nixos/modules/services/hardware/fwupd.nix +++ b/nixos/modules/services/hardware/fwupd.nix @@ -85,6 +85,6 @@ in { }; meta = { - maintainers = pkgs.fwupd.maintainers; + maintainers = pkgs.fwupd.meta.maintainers; }; } diff --git a/nixos/modules/services/network-filesystems/openafs/client.nix b/nixos/modules/services/network-filesystems/openafs/client.nix index 3826fe3edfd..52c0966e05b 100644 --- a/nixos/modules/services/network-filesystems/openafs/client.nix +++ b/nixos/modules/services/network-filesystems/openafs/client.nix @@ -1,6 +1,7 @@ -{ config, pkgs, lib, ... }: +{ config, lib, pkgs, ... }: -with import ./lib.nix { inherit lib; }; +# openafsMod, openafsBin, mkCellServDB +with import ./lib.nix { inherit config lib pkgs; }; let inherit (lib) getBin mkOption mkIf optionalString singleton types; @@ -8,8 +9,8 @@ let cfg = config.services.openafsClient; cellServDB = pkgs.fetchurl { - url = http://dl.central.org/dl/cellservdb/CellServDB.2017-03-14; - sha256 = "1197z6c5xrijgf66rhaymnm5cvyg2yiy1i20y4ah4mrzmjx0m7sc"; + url = http://dl.central.org/dl/cellservdb/CellServDB.2018-05-14; + sha256 = "1wmjn6mmyy2r8p10nlbdzs4nrqxy8a9pjyrdciy5nmppg4053rk2"; }; clientServDB = pkgs.writeText "client-cellServDB-${cfg.cellName}" (mkCellServDB cfg.cellName cfg.cellServDB); @@ -21,8 +22,6 @@ let echo "${cfg.mountPoint}:${cfg.cache.directory}:${toString cfg.cache.blocks}" > $out/cacheinfo ''; - openafsMod = config.boot.kernelPackages.openafs; - openafsBin = lib.getBin pkgs.openafs; in { ###### interface @@ -147,6 +146,19 @@ in ''; }; + packages = { + module = mkOption { + default = config.boot.kernelPackages.openafs; + type = types.package; + description = "OpenAFS kernel module package. MUST match the userland package!"; + }; + programs = mkOption { + default = getBin pkgs.openafs; + type = types.package; + description = "OpenAFS programs package. MUST match the kernel module package!"; + }; + }; + sparse = mkOption { default = true; type = types.bool; @@ -180,7 +192,7 @@ in } ]; - environment.systemPackages = [ pkgs.openafs ]; + environment.systemPackages = [ openafsBin ]; environment.etc = { clientCellServDB = { diff --git a/nixos/modules/services/network-filesystems/openafs/lib.nix b/nixos/modules/services/network-filesystems/openafs/lib.nix index ecfc72d2eaf..255740ac65e 100644 --- a/nixos/modules/services/network-filesystems/openafs/lib.nix +++ b/nixos/modules/services/network-filesystems/openafs/lib.nix @@ -1,14 +1,15 @@ -{ lib, ...}: +{ config, lib, pkgs, ...}: let - inherit (lib) concatStringsSep mkOption types; + inherit (lib) concatStringsSep getBin mkOption types; in rec { mkCellServDB = cellName: db: '' >${cellName} '' + (concatStringsSep "\n" (map (dbm: if (dbm.ip != "" && dbm.dnsname != "") then dbm.ip + " #" + dbm.dnsname else "") - db)); + db)) + + "\n"; # CellServDB configuration type cellServDBConfig = { @@ -25,4 +26,8 @@ in rec { description = "DNS full-qualified domain name of a database server"; }; }; + + openafsMod = config.services.openafsClient.packages.module; + openafsBin = config.services.openafsClient.packages.programs; + openafsSrv = config.services.openafsServer.package; } diff --git a/nixos/modules/services/network-filesystems/openafs/server.nix b/nixos/modules/services/network-filesystems/openafs/server.nix index 429eb945ac9..aa8640fd240 100644 --- a/nixos/modules/services/network-filesystems/openafs/server.nix +++ b/nixos/modules/services/network-filesystems/openafs/server.nix @@ -1,6 +1,7 @@ -{ config, pkgs, lib, ... }: +{ config, lib, pkgs, ... }: -with import ./lib.nix { inherit lib; }; +# openafsBin, openafsSrv, mkCellServDB +with import ./lib.nix { inherit config lib pkgs; }; let inherit (lib) concatStringsSep intersperse mapAttrsToList mkForce mkIf mkMerge mkOption optionalString types; @@ -11,21 +12,21 @@ let checkbintime 3 0 5 0 0 '' + (optionalString cfg.roles.database.enable '' bnode simple vlserver 1 - parm ${openafsBin}/libexec/openafs/vlserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.vlserverArgs} + parm ${openafsSrv}/libexec/openafs/vlserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.vlserverArgs} end bnode simple ptserver 1 - parm ${openafsBin}/libexec/openafs/ptserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.ptserverArgs} + parm ${openafsSrv}/libexec/openafs/ptserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} ${cfg.roles.database.ptserverArgs} end '') + (optionalString cfg.roles.fileserver.enable '' bnode dafs dafs 1 - parm ${openafsBin}/libexec/openafs/dafileserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.fileserverArgs} - parm ${openafsBin}/libexec/openafs/davolserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.volserverArgs} - parm ${openafsBin}/libexec/openafs/salvageserver ${cfg.roles.fileserver.salvageserverArgs} - parm ${openafsBin}/libexec/openafs/dasalvager ${cfg.roles.fileserver.salvagerArgs} + parm ${openafsSrv}/libexec/openafs/dafileserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.fileserverArgs} + parm ${openafsSrv}/libexec/openafs/davolserver ${optionalString cfg.dottedPrincipals "-allow-dotted-principals"} -udpsize ${udpSizeStr} ${cfg.roles.fileserver.volserverArgs} + parm ${openafsSrv}/libexec/openafs/salvageserver ${cfg.roles.fileserver.salvageserverArgs} + parm ${openafsSrv}/libexec/openafs/dasalvager ${cfg.roles.fileserver.salvagerArgs} end '') + (optionalString (cfg.roles.database.enable && cfg.roles.backup.enable) '' bnode simple buserver 1 - parm ${openafsBin}/libexec/openafs/buserver ${cfg.roles.backup.buserverArgs} ${optionalString (cfg.roles.backup.cellServDB != []) "-cellservdb /etc/openafs/backup/"} + parm ${openafsSrv}/libexec/openafs/buserver ${cfg.roles.backup.buserverArgs} ${optionalString (cfg.roles.backup.cellServDB != []) "-cellservdb /etc/openafs/backup/"} end '')); @@ -39,8 +40,6 @@ let udpSizeStr = toString cfg.udpPacketSize; - openafsBin = lib.getBin pkgs.openafs; - in { options = { @@ -79,6 +78,12 @@ in { description = "Definition of all cell-local database server machines."; }; + package = mkOption { + default = pkgs.openafs.server or pkgs.openafs; + type = types.package; + description = "OpenAFS package for the server binaries"; + }; + roles = { fileserver = { enable = mkOption { @@ -213,7 +218,7 @@ in { } ]; - environment.systemPackages = [ pkgs.openafs ]; + environment.systemPackages = [ openafsBin ]; environment.etc = { bosConfig = { @@ -244,7 +249,10 @@ in { after = [ "syslog.target" "network.target" ]; wantedBy = [ "multi-user.target" ]; restartIfChanged = false; - unitConfig.ConditionPathExists = [ "/etc/openafs/server/rxkad.keytab" ]; + unitConfig.ConditionPathExists = [ + "|/etc/openafs/server/rxkad.keytab" + "|/etc/openafs/server/KeyFileExt" + ]; preStart = '' mkdir -m 0755 -p /var/openafs ${optionalString (netInfo != null) "cp ${netInfo} /var/openafs/netInfo"} diff --git a/nixos/modules/services/networking/hostapd.nix b/nixos/modules/services/networking/hostapd.nix index 63f56437d1c..3af0441a89d 100644 --- a/nixos/modules/services/networking/hostapd.nix +++ b/nixos/modules/services/networking/hostapd.nix @@ -29,7 +29,7 @@ let ctrl_interface_group=${cfg.group} ${if cfg.wpa then '' - wpa=1 + wpa=2 wpa_passphrase=${cfg.wpaPassphrase} '' else ""} diff --git a/nixos/modules/services/networking/iwd.nix b/nixos/modules/services/networking/iwd.nix index 344212ad832..cfc536fc5b5 100644 --- a/nixos/modules/services/networking/iwd.nix +++ b/nixos/modules/services/networking/iwd.nix @@ -28,6 +28,10 @@ in { serviceConfig.ExecStart = "${pkgs.iwd}/libexec/iwd"; }; + + systemd.tmpfiles.rules = [ + "d /var/lib/iwd 0700 root root -" + ]; }; meta.maintainers = with lib.maintainers; [ mic92 ]; diff --git a/nixos/release.nix b/nixos/release.nix index 0d3ae997469..67820149437 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -299,6 +299,8 @@ in rec { tests.gnome3-gdm = callTest tests/gnome3-gdm.nix {}; tests.grafana = callTest tests/grafana.nix {}; tests.graphite = callTest tests/graphite.nix {}; + tests.hadoop.hdfs = callTestOnMatchingSystems [ "x86_64-linux" ] tests/hadoop/hdfs.nix {}; + tests.hadoop.yarn = callTestOnMatchingSystems [ "x86_64-linux" ] tests/hadoop/yarn.nix {}; tests.hardened = callTest tests/hardened.nix { }; tests.haproxy = callTest tests/haproxy.nix {}; tests.hibernate = callTest tests/hibernate.nix {}; diff --git a/nixos/tests/common/letsencrypt.nix b/nixos/tests/common/letsencrypt.nix index 7c6b3b29e36..2c86fe8d68b 100644 --- a/nixos/tests/common/letsencrypt.nix +++ b/nixos/tests/common/letsencrypt.nix @@ -193,6 +193,7 @@ let snakeOilCa = pkgs.runCommand "snakeoil-ca" { buildInputs = [ pkgs.openssl ]; + allowSubstitutes = false; } '' mkdir "$out" openssl req -newkey rsa:4096 -x509 -sha256 -days 36500 \ @@ -215,6 +216,7 @@ let ''; in pkgs.runCommand "snakeoil-certs-${fqdn}" { buildInputs = [ pkgs.openssl ]; + allowSubstitutes = false; } '' mkdir "$out" openssl genrsa -out "$out/snakeoil.key" 4096 diff --git a/nixos/tests/hadoop/hdfs.nix b/nixos/tests/hadoop/hdfs.nix new file mode 100644 index 00000000000..4206c940c1a --- /dev/null +++ b/nixos/tests/hadoop/hdfs.nix @@ -0,0 +1,54 @@ +import ../make-test.nix ({pkgs, ...}: { + nodes = { + namenode = {pkgs, config, ...}: { + services.hadoop = { + package = pkgs.hadoop_3_1; + hdfs.namenode.enabled = true; + coreSite = { + "fs.defaultFS" = "hdfs://namenode:8020"; + }; + hdfsSite = { + "dfs.replication" = 1; + "dfs.namenode.rpc-bind-host" = "0.0.0.0"; + "dfs.namenode.http-bind-host" = "0.0.0.0"; + }; + }; + networking.firewall.allowedTCPPorts = [ + 9870 # namenode.http-address + 8020 # namenode.rpc-address + ]; + }; + datanode = {pkgs, config, ...}: { + services.hadoop = { + package = pkgs.hadoop_3_1; + hdfs.datanode.enabled = true; + coreSite = { + "fs.defaultFS" = "hdfs://namenode:8020"; + }; + }; + networking.firewall.allowedTCPPorts = [ + 9864 # datanode.http.address + 9866 # datanode.address + 9867 # datanode.ipc.address + ]; + }; + }; + + testScript = '' + startAll + + $namenode->waitForUnit("hdfs-namenode"); + $namenode->waitForUnit("network.target"); + $namenode->waitForOpenPort(8020); + $namenode->waitForOpenPort(9870); + + $datanode->waitForUnit("hdfs-datanode"); + $datanode->waitForUnit("network.target"); + $datanode->waitForOpenPort(9864); + $datanode->waitForOpenPort(9866); + $datanode->waitForOpenPort(9867); + + $namenode->succeed("curl http://namenode:9870"); + $datanode->succeed("curl http://datanode:9864"); + ''; +}) diff --git a/nixos/tests/hadoop/yarn.nix b/nixos/tests/hadoop/yarn.nix new file mode 100644 index 00000000000..e97cc1acc90 --- /dev/null +++ b/nixos/tests/hadoop/yarn.nix @@ -0,0 +1,46 @@ +import ../make-test.nix ({pkgs, ...}: { + nodes = { + resourcemanager = {pkgs, config, ...}: { + services.hadoop.package = pkgs.hadoop_3_1; + services.hadoop.yarn.resourcemanager.enabled = true; + services.hadoop.yarnSite = { + "yarn.resourcemanager.scheduler.class" = "org.apache.hadoop.yarn.server.resourcemanager.scheduler.fifo.FifoScheduler"; + }; + networking.firewall.allowedTCPPorts = [ + 8088 # resourcemanager.webapp.address + 8031 # resourcemanager.resource-tracker.address + ]; + }; + nodemanager = {pkgs, config, ...}: { + services.hadoop.package = pkgs.hadoop_3_1; + services.hadoop.yarn.nodemanager.enabled = true; + services.hadoop.yarnSite = { + "yarn.resourcemanager.hostname" = "resourcemanager"; + "yarn.nodemanager.log-dirs" = "/tmp/userlogs"; + "yarn.nodemanager.address" = "0.0.0.0:8041"; + }; + networking.firewall.allowedTCPPorts = [ + 8042 # nodemanager.webapp.address + 8041 # nodemanager.address + ]; + }; + + }; + + testScript = '' + startAll; + + $resourcemanager->waitForUnit("yarn-resourcemanager"); + $resourcemanager->waitForUnit("network.target"); + $resourcemanager->waitForOpenPort(8031); + $resourcemanager->waitForOpenPort(8088); + + $nodemanager->waitForUnit("yarn-nodemanager"); + $nodemanager->waitForUnit("network.target"); + $nodemanager->waitForOpenPort(8042); + $nodemanager->waitForOpenPort(8041); + + $resourcemanager->succeed("curl http://localhost:8088"); + $nodemanager->succeed("curl http://localhost:8042"); + ''; +}) diff --git a/pkgs/applications/altcoins/nano-wallet/default.nix b/pkgs/applications/altcoins/nano-wallet/default.nix index 8c4722bd991..a14a40e9cc7 100644 --- a/pkgs/applications/altcoins/nano-wallet/default.nix +++ b/pkgs/applications/altcoins/nano-wallet/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "nano-wallet-${version}"; - version = "12.1"; + version = "14.2"; src = fetchFromGitHub { owner = "nanocurrency"; repo = "raiblocks"; rev = "V${version}"; - sha256 = "10ng7qn6y31s2bjahmpivw2plx90ljjjzb87j3l7zmppsjd2iq03"; + sha256 = "0jbv5a8sz403a1pqcgl32idk6y0z510h7ikjg1dcxla0rsch6ipl"; fetchSubmodules = true; }; diff --git a/pkgs/applications/altcoins/parity/default.nix b/pkgs/applications/altcoins/parity/default.nix index 707889b23ee..4ee13665d1b 100644 --- a/pkgs/applications/altcoins/parity/default.nix +++ b/pkgs/applications/altcoins/parity/default.nix @@ -1,7 +1,7 @@ let - version = "1.10.7"; - sha256 = "0syhvr4n9zyxhx20xln7sf70ljzj6ab36xjz4710ivnwwz2pjajf"; - cargoSha256 = "0zwk8xv71s7xkwvssh27772qfb23yhq5jlcny617qik6bwpcdh6b"; + version = "1.10.8"; + sha256 = "0q6blsbxn48afqf3cmxvmdlyzvf0cpqcymsjbsk8nyx0zxzf1dpk"; + cargoSha256 = "0rzhabyhprmcg0cdmibbb8zgqf6z4izsdq8m060mppkkv675x0lf"; patches = [ ./patches/vendored-sources-1.10.patch ]; in import ./parity.nix { inherit version sha256 cargoSha256 patches; } diff --git a/pkgs/applications/audio/sidplayfp/default.nix b/pkgs/applications/audio/sidplayfp/default.nix new file mode 100644 index 00000000000..2495759593c --- /dev/null +++ b/pkgs/applications/audio/sidplayfp/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl, pkgconfig, libsidplayfp }: + +stdenv.mkDerivation rec { + version = "1.4.3"; + name = "sidplayfp-${version}"; + + src = fetchurl { + url = "mirror://sourceforge/sidplay-residfp/sidplayfp/1.4/${name}.tar.gz"; + sha256 = "04gqhxs4w0riabp1svgcs6gsxdmbfmrs4kaqr5lifvxjvv03vzsn"; + }; + + nativeBuildInputs = [ pkgconfig ]; + buildInputs = [ libsidplayfp ]; + + meta = with stdenv.lib; { + description = "A SID player using libsidplayfp"; + homepage = https://sourceforge.net/projects/sidplay-residfp/; + license = with licenses; [ gpl2Plus ]; + maintainers = with maintainers; [ dezgeg ]; + platforms = with platforms; linux; + }; +} diff --git a/pkgs/applications/editors/android-studio/common.nix b/pkgs/applications/editors/android-studio/common.nix index a165fad370e..8a536bad9c4 100644 --- a/pkgs/applications/editors/android-studio/common.nix +++ b/pkgs/applications/editors/android-studio/common.nix @@ -16,6 +16,7 @@ , fontconfig , freetype , libpulseaudio +, libGL , libX11 , libXext , libXi @@ -97,6 +98,7 @@ let # For Android emulator libpulseaudio libX11 + libGL # For GTKLookAndFeel gtk2 diff --git a/pkgs/applications/graphics/avocode/default.nix b/pkgs/applications/graphics/avocode/default.nix index 9f9e965c6a9..fbf6443b91f 100644 --- a/pkgs/applications/graphics/avocode/default.nix +++ b/pkgs/applications/graphics/avocode/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { name = "avocode-${version}"; - version = "3.0.0"; + version = "3.1.1"; src = fetchurl { url = "https://media.avocode.com/download/avocode-app/${version}/avocode-${version}-linux.zip"; - sha256 = "1lm0zzqhnk5gm68l8fkmlkh3gl71f1xw0amy23460a7hm9wcwjr7"; + sha256 = "1qvyc08i3b4rr43ssz78xndm4bx8lz2vigh6w9gd7w367xjf4f5b"; }; libPath = stdenv.lib.makeLibraryPath (with xorg; with gnome2; [ diff --git a/pkgs/applications/misc/cbatticon/default.nix b/pkgs/applications/misc/cbatticon/default.nix index 01511b41b08..f4ba30080f7 100644 --- a/pkgs/applications/misc/cbatticon/default.nix +++ b/pkgs/applications/misc/cbatticon/default.nix @@ -12,6 +12,10 @@ stdenv.mkDerivation rec { sha256 = "16g26vin1693dbdr9qsnw36fdchx394lp79gvp7gcbw0w1ny9av6"; }; + patchPhase = '' + sed -i -e 's/ -Wno-format//g' Makefile + ''; + makeFlags = "PREFIX=$(out)"; nativeBuildInputs = [ pkgconfig gettext ]; diff --git a/pkgs/applications/misc/chirp/default.nix b/pkgs/applications/misc/chirp/default.nix index 6dc7a5f7dd2..16f63cfcd10 100644 --- a/pkgs/applications/misc/chirp/default.nix +++ b/pkgs/applications/misc/chirp/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { name = "chirp-daily-${version}"; - version = "20180611"; + version = "20180614"; src = fetchurl { url = "https://trac.chirp.danplanet.com/chirp_daily/daily-${version}/${name}.tar.gz"; - sha256 = "1569gnbs4jb53n58wdkdjrxx9nrayljn5v0wqacn5zfr87s16zxf"; + sha256 = "011bxd418hrl88rhp6lhja68b2kvnm1b845v41g9qfsagvfmbv3g"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/misc/gnuradio/default.nix b/pkgs/applications/misc/gnuradio/default.nix index 2710850759b..0224d5fd68c 100644 --- a/pkgs/applications/misc/gnuradio/default.nix +++ b/pkgs/applications/misc/gnuradio/default.nix @@ -1,7 +1,7 @@ { stdenv, fetchFromGitHub, writeText, makeWrapper # Dependencies documented @ https://gnuradio.org/doc/doxygen/build_guide.html # => core dependencies -, ninja, cmake, pkgconfig, git, boost, cppunit, fftw +, cmake, pkgconfig, git, boost, cppunit, fftw # => python wrappers # May be able to upgrade to swig3 , python, swig2, numpy, scipy, matplotlib @@ -32,12 +32,12 @@ stdenv.mkDerivation rec { owner = "gnuradio"; repo = "gnuradio"; rev = "v${version}"; - sha256 = "0fqxn1k41xqd52i5z528zdhkn52i9z5hl6cc75ggdx9iqxhvb3jj"; + sha256 = "1qpa53axqavdv2ykby7rwh7xmhvv964xq1d7rcvbwkry7dngrbib"; fetchSubmodules = true; }; nativeBuildInputs = [ - cmake pkgconfig git makeWrapper cppunit orc ninja + cmake pkgconfig git makeWrapper cppunit orc ]; buildInputs = [ diff --git a/pkgs/applications/misc/goldendict/default.nix b/pkgs/applications/misc/goldendict/default.nix index f552a74f4c1..5cb51eefe5d 100644 --- a/pkgs/applications/misc/goldendict/default.nix +++ b/pkgs/applications/misc/goldendict/default.nix @@ -1,12 +1,14 @@ -{ stdenv, fetchurl, pkgconfig, libXtst, libvorbis, hunspell +{ stdenv, fetchFromGitHub, pkgconfig, libXtst, libvorbis, hunspell , libao, ffmpeg, libeb, lzo, xz, libtiff , qtbase, qtsvg, qtwebkit, qtx11extras, qttools, qmake }: stdenv.mkDerivation rec { - name = "goldendict-1.5.0.rc2"; - src = fetchurl { - url = "https://github.com/goldendict/goldendict/archive/1.5.0-RC2.tar.gz"; - sha256 = "1pizz39l61rbps0wby75fkvzyrah805257j33siqybwhsfiy1kmw"; + name = "goldendict-2018-06-13"; + src = fetchFromGitHub { + owner = "goldendict"; + repo = "goldendict"; + rev = "48e850c7ec11d83cba7499f7fdce377ef3849bbb"; + sha256 = "0i4q4waqjv45hgwillvjik97pg26kwlmz4925djjkx8s6hxgjlq9"; }; nativeBuildInputs = [ pkgconfig qmake ]; @@ -22,6 +24,6 @@ stdenv.mkDerivation rec { description = "A feature-rich dictionary lookup program"; platforms = stdenv.lib.platforms.linux; - maintainers = [ stdenv.lib.maintainers.astsmtl ]; + maintainers = with stdenv.lib.maintainers; [ gebner astsmtl ]; }; } diff --git a/pkgs/applications/misc/khal/default.nix b/pkgs/applications/misc/khal/default.nix index 60f6deefb01..ede85aeada5 100644 --- a/pkgs/applications/misc/khal/default.nix +++ b/pkgs/applications/misc/khal/default.nix @@ -1,8 +1,22 @@ -{ stdenv, pkgs, python3Packages }: +{ stdenv, pkgs, python3 }: -with python3Packages; +let + python = python3.override { + packageOverrides = self: super: { -buildPythonApplication rec { + # https://github.com/pimutils/khal/issues/780 + python-dateutil = super.python-dateutil.overridePythonAttrs (oldAttrs: rec { + version = "2.6.1"; + src = oldAttrs.src.override { + inherit version; + sha256 = "891c38b2a02f5bb1be3e4793866c8df49c7d19baabf9c1bad62547e0b4866aca"; + }; + }); + + }; + }; + +in with python.pkgs; buildPythonApplication rec { pname = "khal"; version = "0.9.9"; @@ -29,10 +43,11 @@ buildPythonApplication rec { pkginfo freezegun ]; - buildInputs = [ setuptools_scm pytest pkgs.glibcLocales ]; + nativeBuildInputs = [ setuptools_scm pkgs.glibcLocales ]; + checkInputs = [ pytest ]; checkPhase = '' - # py.test + py.test ''; meta = with stdenv.lib; { diff --git a/pkgs/applications/misc/krename/default.nix b/pkgs/applications/misc/krename/default.nix index e686ec94a4a..a0a2776ae36 100644 --- a/pkgs/applications/misc/krename/default.nix +++ b/pkgs/applications/misc/krename/default.nix @@ -1,5 +1,5 @@ { - mkDerivation, fetchFromGitHub, lib, + mkDerivation, fetchurl, lib, extra-cmake-modules, kdoctools, wrapGAppsHook, kconfig, kinit, kjsembed, taglib, exiv2, podofo, kcrash @@ -7,15 +7,14 @@ let pname = "krename"; - version = "20170610"; + version = "5.0.0"; + in mkDerivation rec { name = "${pname}-${version}"; - src = fetchFromGitHub { - owner = "KDE"; - repo = "krename"; - rev = "18000edfec52de0b417d575e14eb078b4bd7b2f3"; - sha256 = "0hsrlfrbi42jqqnkcz682c6yrfi3xpl299672knj22074wr6sv0j"; + src = fetchurl { + url = "mirror://kde/stable/${pname}/${version}/src/${name}.tar.xz"; + sha256 = "136j1dkqrhv458rjh5v3vzjhvq6dhz7k79zk6mmx8zvqacc7cq8a"; }; meta = with lib; { diff --git a/pkgs/applications/networking/browsers/eolie/0001-Extend-the-python-path-rather-than-replacing-it.patch b/pkgs/applications/networking/browsers/eolie/0001-Extend-the-python-path-rather-than-replacing-it.patch deleted file mode 100644 index 347fb8e1287..00000000000 --- a/pkgs/applications/networking/browsers/eolie/0001-Extend-the-python-path-rather-than-replacing-it.patch +++ /dev/null @@ -1,35 +0,0 @@ -From b51b63b78c9ff1639f5f65ccfdd54681f1cadc1d Mon Sep 17 00:00:00 2001 -From: Sam Parkinson -Date: Tue, 26 Dec 2017 14:46:27 +1100 -Subject: [PATCH] Extend the python path; rather than replacing it - -Some distros (i.e. NixOS) require the special PYTHONPATH, so that -the web extension has access to the python packages it wants (i.e. gi). - -Previously, the PYTHONPATH was replaced with the web extension path; -meaning it would crash on NixOS. This instead prepends the web -extension path to the PYTHONPATH. ---- - eolie/application.py | 6 +++++- - 1 file changed, 5 insertions(+), 1 deletion(-) - -diff --git a/eolie/application.py b/eolie/application.py -index 3c21542..bed4e55 100644 ---- a/eolie/application.py -+++ b/eolie/application.py -@@ -340,7 +340,11 @@ class Application(Gtk.Application): - self.settings = Settings.new() - - # Init extensions -- GLib.setenv("PYTHONPATH", self.__extension_dir, True) -+ current_path = GLib.getenv("PYTHONPATH") -+ new_path = self.__extension_dir -+ if current_path: -+ new_path = new_path + ':' + current_path -+ GLib.setenv("PYTHONPATH", new_path, True) - - # Create favicon path - if not GLib.file_test(self.__FAVICONS_PATH, GLib.FileTest.IS_DIR): --- -2.15.0 - diff --git a/pkgs/applications/networking/browsers/eolie/default.nix b/pkgs/applications/networking/browsers/eolie/default.nix index 9d4c858298d..5de6c0d882a 100644 --- a/pkgs/applications/networking/browsers/eolie/default.nix +++ b/pkgs/applications/networking/browsers/eolie/default.nix @@ -1,67 +1,53 @@ -{ stdenv, fetchgit, intltool, itstool, meson, ninja, pkgconfig, wrapGAppsHook -, glib, glib-networking, gsettings-desktop-schemas, gst_all_1, gtk3, gobjectIntrospection -, gtkspell3, libsecret, python36, python36Packages, webkitgtk }: +{ stdenv, fetchgit, meson, ninja, pkgconfig, wrapGAppsHook +, desktop-file-utils, gobjectIntrospection, python36Packages +, gnome3, gst_all_1, gtkspell3, hunspell }: stdenv.mkDerivation rec { name = "eolie-${version}"; - version = "0.9.16"; + version = "0.9.35"; src = fetchgit { - url = https://gitlab.gnome.org/gnumdk/eolie; - rev = version; - sha256 = "0mvhr6hy4nx7xaq9r9qp5rb0y293kjjryw5ykzb473cr3iwzk25b"; + url = "https://gitlab.gnome.org/World/eolie"; + rev = "refs/tags/${version}"; + fetchSubmodules = true; + sha256 = "0x3p1fgx1fhrnr7vkkpnl34401r6k6xg2mrjff7ncb1k57q522k7"; }; - nativeBuildInputs = [ - intltool - itstool + nativeBuildInputs = with python36Packages; [ + desktop-file-utils + gobjectIntrospection meson ninja pkgconfig wrapGAppsHook - gobjectIntrospection + wrapPython ]; - buildInputs = [ - glib - glib-networking - gsettings-desktop-schemas - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - gst_all_1.gst-plugins-good - gst_all_1.gst-plugins-bad - gst_all_1.gst-plugins-ugly - gst_all_1.gst-libav - gtk3 - gtkspell3 - libsecret - python36 - python36Packages.pygobject3 - python36Packages.pycairo - python36Packages.dateutil - python36Packages.dbus-python - python36Packages.beautifulsoup4 - python36Packages.pycrypto - python36Packages.requests - webkitgtk + buildInputs = [ gtkspell3 hunspell python36Packages.pygobject3 ] ++ (with gnome3; [ + glib glib-networking gsettings_desktop_schemas gtk3 webkitgtk libsecret + ]) ++ (with gst_all_1; [ + gst-libav gst-plugins-base gst-plugins-ugly gstreamer + ]); + + pythonPath = with python36Packages; [ + beautifulsoup4 + pycairo + pygobject3 + python-dateutil ]; - wrapPrefixVariables = [ "PYTHONPATH" ]; + postFixup = "wrapPythonPrograms"; postPatch = '' chmod +x meson_post_install.py # patchShebangs requires executable file patchShebangs meson_post_install.py ''; - patches = [ - ./0001-Extend-the-python-path-rather-than-replacing-it.patch - ]; - meta = with stdenv.lib; { description = "A new GNOME web browser"; - homepage = https://wiki.gnome.org/Apps/Eolie; - license = licenses.gpl3; - maintainers = [ maintainers.samdroid-apps ]; - platforms = platforms.linux; + homepage = https://wiki.gnome.org/Apps/Eolie; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ samdroid-apps worldofpeace ]; + platforms = platforms.linux; }; } diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index 692a4362935..2f08e8af6c9 100644 --- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -1,14 +1,16 @@ -{ stdenv, fetchurl, system, makeWrapper, makeDesktopItem, - alsaLib, dbus, glib, fontconfig, freetype, libpulseaudio, - utillinux, zlib, xorg, udev, sqlite, expat, libv4l, procps, libGL }: +{ stdenv, fetchurl, system, makeWrapper, makeDesktopItem, autoPatchelfHook +, dbus, glib, libGL, libX11, libXfixes, libuuid, libxcb, procps +, qtbase, qtdeclarative, qtlocation, qtquickcontrols2, qtscript +, qtwebchannel, qtwebengine +}: let - version = "2.0.123200.0405"; + version = "2.2.128100.0627"; srcs = { x86_64-linux = fetchurl { url = "https://zoom.us/client/${version}/zoom_x86_64.tar.xz"; - sha256 = "1ifwa2xf5mw1ll2j1f39qd7mpyxpc6xj3650dmlnxf525dsm573z"; + sha256 = "1x98zhs75c22x58zj4vzk8gb9yr7a9hfkbiqhjp5jrvccgz6ncin"; }; }; @@ -17,76 +19,44 @@ in stdenv.mkDerivation { src = srcs.${system}; - nativeBuildInputs = [ makeWrapper ]; + nativeBuildInputs = [ autoPatchelfHook makeWrapper ]; - libPath = stdenv.lib.makeLibraryPath [ - alsaLib - expat - glib - freetype - libGL - libpulseaudio - zlib - dbus - fontconfig - sqlite - utillinux - udev - - xorg.libX11 - xorg.libSM - xorg.libICE - xorg.libxcb - xorg.xcbutilimage - xorg.xcbutilkeysyms - xorg.libXcursor - xorg.libXext - xorg.libXfixes - xorg.libXdamage - xorg.libXtst - xorg.libxshmfence - xorg.libXi - xorg.libXrender - xorg.libXcomposite - xorg.libXScrnSaver - xorg.libXrandr - - stdenv.cc.cc + buildInputs = [ + dbus glib libGL libX11 libXfixes libuuid libxcb qtbase qtdeclarative + qtlocation qtquickcontrols2 qtscript qtwebchannel qtwebengine ]; - installPhase = '' - runHook preInstall + installPhase = + let + files = stdenv.lib.concatStringsSep " " [ + "*.pcm" + "*.png" + "ZXMPPROOT.cer" + "ZoomLauncher" + "config-dump.sh" + "qtdiag" + "timezones" + "translations" + "version.txt" + "zcacert.pem" + "zoom" + "zoom.sh" + "zoomlinux" + "zopen" + ]; + in '' + runHook preInstall - packagePath=$out/share/zoom-us - mkdir -p $packagePath - mkdir -p $out/bin - cp -ar * $packagePath + packagePath=$out/share/zoom-us + mkdir -p $packagePath $out/bin - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $packagePath/zoom - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $packagePath/QtWebEngineProcess - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $packagePath/qtdiag - patchelf --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" $packagePath/zopen - # included from https://github.com/NixOS/nixpkgs/commit/fc218766333a05c9352b386e0cbb16e1ae84bf53 - # it works for me without it, but, well... - paxmark m $packagePath/zoom - #paxmark m $packagePath/QtWebEngineProcess # is this what dtzWill talked about? + cp -ar ${files} $packagePath - # RUNPATH set via patchelf is used only for half of libraries (why?), so wrap it - makeWrapper $packagePath/zoom $out/bin/zoom-us \ - --prefix LD_LIBRARY_PATH : "$packagePath:$libPath" \ - --prefix LD_PRELOAD : "${libv4l}/lib/v4l1compat.so" \ - --prefix PATH : "${procps}/bin" \ - --set QT_PLUGIN_PATH "$packagePath/platforms" \ - --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \ - --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" + makeWrapper $packagePath/zoom $out/bin/zoom-us \ + --prefix PATH : "${procps}/bin" - cat > $packagePath/qt.conf < 1.35), libidn.so.11 became libidn.so.12. + # Citrix looks for the former so we build version 1.34 to please the binary + libidn_134 = libidn.overrideDerivation (_: rec { + name = "libidn-1.34"; + src = fetchurl { + url = "mirror://gnu/libidn/${name}.tar.gz"; + sha256 = "0g3fzypp0xjcgr90c5cyj57apx1cmy0c6y9lvw2qdcigbyby469p"; + }; + }); + versionInfo = { "13.4.0" = rec { major = "13"; @@ -102,6 +113,17 @@ let x86hash = "A93E9770FD10FDD3586A2D47448559EA037265717A7000B9BD2B1DCCE7B0A483"; x64suffix = "6"; x86suffix = "6"; + homepage = https://www.citrix.com/downloads/citrix-receiver/legacy-receiver-for-linux/receiver-for-linux-1391.html; + }; + + "13.10.0" = { + major = "13"; + minor = "10"; + patch = "0"; + x64hash = "7025688C7891374CDA11C92FC0BA2FA8151AEB4C4D31589AD18747FAE943F6EA"; + x86hash = "2DCA3C8EDED11C5D824D579BC3A6B7D531EAEDDCBFB16E91B5702C72CAE9DEE4"; + x64suffix = "20"; + x86suffix = "20"; homepage = https://www.citrix.com/downloads/citrix-receiver/linux/receiver-for-linux-latest.html; }; }; @@ -160,7 +182,7 @@ let xorg.libXinerama xorg.libXfixes libpng12 - libidn + libidn_134 zlib gtk_engines freetype diff --git a/pkgs/applications/office/gnucash/default.nix b/pkgs/applications/office/gnucash/default.nix index c09d0b3aa39..63fda1e0e8b 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.1-1"; + version = "3.2"; src = fetchurl { url = "mirror://sourceforge/gnucash/${name}.tar.bz2"; - sha256 = "0qfjpmr6hnr0v7l2fi00rilnlyan4kqiyygyidxlpdxqqg76dvx1"; + sha256 = "0li4b6pvlahgh5n9v91yxfgm972a1kky80xw3q1ggl4f2h6b1rb3"; }; nativeBuildInputs = [ pkgconfig makeWrapper cmake gtest ]; diff --git a/pkgs/applications/office/kmymoney/default.nix b/pkgs/applications/office/kmymoney/default.nix index 212aaa5fa2c..7899bf607e5 100644 --- a/pkgs/applications/office/kmymoney/default.nix +++ b/pkgs/applications/office/kmymoney/default.nix @@ -1,4 +1,5 @@ { stdenv, lib, fetchurl, doxygen, extra-cmake-modules, graphviz, kdoctools +, fetchpatch , akonadi, alkimia, aqbanking, gmp, gwenhywfar, kactivities, karchive , kcmutils, kcontacts, kdewebkit, kdiagram, kholidays, kidentitymanagement @@ -20,6 +21,13 @@ stdenv.mkDerivation rec { sha256 = "1c9apnvc07y17pzy4vygry1dai5ass2z7j354lrcppa85b18yvnx"; }; + # Fix build with Qt 5.11. + patches = lib.singleton (fetchpatch { + url = "https://cgit.kde.org/kmymoney.git/patch/?id=" + + "e5198a902996b27bf9abde0ad24af82d55ab5dc1"; + sha256 = "1h2f1xznf7343s26fh94x8n2ci0pijk5j86f24lvghawsw848316"; + }); + # Hidden dependency that wasn't included in CMakeLists.txt: NIX_CFLAGS_COMPILE = "-I${kitemmodels.dev}/include/KF5"; diff --git a/pkgs/applications/office/ledger/default.nix b/pkgs/applications/office/ledger/default.nix index 9675293cfe5..387a71aa04e 100644 --- a/pkgs/applications/office/ledger/default.nix +++ b/pkgs/applications/office/ledger/default.nix @@ -13,7 +13,10 @@ stdenv.mkDerivation rec { fetchSubmodules = true; }; - buildInputs = [ boost gmp mpfr libedit python texinfo gnused ]; + buildInputs = [ + (boost.override { enablePython = usePython; }) + gmp mpfr libedit python texinfo gnused + ]; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/science/astronomy/gravit/default.nix b/pkgs/applications/science/astronomy/gravit/default.nix index 9edc6220899..03d0018f237 100644 --- a/pkgs/applications/science/astronomy/gravit/default.nix +++ b/pkgs/applications/science/astronomy/gravit/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = { - homepage = http://gravit.slowchop.com; + homepage = https://gravit.slowchop.com; description = "Beautiful OpenGL-based gravity simulator"; license = stdenv.lib.licenses.gpl2; diff --git a/pkgs/applications/science/electronics/librepcb/default.nix b/pkgs/applications/science/electronics/librepcb/default.nix index ea0ebd52b3e..48afb5bf9dc 100644 --- a/pkgs/applications/science/electronics/librepcb/default.nix +++ b/pkgs/applications/science/electronics/librepcb/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { name = "librepcb-${version}"; - version = "20171229"; + version = "20180628"; src = fetchFromGitHub { owner = "LibrePCB"; repo = "LibrePCB"; fetchSubmodules = true; - rev = "4efb06fa42755abc5e606da4669cc17e8de2f8c6"; - sha256 = "0r33fm1djqpy0dzvnf5gv2dfh5nj2acaxb7w4cn8yxdgrazjf7ak"; + rev = "68577ecf8f39299ef4d81ff964b01c3908d1f10b"; + sha256 = "1ca4q8b8fhp19vq5yi55sq6xlsz14ihw3i0h7rq5fw0kigpjldmz"; }; enableParallelBuilding = true; @@ -18,11 +18,13 @@ stdenv.mkDerivation rec { buildInputs = [ qtbase ]; - # LibrePCB still supports QT below 5.9. But some code lines break the build, so they are removed by this patch so that the software builds. - patches = [ ./fix-2017-12.patch ]; - qmakeFlags = ["-r"]; + postInstall = '' + mkdir -p $out/share/librepcb/fontobene + cp share/librepcb/fontobene/newstroke.bene $out/share/librepcb/fontobene/ + ''; + meta = with stdenv.lib; { description = "A free EDA software to develop printed circuit boards"; homepage = http://librepcb.org/; diff --git a/pkgs/applications/science/electronics/librepcb/fix-2017-12.patch b/pkgs/applications/science/electronics/librepcb/fix-2017-12.patch deleted file mode 100644 index 75fc590ad7f..00000000000 --- a/pkgs/applications/science/electronics/librepcb/fix-2017-12.patch +++ /dev/null @@ -1,29 +0,0 @@ ---- a/libs/librepcb/common/fileio/serializableobjectlist.h -+++ b/libs/librepcb/common/fileio/serializableobjectlist.h -@@ -374,26 +374,6 @@ - } // namespace librepcb - - /***************************************************************************************** -- * Prevent from using SerializableObjectList in a foreach loop because it always would -- * create a deep copy of the list! You should use C++11 range based for loops instead. -- ****************************************************************************************/ -- --#if (QT_VERSION > QT_VERSION_CHECK(5, 9, 0)) --#define QFOREACHCONTAINER_TEMPLATE QtPrivate::QForeachContainer --#else --#define QFOREACHCONTAINER_TEMPLATE QForeachContainer --#endif -- --template --class QFOREACHCONTAINER_TEMPLATE> { public: -- ~QForeachContainer() = delete; --}; --template --class QFOREACHCONTAINER_TEMPLATE> { public: -- ~QForeachContainer() = delete; --}; -- --/***************************************************************************************** - * End of File - ****************************************************************************************/ - diff --git a/pkgs/applications/science/logic/coq/default.nix b/pkgs/applications/science/logic/coq/default.nix index 2b35c91d10c..dbfec66789a 100644 --- a/pkgs/applications/science/logic/coq/default.nix +++ b/pkgs/applications/science/logic/coq/default.nix @@ -23,6 +23,7 @@ let "8.7.1" = "0gjn59jkbxwrihk8fx9d823wjyjh5m9gvj9l31nv6z6bcqhgdqi8"; "8.7.2" = "0a0657xby8wdq4aqb2xsxp3n7pmc2w4yxjmrb2l4kccs1aqvaj4w"; "8.8.0" = "13a4fka22hdxsjk11mgjb9ffzplfxyxp1sg5v1c8nk1grxlscgw8"; + "8.8.1" = "1hlf58gwazywbmfa48219amid38vqdl94yz21i11b4map6jfwhbk"; }."${version}"; coq-version = builtins.substring 0 3 version; camlp5 = ocamlPackages.camlp5_strict; diff --git a/pkgs/applications/science/math/sage/README.md b/pkgs/applications/science/math/sage/README.md new file mode 100644 index 00000000000..46496664f28 --- /dev/null +++ b/pkgs/applications/science/math/sage/README.md @@ -0,0 +1,117 @@ +# Sage on nixos + +Sage is a pretty complex package that depends on many other complex packages and patches some of those. As a result, the sage nix package is also quite complex. + +Don't feel discouraged to fix, simplify or improve things though. Here's a quick overview over the functions of the individual files: + +- `sage-src.nix` + Downloads the source code and applies patches. This makes sure that all the other files work with the same sage source. If you want to apply a patch to sage or update sage to a new version, this is the place to do it. + +- `env-locations.nix` + Creates a bash file that sets a bunch of environment variables telling sage where to find various packages and files. The definitions of those environment variables can be found in the sage source in the `src/env.py` file. This bash file needs to be sourced before sage is started (done in `sage-env.nix` and `sagedoc.nix`). + +- `sage-env.nix` + Sets all environment variables sage needs to run. This includes the package locations defined in `env-locations.nix` as well as the location of sage itself and its various subdirectories. + +- `sagelib.nix` + Defines the main sage package (without setting the necessary environments or running any tests). + +- `sage-with-env.nix` + Wraps sage in the necessary environment. + +- `sage.nix` + Runs sages doctests. + +- `sage-wrapper.nix` + Optionally tells sage where do find the docs. + +- `sagedoc.nix` + Builds and tests the sage html documentation. Can be used for offline documentation viewing as well as the sage `browse_sage_doc` and `search_doc` functions. + +- `sagenb.nix` + The (semi deprecated) sage notebook. + +- `default.nix` + Introduces necessary overrides, defines new packages and ties everything together (returning the `sage` package). + +- `flask-oldsessions.nix`, `flask-openid.nix`, `python-openid.nix` + These are python packages that were rejected from the main nixpkgs tree because they appear unmaintained. They are needed for the (semi-deprecated) sage notebook. Since that notebook is still needed to run the sage doctests, these packages are included but not exposed to the rest of nixpkgs. + +- `pybrial.nix` + pybrial is a dependency of sage. However, pybrial itself also has sage as a dependency. Because of that circular dependency, pybrial is hidden from the rest of nixpkgs (just as the flask packages and python-openid. + +- `openblas-pc.nix` + This creates a `.pc` file to be read by `pkg-config` that allows openblas to take on different roles, like `cblas` or `lapack`. + +## The sage build is broken + +First you should find out which change to nixpkgs is at fault (if you don't already know). You can use `git-bisect` for that (see the manpage). + +If the build broke as a result of a package update, try those solutions in order: + +- search the [sage trac](https://trac.sagemath.org/) for keywords like "Upgrade ". Maybe somebody has already proposed a patch that fixes the issue. You can then add a `fetchpatch` to `sage-src.nix`. + +- check if [gentoo](https://github.com/cschwan/sage-on-gentoo/tree/master/sci-mathematics/sage), [debian](https://salsa.debian.org/science-team/sagemath/tree/master/debian) or [arch linux](https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/sagemath) already solved the problem. You can then again add a `fetchpatch` to `sage-src.nix`. If applicable you should also [propose the patch upstream](#proposing-a-sage-patch). + +- fix the problem yourself. First clone the sagemath source and then check out the sage version you want to patch: + +``` +[user@localhost ~]$ git clone git://github.com/sagemath/sage.git +[user@localhost ~]$ cd sage +[user@localhost sage]$ git checkout 8.2 # substitute the relevant version here +``` + +Then make the needed changes and generate a patch with `git diff`: + +``` +[user@localhost ~]$ +[user@localhost ~]$ git diff -u > /path/to/nixpkgs/pkgs/applications/science/math/sage/patches/name-of-patch.patch +``` + +Now just add the patch to `sage-src.nix` and test your changes. If they fix the problem, [propose them upstream](#proposing-a-sage-patch) and add a link to the trac ticket. + +- pin the package version in `default.nix` and add a note that explains why that is necessary. + + +## Proposing a sage patch + +You can [login the sage trac using GitHub](https://trac.sagemath.org/login). Your username will then be `gh-`. The only other way is to request a trac account via email. After that refer to [git the hard way](http://doc.sagemath.org/html/en/developer/manual_git.html#chapter-manual-git) in the sage documentation. The "easy way" requires a non-GitHub account (requested via email) and a special tool. The "hard way" is really not all that hard if you're a bit familiar with git. + +Here's the gist, assuming you want to use ssh key authentication. First, [add your public ssh key](https://trac.sagemath.org/prefs/sshkeys). Then: + +``` +[user@localhost ~]$ git clone git://github.com/sagemath/sage.git +[user@localhost ~]$ cd sage +[user@localhost sage]$ git remote add trac git@trac.sagemath.org:sage.git -t master +[user@localhost sage]$ git checkout -b u/gh-/ develop +[user@localhost sage]$ +[user@localhost sage]$ git add . +[user@localhost sage]$ git commit +[user@localhost sage]$ git show # review your changes +[user@localhost sage]$ git push --set-upstream trac u/gh-/ +``` + +You now created a branch on the trac server (you *must* follow the naming scheme as you only have push access to branches with the `u/gh-/` prefix). +Now you can [create a new trac ticket](https://trac.sagemath.org/newticket). +- Write a description of the change +- set the type and component as appropriate +- write your real name in the "Authors" field +- write `u/gh-/` in the "Branch" field +- click "Create ticket" +- click "Modify" on the top right of your ticket (for some reason you can only change the ticket status after you have created it) +- set the ticket status from `new` to `needs_review` +- click "Save changes" + +Refer to sages [Developer's Guide](http://doc.sagemath.org/html/en/developer/index.html) for further details. + +## I want to update sage + +You'll need to change the `version` field in `sage-src.nix`. Afterwards just try to build and let nix tell you which patches no longer apply (hopefully because they were adopted upstream). Remove those. + +Hopefully the build will succeed now. If it doesn't and the problem is obvious, fix it as described in [The sage build is broken](#the-sage-build-is-broken). +If the problem is not obvious, you can try to first update sage to an intermediate version (remember that you can also set the `version` field to any git revision of sage) and locate the sage commit that introduced the issue. You can even use `git-bisect` for that (it will only be a bit tricky to keep track of which patches to apply). Hopefully after that the issue will be obvious. + +## Well, that didn't help! + +If you couldn't fix the problem, create a GitHub issue on the nixpkgs repo and ping @timokau (or whoever is listed in the `maintainers` list of the sage package). +Describe what you did and why it didn't work. Afterwards it would be great if you help the next guy out and improve this documentation! diff --git a/pkgs/applications/science/math/sage/default.nix b/pkgs/applications/science/math/sage/default.nix index 7f101bac147..9ad112213ff 100644 --- a/pkgs/applications/science/math/sage/default.nix +++ b/pkgs/applications/science/math/sage/default.nix @@ -1,230 +1,211 @@ -# TODO -# - consider writing a script to convert spkgs to nix packages, similar to vim -# or cabal2nix. This would allow a more efficient and "cleaner" build, greater -# flexibility and the possibility to select which dependencies to add and which -# to remove. It would also allow to use system packages for some dependencies -# and recompile others (optimized for the system) without recompiling everything. -# - add optdeps: -# - imagemagick -# - texlive full for documentation -# - ... -# - further seperate build outputs. Also maybe run `make doc`. -# Configure flags like --bindir and --libdir oculd also be used for that, see -# ./configure --help`. - -# Other resources: -# - https://wiki.debian.org/DebianScience/Sage -# - https://github.com/cschwan/sage-on-gentoo -# - https://git.archlinux.org/svntogit/community.git/tree/trunk?h=packages/sagemath - -{ stdenv -, bash -, fetchurl -, perl -, gfortran6 -, python -, autoreconfHook -, gettext -, which -, texlive -, texinfo -, hevea -, buildDocs ? false -, optimize ? false # optimize sage to the current system (obviously impure) +{ nixpkgs +, withDoc ? false }: -stdenv.mkDerivation rec { - version = "8.1"; - name = "sage-${version}"; +let + inherit (nixpkgs) fetchpatch fetchurl symlinkJoin fetchFromGitHub callPackage nodePackages_8_x; - # Modified version of patchShebangs that patches to the sage-internal version if possible - # and falls back to the system version if not. - patchSageShebangs = ./patchSageShebangs.sh; - src = fetchurl { - # Note that the source is *not* fetched from github, since that doesn't - # the upstream folder with all the source tarballs of the spkgs. - # If those are not present they are fetched at build time, which breaks - # when building in a sandbox (and probably only works if you install the - # latest sage version). - urls = [ - "http://mirrors.mit.edu/sage/src/sage-${version}.tar.gz" - "ftp://ftp.fu-berlin.de/unix/misc/sage/src/sage-${version}.tar.gz" - "http://sagemath.polytechnic.edu.na/src/sage-${version}.tar.gz" - "ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/src/sage-${version}.tar.gz" - "http://sagemath.mirror.ac.za/src/sage-${version}.tar.gz" - "https://ftp.leg.uct.ac.za/pub/packages/sage/src/sage-${version}.tar.gz" - "http://mirror.ufs.ac.za/sagemath/src/sage-${version}.tar.gz" - "https://mirrors-usa.go-parts.com/sage/sagemath/src/sage-${version}.tar.gz" - "http://www.cecm.sfu.ca/sage/src/sage-${version}.tar.gz" - "http://files.sagemath.org/src/sage-${version}.tar.gz" - "https://mirrors.xmission.com/sage/src/sage-${version}.tar.gz" - "http://sagemath.c3sl.ufpr.br/src/sage-${version}.tar.gz" - "http://linorg.usp.br/sage/src/sage-${version}.tar.gz" - "http://mirror.hust.edu.cn/sagemath/src/sage-${version}.tar.gz" - "https://ftp.iitm.ac.in/sage/src/sage-${version}.tar.gz" - "http://ftp.kaist.ac.kr/sage/src/sage-${version}.tar.gz" - "https://ftp.riken.jp/sagemath/src/sage-${version}.tar.gz" - "https://mirrors.tuna.tsinghua.edu.cn/sagemath/src/sage-${version}.tar.gz" - "https://mirrors.ustc.edu.cn/sagemath/src/sage-${version}.tar.gz" - "http://ftp.tsukuba.wide.ad.jp/software/sage/src/sage-${version}.tar.gz" - "https://ftp.yz.yamagata-u.ac.jp/pub/math/sage/src/sage-${version}.tar.gz" - "https://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/sage-${version}.tar.gz" - "https://mirror.aarnet.edu.au/pub/sage/src/sage-${version}.tar.gz" - "https://sage.mirror.garr.it/mirrors/sage/src/sage-${version}.tar.gz" - "https://www.mirrorservice.org/sites/www.sagemath.org/src/sage-${version}.tar.gz" - "http://mirror.switch.ch/mirror/sagemath/src/sage-${version}.tar.gz" - "https://mirrors.up.pt/pub/sage/src/sage-${version}.tar.gz" - "http://www-ftp.lip6.fr/pub/math/sagemath/src/sage-${version}.tar.gz" - "http://ftp.ntua.gr/pub/sagemath/src/sage-${version}.tar.gz" + # https://trac.sagemath.org/ticket/15980 for tracking of python3 support + python = nixpkgs.python2.override { + packageOverrides = self: super: { + cypari2 = super.cypari2.override { inherit pari; }; + + cysignals = super.cysignals.override { inherit pari; }; + + cvxopt = super.cvxopt.override { inherit glpk; }; + + # https://github.com/sagemath/sagenb/issues/437 + flask-babel = super.flask-babel.overridePythonAttrs (attrs: rec { + version = "0.9"; + src = attrs.src.override { + inherit version; + sha256 = "0k7vk4k54y55ma0nx2k5s0phfqbriwslhy5shh3b0d046q7ibzaa"; + }; + doCheck = false; + }); + + # python packages that appear unmaintained and were not accepted into the nixpkgs + # tree because of that. These packages are only dependencies of the more-or-less + # deprecated sagenb. However sagenb is still a default dependency and the doctests + # depend on it. + # See https://github.com/NixOS/nixpkgs/pull/38787 for a discussion. + flask-oldsessions = self.callPackage ./flask-oldsessions.nix {}; + flask-openid = self.callPackage ./flask-openid.nix {}; + python-openid = self.callPackage ./python-openid.nix {}; + + pybrial = self.callPackage ./pybrial.nix {}; + + sagelib = self.callPackage ./sagelib.nix { + inherit flint ecl pari glpk eclib; + inherit sage-src openblas-blas-pc openblas-cblas-pc openblas-lapack-pc pynac singular; + linbox = nixpkgs.linbox.override { withSage = true; }; + }; + + sagenb = self.callPackage ./sagenb.nix { + mathjax = nodePackages_8_x.mathjax; + }; + + sagedoc = self.callPackage ./sagedoc.nix { + inherit sage-src; + }; + + env-locations = self.callPackage ./env-locations.nix { + inherit pari_data ecl pari; + inherit singular; + three = nodePackages_8_x.three; + mathjax = nodePackages_8_x.mathjax; + }; + + sage-env = self.callPackage ./sage-env.nix { + inherit sage-src python rWrapper openblas-cblas-pc glpk ecl singular eclib pari palp flint pynac pythonEnv; + pkg-config = nixpkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig + }; + + sage-with-env = self.callPackage ./sage-with-env.nix { + inherit pari eclib pythonEnv; + inherit sage-src openblas-blas-pc openblas-cblas-pc openblas-lapack-pc pynac singular; + pkg-config = nixpkgs.pkgconfig; # not to confuse with pythonPackages.pkgconfig + three = nodePackages_8_x.three; + }; + + sage = self.callPackage ./sage.nix { }; + + sage-wrapper = self.callPackage ./sage-wrapper.nix { + inherit sage-src withDoc; + }; + }; + }; + + openblas-blas-pc = callPackage ./openblas-pc.nix { name = "blas"; }; + openblas-cblas-pc = callPackage ./openblas-pc.nix { name = "cblas"; }; + openblas-lapack-pc = callPackage ./openblas-pc.nix { name = "lapack"; }; + + sage-src = callPackage ./sage-src.nix {}; + + pythonRuntimeDeps = with python.pkgs; [ + sagelib + pybrial + sagenb + cvxopt + networkx + service-identity + psutil + sympy + fpylll + matplotlib + scipy + ipywidgets + rpy2 + sphinx + typing + pillow + ]; + + pythonEnv = python.buildEnv.override { + extraLibs = pythonRuntimeDeps; + ignoreCollisions = true; + } // { extraLibs = pythonRuntimeDeps; }; # make the libs accessible + + # needs to be rWrapper, standard "R" doesn't include default packages + rWrapper = nixpkgs.rWrapper.override { + # https://trac.sagemath.org/ticket/25674 + R = nixpkgs.R.overrideAttrs (attrs: rec { + name = "R-3.4.4"; + src = fetchurl { + url = "http://cran.r-project.org/src/base/R-3/${name}.tar.gz"; + sha256 = "0dq3jsnwsb5j3fhl0wi3p5ycv8avf8s5j1y4ap3d2mkjmcppvsdk"; + }; + }); + }; + + # update causes issues + # https://groups.google.com/forum/#!topic/sage-packaging/cS3v05Q0zso + # https://trac.sagemath.org/ticket/24735 + singular = nixpkgs.singular.overrideAttrs (oldAttrs: { + name = "singular-4.1.0p3"; + src = fetchurl { + url = "http://www.mathematik.uni-kl.de/ftp/pub/Math/Singular/SOURCES/4-1-0/singular-4.1.0p3.tar.gz"; + sha256 = "105zs3zk46b1cps403ap9423rl48824ap5gyrdgmg8fma34680a4"; + }; + }); + + # *not* to confuse with the python package "pynac" + # https://trac.sagemath.org/ticket/24838 (depends on arb update) + pynac = nixpkgs.pynac.override { inherit singular; }; + + eclib = nixpkgs.eclib.override { inherit pari; }; + + # With openblas (64 bit), the tests fail the same way as when sage is build with + # openblas instead of openblasCompat. Apparently other packages somehow use flints + # blas when it is available. Alternative would be to override flint to use + # openblasCompat. + flint = nixpkgs.flint.override { withBlas = false; }; + + # Multiple palp dimensions need to be available and sage expects them all to be + # in the same folder. + palp = symlinkJoin { + name = "palp-${nixpkgs.palp.version}"; + paths = [ + (nixpkgs.palp.override { dimensions = 4; doSymlink = false; }) + (nixpkgs.palp.override { dimensions = 5; doSymlink = false; }) + (nixpkgs.palp.override { dimensions = 6; doSymlink = true; }) + (nixpkgs.palp.override { dimensions = 11; doSymlink = false; }) ]; - sha256 = "1cpcs1mr0yii64s152xmxyd450bfzjb22jjj0zh9y3n6g9alzpyq"; }; - postPatch = '' - substituteAllInPlace src/bin/sage-env - bash=${bash} substituteAllInPlace build/bin/sage-spkg - ''; - - installPhase = '' - # Sage installs during first `make`, `make install` is no-op and just takes time. - ''; - - outputs = [ "out" ] ++ stdenv.lib.optionals (buildDocs) [ "doc" ]; - - buildInputs = [ - bash # needed for the build - perl # needed for the build - python # needed for the build - gfortran6 # needed to build giac, openblas - autoreconfHook # needed to configure sage with prefix - gettext # needed to build the singular spkg - which # needed in configure of mpir - texinfo # needed to build maxima - ] ++ stdenv.lib.optionals(buildDocs) [ - hevea # needed to build the docs of the giac spkg - (texlive.combine { inherit (texlive) - scheme-basic - collection-pstricks # needed by giac - times # font needed by giac - stmaryrd # needed by giac - babel-greek # optional for giac, otherwise throws a bunch of latex command not founds - ; - }) - ]; - - nativeBuildInputs = [ gfortran6 perl which ]; - - patches = [ - # fix usages of /bin/rm - ./spkg-singular.patch - # help python find the crypt library - # patches python3 and indirectly python2, since those installation files are symlinked - ./spkg-python.patch - # fix usages of /usr/bin/perl - ./spkg-git.patch - # fix usages of /bin/cp and add necessary argument to function call - ./spkg-giac.patch - # environment - ./env.patch - # adjust wrapper shebang and patch shebangs after each spkg build - ./shebangs.patch - ]; - - enableParallelBuilding = true; - - hardeningDisable = [ - "format" # needed to build palp, for lines like `printf(ctime(&_NFL->TIME))` - # TODO could be patched with `sed s|printf(ctime(\(.*\)))|%s... or fixed upstream - ]; - - configureFlags = stdenv.lib.optionals(buildDocs) [ "--docdir=$(doc)" ]; - preConfigure = '' - export SAGE_NUM_THREADS="$NIX_BUILD_CORES" - - export HOME=/tmp/sage-home - export SAGE_ROOT="$PWD" - export SAGE_SRC="$PWD" - - mkdir -p "$HOME" - mkdir -p "$out" - - # we need to keep the source around - dir="$PWD" - cd .. - mv "$dir" "$out/sage-root" - - export SAGE_SPKG_INSTALL_DOCS='no' - cd "$out/sage-root" # build in target dir, since `make` is also `make install` - '' - + stdenv.lib.optionalString (buildDocs) '' - mkdir -p "$doc" - export SAGE_DOC="$doc" - export SAGE_DOCBUILD_OPTS="--no-pdf-links -k" - '' - + stdenv.lib.optionalString (!optimize) '' - export SAGE_FAT_BINARY=yes - ''; - - buildFlags = if (buildDocs) then "doc" else "build"; - - # for reference: http://doc.sagemath.org/html/en/installation/source.html - preBuild = '' - # symlink python to make sure the shebangs are patched to the sage path - # while still being able to use python before building it - # (this is important because otherwise sage will try to install python - # packages globally later on) - ln -s "${python}/bin/python2" $out/bin/python2 - ln -s "$out/bin/python2" $out/bin/python - touch $out/bin/python3 - bash $patchSageShebangs . - ''; - - postBuild = '' - # Clean up - rm -r "$out/sage-root/upstream" # don't keep the sources of all the spkgs - rm -rf "$out/sage-root/src/build" - rm -rf "$out/sage-root/src/autom4te.cache" - rm -rf "$out/sage-root/src/config" - rm -rf "$out/sage-root/src/m4" - rm -rf "$out/sage-root/.git" - rm -r "$out/sage-root/logs" - rm -r "$out"/lib/python*/test - # Fix dependency cycle between out and doc - rm -f "$out/sage-root/config.log" - rm -f "$out/sage-root/config.status" - rm -f "$out/sage-root/build/make/Makefile-auto" - rm -f "$out/sage-home/.sage/gap/libgap-workspace-"* - # Make sure unnessessary packages don't end up in the build closure - find "$out" \ - -iname 'config.log' \ - -delete \ - -or -iname 'Makefile' \ - -delete - rm -f "$out/lib/R/etc/Renviron" - # Make sure all shebangs are properly patched - bash $patchSageShebangs $out - ''; - - # TODO there are some doctest failures, which seem harmless. - # We should figure out a way to fix the failures or ignore only those tests. - doCheck = false; - - checkTarget = "ptestalllong"; # all long tests in parallell - preCheck = '' - export SAGE_TIMEOUT=0 # no timeout - export SAGE_TIMEOUT_LONG=0 # no timeout - ''; - - meta = { - homepage = http://www.sagemath.org; - description = "A free open source mathematics software system"; - # taken from the homepage - longDescription = '' - SageMath is a free open-source mathematics software system licensed under the GPL. It builds on top of many existing open-source packages: NumPy, SciPy, matplotlib, Sympy, Maxima, GAP, FLINT, R and many more. Access their combined power through a common, Python-based language or directly via interfaces or wrappers. - Mission: Creating a viable free open source alternative to Magma, Maple, Mathematica and Matlab. - ''; - license = stdenv.lib.licenses.gpl2Plus; - platforms = ["x86_64-linux" "i686-linux"]; - maintainers = with stdenv.lib.maintainers; [ timokau ]; + # Sage expects those in the same directory. + pari_data = symlinkJoin { + name = "pari_data"; + paths = with nixpkgs; [ + pari-galdata + pari-seadata-small + ]; }; -} + + # https://trac.sagemath.org/ticket/22191 + ecl = nixpkgs.ecl_16_1_2; + + # sage currently uses an unreleased version of pari + pari = (nixpkgs.pari.override { withThread = false; }).overrideAttrs (attrs: rec { + version = "2.10-1280-g88fb5b3"; # on update remove pari-stackwarn patch from `sage-src.nix` + src = fetchurl { + url = "mirror://sageupstream/pari/pari-${version}.tar.gz"; + sha256 = "19gbsm8jqq3hraanbmsvzkbh88iwlqbckzbnga3y76r7k42akn7m"; + }; + }); + + # https://trac.sagemath.org/ticket/24824 + glpk = nixpkgs.glpk.overrideAttrs (attrs: rec { + version = "4.63"; + name = "glpk-${version}"; + src = fetchurl { + url = "mirror://gnu/glpk/${name}.tar.gz"; + sha256 = "1xp7nclmp8inp20968bvvfcwmz3mz03sbm0v3yjz8aqwlpqjfkci"; + }; + patches = (attrs.patches or []) ++ [ + # Alternatively patch sage with debians + # https://sources.debian.org/data/main/s/sagemath/8.1-7/debian/patches/t-version-glpk-4.60-extra-hack-fixes.patch + # The header of that debian patch contains a good description of the issue. The gist of it: + # > If GLPK in Sage causes one error, and this is caught by Sage and recovered from, then + # > later (because upstream GLPK does not clear the "error" flag) Sage will append + # > all subsequent terminal output of GLPK into the error_message string but not + # > actually forward it to the user's terminal. This breaks some doctests. + (fetchpatch { + name = "error_recovery.patch"; + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/glpk/patches/error_recovery.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "0z99z9gd31apb6x5n5n26411qzx0ma3s6dnznc4x61x86bhq31qf"; + }) + + # Allow setting a exact verbosity level (OFF|ERR|ON|ALL|DBG) + (fetchpatch { + name = "exact_verbosity.patch"; + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/glpk/patches/glp_exact_verbosity.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "15gm5i2alqla3m463i1qq6jx6c0ns6lip7njvbhp37pgxg4s9hx8"; + }) + ]; + }); +in + python.pkgs.sage-wrapper // { + doc = python.pkgs.sagedoc; + lib = python.pkgs.sagelib; + } diff --git a/pkgs/applications/science/math/sage/env-locations.nix b/pkgs/applications/science/math/sage/env-locations.nix new file mode 100644 index 00000000000..2ed079ab32b --- /dev/null +++ b/pkgs/applications/science/math/sage/env-locations.nix @@ -0,0 +1,46 @@ +{ stdenv +, writeTextFile +, pari_data +, pari +, singular +, maxima-ecl +, conway_polynomials +, graphs +, elliptic_curves +, polytopes_db +, gap-libgap-compatible +, ecl +, combinatorial_designs +, jmol +, mathjax +, three +, cysignals +}: + +writeTextFile rec { + name = "sage-env-locations"; + destination = "/${name}"; + text = '' + export GP_DATA_DIR="${pari_data}/share/pari" + export PARI_DATA_DIR="${pari_data}" + export GPHELP="${pari}/bin/gphelp" + export GPDOCDIR="${pari}/share/pari/doc" + export SINGULARPATH='${singular}/share/singular' + export SINGULAR_SO='${singular}/lib/libSingular.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}" + export CONWAY_POLYNOMIALS_DATA_DIR='${conway_polynomials}/share/conway_polynomials' + export GRAPHS_DATA_DIR='${graphs}/share/graphs' + export ELLCURVE_DATA_DIR='${elliptic_curves}/share/ellcurves' + export POLYTOPE_DATA_DIR='${polytopes_db}/share/reflexive_polytopes' + export GAP_ROOT_DIR='${gap-libgap-compatible}/share/gap/build-dir' + export ECLDIR='${ecl}/lib/ecl-${ecl.version}/' + export COMBINATORIAL_DESIGN_DATA_DIR="${combinatorial_designs}/share/combinatorial_designs" + export CREMONA_MINI_DATA_DIR="${elliptic_curves}/share/cremona" + export JMOL_DIR="${jmol}" + export MATHJAX_DIR="${mathjax}/lib/node_modules/mathjax" + export THREEJS_DIR="${three}/lib/node_modules/three" + export SAGE_INCLUDE_DIRECTORIES="${cysignals}/lib/python2.7/site-packages" + ''; +} diff --git a/pkgs/applications/science/math/sage/env.patch b/pkgs/applications/science/math/sage/env.patch deleted file mode 100644 index a7f8538eac3..00000000000 --- a/pkgs/applications/science/math/sage/env.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/src/bin/sage-env b/src/bin/sage-env -index ead308f861..ed8db9f9b7 100644 ---- a/src/bin/sage-env -+++ b/src/bin/sage-env -@@ -111,6 +111,8 @@ resolvelinks() { - } - - -+SAGE_ROOT="@out@/sage-root" -+ - # New value for SAGE_ROOT: either SAGE_ROOT (if given) - # or a guessed value based on pwd. - if [ -n "$SAGE_ROOT" ]; then -@@ -185,6 +187,8 @@ fi - export SAGE_ENV_SOURCED=$SAGE_ENV_VERSION - - export SAGE_ROOT="$NEW_SAGE_ROOT" -+export SAGE_LOCAL='@out@/' -+export PYTHONPATH="@out@/lib/python2.7/site-packages:$PYTHONPATH" - - - # sage-env must know where the Sage's script files are. diff --git a/pkgs/applications/science/math/sage/fetch-mirrors.sh b/pkgs/applications/science/math/sage/fetch-mirrors.sh deleted file mode 100755 index a1103e86beb..00000000000 --- a/pkgs/applications/science/math/sage/fetch-mirrors.sh +++ /dev/null @@ -1,11 +0,0 @@ -#! /usr/bin/env nix-shell -#! nix-shell -i bash -p curl go-pup - -# Fetches a list of all available source mirrors from the sage homepage. -# Note that the list is sorted by country, but fetchurl doesn't offer an option -# to customize mirror preference. - -curl -s http://www.sagemath.org/download-source.html \ - | pup 'table#mirror' \ - | pup 'a attr{href}' \ - | sed -e 's/index\.html/sage-${version}.tar.gz/' diff --git a/pkgs/applications/science/math/sage/flask-oldsessions.nix b/pkgs/applications/science/math/sage/flask-oldsessions.nix new file mode 100644 index 00000000000..85e35736d03 --- /dev/null +++ b/pkgs/applications/science/math/sage/flask-oldsessions.nix @@ -0,0 +1,36 @@ +{ stdenv +, buildPythonPackage +, fetchFromGitHub +, python +, flask +}: + +buildPythonPackage rec { + pname = "Flask-OldSessions"; + version = "0.10"; + + # no artifact on pypi: https://github.com/mitsuhiko/flask-oldsessions/issues/1 + src = fetchFromGitHub { + owner = "mitsuhiko"; + repo = "flask-oldsessions"; + rev = "${version}"; + sha256 = "04b5m8njjiwld9a0zw55iqwvyjgwcpdbhz1cic8nyhgcmypbicqn"; + }; + + propagatedBuildInputs = [ + flask + ]; + + # missing module flask.testsuite, probably assumes an old version of flask + doCheck = false; + checkPhase = '' + ${python.interpreter} run-tests.py + ''; + + meta = with stdenv.lib; { + description = "Provides a session class that works like the one in Flask before 0.10."; + license = licenses.bsd2; + maintainers = with maintainers; [ timokau ]; + homepage = https://github.com/mitsuhiko/flask-oldsessions; + }; +} diff --git a/pkgs/applications/science/math/sage/flask-openid.nix b/pkgs/applications/science/math/sage/flask-openid.nix new file mode 100644 index 00000000000..9043fabd9b4 --- /dev/null +++ b/pkgs/applications/science/math/sage/flask-openid.nix @@ -0,0 +1,28 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, flask +, python-openid +}: + +buildPythonPackage rec { + pname = "Flask-OpenID"; + version = "1.2.5"; + + src = fetchPypi { + inherit pname version; + sha256 = "1aycwmwi7ilcaa5ab8hm0bp6323zl8z25q9ha0gwrl8aihfgx3ss"; + }; + + propagatedBuildInputs = [ + flask + python-openid + ]; + + meta = with stdenv.lib; { + description = "Adds openid support to flask applications"; + license = licenses.bsd2; + maintainers = with maintainers; [ timokau ]; + homepage = https://pythonhosted.org/Flask-OpenID/; + }; +} diff --git a/pkgs/applications/science/math/sage/openblas-pc.nix b/pkgs/applications/science/math/sage/openblas-pc.nix new file mode 100644 index 00000000000..ba46850bbc6 --- /dev/null +++ b/pkgs/applications/science/math/sage/openblas-pc.nix @@ -0,0 +1,18 @@ +{ stdenv +, openblasCompat +, writeTextFile +, name +}: + +writeTextFile { + name = "openblas-${name}-pc-${openblasCompat.version}"; + destination = "/lib/pkgconfig/${name}.pc"; + text = '' + Name: ${name} + Version: ${openblasCompat.version} + + Description: ${name} for SageMath, provided by the OpenBLAS package. + Cflags: -I${openblasCompat}/include + Libs: -L${openblasCompat}/lib -lopenblas + ''; +} diff --git a/pkgs/applications/science/math/sage/patchSageShebangs.sh b/pkgs/applications/science/math/sage/patchSageShebangs.sh deleted file mode 100644 index 6ddf93af011..00000000000 --- a/pkgs/applications/science/math/sage/patchSageShebangs.sh +++ /dev/null @@ -1,51 +0,0 @@ -# This is a slightly modified version of nix's default patchShebangs - -dir="$1" - -echo "patching sage internal script interpreter paths in $( readlink -f "$dir")" - -find "$dir" -type f -perm -0100 | while read f; do - if [ "$(head -1 "$f" | head -c+2)" != '#!' ]; then - # missing shebang => not a script - continue - fi - - oldInterpreterLine=$(head -1 "$f" | tail -c+3) - read -r oldPath arg0 args <<< "$oldInterpreterLine" - - if $(echo "$oldPath" | grep -q "/bin/env$"); then - # Check for unsupported 'env' functionality: - # - options: something starting with a '-' - # - environment variables: foo=bar - if $(echo "$arg0" | grep -q -- "^-.*\|.*=.*"); then - echo "unsupported interpreter directive \"$oldInterpreterLine\" (set dontPatchShebangs=1 and handle shebang patching yourself)" - exit 1 - fi - executable="$arg0" - else - if [ "$oldPath" = "" ]; then - # If no interpreter is specified linux will use /bin/sh. Set - # oldpath="/bin/sh" so that we get /nix/store/.../sh. - oldPath="/bin/sh" - fi - executable="$(basename "$oldPath")" - args="$arg0 $args" - fi - - newPath="$(echo "$out/bin/$executable $args" | sed 's/[[:space:]]*$//')" - if [[ ! -x "$newPath" ]] ; then - newPath="$(command -v "$executable" || true)" - fi - - # Strip trailing whitespace introduced when no arguments are present - newInterpreterLine="$(echo "$newPath $args" | sed 's/[[:space:]]*$//')" - - if [ -n "$oldPath" -a "${oldPath:0:${#NIX_STORE}}" != "$NIX_STORE" ]; then - if [ -n "$newPath" -a "$newPath" != "$oldPath" ]; then - echo "$f: sage interpreter directive changed from \"$oldInterpreterLine\" to \"$newInterpreterLine\"" - # escape the escape chars so that sed doesn't interpret them - escapedInterpreterLine=$(echo "$newInterpreterLine" | sed 's|\\|\\\\|g') - sed -i -e "1 s|.*|#\!$escapedInterpreterLine|" "$f" - fi - fi -done diff --git a/pkgs/applications/science/math/sage/patches/arb-2.13.0.patch b/pkgs/applications/science/math/sage/patches/arb-2.13.0.patch new file mode 100644 index 00000000000..a20f1670a25 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/arb-2.13.0.patch @@ -0,0 +1,427 @@ +commit c885927e25b29bd23869e02379c2918da430323e +Author: Timo Kaufmann +Date: Sat Jun 30 02:26:15 2018 +0200 + +diff --git a/build/pkgs/arb/checksums.ini b/build/pkgs/arb/checksums.ini +index 1924ee03c3..9323b97391 100644 +--- a/build/pkgs/arb/checksums.ini ++++ b/build/pkgs/arb/checksums.ini +@@ -1,4 +1,4 @@ + tarball=arb-VERSION.tar.gz +-sha1=27476d0529e48a07d92da90bd0fb80dd18f443e3 +-md5=733285d9705d10b8024e551ffa81952f +-cksum=2391183744 ++sha1=44eda7bf8eaa666c45b1fc2c1b5bd08756d94b58 ++md5=fa24de9fffe4394fb6a7a6792e2ecc5f ++cksum=3689220688 +diff --git a/build/pkgs/arb/package-version.txt b/build/pkgs/arb/package-version.txt +index c8810e9bdb..fb2c0766b7 100644 +--- a/build/pkgs/arb/package-version.txt ++++ b/build/pkgs/arb/package-version.txt +@@ -1 +1 @@ +-2.12.0.p0 ++2.13.0 +diff --git a/build/pkgs/arb/patches/arb-pie-hardening-conflict.patch b/build/pkgs/arb/patches/arb-pie-hardening-conflict.patch +deleted file mode 100644 +index 3e5c0e708b..0000000000 +--- a/build/pkgs/arb/patches/arb-pie-hardening-conflict.patch ++++ /dev/null +@@ -1,17 +0,0 @@ +-In newer binutils, ld options -r and -pie conflict. +-Patch due to Jörg-Volker Peetz +-(source : https://groups.google.com/d/msg/sage-devel/TduebNoZuBE/sEULolL0BQAJ), +-packaged by Emmanuel Charpentier +- +-diff -ru arb-2.8.1-orig/Makefile.subdirs arb-2.8.1-new/Makefile.subdirs +---- arb-2.8.1-orig/Makefile.subdirs 2015-12-31 17:30:01.000000000 +0100 +-+++ arb-2.8.1-new/Makefile.subdirs 2016-11-07 18:50:34.540051779 +0100 +-@@ -52,7 +52,7 @@ +- $(QUIET_CC) $(CC) $(CFLAGS) $(INCS) -c $< -o $@ -MMD -MP -MF "$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$(BUILD_DIR)/$(MOD_DIR)_$*.d" -MT "$@" +- +- $(MOD_LOBJ): $(LOBJS) +-- $(QUIET_CC) $(CC) $(ABI_FLAG) -Wl,-r $^ -o $@ -nostdlib +-+ $(QUIET_CC) $(CC) $(ABI_FLAG) -r $^ -o $@ -nostdlib +- +- -include $(LOBJS:.lo=.d) +- +diff --git a/src/sage/rings/complex_arb.pyx b/src/sage/rings/complex_arb.pyx +index 70d51e655a..00e7caea2c 100644 +--- a/src/sage/rings/complex_arb.pyx ++++ b/src/sage/rings/complex_arb.pyx +@@ -857,14 +857,14 @@ class ComplexBallField(UniqueRepresentation, Field): + [0.500000000000000 +/- 2.09e-16] + + sage: CBF.integral(lambda x, _: x.gamma(), 1 - CBF(i), 1 + CBF(i)) +- [+/- 3.95e-15] + [1.5723926694981 +/- 4.53e-14]*I ++ [+/- 4...e-15] + [1.5723926694981 +/- 4...e-14]*I + + sage: C = ComplexBallField(100) + sage: C.integral(lambda x, _: x.cos() * x.sin(), 0, 1) + [0.35403670913678559674939205737 +/- 8.89e-30] + + sage: CBF.integral(lambda x, _: (x + x.exp()).sin(), 0, 8) +- [0.34740017266 +/- 6.36e-12] ++ [0.34740017266 +/- 6...e-12] + + sage: C = ComplexBallField(2000) + sage: C.integral(lambda x, _: (x + x.exp()).sin(), 0, 8) # long time +@@ -879,14 +879,14 @@ class ComplexBallField(UniqueRepresentation, Field): + ....: else: + ....: return z.sqrt() + sage: CBF.integral(my_sqrt, -1 + CBF(i), -1 - CBF(i)) +- [+/- 1.14e-14] + [-0.4752076627926 +/- 5.18e-14]*I ++ [+/- 1.14e-14] + [-0.4752076627926 +/- 5...e-14]*I + + Note, though, that proper handling of the ``analytic`` flag is required + even when the path does not touch the branch cut:: + + sage: correct = CBF.integral(my_sqrt, 1, 2); correct + [1.21895141649746 +/- 3.73e-15] +- sage: RBF(integral(sqrt(x), x, 1, 2)) ++ sage: RBF(integral(sqrt(x), x, 1, 2)) # long time + [1.21895141649746 +/- 1.79e-15] + sage: wrong = CBF.integral(lambda z, _: z.sqrt(), 1, 2) # WRONG! + sage: correct - wrong +@@ -915,9 +915,9 @@ class ComplexBallField(UniqueRepresentation, Field): + the integrand is unbounded:: + + sage: CBF.integral(lambda x, _: 1/x, -1, 1) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + sage: CBF.integral(lambda x, _: 1/x, 10^-1000, 1) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + sage: CBF.integral(lambda x, _: 1/x, 10^-1000, 1, abs_tol=1e-10) + [2302.5850930 +/- 1.26e-8] + +@@ -928,14 +928,15 @@ class ComplexBallField(UniqueRepresentation, Field): + sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, abs_tol=1e-450) + [2.304377150950e-439 +/- 9.74e-452] + sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, abs_tol=0) +- [2.304377150949e-439 +/- 7.53e-452] +- sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, rel_tol=1e-4, abs_tol=0) +- [2.30438e-439 +/- 3.90e-445] ++ [2.304377150950e-439 +/- 7...e-452] ++ sage: CBF.integral(lambda x, _: x.exp(), -1020, -1010, rel_tol=1e-2, abs_tol=0) ++ [2.30438e-439 +/- 5.94e-445] + +- sage: CBF.integral(lambda x, _: x*(1/x).sin(), 0, 1) +- [+/- 0.644] +- sage: CBF.integral(lambda x, _: x*(1/x).sin(), 0, 1, use_heap=True) +- [0.3785300 +/- 4.32e-8] ++ sage: epsi = CBF(1e-10) ++ sage: CBF.integral(lambda x, _: x*(1/x).sin(), epsi, 1) ++ [0.38 +/- 8.54e-3] ++ sage: CBF.integral(lambda x, _: x*(1/x).sin(), epsi, 1, use_heap=True) ++ [0.37853002 +/- 8.73e-9] + + ALGORITHM: + +@@ -951,12 +952,12 @@ class ComplexBallField(UniqueRepresentation, Field): + + sage: i = QuadraticField(-1).gen() + sage: CBF.integral(lambda x, _: (1 + i*x).gamma(), -1, 1) +- [1.5723926694981 +/- 4.53e-14] + [+/- 3.95e-15]*I ++ [1.5723926694981 +/- 4...e-14] + [+/- 4...e-15]*I + +- sage: ComplexBallField(10000).integral(lambda x, _: x.sin(), 0, 1, rel_tol=1e-400) +- [0.459... +/- ...e-4...] ++ sage: ComplexBallField(10000).integral(lambda x, _: x.sin(), 0, 1, rel_tol=1e-300) ++ [0.459... +/- ...e-3...] + sage: CBF.integral(lambda x, _: x.sin(), 0, 100, rel_tol=10) +- [+/- 7.61] ++ [0.138 +/- 5.53e-4] + + sage: ComplexBallField(10000).integral(lambda x, _: x.sin(), 0, 1, abs_tol=1e-400) + [0.459697... +/- ...e-4...] +@@ -2389,9 +2390,9 @@ cdef class ComplexBall(RingElement): + sage: ~CBF(i/3) + [-3.00000000000000 +/- 9.44e-16]*I + sage: ~CBF(0) +- [+/- inf] ++ nan + sage: ~CBF(RIF(10,11)) +- [0.1 +/- 9.53e-3] ++ [0.1 +/- 9.10e-3] + """ + cdef ComplexBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -2512,9 +2513,9 @@ cdef class ComplexBall(RingElement): + sage: CBF(-2, 1)/CBF(1, 1/3) + [-1.500000000000000 +/- 8.83e-16] + [1.500000000000000 +/- 5.64e-16]*I + sage: CBF(2+I)/CBF(0) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + sage: CBF(1)/CBF(0) +- [+/- inf] ++ nan + sage: CBF(1)/CBF(RBF(0, 1.)) + nan + """ +@@ -2543,9 +2544,9 @@ cdef class ComplexBall(RingElement): + sage: CBF(0)^(1/3) + 0 + sage: CBF(0)^(-1) +- [+/- inf] ++ nan + sage: CBF(0)^(-2) +- [+/- inf] + [+/- inf]*I ++ nan + nan*I + + TESTS:: + +@@ -2656,12 +2657,12 @@ cdef class ComplexBall(RingElement): + sage: CBF(1).rising_factorial(5) + 120.0000000000000 + sage: CBF(1/3, 1/2).rising_factorial(300) +- [-3.87949484514e+612 +/- 5.23e+600] + [-3.52042209763e+612 +/- 5.55e+600]*I ++ [-3.87949484514e+612 +/- 5...e+600] + [-3.52042209763e+612 +/- 5...e+600]*I + + sage: CBF(1).rising_factorial(-1) + nan + sage: CBF(1).rising_factorial(2**64) +- [+/- 2.30e+347382171305201370464] ++ [+/- 2.30e+347382171326740403407] + sage: ComplexBallField(128)(1).rising_factorial(2**64) + [2.343691126796861348e+347382171305201285713 +/- 4.71e+347382171305201285694] + sage: CBF(1/2).rising_factorial(CBF(2,3)) +@@ -2700,7 +2701,7 @@ cdef class ComplexBall(RingElement): + [1.000000000000000 +/- 2.83e-16] + [-0.441271200305303 +/- 2.82e-16]*I + + sage: CBF('inf').log() +- nan + nan*I ++ [+/- inf] + sage: CBF(2).log(0) + nan + nan*I + """ +@@ -2808,7 +2809,7 @@ cdef class ComplexBall(RingElement): + sage: CBF(pi/2, 1/10).tan() + [+/- 2.87e-14] + [10.0333111322540 +/- 2.36e-14]*I + sage: CBF(pi/2).tan() +- [+/- inf] ++ nan + """ + cdef ComplexBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -2825,7 +2826,7 @@ cdef class ComplexBall(RingElement): + sage: CBF(pi, 1/10).cot() + [+/- 5.74e-14] + [-10.0333111322540 +/- 2.81e-14]*I + sage: CBF(pi).cot() +- [+/- inf] ++ nan + """ + cdef ComplexBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -3211,9 +3212,9 @@ cdef class ComplexBall(RingElement): + 1.000000000000000*I + + sage: CBF(2+3*I).hypergeometric([1/4,1/3],[1/2]) +- [0.7871684267473 +/- 7.34e-14] + [0.2749254173721 +/- 9.23e-14]*I ++ [0.7871684267473 +/- 7...e-14] + [0.2749254173721 +/- 9...e-14]*I + sage: CBF(2+3*I).hypergeometric([1/4,1/3],[1/2],regularized=True) +- [0.4441122268685 +/- 3.96e-14] + [0.1551100567338 +/- 5.75e-14]*I ++ [0.4441122268685 +/- 3...e-14] + [0.1551100567338 +/- 5...e-14]*I + + sage: CBF(5).hypergeometric([2,3], [-5]) + nan + nan*I +@@ -4041,9 +4042,9 @@ cdef class ComplexBall(RingElement): + + sage: phi = CBF(1,1) + sage: (CBF.pi()/2).elliptic_e_inc(phi) +- [1.283840957898 +/- 3.23e-13] + [-0.5317843366915 +/- 7.79e-14]*I ++ [1.283840957898 +/- 3...e-13] + [-0.5317843366915 +/- 7...e-14]*I + sage: phi.elliptic_e() +- [1.2838409578982 +/- 5.90e-14] + [-0.5317843366915 +/- 3.35e-14]*I ++ [1.2838409578982 +/- 5...e-14] + [-0.5317843366915 +/- 3...e-14]*I + + sage: phi = CBF(2, 3/7) + sage: (CBF.pi()/2).elliptic_e_inc(phi) +@@ -4312,8 +4313,7 @@ cdef class ComplexBall(RingElement): + sage: CBF(10).laguerre_L(3, 2) + [-6.666666666667 +/- 4.15e-13] + sage: CBF(5,7).laguerre_L(CBF(2,3), CBF(1,-2)) +- [5515.315030271 +/- 4.37e-10] + [-12386.942845271 +/- 5.47e-10]*I +- ++ [5515.315030271 +/- 4...e-10] + [-12386.942845271 +/- 5...e-10]*I + """ + cdef ComplexBall my_n = self._parent.coerce(n) + cdef ComplexBall my_m = self._parent.coerce(m) +@@ -4357,9 +4357,9 @@ cdef class ComplexBall(RingElement): + EXAMPLES:: + + sage: CBF(1/2).legendre_P(5) +- [0.08984375000000000 +/- 4.5...e-18] ++ [0.0898437500000000 +/- 7...e-17] + sage: CBF(1,2).legendre_P(CBF(2,3), CBF(0,1)) +- [0.10996180744364 +/- 7.45e-15] + [0.14312767804055 +/- 8.38e-15]*I ++ [0.10996180744364 +/- 7.12e-15] + [0.14312767804055 +/- 8.07e-15]*I + sage: CBF(-10).legendre_P(5, 325/100) + [-22104403.487377 +/- 6.81e-7] + [53364750.687392 +/- 7.25e-7]*I + sage: CBF(-10).legendre_P(5, 325/100, type=3) +@@ -4393,9 +4393,9 @@ cdef class ComplexBall(RingElement): + sage: CBF(1/2).legendre_Q(5) + [0.55508089057168 +/- 2.79e-15] + sage: CBF(1,2).legendre_Q(CBF(2,3), CBF(0,1)) +- [0.167678710 +/- 4.60e-10] + [-0.161558598 +/- 7.47e-10]*I ++ [0.167678710 +/- 3.91e-10] + [-0.161558598 +/- 6.77e-10]*I + sage: CBF(-10).legendre_Q(5, 325/100) +- [-83825154.36008 +/- 4.94e-6] + [-34721515.80396 +/- 5.40e-6]*I ++ [-83825154.36008 +/- 5.02e-6] + [-34721515.80396 +/- 5.42e-6]*I + sage: CBF(-10).legendre_Q(5, 325/100, type=3) + [-4.797306921692e-6 +/- 6.82e-19] + [-4.797306921692e-6 +/- 6.57e-19]*I + +diff --git a/src/sage/rings/polynomial/polynomial_complex_arb.pyx b/src/sage/rings/polynomial/polynomial_complex_arb.pyx +index c436d4705b..ef611a566b 100644 +--- a/src/sage/rings/polynomial/polynomial_complex_arb.pyx ++++ b/src/sage/rings/polynomial/polynomial_complex_arb.pyx +@@ -543,7 +543,7 @@ cdef class Polynomial_complex_arb(Polynomial): + sage: (1 - x/3).inverse_series_trunc(3) + ([0.1111111111111111 +/- 5.99e-17])*x^2 + ([0.3333333333333333 +/- 7.04e-17])*x + 1.000000000000000 + sage: x.inverse_series_trunc(1) +- [+/- inf] ++ nan + sage: Pol(0).inverse_series_trunc(2) + (nan + nan*I)*x + nan + nan*I + +@@ -671,7 +671,7 @@ cdef class Polynomial_complex_arb(Polynomial): + sage: pol._sqrt_series(2) + ([+/- 7.51e-3] + [+/- 0.501]*I)*x + [+/- 5.01e-3] + [+/- 1.01]*I + sage: x._sqrt_series(2) +- ([+/- inf] + [+/- inf]*I)*x ++ (nan + nan*I)*x + """ + cdef Polynomial_complex_arb res = self._new() + if n < 0: +diff --git a/src/sage/rings/real_arb.pyx b/src/sage/rings/real_arb.pyx +index c9f68e38d7..76e3037a9a 100644 +--- a/src/sage/rings/real_arb.pyx ++++ b/src/sage/rings/real_arb.pyx +@@ -161,7 +161,7 @@ values and should be preferred:: + + sage: RBF(NaN) < RBF(infinity) + False +- sage: 1/RBF(0) <= RBF(infinity) ++ sage: RBF(0).add_error(infinity) <= RBF(infinity) + True + + TESTS:: +@@ -252,6 +252,8 @@ cdef void mpfi_to_arb(arb_t target, const mpfi_t source, const long precision): + (+infinity, +infinity) + sage: RBF(RIF(-infinity)).endpoints() + (-infinity, -infinity) ++ sage: RBF(RIF(-infinity, infinity)).endpoints() ++ (-infinity, +infinity) + sage: RIF(RBF(infinity)).endpoints() + (+infinity, +infinity) + sage: RIF(RBF(-infinity)).endpoints() +@@ -266,10 +268,11 @@ cdef void mpfi_to_arb(arb_t target, const mpfi_t source, const long precision): + if _do_sig(precision): sig_on() + mpfi_get_left(left, source) + mpfi_get_right(right, source) +- arb_set_interval_mpfr(target, left, right, precision) +- # Work around weakness of arb_set_interval_mpfr(tgt, inf, inf) +- if mpfr_equal_p(left, right): +- mag_zero(arb_radref(target)) ++ if mpfr_inf_p(left) and mpfr_inf_p(right) and mpfr_sgn(left) < 0 < mpfr_sgn(right): ++ # Work around a weakness of arb_set_interval_mpfr(tgt, -inf, inf) ++ arb_zero_pm_inf(target) ++ else: ++ arb_set_interval_mpfr(target, left, right, precision) + if _do_sig(precision): sig_off() + + mpfr_clear(left) +@@ -649,17 +652,15 @@ class RealBallField(UniqueRepresentation, Field): + EXAMPLES:: + + sage: RBF.some_elements() +- [1.000000000000000, +- [0.3333333333333333 +/- 7.04e-17], ++ [0, 1.000000000000000, [0.3333333333333333 +/- 7.04e-17], + [-4.733045976388941e+363922934236666733021124 +/- 3.46e+363922934236666733021108], +- [+/- inf], +- [+/- inf], +- nan] ++ [+/- inf], [+/- inf], [+/- inf], nan] + """ + import sage.symbolic.constants +- return [self(1), self(1)/3, ++ inf = self(sage.rings.infinity.Infinity) ++ return [self(0), self(1), self(1)/3, + -self(2)**(Integer(2)**80), +- self(sage.rings.infinity.Infinity), ~self(0), ++ inf, -inf, self.zero().add_error(inf), + self.element_class(self, sage.symbolic.constants.NotANumber())] + + def _sum_of_products(self, terms): +@@ -881,7 +882,7 @@ class RealBallField(UniqueRepresentation, Field): + sage: RBF.gamma(5) + 24.00000000000000 + sage: RBF.gamma(10**20) +- [+/- 5.92e+1956570551809674821757] ++ [+/- 5.50e+1956570552410610660600] + sage: RBF.gamma(1/3) + [2.678938534707747 +/- 8.99e-16] + sage: RBF.gamma(-5) +@@ -2247,7 +2248,7 @@ cdef class RealBall(RingElement): + sage: inf = RBF(+infinity) + sage: other_inf = RBF(+infinity, 42.r) + sage: neg_inf = RBF(-infinity) +- sage: extended_line = 1/RBF(0) ++ sage: extended_line = RBF(0).add_error(infinity) + sage: exact_nan = inf - inf + sage: exact_nan.mid(), exact_nan.rad() + (NaN, 0.00000000) +@@ -2659,7 +2660,7 @@ cdef class RealBall(RingElement): + sage: ~RBF(5) + [0.2000000000000000 +/- 4.45e-17] + sage: ~RBF(0) +- [+/- inf] ++ nan + sage: RBF(RIF(-0.1,0.1)) + [+/- 0.101] + +@@ -2739,7 +2740,7 @@ cdef class RealBall(RingElement): + sage: RBF(pi)/RBF(e) + [1.155727349790922 +/- 8.43e-16] + sage: RBF(2)/RBF(0) +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -2765,7 +2766,7 @@ cdef class RealBall(RingElement): + sage: RBF(-1)^(1/3) + nan + sage: RBF(0)^(-1) +- [+/- inf] ++ nan + sage: RBF(-e)**RBF(pi) + nan + +@@ -3129,7 +3130,7 @@ cdef class RealBall(RingElement): + sage: RBF(1).tan() + [1.557407724654902 +/- 3.26e-16] + sage: RBF(pi/2).tan() +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -3146,7 +3147,7 @@ cdef class RealBall(RingElement): + sage: RBF(1).cot() + [0.642092615934331 +/- 4.79e-16] + sage: RBF(pi).cot() +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() +@@ -3257,7 +3258,7 @@ cdef class RealBall(RingElement): + sage: RBF(1).coth() + [1.313035285499331 +/- 4.97e-16] + sage: RBF(0).coth() +- [+/- inf] ++ nan + """ + cdef RealBall res = self._new() + if _do_sig(prec(self)): sig_on() diff --git a/pkgs/applications/science/math/sage/patches/dochtml-optional.patch b/pkgs/applications/science/math/sage/patches/dochtml-optional.patch new file mode 100644 index 00000000000..a51e30312ed --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/dochtml-optional.patch @@ -0,0 +1,127 @@ +diff --git a/src/doc/common/conf.py b/src/doc/common/conf.py +index 25f94f7b7d..9f6139ea4a 100644 +--- a/src/doc/common/conf.py ++++ b/src/doc/common/conf.py +@@ -622,9 +622,9 @@ def call_intersphinx(app, env, node, contnode): + Check that the link from the thematic tutorials to the reference + manual is relative, see :trac:`20118`:: + +- sage: from sage.env import SAGE_DOC +- sage: thematic_index = os.path.join(SAGE_DOC, "html", "en", "thematic_tutorials", "index.html") +- sage: for line in open(thematic_index).readlines(): ++ sage: from sage.env import SAGE_DOC # optional - dochtml ++ sage: thematic_index = os.path.join(SAGE_DOC, "html", "en", "thematic_tutorials", "index.html") # optional - dochtml ++ sage: for line in open(thematic_index).readlines(): # optional - dochtml + ....: if "padics" in line: + ....: sys.stdout.write(line) +
  • Introduction to the -adics
  • +diff --git a/src/sage/doctest/control.py b/src/sage/doctest/control.py +index 4236fd05e0..8e499cbaf7 100644 +--- a/src/sage/doctest/control.py ++++ b/src/sage/doctest/control.py +@@ -87,7 +87,7 @@ class DocTestDefaults(SageObject): + self.sagenb = False + self.long = False + self.warn_long = None +- self.optional = set(['sage']) | auto_optional_tags ++ self.optional = set(['sage', 'dochtml']) | auto_optional_tags + self.randorder = None + self.global_iterations = 1 # sage-runtests default is 0 + self.file_iterations = 1 # sage-runtests default is 0 +@@ -343,7 +343,8 @@ class DocTestController(SageObject): + if not optionaltag_regex.search(o): + raise ValueError('invalid optional tag {!r}'.format(o)) + +- options.optional |= auto_optional_tags ++ if "sage" in options.optional: ++ options.optional |= auto_optional_tags + + self.options = options + self.files = args +@@ -741,7 +742,7 @@ class DocTestController(SageObject): + sage: DC = DocTestController(DD, [dirname]) + sage: DC.expand_files_into_sources() + sage: sorted(DC.sources[0].options.optional) # abs tol 1 +- ['guava', 'magma', 'py3'] ++ ['guava', 'magma'] + + We check that files are skipped appropriately:: + +@@ -968,7 +969,7 @@ class DocTestController(SageObject): + sage: from sage.doctest.control import DocTestDefaults, DocTestController + sage: DC = DocTestController(DocTestDefaults(), []) + sage: DC._optional_tags_string() +- 'sage' ++ 'dochtml,sage' + sage: DC = DocTestController(DocTestDefaults(optional="all,and,some,more"), []) + sage: DC._optional_tags_string() + 'all' +diff --git a/src/sage/misc/sagedoc.py b/src/sage/misc/sagedoc.py +index 9255aa848f..cc4712d3ec 100644 +--- a/src/sage/misc/sagedoc.py ++++ b/src/sage/misc/sagedoc.py +@@ -18,9 +18,9 @@ TESTS: + Check that argspecs of extension function/methods appear correctly, + see :trac:`12849`:: + +- sage: from sage.env import SAGE_DOC +- sage: docfilename = os.path.join(SAGE_DOC, 'html', 'en', 'reference', 'calculus', 'sage', 'symbolic', 'expression.html') +- sage: with open(docfilename) as fobj: ++ sage: from sage.env import SAGE_DOC # optional - dochtml ++ sage: docfilename = os.path.join(SAGE_DOC, 'html', 'en', 'reference', 'calculus', 'sage', 'symbolic', 'expression.html') # optional - dochtml ++ sage: with open(docfilename) as fobj: # optional - dochtml + ....: for line in fobj: + ....: if "#sage.symbolic.expression.Expression.numerical_approx" in line: + ....: print(line) +@@ -790,11 +790,12 @@ def _search_src_or_doc(what, string, extra1='', extra2='', extra3='', + + :: + +- sage: len(_search_src_or_doc('src', r'matrix\(', 'incidence_structures', 'self', 'combinat', interact=False).splitlines()) > 1 ++ sage: from sage.misc.sagedoc import _search_src_or_doc # optional - dochtml ++ sage: len(_search_src_or_doc('src', r'matrix\(', 'incidence_structures', 'self', 'combinat', interact=False).splitlines()) > 1 # optional - dochtml + True +- sage: 'abvar/homology' in _search_src_or_doc('doc', 'homology', 'variety', interact=False) # long time (4s on sage.math, 2012) ++ sage: 'abvar/homology' in _search_src_or_doc('doc', 'homology', 'variety', interact=False) # optional - dochtml, long time (4s on sage.math, 2012) + True +- sage: 'divisors' in _search_src_or_doc('src', '^ *def prime', interact=False) ++ sage: 'divisors' in _search_src_or_doc('src', '^ *def prime', interact=False) # optional - dochtml + True + """ + # process keywords +@@ -1160,9 +1161,9 @@ def search_doc(string, extra1='', extra2='', extra3='', extra4='', + counting the length of ``search_doc('tree', + interact=False).splitlines()`` gives the number of matches. :: + +- sage: len(search_doc('tree', interact=False).splitlines()) > 4000 # long time ++ sage: len(search_doc('tree', interact=False).splitlines()) > 4000 # optional - dochtml, long time + True +- sage: len(search_doc('tree', whole_word=True, interact=False).splitlines()) < 2000 # long time ++ sage: len(search_doc('tree', whole_word=True, interact=False).splitlines()) < 2000 # optional - dochtml, long time + True + """ + return _search_src_or_doc('doc', string, extra1=extra1, extra2=extra2, +@@ -1332,9 +1333,9 @@ class _sage_doc: + + EXAMPLES:: + +- sage: browse_sage_doc._open("reference", testing=True)[0] # indirect doctest ++ sage: browse_sage_doc._open("reference", testing=True)[0] # optional - dochtml, indirect doctest + 'http://localhost:8000/doc/live/reference/index.html' +- sage: browse_sage_doc(identity_matrix, 'rst')[-107:-47] ++ sage: browse_sage_doc(identity_matrix, 'rst')[-107:-47] # optional - dochtml + 'Full MatrixSpace of 3 by 3 sparse matrices over Integer Ring' + """ + def __init__(self): +@@ -1494,9 +1495,9 @@ class _sage_doc: + + EXAMPLES:: + +- sage: browse_sage_doc._open("reference", testing=True)[0] ++ sage: browse_sage_doc._open("reference", testing=True)[0] # optional - dochtml + 'http://localhost:8000/doc/live/reference/index.html' +- sage: browse_sage_doc._open("tutorial", testing=True)[1] ++ sage: browse_sage_doc._open("tutorial", testing=True)[1] # optional - dochtml + '.../html/en/tutorial/index.html' + """ + url = self._base_url + os.path.join(name, "index.html") diff --git a/pkgs/applications/science/math/sage/patches/eclib-regulator-precision.patch b/pkgs/applications/science/math/sage/patches/eclib-regulator-precision.patch new file mode 100644 index 00000000000..a1464b8fe31 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/eclib-regulator-precision.patch @@ -0,0 +1,98 @@ +diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py +index f77000c478..9d17d412ae 100644 +--- a/src/sage/libs/eclib/interface.py ++++ b/src/sage/libs/eclib/interface.py +@@ -1014,7 +1014,7 @@ class mwrank_MordellWeil(SageObject): + WARNING: saturation at primes p > 2 will not be done; + ... + Gained index 2 +- New regulator = 93.857300720636393209 ++ New regulator = 93.85730... + (False, 2, '[ ]') + sage: EQ.points() + [[-2, 3, 1], [2707496766203306, 864581029138191, 2969715140223272], [-13422227300, -49322830557, 12167000000]] +@@ -1025,7 +1025,7 @@ class mwrank_MordellWeil(SageObject): + WARNING: saturation at primes p > 3 will not be done; + ... + Gained index 3 +- New regulator = 10.4285889689595992455 ++ New regulator = 10.42858... + (False, 3, '[ ]') + sage: EQ.points() + [[-2, 3, 1], [-14, 25, 8], [-13422227300, -49322830557, 12167000000]] +@@ -1036,7 +1036,7 @@ class mwrank_MordellWeil(SageObject): + WARNING: saturation at primes p > 5 will not be done; + ... + Gained index 5 +- New regulator = 0.417143558758383969818 ++ New regulator = 0.41714... + (False, 5, '[ ]') + sage: EQ.points() + [[-2, 3, 1], [-14, 25, 8], [1, -1, 1]] +@@ -1221,7 +1221,7 @@ class mwrank_MordellWeil(SageObject): + WARNING: saturation at primes p > 2 will not be done; + ... + Gained index 2 +- New regulator = 93.857300720636393209 ++ New regulator = 93.85730... + (False, 2, '[ ]') + sage: EQ + Subgroup of Mordell-Weil group: [[-2:3:1], [2707496766203306:864581029138191:2969715140223272], [-13422227300:-49322830557:12167000000]] +@@ -1235,7 +1235,7 @@ class mwrank_MordellWeil(SageObject): + WARNING: saturation at primes p > 3 will not be done; + ... + Gained index 3 +- New regulator = 10.4285889689595992455 ++ New regulator = 10.42858... + (False, 3, '[ ]') + sage: EQ + Subgroup of Mordell-Weil group: [[-2:3:1], [-14:25:8], [-13422227300:-49322830557:12167000000]] +@@ -1249,7 +1249,7 @@ class mwrank_MordellWeil(SageObject): + WARNING: saturation at primes p > 5 will not be done; + ... + Gained index 5 +- New regulator = 0.417143558758383969818 ++ New regulator = 0.41714... + (False, 5, '[ ]') + sage: EQ + Subgroup of Mordell-Weil group: [[-2:3:1], [-14:25:8], [1:-1:1]] +diff --git a/src/sage/libs/eclib/mwrank.pyx b/src/sage/libs/eclib/mwrank.pyx +index a4f89e1ca5..f8a22d2f55 100644 +--- a/src/sage/libs/eclib/mwrank.pyx ++++ b/src/sage/libs/eclib/mwrank.pyx +@@ -1234,9 +1234,9 @@ cdef class _two_descent: + sage: D2.saturate() + Searching for points (bound = 8)...done: + found points which generate a subgroup of rank 3 +- and regulator 0.417143558758383969817119544618093396749810106098479 ++ and regulator 0.41714... + Processing points found during 2-descent...done: +- now regulator = 0.417143558758383969817119544618093396749810106098479 ++ now regulator = 0.41714... + No saturation being done + sage: D2.getbasis() + '[[1:-1:1], [-2:3:1], [-14:25:8]]' +@@ -1281,9 +1281,9 @@ cdef class _two_descent: + sage: D2.saturate() + Searching for points (bound = 8)...done: + found points which generate a subgroup of rank 3 +- and regulator 0.417143558758383969817119544618093396749810106098479 ++ and regulator 0.41714... + Processing points found during 2-descent...done: +- now regulator = 0.417143558758383969817119544618093396749810106098479 ++ now regulator = 0.41714... + No saturation being done + sage: D2.getbasis() + '[[1:-1:1], [-2:3:1], [-14:25:8]]' +@@ -1329,9 +1329,9 @@ cdef class _two_descent: + sage: D2.saturate() + Searching for points (bound = 8)...done: + found points which generate a subgroup of rank 3 +- and regulator 0.417143558758383969817119544618093396749810106098479 ++ and regulator 0.41714... + Processing points found during 2-descent...done: +- now regulator = 0.417143558758383969817119544618093396749810106098479 ++ now regulator = 0.41714... + No saturation being done + sage: D2.getbasis() + '[[1:-1:1], [-2:3:1], [-14:25:8]]' diff --git a/pkgs/applications/science/math/sage/patches/matplotlib-normed-deprecated.patch b/pkgs/applications/science/math/sage/patches/matplotlib-normed-deprecated.patch new file mode 100644 index 00000000000..41747635cac --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/matplotlib-normed-deprecated.patch @@ -0,0 +1,12 @@ +diff --git a/src/sage/all.py b/src/sage/all.py +index 14cec431f1..25a35a0522 100644 +--- a/src/sage/all.py ++++ b/src/sage/all.py +@@ -310,6 +310,7 @@ warnings.filters.remove(('ignore', None, DeprecationWarning, None, 0)) + # Ignore all deprecations from IPython etc. + warnings.filterwarnings('ignore', + module='.*(IPython|ipykernel|jupyter_client|jupyter_core|nbformat|notebook|ipywidgets|storemagic)') ++warnings.filterwarnings('ignore', "The 'normed' kwarg is deprecated, and has been replaced by the 'density' kwarg.") # matplotlib normed deprecation + # However, be sure to keep OUR deprecation warnings + warnings.filterwarnings('default', + '[\s\S]*See http://trac.sagemath.org/[0-9]* for details.') diff --git a/pkgs/applications/science/math/sage/patches/maxima-5.41.0-doctests.patch b/pkgs/applications/science/math/sage/patches/maxima-5.41.0-doctests.patch new file mode 100644 index 00000000000..fad434e52ad --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/maxima-5.41.0-doctests.patch @@ -0,0 +1,48 @@ +diff --git a/src/sage/interfaces/maxima_abstract.py b/src/sage/interfaces/maxima_abstract.py +index 961c20aaac..3d601d8939 100644 +--- a/src/sage/interfaces/maxima_abstract.py ++++ b/src/sage/interfaces/maxima_abstract.py +@@ -1743,7 +1743,7 @@ class MaximaAbstractElement(ExtraTabCompletion, InterfaceElement): + sage: y,d = var('y,d') + sage: f = function('f') + sage: latex(maxima(derivative(f(x*y), x))) +- \left(\left.{{{\it \partial}}\over{{\it \partial}\, {\it t_0}}}\,f\left({\it t_0}\right) \right|_{{\it t_0}={\it x}\, {\it y}}\right)\,{\it y} ++ \left(\left.{{{\it \partial}}\over{{\it \partial}\, {\it t}_{0}}}\,f\left({\it t}_{0}\right) \right|_{{\it t}_{0}={\it x}\, {\it y}}\right)\,{\it y} + sage: latex(maxima(derivative(f(x,y,d), d,x,x,y))) + {{{\it \partial}^4}\over{{\it \partial}\,{\it d}\, {\it \partial}\,{\it x}^2\,{\it \partial}\, {\it y}}}\,f\left({\it x} , {\it y} , {\it d}\right) + sage: latex(maxima(d/(d-2))) +diff --git a/src/sage/manifolds/differentiable/metric.py b/src/sage/manifolds/differentiable/metric.py +index 3cd6ad3235..1e18af1a6b 100644 +--- a/src/sage/manifolds/differentiable/metric.py ++++ b/src/sage/manifolds/differentiable/metric.py +@@ -993,7 +993,7 @@ class PseudoRiemannianMetric(TensorField): + 2-dimensional differentiable manifold S^2 + sage: g.riemann()[:] + [[[[0, 0], [0, 0]], [[0, sin(th)^2], [-sin(th)^2, 0]]], +- [[[0, (cos(th)^2 - 1)/sin(th)^2], [1, 0]], [[0, 0], [0, 0]]]] ++ [[[0, -1], [1, 0]], [[0, 0], [0, 0]]]] + + In dimension 2, the Riemann tensor can be expressed entirely in terms of + the Ricci scalar `r`: +diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx +index dfb8751467..27402e54ab 100644 +--- a/src/sage/symbolic/expression.pyx ++++ b/src/sage/symbolic/expression.pyx +@@ -7154,7 +7154,7 @@ cdef class Expression(CommutativeRingElement): + sage: ex = lcm(sin(x)^2 - 1, sin(x)^2 + sin(x)); ex + (sin(x)^2 + sin(x))*(sin(x)^2 - 1)/(sin(x) + 1) + sage: ex.simplify_full() +- -cos(x)^2*sin(x) ++ sin(x)^3 - sin(x) + + TESTS: + +@@ -10004,7 +10004,7 @@ cdef class Expression(CommutativeRingElement): + + sage: f=tan(3*x) + sage: f.simplify_trig() +- (4*cos(x)^2 - 1)*sin(x)/(4*cos(x)^3 - 3*cos(x)) ++ -(4*cos(x)^2 - 1)*sin(x)/(4*cos(x)*sin(x)^2 - cos(x)) + sage: f.simplify_trig(False) + sin(3*x)/cos(3*x) + diff --git a/pkgs/applications/science/math/sage/patches/numpy-1.14.3.patch b/pkgs/applications/science/math/sage/patches/numpy-1.14.3.patch new file mode 100644 index 00000000000..5927bc11609 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/numpy-1.14.3.patch @@ -0,0 +1,812 @@ +diff --git a/src/doc/en/faq/faq-usage.rst b/src/doc/en/faq/faq-usage.rst +index 79b4205fd3..9a89bd2136 100644 +--- a/src/doc/en/faq/faq-usage.rst ++++ b/src/doc/en/faq/faq-usage.rst +@@ -338,7 +338,7 @@ ints. For example:: + sage: RealNumber = float; Integer = int + sage: from scipy import stats + sage: stats.ttest_ind(list([1,2,3,4,5]),list([2,3,4,5,.6])) +- Ttest_indResult(statistic=0.076752955645333687, pvalue=0.94070490247380478) ++ Ttest_indResult(statistic=0.0767529..., pvalue=0.940704...) + sage: stats.uniform(0,15).ppf([0.5,0.7]) + array([ 7.5, 10.5]) + +diff --git a/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst b/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst +index 314811c42b..e5f54ec4c2 100644 +--- a/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst ++++ b/src/doc/en/thematic_tutorials/numerical_sage/cvxopt.rst +@@ -48,11 +48,13 @@ we could do the following. + sage: B = numpy.array([1.0]*5) + sage: B.shape=(5,1) + sage: print(B) +- [[ 1.] +- [ 1.] +- [ 1.] +- [ 1.] +- [ 1.]] ++ [[1.] ++ [1.] ++ [1.] ++ [1.] ++ [1.]] ++ ++ + sage: print(A) + [ 2.00e+00 3.00e+00 0 0 0 ] + [ 3.00e+00 0 4.00e+00 0 6.00e+00] +diff --git a/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst b/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst +index 5b89cd75ee..e50b2ea5d4 100644 +--- a/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst ++++ b/src/doc/en/thematic_tutorials/numerical_sage/numpy.rst +@@ -84,7 +84,7 @@ well as take slices + sage: l[3] + 3.0 + sage: l[3:6] +- array([ 3., 4., 5.]) ++ array([3., 4., 5.]) + + You can do basic arithmetic operations + +@@ -147,11 +147,11 @@ also do matrix vector multiplication, and matrix addition + sage: n = numpy.matrix([[1,2],[3,4]],dtype=float) + sage: v = numpy.array([[1],[2]],dtype=float) + sage: n*v +- matrix([[ 5.], +- [ 11.]]) ++ matrix([[ 5.], ++ [11.]]) + sage: n+n +- matrix([[ 2., 4.], +- [ 6., 8.]]) ++ matrix([[2., 4.], ++ [6., 8.]]) + + If ``n`` was created with :meth:`numpy.array`, then to do matrix vector + multiplication, you would use ``numpy.dot(n,v)``. +@@ -170,11 +170,11 @@ to manipulate + 22., 23., 24.]) + sage: n.shape=(5,5) + sage: n +- array([[ 0., 1., 2., 3., 4.], +- [ 5., 6., 7., 8., 9.], +- [ 10., 11., 12., 13., 14.], +- [ 15., 16., 17., 18., 19.], +- [ 20., 21., 22., 23., 24.]]) ++ array([[ 0., 1., 2., 3., 4.], ++ [ 5., 6., 7., 8., 9.], ++ [10., 11., 12., 13., 14.], ++ [15., 16., 17., 18., 19.], ++ [20., 21., 22., 23., 24.]]) + + This changes the one-dimensional array into a `5\times 5` array. + +@@ -187,8 +187,8 @@ NumPy arrays can be sliced as well + sage: n=numpy.array(range(25),dtype=float) + sage: n.shape=(5,5) + sage: n[2:4,1:3] +- array([[ 11., 12.], +- [ 16., 17.]]) ++ array([[11., 12.], ++ [16., 17.]]) + + It is important to note that the sliced matrices are references to + the original +@@ -224,8 +224,8 @@ Some particularly useful commands are + + sage: x=numpy.arange(0,2,.1,dtype=float) + sage: x +- array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , +- 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9]) ++ array([0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9, 1. , 1.1, 1.2, ++ 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9]) + + You can see that :meth:`numpy.arange` creates an array of floats increasing by 0.1 + from 0 to 2. There is a useful command :meth:`numpy.r_` that is best explained by example +@@ -240,10 +240,11 @@ from 0 to 2. There is a useful command :meth:`numpy.r_` that is best explained b + sage: Integer=int + sage: n=r_[0.0:5.0] + sage: n +- array([ 0., 1., 2., 3., 4.]) ++ array([0., 1., 2., 3., 4.]) + sage: n=r_[0.0:5.0, [0.0]*5] + sage: n +- array([ 0., 1., 2., 3., 4., 0., 0., 0., 0., 0.]) ++ array([0., 1., 2., 3., 4., 0., 0., 0., 0., 0.]) ++ + + :meth:`numpy.r_` provides a shorthand for constructing NumPy arrays efficiently. + Note in the above ``0.0:5.0`` was shorthand for ``0.0, 1.0, 2.0, 3.0, 4.0``. +@@ -255,7 +256,7 @@ intervals. We can do this as follows + :: + + sage: r_[0.0:5.0:11*j] +- array([ 0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ]) ++ array([0. , 0.5, 1. , 1.5, 2. , 2.5, 3. , 3.5, 4. , 4.5, 5. ]) + + The notation ``0.0:5.0:11*j`` expands to a list of 11 equally space + points between 0 and 5 including both endpoints. Note that ``j`` is the +@@ -287,23 +288,23 @@ an equally spaced grid with `\Delta x = \Delta y = .25` for + sage: y=numpy.r_[0.0:1.0:5*j] + sage: xx,yy= meshgrid(x,y) + sage: xx +- array([[ 0. , 0.25, 0.5 , 0.75, 1. ], +- [ 0. , 0.25, 0.5 , 0.75, 1. ], +- [ 0. , 0.25, 0.5 , 0.75, 1. ], +- [ 0. , 0.25, 0.5 , 0.75, 1. ], +- [ 0. , 0.25, 0.5 , 0.75, 1. ]]) ++ array([[0. , 0.25, 0.5 , 0.75, 1. ], ++ [0. , 0.25, 0.5 , 0.75, 1. ], ++ [0. , 0.25, 0.5 , 0.75, 1. ], ++ [0. , 0.25, 0.5 , 0.75, 1. ], ++ [0. , 0.25, 0.5 , 0.75, 1. ]]) + sage: yy +- array([[ 0. , 0. , 0. , 0. , 0. ], +- [ 0.25, 0.25, 0.25, 0.25, 0.25], +- [ 0.5 , 0.5 , 0.5 , 0.5 , 0.5 ], +- [ 0.75, 0.75, 0.75, 0.75, 0.75], +- [ 1. , 1. , 1. , 1. , 1. ]]) ++ array([[0. , 0. , 0. , 0. , 0. ], ++ [0.25, 0.25, 0.25, 0.25, 0.25], ++ [0.5 , 0.5 , 0.5 , 0.5 , 0.5 ], ++ [0.75, 0.75, 0.75, 0.75, 0.75], ++ [1. , 1. , 1. , 1. , 1. ]]) + sage: f(xx,yy) +- array([[ 0. , 0.0625, 0.25 , 0.5625, 1. ], +- [ 0.0625, 0.125 , 0.3125, 0.625 , 1.0625], +- [ 0.25 , 0.3125, 0.5 , 0.8125, 1.25 ], +- [ 0.5625, 0.625 , 0.8125, 1.125 , 1.5625], +- [ 1. , 1.0625, 1.25 , 1.5625, 2. ]]) ++ array([[0. , 0.0625, 0.25 , 0.5625, 1. ], ++ [0.0625, 0.125 , 0.3125, 0.625 , 1.0625], ++ [0.25 , 0.3125, 0.5 , 0.8125, 1.25 ], ++ [0.5625, 0.625 , 0.8125, 1.125 , 1.5625], ++ [1. , 1.0625, 1.25 , 1.5625, 2. ]]) + + You can see that :meth:`numpy.meshgrid` produces a pair of matrices, here denoted + `xx` and `yy`, such that `(xx[i,j],yy[i,j])` has coordinates +@@ -324,7 +325,7 @@ equation `Ax=b` do + sage: b=numpy.array(range(1,6)) + sage: x=linalg.solve(A,b) + sage: numpy.dot(A,x) +- array([ 1., 2., 3., 4., 5.]) ++ array([1., 2., 3., 4., 5.]) + + This creates a random 5x5 matrix ``A``, and solves `Ax=b` where + ``b=[0.0,1.0,2.0,3.0,4.0]``. There are many other routines in the :mod:`numpy.linalg` +diff --git a/src/sage/calculus/riemann.pyx b/src/sage/calculus/riemann.pyx +index df85cce43d..34ea164be0 100644 +--- a/src/sage/calculus/riemann.pyx ++++ b/src/sage/calculus/riemann.pyx +@@ -1191,30 +1191,30 @@ cpdef complex_to_spiderweb(np.ndarray[COMPLEX_T, ndim = 2] z_values, + sage: zval = numpy.array([[0, 1, 1000],[.2+.3j,1,-.3j],[0,0,0]],dtype = numpy.complex128) + sage: deriv = numpy.array([[.1]],dtype = numpy.float64) + sage: complex_to_spiderweb(zval, deriv,deriv, 4,4,[0,0,0],1,False,0.001) +- array([[[ 1., 1., 1.], +- [ 1., 1., 1.], +- [ 1., 1., 1.]], ++ array([[[1., 1., 1.], ++ [1., 1., 1.], ++ [1., 1., 1.]], + +- [[ 1., 1., 1.], +- [ 0., 0., 0.], +- [ 1., 1., 1.]], ++ [[1., 1., 1.], ++ [0., 0., 0.], ++ [1., 1., 1.]], + +- [[ 1., 1., 1.], +- [ 1., 1., 1.], +- [ 1., 1., 1.]]]) ++ [[1., 1., 1.], ++ [1., 1., 1.], ++ [1., 1., 1.]]]) + + sage: complex_to_spiderweb(zval, deriv,deriv, 4,4,[0,0,0],1,True,0.001) +- array([[[ 1. , 1. , 1. ], +- [ 1. , 0.05558355, 0.05558355], +- [ 0.17301243, 0. , 0. ]], ++ array([[[1. , 1. , 1. ], ++ [1. , 0.05558355, 0.05558355], ++ [0.17301243, 0. , 0. ]], + +- [[ 1. , 0.96804683, 0.48044583], +- [ 0. , 0. , 0. ], +- [ 0.77351965, 0.5470393 , 1. ]], ++ [[1. , 0.96804683, 0.48044583], ++ [0. , 0. , 0. ], ++ [0.77351965, 0.5470393 , 1. ]], + +- [[ 1. , 1. , 1. ], +- [ 1. , 1. , 1. ], +- [ 1. , 1. , 1. ]]]) ++ [[1. , 1. , 1. ], ++ [1. , 1. , 1. ], ++ [1. , 1. , 1. ]]]) + """ + cdef Py_ssize_t i, j, imax, jmax + cdef FLOAT_T x, y, mag, arg, width, target, precision, dmag, darg +@@ -1279,14 +1279,14 @@ cpdef complex_to_rgb(np.ndarray[COMPLEX_T, ndim = 2] z_values): + sage: from sage.calculus.riemann import complex_to_rgb + sage: import numpy + sage: complex_to_rgb(numpy.array([[0, 1, 1000]], dtype = numpy.complex128)) +- array([[[ 1. , 1. , 1. ], +- [ 1. , 0.05558355, 0.05558355], +- [ 0.17301243, 0. , 0. ]]]) ++ array([[[1. , 1. , 1. ], ++ [1. , 0.05558355, 0.05558355], ++ [0.17301243, 0. , 0. ]]]) + + sage: complex_to_rgb(numpy.array([[0, 1j, 1000j]], dtype = numpy.complex128)) +- array([[[ 1. , 1. , 1. ], +- [ 0.52779177, 1. , 0.05558355], +- [ 0.08650622, 0.17301243, 0. ]]]) ++ array([[[1. , 1. , 1. ], ++ [0.52779177, 1. , 0.05558355], ++ [0.08650622, 0.17301243, 0. ]]]) + + + TESTS:: +diff --git a/src/sage/combinat/fully_packed_loop.py b/src/sage/combinat/fully_packed_loop.py +index 61b1003002..4baee9cbbd 100644 +--- a/src/sage/combinat/fully_packed_loop.py ++++ b/src/sage/combinat/fully_packed_loop.py +@@ -72,11 +72,11 @@ def _make_color_list(n, colors=None, color_map=None, randomize=False): + sage: _make_color_list(5, ['blue', 'red']) + ['blue', 'red', 'blue', 'red', 'blue'] + sage: _make_color_list(5, color_map='summer') +- [(0.0, 0.5, 0.40000000000000002), +- (0.25098039215686274, 0.62549019607843137, 0.40000000000000002), +- (0.50196078431372548, 0.75098039215686274, 0.40000000000000002), +- (0.75294117647058822, 0.87647058823529411, 0.40000000000000002), +- (1.0, 1.0, 0.40000000000000002)] ++ [(0.0, 0.5, 0.4), ++ (0.25098039215686274, 0.6254901960784314, 0.4), ++ (0.5019607843137255, 0.7509803921568627, 0.4), ++ (0.7529411764705882, 0.8764705882352941, 0.4), ++ (1.0, 1.0, 0.4)] + sage: _make_color_list(8, ['blue', 'red'], randomize=True) + ['blue', 'blue', 'red', 'blue', 'red', 'red', 'red', 'blue'] + """ +diff --git a/src/sage/finance/time_series.pyx b/src/sage/finance/time_series.pyx +index c37700d14e..49b7298d0b 100644 +--- a/src/sage/finance/time_series.pyx ++++ b/src/sage/finance/time_series.pyx +@@ -109,8 +109,8 @@ cdef class TimeSeries: + + sage: import numpy + sage: v = numpy.array([[1,2], [3,4]], dtype=float); v +- array([[ 1., 2.], +- [ 3., 4.]]) ++ array([[1., 2.], ++ [3., 4.]]) + sage: finance.TimeSeries(v) + [1.0000, 2.0000, 3.0000, 4.0000] + sage: finance.TimeSeries(v[:,0]) +@@ -2098,14 +2098,14 @@ cdef class TimeSeries: + + sage: w[0] = 20 + sage: w +- array([ 20. , -3. , 4.5, -2. ]) ++ array([20. , -3. , 4.5, -2. ]) + sage: v + [20.0000, -3.0000, 4.5000, -2.0000] + + If you want a separate copy do not give the ``copy=False`` option. :: + + sage: z = v.numpy(); z +- array([ 20. , -3. , 4.5, -2. ]) ++ array([20. , -3. , 4.5, -2. ]) + sage: z[0] = -10 + sage: v + [20.0000, -3.0000, 4.5000, -2.0000] +diff --git a/src/sage/functions/hyperbolic.py b/src/sage/functions/hyperbolic.py +index 931a4b41e4..bf33fc483d 100644 +--- a/src/sage/functions/hyperbolic.py ++++ b/src/sage/functions/hyperbolic.py +@@ -214,7 +214,7 @@ class Function_coth(GinacFunction): + sage: import numpy + sage: a = numpy.arange(2, 5) + sage: coth(a) +- array([ 1.03731472, 1.00496982, 1.00067115]) ++ array([1.03731472, 1.00496982, 1.00067115]) + """ + return 1.0 / tanh(x) + +@@ -267,7 +267,7 @@ class Function_sech(GinacFunction): + sage: import numpy + sage: a = numpy.arange(2, 5) + sage: sech(a) +- array([ 0.26580223, 0.09932793, 0.03661899]) ++ array([0.26580223, 0.09932793, 0.03661899]) + """ + return 1.0 / cosh(x) + +@@ -318,7 +318,7 @@ class Function_csch(GinacFunction): + sage: import numpy + sage: a = numpy.arange(2, 5) + sage: csch(a) +- array([ 0.27572056, 0.09982157, 0.03664357]) ++ array([0.27572056, 0.09982157, 0.03664357]) + """ + return 1.0 / sinh(x) + +@@ -586,7 +586,7 @@ class Function_arccoth(GinacFunction): + sage: import numpy + sage: a = numpy.arange(2,5) + sage: acoth(a) +- array([ 0.54930614, 0.34657359, 0.25541281]) ++ array([0.54930614, 0.34657359, 0.25541281]) + """ + return arctanh(1.0 / x) + +diff --git a/src/sage/functions/orthogonal_polys.py b/src/sage/functions/orthogonal_polys.py +index 017c85a96f..33fbb499c5 100644 +--- a/src/sage/functions/orthogonal_polys.py ++++ b/src/sage/functions/orthogonal_polys.py +@@ -810,12 +810,12 @@ class Func_chebyshev_T(ChebyshevFunction): + sage: z2 = numpy.array([[1,2],[1,2]]) + sage: z3 = numpy.array([1,2,3.]) + sage: chebyshev_T(1,z) +- array([ 1., 2.]) ++ array([1., 2.]) + sage: chebyshev_T(1,z2) +- array([[ 1., 2.], +- [ 1., 2.]]) ++ array([[1., 2.], ++ [1., 2.]]) + sage: chebyshev_T(1,z3) +- array([ 1., 2., 3.]) ++ array([1., 2., 3.]) + sage: chebyshev_T(z,0.1) + array([ 0.1 , -0.98]) + """ +@@ -1095,12 +1095,12 @@ class Func_chebyshev_U(ChebyshevFunction): + sage: z2 = numpy.array([[1,2],[1,2]]) + sage: z3 = numpy.array([1,2,3.]) + sage: chebyshev_U(1,z) +- array([ 2., 4.]) ++ array([2., 4.]) + sage: chebyshev_U(1,z2) +- array([[ 2., 4.], +- [ 2., 4.]]) ++ array([[2., 4.], ++ [2., 4.]]) + sage: chebyshev_U(1,z3) +- array([ 2., 4., 6.]) ++ array([2., 4., 6.]) + sage: chebyshev_U(z,0.1) + array([ 0.2 , -0.96]) + """ +diff --git a/src/sage/functions/other.py b/src/sage/functions/other.py +index 679384c907..d63b295a4c 100644 +--- a/src/sage/functions/other.py ++++ b/src/sage/functions/other.py +@@ -390,7 +390,7 @@ class Function_ceil(BuiltinFunction): + sage: import numpy + sage: a = numpy.linspace(0,2,6) + sage: ceil(a) +- array([ 0., 1., 1., 2., 2., 2.]) ++ array([0., 1., 1., 2., 2., 2.]) + + Test pickling:: + +@@ -539,7 +539,7 @@ class Function_floor(BuiltinFunction): + sage: import numpy + sage: a = numpy.linspace(0,2,6) + sage: floor(a) +- array([ 0., 0., 0., 1., 1., 2.]) ++ array([0., 0., 0., 1., 1., 2.]) + sage: floor(x)._sympy_() + floor(x) + +@@ -840,7 +840,7 @@ def sqrt(x, *args, **kwds): + sage: import numpy + sage: a = numpy.arange(2,5) + sage: sqrt(a) +- array([ 1.41421356, 1.73205081, 2. ]) ++ array([1.41421356, 1.73205081, 2. ]) + """ + if isinstance(x, float): + return math.sqrt(x) +diff --git a/src/sage/functions/trig.py b/src/sage/functions/trig.py +index e7e7a311cd..e7ff78a9de 100644 +--- a/src/sage/functions/trig.py ++++ b/src/sage/functions/trig.py +@@ -731,7 +731,7 @@ class Function_arccot(GinacFunction): + sage: import numpy + sage: a = numpy.arange(2, 5) + sage: arccot(a) +- array([ 0.46364761, 0.32175055, 0.24497866]) ++ array([0.46364761, 0.32175055, 0.24497866]) + """ + return math.pi/2 - arctan(x) + +@@ -787,7 +787,7 @@ class Function_arccsc(GinacFunction): + sage: import numpy + sage: a = numpy.arange(2, 5) + sage: arccsc(a) +- array([ 0.52359878, 0.33983691, 0.25268026]) ++ array([0.52359878, 0.33983691, 0.25268026]) + """ + return arcsin(1.0/x) + +@@ -845,7 +845,7 @@ class Function_arcsec(GinacFunction): + sage: import numpy + sage: a = numpy.arange(2, 5) + sage: arcsec(a) +- array([ 1.04719755, 1.23095942, 1.31811607]) ++ array([1.04719755, 1.23095942, 1.31811607]) + """ + return arccos(1.0/x) + +@@ -920,13 +920,13 @@ class Function_arctan2(GinacFunction): + sage: a = numpy.linspace(1, 3, 3) + sage: b = numpy.linspace(3, 6, 3) + sage: atan2(a, b) +- array([ 0.32175055, 0.41822433, 0.46364761]) ++ array([0.32175055, 0.41822433, 0.46364761]) + + sage: atan2(1,a) +- array([ 0.78539816, 0.46364761, 0.32175055]) ++ array([0.78539816, 0.46364761, 0.32175055]) + + sage: atan2(a, 1) +- array([ 0.78539816, 1.10714872, 1.24904577]) ++ array([0.78539816, 1.10714872, 1.24904577]) + + TESTS:: + +diff --git a/src/sage/matrix/constructor.pyx b/src/sage/matrix/constructor.pyx +index 19a1d37df0..5780dfae1c 100644 +--- a/src/sage/matrix/constructor.pyx ++++ b/src/sage/matrix/constructor.pyx +@@ -494,8 +494,8 @@ class MatrixFactory(object): + [7 8 9] + Full MatrixSpace of 3 by 3 dense matrices over Integer Ring + sage: n = matrix(QQ, 2, 2, [1, 1/2, 1/3, 1/4]).numpy(); n +- array([[ 1. , 0.5 ], +- [ 0.33333333, 0.25 ]]) ++ array([[1. , 0.5 ], ++ [0.33333333, 0.25 ]]) + sage: matrix(QQ, n) + [ 1 1/2] + [1/3 1/4] +diff --git a/src/sage/matrix/matrix_double_dense.pyx b/src/sage/matrix/matrix_double_dense.pyx +index 48e0a8a97f..1be5d35b19 100644 +--- a/src/sage/matrix/matrix_double_dense.pyx ++++ b/src/sage/matrix/matrix_double_dense.pyx +@@ -2546,7 +2546,7 @@ cdef class Matrix_double_dense(Matrix_dense): + sage: P.is_unitary(algorithm='orthonormal') + Traceback (most recent call last): + ... +- ValueError: failed to create intent(cache|hide)|optional array-- must have defined dimensions but got (0,) ++ error: ((lwork==-1)||(lwork >= MAX(1,2*n))) failed for 3rd keyword lwork: zgees:lwork=0 + + TESTS:: + +@@ -3662,8 +3662,8 @@ cdef class Matrix_double_dense(Matrix_dense): + [0.0 1.0 2.0] + [3.0 4.0 5.0] + sage: m.numpy() +- array([[ 0., 1., 2.], +- [ 3., 4., 5.]]) ++ array([[0., 1., 2.], ++ [3., 4., 5.]]) + + Alternatively, numpy automatically calls this function (via + the magic :meth:`__array__` method) to convert Sage matrices +@@ -3674,16 +3674,16 @@ cdef class Matrix_double_dense(Matrix_dense): + [0.0 1.0 2.0] + [3.0 4.0 5.0] + sage: numpy.array(m) +- array([[ 0., 1., 2.], +- [ 3., 4., 5.]]) ++ array([[0., 1., 2.], ++ [3., 4., 5.]]) + sage: numpy.array(m).dtype + dtype('float64') + sage: m = matrix(CDF, 2, range(6)); m + [0.0 1.0 2.0] + [3.0 4.0 5.0] + sage: numpy.array(m) +- array([[ 0.+0.j, 1.+0.j, 2.+0.j], +- [ 3.+0.j, 4.+0.j, 5.+0.j]]) ++ array([[0.+0.j, 1.+0.j, 2.+0.j], ++ [3.+0.j, 4.+0.j, 5.+0.j]]) + sage: numpy.array(m).dtype + dtype('complex128') + +diff --git a/src/sage/matrix/special.py b/src/sage/matrix/special.py +index c698ba5e97..b743bab354 100644 +--- a/src/sage/matrix/special.py ++++ b/src/sage/matrix/special.py +@@ -705,7 +705,7 @@ def diagonal_matrix(arg0=None, arg1=None, arg2=None, sparse=True): + + sage: import numpy + sage: entries = numpy.array([1.2, 5.6]); entries +- array([ 1.2, 5.6]) ++ array([1.2, 5.6]) + sage: A = diagonal_matrix(3, entries); A + [1.2 0.0 0.0] + [0.0 5.6 0.0] +@@ -715,7 +715,7 @@ def diagonal_matrix(arg0=None, arg1=None, arg2=None, sparse=True): + + sage: j = numpy.complex(0,1) + sage: entries = numpy.array([2.0+j, 8.1, 3.4+2.6*j]); entries +- array([ 2.0+1.j , 8.1+0.j , 3.4+2.6j]) ++ array([2. +1.j , 8.1+0.j , 3.4+2.6j]) + sage: A = diagonal_matrix(entries); A + [2.0 + 1.0*I 0.0 0.0] + [ 0.0 8.1 0.0] +diff --git a/src/sage/modules/free_module_element.pyx b/src/sage/modules/free_module_element.pyx +index 230f142117..2ab1c0ae68 100644 +--- a/src/sage/modules/free_module_element.pyx ++++ b/src/sage/modules/free_module_element.pyx +@@ -982,7 +982,7 @@ cdef class FreeModuleElement(Vector): # abstract base class + sage: v.numpy() + array([1, 2, 5/6], dtype=object) + sage: v.numpy(dtype=float) +- array([ 1. , 2. , 0.83333333]) ++ array([1. , 2. , 0.83333333]) + sage: v.numpy(dtype=int) + array([1, 2, 0]) + sage: import numpy +@@ -993,7 +993,7 @@ cdef class FreeModuleElement(Vector): # abstract base class + be more efficient but may have unintended consequences:: + + sage: v.numpy(dtype=None) +- array([ 1. , 2. , 0.83333333]) ++ array([1. , 2. , 0.83333333]) + + sage: w = vector(ZZ, [0, 1, 2^63 -1]); w + (0, 1, 9223372036854775807) +diff --git a/src/sage/modules/vector_double_dense.pyx b/src/sage/modules/vector_double_dense.pyx +index 39fc2970de..2badf98284 100644 +--- a/src/sage/modules/vector_double_dense.pyx ++++ b/src/sage/modules/vector_double_dense.pyx +@@ -807,13 +807,13 @@ cdef class Vector_double_dense(FreeModuleElement): + + sage: v = vector(CDF,4,range(4)) + sage: v.numpy() +- array([ 0.+0.j, 1.+0.j, 2.+0.j, 3.+0.j]) ++ array([0.+0.j, 1.+0.j, 2.+0.j, 3.+0.j]) + sage: v = vector(CDF,0) + sage: v.numpy() + array([], dtype=complex128) + sage: v = vector(RDF,4,range(4)) + sage: v.numpy() +- array([ 0., 1., 2., 3.]) ++ array([0., 1., 2., 3.]) + sage: v = vector(RDF,0) + sage: v.numpy() + array([], dtype=float64) +@@ -823,11 +823,11 @@ cdef class Vector_double_dense(FreeModuleElement): + sage: import numpy + sage: v = vector(CDF, 3, range(3)) + sage: v.numpy() +- array([ 0.+0.j, 1.+0.j, 2.+0.j]) ++ array([0.+0.j, 1.+0.j, 2.+0.j]) + sage: v.numpy(dtype=numpy.float64) +- array([ 0., 1., 2.]) ++ array([0., 1., 2.]) + sage: v.numpy(dtype=numpy.float32) +- array([ 0., 1., 2.], dtype=float32) ++ array([0., 1., 2.], dtype=float32) + """ + if dtype is None or dtype is self._vector_numpy.dtype: + from copy import copy +diff --git a/src/sage/numerical/optimize.py b/src/sage/numerical/optimize.py +index 17b5ebb84b..92ce35c502 100644 +--- a/src/sage/numerical/optimize.py ++++ b/src/sage/numerical/optimize.py +@@ -486,9 +486,9 @@ def minimize_constrained(func,cons,x0,gradient=None,algorithm='default', **args) + else: + min = optimize.fmin_tnc(f, x0, approx_grad=True, bounds=cons, messages=0, **args)[0] + elif isinstance(cons[0], function_type) or isinstance(cons[0], Expression): +- min = optimize.fmin_cobyla(f, x0, cons, iprint=0, **args) ++ min = optimize.fmin_cobyla(f, x0, cons, disp=0, **args) + elif isinstance(cons, function_type) or isinstance(cons, Expression): +- min = optimize.fmin_cobyla(f, x0, cons, iprint=0, **args) ++ min = optimize.fmin_cobyla(f, x0, cons, disp=0, **args) + return vector(RDF, min) + + +diff --git a/src/sage/plot/complex_plot.pyx b/src/sage/plot/complex_plot.pyx +index ad9693da62..758fb709b7 100644 +--- a/src/sage/plot/complex_plot.pyx ++++ b/src/sage/plot/complex_plot.pyx +@@ -61,9 +61,9 @@ cdef inline double mag_to_lightness(double r): + + sage: from sage.plot.complex_plot import complex_to_rgb + sage: complex_to_rgb([[0, 1, 10]]) +- array([[[ 0. , 0. , 0. ], +- [ 0.77172568, 0. , 0. ], +- [ 1. , 0.22134776, 0.22134776]]]) ++ array([[[0. , 0. , 0. ], ++ [0.77172568, 0. , 0. ], ++ [1. , 0.22134776, 0.22134776]]]) + """ + return atan(log(sqrt(r)+1)) * (4/PI) - 1 + +@@ -82,13 +82,13 @@ def complex_to_rgb(z_values): + + sage: from sage.plot.complex_plot import complex_to_rgb + sage: complex_to_rgb([[0, 1, 1000]]) +- array([[[ 0. , 0. , 0. ], +- [ 0.77172568, 0. , 0. ], +- [ 1. , 0.64421177, 0.64421177]]]) ++ array([[[0. , 0. , 0. ], ++ [0.77172568, 0. , 0. ], ++ [1. , 0.64421177, 0.64421177]]]) + sage: complex_to_rgb([[0, 1j, 1000j]]) +- array([[[ 0. , 0. , 0. ], +- [ 0.38586284, 0.77172568, 0. ], +- [ 0.82210588, 1. , 0.64421177]]]) ++ array([[[0. , 0. , 0. ], ++ [0.38586284, 0.77172568, 0. ], ++ [0.82210588, 1. , 0.64421177]]]) + """ + import numpy + cdef unsigned int i, j, imax, jmax +diff --git a/src/sage/plot/line.py b/src/sage/plot/line.py +index 23f5e61446..3b1b51d7cf 100644 +--- a/src/sage/plot/line.py ++++ b/src/sage/plot/line.py +@@ -502,14 +502,12 @@ def line2d(points, **options): + from sage.plot.all import Graphics + from sage.plot.plot import xydata_from_point_list + from sage.rings.all import CC, CDF ++ points = list(points) # make sure points is a python list + if points in CC or points in CDF: + pass + else: +- try: +- if not points: +- return Graphics() +- except ValueError: # numpy raises a ValueError if not empty +- pass ++ if len(points) == 0: ++ return Graphics() + xdata, ydata = xydata_from_point_list(points) + g = Graphics() + g._set_extra_kwds(Graphics._extract_kwds_for_show(options)) +diff --git a/src/sage/plot/plot_field.py b/src/sage/plot/plot_field.py +index 0025098a8d..23c80902f3 100644 +--- a/src/sage/plot/plot_field.py ++++ b/src/sage/plot/plot_field.py +@@ -49,9 +49,10 @@ class PlotField(GraphicPrimitive): + sage: r.xpos_array + [0.0, 0.0, 1.0, 1.0] + sage: r.yvec_array +- masked_array(data = [0.0 0.70710678118... 0.70710678118... 0.89442719...], +- mask = [False False False False], +- fill_value = 1e+20) ++ masked_array(data=[0.0, 0.70710678118..., 0.70710678118..., ++ 0.89442719...], ++ mask=[False, False, False, False], ++ fill_value=1e+20) + + TESTS: + +diff --git a/src/sage/plot/streamline_plot.py b/src/sage/plot/streamline_plot.py +index f3da57c370..3806f4b32f 100644 +--- a/src/sage/plot/streamline_plot.py ++++ b/src/sage/plot/streamline_plot.py +@@ -38,16 +38,14 @@ class StreamlinePlot(GraphicPrimitive): + sage: r.options()['plot_points'] + 2 + sage: r.xpos_array +- array([ 0., 1.]) ++ array([0., 1.]) + sage: r.yvec_array +- masked_array(data = +- [[1.0 1.0] +- [0.5403023058681398 0.5403023058681398]], +- mask = +- [[False False] +- [False False]], +- fill_value = 1e+20) +- ++ masked_array( ++ data=[[1.0, 1.0], ++ [0.5403023058681398, 0.5403023058681398]], ++ mask=[[False, False], ++ [False, False]], ++ fill_value=1e+20) + + TESTS: + +diff --git a/src/sage/probability/probability_distribution.pyx b/src/sage/probability/probability_distribution.pyx +index f66cd898b9..35995886d5 100644 +--- a/src/sage/probability/probability_distribution.pyx ++++ b/src/sage/probability/probability_distribution.pyx +@@ -130,7 +130,17 @@ cdef class ProbabilityDistribution: + 0.0, + 1.4650000000000003] + sage: b +- [0.0, 0.20000000000000001, 0.40000000000000002, 0.60000000000000009, 0.80000000000000004, 1.0, 1.2000000000000002, 1.4000000000000001, 1.6000000000000001, 1.8, 2.0] ++ [0.0, ++ 0.2, ++ 0.4, ++ 0.6000000000000001, ++ 0.8, ++ 1.0, ++ 1.2000000000000002, ++ 1.4000000000000001, ++ 1.6, ++ 1.8, ++ 2.0] + """ + import pylab + l = [float(self.get_random_element()) for _ in range(num_samples)] +diff --git a/src/sage/rings/rational.pyx b/src/sage/rings/rational.pyx +index a0bfe080f5..7d95e7a1a8 100644 +--- a/src/sage/rings/rational.pyx ++++ b/src/sage/rings/rational.pyx +@@ -1056,7 +1056,7 @@ cdef class Rational(sage.structure.element.FieldElement): + dtype('O') + + sage: numpy.array([1, 1/2, 3/4]) +- array([ 1. , 0.5 , 0.75]) ++ array([1. , 0.5 , 0.75]) + """ + if mpz_cmp_ui(mpq_denref(self.value), 1) == 0: + if mpz_fits_slong_p(mpq_numref(self.value)): +diff --git a/src/sage/rings/real_mpfr.pyx b/src/sage/rings/real_mpfr.pyx +index 4c630867a4..64e2187f5b 100644 +--- a/src/sage/rings/real_mpfr.pyx ++++ b/src/sage/rings/real_mpfr.pyx +@@ -1438,7 +1438,7 @@ cdef class RealNumber(sage.structure.element.RingElement): + + sage: import numpy + sage: numpy.arange(10.0) +- array([ 0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]) ++ array([0., 1., 2., 3., 4., 5., 6., 7., 8., 9.]) + sage: numpy.array([1.0, 1.1, 1.2]).dtype + dtype('float64') + sage: numpy.array([1.000000000000000000000000000000000000]).dtype +diff --git a/src/sage/schemes/elliptic_curves/height.py b/src/sage/schemes/elliptic_curves/height.py +index 3d270ebf9d..1144f168e3 100644 +--- a/src/sage/schemes/elliptic_curves/height.py ++++ b/src/sage/schemes/elliptic_curves/height.py +@@ -1623,18 +1623,18 @@ class EllipticCurveCanonicalHeight: + even:: + + sage: H.wp_on_grid(v,4) +- array([[ 25.43920182, 5.28760943, 5.28760943, 25.43920182], +- [ 6.05099485, 1.83757786, 1.83757786, 6.05099485], +- [ 6.05099485, 1.83757786, 1.83757786, 6.05099485], +- [ 25.43920182, 5.28760943, 5.28760943, 25.43920182]]) ++ array([[25.43920182, 5.28760943, 5.28760943, 25.43920182], ++ [ 6.05099485, 1.83757786, 1.83757786, 6.05099485], ++ [ 6.05099485, 1.83757786, 1.83757786, 6.05099485], ++ [25.43920182, 5.28760943, 5.28760943, 25.43920182]]) + + The array of values on the half-grid:: + + sage: H.wp_on_grid(v,4,True) +- array([[ 25.43920182, 5.28760943], +- [ 6.05099485, 1.83757786], +- [ 6.05099485, 1.83757786], +- [ 25.43920182, 5.28760943]]) ++ array([[25.43920182, 5.28760943], ++ [ 6.05099485, 1.83757786], ++ [ 6.05099485, 1.83757786], ++ [25.43920182, 5.28760943]]) + """ + tau = self.tau(v) + fk, err = self.fk_intervals(v, 15, CDF) +diff --git a/src/sage/symbolic/ring.pyx b/src/sage/symbolic/ring.pyx +index 2dcb0492b9..2b1a06385c 100644 +--- a/src/sage/symbolic/ring.pyx ++++ b/src/sage/symbolic/ring.pyx +@@ -1135,7 +1135,7 @@ cdef class NumpyToSRMorphism(Morphism): + sage: cos(numpy.int('2')) + cos(2) + sage: numpy.cos(numpy.int('2')) +- -0.41614683654714241 ++ -0.4161468365471424 + """ + cdef _intermediate_ring + diff --git a/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch b/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch new file mode 100644 index 00000000000..49cdfd189b9 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/pari-stackwarn.patch @@ -0,0 +1,20 @@ +diff --git a/src/sage/doctest/parsing.py b/src/sage/doctest/parsing.py +index 6bdc9a0..31fc780 100644 +--- a/src/sage/doctest/parsing.py ++++ b/src/sage/doctest/parsing.py +@@ -40,6 +40,7 @@ from .external import available_software + + float_regex = re.compile('\s*([+-]?\s*((\d*\.?\d+)|(\d+\.?))([eE][+-]?\d+)?)') + optional_regex = re.compile(r'(py2|py3|long time|not implemented|not tested|known bug)|([^ a-z]\s*optional\s*[:-]*((\s|\w)*))') ++pari_stack_warning_regex = re.compile(r'\s*\*\*\*.*(Warning: increasing stack size to )\d+\.') + find_sage_prompt = re.compile(r"^(\s*)sage: ", re.M) + find_sage_continuation = re.compile(r"^(\s*)\.\.\.\.:", re.M) + random_marker = re.compile('.*random', re.I) +@@ -935,6 +936,7 @@ class SageOutputChecker(doctest.OutputChecker): + + """ + got = self.human_readable_escape_sequences(got) ++ got = pari_stack_warning_regex.sub('', got) + if isinstance(want, MarkedOutput): + if want.random: + return True diff --git a/pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch b/pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch new file mode 100644 index 00000000000..22f274d608d --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/pynac-0.7.22.patch @@ -0,0 +1,479 @@ +diff --git a/src/sage/calculus/calculus.py b/src/sage/calculus/calculus.py +index 3a417d9d5c..fadaadbaf6 100644 +--- a/src/sage/calculus/calculus.py ++++ b/src/sage/calculus/calculus.py +@@ -231,7 +231,7 @@ Another example:: + sage: f(x=3) + arcsinh(1) + sage: f.derivative(x) +- 1/3/sqrt(1/9*x^2 + 1) ++ 1/sqrt(x^2 + 9) + + We compute the length of the parabola from 0 to 2:: + +@@ -1509,8 +1509,8 @@ def laplace(ex, t, s, algorithm='maxima'): + Testing SymPy:: + + sage: laplace(t^n, t, s, algorithm='sympy') +- (s^(-n)*gamma(n + 1)/s, 0, -re(n) < 1) +- ++ (gamma(n + 1)/(s*s^n), 0, -re(n) < 1) ++ + Testing Maxima:: + + sage: laplace(t^n, t, s, algorithm='maxima') +diff --git a/src/sage/functions/hypergeometric.py b/src/sage/functions/hypergeometric.py +index 1fc2db5c94..f3e49b9cdb 100644 +--- a/src/sage/functions/hypergeometric.py ++++ b/src/sage/functions/hypergeometric.py +@@ -34,7 +34,7 @@ Simplification (note that ``simplify_full`` does not yet call + sage: a.simplify_hypergeometric() + 1/((-e^x + 1)^e^x) + sage: a.simplify_hypergeometric(algorithm='sage') +- (-e^x + 1)^(-e^x) ++ 1/((-e^x + 1)^e^x) + + Equality testing:: + +@@ -145,7 +145,7 @@ Series expansions of confluent hypergeometric functions:: + + sage: hypergeometric_M(2, 2, x).series(x, 3) + 1 + 1*x + 1/2*x^2 + Order(x^3) +- sage: hypergeometric_U(2, 2, x).series(x == 3, 100).subs(x=1).n() ++ sage: hypergeometric_U(2, 2, x).series(x == 3, 100).subs(x=1).n() # known bug (see :trac:`25688`) + 0.403652637676806 + sage: hypergeometric_U(2, 2, 1).n() + 0.403652637676806 +@@ -773,7 +773,7 @@ def closed_form(hyp): + sage: closed_form(hypergeometric([], [], z)) + e^z + sage: closed_form(hypergeometric([a], [], z)) +- (-z + 1)^(-a) ++ 1/((-z + 1)^a) + sage: closed_form(hypergeometric([1, 1, 2], [1, 1], z)) + (z - 1)^(-2) + sage: closed_form(hypergeometric([2, 3], [1], x)) +@@ -1121,7 +1121,7 @@ class Hypergeometric_U(BuiltinFunction): + sage: var('a b z') + (a, b, z) + sage: hypergeometric_U(a, b, z).generalized() +- z^(-a)*hypergeometric((a, a - b + 1), (), -1/z) ++ hypergeometric((a, a - b + 1), (), -1/z)/z^a + sage: hypergeometric_U(1, 3, 1/2).generalized() + 2*hypergeometric((1, -1), (), -2) + sage: hypergeometric_U(3, I, 2).generalized() +diff --git a/src/sage/functions/log.py b/src/sage/functions/log.py +index 75d1bf8060..61968582af 100644 +--- a/src/sage/functions/log.py ++++ b/src/sage/functions/log.py +@@ -518,17 +518,17 @@ class Function_polylog(GinacFunction): + + sage: BF = RealBallField(100) + sage: polylog(2, BF(1/3)) +- [0.36621322997706348761674629766 +/- 4.51e-30] ++ [0.36621322997706348761674629766... +/- ...] + sage: polylog(2, BF(4/3)) +- nan ++ [2.27001825336107090380391448586 +/- 5.64e-30] + [-0.90377988538400159956755721265 +/- 8.39e-30]*I + sage: parent(_) +- Real ball field with 100 bits of precision ++ Complex ball field with 100 bits of precision + sage: polylog(2, CBF(1/3)) +- [0.366213229977063 +/- 5.85e-16] ++ [0.366213229977063 +/- ...] + sage: parent(_) + Complex ball field with 53 bits of precision + sage: polylog(2, CBF(1)) +- [1.644934066848226 +/- 6.59e-16] ++ [1.644934066848226 +/- ...] + sage: parent(_) + Complex ball field with 53 bits of precision + """ +diff --git a/src/sage/functions/trig.py b/src/sage/functions/trig.py +index e7e7a311cd..1f2926d6c9 100644 +--- a/src/sage/functions/trig.py ++++ b/src/sage/functions/trig.py +@@ -529,13 +529,8 @@ class Function_arcsin(GinacFunction): + arcsin + sage: asin(complex(1,1)) + (0.6662394324925152+1.0612750619050357j) +- +- Check that :trac:`22823` is fixed:: +- +- sage: bool(asin(SR(2.1)) == NaN) +- True +- sage: asin(SR(2.1)).is_real() +- False ++ sage: asin(SR(2.1)) ++ 1.57079632679490 - 1.37285914424258*I + """ + GinacFunction.__init__(self, 'arcsin', latex_name=r"\arcsin", + conversions=dict(maxima='asin', sympy='asin', fricas="asin", giac="asin")) +@@ -595,13 +590,8 @@ class Function_arccos(GinacFunction): + arccos + sage: acos(complex(1,1)) + (0.9045568943023814-1.0612750619050357j) +- +- Check that :trac:`22823` is fixed:: +- +- sage: bool(acos(SR(2.1)) == NaN) +- True +- sage: acos(SR(2.1)).is_real() +- False ++ sage: acos(SR(2.1)) ++ 1.37285914424258*I + """ + GinacFunction.__init__(self, 'arccos', latex_name=r"\arccos", + conversions=dict(maxima='acos', sympy='acos', fricas='acos', giac='acos')) +@@ -807,7 +797,7 @@ class Function_arcsec(GinacFunction): + sage: arcsec(2).n(100) + 1.0471975511965977461542144611 + sage: arcsec(1/2).n(100) +- NaN ++ 1.3169578969248167086250463473*I + sage: RDF(arcsec(2)) # abs tol 1e-15 + 1.0471975511965976 + sage: arcsec(1 + I) +@@ -958,7 +948,9 @@ class Function_arctan2(GinacFunction): + sage: atan2(0,0,hold=True) + arctan2(0, 0) + sage: atan2(0,0,hold=True).n() +- NaN ++ Traceback (most recent call last): ++ ... ++ RuntimeError: atan2(): division by zero + + Check if :trac:`10062` is fixed, this was caused by + ``(I*I).is_positive()`` returning ``True``:: +diff --git a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py +index 3b5c8d1729..1c6b73a16c 100644 +--- a/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py ++++ b/src/sage/geometry/hyperbolic_space/hyperbolic_geodesic.py +@@ -1422,8 +1422,10 @@ class HyperbolicGeodesicUHP(HyperbolicGeodesic): + expressions do not generate runtime errors. :: + + sage: g=HyperbolicPlane().UHP().get_geodesic(-1+I,1+I) +- sage: g.midpoint() +- Point in UHP 1/2*(sqrt(2)*e^(1/2*arccosh(3)) - sqrt(2) + (I - 1)*e^(1/2*arccosh(3)) + I - 1)/((1/4*I - 1/4)*sqrt(2)*e^(1/2*arccosh(3)) - (1/4*I - 1/4)*sqrt(2) + 1/2*e^(1/2*arccosh(3)) + 1/2) ++ sage: point = g.midpoint(); point ++ Point in UHP -1/2*(sqrt(2)*... ++ sage: QQbar(point.coordinates()).radical_expression() ++ I*sqrt(2) + + Check that floating points remain floating points + in :meth:`midpoint` :: +diff --git a/src/sage/interfaces/fricas.py b/src/sage/interfaces/fricas.py +index 82aae78e37..8501ea2a18 100644 +--- a/src/sage/interfaces/fricas.py ++++ b/src/sage/interfaces/fricas.py +@@ -1084,14 +1084,14 @@ class FriCASElement(ExpectElement): + 0.451026811796262, + 0.732815101786507, + 0.837981225008390, +- NaN, +- NaN, ++ 1.57079632679490 - 0.467145308103262*I, ++ 0.467145308103262*I, + 1.11976951499863, + 0.451026811796262, + 0.732815101786507, + 0.837981225008390, +- NaN, +- NaN] ++ 1.57079632679490 - 0.467145308103262*I, ++ 0.467145308103262*I] + sage: l = [tanh, sinh, cosh, coth, sech, csch, asinh, acosh, atanh, acoth, asech, acsch, arcsinh, arccosh, arctanh, arccoth, arcsech, arccsch] + sage: [f(x)._fricas_().sage().subs(x=0.9) for f in l] # optional - fricas + [0.716297870199024, +diff --git a/src/sage/libs/pynac/pynac.pyx b/src/sage/libs/pynac/pynac.pyx +index 9e9d8f664b..e3406f007e 100644 +--- a/src/sage/libs/pynac/pynac.pyx ++++ b/src/sage/libs/pynac/pynac.pyx +@@ -1824,7 +1824,7 @@ cdef py_atan2(x, y): + sage: atan2(CC(I), CC(I+1)) + 0.553574358897045 + 0.402359478108525*I + sage: atan2(CBF(I), CBF(I+1)) +- [0.55357435889705 +/- 5.58e-15] + [0.402359478108525 +/- 7.11e-16]*I ++ [0.55357435889705 +/- ...] + [0.402359478108525 +/- ...]*I + + Check that :trac:`23776` is fixed and RDF input gives real output:: + +diff --git a/src/sage/matrix/matrix_symbolic_dense.pyx b/src/sage/matrix/matrix_symbolic_dense.pyx +index 46a15e53eb..7a0beb437b 100644 +--- a/src/sage/matrix/matrix_symbolic_dense.pyx ++++ b/src/sage/matrix/matrix_symbolic_dense.pyx +@@ -200,7 +200,7 @@ cdef class Matrix_symbolic_dense(Matrix_generic_dense): + sage: eval, [evec], mult = es[0] + sage: delta = eval*evec - evec*A + sage: abs(abs(delta)) < 1e-10 +- sqrt(9/25*((2*sqrt(6) - 3)*(sqrt(6) - 2) + 7*sqrt(6) - 18)^2 + 9/25*((sqrt(6) - 2)*(sqrt(6) - 4) + 6*sqrt(6) - 14)^2) < (1.00000000000000e-10) ++ 3/5*sqrt(((2*sqrt(6) - 3)*(sqrt(6) - 2) + 7*sqrt(6) - 18)^2 + ((sqrt(6) - 2)*(sqrt(6) - 4) + 6*sqrt(6) - 14)^2) < (1.00000000000000e-10) + sage: abs(abs(delta)).n() < 1e-10 + True + +diff --git a/src/sage/modules/matrix_morphism.py b/src/sage/modules/matrix_morphism.py +index 17a1d6e290..03892ceec0 100644 +--- a/src/sage/modules/matrix_morphism.py ++++ b/src/sage/modules/matrix_morphism.py +@@ -214,9 +214,9 @@ class MatrixMorphism_abstract(sage.categories.morphism.Morphism): + sage: f((1, 0)) + Traceback (most recent call last): + ... +- TypeError: Unable to coerce entries (=[1.00000000000000*I, 0.000000000000000]) to coefficients in Real Field with 53 bits of precision ++ TypeError: Unable to coerce entries (=[1.00000000000000*I, 0]) to coefficients in Real Field with 53 bits of precision + sage: f((1, 0), coerce=False) +- (1.00000000000000*I, 0.000000000000000) ++ (1.00000000000000*I, 0) + + """ + if self.domain().is_ambient(): +diff --git a/src/sage/plot/plot.py b/src/sage/plot/plot.py +index 77cdeb8c46..e501e74036 100644 +--- a/src/sage/plot/plot.py ++++ b/src/sage/plot/plot.py +@@ -2061,7 +2061,7 @@ def _plot(funcs, xrange, parametric=False, + plot properly (:trac:`13246`):: + + sage: parametric_plot((x, arcsec(x)), (x, -2, 2)) +- Graphics object consisting of 1 graphics primitive ++ Graphics object consisting of 2 graphics primitives + + """ + from sage.plot.colors import Color +diff --git a/src/sage/repl/display/formatter.py b/src/sage/repl/display/formatter.py +index 8ce2e839d7..948207c95e 100644 +--- a/src/sage/repl/display/formatter.py ++++ b/src/sage/repl/display/formatter.py +@@ -25,11 +25,11 @@ generally, all sage expression as an ASCII art object:: + sage: shell = get_test_shell() + sage: shell.run_cell('%display ascii_art') + sage: shell.run_cell('integral(x^2/pi^x, x)') +- / 2 2 \ -x*log(pi) +- -\x *log (pi) + 2*x*log(pi) + 2/*e +- --------------------------------------------- +- 3 +- log (pi) ++ -x / 2 2 \ ++ -pi *\x *log (pi) + 2*x*log(pi) + 2/ ++ -------------------------------------- ++ 3 ++ log (pi) + sage: shell.run_cell("i = var('i')") + sage: shell.run_cell('sum(i*x^i, i, 0, 10)') + 10 9 8 7 6 5 4 3 2 +diff --git a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py +index d8ebbf4f76..8c60f65e99 100644 +--- a/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py ++++ b/src/sage/rings/asymptotic/asymptotics_multivariate_generating_functions.py +@@ -151,8 +151,8 @@ A multiple point example (Example 6.5 of [RaWi2012]_):: + [(x + 2*y - 1, 1), (2*x + y - 1, 1)]) + sage: F1 = decomp[1] + sage: F1.asymptotics(p, alpha, 2) +- (-3*((2*a^2 - 5*a*b + 2*b^2)*r^2 + (a + b)*r + 3)*((1/3)^(-a)*(1/3)^(-b))^r, +- (1/3)^(-a)*(1/3)^(-b), -3*(2*a^2 - 5*a*b + 2*b^2)*r^2 - 3*(a + b)*r - 9) ++ (-3*((2*a^2 - 5*a*b + 2*b^2)*r^2 + (a + b)*r + 3)*(1/((1/3)^a*(1/3)^b))^r, ++ 1/((1/3)^a*(1/3)^b), -3*(2*a^2 - 5*a*b + 2*b^2)*r^2 - 3*(a + b)*r - 9) + sage: alpha = [4, 3] + sage: decomp = F.asymptotic_decomposition(alpha) + sage: F1 = decomp[1] +@@ -2159,7 +2159,7 @@ class FractionWithFactoredDenominator(RingElement): + sage: p = {x: 1/3, y: 1/3} + sage: alpha = (var('a'), var('b')) + sage: F.asymptotics_multiple(p, alpha, 2, var('r')) # long time +- (3*((1/3)^(-a)*(1/3)^(-b))^r*e^(2/3), (1/3)^(-a)*(1/3)^(-b), 3*e^(2/3)) ++ (3*(1/((1/3)^a*(1/3)^b))^r*e^(2/3), 1/((1/3)^a*(1/3)^b), 3*e^(2/3)) + """ + from itertools import product + from sage.calculus.functions import jacobian +diff --git a/src/sage/stats/basic_stats.py b/src/sage/stats/basic_stats.py +index 16a268a02c..5fd244e93b 100644 +--- a/src/sage/stats/basic_stats.py ++++ b/src/sage/stats/basic_stats.py +@@ -183,7 +183,7 @@ def std(v, bias=False): + sage: std([]) + NaN + sage: std([I, sqrt(2), 3/5]) +- sqrt(1/450*(10*sqrt(2) - 5*I - 3)^2 + 1/450*(5*sqrt(2) - 10*I + 3)^2 + 1/450*(5*sqrt(2) + 5*I - 6)^2) ++ 1/15*sqrt(1/2)*sqrt((10*sqrt(2) - 5*I - 3)^2 + (5*sqrt(2) - 10*I + 3)^2 + (5*sqrt(2) + 5*I - 6)^2) + sage: std([RIF(1.0103, 1.0103), RIF(2)]) + 0.6998235813403261? + sage: import numpy +diff --git a/src/sage/symbolic/expression.pyx b/src/sage/symbolic/expression.pyx +index ab4c05de3a..60f0dc549a 100644 +--- a/src/sage/symbolic/expression.pyx ++++ b/src/sage/symbolic/expression.pyx +@@ -622,7 +622,7 @@ cdef class Expression(CommutativeRingElement): + sage: x^(-5) + x^(-5) + sage: x^(-y) +- x^(-y) ++ 1/(x^y) + sage: 2*x^(-1) + 2/x + sage: i*x +@@ -3621,14 +3621,14 @@ cdef class Expression(CommutativeRingElement): + sage: repl_dict = {b_0: b_0, b_3: b_1, b_2: b_3, b_1: b_2} + sage: P = precomp.substitute(repl_dict) + sage: P.expand() +- -2^(-b_0)*2^(-b_2)*2^b_3 - 2^b_0*2^(-b_2)*2^b_3 - +- 2^(-b_0)*2^b_2*2^b_3 + 2^b_0*2^b_2*2^b_3 - 2*2^(-b_0)*2^(-b_2) +- - 2*2^b_0*2^(-b_2) - 2*2^(-b_0)*2^b_2 + 2*2^b_0*2^b_2 + +- 2^(-b_0)*2^b_3 + 2^b_0*2^b_3 + 2^(-b_2)*2^b_3 + 2^b_2*2^b_3 + +- 2*2^(-b_0) + 2*2^b_0 + 2*2^(-b_2) + 2*2^b_2 - 9*2^b_3 - +- 2^(-b_0)*2^(-b_2)/2^b_3 - 2^b_0*2^(-b_2)/2^b_3 - +- 2^(-b_0)*2^b_2/2^b_3 + 2^b_0*2^b_2/2^b_3 + 2^(-b_0)/2^b_3 + +- 2^b_0/2^b_3 + 2^(-b_2)/2^b_3 + 2^b_2/2^b_3 - 9/2^b_3 - 18 ++ 2^b_0*2^b_2*2^b_3 + 2*2^b_0*2^b_2 + 2^b_0*2^b_3 + 2^b_2*2^b_3 + ++ 2*2^b_0 + 2*2^b_2 - 9*2^b_3 + 2^b_0*2^b_2/2^b_3 - ++ 2^b_0*2^b_3/2^b_2 - 2^b_2*2^b_3/2^b_0 - 2*2^b_0/2^b_2 - ++ 2*2^b_2/2^b_0 + 2^b_0/2^b_3 + 2^b_2/2^b_3 + 2^b_3/2^b_0 + ++ 2^b_3/2^b_2 + 2/2^b_0 + 2/2^b_2 - 2^b_0/(2^b_2*2^b_3) - ++ 2^b_2/(2^b_0*2^b_3) - 9/2^b_3 - 2^b_3/(2^b_0*2^b_2) - ++ 2/(2^b_0*2^b_2) + 1/(2^b_0*2^b_3) + 1/(2^b_2*2^b_3) - ++ 1/(2^b_0*2^b_2*2^b_3) - 18 + + sage: _0,b_1,b_2=var('b_0,b_1,b_2') + sage: f = 1/27*b_2^2/(2^b_2)^2 + 1/27*b_1^2/(2^b_1)^2 + \ +@@ -3809,7 +3809,7 @@ cdef class Expression(CommutativeRingElement): + + sage: x = SR.symbol('x', domain='real') + sage: (x^3)^(1/3) +- (x^3)^(1/3) ++ x + sage: (x^4)^(1/4) + abs(x) + sage: (x^8)^(1/4) +@@ -3872,7 +3872,7 @@ cdef class Expression(CommutativeRingElement): + sage: 2^(x/log(2)) + e^x + sage: 2^(-x^2/2/log(2)) +- e^(-1/2*x^2) ++ 1/e^(1/2*x^2) + sage: x^(x/log(x)) + x^(x/log(x)) + sage: assume(x > 0) +@@ -4816,18 +4816,24 @@ cdef class Expression(CommutativeRingElement): + sage: ((x+y)^(x+y)).match(w0^w0) + {$0: x + y} + sage: t = ((a+b)*(a+c)).match((a+w0)*(a+w1)) +- sage: t[w0], t[w1] +- (c, b) ++ sage: set([t[w0], t[w1]]) == set([b, c]) ++ True + sage: ((a+b)*(a+c)).match((w0+b)*(w0+c)) + {$0: a} + sage: t = ((a+b)*(a+c)).match((w0+w1)*(w0+w2)) +- sage: t[w0], t[w1], t[w2] +- (a, c, b) +- sage: print(((a+b)*(a+c)).match((w0+w1)*(w1+w2))) +- None ++ sage: t[w0] ++ a ++ sage: set([t[w1], t[w2]]) == set([b, c]) ++ True ++ sage: t = ((a+b)*(a+c)).match((w0+w1)*(w1+w2)) ++ sage: t[w1] ++ a ++ sage: set([t[w0], t[w2]]) == set([b, c]) ++ True + sage: t = (a*(x+y)+a*z+b).match(a*w0+w1) +- sage: t[w0], t[w1] +- (x + y, a*z + b) ++ sage: s = set([t[w0], t[w1]]) ++ sage: s == set([x+y, a*z+b]) or s == set([z, a*(x+y)+b]) ++ True + sage: print((a+b+c+d+f+g).match(c)) + None + sage: (a+b+c+d+f+g).has(c) +@@ -4836,7 +4842,7 @@ cdef class Expression(CommutativeRingElement): + {$0: a + b + d + f + g} + sage: (a+b+c+d+f+g).match(c+g+w0) + {$0: a + b + d + f} +- sage: (a+b).match(a+b+w0) ++ sage: (a+b).match(a+b+w0) # known bug + {$0: 0} + sage: print((a*b^2).match(a^w0*b^w1)) + None +@@ -5009,7 +5015,7 @@ cdef class Expression(CommutativeRingElement): + a^3 + b^3 + (x + y)^3 + + sage: t.subs(w0 == w0^2) +- (x^2 + y^2)^18 + a^16 + b^16 ++ a^8 + b^8 + (x^2 + y^2)^6 + + sage: t.subs(a == b, b == c) + (x + y)^3 + b^2 + c^2 +@@ -8392,9 +8398,13 @@ cdef class Expression(CommutativeRingElement): + sage: SR(I).arctan2(1) + arctan2(I, 1) + sage: SR(CDF(0,1)).arctan2(1) +- NaN + +infinity*I +- sage: SR(1).arctan2(CDF(0,1)) # known bug +- 0.7853981633974484 - 19.012501686914433*I ++ Traceback (most recent call last): ++ ... ++ ValueError: power::eval(): division by zero ++ sage: SR(1).arctan2(CDF(0,1)) ++ Traceback (most recent call last): ++ ... ++ ValueError: power::eval(): division by zero + + sage: arctan2(0,oo) + 0 +@@ -8656,7 +8666,7 @@ cdef class Expression(CommutativeRingElement): + 1/2*I*pi + sage: SR(1/2).arccosh() + arccosh(1/2) +- sage: SR(CDF(1/2)).arccosh() # rel tol 1e-15 ++ sage: SR(CDF(1/2)).arccosh() # rel tol 1e-15 + 1.0471975511965976*I + sage: maxima('acosh(0.5)') + 1.04719755119659...*%i +@@ -11687,7 +11697,7 @@ cdef class Expression(CommutativeRingElement): + sage: a.solve(t) + [] + sage: b = a.canonicalize_radical(); b +- -23040.0*(-2.0*e^(1800*t) + 25.0*e^(900*t) - 32.0)*e^(-2400*t) ++ (46080.0*e^(1800*t) - 576000.0*e^(900*t) + 737280.0)*e^(-2400*t) + sage: b.solve(t) + [] + sage: b.solve(t, to_poly_solve=True) +@@ -12163,14 +12173,14 @@ cdef class Expression(CommutativeRingElement): + + sage: (n,k,j)=var('n,k,j') + sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) +- -(-1)^(-j)*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) ++ -(-1)^j*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) + sage: assume(j>-1) + sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) + 1 + sage: forget() + sage: assume(n>=j) + sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) +- -(-1)^(-j)*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) ++ -(-1)^j*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) + sage: forget() + sage: assume(j==-1) + sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) +@@ -12178,7 +12188,7 @@ cdef class Expression(CommutativeRingElement): + sage: forget() + sage: assume(j<-1) + sage: sum(binomial(n,k)*binomial(k-1,j)*(-1)**(k-1-j),k,j+1,n) +- -(-1)^(-j)*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) ++ -(-1)^j*sum((-1)^k*binomial(k - 1, j)*binomial(n, k), k, j + 1, n) + sage: forget() + + Check that :trac:`16176` is fixed:: +diff --git a/src/sage/symbolic/relation.py b/src/sage/symbolic/relation.py +index da6f0eef42..4bd65ef572 100644 +--- a/src/sage/symbolic/relation.py ++++ b/src/sage/symbolic/relation.py +@@ -895,7 +895,7 @@ def solve(f, *args, **kwds): + sage: (r[0][x], r[0][y]) + (2*lambert_w(1/2), 1) + sage: solve(-2*x**3 + 4*x**2 - 2*x + 6 > 0, x, algorithm='sympy') +- [x < (1/6*sqrt(77) + 79/54)^(1/3) + 1/9/(1/6*sqrt(77) + 79/54)^(1/3) + 2/3] ++ [x < 1/3*(1/2)^(1/3)*(9*sqrt(77) + 79)^(1/3) + 2/3*(1/2)^(2/3)/(9*sqrt(77) + 79)^(1/3) + 2/3] + sage: solve(sqrt(2*x^2 - 7) - (3 - x),x,algorithm='sympy') + [x == -8, x == 2] + sage: solve(sqrt(2*x + 9) - sqrt(x + 1) - sqrt(x + 4),x,algorithm='sympy') diff --git a/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch b/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch new file mode 100644 index 00000000000..1b64f39fe60 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/python-5755-hotpatch.patch @@ -0,0 +1,28 @@ +diff --git a/src/sage/all.py b/src/sage/all.py +index ca309ef..be3186b 100644 +--- a/src/sage/all.py ++++ b/src/sage/all.py +@@ -298,6 +298,23 @@ warnings.filterwarnings('ignore', module='matplotlib[.]font_manager') + warnings.filterwarnings('default', + '[\s\S]*See http://trac.sagemath.org/[0-9]* for details.') + ++# Hotpatch around https://bugs.python.org/issue5755 which won't be fixed for ++# python 2.7. Idea by https://stackoverflow.com/a/36293331. ++from distutils.command.build_ext import build_ext ++from distutils.sysconfig import customize_compiler ++ ++_build_extensions = build_ext.build_extensions ++ ++def build_extensions_patched(self): ++ customize_compiler(self.compiler) ++ try: ++ self.compiler.compiler_so.remove("-Wstrict-prototypes") ++ except (AttributeError, ValueError): ++ pass ++ _build_extensions(self) ++ ++build_ext.build_extensions = build_extensions_patched ++ + + # Set a new random number seed as the very last thing + # (so that printing initial_seed() and using that seed diff --git a/pkgs/applications/science/math/sage/patches/python3-syntax-without-write.patch b/pkgs/applications/science/math/sage/patches/python3-syntax-without-write.patch new file mode 100644 index 00000000000..ff1dcd22acf --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/python3-syntax-without-write.patch @@ -0,0 +1,40 @@ +diff --git a/src/sage/tests/py3_syntax.py b/src/sage/tests/py3_syntax.py +index e564860b48..86ab3725f9 100644 +--- a/src/sage/tests/py3_syntax.py ++++ b/src/sage/tests/py3_syntax.py +@@ -179,15 +179,30 @@ class Python3SyntaxTest(SortedDirectoryWalkerABC): + sage: py3_syntax = Python3SyntaxTest() + sage: py3_syntax.test(src.name) + Invalid Python 3 syntax found: +- File "...py", line 1 +- print "invalid print statement" +- ^ +- SyntaxError: Missing parentheses in call to 'print' ++ Missing parentheses in call to 'print'... + sage: os.unlink(src.name) + """ ++ ++ # compile all given files in memory, printing all errors ++ # inspired by the py_compile module (but without writing to file) ++ script = """ ++import sys ++import importlib.machinery ++rv = 0 ++for file in sys.argv[1:]: ++ loader = importlib.machinery.SourceFileLoader('', file) ++ source_bytes = loader.get_data(file) ++ try: ++ code = loader.source_to_code(source_bytes, file) ++ except Exception as err: ++ print(err) ++ rv = 1 ++sys.exit(rv) ++""" + cmd = [ + 'python3', +- '-m', 'py_compile' ++ '-c', ++ script, + ] + list(filenames) + process = subprocess.Popen( + cmd, diff --git a/pkgs/applications/science/math/sage/patches/revert-269c1e1551285.patch b/pkgs/applications/science/math/sage/patches/revert-269c1e1551285.patch new file mode 100644 index 00000000000..b57e48b86de --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/revert-269c1e1551285.patch @@ -0,0 +1,14 @@ +reverted: +--- b/src/sage/geometry/polyhedron/backend_cdd.py ++++ a/src/sage/geometry/polyhedron/backend_cdd.py +@@ -154,7 +154,9 @@ + ... [0.62, -1.38, 0.38],[0.144, -1.04, 0.04], + ... [0.1309090909, -1.0290909091, 0.04]] + sage: Polyhedron(point_list) ++ Traceback (most recent call last): ++ ... ++ ValueError: *Error: Numerical inconsistency is found. Use the GMP exact arithmetic. +- A 3-dimensional polyhedron in RDF^3 defined as the convex hull of 14 vertices + sage: Polyhedron(point_list, base_ring=QQ) + A 3-dimensional polyhedron in QQ^3 defined as the convex hull of 14 vertices + """ diff --git a/pkgs/applications/science/math/sage/patches/sagenb-sphinx-1.7.patch b/pkgs/applications/science/math/sage/patches/sagenb-sphinx-1.7.patch new file mode 100644 index 00000000000..42deef4eab0 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/sagenb-sphinx-1.7.patch @@ -0,0 +1,31 @@ +From 7419e0246230594ebfd5e7a2fe6b80d67abfc98a Mon Sep 17 00:00:00 2001 +From: Jeroen Demeyer +Date: Tue, 20 Mar 2018 10:40:41 +0100 +Subject: Fix sphinxify doctests + +--- + sagenb/misc/sphinxify.py | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/sagenb/misc/sphinxify.py b/sagenb/misc/sphinxify.py +index 4f76d41..15623d9 100644 +--- a/sagenb/misc/sphinxify.py ++++ b/sagenb/misc/sphinxify.py +@@ -47,11 +47,11 @@ def sphinxify(docstring, format='html'): + + sage: from sage.misc.sphinxify import sphinxify + sage: sphinxify('A test') +- '...
    \n \n

    A test

    \n\n\n
    ' ++ '
    \n \n

    A test

    \n\n\n
    ' + sage: sphinxify('**Testing**\n`monospace`') +- '...
    Testing\n\n\n\n
    ' ++ '
    Testing\n\n\n\n
    ' + sage: sphinxify('`x=y`') +- '...
    \n \n

    x=y

    \n\n\n
    ' ++ '
    \n \n

    x=y

    \n\n\n
    ' + sage: sphinxify('`x=y`', format='text') + 'x=y\n' + sage: sphinxify(':math:`x=y`', format='text') +-- +cgit v1.0-1-gd88e + diff --git a/pkgs/applications/science/math/sage/patches/sphinx-1.7.patch b/pkgs/applications/science/math/sage/patches/sphinx-1.7.patch new file mode 100644 index 00000000000..c67b8942e28 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/sphinx-1.7.patch @@ -0,0 +1,62 @@ +diff --git a/src/bin/sage b/src/bin/sage +index 397f30cbed..3fc473c343 100755 +--- a/src/bin/sage ++++ b/src/bin/sage +@@ -980,8 +980,11 @@ if [ "$1" = '-rsyncdist' -o "$1" = "--rsyncdist" ]; then + fi + + if [ "$1" = "-docbuild" -o "$1" = "--docbuild" ]; then ++ # Redirect stdin from /dev/null. This helps with running TeX which ++ # tends to ask interactive questions if something goes wrong. These ++ # cause the build to hang. If stdin is /dev/null, TeX just aborts. + shift +- exec sage-python23 -m "sage_setup.docbuild" "$@" ++ exec sage-python23 -m sage_setup.docbuild "$@" Introduction to the -adics ++
  • Introduction to the -adics
  • + """ + debug_inf(app, "???? Trying intersphinx for %s"%node['reftarget']) + builder = app.builder +diff --git a/src/sage/misc/sphinxify.py b/src/sage/misc/sphinxify.py +index 4f76d4113a..8f426b5989 100644 +--- a/src/sage/misc/sphinxify.py ++++ b/src/sage/misc/sphinxify.py +@@ -47,11 +47,11 @@ def sphinxify(docstring, format='html'): + + sage: from sage.misc.sphinxify import sphinxify + sage: sphinxify('A test') +- '...
    \n \n

    A test

    \n\n\n
    ' ++ '
    \n \n

    A test

    \n\n\n
    ' + sage: sphinxify('**Testing**\n`monospace`') +- '...
    Testing\n\n\n\n
    ' ++ '
    Testing\n\n \n

    x=y

    \n\n\n
    ' ++ '
    \n \n

    x=y

    \n\n\n
    ' + sage: sphinxify('`x=y`', format='text') + 'x=y\n' + sage: sphinxify(':math:`x=y`', format='text') +diff --git a/src/sage_setup/docbuild/sphinxbuild.py b/src/sage_setup/docbuild/sphinxbuild.py +index fda76a4174..d3413239dd 100644 +--- a/src/sage_setup/docbuild/sphinxbuild.py ++++ b/src/sage_setup/docbuild/sphinxbuild.py +@@ -207,7 +207,7 @@ def runsphinx(): + try: + sys.stdout = SageSphinxLogger(sys.stdout, os.path.basename(output_dir)) + sys.stderr = SageSphinxLogger(sys.stderr, os.path.basename(output_dir)) +- sphinx.cmdline.main(sys.argv) ++ sphinx.cmdline.main(sys.argv[1:]) + finally: + sys.stdout = saved_stdout + sys.stderr = saved_stderr diff --git a/pkgs/applications/science/math/sage/patches/test-in-tmpdir.patch b/pkgs/applications/science/math/sage/patches/test-in-tmpdir.patch new file mode 100644 index 00000000000..febab370277 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/test-in-tmpdir.patch @@ -0,0 +1,31 @@ +diff --git a/src/sage/repl/ipython_kernel/install.py b/src/sage/repl/ipython_kernel/install.py +index aa23c8405d..8a87de0591 100644 +--- a/src/sage/repl/ipython_kernel/install.py ++++ b/src/sage/repl/ipython_kernel/install.py +@@ -112,7 +112,7 @@ class SageKernelSpec(object): + EXAMPLES:: + + sage: from sage.repl.ipython_kernel.install import SageKernelSpec +- sage: spec = SageKernelSpec() ++ sage: spec = SageKernelSpec(prefix = tmp_dir()) + sage: spec.use_local_mathjax() + sage: mathjax = os.path.join(spec.nbextensions_dir, 'mathjax') + sage: os.path.isdir(mathjax) +@@ -129,7 +129,7 @@ class SageKernelSpec(object): + EXAMPLES:: + + sage: from sage.repl.ipython_kernel.install import SageKernelSpec +- sage: spec = SageKernelSpec() ++ sage: spec = SageKernelSpec(prefix = tmp_dir()) + sage: spec.use_local_jsmol() + sage: jsmol = os.path.join(spec.nbextensions_dir, 'jsmol') + sage: os.path.isdir(jsmol) +@@ -146,7 +146,7 @@ class SageKernelSpec(object): + EXAMPLES:: + + sage: from sage.repl.ipython_kernel.install import SageKernelSpec +- sage: spec = SageKernelSpec() ++ sage: spec = SageKernelSpec(prefix = tmp_dir()) + sage: spec.use_local_threejs() + sage: threejs = os.path.join(spec.nbextensions_dir, 'threejs') + sage: os.path.isdir(threejs) diff --git a/pkgs/applications/science/math/sage/patches/zn_poly_version.patch b/pkgs/applications/science/math/sage/patches/zn_poly_version.patch new file mode 100644 index 00000000000..92ea4303e47 --- /dev/null +++ b/pkgs/applications/science/math/sage/patches/zn_poly_version.patch @@ -0,0 +1,13 @@ +diff --git a/src/sage/misc/package.py b/src/sage/misc/package.py +index 7ff4f21675..1d72168833 100644 +--- a/src/sage/misc/package.py ++++ b/src/sage/misc/package.py +@@ -350,7 +350,7 @@ def package_versions(package_type, local=False): + sage: 'gap' in std + True + sage: std['zn_poly'] +- ('0.9.p11', '0.9.p11') ++ ('0.9', '0.9.p11') + """ + return {pkg['name']: (pkg['installed_version'], pkg['remote_version']) for pkg in list_packages(package_type, local=local).values()} + diff --git a/pkgs/applications/science/math/sage/pybrial.nix b/pkgs/applications/science/math/sage/pybrial.nix new file mode 100644 index 00000000000..f5cb39603c3 --- /dev/null +++ b/pkgs/applications/science/math/sage/pybrial.nix @@ -0,0 +1,29 @@ +{ stdenv +, fetchFromGitHub +, buildPythonPackage +}: +# This has a cyclic dependency with sage. I don't include sage in the +# buildInputs and let python figure it out at runtime. Because of this, +# I don't include the package in the main nipxkgs tree. It wouldn't be useful +# outside of sage anyways (as you could just directly depend on sage and use +# it). +buildPythonPackage rec { + pname = "pyBRiAl"; + version = "1.2.3"; + + # included with BRiAl source + src = fetchFromGitHub { + owner = "BRiAl"; + repo = "BRiAl"; + rev = "${version}"; + sha256 = "0qy4cwy7qrk4zg151cmws5cglaa866z461cnj9wdnalabs7v7qbg"; + }; + + sourceRoot = "source/sage-brial"; + + meta = with stdenv.lib; { + description = "python implementation of BRiAl"; + license = licenses.gpl2; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/applications/science/math/sage/python-openid.nix b/pkgs/applications/science/math/sage/python-openid.nix new file mode 100644 index 00000000000..184eaf29bdd --- /dev/null +++ b/pkgs/applications/science/math/sage/python-openid.nix @@ -0,0 +1,42 @@ +{ stdenv +, buildPythonPackage +, fetchPypi +, isPy3k +, django +, nose +, twill +, pycrypto +}: + +buildPythonPackage rec { + pname = "python-openid"; + version = "2.2.5"; + + disabled = isPy3k; + + src = fetchPypi { + inherit pname version; + sha256 = "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj"; + }; + + propagatedBuildInputs = [ + django + twill + pycrypto + ]; + + # Cannot access the djopenid example module. + # I don't know how to fix that (adding the examples dir to PYTHONPATH doesn't work) + doCheck = false; + checkInputs = [ nose ]; + checkPhase = '' + nosetests + ''; + + meta = with stdenv.lib; { + description = "OpenID library for Python"; + license = licenses.asl20; + maintainers = with maintainers; [ timokau ]; + homepage = https://github.com/openid/python-openid/; + }; +} diff --git a/pkgs/applications/science/math/sage/sage-env.nix b/pkgs/applications/science/math/sage/sage-env.nix new file mode 100644 index 00000000000..317eb6e16c4 --- /dev/null +++ b/pkgs/applications/science/math/sage/sage-env.nix @@ -0,0 +1,162 @@ +{ stdenv +, lib +, writeTextFile +, python +, sage-src +, sagelib +, env-locations +, gfortran +, bash +, coreutils +, gnused +, gnugrep +, binutils +, pythonEnv +, python3 +, pkg-config +, pari +, gap-libgap-compatible +, libgap +, ecl +, maxima-ecl +, singular +, giac +, palp +, rWrapper +, gfan +, cddlib +, jmol +, tachyon +, glpk +, eclib +, sympow +, nauty +, sqlite +, ppl +, ecm +, lcalc +, rubiks +, flintqs +, openblas-cblas-pc +, flint +, gmp +, mpfr +, pynac +, zlib +, gsl +, ntl +}: + +let + runtimepath = (lib.makeBinPath ([ + "@sage-local@" + "@sage-local@/build" + pythonEnv + # empty python env to add python wrapper that clears PYTHONHOME (see + # wrapper.nix). This is necessary because sage will call the python3 binary + # (from python2 code). The python2 PYTHONHOME (again set in wrapper.nix) + # will then confuse python3, if it is not overwritten. + python3.buildEnv + gfortran # for inline fortran + stdenv.cc # for cython + bash + coreutils + gnused + gnugrep + binutils.bintools + pkg-config + pari + gap-libgap-compatible + libgap + ecl + maxima-ecl + singular + giac + palp + rWrapper + gfan + cddlib + jmol + tachyon + glpk + eclib + sympow + nauty + sqlite + ppl + ecm + lcalc + rubiks + flintqs + ] + )); +in +writeTextFile rec { + name = "sage-env"; + destination = "/${name}"; + text = '' + export PKG_CONFIG_PATH='${lib.concatStringsSep ":" (map (pkg: "${pkg}/lib/pkgconfig") [ + # This is only needed in the src/sage/misc/cython.py test and I'm not sure if there's really a use-case + # for it outside of the tests. However since singular and openblas are runtime dependencies anyways + # and openblas-cblas-pc is tiny, it doesn't really hurt to include. + singular + openblas-cblas-pc + ]) + }' + export SAGE_ROOT='${sage-src}' + export SAGE_LOCAL='@sage-local@' + export SAGE_SHARE='${sagelib}/share' + orig_path="$PATH" + export PATH='${runtimepath}' + + # set dependent vars, like JUPYTER_CONFIG_DIR + source "${sage-src}/src/bin/sage-env" + export PATH="${runtimepath}:$orig_path" # sage-env messes with PATH + + export SAGE_LOGS="$TMPDIR/sage-logs" + export SAGE_DOC="''${SAGE_DOC_OVERRIDE:-doc-placeholder}" + export SAGE_DOC_SRC="''${SAGE_DOC_SRC_OVERRIDE:-${sage-src}/src/doc}" + + # set locations of dependencies + . ${env-locations}/sage-env-locations + + # needed for cython + export CC='${stdenv.cc}/bin/${stdenv.cc.targetPrefix}cc' + # cython needs to find these libraries, otherwise will fail with `ld: cannot find -lflint` or similar + export LDFLAGS='${ + lib.concatStringsSep " " (map (pkg: "-L${pkg}/lib") [ + flint + libgap + glpk + gmp + mpfr + pari + pynac + zlib + eclib + gsl + ntl + jmol + sympow + ]) + }' + export CFLAGS='${ + lib.concatStringsSep " " (map (pkg: "-isystem ${pkg}/include") [ + singular + gmp.dev + glpk + flint + libgap + pynac + mpfr.dev + ]) + }' + + export SAGE_LIB='${sagelib}/${python.sitePackages}' + + export SAGE_EXTCODE='${sage-src}/src/ext' + + # for find_library + export DYLD_LIBRARY_PATH="${lib.makeLibraryPath [stdenv.cc.libc singular]}:$DYLD_LIBRARY_PATH" + ''; +} diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix new file mode 100644 index 00000000000..244a6ea7267 --- /dev/null +++ b/pkgs/applications/science/math/sage/sage-src.nix @@ -0,0 +1,205 @@ +{ stdenv +, fetchFromGitHub +, fetchpatch +}: +stdenv.mkDerivation rec { + version = "8.2"; + name = "sage-src-${version}"; + + src = fetchFromGitHub { + owner = "sagemath"; + repo = "sage"; + rev = version; + sha256 = "0d7vc16s7dj23an2cb8v5bhbnc6nsw20qhnnxr0xh8qg629027b8"; + }; + + nixPatches = [ + # https://trac.sagemath.org/ticket/25309 + (fetchpatch { + name = "spkg-paths.patch"; + url = "https://git.sagemath.org/sage.git/patch/?h=97f06fddee920399d4fcda65aa9b0925774aec69&id=a86151429ccce1ddd085e8090ada8ebdf02f3310"; + sha256 = "1xb9108rzzkdhn71vw44525620d3ww9jv1fph5a77v9y7nf9wgr7"; + }) + (fetchpatch { + name = "maxima-fas.patch"; + url = "https://git.sagemath.org/sage.git/patch/?h=97f06fddee920399d4fcda65aa9b0925774aec69"; + sha256 = "14s50yg3hpw9cp3v581dx7zfmpm2j972im7x30iwki8k45mjvk3i"; + }) + + # https://trac.sagemath.org/ticket/25328 + # https://trac.sagemath.org/ticket/25546 + # https://trac.sagemath.org/ticket/25722 + (fetchpatch { + name = "install-jupyter-kernel-in-correct-prefix.patch"; + url = "https://git.sagemath.org/sage.git/patch?id=72167b98e3f64326df6b2c78785df25539472fcc"; + sha256 = "0pscnjhm7r2yr2rxnv4kkkq626vwaja720lixa3m3w9rwlxll5a7"; + }) + ./patches/test-in-tmpdir.patch + + # https://trac.sagemath.org/ticket/25358 + (fetchpatch { + name = "safe-directory-test-without-patch.patch"; + url = "https://git.sagemath.org/sage.git/patch?id2=8bdc326ba57d1bb9664f63cf165a9e9920cc1afc&id=dc673c17555efca611f68398d5013b66e9825463"; + sha256 = "1hhannz7xzprijakn2w2d0rhd5zv2zikik9p51i87bas3nc658f7"; + }) + + # https://trac.sagemath.org/ticket/25357 rebased on 8.2 + ./patches/python3-syntax-without-write.patch + + # https://trac.sagemath.org/ticket/25314 + (fetchpatch { + name = "make-qepcad-test-optional.patch"; + url = "https://git.sagemath.org/sage.git/patch/?h=fe294c58bd035ef427e268901d54a6faa0058138"; + sha256 = "003d5baf5c0n5rfg010ijwkwz8kg0s414cxwczs2vhdayxdixbix"; + }) + + # https://trac.sagemath.org/ticket/25316 + ./patches/python-5755-hotpatch.patch + + # https://trac.sagemath.org/ticket/25354 + # https://trac.sagemath.org/ticket/25531 + (fetchpatch { + name = "cysignals-include.patch"; + url = "https://git.sagemath.org/sage.git/patch/?h=28778bd25a37c80884d2b24e0683fb2989300cef"; + sha256 = "0fiiiw91pgs8avm9ggj8hb64bhqzl6jcw094d94nhirmh8w2jmc5"; + }) + + # https://trac.sagemath.org/ticket/25315 + (fetchpatch { + name = "find-libraries-in-dyld-library-path.patch"; + url = "https://git.sagemath.org/sage.git/patch/?h=20d4593876ce9c6004eac2ab6fd61786d0d96a06"; + sha256 = "1k3afq3qlzmgqwx6rzs5wv153vv9dsf5rk8pi61g57l3r3npbjmc"; + }) + + # Pari upstream has since accepted a patch, so this patch won't be necessary once sage updates pari. + # https://trac.sagemath.org/ticket/25312 + ./patches/pari-stackwarn.patch + + # https://trac.sagemath.org/ticket/25311 + ./patches/zn_poly_version.patch + + # https://trac.sagemath.org/ticket/25345 + # (upstream patch doesn't apply on 8.2 source) + ./patches/dochtml-optional.patch + ]; + + packageUpgradePatches = [ + # matplotlib 2.2.2 deprecated `normed` (replaced by `density`). + # This patch only ignores the warning. It would be equally easy to fix it + # (by replacing all mentions of `normed` by `density`), but its better to + # stay close to sage upstream. I didn't open an upstream ticket about it + # because the matplotlib update also requires a new dependency (kiwisolver) + # and I don't want to invest the time to learn how to add it. + ./patches/matplotlib-normed-deprecated.patch + + # Update to 20171219 broke the doctests because of insignificant precision + # changes, make the doctests less fragile. + # I didn't open an upstream ticket because its not entirely clear if + # 20171219 is really "released" yet. It is listed on the github releases + # page, but not marked as "latest release" and the homepage still links to + # the last version. + ./patches/eclib-regulator-precision.patch + + # sphinx 1.6 -> 1.7 upgrade + # https://trac.sagemath.org/ticket/24935 + ./patches/sphinx-1.7.patch + + # https://trac.sagemath.org/ticket/25320 + (fetchpatch { + name = "zero_division_error_formatting.patch"; + url = "https://git.sagemath.org/sage.git/patch/?h=f79070ddd09fa0ad6b340b097bd8d690a7aa35f0"; + sha256 = "02wsc3wbp8g8dk5jcjyv18d9v537h3zp5v8lwir46j4na4kj0dlb"; + }) + + # Adapt hashes to new boost version + # https://trac.sagemath.org/ticket/22243 + # (this ticket doesn't only upgrade boost but also avoids this problem in the future) + (fetchpatch { + name = "boost-upgrade.patch"; + url = "https://git.sagemath.org/sage.git/patch?id=a24a9c6b30b93957333a3116196214a931325b69"; + sha256 = "0z3870g2ms2a81vnw08dc2i4k7jr62w8fggvcdwaavgd1wvdxwfl"; + }) + + # gfan 0.6.2 + # https://trac.sagemath.org/ticket/23353 + (fetchpatch { + name = "gfan-update.patch"; + url = "https://git.sagemath.org/sage.git/patch/?h=420215fc469cde733ec7a339e59b78ad6eec804c&id=112498a293ea2bf563e41aed35f1aa608f01b349"; + sha256 = "0ga3hkx8cr23dpc919lgvpi5lmy0d728jkq9z6kf0fl9s8g31mxb"; + }) + + # New glpk version has new warnings, filter those out until upstream sage has found a solution + # https://trac.sagemath.org/ticket/24824 + (fetchpatch { + url = "https://salsa.debian.org/science-team/sagemath/raw/58bbba93a807ca2933ca317501d093a1bb4b84db/debian/patches/dt-version-glpk-4.65-ignore-warnings.patch"; + sha256 = "0b9293v73wb4x13wv5zwyjgclc01zn16msccfzzi6znswklgvddp"; + stripLen = 1; + }) + + # https://trac.sagemath.org/ticket/25329 + (fetchpatch { + name = "dont-check-exact-glpk-version.patch"; + url = "https://git.sagemath.org/sage.git/patch?id2=8bdc326ba57d1bb9664f63cf165a9e9920cc1afc&id=89d068d8d77316bfffa6bf8e9ebf70b3b3b88e5c"; + sha256 = "00knwxs6fmymfgfl0q5kcavmxm9sf90a4r76y35n5s55gj8pl918"; + }) + + # https://trac.sagemath.org/ticket/25355 + (fetchpatch { + name = "maxima-5.41.0.patch"; + url = "https://git.sagemath.org/sage.git/patch/?id=87328023c4739abdf24108038201e3fa9bdfc739"; + sha256 = "0hxi7qr5mfx1bc32r8j7iba4gzd7c6v63asylyf5cbyp86azpb7i"; + }) + + # Update cddlib from 0.94g to 0.94h. + # https://trac.sagemath.org/ticket/25341 (doesn't apply to 8.2 sources) + (fetchpatch { + url = "https://salsa.debian.org/science-team/sagemath/raw/58bbba93a807ca2933ca317501d093a1bb4b84db/debian/patches/u2-version-cddlib-094h.patch"; + sha256 = "0fmw7pzbaxs2dshky6iw9pr8i23p9ih2y2lw661qypdrxh5xw03k"; + stripLen = 1; + }) + ./patches/revert-269c1e1551285.patch + + + # Only formatting changes. + # https://trac.sagemath.org/ticket/25260 + ./patches/numpy-1.14.3.patch + + # https://trac.sagemath.org/ticket/24374 + (fetchpatch { + name = "networkx-2.1.patch"; + url = "https://salsa.debian.org/science-team/sagemath/raw/487df9ae48ca1d93d9b1cb3af8745d31e30fb741/debian/patches/u0-version-networkx-2.1.patch"; + sha256 = "1xxxawygbgxgvlv7b4w8hhzgdnva4rhmgdxaiaa3pwdwln0yc750"; + stripLen = 1; + }) + + # https://trac.sagemath.org/ticket/24927 rebased + ./patches/arb-2.13.0.patch + + # https://trac.sagemath.org/ticket/24838 rebased + ./patches/pynac-0.7.22.patch + ]; + + patches = nixPatches ++ packageUpgradePatches; + + postPatch = '' + # make sure shebangs etc are fixed, but sage-python23 still works + find . -type f -exec sed \ + -e 's/sage-python23/python/g' \ + -i {} \; + + echo '#!${stdenv.shell} + python "$@"' > build/bin/sage-python23 + + # Do not use sage-env-config (generated by ./configure). + # Instead variables are set manually. + echo '# do nothing' > src/bin/sage-env-config + ''; + + configurePhase = "# do nothing"; + + buildPhase = "# do nothing"; + + installPhase = '' + cp -r . "$out" + ''; +} diff --git a/pkgs/applications/science/math/sage/sage-with-env.nix b/pkgs/applications/science/math/sage/sage-with-env.nix new file mode 100644 index 00000000000..3d1ebe87c6b --- /dev/null +++ b/pkgs/applications/science/math/sage/sage-with-env.nix @@ -0,0 +1,129 @@ +{ stdenv +, lib +, makeWrapper +, sage-env +, sage-src +, sagelib +, sagedoc +, openblasCompat +, openblas-blas-pc +, openblas-cblas-pc +, openblas-lapack-pc +, pkg-config +, three +, singular +, libgap +, gap-libgap-compatible +, gcc +, giac +, maxima-ecl +, pari +, gmp +, gfan +, python2 +, flintqs +, eclib +, ntl +, ecm +, pynac +, pythonEnv +}: + +let + buildInputs = [ + pythonEnv # for patchShebangs + makeWrapper + pkg-config + openblasCompat # lots of segfaults with regular (64 bit) openblas + openblas-blas-pc + openblas-cblas-pc + openblas-lapack-pc + singular + three + pynac + giac + libgap + gap-libgap-compatible + pari + gmp + gfan + maxima-ecl + eclib + flintqs + ntl + ecm + ]; + + # remove python prefix, replace "-" in the name by "_", apply patch_names + # python2.7-some-pkg-1.0 -> some_pkg-1.0 + pkg_to_spkg_name = pkg: patch_names: let + parts = lib.splitString "-" pkg.name; + # remove python2.7- + stripped_parts = if (builtins.head parts) == python2.libPrefix then builtins.tail parts else parts; + version = lib.last stripped_parts; + orig_pkgname = lib.init stripped_parts; + pkgname = patch_names (lib.concatStringsSep "_" orig_pkgname); + in pkgname + "-" + version; + + + # return the names of all dependencies in the transitive closure + transitiveClosure = dep: + if isNull dep then + # propagatedBuildInputs might contain null + # (although that might be considered a programming error in the derivation) + [] + else + [ dep ] ++ ( + if builtins.hasAttr "propagatedBuildInputs" dep then + lib.unique (builtins.concatLists (map transitiveClosure dep.propagatedBuildInputs)) + else + [] + ); + + allInputs = lib.remove null (buildInputs ++ pythonEnv.extraLibs); + transitiveDeps = lib.unique (builtins.concatLists (map transitiveClosure allInputs )); + # fix differences between spkg and sage names + # (could patch sage instead, but this is more lightweight and also works for packages depending on sage) + patch_names = builtins.replaceStrings [ + "zope.interface" + "node_three" + ] [ + "zope_interface" + "threejs" + ]; + # spkg names (this_is_a_package-version) of all transitive deps + input_names = map (dep: pkg_to_spkg_name dep patch_names) transitiveDeps; +in +stdenv.mkDerivation rec { + version = sage-src.version; + name = "sage-with-env-${version}"; + + inherit buildInputs; + + src = sage-src; + + configurePhase = "#do nothing"; + + buildPhase = '' + mkdir installed + for pkg in ${lib.concatStringsSep " " input_names}; do + touch "installed/$pkg" + done + ''; + + installPhase = '' + mkdir -p "$out/var/lib/sage" + cp -r installed $out/var/lib/sage + + mkdir -p "$out/etc" + # sage tests will try to create this file if it doesn't exist + touch "$out/etc/sage-started.txt" + + mkdir -p "$out/build" + cp -r src/bin "$out/bin" + cp -r build/bin "$out/build/bin" + cp -f '${sage-env}/sage-env' "$out/bin/sage-env" + substituteInPlace "$out/bin/sage-env" \ + --subst-var-by sage-local "$out" + ''; +} diff --git a/pkgs/applications/science/math/sage/sage-wrapper.nix b/pkgs/applications/science/math/sage/sage-wrapper.nix new file mode 100644 index 00000000000..06b667f426f --- /dev/null +++ b/pkgs/applications/science/math/sage/sage-wrapper.nix @@ -0,0 +1,41 @@ +{ stdenv +, makeWrapper +, sage +, sage-src +, sagedoc +, withDoc +}: + +stdenv.mkDerivation rec { + version = sage.version; + name = "sage-wrapper-${version}"; + + buildInputs = [ + makeWrapper + ]; + + unpackPhase = "#do nothing"; + configurePhase = "#do nothing"; + buildPhase = "#do nothing"; + + installPhase = '' + mkdir -p "$out/bin" + makeWrapper "${sage}/bin/sage" "$out/bin/sage" \ + --set SAGE_DOC_SRC_OVERRIDE "${sage-src}/src/doc" ${ + stdenv.lib.optionalString withDoc "--set SAGE_DOC_OVERRIDE ${sagedoc}/share/doc/sage" + } + ''; + + doInstallCheck = withDoc; + installCheckPhase = '' + export HOME="$TMPDIR/sage-home" + mkdir -p "$HOME" + "$out/bin/sage" -c 'browse_sage_doc._open("reference", testing=True)' + ''; + + meta = with stdenv.lib; { + description = "Open Source Mathematics Software, free alternative to Magma, Maple, Mathematica, and Matlab"; + license = licenses.gpl2; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/applications/science/math/sage/sage.nix b/pkgs/applications/science/math/sage/sage.nix new file mode 100644 index 00000000000..b1e5d7278b0 --- /dev/null +++ b/pkgs/applications/science/math/sage/sage.nix @@ -0,0 +1,32 @@ +{ stdenv +, sage-with-env +, makeWrapper +}: + +stdenv.mkDerivation rec { + version = sage-with-env.version; + name = "sage-${version}"; + + buildInputs = [ + makeWrapper + ]; + + unpackPhase = "#do nothing"; + configurePhase = "#do nothing"; + buildPhase = "#do nothing"; + + installPhase = '' + mkdir -p "$out/bin" + # Like a symlink, but make sure that $0 points to the original. + makeWrapper "${sage-with-env}/bin/sage" "$out/bin/sage" + ''; + + doInstallCheck = true; + installCheckPhase = '' + export HOME="$TMPDIR/sage-home" + mkdir -p "$HOME" + + # "--long" tests are in the order of 1h, without "--long" its 1/2h + "$out/bin/sage" -t --nthreads "$NIX_BUILD_CORES" --optional=sage --long --all + ''; +} diff --git a/pkgs/applications/science/math/sage/sagedoc.nix b/pkgs/applications/science/math/sage/sagedoc.nix new file mode 100644 index 00000000000..7b280e9e028 --- /dev/null +++ b/pkgs/applications/science/math/sage/sagedoc.nix @@ -0,0 +1,97 @@ +{ pkgs +, stdenv +, sage-src +, env-locations +, sage-with-env +, sagelib +, python2 +, psutil +, future +, sphinx +, sagenb +, maxima-ecl +, networkx +, scipy +, sympy +, matplotlib +, pillow +, ipykernel +, jupyter_client +, tachyon +, jmol +, ipywidgets +, typing +, cddlib +, pybrial +}: + +stdenv.mkDerivation rec { + version = sage-src.version; + name = "sagedoc-${version}"; + + + # Building the documentation has many dependencies, because all documented + # modules are imported and because matplotlib is used to produce plots. + buildInputs = [ + sagelib + python2 + psutil + future + sphinx + sagenb + maxima-ecl + networkx + scipy + sympy + matplotlib + pillow + ipykernel + jupyter_client + tachyon + jmol + ipywidgets + typing + cddlib + pybrial + ]; + + unpackPhase = '' + export SAGE_DOC_OVERRIDE="$PWD/share/doc/sage" + export SAGE_DOC_SRC_OVERRIDE="$PWD/docsrc" + + cp -r "${sage-src}/src/doc" "$SAGE_DOC_SRC_OVERRIDE" + chmod -R 755 "$SAGE_DOC_SRC_OVERRIDE" + ''; + + buildPhase = '' + export SAGE_NUM_THREADS="$NIX_BUILD_CORES" + export HOME="$TMPDIR/sage_home" + mkdir -p "$HOME" + + ${sage-with-env}/bin/sage -python -m sage_setup.docbuild \ + --mathjax \ + --no-pdf-links \ + all html + ''; + + installPhase = '' + cd "$SAGE_DOC_OVERRIDE" + + mkdir -p "$out/share/doc/sage" + cp -r html "$out"/share/doc/sage + + # Replace duplicated files by symlinks (Gentoo) + cd "$out"/share/doc/sage + mv html/en/_static{,.tmp} + for _dir in `find -name _static` ; do + rm -r $_dir + ln -s /share/doc/sage/html/en/_static $_dir + done + mv html/en/_static{.tmp,} + ''; + + doCheck = true; + checkPhase = '' + ${sage-with-env}/bin/sage -t --optional=dochtml --all + ''; +} diff --git a/pkgs/applications/science/math/sage/sagelib.nix b/pkgs/applications/science/math/sage/sagelib.nix new file mode 100644 index 00000000000..a053d997bf9 --- /dev/null +++ b/pkgs/applications/science/math/sage/sagelib.nix @@ -0,0 +1,139 @@ +{ stdenv +, sage-src +, perl +, buildPythonPackage +, arb +, openblasCompat +, openblas-blas-pc +, openblas-cblas-pc +, openblas-lapack-pc +, brial +, cliquer +, cypari2 +, cysignals +, cython +, ecl +, eclib +, ecm +, flint +, gd +, givaro +, glpk +, gsl +, iml +, jinja2 +, lcalc +, lrcalc +, libgap +, linbox +, m4ri +, m4rie +, libmpc +, mpfi +, ntl +, numpy +, pari +, pkgconfig +, planarity +, ppl +, pynac +, python +, ratpoints +, readline +, rankwidth +, symmetrica +, zn_poly +, fflas-ffpack +, boost +, singular +, pip +, jupyter_core +}: + +buildPythonPackage rec { + format = "other"; + version = sage-src.version; + pname = "sagelib"; + + src = sage-src; + + nativeBuildInputs = [ + iml + perl + openblas-blas-pc + openblas-cblas-pc + openblas-lapack-pc + jupyter_core + ]; + + buildInputs = [ + gd + readline + ]; + + propagatedBuildInputs = [ + cypari2 + jinja2 + numpy + pkgconfig + boost + arb + brial + cliquer + ecl + eclib + ecm + fflas-ffpack + flint + givaro + glpk + gsl + lcalc + libgap + libmpc + linbox + lrcalc + m4ri + m4rie + mpfi + ntl + openblasCompat + pari + planarity + ppl + pynac + rankwidth + ratpoints + singular + symmetrica + zn_poly + pip + cython + cysignals + ]; + + buildPhase = '' + export SAGE_ROOT="$PWD" + export SAGE_LOCAL="$SAGE_ROOT" + export SAGE_SHARE="$SAGE_LOCAL/share" + export JUPYTER_PATH="$SAGE_LOCAL/jupyter" + + export PATH="$SAGE_ROOT/build/bin:$SAGE_ROOT/src/bin:$PATH" + + export SAGE_NUM_THREADS="$NIX_BUILD_CORES" + + mkdir -p "$SAGE_SHARE/sage/ext/notebook-ipython" + mkdir -p "var/lib/sage/installed" + + cd src + source bin/sage-dist-helpers + + ${python.interpreter} -u setup.py --no-user-cfg build + ''; + + installPhase = '' + ${python.interpreter} -u setup.py --no-user-cfg install --prefix=$out + + rm -r "$out/${python.sitePackages}/sage/cython_debug" + ''; +} diff --git a/pkgs/applications/science/math/sage/sagenb.nix b/pkgs/applications/science/math/sage/sagenb.nix new file mode 100644 index 00000000000..5ab387ebc5e --- /dev/null +++ b/pkgs/applications/science/math/sage/sagenb.nix @@ -0,0 +1,49 @@ +# Has a cyclic dependency with sage (not expressed here) and is not useful outside of sage +{ stdenv +, fetchpatch +, python +, buildPythonPackage +, fetchFromGitHub +, mathjax +, twisted +, flask +, flask-oldsessions +, flask-openid +, flask-autoindex +, flask-babel +}: + +buildPythonPackage rec { + pname = "sagenb"; + version = "2018-06-26"; # not 1.0.1 because of new flask syntax + + src = fetchFromGitHub { + owner = "sagemath"; + repo = "sagenb"; + rev = "b360a0172e15501fb0163d02dce713a561fee2af"; + sha256 = "12anydw0v9w23rbc0a94bqmjhjdir9h820c5zdhipw9ccdcc2jlf"; + }; + + propagatedBuildInputs = [ + twisted + flask + flask-oldsessions + flask-openid + flask-autoindex + flask-babel + ]; + + # tests depend on sage + doCheck = false; + + meta = with stdenv.lib; { + description = "Sage Notebook"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ timokau ]; + }; + + # let sagenb use mathjax + postInstall = '' + ln -s ${mathjax}/lib/node_modules/mathjax "$out/${python.sitePackages}/mathjax" + ''; +} diff --git a/pkgs/applications/science/math/sage/shebangs.patch b/pkgs/applications/science/math/sage/shebangs.patch deleted file mode 100644 index 96ed5a4bc6c..00000000000 --- a/pkgs/applications/science/math/sage/shebangs.patch +++ /dev/null @@ -1,36 +0,0 @@ -diff --git a/build/bin/sage-spkg b/build/bin/sage-spkg -index 83e61a7e0d..942ba206c7 100755 ---- a/build/bin/sage-spkg -+++ b/build/bin/sage-spkg -@@ -648,8 +648,12 @@ if ! sage-apply-patches; then - error_msg "Error applying patches" - exit 1 - fi -+ -+@bash@/bin/bash @patchSageShebangs@ . -+ - cd .. - -+ - ################################################################## - # The package has been extracted, prepare for installation - ################################################################## -@@ -671,7 +675,7 @@ write_script_wrapper() { - local tmpscript="$(dirname "$script")/.tmp-${script##*/}" - - cat > "$tmpscript" <<__EOF__ --#!/usr/bin/env bash -+#! @bash@/bin/bash - - export SAGE_ROOT="$SAGE_ROOT" - export SAGE_SRC="$SAGE_SRC" -@@ -833,6 +837,9 @@ if [ "$UNAME" = "CYGWIN" ]; then - sage-rebase.sh "$SAGE_LOCAL" 2>/dev/null - fi - -+@bash@/bin/bash @patchSageShebangs@ . -+@bash@/bin/bash @patchSageShebangs@ "$out/bin" -+ - echo "Successfully installed $PKG_NAME" - - if [ "$SAGE_CHECK" = "yes" ]; then diff --git a/pkgs/applications/science/math/sage/spkg-giac.patch b/pkgs/applications/science/math/sage/spkg-giac.patch deleted file mode 100644 index c79d4422133..00000000000 --- a/pkgs/applications/science/math/sage/spkg-giac.patch +++ /dev/null @@ -1,20 +0,0 @@ -diff --git a/build/pkgs/giac/spkg-install b/build/pkgs/giac/spkg-install -index bdd8df6cb8..3fd7a3ef8a 100644 ---- a/build/pkgs/giac/spkg-install -+++ b/build/pkgs/giac/spkg-install -@@ -2,6 +2,15 @@ - ## Giac - ########################################### - -+# Fix hardcoded paths, while making sure to only update timestamps of actually -+# changed files (otherwise confuses make) -+grep -rlF '/bin/cp' . | while read file -+do -+ sed -e 's@/bin/cp@cp@g' -i "$file" -+done -+ -+# Fix input parser syntax -+sed -e 's@yylex (&yylval)@yylex (\&yyval, scanner)@gp' -i 'src/src/input_parser.cc' - - if [ "$SAGE_LOCAL" = "" ]; then - echo "SAGE_LOCAL undefined ... exiting"; diff --git a/pkgs/applications/science/math/sage/spkg-git.patch b/pkgs/applications/science/math/sage/spkg-git.patch deleted file mode 100644 index 74f552dd3c3..00000000000 --- a/pkgs/applications/science/math/sage/spkg-git.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/build/pkgs/git/spkg-install b/build/pkgs/git/spkg-install -index 87874de3d8..b0906245fa 100644 ---- a/build/pkgs/git/spkg-install -+++ b/build/pkgs/git/spkg-install -@@ -33,6 +33,13 @@ fi - - cd src - -+# Fix hardcoded paths, while making sure to only update timestamps of actually -+# changed files (otherwise confuses make) -+grep -rlF '/usr/bin/perl' . | while read file -+do -+ sed -e 's@/usr/bin/perl@perl@g' -i "$file" -+done -+ - # We don't want to think about Fink or Macports - export NO_FINK=1 - export NO_DARWIN_PORTS=1 diff --git a/pkgs/applications/science/math/sage/spkg-python.patch b/pkgs/applications/science/math/sage/spkg-python.patch deleted file mode 100644 index e39981b6552..00000000000 --- a/pkgs/applications/science/math/sage/spkg-python.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/build/pkgs/python3/spkg-build b/build/pkgs/python3/spkg-build -index 56db087ae5..b450703c5f 100644 ---- a/build/pkgs/python3/spkg-build -+++ b/build/pkgs/python3/spkg-build -@@ -27,6 +27,8 @@ fi - export EXTRA_CFLAGS="`testcflags.sh -Wno-unused` $CFLAGS" - unset CFLAGS - -+export LDFLAGS="$LDFLAGS -lcrypt" -+ - if [ "$UNAME" = Darwin ]; then - PYTHON_CONFIGURE="--disable-toolbox-glue $PYTHON_CONFIGURE" - diff --git a/pkgs/applications/science/math/sage/spkg-singular.patch b/pkgs/applications/science/math/sage/spkg-singular.patch deleted file mode 100644 index 606ffcd3ad4..00000000000 --- a/pkgs/applications/science/math/sage/spkg-singular.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/build/pkgs/singular/spkg-install b/build/pkgs/singular/spkg-install -index 8caafb1699..3c34e6608a 100644 ---- a/build/pkgs/singular/spkg-install -+++ b/build/pkgs/singular/spkg-install -@@ -2,6 +2,13 @@ - ## Singular - ########################################### - -+# Fix hardcoded paths, while making sure to only update timestamps of actually -+# changed files (otherwise confuses make) -+grep -rlF '/bin/rm' . | while read file -+do -+ sed -e 's@/bin/rm@rm@g' -i "$file" -+done -+ - if [ -z "$SAGE_LOCAL" ]; then - echo >&2 "Error: SAGE_LOCAL undefined -- exiting..." - echo >&2 "Maybe run 'sage -sh'?" diff --git a/pkgs/applications/science/math/symmetrica/default.nix b/pkgs/applications/science/math/symmetrica/default.nix index a7212299aa6..6123fd7306d 100644 --- a/pkgs/applications/science/math/symmetrica/default.nix +++ b/pkgs/applications/science/math/symmetrica/default.nix @@ -1,14 +1,15 @@ -{stdenv, fetchurl}: +{ stdenv +, fetchurl +, fetchpatch +}: stdenv.mkDerivation rec { name = "symmetrica-${version}"; version = "2.0"; - # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev) src = fetchurl { url = "http://www.algorithm.uni-bayreuth.de/en/research/SYMMETRICA/SYM2_0_tar.gz"; sha256 = "1qhfrbd5ybb0sinl9pad64rscr08qvlfzrzmi4p4hk61xn6phlmz"; name = "symmetrica-2.0.tar.gz"; }; - buildInputs = []; sourceRoot = "."; installPhase = '' mkdir -p "$out"/{lib,share/doc/symmetrica,include/symmetrica} @@ -18,6 +19,22 @@ stdenv.mkDerivation rec { cp *.h "$out/include/symmetrica" cp README *.doc "$out/share/doc/symmetrica" ''; + patches = [ + # don't show banner ("SYMMETRICA VERSION X - STARTING) + # it doesn't contain very much helpful information and a banner is not ideal for a library + (fetchpatch { + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/symmetrica/patches/de.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "0df0vqixcfpzny6dkhyj87h8aznz3xn3zfwwlj8pd10bpb90k6gb"; + }) + + # use int32_t and uint32_t for type INT + # see https://trac.sagemath.org/ticket/13413 + (fetchpatch { + name = "fix_64bit_integer_overflow.patch"; + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/symmetrica/patches/int32.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "0p33c85ck4kd453z687ni4bdcqr1pqx2756j7aq11bf63vjz4cyz"; + }) + ]; meta = { inherit version; description = ''A collection of routines for representation theory and combinatorics''; diff --git a/pkgs/applications/video/streamlink/default.nix b/pkgs/applications/video/streamlink/default.nix index 6885caa7d60..491e6fcd164 100644 --- a/pkgs/applications/video/streamlink/default.nix +++ b/pkgs/applications/video/streamlink/default.nix @@ -1,22 +1,16 @@ { stdenv, pythonPackages, fetchFromGitHub, rtmpdump, ffmpeg }: pythonPackages.buildPythonApplication rec { - version = "0.13.0"; + version = "0.14.2"; name = "streamlink-${version}"; src = fetchFromGitHub { owner = "streamlink"; repo = "streamlink"; rev = "${version}"; - sha256 = "17i5j5a69d28abg13md2r2ycxgmd5h1pjy0pgca1zcqaqfq4v05x"; + sha256 = "1njwfy1h8a9n5z6crrfnknlw4ys0bap2jam6ga6njgkd10aly9qr"; }; - postPatch = '' - # Fix failing test. This can be removed after version 0.13.0, see: - # https://github.com/streamlink/streamlink/commit/a27e1a2d8eec6eb23c6e1dc280c6afc1cd0b5b32 - substituteInPlace tests/test_plugin.py --replace "lambda: datetime" "datetime" - ''; - checkInputs = with pythonPackages; [ pytest mock requests-mock freezegun ]; propagatedBuildInputs = (with pythonPackages; [ pycryptodome requests iso-639 iso3166 websocket_client isodate ]) ++ [ rtmpdump ffmpeg ]; diff --git a/pkgs/build-support/fetchurl/mirrors.nix b/pkgs/build-support/fetchurl/mirrors.nix index 2d177353153..d5f29e3daf1 100644 --- a/pkgs/build-support/fetchurl/mirrors.nix +++ b/pkgs/build-support/fetchurl/mirrors.nix @@ -319,51 +319,48 @@ rec { ]; # Sage mirrors (http://www.sagemath.org/mirrors.html) - sagemath = [ + sageupstream = [ # Africa - http://sagemath.polytechnic.edu.na/src/ - ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/src/ - http://sagemath.mirror.ac.za/src/ - https://ftp.leg.uct.ac.za/pub/packages/sage/src/ - http://mirror.ufs.ac.za/sagemath/src/ + http://sagemath.polytechnic.edu.na/spkg/upstream/ + ftp://ftp.sun.ac.za/pub/mirrors/www.sagemath.org/spkg/upstream/ + http://sagemath.mirror.ac.za/spkg/upstream/ + https://ftp.leg.uct.ac.za/pub/packages/sage/spkg/upstream/ + http://mirror.ufs.ac.za/sagemath/spkg/upstream/ # America, North - http://mirrors-usa.go-parts.com/sage/sagemath/src/ - http://mirrors.mit.edu/sage/src/ - http://www.cecm.sfu.ca/sage/src/ - http://files.sagemath.org/src/ - http://mirror.clibre.uqam.ca/sage/src/ - https://mirrors.xmission.com/sage/src/ + http://mirrors-usa.go-parts.com/sage/sagemath/spkg/upstream/ + http://mirrors.mit.edu/sage/spkg/upstream/ + http://www.cecm.sfu.ca/sage/spkg/upstream/ + http://files.sagemath.org/spkg/upstream/ + http://mirror.clibre.uqam.ca/sage/spkg/upstream/ + https://mirrors.xmission.com/sage/spkg/upstream/ # America, South - http://sagemath.c3sl.ufpr.br/src/ - http://linorg.usp.br/sage/ + http://sagemath.c3sl.ufpr.br/spkg/upstream/ + http://linorg.usp.br/sage/spkg/upstream # Asia - http://sage.asis.io/src/ - http://mirror.hust.edu.cn/sagemath/src/ - https://ftp.iitm.ac.in/sage/src/ - http://ftp.kaist.ac.kr/sage/src/ - http://ftp.riken.jp/sagemath/src/ - https://mirrors.tuna.tsinghua.edu.cn/sagemath/src/ - https://mirrors.ustc.edu.cn/sagemath/src/ - http://ftp.tsukuba.wide.ad.jp/software/sage/src/ - http://ftp.yz.yamagata-u.ac.jp/pub/math/sage/src/ - https://mirror.yandex.ru/mirrors/sage.math.washington.edu/src/ + http://sage.asis.io/spkg/upstream/ + http://mirror.hust.edu.cn/sagemath/spkg/upstream/ + https://ftp.iitm.ac.in/sage/spkg/upstream/ + http://ftp.kaist.ac.kr/sage/spkg/upstream/ + http://ftp.riken.jp/sagemath/spkg/upstream/ + https://mirrors.tuna.tsinghua.edu.cn/sagemath/spkg/upstream/ + https://mirrors.ustc.edu.cn/sagemath/spkg/upstream/ + http://ftp.tsukuba.wide.ad.jp/software/sage/spkg/upstream/ + http://ftp.yz.yamagata-u.ac.jp/pub/math/sage/spkg/upstream/ + https://mirror.yandex.ru/mirrors/sage.math.washington.edu/spkg/upstream/ # Australia - http://echidna.maths.usyd.edu.au/sage/src/ + http://echidna.maths.usyd.edu.au/sage/spkg/upstream/ # Europe - http://sage.mirror.garr.it/mirrors/sage/src/ - http://sunsite.rediris.es/mirror/sagemath/src/ - http://mirror.switch.ch/mirror/sagemath/src/ - http://mirrors.fe.up.pt/pub/sage/src/ - http://www-ftp.lip6.fr/pub/math/sagemath/src/ - http://ftp.ntua.gr/pub/sagemath/src/ - - # Old versions - http://sagemath.org/src-old/ + http://sage.mirror.garr.it/mirrors/sage/spkg/upstream/ + http://sunsite.rediris.es/mirror/sagemath/spkg/upstream/ + http://mirror.switch.ch/mirror/sagemath/spkg/upstream/ + http://mirrors.fe.up.pt/pub/sage/spkg/upstream/ + http://www-ftp.lip6.fr/pub/math/sagemath/spkg/upstream/ + http://ftp.ntua.gr/pub/sagemath/spkg/upstream/ ]; # MySQL mirrors diff --git a/pkgs/data/misc/combinatorial_designs/default.nix b/pkgs/data/misc/combinatorial_designs/default.nix new file mode 100644 index 00000000000..18331b5ada9 --- /dev/null +++ b/pkgs/data/misc/combinatorial_designs/default.nix @@ -0,0 +1,31 @@ +{ stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + name = "combinatorial_designs-${version}"; + version = "20140630"; + + src = fetchurl { + url = "mirror://sageupstream/combinatorial_designs/combinatorial_designs-${version}.tar.bz2"; + sha256 = "0bj8ngiq59hipa6izi6g5ph5akmy4cbk0vlsb0wa67f7grnnqj69"; + }; + + installPhase = '' + mkdir -p "$out/share/combinatorial_designs" + mv * "$out/share/combinatorial_designs" + ''; + + meta = with stdenv.lib; { + description = "Data for Combinatorial Designs"; + longDescription = '' + Current content: + + - The table of MOLS (10 000 integers) from the Handbook of Combinatorial + Designs, 2ed. + ''; + license = licenses.publicDomain; + platforms = platforms.all; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/data/misc/conway_polynomials/default.nix b/pkgs/data/misc/conway_polynomials/default.nix new file mode 100644 index 00000000000..fec422b33ac --- /dev/null +++ b/pkgs/data/misc/conway_polynomials/default.nix @@ -0,0 +1,43 @@ +{ stdenv +, fetchurl +, python +}: + +stdenv.mkDerivation rec { + name = "conway_polynomials-${version}"; + version = "0.5"; + + pythonEnv = python.withPackages (ps: with ps; [ six ]); + + src = fetchurl { + url = "mirror://sageupstream/conway_polynomials/conway_polynomials-${version}.tar.bz2"; + sha256 = "05zb1ly9x2bbscqv0jgc45g48xx77mfs7qdbqhn4ihmihn57iwnq"; + }; + + # Script that creates the "database" (nested python array) and pickles it + spkg-install = fetchurl { + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/conway_polynomials/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "0m12nfb37j3bn4bp06ddgnyp2d6z0hg5f83pbbjszxw7vxs33a82"; + }; + + installPhase = '' + # directory layout as spkg-install.py expects + dir="$PWD" + cd .. + ln -s "$dir" "src" + + # environment spkg-install.py expects + mkdir -p "$out/share" + export SAGE_SHARE="$out/share" + export PYTHONPATH=$PWD + + ${pythonEnv.interpreter} ${spkg-install} + ''; + + meta = with stdenv.lib; { + description = "Contains a small database of Conway polynomials."; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/data/misc/elliptic_curves/default.nix b/pkgs/data/misc/elliptic_curves/default.nix new file mode 100644 index 00000000000..528486328c6 --- /dev/null +++ b/pkgs/data/misc/elliptic_curves/default.nix @@ -0,0 +1,51 @@ +{ stdenv +, fetchurl +, python +}: + +stdenv.mkDerivation rec { + pname = "elliptic_curves"; + version = "0.8"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2"; + sha256 = "0pzaym44x88dn8rydiwqgm73yghzlgf7gqvd7qqsrsdl2vyp091w"; + }; + + + # Script that creates the sqlite database from the allcurves textfile + spkg-install = fetchurl { + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/${pname}/spkg-install.py?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "116g684i6mvs11fvb6fzfsr4fn903axn31vigdyb8bgpf8l4hvc5"; + }; + + installPhase = '' + # directory layout as spkg-install.py expects + dir="$PWD" + cd .. + ln -s "$dir" "src" + + # environment spkg-install.py expects + mkdir -p "$out/share" + export SAGE_SHARE="$out/share" + export PYTHONPATH=$PWD + + ${python.interpreter} ${spkg-install} + ''; + + meta = with stdenv.lib; { + description = "Databases of elliptic curves"; + longDescription = '' + Includes two databases: + + * A small subset of the data in John Cremona's database of elliptic curves up + to conductor 10000. See http://www.warwick.ac.uk/~masgaj/ftp/data/ or + http://sage.math.washington.edu/cremona/INDEX.html + * William Stein's database of interesting curves + ''; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/data/misc/graphs/default.nix b/pkgs/data/misc/graphs/default.nix new file mode 100644 index 00000000000..aea5feef46c --- /dev/null +++ b/pkgs/data/misc/graphs/default.nix @@ -0,0 +1,26 @@ +{ stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + pname = "graphs"; + version = "20161026"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2"; + sha256 = "0a2b5lly9nifphvknz88rrhfbbc8vqnlqcv19zdpfq8h8nnyjbb2"; + }; + + installPhase = '' + mkdir -p "$out/share/graphs" + cp * "$out/share/graphs/" + ''; + + meta = with stdenv.lib; { + description = "A database of graphs"; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/data/misc/pari-galdata/default.nix b/pkgs/data/misc/pari-galdata/default.nix new file mode 100644 index 00000000000..222fd2f8870 --- /dev/null +++ b/pkgs/data/misc/pari-galdata/default.nix @@ -0,0 +1,26 @@ +{ stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + version = "20080411"; + name = "pari-galdata-${version}"; + + src = fetchurl { + url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/galdata.tgz"; + sha256 = "1pch6bk76f1i6cwwgm7hhxi5h71m52lqayp4mnyj0jmjk406bhdp"; + }; + + installPhase = '' + mkdir -p "$out/share/pari" + cp -R * "$out/share/pari/" + ''; + + meta = with stdenv.lib; { + description = "PARI database needed to compute Galois group in degrees 8 through 11"; + homepage = http://pari.math.u-bordeaux.fr/; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/data/misc/pari-seadata-small/default.nix b/pkgs/data/misc/pari-seadata-small/default.nix new file mode 100644 index 00000000000..967122c1bd4 --- /dev/null +++ b/pkgs/data/misc/pari-seadata-small/default.nix @@ -0,0 +1,26 @@ +{ stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + version = "20090618"; + name = "pari-seadata-small-${version}"; + + src = fetchurl { + url = "http://pari.math.u-bordeaux.fr/pub/pari/packages/seadata-small.tgz"; + sha256 = "13qafribxwkz8h3haa0cng7arz0kh7398br4y7vqs9ib8w9yjnxz"; + }; + + installPhase = '' + mkdir -p "$out/share/pari" + cp -R * "$out/share/pari/" + ''; + + meta = with stdenv.lib; { + description = "PARI database needed by ellap for large primes"; + homepage = http://pari.math.u-bordeaux.fr/; + license = licenses.gpl2Plus; + platforms = platforms.all; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/data/misc/polytopes_db/default.nix b/pkgs/data/misc/polytopes_db/default.nix new file mode 100644 index 00000000000..85f2cff09db --- /dev/null +++ b/pkgs/data/misc/polytopes_db/default.nix @@ -0,0 +1,26 @@ +{ stdenv +, fetchurl +}: + +stdenv.mkDerivation rec { + pname = "polytopes_db"; + version = "20170220"; + name = "${pname}-${version}"; + + src = fetchurl { + url = "mirror://sageupstream/${pname}/${pname}-${version}.tar.bz2"; + sha256 = "1q0cd811ilhax4dsj9y5p7z8prlalqr7k9mzq178c03frbgqny6b"; + }; + + installPhase = '' + mkdir -p "$out/share/reflexive_polytopes" + cp -R * "$out/share/reflexive_polytopes/" + ''; + + meta = with stdenv.lib; { + description = "Reflexive polytopes database"; + license = licenses.gpl2; + platforms = platforms.all; + maintainers = with maintainers; [ timokau ]; + }; +} diff --git a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix index 44b0de37d69..dc55fa9a7b4 100644 --- a/pkgs/desktops/gnome-3/core/tracker-miners/default.nix +++ b/pkgs/desktops/gnome-3/core/tracker-miners/default.nix @@ -7,16 +7,13 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "tracker-miners"; - version = "2.0.4"; + version = "2.0.5"; src = fetchurl { url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz"; - sha256 = "0mp9m2waii583sjgr61m1ni6py6dry11r0rzidgvw1g4cxhn89j6"; + sha256 = "00k8nb8dbkjnqjk12gcs5n2cm6yny553qildsm5b2c8nfs1w16b4"; }; - # https://github.com/NixOS/nixpkgs/issues/39547 - LIBRARY_PATH = stdenv.lib.makeLibraryPath [ giflib ]; - nativeBuildInputs = [ intltool itstool @@ -71,31 +68,11 @@ stdenv.mkDerivation rec { src = ./fix-paths.patch; inherit (gnome3) tracker; }) - # https://bugzilla.gnome.org/show_bug.cgi?id=795573 - (fetchurl { - url = https://bugzilla.gnome.org/attachment.cgi?id=371422; - sha256 = "1rzwzrc7q73k42s1j1iw52chy10w6y3xksfrzg2l42nn9wk7n281"; - }) - # https://bugzilla.gnome.org/show_bug.cgi?id=795574 - (fetchurl { - url = https://bugzilla.gnome.org/attachment.cgi?id=371423; - sha256 = "0b2ck8z4b2yrgwg4v9jsac5n8h3a91qkp90vv17wxcvr4v50fg48"; - }) - # https://bugzilla.gnome.org/show_bug.cgi?id=795575 - (fetchurl { - url = https://bugzilla.gnome.org/attachment.cgi?id=371424; - sha256 = "03i29fabxrpraydh7712vdrc571qmiq0l4axj24gbi6h77xn7mxc"; - }) # https://bugzilla.gnome.org/show_bug.cgi?id=795576 (fetchurl { url = https://bugzilla.gnome.org/attachment.cgi?id=371427; sha256 = "187flswvzymjfxwfrrhizb1cvs780zm39aa3i2vwa5fbllr7kcpf"; }) - # https://bugzilla.gnome.org/show_bug.cgi?id=795577 - (fetchurl { - url = https://bugzilla.gnome.org/attachment.cgi?id=371425; - sha256 = "05m629469jr2lm2cjs54n7xwyim2d5rwwvdjxzcwh5qpfjds5phm"; - }) ]; passthru = { @@ -114,7 +91,7 @@ stdenv.mkDerivation rec { postInstall = '' ${glib.dev}/bin/glib-compile-schemas $out/share/glib-2.0/schemas ''; - + # https://bugzilla.gnome.org/show_bug.cgi?id=796145 postFixup = '' rm $out/share/tracker/miners/org.freedesktop.Tracker1.Miner.RSS.service diff --git a/pkgs/desktops/gnome-3/core/tracker/default.nix b/pkgs/desktops/gnome-3/core/tracker/default.nix index cbf16c6807f..649960c0bf3 100644 --- a/pkgs/desktops/gnome-3/core/tracker/default.nix +++ b/pkgs/desktops/gnome-3/core/tracker/default.nix @@ -4,7 +4,7 @@ let pname = "tracker"; - version = "2.0.3"; + version = "2.0.4"; in stdenv.mkDerivation rec { name = "${pname}-${version}"; @@ -12,7 +12,7 @@ in stdenv.mkDerivation rec { src = fetchurl { url = "mirror://gnome/sources/${pname}/${gnome3.versionBranch version}/${name}.tar.xz"; - sha256 = "1005w90vhk1cl8g6kxpy2vdzbskw2jskfjcl42lngv18q5sb4bss"; + sha256 = "1mfc5lv820kr7ssi7hldn25gmshh65k19kh478qjsnb64sshsbyf"; }; enableParallelBuilding = true; diff --git a/pkgs/desktops/lxqt/optional/compton-conf/default.nix b/pkgs/desktops/lxqt/optional/compton-conf/default.nix index 253f8112f5b..1c2ade5938e 100644 --- a/pkgs/desktops/lxqt/optional/compton-conf/default.nix +++ b/pkgs/desktops/lxqt/optional/compton-conf/default.nix @@ -3,13 +3,13 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "compton-conf"; - version = "0.3.0"; + version = "0.4.0"; src = fetchFromGitHub { owner = "lxde"; repo = pname; rev = version; - sha256 = "1p1y7g5psczx1dgh6gd1h5iga8rylvczkwlfirzrh0rfl45dajgb"; + sha256 = "1r187fx1vivzq1gcwwawax36mnlmfig5j1ba4s4wfdi3q2wcq7mw"; }; nativeBuildInputs = [ diff --git a/pkgs/development/compilers/ecl/16.1.2.nix b/pkgs/development/compilers/ecl/16.1.2.nix index 291b0ed013d..c27f2a22670 100644 --- a/pkgs/development/compilers/ecl/16.1.2.nix +++ b/pkgs/development/compilers/ecl/16.1.2.nix @@ -53,6 +53,14 @@ stdenv.mkDerivation { url = "https://gitlab.com/embeddable-common-lisp/ecl/commit/caba1989f40ef917e7486f41b9cd5c7e3c5c2d79.patch"; sha256 = "07vw91psbc9gdn8grql46ra8lq3bgkzg5v480chnbryna4sv6lbb"; }) + (fetchpatch { + # Fix getcwd with long pathnames + # Rebased version of + # https://gitlab.com/embeddable-common-lisp/ecl/commit/ac5f011f57a85a38627af154bc3ee7580e7fecd4.patch + name = "getcwd.patch"; + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/ecl/patches/16.1.2-getcwd.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "1fbi8gn7rv8nqff5mpaijsrch3k3z7qc5cn4h1vl8qrr8xwqlqhb"; + }) ]; hardeningDisable = [ "format" ]; diff --git a/pkgs/development/compilers/ghc/8.6.1.nix b/pkgs/development/compilers/ghc/8.6.1.nix new file mode 100644 index 00000000000..51b79ed6bb1 --- /dev/null +++ b/pkgs/development/compilers/ghc/8.6.1.nix @@ -0,0 +1,210 @@ +{ stdenv, targetPackages +, buildPlatform, hostPlatform, targetPlatform + +# build-tools +, bootPkgs, alex, happy, hscolour +, autoconf, automake, coreutils, fetchurl, fetchpatch, perl, python3, m4 + +, libffi, libiconv ? null, ncurses + +, useLLVM ? !targetPlatform.isx86 || targetPlatform.isMusl +, # LLVM is conceptually a run-time-only depedendency, but for + # non-x86, we need LLVM to bootstrap later stages, so it becomes a + # build-time dependency too. + buildLlvmPackages, llvmPackages + +, # If enabled, GHC will be built with the GPL-free but slower integer-simple + # library instead of the faster but GPLed integer-gmp library. + enableIntegerSimple ? !(gmp.meta.available or false), gmp + +, # If enabled, use -fPIC when compiling static libs. + enableRelocatedStaticLibs ? targetPlatform != hostPlatform + +, # Whether to build dynamic libs for the standard library (on the target + # platform). Static libs are always built. + enableShared ? !targetPlatform.isWindows && !targetPlatform.useiOSPrebuilt + +, # Whetherto build terminfo. + enableTerminfo ? !targetPlatform.isWindows + +, # What flavour to build. An empty string indicates no + # specific flavour and falls back to ghc default values. + ghcFlavour ? stdenv.lib.optionalString (targetPlatform != hostPlatform) "perf-cross" +}: + +let + inherit (bootPkgs) ghc; + + # TODO(@Ericson2314) Make unconditional + targetPrefix = stdenv.lib.optionalString + (targetPlatform != hostPlatform) + "${targetPlatform.config}-"; + + buildMK = '' + BuildFlavour = ${ghcFlavour} + ifneq \"\$(BuildFlavour)\" \"\" + include mk/flavours/\$(BuildFlavour).mk + endif + DYNAMIC_GHC_PROGRAMS = ${if enableShared then "YES" else "NO"} + '' + stdenv.lib.optionalString enableIntegerSimple '' + INTEGER_LIBRARY = integer-simple + '' + stdenv.lib.optionalString (targetPlatform != hostPlatform) '' + Stage1Only = ${if targetPlatform.system == hostPlatform.system then "NO" else "YES"} + CrossCompilePrefix = ${targetPrefix} + HADDOCK_DOCS = NO + BUILD_SPHINX_HTML = NO + BUILD_SPHINX_PDF = NO + '' + stdenv.lib.optionalString enableRelocatedStaticLibs '' + GhcLibHcOpts += -fPIC + GhcRtsHcOpts += -fPIC + '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' + EXTRA_CC_OPTS += -std=gnu99 + ''; + + # Splicer will pull out correct variations + libDeps = platform: stdenv.lib.optional enableTerminfo [ ncurses ] + ++ stdenv.lib.optional (!enableIntegerSimple) gmp + ++ stdenv.lib.optional (platform.libc != "glibc" && !targetPlatform.isWindows) libiconv; + + toolsForTarget = + if hostPlatform == buildPlatform then + [ targetPackages.stdenv.cc ] ++ stdenv.lib.optional useLLVM llvmPackages.llvm + else assert targetPlatform == hostPlatform; # build != host == target + [ stdenv.cc ] ++ stdenv.lib.optional useLLVM buildLlvmPackages.llvm; + + targetCC = builtins.head toolsForTarget; + +in +stdenv.mkDerivation (rec { + version = "8.6.0.20180627"; + name = "${targetPrefix}ghc-${version}"; + + src = fetchurl { + url = "https://downloads.haskell.org/~ghc/8.6.1-alpha1/ghc-${version}-src.tar.xz"; + sha256 = "0vmki10ypdhca3nykxz3lgarr14mfanfkif43m1s2p1q0b1z576n"; + }; + + enableParallelBuilding = true; + + outputs = [ "out" "doc" ]; + + patches = stdenv.lib.optional stdenv.isDarwin ./backport-dylib-command-size-limit.patch; + + postPatch = "patchShebangs ."; + + # GHC is a bit confused on its cross terminology. + preConfigure = '' + for env in $(env | grep '^TARGET_' | sed -E 's|\+?=.*||'); do + export "''${env#TARGET_}=''${!env}" + done + # GHC is a bit confused on its cross terminology, as these would normally be + # the *host* tools. + export CC="${targetCC}/bin/${targetCC.targetPrefix}cc" + export CXX="${targetCC}/bin/${targetCC.targetPrefix}cxx" + # Use gold to work around https://sourceware.org/bugzilla/show_bug.cgi?id=16177 + export LD="${targetCC.bintools}/bin/${targetCC.bintools.targetPrefix}ld${stdenv.lib.optionalString targetPlatform.isAarch32 ".gold"}" + export AS="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}as" + export AR="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ar" + export NM="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}nm" + export RANLIB="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}ranlib" + export READELF="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}readelf" + export STRIP="${targetCC.bintools.bintools}/bin/${targetCC.bintools.targetPrefix}strip" + + echo -n "${buildMK}" > mk/build.mk + sed -i -e 's|-isysroot /Developer/SDKs/MacOSX10.5.sdk||' configure + '' + stdenv.lib.optionalString (!stdenv.isDarwin) '' + export NIX_LDFLAGS+=" -rpath $out/lib/ghc-${version}" + '' + stdenv.lib.optionalString stdenv.isDarwin '' + export NIX_LDFLAGS+=" -no_dtrace_dof" + '' + stdenv.lib.optionalString targetPlatform.useAndroidPrebuilt '' + sed -i -e '5i ,("armv7a-unknown-linux-androideabi", ("e-m:e-p:32:32-i64:64-v128:64:128-a:0:32-n32-S64", "cortex-a8", ""))' llvm-targets + ''; + + # TODO(@Ericson2314): Always pass "--target" and always prefix. + configurePlatforms = [ "build" "host" ] + ++ stdenv.lib.optional (targetPlatform != hostPlatform) "target"; + # `--with` flags for libraries needed for RTS linker + configureFlags = [ + "--datadir=$doc/share/doc/ghc" + "--with-curses-includes=${ncurses.dev}/include" "--with-curses-libraries=${ncurses.out}/lib" + ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && ! enableIntegerSimple) [ + "--with-gmp-includes=${gmp.dev}/include" "--with-gmp-libraries=${gmp.out}/lib" + ] ++ stdenv.lib.optional (targetPlatform == hostPlatform && hostPlatform.libc != "glibc" && !targetPlatform.isWindows) [ + "--with-iconv-includes=${libiconv}/include" "--with-iconv-libraries=${libiconv}/lib" + ] ++ stdenv.lib.optionals (targetPlatform != hostPlatform) [ + "--enable-bootstrap-with-devel-snapshot" + ] ++ stdenv.lib.optionals (targetPlatform.isAarch32) [ + "CFLAGS=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE1=-fuse-ld=gold" + "CONF_GCC_LINKER_OPTS_STAGE2=-fuse-ld=gold" + ] ++ stdenv.lib.optionals (targetPlatform.isDarwin && targetPlatform.isAarch64) [ + # fix for iOS: https://www.reddit.com/r/haskell/comments/4ttdz1/building_an_osxi386_to_iosarm64_cross_compiler/d5qvd67/ + "--disable-large-address-space" + ]; + + # Make sure we never relax`$PATH` and hooks support for compatability. + strictDeps = true; + + nativeBuildInputs = [ + perl autoconf automake m4 python3 + ghc alex happy hscolour + ]; + + # For building runtime libs + depsBuildTarget = toolsForTarget; + + buildInputs = libDeps hostPlatform; + + propagatedBuildInputs = [ targetPackages.stdenv.cc ] + ++ stdenv.lib.optional useLLVM llvmPackages.llvm; + + depsTargetTarget = map stdenv.lib.getDev (libDeps targetPlatform); + depsTargetTargetPropagated = map (stdenv.lib.getOutput "out") (libDeps targetPlatform); + + # required, because otherwise all symbols from HSffi.o are stripped, and + # that in turn causes GHCi to abort + stripDebugFlags = [ "-S" ] ++ stdenv.lib.optional (!targetPlatform.isDarwin) "--keep-file-symbols"; + + checkTarget = "test"; + + hardeningDisable = [ "format" ]; + + postInstall = '' + for bin in "$out"/lib/${name}/bin/*; do + isELF "$bin" || continue + paxmark m "$bin" + done + + # Install the bash completion file. + install -D -m 444 utils/completion/ghc.bash $out/share/bash-completion/completions/${targetPrefix}ghc + + # Patch scripts to include "readelf" and "cat" in $PATH. + for i in "$out/bin/"*; do + test ! -h $i || continue + egrep --quiet '^#!' <(head -n 1 $i) || continue + sed -i -e '2i export PATH="$PATH:${stdenv.lib.makeBinPath [ targetPackages.stdenv.cc.bintools coreutils ]}"' $i + done + ''; + + passthru = { + inherit bootPkgs targetPrefix; + + inherit llvmPackages; + inherit enableShared; + + # Our Cabal compiler name + haskellCompilerName = "ghc-8.4.3"; + }; + + meta = { + homepage = http://haskell.org/ghc; + description = "The Glasgow Haskell Compiler"; + maintainers = with stdenv.lib.maintainers; [ marcweber andres peti ]; + inherit (ghc.meta) license platforms; + }; + +} // stdenv.lib.optionalAttrs targetPlatform.useAndroidPrebuilt { + dontStrip = true; + dontPatchELF = true; + noAuditTmpdir = true; +}) diff --git a/pkgs/development/compilers/polyml/5.6.nix b/pkgs/development/compilers/polyml/5.6.nix index 8b5d14e7f5f..7f22f4de624 100644 --- a/pkgs/development/compilers/polyml/5.6.nix +++ b/pkgs/development/compilers/polyml/5.6.nix @@ -23,7 +23,7 @@ stdenv.mkDerivation { longDescription = '' Poly/ML is a full implementation of Standard ML. ''; - homepage = http://www.polyml.org/; + homepage = https://www.polyml.org/; license = stdenv.lib.licenses.lgpl21; platforms = with stdenv.lib.platforms; linux; maintainers = [ #Add your name here! diff --git a/pkgs/development/compilers/polyml/default.nix b/pkgs/development/compilers/polyml/default.nix index de5b8505527..b7feed84c37 100644 --- a/pkgs/development/compilers/polyml/default.nix +++ b/pkgs/development/compilers/polyml/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation rec { longDescription = '' Poly/ML is a full implementation of Standard ML. ''; - homepage = http://www.polyml.org/; + homepage = https://www.polyml.org/; license = licenses.lgpl21; platforms = with platforms; (linux ++ darwin); maintainers = with maintainers; [ z77z yurrriq ]; diff --git a/pkgs/development/compilers/scala/2.11.nix b/pkgs/development/compilers/scala/2.11.nix index b1100eb8aa9..a1f803b6719 100644 --- a/pkgs/development/compilers/scala/2.11.nix +++ b/pkgs/development/compilers/scala/2.11.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { Code sizes are typically reduced by a factor of two to three when compared to an equivalent Java application. ''; - homepage = http://www.scala-lang.org/; + homepage = https://www.scala-lang.org/; license = stdenv.lib.licenses.bsd3; platforms = stdenv.lib.platforms.all; branch = "2.11"; diff --git a/pkgs/development/haskell-modules/configuration-common.nix b/pkgs/development/haskell-modules/configuration-common.nix index 6cc6945bae4..966334f1e45 100644 --- a/pkgs/development/haskell-modules/configuration-common.nix +++ b/pkgs/development/haskell-modules/configuration-common.nix @@ -1063,11 +1063,16 @@ self: super: { }); # dhall-json requires a very particular dhall version - dhall-json_1_2_0 = super.dhall-json_1_2_0.override { dhall = self.dhall_1_14_0; }; + dhall-json_1_2_1 = super.dhall-json_1_2_1.override { dhall = self.dhall_1_14_0; }; # https://github.com/fpco/streaming-commons/issues/49 streaming-commons = dontCheck super.streaming-commons; + # cabal2nix generates a dependency on base-compat, which is the wrong version + base-compat-batteries = super.base-compat-batteries.override { + base-compat = super.base-compat_0_10_1; + }; + } // diff --git a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix index 1e48971b6fb..736be056e0e 100644 --- a/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix +++ b/pkgs/development/haskell-modules/configuration-ghc-8.4.x.nix @@ -23,6 +23,7 @@ self: super: { ghc-prim = null; ghci = null; haskeline = null; + hoopl = self.hoopl_3_10_2_2; # no longer a core library in GHC 8.4.x hpc = null; integer-gmp = null; mtl = null; @@ -396,9 +397,9 @@ self: super: { dhall_1_13_0 = doJailbreak super.dhall_1_14_0; # support ansi-terminal 0.8.x HaTeX = self.HaTeX_3_19_0_0; hpack = self.hpack_0_28_2; - hspec = dontCheck super.hspec_2_5_1; - hspec-core = dontCheck super.hspec-core_2_5_1; - hspec-discover = self.hspec-discover_2_5_1; + hspec = dontCheck super.hspec_2_5_3; + hspec-core = dontCheck super.hspec-core_2_5_3; + hspec-discover = self.hspec-discover_2_5_3; hspec-smallcheck = self.hspec-smallcheck_0_5_2; matrix = self.matrix_0_3_6_1; pandoc = self.pandoc_2_2_1; diff --git a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml index d87a84c3c77..bc2412aca11 100644 --- a/pkgs/development/haskell-modules/configuration-hackage2nix.yaml +++ b/pkgs/development/haskell-modules/configuration-hackage2nix.yaml @@ -38,7 +38,7 @@ core-packages: - ghcjs-base-0 default-package-overrides: - # LTS Haskell 11.14 + # LTS Haskell 11.15 - abstract-deque ==0.3 - abstract-deque-tests ==0.3 - abstract-par ==0.3.3 @@ -445,7 +445,7 @@ default-package-overrides: - concurrent-split ==0.0.1 - concurrent-supply ==0.1.8 - cond ==0.4.1.1 - - conduit ==1.3.0.2 + - conduit ==1.3.0.3 - conduit-algorithms ==0.0.8.1 - conduit-combinators ==1.3.0 - conduit-connection ==0.1.0.4 @@ -843,7 +843,7 @@ default-package-overrides: - github-webhooks ==0.9.1 - gitrev ==1.3.1 - gl ==0.8.0 - - glabrous ==0.3.5 + - glabrous ==0.3.6 - glaze ==0.3.0.1 - glazier ==0.11.0.1 - glazier-pipes ==0.1.5.1 @@ -921,7 +921,7 @@ default-package-overrides: - haskell-src ==1.0.3.0 - haskell-src-exts ==1.20.2 - haskell-src-exts-util ==0.2.3 - - haskell-src-meta ==0.8.0.2 + - haskell-src-meta ==0.8.0.3 - haskell-tools-ast ==1.0.1.1 - haskell-tools-backend-ghc ==1.0.1.1 - haskell-tools-prettyprint ==1.0.1.1 @@ -1173,7 +1173,7 @@ default-package-overrides: - ip ==1.2.1 - ip6addr ==0.5.3 - iproute ==1.7.5 - - IPv6Addr ==1.0.3 + - IPv6Addr ==1.0.4 - IPv6DB ==0.2.6 - ipython-kernel ==0.9.0.2 - irc ==0.6.1.0 @@ -1284,7 +1284,7 @@ default-package-overrides: - linear-accelerate ==0.5.0.1 - linked-list-with-iterator ==0.1.1.0 - linux-file-extents ==0.2.0.0 - - linux-namespaces ==0.1.2.0 + - linux-namespaces ==0.1.3.0 - List ==0.6.2 - ListLike ==4.6 - listsafe ==0.1.0.1 @@ -1456,7 +1456,7 @@ default-package-overrides: - mysql-haskell-openssl ==0.8.3.0 - mysql-simple ==0.4.5 - nagios-check ==0.3.2 - - names-th ==0.2.0.4 + - names-th ==0.2.0.5 - nano-erl ==0.1.0.1 - nanospec ==0.2.2 - naqsha ==0.2.0.1 @@ -1596,8 +1596,8 @@ default-package-overrides: - pem ==0.2.4 - perf ==0.3.1.1 - perfect-hash-generator ==0.2.0.6 - - persistable-record ==0.6.0.3 - - persistable-types-HDBC-pg ==0.0.3.2 + - persistable-record ==0.6.0.4 + - persistable-types-HDBC-pg ==0.0.3.3 - persistent ==2.8.2 - persistent-mongoDB ==2.8.0 - persistent-mysql ==2.8.1 @@ -1718,7 +1718,7 @@ default-package-overrides: - pureMD5 ==2.1.3 - purescript-bridge ==0.11.1.2 - pushbullet-types ==0.4.1.0 - - pusher-http-haskell ==1.5.1.4 + - pusher-http-haskell ==1.5.1.5 - pwstore-fast ==2.4.4 - qchas ==1.1.0.0 - qm-interpolated-string ==0.3.0.0 @@ -1790,13 +1790,13 @@ default-package-overrides: - regex-pcre-builtin ==0.94.4.8.8.35 - regex-pcre-text ==0.94.0.1 - regex-posix ==0.95.2 - - regex-tdfa ==1.2.3 + - regex-tdfa ==1.2.3.1 - regex-tdfa-text ==1.0.0.3 - reinterpret-cast ==0.1.0 - - relational-query ==0.11.1.0 - - relational-query-HDBC ==0.6.7.1 - - relational-record ==0.2.1.2 - - relational-schemas ==0.1.6.1 + - relational-query ==0.11.4.0 + - relational-query-HDBC ==0.6.8.0 + - relational-record ==0.2.2.0 + - relational-schemas ==0.1.6.2 - rematch ==0.2.0.0 - renderable ==0.2.0.1 - repa ==3.4.1.3 @@ -1817,9 +1817,9 @@ default-package-overrides: - retry ==0.7.6.2 - rev-state ==0.1.2 - rfc5051 ==0.1.0.3 - - riak ==1.1.2.4 + - riak ==1.1.2.5 - riak-protobuf ==0.23.0.0 - - rio ==0.1.2.0 + - rio ==0.1.3.0 - rng-utils ==0.3.0 - roles ==0.2.0.0 - rollbar-hs ==0.2.0.0 @@ -1843,8 +1843,8 @@ default-package-overrides: - say ==0.1.0.0 - sbp ==2.3.16 - sbv ==7.5 - - scalendar ==1.2.0 - SCalendar ==1.1.0 + - scalendar ==1.2.0 - scalpel ==0.5.1 - scalpel-core ==0.5.1 - scanner ==0.2 @@ -1884,7 +1884,7 @@ default-package-overrides: - servant-elm ==0.4.0.1 - servant-exceptions ==0.1.1 - servant-foreign ==0.11.1 - - servant-generic ==0.1.0.1 + - servant-generic ==0.1.0.2 - servant-github-webhook ==0.4.1.0 - servant-js ==0.9.3.2 - servant-JuicyPixels ==0.3.0.3 @@ -1981,7 +1981,7 @@ default-package-overrides: - spoon ==0.3.1 - spreadsheet ==0.1.3.7 - sqlite-simple ==0.4.16.0 - - sql-words ==0.1.6.1 + - sql-words ==0.1.6.2 - squeal-postgresql ==0.1.1.4 - srcloc ==0.5.1.2 - stache ==1.2.1 @@ -2063,7 +2063,7 @@ default-package-overrides: - tagsoup ==0.14.6 - tagstream-conduit ==0.5.5.3 - tar ==0.5.1.0 - - tar-conduit ==0.2.3 + - tar-conduit ==0.2.3.1 - tardis ==0.4.1.0 - tasty ==1.0.1.1 - tasty-ant-xml ==1.1.4 @@ -2071,7 +2071,7 @@ default-package-overrides: - tasty-dejafu ==1.1.0.2 - tasty-discover ==4.2.1 - tasty-expected-failure ==0.11.1.1 - - tasty-golden ==2.3.1.3 + - tasty-golden ==2.3.2 - tasty-hedgehog ==0.1.0.2 - tasty-hspec ==1.1.4 - tasty-html ==0.4.1.1 @@ -2116,7 +2116,7 @@ default-package-overrides: - textlocal ==0.1.0.5 - text-manipulate ==0.2.0.1 - text-metrics ==0.3.0 - - text-postgresql ==0.0.3.0 + - text-postgresql ==0.0.3.1 - text-printer ==0.5 - text-region ==0.3.1.0 - text-short ==0.1.2 @@ -2125,7 +2125,7 @@ default-package-overrides: - text-zipper ==0.10.1 - tfp ==1.0.0.2 - tf-random ==0.5 - - th-abstraction ==0.2.6.0 + - th-abstraction ==0.2.7.0 - th-data-compat ==0.0.2.6 - th-desugar ==1.7 - these ==0.7.4 @@ -2196,7 +2196,7 @@ default-package-overrides: - tuple ==0.3.0.2 - tuples-homogenous-h98 ==0.1.1.0 - tuple-th ==0.2.5 - - turtle ==1.5.8 + - turtle ==1.5.9 - turtle-options ==0.1.0.4 - type-assertions ==0.1.0.0 - type-combinators ==0.2.4.3 @@ -2215,7 +2215,7 @@ default-package-overrides: - typography-geometry ==1.0.0.1 - tz ==0.1.3.1 - tzdata ==0.1.20180122.0 - - ua-parser ==0.7.4.1 + - ua-parser ==0.7.5.0 - uglymemo ==0.1.0.1 - unbounded-delays ==0.1.1.0 - unbound-generics ==0.3.3 @@ -2232,8 +2232,8 @@ default-package-overrides: - union-find ==0.2 - uniplate ==1.6.12 - uniq-deep ==1.1.0.0 - - Unique ==0.4.7.2 - unique ==0 + - Unique ==0.4.7.2 - unit-constraint ==0.0.0 - units-parser ==0.1.1.2 - universe ==1.0 @@ -2251,6 +2251,7 @@ default-package-overrides: - unlit ==0.4.0.0 - unordered-containers ==0.2.9.0 - unsafe ==0.0 + - uom-plugin ==0.3.0.0 - uri-bytestring ==0.3.2.0 - uri-bytestring-aeson ==0.1.0.6 - uri-encode ==1.5.0.5 @@ -2355,8 +2356,8 @@ default-package-overrides: - weigh ==0.0.12 - wide-word ==0.1.0.6 - wikicfp-scraper ==0.1.0.9 - - wild-bind ==0.1.2.0 - - wild-bind-x11 ==0.2.0.3 + - wild-bind ==0.1.2.1 + - wild-bind-x11 ==0.2.0.4 - Win32-notify ==0.3.0.3 - wire-streams ==0.1.1.0 - withdependencies ==0.2.4.2 diff --git a/pkgs/development/haskell-modules/configuration-nix.nix b/pkgs/development/haskell-modules/configuration-nix.nix index a9f21040ac0..54366046222 100644 --- a/pkgs/development/haskell-modules/configuration-nix.nix +++ b/pkgs/development/haskell-modules/configuration-nix.nix @@ -516,9 +516,4 @@ self: super: builtins.intersectAttrs super { # Tests require a browser: https://github.com/ku-fpg/blank-canvas/issues/73 blank-canvas = dontCheck super.blank-canvas; blank-canvas_0_6_2 = dontCheck super.blank-canvas_0_6_2; - - # cabal2nix generates a dependency on base-compat, which is the wrong version - base-compat-batteries = super.base-compat-batteries.override { - base-compat = super.base-compat_0_10_1; - }; } diff --git a/pkgs/development/haskell-modules/hackage-packages.nix b/pkgs/development/haskell-modules/hackage-packages.nix index e5d713ac4c3..2a60e3b71e0 100644 --- a/pkgs/development/haskell-modules/hackage-packages.nix +++ b/pkgs/development/haskell-modules/hackage-packages.nix @@ -10205,24 +10205,6 @@ self: { }) {}; "IPv6Addr" = callPackage - ({ mkDerivation, aeson, attoparsec, base, HUnit, iproute, network - , network-info, random, test-framework, test-framework-hunit, text - }: - mkDerivation { - pname = "IPv6Addr"; - version = "1.0.3"; - sha256 = "17bk63qi9krfghplrmck4v1hv54kwdppl50hfm7349dqfhdbf129"; - libraryHaskellDepends = [ - aeson attoparsec base iproute network network-info random text - ]; - testHaskellDepends = [ - base HUnit test-framework test-framework-hunit text - ]; - description = "Library to deal with IPv6 address text representations"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "IPv6Addr_1_0_4" = callPackage ({ mkDerivation, aeson, attoparsec, base, HUnit, iproute, network , network-info, random, test-framework, test-framework-hunit, text }: @@ -10238,7 +10220,6 @@ self: { ]; description = "Library to deal with IPv6 address text representations"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "IPv6DB" = callPackage @@ -10351,6 +10332,18 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "IntGraph" = callPackage + ({ mkDerivation, base, containers }: + mkDerivation { + pname = "IntGraph"; + version = "0.1.0.0"; + sha256 = "0b7hycjl4mrs47377h4yisy1kcypz7im9x0rs6w0jblczf7gmk46"; + libraryHaskellDepends = [ base containers ]; + testHaskellDepends = [ base containers ]; + description = "Dynamically sized graph library"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "Interpolation" = callPackage ({ mkDerivation, base, haskell-src-meta, syb, template-haskell }: mkDerivation { @@ -11166,8 +11159,8 @@ self: { }: mkDerivation { pname = "LambdaHack"; - version = "0.8.1.2"; - sha256 = "0bad3l413rab2r17j7hqzfypnyf2gmmffzfy1bvpdh3r8xrc5z1d"; + version = "0.8.3.0"; + sha256 = "0v07c8v7l8yg111fysl735scsbsl9l6q3vzigy7rv05sjfl276ss"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -14474,8 +14467,8 @@ self: { }: mkDerivation { pname = "Plot-ho-matic"; - version = "0.12.2.1"; - sha256 = "0wxz9skscs72bxb2fac82pyn1wkcxc666l40s42q32rbq17d9x44"; + version = "0.12.2.2"; + sha256 = "07zxn4gqkmprrpfyd8vvsf4c2350965k029nzvs0zvrwfbkxin4m"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -14994,8 +14987,8 @@ self: { ({ mkDerivation, base, hspec, QuickCheck }: mkDerivation { pname = "QuickCheckVariant"; - version = "1.0.0.0"; - sha256 = "0gxq90fh1bgy2vcpyzbdgnly7q88bbqx06dq44rmv3fwjs61rc82"; + version = "1.0.0.1"; + sha256 = "12yxavf2bcd6cpf09j4d97myks4v34jki5hqjl9kcwar8k8j8gls"; libraryHaskellDepends = [ base QuickCheck ]; testHaskellDepends = [ base hspec QuickCheck ]; description = "Generator of \"valid\" and \"invalid\" data in a type class"; @@ -27431,14 +27424,14 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "apecs_0_4_0_0" = callPackage + "apecs_0_4_0_1" = callPackage ({ mkDerivation, async, base, containers, criterion, linear, mtl , QuickCheck, template-haskell, vector }: mkDerivation { pname = "apecs"; - version = "0.4.0.0"; - sha256 = "0wpjs90q9nwknbn6shk7bazc0kdhllhvg13432h2hckqbmrfp836"; + version = "0.4.0.1"; + sha256 = "03dbjvsnfh6zlms4v6djq7y8bxfwk80nnprrrmrj5crxr5mll4xg"; libraryHaskellDepends = [ async base containers mtl template-haskell vector ]; @@ -30278,8 +30271,8 @@ self: { }: mkDerivation { pname = "ats-pkg"; - version = "2.11.0.7"; - sha256 = "1jslvfsp1mraills55z1kxnf3x2csx9qn9r7ccsyyl2bimzj9yq6"; + version = "2.11.0.8"; + sha256 = "1nk802nm3s5dygk1ldhn4djxwz9priqsm3hpd9wkb6pd80w945m5"; isLibrary = true; isExecutable = true; setupHaskellDepends = [ base Cabal cli-setup ]; @@ -33924,6 +33917,24 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "bench_1_0_10" = callPackage + ({ mkDerivation, base, criterion, optparse-applicative, process + , silently, text, turtle + }: + mkDerivation { + pname = "bench"; + version = "1.0.10"; + sha256 = "0h5lqxzx170a742rjqlngikar58krzyr772hd8f92zg85p1qgqzx"; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base criterion optparse-applicative process silently text turtle + ]; + description = "Command-line benchmark tool"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "bench-graph" = callPackage ({ mkDerivation, base, bytestring, Chart, Chart-diagrams, csv , directory, filepath, split, text, transformers, Unique @@ -39593,8 +39604,8 @@ self: { }: mkDerivation { pname = "bugsnag-haskell"; - version = "0.0.1.1"; - sha256 = "09jv8qr795ag12xf035ywpvnd61q7cgsqcx1irvyh9zlmiixb975"; + version = "0.0.1.2"; + sha256 = "0xd0vxvvbp2fzy4z9yfrc6j5km1612ivnhrx71zzv17m5r2z50sv"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -48137,6 +48148,19 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "coercible-utils" = callPackage + ({ mkDerivation, base, gauge }: + mkDerivation { + pname = "coercible-utils"; + version = "0.0.0"; + sha256 = "164cn0cs7fjfm599v2z8wsgsz599f97wky4h7vycf460rn34jqia"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base ]; + benchmarkHaskellDepends = [ base gauge ]; + description = "Utility functions for Coercible types"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "cofunctor" = callPackage ({ mkDerivation, base }: mkDerivation { @@ -49253,8 +49277,8 @@ self: { }: mkDerivation { pname = "compactable"; - version = "0.1.2.1"; - sha256 = "00fxrwyn1znyhfpql2ygh308b7nl6a3lgxvl39q3qm89wzh2gisc"; + version = "0.1.2.2"; + sha256 = "0jmc2b7mvqjwv54k7xnqydqf2qa7drr0l0f2vzd1a9pasbw5kx8x"; libraryHaskellDepends = [ base bifunctors containers transformers vector ]; @@ -50482,34 +50506,6 @@ self: { }) {}; "conduit" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, directory - , exceptions, filepath, gauge, hspec, kan-extensions - , mono-traversable, mtl, mwc-random, primitive, QuickCheck - , resourcet, safe, silently, split, text, transformers, unix - , unliftio, unliftio-core, vector - }: - mkDerivation { - pname = "conduit"; - version = "1.3.0.2"; - sha256 = "0nqy9bffg2p2ij8isz99r7i5zm7sib0m9fqwisknakjh8b99kw60"; - libraryHaskellDepends = [ - base bytestring directory exceptions filepath mono-traversable mtl - primitive resourcet text transformers unix unliftio-core vector - ]; - testHaskellDepends = [ - base bytestring containers directory exceptions filepath hspec - mono-traversable mtl QuickCheck resourcet safe silently split text - transformers unliftio vector - ]; - benchmarkHaskellDepends = [ - base containers deepseq gauge hspec kan-extensions mwc-random - transformers vector - ]; - description = "Streaming data processing library"; - license = stdenv.lib.licenses.mit; - }) {}; - - "conduit_1_3_0_3" = callPackage ({ mkDerivation, base, bytestring, containers, deepseq, directory , exceptions, filepath, gauge, hspec, kan-extensions , mono-traversable, mtl, mwc-random, primitive, QuickCheck @@ -50535,7 +50531,6 @@ self: { ]; description = "Streaming data processing library"; license = stdenv.lib.licenses.mit; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "conduit-algorithms" = callPackage @@ -51884,6 +51879,16 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "contiguous-checked" = callPackage + ({ mkDerivation, base, contiguous, primitive }: + mkDerivation { + pname = "contiguous-checked"; + version = "0.2.0.0"; + sha256 = "0cb7cankkmn8nb7v6fy4ykcglfd4sd5nc916lg1nyj7fjr5v7y4l"; + libraryHaskellDepends = [ base contiguous primitive ]; + license = stdenv.lib.licenses.bsd3; + }) {}; + "continue" = callPackage ({ mkDerivation, base, bifunctors, monad-control, mtl , semigroupoids, transformers, transformers-base @@ -60740,6 +60745,8 @@ self: { pname = "detour-via-sci"; version = "1.0.0"; sha256 = "1r417lp98k0nizlxh7r74c2c4g1ij33pk5ip0bm7ssmzyya127j5"; + revision = "1"; + editedCabalFile = "00dj8vf9gg9ww37sir6mblf3xhcpam8qgfz5bfana23arhf2cixj"; libraryHaskellDepends = [ aeson base cassava newtype scientific siggy-chardust template-haskell @@ -60760,6 +60767,8 @@ self: { pname = "detour-via-uom"; version = "1.0.0"; sha256 = "07jhj5mrfkfi2l05fyax6aylq4rp0nixvpsymv2xjzvbv2pfmdq7"; + revision = "1"; + editedCabalFile = "1l8az0mqcms0w59dr1bvklplmdqzr8yliwq522smcrn4krj3rl10"; libraryHaskellDepends = [ aeson base cassava detour-via-sci newtype scientific uom-plugin ]; @@ -60974,37 +60983,39 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "dhall_1_14_0" = callPackage + "dhall_1_15_0" = callPackage ({ mkDerivation, ansi-terminal, base, bytestring, case-insensitive - , containers, contravariant, cryptonite, deepseq, directory - , doctest, exceptions, filepath, formatting, haskeline, http-client + , containers, contravariant, criterion, cryptonite, deepseq, Diff + , directory, doctest, exceptions, filepath, haskeline, http-client , http-client-tls, insert-ordered-containers, lens-family-core , megaparsec, memory, mtl, optparse-applicative, parsers , prettyprinter, prettyprinter-ansi-terminal, repline, scientific - , tasty, tasty-hunit, text, transformers, unordered-containers - , vector + , tasty, tasty-hunit, template-haskell, text, transformers + , unordered-containers, vector }: mkDerivation { pname = "dhall"; - version = "1.14.0"; - sha256 = "0dm823rr4gkx1m7f0v9wvqlkhn1mmmml854p4zsi2j6ai4l885gl"; + version = "1.15.0"; + sha256 = "1p74jrrl5g5rfjp5kc2k3r1rq2cc80k166pg4ii1ams6j8ik1fys"; + revision = "1"; + editedCabalFile = "15z19v1g7wlgr99pb3sh7543v6bi4xb2v1nb1r8dm71ah63dki5r"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ ansi-terminal base bytestring case-insensitive containers - contravariant cryptonite directory exceptions filepath formatting - http-client http-client-tls insert-ordered-containers - lens-family-core megaparsec memory parsers prettyprinter - prettyprinter-ansi-terminal scientific text transformers - unordered-containers vector - ]; - executableHaskellDepends = [ - ansi-terminal base haskeline megaparsec mtl optparse-applicative - prettyprinter prettyprinter-ansi-terminal repline text + contravariant cryptonite Diff directory exceptions filepath + haskeline http-client http-client-tls insert-ordered-containers + lens-family-core megaparsec memory mtl optparse-applicative parsers + prettyprinter prettyprinter-ansi-terminal repline scientific + template-haskell text transformers unordered-containers vector ]; + executableHaskellDepends = [ base ]; testHaskellDepends = [ - base deepseq doctest insert-ordered-containers prettyprinter tasty - tasty-hunit text vector + base deepseq Diff doctest insert-ordered-containers prettyprinter + tasty tasty-hunit text vector + ]; + benchmarkHaskellDepends = [ + base containers criterion directory text ]; description = "A configuration language guaranteed to terminate"; license = stdenv.lib.licenses.bsd3; @@ -61012,19 +61023,19 @@ self: { }) {}; "dhall-bash" = callPackage - ({ mkDerivation, base, bytestring, containers, dhall, formatting + ({ mkDerivation, base, bytestring, containers, dhall , insert-ordered-containers, neat-interpolation, optparse-generic , shell-escape, text }: mkDerivation { pname = "dhall-bash"; - version = "1.0.13"; - sha256 = "04f9ksw36kqb1g41211hcfcgg21pxkdszsznpa1vh09dcmlv6i7i"; + version = "1.0.14"; + sha256 = "1zxqlmnhq8lrwxiqz7hlqln7wf14mlz78s018yqy3hpzmy3aa84d"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - base bytestring containers dhall formatting - insert-ordered-containers neat-interpolation shell-escape text + base bytestring containers dhall insert-ordered-containers + neat-interpolation shell-escape text ]; executableHaskellDepends = [ base bytestring dhall optparse-generic text @@ -61072,15 +61083,15 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "dhall-json_1_2_0" = callPackage + "dhall-json_1_2_1" = callPackage ({ mkDerivation, aeson, aeson-pretty, base, bytestring, dhall , insert-ordered-containers, optparse-applicative, text , unordered-containers, yaml }: mkDerivation { pname = "dhall-json"; - version = "1.2.0"; - sha256 = "0ks8ycgysimj1jqabzdrrsdcqkp3bi5f0zhwgmilsprx88dxrddz"; + version = "1.2.1"; + sha256 = "0zf88py0hfrzsa3jq5i8nz0wv8m1b753bdakvykmkj6r0dgd574r"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -61116,19 +61127,19 @@ self: { }) {}; "dhall-nix" = callPackage - ({ mkDerivation, base, containers, data-fix, dhall, formatting - , hnix, insert-ordered-containers, neat-interpolation - , optparse-generic, scientific, text + ({ mkDerivation, base, containers, data-fix, dhall, hnix + , insert-ordered-containers, neat-interpolation, optparse-generic + , text }: mkDerivation { pname = "dhall-nix"; - version = "1.1.4"; - sha256 = "1yhnpmvisizl5vm37sns8sn0ff496aqr2i76v3c2034cjd9v0mdb"; + version = "1.1.5"; + sha256 = "1j0b7w8ydhz5fq7jmajz35j8bw2xmr1v0pbl4yfkc2gv8djmiw6y"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - base containers data-fix dhall formatting hnix - insert-ordered-containers neat-interpolation scientific text + base containers data-fix dhall hnix insert-ordered-containers + neat-interpolation text ]; executableHaskellDepends = [ base dhall hnix optparse-generic text @@ -61139,14 +61150,16 @@ self: { }) {}; "dhall-text" = callPackage - ({ mkDerivation, base, dhall, optparse-generic, text }: + ({ mkDerivation, base, dhall, optparse-applicative, text }: mkDerivation { pname = "dhall-text"; - version = "1.0.10"; - sha256 = "07cxc3m2pqg5lk0d03i20ch6bsq779sg3ci4yy1fkai8vs513yjq"; + version = "1.0.11"; + sha256 = "0zbsr5mchcm3713y6dbdj1vlak5rb6f13p6a8ah7f3kcihdpx0b1"; isLibrary = false; isExecutable = true; - executableHaskellDepends = [ base dhall optparse-generic text ]; + executableHaskellDepends = [ + base dhall optparse-applicative text + ]; description = "Template text using Dhall"; license = stdenv.lib.licenses.bsd3; hydraPlatforms = stdenv.lib.platforms.none; @@ -64317,6 +64330,40 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "docker_0_6_0_0" = callPackage + ({ mkDerivation, aeson, base, blaze-builder, bytestring, conduit + , conduit-combinators, conduit-extra, connection, containers + , data-default-class, directory, exceptions, filemanip, filepath + , http-client, http-client-tls, http-conduit, http-types, lens + , lens-aeson, monad-control, mtl, network, process, QuickCheck + , resourcet, scientific, tar, tasty, tasty-hunit, tasty-quickcheck + , temporary, text, time, tls, transformers, transformers-base + , unliftio-core, unordered-containers, uuid, vector, x509 + , x509-store, x509-system, zlib + }: + mkDerivation { + pname = "docker"; + version = "0.6.0.0"; + sha256 = "0i90nkj1fc4swr6nral2y6raa6mmdz8x40sg47ww42dw18q00fjd"; + libraryHaskellDepends = [ + aeson base blaze-builder bytestring conduit conduit-combinators + conduit-extra containers data-default-class directory exceptions + filemanip filepath http-client http-conduit http-types + monad-control mtl network resourcet scientific tar temporary text + time tls transformers transformers-base unliftio-core + unordered-containers uuid vector x509 x509-store x509-system zlib + ]; + testHaskellDepends = [ + aeson base bytestring connection containers directory http-client + http-client-tls http-types lens lens-aeson process QuickCheck tasty + tasty-hunit tasty-quickcheck text transformers unordered-containers + vector + ]; + description = "An API client for docker written in Haskell"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "docker-build-cacher" = callPackage ({ mkDerivation, base, containers, foldl, language-docker , system-filepath, text, turtle @@ -64593,6 +64640,22 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "doctest-driver-gen_0_2_0_3" = callPackage + ({ mkDerivation, base, doctest }: + mkDerivation { + pname = "doctest-driver-gen"; + version = "0.2.0.3"; + sha256 = "1vm9rwym2fdl76kwgkh21z2ixfcvza1df4gba2hm7hkk0n4ndcq6"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base doctest ]; + executableHaskellDepends = [ base ]; + testHaskellDepends = [ base doctest ]; + description = "Generate driver file for doctest's cabal integration"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "doctest-prop" = callPackage ({ mkDerivation, base, doctest, HUnit, QuickCheck }: mkDerivation { @@ -71665,15 +71728,15 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; - "extensible-effects_2_6_3_0" = callPackage + "extensible-effects_3_0_0_0" = callPackage ({ mkDerivation, base, criterion, doctest, HUnit, monad-control , mtl, QuickCheck, silently, test-framework, test-framework-hunit , test-framework-quickcheck2, test-framework-th, transformers-base }: mkDerivation { pname = "extensible-effects"; - version = "2.6.3.0"; - sha256 = "07syxmhyqhcbsbwwc701k5rya89pkhcjly9nrdw7mspxailbggzs"; + version = "3.0.0.0"; + sha256 = "1sqvdwqi3aqqhsjny7h1i7gany4b79nqc539b5arwksjvsgmv2yb"; libraryHaskellDepends = [ base monad-control transformers-base ]; testHaskellDepends = [ base doctest HUnit monad-control QuickCheck silently test-framework @@ -71696,15 +71759,16 @@ self: { }: mkDerivation { pname = "extensible-effects-concurrent"; - version = "0.2.0.3"; - sha256 = "024wn3i2nxi9j4gskhjnrkqifwszfpfnn812p34krvf763vfqcn1"; + version = "0.3.0.2"; + sha256 = "1w44dyyi3qgqsmbvnid67cn8mqy85si75wpryhl76b456pgp0ynl"; libraryHaskellDepends = [ base containers directory extensible-effects filepath lens logging-effect monad-control mtl parallel process QuickCheck random stm tagged time transformers ]; testHaskellDepends = [ - base extensible-effects HUnit stm tasty tasty-discover tasty-hunit + base containers extensible-effects HUnit lens QuickCheck stm tasty + tasty-discover tasty-hunit ]; description = "Message passing concurrency as extensible-effect"; license = stdenv.lib.licenses.bsd3; @@ -73410,6 +73474,36 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "festung" = callPackage + ({ mkDerivation, aeson, argparser, async, base, base64-bytestring + , bytestring, case-insensitive, containers, directory, either + , exceptions, filepath, hspec, http-types, HUnit, mtl, scientific + , sqlcipher, temporary, text, transformers, unordered-containers + , utf8-string, vector, wai, wai-extra, yesod, yesod-core + , yesod-test + }: + mkDerivation { + pname = "festung"; + version = "0.9.1.2"; + sha256 = "09vcwds5vvk7a899nb4xvpfwkdgmm21w1lv4lacsdl7rvrw84f4l"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson argparser async base base64-bytestring bytestring + case-insensitive containers directory either exceptions filepath + http-types mtl scientific sqlcipher text transformers + unordered-containers utf8-string vector wai yesod yesod-core + ]; + executableHaskellDepends = [ argparser base yesod ]; + testHaskellDepends = [ + aeson base base64-bytestring bytestring containers directory + exceptions filepath hspec HUnit scientific temporary text wai-extra + yesod yesod-test + ]; + description = "Remote multi-db SQLCipher server"; + license = stdenv.lib.licenses.mit; + }) {}; + "fez-conf" = callPackage ({ mkDerivation, base, containers, regex-compat }: mkDerivation { @@ -75230,6 +75324,8 @@ self: { pname = "flight-igc"; version = "0.1.0"; sha256 = "1cr25xhwmpzi0rg8znj1q7siy5skjm8q08ncgwvmd4h3mmdbb7xl"; + revision = "1"; + editedCabalFile = "0yaqp249gjqgch7w9d8y963afvjl43mhaywgni3x8ld14h55m7ia"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base parsec ]; @@ -75243,6 +75339,29 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "flight-kml" = callPackage + ({ mkDerivation, aeson, base, detour-via-sci, doctest, hlint, hxt + , hxt-xpath, parsec, path, raw-strings-qq, siggy-chardust + , smallcheck, split, tasty, tasty-hunit, tasty-quickcheck + , tasty-smallcheck, template-haskell, time + }: + mkDerivation { + pname = "flight-kml"; + version = "1.0.0"; + sha256 = "0h04f0hkcri1qjk9kfc4r0sg8wyf6hx6s4cjgzaqnmfak6sa9j9c"; + libraryHaskellDepends = [ + aeson base detour-via-sci hxt hxt-xpath parsec path siggy-chardust + split time + ]; + testHaskellDepends = [ + aeson base detour-via-sci doctest hlint hxt hxt-xpath parsec path + raw-strings-qq siggy-chardust smallcheck split tasty tasty-hunit + tasty-quickcheck tasty-smallcheck template-haskell time + ]; + description = "Parsing of pilot tracklogs dumped as KML"; + license = stdenv.lib.licenses.mpl20; + }) {}; + "flip-cmd" = callPackage ({ mkDerivation, base, process, safe-exceptions }: mkDerivation { @@ -75962,7 +76081,7 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "foldl_1_4_0" = callPackage + "foldl_1_4_1" = callPackage ({ mkDerivation, base, bytestring, comonad, containers , contravariant, criterion, hashable, mwc-random, primitive , profunctors, semigroups, text, transformers, unordered-containers @@ -75970,8 +76089,8 @@ self: { }: mkDerivation { pname = "foldl"; - version = "1.4.0"; - sha256 = "16vx35yl853g9ql9ncpa6r29bg5cai40s7jnpjj2d06ij9cad955"; + version = "1.4.1"; + sha256 = "0xfwqhn4nzl1fi1v1h7i9haxjy32118lf08rgfiqpw33zzrkyz6d"; libraryHaskellDepends = [ base bytestring comonad containers contravariant hashable mwc-random primitive profunctors semigroups text transformers @@ -76711,8 +76830,8 @@ self: { }: mkDerivation { pname = "fortytwo"; - version = "1.0.3"; - sha256 = "113z46b5dnf6z7bxw1a4vhr84w5pw0iridsi3wjimhjz0rr530cm"; + version = "1.0.4"; + sha256 = "0gbvhlsyhfslxrwkdldn15adj8f371rhx5qxfapcpqfa6pwbjsfd"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ ansi-terminal base text ]; @@ -77737,6 +77856,21 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "fromhtml" = callPackage + ({ mkDerivation, base, bytestring, pandoc, process, text }: + mkDerivation { + pname = "fromhtml"; + version = "0.1.0.0"; + sha256 = "1qck5pbbs0jc0vfjsvyx3yc1q3zlrggy51dlrjlkarppwyndqrln"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ base bytestring pandoc process text ]; + executableHaskellDepends = [ base bytestring pandoc process text ]; + testHaskellDepends = [ base bytestring pandoc process text ]; + description = "Simple library for transformation of HTML to other formats"; + license = stdenv.lib.licenses.mit; + }) {}; + "frontmatter" = callPackage ({ mkDerivation, attoparsec, base, bytestring, hspec, QuickCheck , text, yaml @@ -78343,6 +78477,21 @@ self: { maintainers = with stdenv.lib.maintainers; [ peti ]; }) {}; + "funcons-lambda-cbv-mp" = callPackage + ({ mkDerivation, base, containers, funcons-tools, gll, text }: + mkDerivation { + pname = "funcons-lambda-cbv-mp"; + version = "0.1.0.0"; + sha256 = "0ndjzixmjj2z9l3f65p4zd5yjjw5nd4x8vzlyk51zj7zkbz6pc09"; + isLibrary = false; + isExecutable = true; + executableHaskellDepends = [ + base containers funcons-tools gll text + ]; + description = "Basic call-by-value lambda-calculus with operational semantics based on Funcons"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "funcons-tools" = callPackage ({ mkDerivation, base, bv, containers, directory, funcons-values , gll, mtl, multiset, random-strings, regex-applicative, split @@ -79738,8 +79887,8 @@ self: { }: mkDerivation { pname = "generic-accessors"; - version = "0.6.2.0"; - sha256 = "1id0zc617wskz5p8mbawqin03f73vvqy3d8jm6ywzyw3in5y82hs"; + version = "0.7.0.0"; + sha256 = "0jvrwjry0kgw27qhnqxm5zvpks69cvvj0iz1ipvdsd5hi16dxarb"; libraryHaskellDepends = [ base binary cereal lens linear spatial-math TypeCompose ]; @@ -79868,6 +80017,24 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "generic-deriving_1_12_2" = callPackage + ({ mkDerivation, base, containers, ghc-prim, hspec, hspec-discover + , template-haskell, th-abstraction + }: + mkDerivation { + pname = "generic-deriving"; + version = "1.12.2"; + sha256 = "1i7d6cpj9yhaqb79zays3nqchhaacacjz9bkc0zlwj73y5gvi22n"; + libraryHaskellDepends = [ + base containers ghc-prim template-haskell th-abstraction + ]; + testHaskellDepends = [ base hspec template-haskell ]; + testToolDepends = [ hspec-discover ]; + description = "Generic programming library for generalised deriving"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "generic-enum" = callPackage ({ mkDerivation, array, base, bytestring, hspec }: mkDerivation { @@ -85018,26 +85185,6 @@ self: { }) {}; "glabrous" = callPackage - ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring - , cereal, cereal-text, directory, either, hspec, text - , unordered-containers - }: - mkDerivation { - pname = "glabrous"; - version = "0.3.5"; - sha256 = "0n3mqpcmxz9z339r18dac5s4zdgkknlx470cd1mfi9gd932cr4z9"; - libraryHaskellDepends = [ - aeson aeson-pretty attoparsec base bytestring cereal cereal-text - either text unordered-containers - ]; - testHaskellDepends = [ - base directory either hspec text unordered-containers - ]; - description = "A template DSL library"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "glabrous_0_3_6" = callPackage ({ mkDerivation, aeson, aeson-pretty, attoparsec, base, bytestring , cereal, cereal-text, directory, either, hspec, text , unordered-containers @@ -85055,7 +85202,6 @@ self: { ]; description = "A template DSL library"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "glade" = callPackage @@ -88484,6 +88630,18 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "graph" = callPackage + ({ mkDerivation, base, smallcheck, tasty, tasty-smallcheck }: + mkDerivation { + pname = "graph"; + version = "0.0.0.0"; + sha256 = "1v94nii7q6smm37m3yk390mcxpa69qclxqqdzcmay8f096dzk3pd"; + libraryHaskellDepends = [ base ]; + testHaskellDepends = [ base smallcheck tasty tasty-smallcheck ]; + description = "Class of graphs"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "graph-core" = callPackage ({ mkDerivation, base, containers, deepseq, hashable, HTF, mtl , QuickCheck, safe, unordered-containers, vector @@ -96868,28 +97026,6 @@ self: { }) {}; "haskell-src-meta" = callPackage - ({ mkDerivation, base, haskell-src-exts, HUnit, pretty, syb - , template-haskell, test-framework, test-framework-hunit - , th-orphans - }: - mkDerivation { - pname = "haskell-src-meta"; - version = "0.8.0.2"; - sha256 = "12rc4v5dbbbcwdp7j8isvnm9vqpazv124j5kdfwlgwgwjhxi8ysb"; - revision = "1"; - editedCabalFile = "07xxp2r8amd420bzl7xlyfydhyrcrvaxq24ydnx7y2sz4v2nlzsz"; - libraryHaskellDepends = [ - base haskell-src-exts pretty syb template-haskell th-orphans - ]; - testHaskellDepends = [ - base haskell-src-exts HUnit pretty template-haskell test-framework - test-framework-hunit - ]; - description = "Parse source to template-haskell abstract syntax"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "haskell-src-meta_0_8_0_3" = callPackage ({ mkDerivation, base, haskell-src-exts, HUnit, pretty, syb , template-haskell, test-framework, test-framework-hunit , th-orphans @@ -96907,7 +97043,6 @@ self: { ]; description = "Parse source to template-haskell abstract syntax"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "haskell-src-meta-mwotton" = callPackage @@ -103523,14 +103658,14 @@ self: { "hindent" = callPackage ({ mkDerivation, base, bytestring, Cabal, containers, criterion - , deepseq, descriptive, Diff, directory, exceptions, filepath - , ghc-prim, haskell-src-exts, hspec, monad-loops, mtl, path - , path-io, text, transformers, unix-compat, utf8-string, yaml + , deepseq, Diff, directory, exceptions, filepath, ghc-prim + , haskell-src-exts, hspec, monad-loops, mtl, optparse-applicative + , path, path-io, text, transformers, unix-compat, utf8-string, yaml }: mkDerivation { pname = "hindent"; - version = "5.2.5"; - sha256 = "19lckzwsqy8d1wry7hlg5vcg10dc5isai1z0n8srap5hlqvifw1g"; + version = "5.2.7"; + sha256 = "06p7rn689ynlxxgpy7ix8r69zwz4iwp7rfvcjxa6kxayfiq3hc2w"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -103539,9 +103674,9 @@ self: { haskell-src-exts monad-loops mtl text transformers utf8-string yaml ]; executableHaskellDepends = [ - base bytestring deepseq descriptive directory exceptions ghc-prim - haskell-src-exts path path-io text transformers unix-compat - utf8-string yaml + base bytestring deepseq directory exceptions ghc-prim + haskell-src-exts optparse-applicative path path-io text + transformers unix-compat utf8-string yaml ]; testHaskellDepends = [ base bytestring deepseq Diff directory exceptions haskell-src-exts @@ -110919,15 +111054,15 @@ self: { license = stdenv.lib.licenses.mit; }) {}; - "hspec_2_5_1" = callPackage + "hspec_2_5_3" = callPackage ({ mkDerivation, base, call-stack, directory, hspec-core , hspec-discover, hspec-expectations, hspec-meta, HUnit, QuickCheck , stringbuilder, transformers }: mkDerivation { pname = "hspec"; - version = "2.5.1"; - sha256 = "1hip8937prrvkdp63jwicg80b9fpj1yb4rfwl68jd76x2j15hyyl"; + version = "2.5.3"; + sha256 = "1rpiaw5m18zdsap7m7ih01awgmnaanq6rshhx9krway1v1y635ab"; libraryHaskellDepends = [ base call-stack hspec-core hspec-discover hspec-expectations HUnit QuickCheck transformers @@ -111025,7 +111160,7 @@ self: { license = stdenv.lib.licenses.mit; }) {}; - "hspec-core_2_5_1" = callPackage + "hspec-core_2_5_3" = callPackage ({ mkDerivation, ansi-terminal, array, base, call-stack, clock , deepseq, directory, filepath, hspec-expectations, hspec-meta , HUnit, process, QuickCheck, quickcheck-io, random, setenv @@ -111033,8 +111168,8 @@ self: { }: mkDerivation { pname = "hspec-core"; - version = "2.5.1"; - sha256 = "0yfw5rxyh830sb4l0zmsvjyanlg4q20y9hd90d3np5qwhpz4b3p8"; + version = "2.5.3"; + sha256 = "0gm9ydc89xhv56v6zqpmphl6pr4cik98rny3jy4x5vdwixv1yyyi"; libraryHaskellDepends = [ ansi-terminal array base call-stack clock deepseq directory filepath hspec-expectations HUnit QuickCheck quickcheck-io random @@ -111088,13 +111223,13 @@ self: { license = stdenv.lib.licenses.mit; }) {}; - "hspec-discover_2_5_1" = callPackage + "hspec-discover_2_5_3" = callPackage ({ mkDerivation, base, directory, filepath, hspec-meta, QuickCheck }: mkDerivation { pname = "hspec-discover"; - version = "2.5.1"; - sha256 = "0a3j58jxfv9i15shifhmm7i6i0xd9p4pd3grm4my5c80nhsps61w"; + version = "2.5.3"; + sha256 = "0ja4360cphbhiaqfjsgm9qzzckvf0yc4f3c6wkr4iydx1km7v0r0"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base directory filepath ]; @@ -113194,8 +113329,8 @@ self: { }: mkDerivation { pname = "http-client-extra"; - version = "0.1.2.0"; - sha256 = "087qwyg2ws3fz26ghys4vafdcbkfx6bxsz1pzni8102ynk3hwn5m"; + version = "0.1.3.0"; + sha256 = "112x03s2iqdbp6gpa7hmsnjl86s8cpmpb82n4fxiy9d3rbp72a0j"; libraryHaskellDepends = [ aeson array base base64-bytestring blaze-builder bytestring case-insensitive containers data-default exceptions http-client @@ -115104,8 +115239,8 @@ self: { }: mkDerivation { pname = "hw-kafka-avro"; - version = "2.0.0"; - sha256 = "048pj3xq56kvkcgcczvavnhpq8a0hpvnna0w5m5k12wb4hvrj4h5"; + version = "2.1.0"; + sha256 = "06yz55g4hqv8lbx0ywkiwwww81dmk44zi37s7sq09vkvbk9hm9v2"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -119225,6 +119360,8 @@ self: { pname = "inline-r"; version = "0.9.1"; sha256 = "1wpvyagc56yjkxvaw7a64gl2i4qfn4cgb47nx53pc6wcph7cyras"; + revision = "1"; + editedCabalFile = "0gid75ls60mfl0017716mqkypsbsv92lm1lsx2mf8vvd30znhcv0"; libraryHaskellDepends = [ aeson base bytestring containers data-default-class deepseq exceptions inline-c mtl pretty primitive process reflection setenv @@ -119246,6 +119383,41 @@ self: { license = stdenv.lib.licenses.bsd3; }) {inherit (pkgs) R;}; + "inline-r_0_9_2" = callPackage + ({ mkDerivation, aeson, base, bytestring, containers, criterion + , data-default-class, deepseq, directory, exceptions, filepath + , ieee754, inline-c, mtl, pretty, primitive, process + , quickcheck-assertions, R, reflection, setenv, silently + , singletons, strict, tasty, tasty-expected-failure, tasty-golden + , tasty-hunit, tasty-quickcheck, template-haskell, temporary, text + , th-lift, th-orphans, transformers, unix, vector + }: + mkDerivation { + pname = "inline-r"; + version = "0.9.2"; + sha256 = "1h2gwrh8kzx3przx29gcl4wffni3bxy1yrfabf88bdxjwj79s7z0"; + libraryHaskellDepends = [ + aeson base bytestring containers data-default-class deepseq + exceptions inline-c mtl pretty primitive process reflection setenv + singletons template-haskell text th-lift th-orphans transformers + unix vector + ]; + libraryPkgconfigDepends = [ R ]; + testHaskellDepends = [ + base bytestring directory filepath ieee754 mtl process + quickcheck-assertions silently singletons strict tasty + tasty-expected-failure tasty-golden tasty-hunit tasty-quickcheck + template-haskell temporary text unix vector + ]; + benchmarkHaskellDepends = [ + base criterion filepath primitive process singletons + template-haskell vector + ]; + description = "Seamlessly call R from Haskell and vice versa. No FFI required."; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {inherit (pkgs) R;}; + "inliterate" = callPackage ({ mkDerivation, base, blaze-html, cheapskate, containers , haskell-src-exts, lucid, lucid-extras, plotlyhs, text, time @@ -119777,8 +119949,8 @@ self: { }: mkDerivation { pname = "intero"; - version = "0.1.31"; - sha256 = "0d6pc7mza12889wbzxy7gb5fb86v3b5pm2cdvcvnh6gd6x4ii336"; + version = "0.1.32"; + sha256 = "0xk693yhq2hkilznjzsszamvg7pg1l0qyb2y17ffr2s966i4pfr0"; isLibrary = false; isExecutable = true; enableSeparateDataOutput = true; @@ -129220,22 +129392,17 @@ self: { }) {}; "learn-physics" = callPackage - ({ mkDerivation, base, gloss, gnuplot, hmatrix, linear, not-gloss - , spatial-math, vector-space - }: + ({ mkDerivation, base, gloss, gnuplot, hmatrix, vector-space }: mkDerivation { pname = "learn-physics"; - version = "0.6.0.2"; - sha256 = "1bncqp4k1gbhc2yqnkja9xcxlh03wfaix1hiyv5llbzz06s9ia8a"; + version = "0.6.2"; + sha256 = "0j69q7jyznjjizkyyn032dfc1g9r6fssxp4b183bapj1xp9n116j"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ - base gloss gnuplot hmatrix linear not-gloss spatial-math - vector-space - ]; - executableHaskellDepends = [ - base gloss gnuplot not-gloss spatial-math + base gloss gnuplot hmatrix vector-space ]; + executableHaskellDepends = [ base gloss gnuplot ]; description = "Haskell code for learning physics"; license = stdenv.lib.licenses.bsd3; hydraPlatforms = stdenv.lib.platforms.none; @@ -130951,6 +131118,33 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "life-sync" = callPackage + ({ mkDerivation, ansi-terminal, base-noprelude, bytestring + , containers, filepath, fmt, hedgehog, microlens-platform + , optparse-applicative, path, path-io, process, tasty + , tasty-discover, tasty-hedgehog, text, tomland, universum + }: + mkDerivation { + pname = "life-sync"; + version = "1.0"; + sha256 = "04w83c96zhjl52j5iyy3149gpj3m02jfyfvbvvgg34xxqm0vwzha"; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + ansi-terminal base-noprelude bytestring containers fmt + microlens-platform path path-io process text tomland universum + ]; + executableHaskellDepends = [ + base-noprelude containers optparse-applicative path + ]; + testHaskellDepends = [ + base-noprelude containers filepath hedgehog path tasty + tasty-hedgehog + ]; + testToolDepends = [ tasty-discover ]; + license = stdenv.lib.licenses.mit; + }) {}; + "lift-generics" = callPackage ({ mkDerivation, base, base-compat, generic-deriving, ghc-prim , hspec, template-haskell @@ -131906,17 +132100,6 @@ self: { }) {}; "linux-namespaces" = callPackage - ({ mkDerivation, base, unix }: - mkDerivation { - pname = "linux-namespaces"; - version = "0.1.2.0"; - sha256 = "0yznnp9rdz15drm79pvbqbrbk2nczbkmlf00pb7rki7w1l9njp2q"; - libraryHaskellDepends = [ base unix ]; - description = "Create new or enter an existing linux namespaces"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "linux-namespaces_0_1_3_0" = callPackage ({ mkDerivation, base, bytestring, unix }: mkDerivation { pname = "linux-namespaces"; @@ -131925,7 +132108,6 @@ self: { libraryHaskellDepends = [ base bytestring unix ]; description = "Work with linux namespaces: create new or enter existing ones"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "linux-perf" = callPackage @@ -138944,6 +139126,8 @@ self: { pname = "menoh"; version = "0.1.1"; sha256 = "0cbkhafibm65yn4222kfy8j6zkw6q6k3962hwjhbvp2n57avh789"; + revision = "1"; + editedCabalFile = "1mbn1aq24dvaa1amwypik69dmg1x8mm1dz1h4kadzvljc4ld870i"; isLibrary = true; isExecutable = true; enableSeparateDataOutput = true; @@ -140657,15 +140841,15 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "miso_0_20_0_0" = callPackage + "miso_0_20_1_0" = callPackage ({ mkDerivation, aeson, base, bytestring, containers, http-api-data , http-types, lucid, network-uri, servant, servant-lucid, text , transformers, vector }: mkDerivation { pname = "miso"; - version = "0.20.0.0"; - sha256 = "0nr7j9065mrwmmqwjsgl9krh21mhxjddbwmkwja0b207aglc072j"; + version = "0.20.1.0"; + sha256 = "03z6p29g5h3dhfpkv7sl81l0vcyi2r8chzdynwsz72d4i81vdi7j"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -141906,6 +142090,21 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "monad-markov" = callPackage + ({ mkDerivation, base, base-compat, MonadRandom, mtl, random + , transformers + }: + mkDerivation { + pname = "monad-markov"; + version = "0.1.0.0"; + sha256 = "173qlab980aq5hzxs4xxkx1ykvm40q84zsn6a8rksfq7sh1gzc1l"; + libraryHaskellDepends = [ + base base-compat MonadRandom mtl random transformers + ]; + description = "Markov process monad"; + license = stdenv.lib.licenses.mit; + }) {}; + "monad-memo" = callPackage ({ mkDerivation, array, base, containers, criterion, mtl, primitive , QuickCheck, random, test-framework, test-framework-quickcheck2 @@ -146168,8 +146367,8 @@ self: { ({ mkDerivation, base, containers, template-haskell }: mkDerivation { pname = "names-th"; - version = "0.2.0.4"; - sha256 = "03nj3qdqkdl4wgb9s4p1dmrcx19ffc03br0a3n8z85bih0p4vgsq"; + version = "0.2.0.5"; + sha256 = "093ffvzbkd2mihnwwa4mfxbixaf37w6wf47bzgz1smlvmqihn0bh"; libraryHaskellDepends = [ base containers template-haskell ]; description = "Manipulate name strings for TH"; license = stdenv.lib.licenses.bsd3; @@ -149773,16 +149972,17 @@ self: { "normalize" = callPackage ({ mkDerivation, base, bytestring, cassava, containers, lens - , optparse-generic, statistics, text, vector + , optparse-generic, statistics, text, vector, vector-algorithms }: mkDerivation { pname = "normalize"; - version = "0.3.0.1"; - sha256 = "1wx7jfbc5s1zpksyq1vhb3460gll1fl6lkdbp3349rxifz0l27dq"; + version = "0.3.1.1"; + sha256 = "03qlp2vixw7ihzd14vhxv4jrfpnv2yzz9nvqcfcmkkv5p20ldpxy"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ base cassava containers lens statistics text vector + vector-algorithms ]; executableHaskellDepends = [ base bytestring cassava containers optparse-generic text vector @@ -150439,12 +150639,12 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; - "numhask_0_2_3_0" = callPackage + "numhask_0_2_3_1" = callPackage ({ mkDerivation, base }: mkDerivation { pname = "numhask"; - version = "0.2.3.0"; - sha256 = "1d4sc2gwra18zw9f063d28alf69nf0ikzsfxgc10z1zgy5bfyxny"; + version = "0.2.3.1"; + sha256 = "04f1gzfhaikwazvdz0aigf6lz8yk75p8ji9pjb0wsdyxs8mly21k"; libraryHaskellDepends = [ base ]; description = "numeric classes"; license = stdenv.lib.licenses.bsd3; @@ -157772,24 +157972,6 @@ self: { }) {}; "persistable-record" = callPackage - ({ mkDerivation, array, base, containers, dlist, names-th - , product-isomorphic, quickcheck-simple, template-haskell - , th-data-compat, transformers - }: - mkDerivation { - pname = "persistable-record"; - version = "0.6.0.3"; - sha256 = "12arj395b1famyy0hxp394ci2y3mkly68i82a26p67g5dpmdm466"; - libraryHaskellDepends = [ - array base containers dlist names-th product-isomorphic - template-haskell th-data-compat transformers - ]; - testHaskellDepends = [ base quickcheck-simple ]; - description = "Binding between SQL database values and haskell records"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "persistable-record_0_6_0_4" = callPackage ({ mkDerivation, array, base, containers, dlist, names-th , product-isomorphic, quickcheck-simple, template-haskell , th-data-compat, transformers @@ -157805,7 +157987,6 @@ self: { testHaskellDepends = [ base quickcheck-simple ]; description = "Binding between SQL database values and haskell records"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "persistable-types-HDBC-pg" = callPackage @@ -157815,8 +157996,8 @@ self: { }: mkDerivation { pname = "persistable-types-HDBC-pg"; - version = "0.0.3.2"; - sha256 = "0ddzmc19in35vxivgqp9yi8p2afvg67q2dwgl39pkw6camrqlh2r"; + version = "0.0.3.3"; + sha256 = "0m5cx6848s9vxmbrxwv3v9f3vplpayxjddn7j332k3kj3qbdgs4v"; libraryHaskellDepends = [ base bytestring convertible dlist HDBC persistable-record relational-query relational-query-HDBC text-postgresql @@ -157828,15 +158009,15 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "persistable-types-HDBC-pg_0_0_3_4" = callPackage + "persistable-types-HDBC-pg_0_0_3_5" = callPackage ({ mkDerivation, base, bytestring, convertible, dlist, HDBC , persistable-record, relational-query, relational-query-HDBC , text-postgresql }: mkDerivation { pname = "persistable-types-HDBC-pg"; - version = "0.0.3.4"; - sha256 = "0iygm59rai7w9g43h2ypra1z4dq2rsw5vc3nwh5bzpaa6x2mqqfb"; + version = "0.0.3.5"; + sha256 = "0bzc7kv12mz7kan1ivqpf2k1kwn3f1h74gallfvfrqans3np6p4m"; libraryHaskellDepends = [ base bytestring convertible dlist HDBC persistable-record relational-query relational-query-HDBC text-postgresql @@ -160092,6 +160273,23 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "pipes-group_1_0_11" = callPackage + ({ mkDerivation, base, doctest, free, lens-family-core, pipes + , pipes-parse, transformers + }: + mkDerivation { + pname = "pipes-group"; + version = "1.0.11"; + sha256 = "1570chhj3i587wgsgz70d1p94j524wz86xaal7imwvgmw40gdacc"; + libraryHaskellDepends = [ + base free pipes pipes-parse transformers + ]; + testHaskellDepends = [ base doctest lens-family-core ]; + description = "Group streams into substreams"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "pipes-http" = callPackage ({ mkDerivation, base, bytestring, http-client, http-client-tls , pipes @@ -164770,8 +164968,8 @@ self: { ({ mkDerivation, base, primitive }: mkDerivation { pname = "primitive-checked"; - version = "0.6.3.0"; - sha256 = "02097f658qidmcfaisrcl4k3vmipx8w8p6mcbnajc8ndb3m58bbl"; + version = "0.6.4.0"; + sha256 = "0605d585nr83dcbfld446aifh7mznl20lnlq5m7v650fr1vrklnf"; libraryHaskellDepends = [ base primitive ]; description = "primitive functions with bounds-checking"; license = stdenv.lib.licenses.bsd3; @@ -167593,30 +167791,6 @@ self: { }) {}; "pusher-http-haskell" = callPackage - ({ mkDerivation, aeson, base, base16-bytestring, bytestring - , cryptonite, hashable, hspec, http-client, http-types, memory - , QuickCheck, scientific, text, time, transformers - , unordered-containers, vector - }: - mkDerivation { - pname = "pusher-http-haskell"; - version = "1.5.1.4"; - sha256 = "1h6dl0h9ybbnjqs834bd1n5w4cx0vdbmi52mqdk2y9y267qc9k4a"; - libraryHaskellDepends = [ - aeson base base16-bytestring bytestring cryptonite hashable - http-client http-types memory text time transformers - unordered-containers vector - ]; - testHaskellDepends = [ - aeson base base16-bytestring bytestring cryptonite hspec - http-client http-types QuickCheck scientific text time transformers - unordered-containers vector - ]; - description = "Haskell client library for the Pusher HTTP API"; - license = stdenv.lib.licenses.mit; - }) {}; - - "pusher-http-haskell_1_5_1_5" = callPackage ({ mkDerivation, aeson, base, base16-bytestring, bytestring , cryptonite, hashable, hspec, http-client, http-types, memory , QuickCheck, scientific, text, time, transformers @@ -167638,7 +167812,6 @@ self: { ]; description = "Haskell client library for the Pusher HTTP API"; license = stdenv.lib.licenses.mit; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "pusher-ws" = callPackage @@ -168350,10 +168523,8 @@ self: { }: mkDerivation { pname = "quantification"; - version = "0.3"; - sha256 = "0hljd4m55254kmcrp3iar8ya7ky5a73vk3vrmgandmb15fsp2wvy"; - revision = "1"; - editedCabalFile = "1kcx4z6xwpbzkydl1kknf5kr1p2ry163jrw5k58f5jpv5gkn7mgn"; + version = "0.4"; + sha256 = "0bsdfmzaaxq2mf6bbbphg2dy8q6lhc7n3mfcy20fp4la0cj49aj2"; libraryHaskellDepends = [ aeson base containers ghc-prim hashable path-pieces text unordered-containers vector @@ -170393,6 +170564,25 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "rank2classes_1_1" = callPackage + ({ mkDerivation, base, distributive, doctest, tasty, tasty-hunit + , template-haskell, transformers + }: + mkDerivation { + pname = "rank2classes"; + version = "1.1"; + sha256 = "0m7zxgjql399xm97v9jczg13mclnwnwbls8d788iyfqbhlk3slkf"; + libraryHaskellDepends = [ + base distributive template-haskell transformers + ]; + testHaskellDepends = [ + base distributive doctest tasty tasty-hunit + ]; + description = "standard type constructor class hierarchy, only with methods of rank 2 types"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "rapid" = callPackage ({ mkDerivation, async, base, containers, foreign-store, stm }: mkDerivation { @@ -173168,23 +173358,6 @@ self: { }) {}; "regex-tdfa" = callPackage - ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl - , parsec, regex-base - }: - mkDerivation { - pname = "regex-tdfa"; - version = "1.2.3"; - sha256 = "1n80ssz9k73s444b4hda6fhp1vyzg0fc5fvz0309fi9dh6xpxcc9"; - revision = "1"; - editedCabalFile = "05ygcwwi8zjd40r05kavbmlx6nw6gyb2yicaarwd45sxs1zk73rz"; - libraryHaskellDepends = [ - array base bytestring containers ghc-prim mtl parsec regex-base - ]; - description = "Replaces/Enhances Text.Regex"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "regex-tdfa_1_2_3_1" = callPackage ({ mkDerivation, array, base, bytestring, containers, ghc-prim, mtl , parsec, regex-base }: @@ -173197,7 +173370,6 @@ self: { ]; description = "Replaces/Enhances Text.Regex"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "regex-tdfa-pipes" = callPackage @@ -173753,8 +173925,8 @@ self: { }: mkDerivation { pname = "relational-query"; - version = "0.11.1.0"; - sha256 = "1iydq7jdsizacvanvxdfad52vjaazb2awv2h3lyiqrsmva1y0qmq"; + version = "0.11.4.0"; + sha256 = "0pai1x1hqk8mn7gqxjrchb7rcv5dc8q4iwiklb8w3band7jwpnf7"; libraryHaskellDepends = [ array base bytestring containers dlist names-th persistable-record product-isomorphic sql-words template-haskell text th-reify-compat @@ -173799,8 +173971,8 @@ self: { }: mkDerivation { pname = "relational-query-HDBC"; - version = "0.6.7.1"; - sha256 = "011zvhwkdl7py1mdb5n65zc98xdfm013lpqc2kd37v9pvn11g28s"; + version = "0.6.8.0"; + sha256 = "1piriqd6rngbdlf9bx9zabbmpn255iqs29z6f8pkxr5qn3q33dzz"; libraryHaskellDepends = [ base containers convertible dlist HDBC HDBC-session names-th persistable-record product-isomorphic relational-query @@ -173814,7 +173986,7 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; - "relational-query-HDBC_0_6_8_0" = callPackage + "relational-query-HDBC_0_7_0_0" = callPackage ({ mkDerivation, base, containers, convertible, dlist, HDBC , HDBC-session, names-th, persistable-record, product-isomorphic , QuickCheck, quickcheck-simple, relational-query @@ -173823,8 +173995,8 @@ self: { }: mkDerivation { pname = "relational-query-HDBC"; - version = "0.6.8.0"; - sha256 = "1piriqd6rngbdlf9bx9zabbmpn255iqs29z6f8pkxr5qn3q33dzz"; + version = "0.7.0.0"; + sha256 = "1kzryjkfkg4f616ijyx28p72v9a45gpvjs7jpksb1by24ll9ly46"; libraryHaskellDepends = [ base containers convertible dlist HDBC HDBC-session names-th persistable-record product-isomorphic relational-query @@ -173840,23 +174012,6 @@ self: { }) {}; "relational-record" = callPackage - ({ mkDerivation, base, persistable-record - , persistable-types-HDBC-pg, product-isomorphic, relational-query - , relational-query-HDBC - }: - mkDerivation { - pname = "relational-record"; - version = "0.2.1.2"; - sha256 = "068d6a9xp9byhc3k1rb9a1zwifyg7mhxv3r6xisgdjv4w6fizbay"; - libraryHaskellDepends = [ - base persistable-record persistable-types-HDBC-pg - product-isomorphic relational-query relational-query-HDBC - ]; - description = "Meta package of Relational Record"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "relational-record_0_2_2_0" = callPackage ({ mkDerivation, base, persistable-record , persistable-types-HDBC-pg, product-isomorphic, relational-query , relational-query-HDBC @@ -173871,7 +174026,6 @@ self: { ]; description = "Meta package of Relational Record"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "relational-record-examples" = callPackage @@ -173895,21 +174049,6 @@ self: { }) {}; "relational-schemas" = callPackage - ({ mkDerivation, base, bytestring, containers, relational-query - , template-haskell, time - }: - mkDerivation { - pname = "relational-schemas"; - version = "0.1.6.1"; - sha256 = "1lkqaahfrdm2dlyqz3wn9dm0sw8cypmndasrigc67q94ha4lrv81"; - libraryHaskellDepends = [ - base bytestring containers relational-query template-haskell time - ]; - description = "RDBMSs' schema templates for relational-query"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "relational-schemas_0_1_6_2" = callPackage ({ mkDerivation, base, bytestring, containers, relational-query , template-haskell, time }: @@ -173922,7 +174061,6 @@ self: { ]; description = "RDBMSs' schema templates for relational-query"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "relative-date" = callPackage @@ -175991,38 +176129,6 @@ self: { }) {}; "riak" = callPackage - ({ mkDerivation, aeson, async, attoparsec, base, bifunctors, binary - , blaze-builder, bytestring, containers, criterion - , data-default-class, deepseq, enclosed-exceptions, exceptions - , hashable, HUnit, mersenne-random-pure64, monad-control, mtl - , network, process, protocol-buffers, pureMD5, QuickCheck, random - , resource-pool, riak-protobuf, semigroups, stm, tasty, tasty-hunit - , tasty-quickcheck, template-haskell, text, time, transformers - , transformers-base, unordered-containers, vector, yaml - }: - mkDerivation { - pname = "riak"; - version = "1.1.2.4"; - sha256 = "1j67p29jnw6zy3294qwsc947akdk8xawa426fvnflbba5lmzxial"; - libraryHaskellDepends = [ - aeson async attoparsec base bifunctors binary blaze-builder - bytestring containers data-default-class deepseq - enclosed-exceptions exceptions hashable mersenne-random-pure64 - monad-control network protocol-buffers pureMD5 random resource-pool - riak-protobuf semigroups stm text time transformers - transformers-base unordered-containers vector - ]; - testHaskellDepends = [ - aeson base bytestring containers data-default-class HUnit mtl - process QuickCheck riak-protobuf semigroups tasty tasty-hunit - tasty-quickcheck template-haskell text yaml - ]; - benchmarkHaskellDepends = [ base bytestring criterion semigroups ]; - description = "A Haskell client for the Riak decentralized data store"; - license = "unknown"; - }) {}; - - "riak_1_1_2_5" = callPackage ({ mkDerivation, aeson, async, attoparsec, base, bifunctors, binary , blaze-builder, bytestring, containers, criterion , data-default-class, deepseq, enclosed-exceptions, exceptions @@ -176052,7 +176158,6 @@ self: { benchmarkHaskellDepends = [ base bytestring criterion semigroups ]; description = "A Haskell client for the Riak decentralized data store"; license = "unknown"; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "riak-protobuf" = callPackage @@ -176212,30 +176317,6 @@ self: { }) {}; "rio" = callPackage - ({ mkDerivation, base, bytestring, containers, deepseq, directory - , exceptions, filepath, hashable, hspec, microlens, mtl, primitive - , process, text, time, typed-process, unix, unliftio - , unordered-containers, vector - }: - mkDerivation { - pname = "rio"; - version = "0.1.2.0"; - sha256 = "0449jjgw38dwf0lw3vq0ri3gh7mlzfjkajz8xdvxr76ffs9kncwq"; - libraryHaskellDepends = [ - base bytestring containers deepseq directory exceptions filepath - hashable microlens mtl primitive process text time typed-process - unix unliftio unordered-containers vector - ]; - testHaskellDepends = [ - base bytestring containers deepseq directory exceptions filepath - hashable hspec microlens mtl primitive process text time - typed-process unix unliftio unordered-containers vector - ]; - description = "A standard library for Haskell"; - license = stdenv.lib.licenses.mit; - }) {}; - - "rio_0_1_3_0" = callPackage ({ mkDerivation, base, bytestring, containers, deepseq, directory , exceptions, filepath, hashable, hspec, microlens, mtl, primitive , process, text, time, typed-process, unix, unliftio @@ -176257,7 +176338,6 @@ self: { ]; description = "A standard library for Haskell"; license = stdenv.lib.licenses.mit; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "rio-orphans" = callPackage @@ -177586,8 +177666,8 @@ self: { }: mkDerivation { pname = "rss2irc"; - version = "1.1"; - sha256 = "1phclqhf1kvnix729d8117kq851b2f2snsvghr6h6112rg22cf2q"; + version = "1.2"; + sha256 = "00q684w6s9ixwrci6sfpzzw2hrsl7j29g07d9j5a5j9csz0cr8gg"; isLibrary = false; isExecutable = true; executableHaskellDepends = [ @@ -180417,6 +180497,28 @@ self: { license = stdenv.lib.licenses.bsd3; }) {inherit (pkgs) SDL2;}; + "sdl2_2_4_1_0" = callPackage + ({ mkDerivation, base, bytestring, deepseq, exceptions, linear + , SDL2, StateVar, text, transformers, vector, weigh + }: + mkDerivation { + pname = "sdl2"; + version = "2.4.1.0"; + sha256 = "0p4b12fmxps0sbnkqdfy0qw19s355yrkw7fgw6xz53wzq706k991"; + isLibrary = true; + isExecutable = true; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + base bytestring exceptions linear StateVar text transformers vector + ]; + librarySystemDepends = [ SDL2 ]; + libraryPkgconfigDepends = [ SDL2 ]; + testHaskellDepends = [ base deepseq linear vector weigh ]; + description = "Both high- and low-level bindings to the SDL library (version 2.0.4+)."; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {inherit (pkgs) SDL2;}; + "sdl2-cairo" = callPackage ({ mkDerivation, base, cairo, linear, sdl2 }: mkDerivation { @@ -182922,22 +183024,6 @@ self: { }) {}; "servant-generic" = callPackage - ({ mkDerivation, base, network-uri, servant, servant-server, text - , warp - }: - mkDerivation { - pname = "servant-generic"; - version = "0.1.0.1"; - sha256 = "1zgw5j3wx4fyb9nhifslzsbfla3iagkvix86vb1x3d9fyz117wif"; - libraryHaskellDepends = [ base servant servant-server ]; - testHaskellDepends = [ - base network-uri servant servant-server text warp - ]; - description = "Specify Servant APIs with records"; - license = stdenv.lib.licenses.mit; - }) {}; - - "servant-generic_0_1_0_2" = callPackage ({ mkDerivation, base, network-uri, servant, servant-server, text , warp }: @@ -182951,7 +183037,6 @@ self: { ]; description = "Specify Servant APIs with records"; license = stdenv.lib.licenses.mit; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "servant-github" = callPackage @@ -186376,6 +186461,8 @@ self: { pname = "siggy-chardust"; version = "1.0.0"; sha256 = "0hssby6mak0bq1fqv47hp6rnw51yz1kgzgsmnvh2k9jfq0y0qwwz"; + revision = "1"; + editedCabalFile = "1lknm1jr6h5qpixc727aj3zbmj4ia21r9lb8gzj50iildgmfk33b"; libraryHaskellDepends = [ base ]; testHaskellDepends = [ base doctest hlint smallcheck tasty tasty-hunit tasty-quickcheck @@ -187104,8 +187191,8 @@ self: { ({ mkDerivation, base, process }: mkDerivation { pname = "simple-smt"; - version = "0.8"; - sha256 = "0w4adm7zjiqbzm0vg8ky4xyldid00grsnjf7n4pkw5a2fw81qi3d"; + version = "0.9.1"; + sha256 = "13dg61jdgby49lpdb53anrg39wn8dwgvg6jpn8vh0y8rf2zilq9b"; libraryHaskellDepends = [ base process ]; description = "A simple way to interact with an SMT solver process"; license = stdenv.lib.licenses.bsd3; @@ -188280,6 +188367,30 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "slack-web_0_2_0_6" = callPackage + ({ mkDerivation, aeson, base, containers, errors, hspec + , http-api-data, http-client, http-client-tls, megaparsec, mtl + , servant, servant-client, servant-client-core, text, time + , transformers + }: + mkDerivation { + pname = "slack-web"; + version = "0.2.0.6"; + sha256 = "1rydw71na7qninys7nqyn36mld5a5csvlsf01yzansnn2gvpdh2a"; + libraryHaskellDepends = [ + aeson base containers errors http-api-data http-client + http-client-tls megaparsec mtl servant servant-client + servant-client-core text time transformers + ]; + testHaskellDepends = [ + aeson base containers errors hspec http-api-data megaparsec text + time + ]; + description = "Bindings for the Slack web API"; + license = stdenv.lib.licenses.mit; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "slate" = callPackage ({ mkDerivation, base, directory, filepath, htoml , optparse-applicative, process, string-conversions @@ -192531,18 +192642,6 @@ self: { }) {}; "sql-words" = callPackage - ({ mkDerivation, base, QuickCheck, quickcheck-simple }: - mkDerivation { - pname = "sql-words"; - version = "0.1.6.1"; - sha256 = "07prq4bcvl469m0sr767kxidr0kk27yynb9zsm48sjz84h0bx2v3"; - libraryHaskellDepends = [ base ]; - testHaskellDepends = [ base QuickCheck quickcheck-simple ]; - description = "SQL keywords data constructors into OverloadedString"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "sql-words_0_1_6_2" = callPackage ({ mkDerivation, base, QuickCheck, quickcheck-simple }: mkDerivation { pname = "sql-words"; @@ -192552,7 +192651,6 @@ self: { testHaskellDepends = [ base QuickCheck quickcheck-simple ]; description = "SQL keywords data constructors into OverloadedString"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "sqlcipher" = callPackage @@ -195781,15 +195879,15 @@ self: { license = stdenv.lib.licenses.mit; }) {}; - "streaming-commons_0_2_0_0" = callPackage + "streaming-commons_0_2_1_0" = callPackage ({ mkDerivation, array, async, base, bytestring, deepseq, directory , gauge, hspec, network, process, QuickCheck, random, stm, text , transformers, unix, zlib }: mkDerivation { pname = "streaming-commons"; - version = "0.2.0.0"; - sha256 = "0pyfibrz30azq22zq7zl4wvbl0mm9wrqw1047p437h950d3biqpl"; + version = "0.2.1.0"; + sha256 = "13fn6qmpiggwpn8lczyydgp77cyzfypwds7wxskrwir4i5cgxlfq"; libraryHaskellDepends = [ array async base bytestring directory network process random stm text transformers unix zlib @@ -197415,8 +197513,8 @@ self: { }: mkDerivation { pname = "summoner"; - version = "1.0.3"; - sha256 = "0hyki46wp34rzwdgbn6icr0pmsqg89kwqs7hs76ydi4jzxv5183j"; + version = "1.0.4"; + sha256 = "1gwglx6lvg962q7a5m0vx372vqyiw3sf5kxsbwnl53pgrynmjhyn"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -200431,32 +200529,6 @@ self: { }) {}; "tar-conduit" = callPackage - ({ mkDerivation, base, bytestring, conduit, conduit-combinators - , containers, criterion, deepseq, directory, filepath, hspec - , QuickCheck, safe-exceptions, text, unix, weigh - }: - mkDerivation { - pname = "tar-conduit"; - version = "0.2.3"; - sha256 = "1is2q5662zrrxgb2dm2n1qa1aqdrwf4g7il5jdpxhri28m7pp7jp"; - libraryHaskellDepends = [ - base bytestring conduit conduit-combinators directory filepath - safe-exceptions text unix - ]; - testHaskellDepends = [ - base bytestring conduit conduit-combinators containers deepseq - directory filepath hspec QuickCheck weigh - ]; - benchmarkHaskellDepends = [ - base bytestring conduit conduit-combinators containers criterion - deepseq directory filepath hspec - ]; - description = "Extract and create tar files using conduit for streaming"; - license = stdenv.lib.licenses.mit; - hydraPlatforms = stdenv.lib.platforms.none; - }) {}; - - "tar-conduit_0_2_3_1" = callPackage ({ mkDerivation, base, bytestring, conduit, conduit-combinators , conduit-extra, containers, criterion, deepseq, directory , filepath, hspec, QuickCheck, safe-exceptions, text, unix, weigh @@ -200782,26 +200854,6 @@ self: { }) {}; "tasty-golden" = callPackage - ({ mkDerivation, async, base, bytestring, containers, deepseq - , directory, filepath, mtl, optparse-applicative, process, tagged - , tasty, tasty-hunit, temporary, temporary-rc - }: - mkDerivation { - pname = "tasty-golden"; - version = "2.3.1.3"; - sha256 = "1xri8bnj22gzxkxz4hi2vqx0aaz51ww3zz9ac0ig0lw653kbj61p"; - libraryHaskellDepends = [ - async base bytestring containers deepseq directory filepath mtl - optparse-applicative process tagged tasty temporary - ]; - testHaskellDepends = [ - base directory filepath process tasty tasty-hunit temporary-rc - ]; - description = "Golden tests support for tasty"; - license = stdenv.lib.licenses.mit; - }) {}; - - "tasty-golden_2_3_2" = callPackage ({ mkDerivation, async, base, bytestring, containers, deepseq , directory, filepath, mtl, optparse-applicative, process, tagged , tasty, tasty-hunit, temporary, temporary-rc @@ -200819,7 +200871,6 @@ self: { ]; description = "Golden tests support for tasty"; license = stdenv.lib.licenses.mit; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "tasty-groundhog-converters" = callPackage @@ -200878,6 +200929,26 @@ self: { hydraPlatforms = stdenv.lib.platforms.none; }) {}; + "tasty-hedgehog-coverage" = callPackage + ({ mkDerivation, base, containers, hedgehog, mtl, tagged, tasty + , tasty-expected-failure, tasty-hedgehog, text, transformers + , wl-pprint-annotated + }: + mkDerivation { + pname = "tasty-hedgehog-coverage"; + version = "0.1.0.0"; + sha256 = "1d2hnhkpk71k0xjw63jsn6fa4ih01xqn4dgdbflp6yrs0zw6p95c"; + libraryHaskellDepends = [ + base containers hedgehog mtl tagged tasty tasty-hedgehog text + transformers wl-pprint-annotated + ]; + testHaskellDepends = [ + base hedgehog tasty tasty-expected-failure + ]; + description = "Coverage tracking for Hedgehog Property-Based Testing via Tasty"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "tasty-hspec" = callPackage ({ mkDerivation, base, hspec, hspec-core, QuickCheck, tasty , tasty-quickcheck, tasty-smallcheck @@ -200896,6 +200967,25 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "tasty-hspec_1_1_5" = callPackage + ({ mkDerivation, base, hspec, hspec-core, QuickCheck, tasty + , tasty-quickcheck, tasty-smallcheck + }: + mkDerivation { + pname = "tasty-hspec"; + version = "1.1.5"; + sha256 = "0m0ip2l4rg4pnrvk3mjxkbq2l683psv1x3v9l4rglk2k3pvxq36v"; + revision = "1"; + editedCabalFile = "0zgbcrahzfg37bnni6fj0qb0fpbk5rdha589mh960d5sbq58pljf"; + libraryHaskellDepends = [ + base hspec hspec-core QuickCheck tasty tasty-quickcheck + tasty-smallcheck + ]; + description = "Hspec support for the Tasty test framework"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "tasty-html" = callPackage ({ mkDerivation, base, blaze-html, bytestring, containers, filepath , generic-deriving, mtl, stm, tagged, tasty, text, transformers @@ -200913,6 +201003,25 @@ self: { license = stdenv.lib.licenses.mit; }) {}; + "tasty-html_0_4_1_2" = callPackage + ({ mkDerivation, base, blaze-html, bytestring, containers, filepath + , generic-deriving, mtl, semigroups, stm, tagged, tasty, text + , transformers + }: + mkDerivation { + pname = "tasty-html"; + version = "0.4.1.2"; + sha256 = "1bffbp8qwyad85s9bl3ck3gxay3hphka527j09hn2sz1bfqzcihb"; + enableSeparateDataOutput = true; + libraryHaskellDepends = [ + base blaze-html bytestring containers filepath generic-deriving mtl + semigroups stm tagged tasty text transformers + ]; + description = "Render tasty output to HTML"; + license = stdenv.lib.licenses.mit; + hydraPlatforms = stdenv.lib.platforms.none; + }) {}; + "tasty-hunit" = callPackage ({ mkDerivation, base, call-stack, tasty }: mkDerivation { @@ -203662,22 +203771,6 @@ self: { }) {}; "text-postgresql" = callPackage - ({ mkDerivation, base, dlist, QuickCheck, quickcheck-simple - , transformers, transformers-compat - }: - mkDerivation { - pname = "text-postgresql"; - version = "0.0.3.0"; - sha256 = "0db08ri1zixxm8vhcnijv2wpmcyv3bali30a1fx4vmb8d6c1fh35"; - libraryHaskellDepends = [ - base dlist transformers transformers-compat - ]; - testHaskellDepends = [ base QuickCheck quickcheck-simple ]; - description = "Parser and Printer of PostgreSQL extended types"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "text-postgresql_0_0_3_1" = callPackage ({ mkDerivation, base, dlist, QuickCheck, quickcheck-simple , transformers, transformers-compat }: @@ -203691,7 +203784,6 @@ self: { testHaskellDepends = [ base QuickCheck quickcheck-simple ]; description = "Parser and Printer of PostgreSQL extended types"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "text-printer" = callPackage @@ -204269,10 +204361,10 @@ self: { ({ mkDerivation, base, containers, ghc-prim, template-haskell }: mkDerivation { pname = "th-abstraction"; - version = "0.2.6.0"; - sha256 = "0g42h6wnj2awc5ryhbvx009wd8w75pn66bjzsq1z4s3xajd2hbp5"; + version = "0.2.7.0"; + sha256 = "1233x853gcc18xm0d8ysf7rlkg9aphy2j6hn78yxchalglfwjixf"; revision = "1"; - editedCabalFile = "0k4s4nbg9jlgaza38842jnzs8s01ig85fzmjgd10k9hl02gc3r44"; + editedCabalFile = "1fafzr80vbnamqq72rwnhk1ih3iyxzb8j2xfdgn691irv4fv6839"; libraryHaskellDepends = [ base containers ghc-prim template-haskell ]; @@ -204281,14 +204373,12 @@ self: { license = stdenv.lib.licenses.isc; }) {}; - "th-abstraction_0_2_7_0" = callPackage + "th-abstraction_0_2_8_0" = callPackage ({ mkDerivation, base, containers, ghc-prim, template-haskell }: mkDerivation { pname = "th-abstraction"; - version = "0.2.7.0"; - sha256 = "1233x853gcc18xm0d8ysf7rlkg9aphy2j6hn78yxchalglfwjixf"; - revision = "1"; - editedCabalFile = "1fafzr80vbnamqq72rwnhk1ih3iyxzb8j2xfdgn691irv4fv6839"; + version = "0.2.8.0"; + sha256 = "0n17w4q2ykd0nica4sck2wng6md56rfad8x0icl0l8vnzb9nn4ya"; libraryHaskellDepends = [ base containers ghc-prim template-haskell ]; @@ -204966,6 +205056,17 @@ self: { license = stdenv.lib.licenses.bsd3; }) {}; + "these-skinny" = callPackage + ({ mkDerivation, base, deepseq }: + mkDerivation { + pname = "these-skinny"; + version = "0.7.4"; + sha256 = "0hlxf94ir99y0yzm9pq8cvs7vbar4bpj1w1ibs96hrx2biwfbnkr"; + libraryHaskellDepends = [ base deepseq ]; + description = "A fork of the 'these' package without the dependency bloat"; + license = stdenv.lib.licenses.bsd3; + }) {}; + "thespian" = callPackage ({ mkDerivation, base, containers, mtl }: mkDerivation { @@ -207279,14 +207380,14 @@ self: { }) {}; "tomland" = callPackage - ({ mkDerivation, base, hashable, hedgehog, megaparsec, mtl - , parser-combinators, tasty, tasty-hedgehog, tasty-hspec, text - , time, unordered-containers + ({ mkDerivation, base, hashable, hedgehog, hspec-megaparsec + , megaparsec, mtl, parser-combinators, tasty, tasty-discover + , tasty-hedgehog, tasty-hspec, text, time, unordered-containers }: mkDerivation { pname = "tomland"; - version = "0.2.1"; - sha256 = "09d0i1sys7nljbcky53qz4w2ibjyhcysa8ik0drb1pcyqyzppj8x"; + version = "0.3"; + sha256 = "0crwapvykd26b50bmh22vxpcv44f1jv88r0ifvr3hjmvv0v43lwh"; isLibrary = true; isExecutable = true; libraryHaskellDepends = [ @@ -207295,9 +207396,10 @@ self: { ]; executableHaskellDepends = [ base text time unordered-containers ]; testHaskellDepends = [ - base hedgehog tasty tasty-hedgehog tasty-hspec text - unordered-containers + base hedgehog hspec-megaparsec megaparsec tasty tasty-hedgehog + tasty-hspec text time unordered-containers ]; + testToolDepends = [ tasty-discover ]; description = "TOML parser"; license = stdenv.lib.licenses.mpl20; }) {}; @@ -209580,29 +209682,6 @@ self: { }) {}; "turtle" = callPackage - ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock - , containers, criterion, directory, doctest, exceptions, foldl - , hostname, managed, optional-args, optparse-applicative, process - , semigroups, stm, system-fileio, system-filepath, temporary, text - , time, transformers, unix, unix-compat - }: - mkDerivation { - pname = "turtle"; - version = "1.5.8"; - sha256 = "0vp442byylqki6pabhg8bs27msqsdcwcnql40z003jx1hidccnq4"; - libraryHaskellDepends = [ - ansi-wl-pprint async base bytestring clock containers directory - exceptions foldl hostname managed optional-args - optparse-applicative process semigroups stm system-fileio - system-filepath temporary text time transformers unix unix-compat - ]; - testHaskellDepends = [ base doctest system-filepath temporary ]; - benchmarkHaskellDepends = [ base criterion text ]; - description = "Shell programming, Haskell-style"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "turtle_1_5_9" = callPackage ({ mkDerivation, ansi-wl-pprint, async, base, bytestring, clock , containers, criterion, directory, doctest, exceptions, foldl , hostname, managed, optional-args, optparse-applicative, process @@ -209613,6 +209692,8 @@ self: { pname = "turtle"; version = "1.5.9"; sha256 = "13x2qk8j2qxqqk60y17h7g1p76gj3xxyc4g78mb4d4ajq6smk91x"; + revision = "1"; + editedCabalFile = "19mbp8rz9mrc10k5s2n2ihsvk7i7sm19y3xvdy320aajxv7k69hh"; libraryHaskellDepends = [ ansi-wl-pprint async base bytestring clock containers directory exceptions foldl hostname managed optional-args @@ -209623,7 +209704,6 @@ self: { benchmarkHaskellDepends = [ base criterion text ]; description = "Shell programming, Haskell-style"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "turtle-options" = callPackage @@ -211122,8 +211202,8 @@ self: { }: mkDerivation { pname = "typedquery"; - version = "0.1.0.3"; - sha256 = "0d90zzd1xk8llviknm21ck45gkaawyg7qj4mnf3f5csw66x2isbk"; + version = "0.1.1.1"; + sha256 = "1p6hlx2hsp7sjhspw3c95b1px6r2hylr31f4hcjq505z3i33gm7m"; libraryHaskellDepends = [ aeson base bytestring haskell-src-meta parsec template-haskell text transformers @@ -211437,31 +211517,6 @@ self: { }) {}; "ua-parser" = callPackage - ({ mkDerivation, aeson, base, bytestring, criterion, data-default - , deepseq, file-embed, filepath, HUnit, pcre-light, tasty - , tasty-hunit, tasty-quickcheck, text, yaml - }: - mkDerivation { - pname = "ua-parser"; - version = "0.7.4.1"; - sha256 = "1pwls2qbhd3ig2lm4ix3kh08yw20k0iajigbxqd0vmpkx459pmrf"; - enableSeparateDataOutput = true; - libraryHaskellDepends = [ - aeson base bytestring data-default file-embed pcre-light text yaml - ]; - testHaskellDepends = [ - aeson base bytestring data-default file-embed filepath HUnit - pcre-light tasty tasty-hunit tasty-quickcheck text yaml - ]; - benchmarkHaskellDepends = [ - aeson base bytestring criterion data-default deepseq file-embed - filepath pcre-light text yaml - ]; - description = "A library for parsing User-Agent strings, official Haskell port of ua-parser"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "ua-parser_0_7_5_0" = callPackage ({ mkDerivation, aeson, base, bytestring, criterion, data-default , deepseq, file-embed, filepath, HUnit, pcre-light, tasty , tasty-hunit, tasty-quickcheck, text, yaml @@ -211484,7 +211539,6 @@ self: { ]; description = "A library for parsing User-Agent strings, official Haskell port of ua-parser"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "uacpid" = callPackage @@ -215230,17 +215284,13 @@ self: { }) {}; "valor" = callPackage - ({ mkDerivation, base, checkers, hspec, hspec-checkers, QuickCheck - , text, transformers - }: + ({ mkDerivation, base, hspec, text, transformers }: mkDerivation { pname = "valor"; - version = "0.0.0.1"; - sha256 = "1cjkfalsrpw579bg12ldmzjmmkj9l7b35j2vp37qqgd39m1dm29a"; - libraryHaskellDepends = [ base text transformers ]; - testHaskellDepends = [ - base checkers hspec hspec-checkers QuickCheck text transformers - ]; + version = "0.1.0.0"; + sha256 = "1rmsss4zffyzf6vf1p2zj07a6a32pyrbdb259gflr5gg817m3kh4"; + libraryHaskellDepends = [ base transformers ]; + testHaskellDepends = [ base hspec text transformers ]; description = "Simple general structured validation library"; license = stdenv.lib.licenses.mit; }) {}; @@ -220886,24 +220936,6 @@ self: { }) {}; "wild-bind" = callPackage - ({ mkDerivation, base, containers, hspec, microlens, QuickCheck - , semigroups, stm, text, transformers - }: - mkDerivation { - pname = "wild-bind"; - version = "0.1.2.0"; - sha256 = "0c1nb713p11pd89ykwz76i60sk437q9cy48bingiiig1g9dfg3p6"; - libraryHaskellDepends = [ - base containers semigroups text transformers - ]; - testHaskellDepends = [ - base hspec microlens QuickCheck stm transformers - ]; - description = "Dynamic key binding framework"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "wild-bind_0_1_2_1" = callPackage ({ mkDerivation, base, containers, hspec, microlens, QuickCheck , semigroups, stm, text, transformers }: @@ -220919,7 +220951,6 @@ self: { ]; description = "Dynamic key binding framework"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "wild-bind-indicator" = callPackage @@ -220956,25 +220987,6 @@ self: { }) {}; "wild-bind-x11" = callPackage - ({ mkDerivation, async, base, containers, fold-debounce, hspec, mtl - , semigroups, stm, text, time, transformers, wild-bind, X11 - }: - mkDerivation { - pname = "wild-bind-x11"; - version = "0.2.0.3"; - sha256 = "0naqmgkqqq83mnrp4ic97i6f6ak3h862jk6pa77c83qmz4ahh4ld"; - libraryHaskellDepends = [ - base containers fold-debounce mtl semigroups stm text transformers - wild-bind X11 - ]; - testHaskellDepends = [ - async base hspec text time transformers wild-bind X11 - ]; - description = "X11-specific implementation for WildBind"; - license = stdenv.lib.licenses.bsd3; - }) {}; - - "wild-bind-x11_0_2_0_4" = callPackage ({ mkDerivation, async, base, containers, fold-debounce, hspec, mtl , semigroups, stm, text, time, transformers, wild-bind, X11 }: @@ -220991,7 +221003,6 @@ self: { ]; description = "X11-specific implementation for WildBind"; license = stdenv.lib.licenses.bsd3; - hydraPlatforms = stdenv.lib.platforms.none; }) {}; "wilton-ffi" = callPackage @@ -225196,6 +225207,35 @@ self: { license = stdenv.lib.licenses.bsd3; }) {inherit (pkgs) libyaml;}; + "yaml_0_8_31" = callPackage + ({ mkDerivation, aeson, attoparsec, base, base-compat, bytestring + , conduit, containers, directory, filepath, hspec, HUnit, libyaml + , mockery, resourcet, scientific, semigroups, template-haskell + , temporary, text, transformers, unordered-containers, vector + }: + mkDerivation { + pname = "yaml"; + version = "0.8.31"; + sha256 = "1a9b24czyrls3d7lgamm0cmrwkndr8ip3h6d338q79alhdz8ziqm"; + configureFlags = [ "-fsystem-libyaml" ]; + isLibrary = true; + isExecutable = true; + libraryHaskellDepends = [ + aeson attoparsec base bytestring conduit containers directory + filepath resourcet scientific semigroups template-haskell text + transformers unordered-containers vector + ]; + libraryPkgconfigDepends = [ libyaml ]; + testHaskellDepends = [ + aeson base base-compat bytestring conduit directory hspec HUnit + mockery resourcet temporary text transformers unordered-containers + vector + ]; + description = "Support for parsing and rendering YAML documents"; + license = stdenv.lib.licenses.bsd3; + hydraPlatforms = stdenv.lib.platforms.none; + }) {inherit (pkgs) libyaml;}; + "yaml-combinators" = callPackage ({ mkDerivation, aeson, base, bytestring, doctest, generics-sop , scientific, tasty, tasty-hunit, text, transformers @@ -225266,10 +225306,10 @@ self: { ({ mkDerivation, base, hspec, microlens-platform, rio, yaml }: mkDerivation { pname = "yaml-pretty-extras"; - version = "0.0.2.1"; - sha256 = "1xjkfrqip9dfsc964759h11jz8kpza20lcqbvwcw2li93fn5p8y7"; + version = "0.0.2.2"; + sha256 = "0pbpwrrbf4ibrid09ypqfz15d0b4kfgfs4ypfdn0bv5n25nn3ca2"; libraryHaskellDepends = [ base microlens-platform rio yaml ]; - testHaskellDepends = [ base hspec microlens-platform rio yaml ]; + testHaskellDepends = [ base hspec microlens-platform rio ]; description = "Extra functionality for pretty printing Yaml documents"; license = stdenv.lib.licenses.bsd3; hydraPlatforms = stdenv.lib.platforms.none; diff --git a/pkgs/development/interpreters/python/cpython/3.7/default.nix b/pkgs/development/interpreters/python/cpython/3.7/default.nix index 9cc0377f925..410d07ebc61 100644 --- a/pkgs/development/interpreters/python/cpython/3.7/default.nix +++ b/pkgs/development/interpreters/python/cpython/3.7/default.nix @@ -80,6 +80,7 @@ in stdenv.mkDerivation { "--without-ensurepip" "--with-system-expat" "--with-system-ffi" + "--with-openssl=${openssl.dev}" ]; preConfigure = '' diff --git a/pkgs/development/interpreters/spidermonkey/1.8.5.nix b/pkgs/development/interpreters/spidermonkey/1.8.5.nix index 8e51b9b7d58..f333aa0b96d 100644 --- a/pkgs/development/interpreters/spidermonkey/1.8.5.nix +++ b/pkgs/development/interpreters/spidermonkey/1.8.5.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { patches = [ (fetchpatch { name = "gcc6.patch"; - url = "https://anonscm.debian.org/cgit/collab-maint/mozjs.git/plain/debian/patches/fix-811665.patch?id=00b15c7841968ab4f7fec409a6b93fa5e1e1d32e"; + url = "https://sources.debian.org/data/main/m/mozjs/1.8.5-1.0.0+dfsg-6/debian/patches/fix-811665.patch"; sha256 = "1q8477xqxiy5d8376k5902l45gd0qkd4nxmhl8vr6rr1pxfcny99"; }) ] ++ stdenv.lib.optionals stdenv.isAarch32 [ diff --git a/pkgs/development/libraries/arb/default.nix b/pkgs/development/libraries/arb/default.nix index a59641e99d3..ea70e645453 100644 --- a/pkgs/development/libraries/arb/default.nix +++ b/pkgs/development/libraries/arb/default.nix @@ -1,4 +1,4 @@ -{stdenv, fetchFromGitHub, mpir, gmp, mpfr, flint}: +{stdenv, fetchFromGitHub, fetchpatch, mpir, gmp, mpfr, flint}: stdenv.mkDerivation rec { name = "${pname}-${version}"; pname = "arb"; @@ -17,6 +17,14 @@ stdenv.mkDerivation rec { "--with-flint=${flint}" ]; doCheck = true; + patches = [ + # https://github.com/fredrik-johansson/arb/pull/210, included in next release + (fetchpatch { + url = "https://patch-diff.githubusercontent.com/raw/fredrik-johansson/arb/pull/210.patch"; + name = "return-exact-zero-where-possible.patch"; + sha256 = "01j9npnpmwh4dla9i05qdn606hy34gy9bz7c9bbsqm7az3n7pxjg"; + }) + ]; meta = { inherit version; description = ''A library for arbitrary-precision interval arithmetic''; diff --git a/pkgs/development/libraries/audio/rtaudio/default.nix b/pkgs/development/libraries/audio/rtaudio/default.nix index 1df696c0ec6..7f1e3d941a1 100644 --- a/pkgs/development/libraries/audio/rtaudio/default.nix +++ b/pkgs/development/libraries/audio/rtaudio/default.nix @@ -11,6 +11,8 @@ stdenv.mkDerivation rec { sha256 = "0jkqnhc2pq31nmq4daxhmqdjgv2qi4ib27hwms2r5zhnmvvzlr67"; }; + enableParallelBuilding = true; + buildInputs = [ autoconf automake libtool libjack2 alsaLib rtmidi ]; preConfigure = '' diff --git a/pkgs/development/libraries/audio/rtmidi/default.nix b/pkgs/development/libraries/audio/rtmidi/default.nix index 022c5504596..0f3f1fce42b 100644 --- a/pkgs/development/libraries/audio/rtmidi/default.nix +++ b/pkgs/development/libraries/audio/rtmidi/default.nix @@ -11,6 +11,8 @@ stdenv.mkDerivation rec { sha256 = "11pl45lp8sq5xkpipwk622w508nw0qcxr03ibicqn1lsws0hva96"; }; + enableParallelBuilding = true; + nativeBuildInputs = [ pkgconfig ]; buildInputs = [ autoconf automake libtool libjack2 alsaLib ]; diff --git a/pkgs/development/libraries/boost/generic.nix b/pkgs/development/libraries/boost/generic.nix index 00c6d279c7a..34e837f7cd2 100644 --- a/pkgs/development/libraries/boost/generic.nix +++ b/pkgs/development/libraries/boost/generic.nix @@ -9,8 +9,8 @@ , enableMultiThreaded ? true , enableShared ? !(hostPlatform.libc == "msvcrt") # problems for now , enableStatic ? !enableShared -, enablePython ? hostPlatform == buildPlatform -, enableNumpy ? enablePython && stdenv.lib.versionAtLeast version "1.65" +, enablePython ? false +, enableNumpy ? false , taggedLayout ? ((enableRelease && enableDebug) || (enableSingleThreaded && enableMultiThreaded) || (enableShared && enableStatic)) , patches ? [] , mpi ? null diff --git a/pkgs/development/libraries/libgap/default.nix b/pkgs/development/libraries/libgap/default.nix index dec9676d572..42e812ec1f5 100644 --- a/pkgs/development/libraries/libgap/default.nix +++ b/pkgs/development/libraries/libgap/default.nix @@ -1,10 +1,17 @@ -{stdenv, fetchurl, gmp}: +{ stdenv +, fetchurl +, gmp +}: +# will probably be obsolte (or at leat built from the upstream gap sources) soon (gap 4.9?). See +# - https://github.com/gap-system/gap/projects/5#card-6239828 +# - https://github.com/markuspf/gap/issues/2 +# - https://trac.sagemath.org/ticket/22626 stdenv.mkDerivation rec { name = "libgap-${version}"; + # Has to be the same version as "gap" version = "4.8.6"; - # or fetchFromGitHub(owner,repo,rev) or fetchgit(rev) src = fetchurl { - url = "http://mirrors.mit.edu/sage/spkg/upstream/libgap/libgap-${version}.tar.gz"; + url = "mirror://sageupstream/libgap/libgap-${version}.tar.gz"; sha256 = "1h5fx5a55857w583ql7ly2jl49qyx9mvs7j5abys00ra9gzrpn5v"; }; buildInputs = [gmp]; diff --git a/pkgs/development/libraries/libguestfs/default.nix b/pkgs/development/libraries/libguestfs/default.nix index 106de68d367..7569f2613bb 100644 --- a/pkgs/development/libraries/libguestfs/default.nix +++ b/pkgs/development/libraries/libguestfs/default.nix @@ -11,11 +11,11 @@ assert javaSupport -> jdk != null; stdenv.mkDerivation rec { name = "libguestfs-${version}"; - version = "1.38.0"; + version = "1.38.2"; src = fetchurl { url = "http://libguestfs.org/download/1.38-stable/libguestfs-${version}.tar.gz"; - sha256 = "0cgapiad3x5ggwm097mq62hng3bv91p5gmrikrb6adfaasr1l6m3"; + sha256 = "16v2lpi9c0vnic2x0vpszmckh0x39bmf6x7y00vvzbwhszshxx3w"; }; nativeBuildInputs = [ pkgconfig ]; diff --git a/pkgs/development/libraries/libsidplayfp/default.nix b/pkgs/development/libraries/libsidplayfp/default.nix index 78e7036bdcc..82caacf93e6 100644 --- a/pkgs/development/libraries/libsidplayfp/default.nix +++ b/pkgs/development/libraries/libsidplayfp/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "libsidplayfp"; major = "1"; minor = "8"; - level = "6"; + level = "7"; version = "${major}.${minor}.${level}"; name = "${pname}-${version}"; src = fetchurl { url = "mirror://sourceforge/sidplay-residfp/${pname}/${major}.${minor}/${name}.tar.gz"; - sha256 = "0lzivfdq0crmfr01c6f5h883yr7wvagq198xkk3srdmvshhxmwnw"; + sha256 = "14k1sbdcbhykwfcadq5lbpnm9xp2r7vs7fyi84h72g89y8pjg0da"; }; nativeBuildInputs = [ pkgconfig ] diff --git a/pkgs/development/libraries/libtorrent-rasterbar/default.nix b/pkgs/development/libraries/libtorrent-rasterbar/default.nix index d0b2d79e9fa..1cc42613859 100644 --- a/pkgs/development/libraries/libtorrent-rasterbar/default.nix +++ b/pkgs/development/libraries/libtorrent-rasterbar/default.nix @@ -4,6 +4,9 @@ let version = "1.1.7"; formattedVersion = lib.replaceChars ["."] ["_"] version; + + boostPython = boost.override { enablePython = true; }; + in stdenv.mkDerivation { name = "libtorrent-rasterbar-${version}"; @@ -27,15 +30,15 @@ in stdenv.mkDerivation { enableParallelBuilding = true; nativeBuildInputs = [ automake autoconf libtool pkgconfig ]; - buildInputs = [ boost openssl zlib python libiconv geoip ]; + buildInputs = [ boostPython openssl zlib python libiconv geoip ]; preConfigure = "./autotool.sh"; configureFlags = [ "--enable-python-binding" "--with-libgeoip=system" "--with-libiconv=yes" - "--with-boost=${boost.dev}" - "--with-boost-libdir=${boost.out}/lib" + "--with-boost=${boostPython.dev}" + "--with-boost-libdir=${boostPython.out}/lib" "--with-libiconv=yes" ]; diff --git a/pkgs/development/libraries/linbox/default.nix b/pkgs/development/libraries/linbox/default.nix index 0f5442bd63b..c4ff0e892a8 100644 --- a/pkgs/development/libraries/linbox/default.nix +++ b/pkgs/development/libraries/linbox/default.nix @@ -5,7 +5,6 @@ , givaro , pkgconfig , openblas -, liblapack , fflas-ffpack , gmpxx , optimize ? false # impure @@ -30,7 +29,6 @@ stdenv.mkDerivation rec { buildInputs = [ givaro - (liblapack.override {shared = true;}) openblas gmpxx fflas-ffpack @@ -38,7 +36,6 @@ stdenv.mkDerivation rec { configureFlags = [ "--with-blas-libs=-lopenblas" - "--with-lapack-libs=-llapack" "--disable-optimization" ] ++ stdenv.lib.optionals (!optimize) [ # disable SIMD instructions (which are enabled *when available* by default) diff --git a/pkgs/development/libraries/poppler/default.nix b/pkgs/development/libraries/poppler/default.nix index bfc94e1fac8..f8a17c9f5c3 100644 --- a/pkgs/development/libraries/poppler/default.nix +++ b/pkgs/development/libraries/poppler/default.nix @@ -8,7 +8,7 @@ }: let # beware: updates often break cups-filters build - version = "0.65.0"; + version = "0.66.0"; mkFlag = optset: flag: "-DENABLE_${flag}=${if optset then "on" else "off"}"; in stdenv.mkDerivation rec { @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "${meta.homepage}/poppler-${version}.tar.xz"; - sha256 = "01wgvpi1l7nqkvixnmhmlpld0fjryhl7rlwvba6agz9yz1rwzj49"; + sha256 = "1rzar5f27xzkjih07yi8kxcinvk4ny4nhimyacpvqx7vmlqn829c"; }; outputs = [ "out" "dev" ]; diff --git a/pkgs/development/libraries/science/math/lcalc/default.nix b/pkgs/development/libraries/science/math/lcalc/default.nix index 90393cff001..6bbd43b0c84 100644 --- a/pkgs/development/libraries/science/math/lcalc/default.nix +++ b/pkgs/development/libraries/science/math/lcalc/default.nix @@ -12,7 +12,7 @@ stdenv.mkDerivation rec { src = fetchurl { # original at http://oto.math.uwaterloo.ca/~mrubinst/L_function_public/CODE/L-${version}.tar.gz, no longer available # "newer" version at google code https://code.google.com/archive/p/l-calc/source/default/source - url = "http://mirrors.mit.edu/sage/spkg/upstream/lcalc/lcalc-${version}.tar.bz2"; + url = "mirror://sageupstream/lcalc/lcalc-${version}.tar.bz2"; sha256 = "1c6dsdshgxhqppjxvxhp8yhpxaqvnz3d1mlh26r571gkq8z2bm43"; }; diff --git a/pkgs/development/libraries/science/math/openblas/default.nix b/pkgs/development/libraries/science/math/openblas/default.nix index bd095a11f08..fc8f11f2f11 100644 --- a/pkgs/development/libraries/science/math/openblas/default.nix +++ b/pkgs/development/libraries/science/math/openblas/default.nix @@ -76,14 +76,13 @@ let if blas64_ != null then blas64_ else hasPrefix "x86_64" stdenv.system; - - version = "0.3.0"; in -stdenv.mkDerivation { +stdenv.mkDerivation rec { name = "openblas-${version}"; + version = "0.3.1"; src = fetchurl { url = "https://github.com/xianyi/OpenBLAS/archive/v${version}.tar.gz"; - sha256 = "18giv3lsh8cva01z4rhsx8jvgliknni0jp7vxkc69qxb14vm8lfg"; + sha256 = "0czbs2afmcxxij1ivqrm04p0qcksg5fravjifhydvb7k6mpraphz"; name = "openblas-${version}.tar.gz"; }; diff --git a/pkgs/development/libraries/science/math/rankwidth/default.nix b/pkgs/development/libraries/science/math/rankwidth/default.nix index f38fce5831e..fda54fe44ab 100644 --- a/pkgs/development/libraries/science/math/rankwidth/default.nix +++ b/pkgs/development/libraries/science/math/rankwidth/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { - url = "http://mirrors.mit.edu/sage/spkg/upstream/rw/rw-${version}.tar.gz"; + url = "mirror://sageupstream/rw/rw-${version}.tar.gz"; sha256 = "1rv2v42x2506x7f10349m1wpmmfxrv9l032bkminni2gbip9cjg0"; }; diff --git a/pkgs/development/libraries/science/math/rubiks/default.nix b/pkgs/development/libraries/science/math/rubiks/default.nix index fe448106b15..624885c501a 100644 --- a/pkgs/development/libraries/science/math/rubiks/default.nix +++ b/pkgs/development/libraries/science/math/rubiks/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { name = "${pname}-${version}"; src = fetchurl { - url = "http://mirrors.mit.edu/sage/spkg/upstream/rubiks/rubiks-${version}.tar.bz2"; + url = "mirror://sageupstream/rubiks/rubiks-${version}.tar.bz2"; sha256 = "0zdmkb0j1kyspdpsszzb2k3279xij79jkx0dxd9f3ix1yyyg3yfq"; }; diff --git a/pkgs/development/libraries/science/math/sympow/default.nix b/pkgs/development/libraries/science/math/sympow/default.nix index c83b3d1737c..c34701e3f91 100644 --- a/pkgs/development/libraries/science/math/sympow/default.nix +++ b/pkgs/development/libraries/science/math/sympow/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation rec { src = fetchurl { # Original website no longer reachable - url = "http://mirrors.mit.edu/sage/spkg/upstream/sympow/sympow-${version}.tar.bz2"; + url = "mirror://sageupstream/sympow/sympow-${version}.tar.bz2"; sha256 = "0hphs7ia1wr5mydf288zvwj4svrymfpadcg3pi6w80km2yg5bm3c"; }; @@ -26,7 +26,7 @@ stdenv.mkDerivation rec { installPhase = '' runHook preInstall - install -d datafiles "$out/share/sympow/datafiles" + install -D datafiles/* --target-directory "$out/share/sympow/datafiles/" install *.gp "$out/share/sympow/" install -Dm755 sympow "$out/share/sympow/sympow" install -D new_data "$out/bin/new_data" diff --git a/pkgs/development/libraries/tachyon/default.nix b/pkgs/development/libraries/tachyon/default.nix index 53e48eb8931..0185bd2733b 100644 --- a/pkgs/development/libraries/tachyon/default.nix +++ b/pkgs/development/libraries/tachyon/default.nix @@ -38,6 +38,7 @@ stdenv.mkDerivation rec { arch = if stdenv.system == "x86_64-linux" then "linux-64-thr" else if stdenv.system == "i686-linux" then "linux-thr" else if stdenv.system == "aarch64-linux" then "linux-arm-thr" else + if stdenv.system == "armv7l-linux" then "linux-arm-thr" else if stdenv.system == "x86_64-darwin" then "macosx-thr" else if stdenv.system == "i686-darwin" then "macosx-64-thr" else if stdenv.system == "i686-cygwin" then "win32" else diff --git a/pkgs/development/libraries/wolfssl/default.nix b/pkgs/development/libraries/wolfssl/default.nix index 47686451eee..2b69f6283d6 100644 --- a/pkgs/development/libraries/wolfssl/default.nix +++ b/pkgs/development/libraries/wolfssl/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "wolfssl-${version}"; - version = "3.15.0"; + version = "3.15.3"; src = fetchFromGitHub { owner = "wolfSSL"; repo = "wolfssl"; rev = "v${version}-stable"; - sha256 = "1jqhq0dl2zxks7dm6g3dm1zvrl646ab073kgg8ypv19nkd5cvbdv"; + sha256 = "00mpq1z8j37a873dbk9knb835m3qlwqnd1rslirqkc44hpz1i64j"; }; outputs = [ "out" "dev" "doc" "lib" ]; diff --git a/pkgs/development/node-packages/composition-v10.nix b/pkgs/development/node-packages/composition-v10.nix new file mode 100644 index 00000000000..9f723a6da47 --- /dev/null +++ b/pkgs/development/node-packages/composition-v10.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.6.0. Do not edit! + +{pkgs ? import { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-10_x"}: + +let + nodeEnv = import ./node-env.nix { + inherit (pkgs) stdenv python2 utillinux runCommand writeTextFile; + inherit nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages-v10.nix { + inherit (pkgs) fetchurl fetchgit; + inherit nodeEnv; +} \ No newline at end of file diff --git a/pkgs/development/node-packages/default-v10.nix b/pkgs/development/node-packages/default-v10.nix new file mode 100644 index 00000000000..9bdba59b535 --- /dev/null +++ b/pkgs/development/node-packages/default-v10.nix @@ -0,0 +1,8 @@ +{pkgs, system, nodejs, stdenv}: + +let + nodePackages = import ./composition-v10.nix { + inherit pkgs system nodejs; + }; +in +nodePackages diff --git a/pkgs/development/node-packages/generate.sh b/pkgs/development/node-packages/generate.sh index c3aa741ef80..b34b024f6a2 100755 --- a/pkgs/development/node-packages/generate.sh +++ b/pkgs/development/node-packages/generate.sh @@ -4,3 +4,4 @@ rm -f node-env.nix node2nix -6 -i node-packages-v6.json -o node-packages-v6.nix -c composition-v6.nix node2nix -8 -i node-packages-v8.json -o node-packages-v8.nix -c composition-v8.nix +node2nix --nodejs-10 -i node-packages-v10.json -o node-packages-v10.nix -c composition-v10.nix diff --git a/pkgs/development/node-packages/node-packages-v10.json b/pkgs/development/node-packages/node-packages-v10.json new file mode 100644 index 00000000000..a298a6b9522 --- /dev/null +++ b/pkgs/development/node-packages/node-packages-v10.json @@ -0,0 +1,5 @@ +[ + "bower" +, "coffee-script" +, "grunt-cli" +] diff --git a/pkgs/development/node-packages/node-packages-v10.nix b/pkgs/development/node-packages/node-packages-v10.nix new file mode 100644 index 00000000000..45b69832043 --- /dev/null +++ b/pkgs/development/node-packages/node-packages-v10.nix @@ -0,0 +1,213 @@ +# This file has been generated by node2nix 1.6.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, globalBuildInputs ? []}: + +let + sources = { + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "findup-sync-0.3.0" = { + name = "findup-sync"; + packageName = "findup-sync"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/findup-sync/-/findup-sync-0.3.0.tgz"; + sha1 = "37930aa5d816b777c03445e1966cc6790a4c0b16"; + }; + }; + "glob-5.0.15" = { + name = "glob"; + packageName = "glob"; + version = "5.0.15"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz"; + sha1 = "1bc936b9e02f4a603fcc222ecf7633d30b8b93b1"; + }; + }; + "grunt-known-options-1.1.0" = { + name = "grunt-known-options"; + packageName = "grunt-known-options"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/grunt-known-options/-/grunt-known-options-1.1.0.tgz"; + sha1 = "a4274eeb32fa765da5a7a3b1712617ce3b144149"; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.3" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "nopt-3.0.6" = { + name = "nopt"; + packageName = "nopt"; + version = "3.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz"; + sha1 = "c6465dbf08abcd4db359317f79ac68a646b28ff9"; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "resolve-1.1.7" = { + name = "resolve"; + packageName = "resolve"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz"; + sha1 = "203114d82ad2c5ed9e8e0411b3932875e889e97b"; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + }; +in +{ + bower = nodeEnv.buildNodePackage { + name = "bower"; + packageName = "bower"; + version = "1.8.4"; + src = fetchurl { + url = "https://registry.npmjs.org/bower/-/bower-1.8.4.tgz"; + sha1 = "e7876a076deb8137f7d06525dc5e8c66db82f28a"; + }; + buildInputs = globalBuildInputs; + meta = { + description = "The browser package manager"; + homepage = http://bower.io/; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; + coffee-script = nodeEnv.buildNodePackage { + name = "coffee-script"; + packageName = "coffee-script"; + version = "1.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/coffee-script/-/coffee-script-1.12.7.tgz"; + sha512 = "fLeEhqwymYat/MpTPUjSKHVYYl0ec2mOyALEMLmzr5i1isuG+6jfI2j2d5oBO3VIzgUXgBVIcOT9uH1TFxBckw=="; + }; + buildInputs = globalBuildInputs; + meta = { + description = "Unfancy JavaScript"; + homepage = http://coffeescript.org/; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; + grunt-cli = nodeEnv.buildNodePackage { + name = "grunt-cli"; + packageName = "grunt-cli"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/grunt-cli/-/grunt-cli-1.2.0.tgz"; + sha1 = "562b119ebb069ddb464ace2845501be97b35b6a8"; + }; + dependencies = [ + sources."abbrev-1.1.1" + sources."balanced-match-1.0.0" + sources."brace-expansion-1.1.11" + sources."concat-map-0.0.1" + sources."findup-sync-0.3.0" + sources."glob-5.0.15" + sources."grunt-known-options-1.1.0" + sources."inflight-1.0.6" + sources."inherits-2.0.3" + sources."minimatch-3.0.4" + sources."nopt-3.0.6" + sources."once-1.4.0" + sources."path-is-absolute-1.0.1" + sources."resolve-1.1.7" + sources."wrappy-1.0.2" + ]; + buildInputs = globalBuildInputs; + meta = { + description = "The grunt command line interface"; + homepage = "https://github.com/gruntjs/grunt-cli#readme"; + license = "MIT"; + }; + production = true; + bypassCache = true; + }; +} \ No newline at end of file diff --git a/pkgs/development/python-modules/aioimaplib/default.nix b/pkgs/development/python-modules/aioimaplib/default.nix index d335cbc556c..59401269393 100644 --- a/pkgs/development/python-modules/aioimaplib/default.nix +++ b/pkgs/development/python-modules/aioimaplib/default.nix @@ -1,21 +1,24 @@ { lib, buildPythonPackage, fetchFromGitHub, pythonOlder -, nose, asynctest, mock, pytz, tzlocal, imaplib2, docutils }: +, nose, asynctest, mock, pytz, tzlocal, imaplib2, docutils, pyopenssl }: buildPythonPackage rec { pname = "aioimaplib"; - version = "0.7.13"; + version = "0.7.14"; # PyPI tarball doesn't ship tests src = fetchFromGitHub { owner = "bamthomas"; repo = pname; rev = version; - sha256 = "19yhk4ixfw46d0bvx6a40r23nvia5a83dzn5rzwaq1wdjr186bbn"; + sha256 = "150v3czh53sqakfqgjyj1w39mdfcxmpnrk2pbmq63jkq7r6njl0l"; }; - disbaled = pythonOlder "3.4"; + disabled = pythonOlder "3.4"; - checkInputs = [ nose asynctest mock pytz tzlocal imaplib2 docutils ]; + checkInputs = [ nose asynctest mock pytz tzlocal imaplib2 docutils pyopenssl ]; + + # https://github.com/bamthomas/aioimaplib/issues/35 + doCheck = false; meta = with lib; { description = "Python asyncio IMAP4rev1 client library"; diff --git a/pkgs/development/python-modules/asynctest/default.nix b/pkgs/development/python-modules/asynctest/default.nix index a0f408764a0..0004badd6f4 100644 --- a/pkgs/development/python-modules/asynctest/default.nix +++ b/pkgs/development/python-modules/asynctest/default.nix @@ -2,16 +2,13 @@ buildPythonPackage rec { pname = "asynctest"; - version = "0.12.0"; + version = "0.12.2"; disabled = pythonOlder "3.4"; - # PyPI tarball doesn't ship test/__init__.py - src = fetchFromGitHub { - owner = "Martiusweb"; - repo = pname; - rev = "v${version}"; - sha256 = "0rcb3kz2m0iwvgxpx2avfz9cqsd9xbaq93zykr2fki3ikmnp3vyg"; + src = fetchPypi { + inherit pname version; + sha256 = "77520850ae21620ec31738f4a7b467acaa44de6d3752d8ac7a9f4dcf55d77853"; }; postPatch = '' diff --git a/pkgs/development/python-modules/cysignals/default.nix b/pkgs/development/python-modules/cysignals/default.nix index 56d997c6b32..dc88c4d94f7 100644 --- a/pkgs/development/python-modules/cysignals/default.nix +++ b/pkgs/development/python-modules/cysignals/default.nix @@ -2,9 +2,11 @@ , fetchPypi , buildPythonPackage , cython -, sphinx +, pariSupport ? true, pari # for interfacing with the PARI/GP signal handler }: +assert pariSupport -> pari != null; + buildPythonPackage rec { pname = "cysignals"; version = "1.7.1"; @@ -14,6 +16,8 @@ buildPythonPackage rec { sha256 = "15nky8siwlc7s8v23vv4m0mnxa1z6jcs2qfr26m2mkw9j9g2na2j"; }; + # explicit check: + # build/src/cysignals/implementation.c:27:2: error: #error "cysignals must be compiled without _FORTIFY_SOURCE" hardeningDisable = [ "fortify" ]; @@ -26,6 +30,10 @@ buildPythonPackage rec { export PATH="$out/bin:$PATH" ''; + buildInputs = lib.optionals pariSupport [ + pari + ]; + propagatedBuildInputs = [ cython ]; diff --git a/pkgs/development/python-modules/django-allauth/default.nix b/pkgs/development/python-modules/django-allauth/default.nix index e49d8c6ff84..775660b8304 100644 --- a/pkgs/development/python-modules/django-allauth/default.nix +++ b/pkgs/development/python-modules/django-allauth/default.nix @@ -1,5 +1,5 @@ { stdenv, buildPythonPackage, fetchFromGitHub, requests, requests_oauthlib -, django, python-openid, mock, coverage }: +, django, python3-openid, mock, coverage }: buildPythonPackage rec { pname = "django-allauth"; @@ -13,7 +13,7 @@ buildPythonPackage rec { sha256 = "1c863cmd521j6cwpyd50jxz5y62fdschrhm15jfqihicyr9imjan"; }; - propagatedBuildInputs = [ requests requests_oauthlib django python-openid ]; + propagatedBuildInputs = [ requests requests_oauthlib django python3-openid ]; checkInputs = [ coverage mock ]; diff --git a/pkgs/development/python-modules/fido2/default.nix b/pkgs/development/python-modules/fido2/default.nix new file mode 100644 index 00000000000..3642d4e55b9 --- /dev/null +++ b/pkgs/development/python-modules/fido2/default.nix @@ -0,0 +1,23 @@ +{ lib, buildPythonPackage, fetchPypi, six, cryptography }: + +buildPythonPackage rec { + pname = "fido2"; + version = "0.3.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "0ddbhg4nsabi9w66l8vkr0i5r80jqihlic5yrdl3v1aqahvxph1j"; + }; + + # The pypi package does not include tests + # Check https://github.com/Yubico/python-fido2/pull/8 + doCheck = false; + + propagatedBuildInputs = [ six cryptography ]; + + meta = with lib; { + description = "Provides library functionality for FIDO 2.0, including communication with a device over USB."; + homepage = https://github.com/Yubico/python-fido2; + license = licenses.mpl20; + }; +} diff --git a/pkgs/development/python-modules/flask-autoindex/default.nix b/pkgs/development/python-modules/flask-autoindex/default.nix index 95e457de81d..f36d7fbca1c 100644 --- a/pkgs/development/python-modules/flask-autoindex/default.nix +++ b/pkgs/development/python-modules/flask-autoindex/default.nix @@ -1,7 +1,6 @@ { stdenv , buildPythonPackage -, fetchpatch -, fetchPypi +, fetchFromGitHub , flask , flask-silk , future @@ -9,11 +8,16 @@ buildPythonPackage rec { pname = "Flask-AutoIndex"; - version = "0.6"; + version = "2018-06-28"; - src = fetchPypi { - inherit pname version; - sha256 = "19b10mb1nrqfjyafki6wnrbn8mqi30bbyyiyvp5xssc74pciyfqs"; + # master fixes various issues (binary generation, flask syntax) and has no + # major changes + # new release requested: https://github.com/sublee/flask-autoindex/issues/38 + src = fetchFromGitHub { + owner = "sublee"; + repo = "flask-autoindex"; + rev = "e3d449a89d56bf4c171c7c8d90af028e579782cf"; + sha256 = "0bwq2nid4h8vrxspggk064vra4wd804cl2ryyx4j2d1dyywmgjgy"; }; propagatedBuildInputs = [ @@ -22,15 +26,6 @@ buildPythonPackage rec { future ]; - patches = [ - # fix generated binary, see https://github.com/sublee/flask-autoindex/pull/32 - (fetchpatch { - name = "fix_binary.patch"; - url = "https://github.com/sublee/flask-autoindex/pull/32.patch"; - sha256 = "1v2r0wvi7prhipjq89774svv6aqj0a13mdfj07pdlkpzfbf029dn"; - }) - ]; - meta = with stdenv.lib; { description = "The mod_autoindex for Flask"; longDescription = '' diff --git a/pkgs/development/python-modules/flask-silk/default.nix b/pkgs/development/python-modules/flask-silk/default.nix index e494f22a476..edc873458a1 100644 --- a/pkgs/development/python-modules/flask-silk/default.nix +++ b/pkgs/development/python-modules/flask-silk/default.nix @@ -1,16 +1,20 @@ { stdenv , buildPythonPackage -, fetchPypi +, fetchFromGitHub , flask }: buildPythonPackage rec { pname = "Flask-Silk"; - version = "0.2"; + version = "2018-06-28"; - src = fetchPypi { - inherit pname version; - sha256 = "1gjzighx4f0w39sq9xvzr1kwb4y7yv9qrgzvli1p89gy16piz8l0"; + # master fixes flask import syntax and has no major changes + # new release requested: https://github.com/sublee/flask-silk/pull/6 + src = fetchFromGitHub { + owner = "sublee"; + repo = "flask-silk"; + rev = "3a8166550f9a0ec52edae7bf31d9818c4c15c531"; + sha256 = "0mplziqw52jfspas6vsm210lmxqqzgj0dxm8y0i3gpbyyykwcmh0"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/langcodes/default.nix b/pkgs/development/python-modules/langcodes/default.nix index d1d25f5407c..d73940e56a6 100644 --- a/pkgs/development/python-modules/langcodes/default.nix +++ b/pkgs/development/python-modules/langcodes/default.nix @@ -27,7 +27,7 @@ buildPythonPackage rec { meta = with lib; { description = "A toolkit for working with and comparing the standardized codes for languages, such as ‘en’ for English or ‘es’ for Spanish"; - homepage = http://github.com/LuminosoInsight/langcodes; + homepage = https://github.com/LuminosoInsight/langcodes; license = licenses.mit; maintainers = with maintainers; [ ixxie ]; }; diff --git a/pkgs/development/python-modules/lxml/default.nix b/pkgs/development/python-modules/lxml/default.nix index 9fd050ac35e..8b321b911cc 100644 --- a/pkgs/development/python-modules/lxml/default.nix +++ b/pkgs/development/python-modules/lxml/default.nix @@ -20,8 +20,8 @@ buildPythonPackage rec { meta = { description = "Pythonic binding for the libxml2 and libxslt libraries"; - homepage = http://lxml.de; + homepage = https://lxml.de; license = stdenv.lib.licenses.bsd3; maintainers = with stdenv.lib.maintainers; [ sjourdois ]; }; -} \ No newline at end of file +} diff --git a/pkgs/development/python-modules/pendulum/default.nix b/pkgs/development/python-modules/pendulum/default.nix index 58193590308..5368a4f878e 100644 --- a/pkgs/development/python-modules/pendulum/default.nix +++ b/pkgs/development/python-modules/pendulum/default.nix @@ -1,4 +1,5 @@ -{ stdenv, fetchPypi, buildPythonPackage, dateutil, pytzdata, tzlocal }: +{ lib, fetchPypi, buildPythonPackage, pythonOlder +, dateutil, pytzdata, typing }: buildPythonPackage rec { pname = "pendulum"; @@ -9,12 +10,12 @@ buildPythonPackage rec { sha256 = "544e44d8a92954e5ef4db4fa8b662d3282f2ac7b7c2cbf4227dc193ba78b9e1e"; }; - propagatedBuildInputs = [ dateutil pytzdata tzlocal ]; + propagatedBuildInputs = [ dateutil pytzdata ] ++ lib.optional (pythonOlder "3.5") typing; # No tests doCheck = false; - meta = with stdenv.lib; { + meta = with lib; { description = "Python datetimes made easy"; homepage = https://github.com/sdispater/pendulum; license = licenses.mit; diff --git a/pkgs/development/python-modules/pybrowserid/default.nix b/pkgs/development/python-modules/pybrowserid/default.nix new file mode 100644 index 00000000000..946fb1a054f --- /dev/null +++ b/pkgs/development/python-modules/pybrowserid/default.nix @@ -0,0 +1,24 @@ +{ stdenv, buildPythonPackage, fetchPypi +, requests, mock }: + +buildPythonPackage rec { + pname = "PyBrowserID"; + version = "0.14.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "1qvi79kfb8x9kxkm5lw2mp42hm82cpps1xknmsb5ghkwx1lpc8kc"; + }; + + propagatedBuildInputs = [ requests ]; + + checkInputs = [ mock ]; + + meta = with stdenv.lib; { + description = "Python library for the BrowserID Protocol"; + homepage = https://github.com/mozilla/PyBrowserID; + license = licenses.mpl20; + maintainers = with maintainers; [ worldofpeace ]; + }; +} + diff --git a/pkgs/development/python-modules/pymc3/default.nix b/pkgs/development/python-modules/pymc3/default.nix index 015233fba8e..a0dd6113b75 100644 --- a/pkgs/development/python-modules/pymc3/default.nix +++ b/pkgs/development/python-modules/pymc3/default.nix @@ -57,7 +57,7 @@ buildPythonPackage rec { meta = { description = "Bayesian estimation, particularly using Markov chain Monte Carlo (MCMC)"; - homepage = http://github.com/pymc-devs/pymc3; + homepage = https://github.com/pymc-devs/pymc3; license = lib.licenses.asl20; maintainers = with lib.maintainers; [ ilya-kolpakov ]; }; diff --git a/pkgs/development/python-modules/pytest-httpbin/default.nix b/pkgs/development/python-modules/pytest-httpbin/default.nix index cfa24fdfe52..e0be487e86d 100644 --- a/pkgs/development/python-modules/pytest-httpbin/default.nix +++ b/pkgs/development/python-modules/pytest-httpbin/default.nix @@ -28,6 +28,9 @@ buildPythonPackage rec { py.test ''; + # https://github.com/kevin1024/pytest-httpbin/pull/51 + doCheck = false; + meta = { description = "Easily test your HTTP library against a local copy of httpbin.org"; homepage = https://github.com/kevin1024/pytest-httpbin; diff --git a/pkgs/development/python-modules/python-openid/default.nix b/pkgs/development/python-modules/python-openid/default.nix deleted file mode 100644 index b70d9a1f082..00000000000 --- a/pkgs/development/python-modules/python-openid/default.nix +++ /dev/null @@ -1,19 +0,0 @@ -{ stdenv, buildPythonPackage, fetchPypi }: - -buildPythonPackage rec { - pname = "python-openid"; - version = "2.2.5"; - - src = fetchPypi { - inherit pname version; - sha256 = "1vvhxlghjan01snfdc4k7ykd80vkyjgizwgg9bncnin8rqz1ricj"; - }; - - doCheck = false; - - meta = with stdenv.lib; { - description = "OpenID support for modern servers and consumers"; - homepage = https://github.com/openid/python-openid; - license = licenses.asl20; - }; -} diff --git a/pkgs/development/python-modules/python3-openid/default.nix b/pkgs/development/python-modules/python3-openid/default.nix index 77181fa4ae5..d0b10c42d01 100644 --- a/pkgs/development/python-modules/python3-openid/default.nix +++ b/pkgs/development/python-modules/python3-openid/default.nix @@ -1,4 +1,4 @@ -{ stdenv, buildPythonPackage, fetchPypi, defusedxml }: +{ stdenv, isPy3k, buildPythonPackage, fetchPypi, defusedxml }: buildPythonPackage rec { pname = "python3-openid"; @@ -13,9 +13,11 @@ buildPythonPackage rec { doCheck = false; + disabled = !isPy3k; + meta = with stdenv.lib; { description = "OpenID support for modern servers and consumers"; - homepage = http://github.com/necaris/python3-openid; + homepage = https://github.com/necaris/python3-openid; license = licenses.asl20; }; } diff --git a/pkgs/development/python-modules/soco/default.nix b/pkgs/development/python-modules/soco/default.nix new file mode 100644 index 00000000000..152a61bbf1d --- /dev/null +++ b/pkgs/development/python-modules/soco/default.nix @@ -0,0 +1,28 @@ +{ lib, buildPythonPackage, fetchPypi, xmltodict, requests + +# Test dependencies +, pytest, pytestcov, coveralls, pylint, flake8, graphviz, mock, sphinx +, sphinx_rtd_theme +}: + +buildPythonPackage rec { + pname = "soco"; + version = "0.15"; + + src = fetchPypi { + inherit pname version; + sha256 = "18bxpbd7l9gns0jpvx09z023kbbz7b6i4f99i8silsb1jv682kg0"; + }; + + propagatedBuildInputs = [ xmltodict requests ]; + checkInputs = [ + pytest pytestcov coveralls pylint flake8 graphviz mock sphinx + sphinx_rtd_theme + ]; + + meta = { + homepage = http://python-soco.com/; + description = "A CLI and library to control Sonos speakers"; + license = lib.licenses.mit; + }; +} diff --git a/pkgs/development/python-modules/sympy/default.nix b/pkgs/development/python-modules/sympy/default.nix index 67c799e554e..f41f2e7b4fa 100644 --- a/pkgs/development/python-modules/sympy/default.nix +++ b/pkgs/development/python-modules/sympy/default.nix @@ -1,6 +1,7 @@ { lib , buildPythonPackage , fetchPypi +, fetchpatch , glibcLocales , mpmath }: @@ -25,10 +26,26 @@ buildPythonPackage rec { export LANG="en_US.UTF-8" ''; + patches = [ + # see https://trac.sagemath.org/ticket/20204 and https://github.com/sympy/sympy/issues/12825 + # There is also an upstream patch for this, included in the next release (PR #128826). + # However that doesn't quite fix the issue yet. Apparently some changes by sage are required. + # TODO re-evaluate the change once a new sympy version is released (open a sage trac ticket about + # it). + (fetchpatch { + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/sympy/patches/03_undeffun_sage.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "1mh2va1rlgizgvx8yzqwgvbf5wvswarn511002b361mc8yy0bnhr"; + }) + (fetchpatch { + url = "https://github.com/sympy/sympy/pull/13276.patch"; + sha256 = "1rz74b5c74vwh3pj9axxgh610i02l3555vvsvr4a15ya7siw7zxh"; + }) + ]; + meta = { description = "A Python library for symbolic mathematics"; homepage = http://www.sympy.org/; license = lib.licenses.bsd3; maintainers = with lib.maintainers; [ lovek323 ]; }; -} \ No newline at end of file +} diff --git a/pkgs/development/python-modules/twisted/default.nix b/pkgs/development/python-modules/twisted/default.nix index 6d72e234ddc..14ccac5690b 100644 --- a/pkgs/development/python-modules/twisted/default.nix +++ b/pkgs/development/python-modules/twisted/default.nix @@ -17,6 +17,7 @@ buildPythonPackage rec { src = fetchPypi { inherit pname version; + extension = "tar.bz2"; sha256 = "a4cc164a781859c74de47f17f0e85f4bce8a3321a9d0892c015c8f80c4158ad9"; }; diff --git a/pkgs/development/tools/analysis/checkstyle/default.nix b/pkgs/development/tools/analysis/checkstyle/default.nix index da60b77934b..34b9e53f6e4 100644 --- a/pkgs/development/tools/analysis/checkstyle/default.nix +++ b/pkgs/development/tools/analysis/checkstyle/default.nix @@ -1,17 +1,19 @@ { stdenv, fetchurl }: stdenv.mkDerivation rec { - version = "8.10.1"; + version = "8.11"; name = "checkstyle-${version}"; src = fetchurl { - url = "mirror://sourceforge/checkstyle/${name}-bin.tar.gz"; - sha256 = "18i1a6v9dg08in68g584y7bhf76g59pp8lyixqc3v6wgj3ksv8q9"; + url = "https://github.com/checkstyle/checkstyle/releases/download/checkstyle-${version}/checkstyle-${version}-all.jar"; + sha256 = "13x4m4rn7rix64baclcm2jqbizkj38njif2ba0ycmvyjm62smfwv"; }; + phases = [ "installPhase" ]; + installPhase = '' mkdir -p $out/checkstyle - cp -R * $out/checkstyle + cp $src $out/checkstyle/checkstyle-all.jar ''; meta = with stdenv.lib; { diff --git a/pkgs/development/tools/analysis/pmd/default.nix b/pkgs/development/tools/analysis/pmd/default.nix index e738d30543e..78dd5778962 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.4.0"; + version = "6.5.0"; buildInputs = [ unzip ]; src = fetchurl { url = "mirror://sourceforge/pmd/pmd-bin-${version}.zip"; - sha256 = "17yjjmqcn1fy3bj73nh5i84yc7wappza612a0iwg0lqqn4yl7lyn"; + sha256 = "10jdgps1ikx75ljp2gi76ff7payg28pmiy5y3vp17gg47mv991aw"; }; installPhase = '' diff --git a/pkgs/development/tools/build-managers/icmake/default.nix b/pkgs/development/tools/build-managers/icmake/default.nix index 2f4daa2edc8..c5ab3fafc5e 100644 --- a/pkgs/development/tools/build-managers/icmake/default.nix +++ b/pkgs/development/tools/build-managers/icmake/default.nix @@ -1,11 +1,11 @@ -{ stdenv, fetchFromGitHub, makeWrapper, gcc, ncurses }: +{ stdenv, fetchFromGitLab, makeWrapper, gcc, ncurses }: stdenv.mkDerivation rec { name = "icmake-${version}"; - version = "9.02.07"; + version = "9.02.08"; - src = fetchFromGitHub { - sha256 = "1q3rwri5s1sqm4h75bahkjnlym4bk2ygg4fb75yrniwnj8rhdp12"; + src = fetchFromGitLab { + sha256 = "1pr5lagmdls3clzwa2xwcfa3k5750rf7i0j3zld0xirb41zx07q2"; rev = version; repo = "icmake"; owner = "fbb-git"; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A program maintenance (make) utility using a C-like grammar"; - homepage = https://fbb-git.github.io/icmake/; + homepage = https://fbb-git.gitlab.io/icmake/; license = licenses.gpl3; maintainers = with maintainers; [ pSub ]; platforms = platforms.linux; diff --git a/pkgs/development/tools/misc/dialog/default.nix b/pkgs/development/tools/misc/dialog/default.nix index 8c236597484..82b224b37f4 100644 --- a/pkgs/development/tools/misc/dialog/default.nix +++ b/pkgs/development/tools/misc/dialog/default.nix @@ -13,14 +13,14 @@ assert unicodeSupport -> ncurses.unicode && ncurses != null; stdenv.mkDerivation rec { name = "dialog-${version}"; - version = "1.3-20171209"; + version = "1.3-20180621"; src = fetchurl { urls = [ "ftp://ftp.invisible-island.net/dialog/${name}.tgz" "https://invisible-mirror.net/archives/dialog/${name}.tgz" ]; - sha256 = "1rk72as52f5br3wcr74d00wib41w65g8wvi36mfgybly251984r0"; + sha256 = "0yjqczlf64yppgvk4i6s0jm06mdr0mb5m6sj39nf891dnbi5jj2a"; }; buildInputs = [ ncurses ]; diff --git a/pkgs/development/tools/misc/epm/default.nix b/pkgs/development/tools/misc/epm/default.nix index 8d2e6785900..f58d0659965 100644 --- a/pkgs/development/tools/misc/epm/default.nix +++ b/pkgs/development/tools/misc/epm/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "The ESP Package Manager generates distribution archives for a variety of platforms"; - homepage = http://www.msweet.org/projects.php?Z2; + homepage = https://www.msweet.org/projects.php?Z2; license = licenses.gpl2; maintainers = with maintainers; [ pSub ]; platforms = platforms.unix; diff --git a/pkgs/development/tools/misc/fswatch/default.nix b/pkgs/development/tools/misc/fswatch/default.nix index 9c0c357e186..4d8a9b05847 100644 --- a/pkgs/development/tools/misc/fswatch/default.nix +++ b/pkgs/development/tools/misc/fswatch/default.nix @@ -10,13 +10,13 @@ stdenv.mkDerivation rec { name = "fswatch-${version}"; - version = "1.11.3"; + version = "1.12.0"; src = fetchFromGitHub { owner = "emcrisostomo"; repo = "fswatch"; rev = version; - sha256 = "1w83bpgx0wsgn70jyxwrvh9dsivrq41ifcignjzdxdwz9j0rwhh1"; + sha256 = "16f3g6s79gs1sp2ra3cka4c5mf5b557cx697bwcdfgj6r19ni5j7"; }; nativeBuildInputs = [ autoreconfHook ]; diff --git a/pkgs/development/tools/misc/yodl/default.nix b/pkgs/development/tools/misc/yodl/default.nix index 1f5ead84677..76130f255fd 100644 --- a/pkgs/development/tools/misc/yodl/default.nix +++ b/pkgs/development/tools/misc/yodl/default.nix @@ -1,15 +1,15 @@ -{ stdenv, fetchFromGitHub, perl, icmake, utillinux }: +{ stdenv, fetchFromGitLab, perl, icmake, utillinux }: stdenv.mkDerivation rec { name = "yodl-${version}"; - version = "4.02.00"; + version = "4.02.01"; nativeBuildInputs = [ icmake ]; buildInputs = [ perl ]; - src = fetchFromGitHub { - sha256 = "08i3q3h581kxr5v7wi114bng66pwwsjs5qj3ywnnrr7ra1h5rzwa"; + src = fetchFromGitLab { + sha256 = "0m8idd8m3z27rix55avchm21sd2spcxgrdf63w65zpvnywq0ydax"; rev = version; repo = "yodl"; owner = "fbb-git"; @@ -44,7 +44,7 @@ stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "A package that implements a pre-document language and tools to process it"; - homepage = https://fbb-git.github.io/yodl/; + homepage = https://fbb-git.gitlab.io/yodl/; license = licenses.gpl3; maintainers = with maintainers; [ pSub ]; platforms = platforms.linux; diff --git a/pkgs/games/nethack/default.nix b/pkgs/games/nethack/default.nix index 1ad7565f450..eed38592236 100644 --- a/pkgs/games/nethack/default.nix +++ b/pkgs/games/nethack/default.nix @@ -1,11 +1,14 @@ -{ stdenv, lib, fetchurl, writeScript, coreutils, ncurses, gzip, flex, bison, less }: +{ stdenv, lib, fetchurl, writeScript, coreutils, ncurses, gzip, flex, bison, less +, x11Mode ? false, libXaw, libXext, mkfontdir +}: let platform = if stdenv.hostPlatform.isUnix then "unix" else throw "Unknown platform for NetHack: ${stdenv.system}"; unixHint = - /**/ if stdenv.hostPlatform.isLinux then "linux" + if x11Mode then "linux-x11" + else if stdenv.hostPlatform.isLinux then "linux" else if stdenv.hostPlatform.isDarwin then "macosx10.10" # We probably want something different for Darwin else "unix"; @@ -13,16 +16,16 @@ let binPath = lib.makeBinPath [ coreutils less ]; in stdenv.mkDerivation { - name = "nethack-3.6.1"; + name = "nethack${lib.optionalString x11Mode "-x11"}-3.6.1"; src = fetchurl { url = "https://nethack.org/download/3.6.1/nethack-361-src.tgz"; sha256 = "1dha0ijvxhx7c9hr0452h93x81iiqsll8bc9msdnp7xdqcfbz32b"; }; - buildInputs = [ ncurses ]; + buildInputs = [ ncurses ] ++ lib.optionals x11Mode [ libXaw libXext ]; - nativeBuildInputs = [ flex bison ]; + nativeBuildInputs = [ flex bison ] ++ lib.optionals x11Mode [ mkfontdir ]; makeFlags = [ "PREFIX=$(out)" ]; @@ -86,13 +89,14 @@ in stdenv.mkDerivation { $out/games/nethack EOF chmod +x $out/bin/nethack + ${lib.optionalString x11Mode "mv $out/bin/nethack $out/bin/nethack-x11"} ''; meta = with stdenv.lib; { description = "Rogue-like game"; homepage = http://nethack.org/; license = "nethack"; - platforms = platforms.unix; + platforms = if x11Mode then platforms.linux else platforms.unix; maintainers = with maintainers; [ abbradar ]; }; } diff --git a/pkgs/os-specific/linux/iwd/default.nix b/pkgs/os-specific/linux/iwd/default.nix index 792c7bcb084..de9787a0fa7 100644 --- a/pkgs/os-specific/linux/iwd/default.nix +++ b/pkgs/os-specific/linux/iwd/default.nix @@ -3,17 +3,17 @@ let ell = fetchgit { url = https://git.kernel.org/pub/scm/libs/ell/ell.git; - rev = "0.5"; - sha256 = "0xw53bigh99nhacjb67qs1g145fwls7065l8vsrziwzpkyd5s6a8"; + rev = "0.6"; + sha256 = "0cs0a7rjg9gl9gn9sc3b1y8mv2zbjg7rb87mla6kcrknjci76pgm"; }; in stdenv.mkDerivation rec { name = "iwd-${version}"; - version = "0.2"; + version = "0.3"; src = fetchgit { url = https://git.kernel.org/pub/scm/network/wireless/iwd.git; rev = version; - sha256 = "0khc017s27n6y6c6wbqhmcghzggnagxbi8j36hl5g73y6s44vx42"; + sha256 = "151bqc85vchl1arhl9pyvfashxq886cjrbi6js4csx4vzscbhzzm"; }; nativeBuildInputs = [ @@ -35,6 +35,7 @@ in stdenv.mkDerivation rec { configureFlags = [ "--with-dbus-datadir=$(out)/etc/" + "--localstatedir=/var" "--disable-systemd-service" ]; diff --git a/pkgs/os-specific/linux/kernel/common-config.nix b/pkgs/os-specific/linux/kernel/common-config.nix index 93732f1c6f8..100ac73d881 100644 --- a/pkgs/os-specific/linux/kernel/common-config.nix +++ b/pkgs/os-specific/linux/kernel/common-config.nix @@ -1,726 +1,682 @@ -/* +# WARNING/NOTE: whenever you want to add an option here you need to either +# * mark it as an optional one with `option`, +# * or make sure it works for all the versions in nixpkgs, +# * or check for which kernel versions it will work (using kernel +# changelog, google or whatever) and mark it with `whenOlder` or +# `whenAtLeast`. +# Then do test your change by building all the kernels (or at least +# their configs) in Nixpkgs or else you will guarantee lots and lots +# of pain to users trying to switch to an older kernel because of some +# hardware problems with a new one. - WARNING/NOTE: whenever you want to add an option here you need to - either +# Configuration +{ stdenv, version - * mark it as an optional one with `?` suffix, - * or make sure it works for all the versions in nixpkgs, - * or check for which kernel versions it will work (using kernel - changelog, google or whatever) and mark it with `versionOlder` or - `versionAtLeast`. +# to let user override values, aka converting modules to included and vice-versa +, mkValueOverride ? null - Then do test your change by building all the kernels (or at least - their configs) in Nixpkgs or else you will guarantee lots and lots - of pain to users trying to switch to an older kernel because of some - hardware problems with a new one. +# new extraConfig as a flattened set +, structuredExtraConfig ? {} -*/ +# legacy extraConfig as string +, extraConfig ? "" -{ stdenv, version, extraConfig, features }: +, features ? { grsecurity = false; xen_dom0 = false; } +}: + +assert (mkValueOverride == null) || (builtins.isFunction mkValueOverride); with stdenv.lib; -'' - # Compress kernel modules for a sizable disk space savings. - ${optionalString (versionAtLeast version "3.18") '' - MODULE_COMPRESS y - MODULE_COMPRESS_XZ y - ''} +with import ../../../../lib/kernel.nix { inherit (stdenv) lib; inherit version; }; - KERNEL_XZ y +let - # Debugging. - DEBUG_KERNEL y - DYNAMIC_DEBUG y - DEBUG_DEVRES n - DEBUG_STACK_USAGE n - DEBUG_STACKOVERFLOW n - SCHEDSTATS n - DETECT_HUNG_TASK y + # configuration items have to be part of a subattrs + flattenKConf = nested: mapAttrs (_: head) (zipAttrs (attrValues nested)); - ${if (features.debug or false) then '' - DEBUG_INFO y - '' else '' - DEBUG_INFO n - ''} + options = { - ${optionalString (versionOlder version "4.4") '' - CPU_NOTIFIER_ERROR_INJECT? n - ''} + debug = { + DEBUG_INFO = if (features.debug or false) then yes else no; + DEBUG_KERNEL = yes; + DEBUG_DEVRES = no; + DYNAMIC_DEBUG = yes; + TIMER_STATS = whenOlder "4.11" yes; + DEBUG_NX_TEST = whenOlder "4.11" no; + CPU_NOTIFIER_ERROR_INJECT = whenOlder "4.4" (option no); + DEBUG_STACK_USAGE = no; + DEBUG_STACKOVERFLOW = when (!features.grsecurity) no; + RCU_TORTURE_TEST = no; + SCHEDSTATS = no; + DETECT_HUNG_TASK = yes; + CRASH_DUMP = option no; + # Easier debugging of NFS issues. + SUNRPC_DEBUG = yes; + }; - ${optionalString (versionOlder version "4.11") '' - TIMER_STATS y - DEBUG_NX_TEST n - ''} + power-management = { + PM_ADVANCED_DEBUG = yes; + X86_INTEL_LPSS = yes; + X86_INTEL_PSTATE = yes; + INTEL_IDLE = yes; + CPU_FREQ_DEFAULT_GOV_PERFORMANCE = yes; + PM_WAKELOCKS = yes; + }; - # Bump the maximum number of CPUs to support systems like EC2 x1.* - # instances and Xeon Phi. - ${optionalString (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") '' - NR_CPUS 384 - ''} + external-firmware = { + # Support drivers that need external firmware. + STANDALONE = no; + }; - # Unix domain sockets. - UNIX y + proc-config-gz = { + # Make /proc/config.gz available + IKCONFIG = yes; + IKCONFIG_PROC = yes; + }; - # Power management. - ${optionalString (versionOlder version "3.19") '' - PM_RUNTIME y - ''} - PM_ADVANCED_DEBUG y - ${optionalString (versionAtLeast version "3.11") '' - X86_INTEL_LPSS y - ''} - ${optionalString (versionAtLeast version "3.10") '' - X86_INTEL_PSTATE y - ''} - INTEL_IDLE y - CPU_FREQ_DEFAULT_GOV_PERFORMANCE y - ${optionalString (versionOlder version "3.10") '' - USB_SUSPEND y - ''} - PM_WAKELOCKS y + optimization = { + # Optimize with -O2, not -Os + CC_OPTIMIZE_FOR_SIZE = no; + }; - # Support drivers that need external firmware. - STANDALONE n + memtest = { + MEMTEST = yes; + }; - # Make /proc/config.gz available. - IKCONFIG y - IKCONFIG_PROC y + # Include the CFQ I/O scheduler in the kernel, rather than as a + # module, so that the initrd gets a good I/O scheduler. + scheduler = { + IOSCHED_CFQ = yes; + BLK_CGROUP = yes; # required by CFQ" + IOSCHED_DEADLINE = yes; + MQ_IOSCHED_DEADLINE = whenAtLeast "4.11" yes; + BFQ_GROUP_IOSCHED = whenAtLeast "4.12" yes; + MQ_IOSCHED_KYBER = whenAtLeast "4.12" yes; + IOSCHED_BFQ = whenAtLeast "4.12" module; + }; - # Optimize with -O2, not -Os. - CC_OPTIMIZE_FOR_SIZE n + # Enable NUMA. + numa = { + NUMA = option yes; + }; - # Enable the kernel's built-in memory tester. - MEMTEST y + networking = { + NET = yes; + IP_PNP = no; + NETFILTER = yes; + NETFILTER_ADVANCED = yes; + IP_VS_PROTO_TCP = yes; + IP_VS_PROTO_UDP = yes; + IP_VS_PROTO_ESP = yes; + IP_VS_PROTO_AH = yes; + IP_DCCP_CCID3 = no; # experimental + CLS_U32_PERF = yes; + CLS_U32_MARK = yes; + BPF_JIT = when (stdenv.system == "x86_64-linux") yes; + WAN = yes; + # Required by systemd per-cgroup firewalling + CGROUP_BPF = option yes; + CGROUP_NET_PRIO = yes; # Required by systemd + IP_ROUTE_VERBOSE = yes; + IP_MROUTE_MULTIPLE_TABLES = yes; + IP_MULTICAST = yes; + IPV6_ROUTER_PREF = yes; + IPV6_ROUTE_INFO = yes; + IPV6_OPTIMISTIC_DAD = yes; + IPV6_MULTIPLE_TABLES = yes; + IPV6_SUBTREES = yes; + IPV6_MROUTE = yes; + IPV6_MROUTE_MULTIPLE_TABLES = yes; + IPV6_PIMSM_V2 = yes; + IPV6_FOU_TUNNEL = whenAtLeast "4.7" module; + NET_CLS_BPF = whenAtLeast "4.4" module; + NET_ACT_BPF = whenAtLeast "4.4" module; + L2TP_V3 = yes; + L2TP_IP = module; + L2TP_ETH = module; + BRIDGE_VLAN_FILTERING = yes; + BONDING = module; + NET_L3_MASTER_DEV = option yes; + NET_FOU_IP_TUNNELS = option yes; + IP_NF_TARGET_REDIRECT = module; - # Include the CFQ I/O scheduler in the kernel, rather than as a - # module, so that the initrd gets a good I/O scheduler. - IOSCHED_CFQ y - BLK_CGROUP y # required by CFQ - IOSCHED_DEADLINE y - ${optionalString (versionAtLeast version "4.11") '' - MQ_IOSCHED_DEADLINE y - ''} - ${optionalString (versionAtLeast version "4.12") '' - BFQ_GROUP_IOSCHED y - MQ_IOSCHED_KYBER y - IOSCHED_BFQ m - ''} + PPP_MULTILINK = yes; # PPP multilink support + PPP_FILTER = yes; - # Enable NUMA. - NUMA? y + # needed for iwd WPS support (wpa_supplicant replacement) + KEY_DH_OPERATIONS = whenAtLeast "4.7" yes; + }; - # Disable some expensive (?) features. - PM_TRACE_RTC n + wireless = { + CFG80211_WEXT = option yes; # Without it, ipw2200 drivers don't build + IPW2100_MONITOR = option yes; # support promiscuous mode + IPW2200_MONITOR = option yes; # support promiscuous mode + HOSTAP_FIRMWARE = option yes; # Support downloading firmware images with Host AP driver + HOSTAP_FIRMWARE_NVRAM = option yes; + ATH9K_PCI = option yes; # Detect Atheros AR9xxx cards on PCI(e) bus + ATH9K_AHB = option yes; # Ditto, AHB bus + B43_PHY_HT = option yes; + BCMA_HOST_PCI = option yes; + }; - # Enable initrd support. - BLK_DEV_RAM y - BLK_DEV_INITRD y + fb = { + FB = yes; + FB_EFI = yes; + FB_NVIDIA_I2C = yes; # Enable DDC Support + FB_RIVA_I2C = yes; + FB_ATY_CT = yes; # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support + FB_ATY_GX = yes; # Mach64 GX support + FB_SAVAGE_I2C = yes; + FB_SAVAGE_ACCEL = yes; + FB_SIS_300 = yes; + FB_SIS_315 = yes; + FB_3DFX_ACCEL = yes; + FB_VESA = yes; + FRAMEBUFFER_CONSOLE = yes; + FRAMEBUFFER_CONSOLE_ROTATION = yes; + FB_GEODE = when (stdenv.system == "i686-linux") yes; + }; - # Enable various subsystems. - ACCESSIBILITY y # Accessibility support - AUXDISPLAY y # Auxiliary Display support - HIPPI y - MTD_COMPLEX_MAPPINGS y # needed for many devices - SCSI_LOWLEVEL y # enable lots of SCSI devices - SCSI_LOWLEVEL_PCMCIA y - SCSI_SAS_ATA y # added to enable detection of hard drive - SPI y # needed for many devices - SPI_MASTER y - WAN y - ${optionalString (versionOlder version "4.17") '' - DONGLE y # Serial dongle support - ''} + video = { + # Enable KMS for devices whose X.org driver supports it + DRM_I915_KMS = whenOlder "4.3" yes; + # Allow specifying custom EDID on the kernel command line + DRM_LOAD_EDID_FIRMWARE = yes; + VGA_SWITCHEROO = yes; # Hybrid graphics support + DRM_GMA600 = yes; + DRM_GMA3600 = yes; + # necessary for amdgpu polaris support + DRM_AMD_POWERPLAY = whenBetween "4.5" "4.9" yes; + # (experimental) amdgpu support for verde and newer chipsets + DRM_AMDGPU_SI = whenAtLeast "4.9" yes; + # (stable) amdgpu support for bonaire and newer chipsets + DRM_AMDGPU_CIK = whenAtLeast "4.9" yes; + } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux") { + # Intel GVT-g graphics virtualization supports 64-bit only + DRM_I915_GVT = whenAtLeast "4.16" yes; + DRM_I915_GVT_KVMGT = whenAtLeast "4.16" module; + }; - # Networking options. - NET y - IP_PNP n - ${optionalString (versionOlder version "3.13") '' - IPV6_PRIVACY y - ''} - NETFILTER y - NETFILTER_ADVANCED y - CGROUP_BPF? y # Required by systemd per-cgroup firewalling - CGROUP_NET_PRIO y # Required by systemd - IP_ROUTE_VERBOSE y - IP_MROUTE_MULTIPLE_TABLES y - IP_VS_PROTO_TCP y - IP_VS_PROTO_UDP y - IP_VS_PROTO_ESP y - IP_VS_PROTO_AH y - IP_DCCP_CCID3 n # experimental - IP_MULTICAST y - IPV6_ROUTER_PREF y - IPV6_ROUTE_INFO y - IPV6_OPTIMISTIC_DAD y - IPV6_MULTIPLE_TABLES y - IPV6_SUBTREES y - IPV6_MROUTE y - IPV6_MROUTE_MULTIPLE_TABLES y - IPV6_PIMSM_V2 y - ${optionalString (versionAtLeast version "4.7") '' - IPV6_FOU_TUNNEL m - ''} - CLS_U32_PERF y - CLS_U32_MARK y - ${optionalString (stdenv.system == "x86_64-linux") '' - BPF_JIT y - ''} - ${optionalString (versionAtLeast version "4.4") '' - NET_CLS_BPF m - NET_ACT_BPF m - ''} - L2TP_V3 y - L2TP_IP m - L2TP_ETH m - BRIDGE_VLAN_FILTERING y - BONDING m - NET_L3_MASTER_DEV? y - NET_FOU_IP_TUNNELS? y - IP_NF_TARGET_REDIRECT m + sound = { + SND_DYNAMIC_MINORS = yes; + SND_AC97_POWER_SAVE = yes; # AC97 Power-Saving Mode + SND_HDA_INPUT_BEEP = yes; # Support digital beep via input layer + SND_HDA_RECONFIG = yes; # Support reconfiguration of jack functions + # Support configuring jack functions via fw mechanism at boot + SND_HDA_PATCH_LOADER = yes; + SND_USB_CAIAQ_INPUT = yes; + # Enable PSS mixer (Beethoven ADSP-16 and other compatible) + PSS_MIXER = whenOlder "4.12" yes; + }; - # Wireless networking. - CFG80211_WEXT? y # Without it, ipw2200 drivers don't build - IPW2100_MONITOR? y # support promiscuous mode - IPW2200_MONITOR? y # support promiscuous mode - HOSTAP_FIRMWARE? y # Support downloading firmware images with Host AP driver - HOSTAP_FIRMWARE_NVRAM? y - ATH9K_PCI? y # Detect Atheros AR9xxx cards on PCI(e) bus - ATH9K_AHB? y # Ditto, AHB bus - B43_PHY_HT? y - BCMA_HOST_PCI? y + usb-serial = { + USB_SERIAL_GENERIC = yes; # USB Generic Serial Driver + } // optionalAttrs (versionOlder version "4.16") { + # Include firmware for various USB serial devices. + # Only applicable for kernels below 4.16, after that no firmware is shipped in the kernel tree. + USB_SERIAL_KEYSPAN_MPR = yes; + USB_SERIAL_KEYSPAN_USA28 = yes; + USB_SERIAL_KEYSPAN_USA28X = yes; + USB_SERIAL_KEYSPAN_USA28XA = yes; + USB_SERIAL_KEYSPAN_USA28XB = yes; + USB_SERIAL_KEYSPAN_USA19 = yes; + USB_SERIAL_KEYSPAN_USA18X = yes; + USB_SERIAL_KEYSPAN_USA19W = yes; + USB_SERIAL_KEYSPAN_USA19QW = yes; + USB_SERIAL_KEYSPAN_USA19QI = yes; + USB_SERIAL_KEYSPAN_USA49W = yes; + USB_SERIAL_KEYSPAN_USA49WLC = yes; + }; - # Enable various FB devices. - FB y - FB_EFI y - FB_NVIDIA_I2C y # Enable DDC Support - FB_RIVA_I2C y - FB_ATY_CT y # Mach64 CT/VT/GT/LT (incl. 3D RAGE) support - FB_ATY_GX y # Mach64 GX support - FB_SAVAGE_I2C y - FB_SAVAGE_ACCEL y - FB_SIS_300 y - FB_SIS_315 y - FB_3DFX_ACCEL y - FB_VESA y - FRAMEBUFFER_CONSOLE y - FRAMEBUFFER_CONSOLE_ROTATION y - ${optionalString (stdenv.system == "i686-linux") '' - FB_GEODE y - ''} + usb = { + USB_DEBUG = option no; + USB_EHCI_ROOT_HUB_TT = yes; # Root Hub Transaction Translators + USB_EHCI_TT_NEWSCHED = yes; # Improved transaction translator scheduling + }; - # Video configuration. - # Enable KMS for devices whose X.org driver supports it. - ${optionalString (versionOlder version "4.3") '' - DRM_I915_KMS y - ''} - # iGVT-g support - ${optionalString (versionAtLeast version "4.16") '' - DRM_I915_GVT y - DRM_I915_GVT_KVMGT m - ''} - # Allow specifying custom EDID on the kernel command line - DRM_LOAD_EDID_FIRMWARE y - VGA_SWITCHEROO y # Hybrid graphics support - DRM_GMA600 y - DRM_GMA3600 y - ${optionalString (versionAtLeast version "4.5" && (versionOlder version "4.9")) '' - DRM_AMD_POWERPLAY y # necessary for amdgpu polaris support - ''} - ${optionalString (versionAtLeast version "4.9") '' - DRM_AMDGPU_SI y # (experimental) amdgpu support for verde and newer chipsets - DRM_AMDGPU_CIK y # (stable) amdgpu support for bonaire and newer chipsets - ''} + # Filesystem options - in particular, enable extended attributes and + # ACLs for all filesystems that support them. + filesystem = { + FANOTIFY = yes; + TMPFS = yes; + TMPFS_POSIX_ACL = yes; + FS_ENCRYPTION = option (whenAtLeast "4.9" module); - # Sound. - SND_DYNAMIC_MINORS y - SND_AC97_POWER_SAVE y # AC97 Power-Saving Mode - SND_HDA_INPUT_BEEP y # Support digital beep via input layer - SND_HDA_RECONFIG y # Support reconfiguration of jack functions - SND_HDA_PATCH_LOADER y # Support configuring jack functions via fw mechanism at boot - SND_USB_CAIAQ_INPUT y - ${optionalString (versionOlder version "4.12") '' - PSS_MIXER y # Enable PSS mixer (Beethoven ADSP-16 and other compatible) - ''} + EXT2_FS_XATTR = yes; + EXT2_FS_POSIX_ACL = yes; + EXT2_FS_SECURITY = yes; + EXT2_FS_XIP = whenOlder "4.0" yes; # Ext2 execute in place support - # USB serial devices. - USB_SERIAL_GENERIC y # USB Generic Serial Driver + EXT3_FS_POSIX_ACL = yes; + EXT3_FS_SECURITY = yes; - # Include firmware for various USB serial devices. - # Only applicable for kernels below 4.16, after that no firmware is shipped in the kernel tree. - ${optionalString (versionOlder version "4.16") '' - USB_SERIAL_KEYSPAN_MPR y - USB_SERIAL_KEYSPAN_USA28 y - USB_SERIAL_KEYSPAN_USA28X y - USB_SERIAL_KEYSPAN_USA28XA y - USB_SERIAL_KEYSPAN_USA28XB y - USB_SERIAL_KEYSPAN_USA19 y - USB_SERIAL_KEYSPAN_USA18X y - USB_SERIAL_KEYSPAN_USA19W y - USB_SERIAL_KEYSPAN_USA19QW y - USB_SERIAL_KEYSPAN_USA19QI y - USB_SERIAL_KEYSPAN_USA49W y - USB_SERIAL_KEYSPAN_USA49WLC y - ''} + EXT4_FS_POSIX_ACL = yes; + EXT4_FS_SECURITY = yes; + EXT4_ENCRYPTION = option ((if (versionOlder version "4.8") then module else yes)); - # Device mapper (RAID, LVM, etc.) - MD y + REISERFS_FS_XATTR = option yes; + REISERFS_FS_POSIX_ACL = option yes; + REISERFS_FS_SECURITY = option yes; - # Filesystem options - in particular, enable extended attributes and - # ACLs for all filesystems that support them. - FANOTIFY y - TMPFS y - TMPFS_POSIX_ACL y - ${optionalString (versionAtLeast version "4.9") '' - FS_ENCRYPTION? m - ''} - EXT2_FS_XATTR y - EXT2_FS_POSIX_ACL y - EXT2_FS_SECURITY y - ${optionalString (versionOlder version "4.0") '' - EXT2_FS_XIP y # Ext2 execute in place support - ''} - EXT3_FS_POSIX_ACL y - EXT3_FS_SECURITY y - EXT4_FS_POSIX_ACL y - EXT4_ENCRYPTION? ${if versionOlder version "4.8" then "m" else "y"} - EXT4_FS_SECURITY y - REISERFS_FS_XATTR? y - REISERFS_FS_POSIX_ACL? y - REISERFS_FS_SECURITY? y - JFS_POSIX_ACL? y - JFS_SECURITY? y - XFS_QUOTA? y - XFS_POSIX_ACL? y - XFS_RT? y # XFS Realtime subvolume support - OCFS2_DEBUG_MASKLOG? n - BTRFS_FS_POSIX_ACL y - UBIFS_FS_ADVANCED_COMPR? y - F2FS_FS m - F2FS_FS_SECURITY? y - F2FS_FS_ENCRYPTION? y - UDF_FS m - ${optionalString (versionAtLeast version "4.0" && versionOlder version "4.6") '' - NFSD_PNFS y - ''} - NFSD_V2_ACL y - NFSD_V3 y - NFSD_V3_ACL y - NFSD_V4 y - ${optionalString (versionAtLeast version "3.11") '' - NFSD_V4_SECURITY_LABEL y - ''} - NFS_FSCACHE y - NFS_SWAP y - NFS_V3_ACL y - ${optionalString (versionAtLeast version "3.11") '' - NFS_V4_1 y # NFSv4.1 client support - NFS_V4_2 y - NFS_V4_SECURITY_LABEL y - ''} - CIFS_XATTR y - CIFS_POSIX y - CIFS_FSCACHE y - CIFS_STATS y - CIFS_WEAK_PW_HASH y - CIFS_UPCALL y - CIFS_ACL y - CIFS_DFS_UPCALL y - ${optionalString (versionOlder version "4.13") '' - CIFS_SMB2 y - ''} - ${optionalString (versionAtLeast version "3.12") '' - CEPH_FSCACHE y - ''} - ${optionalString (versionAtLeast version "3.14") '' - CEPH_FS_POSIX_ACL y - ''} - ${optionalString (versionAtLeast version "3.13") '' - SQUASHFS_FILE_DIRECT y - SQUASHFS_DECOMP_MULTI_PERCPU y - ''} - SQUASHFS_XATTR y - SQUASHFS_ZLIB y - SQUASHFS_LZO y - SQUASHFS_XZ y - ${optionalString (versionAtLeast version "3.19") '' - SQUASHFS_LZ4 y - ''} + JFS_POSIX_ACL = option yes; + JFS_SECURITY = option yes; - # Native Language Support modules, needed by some filesystems - NLS y - NLS_DEFAULT utf8 - NLS_UTF8 m - NLS_CODEPAGE_437 m # VFAT default for the codepage= mount option - NLS_ISO8859_1 m # VFAT default for the iocharset= mount option + XFS_QUOTA = option yes; + XFS_POSIX_ACL = option yes; + XFS_RT = option yes; # XFS Realtime subvolume support - # Runtime security tests - ${optionalString (versionOlder version "4.11") '' - DEBUG_SET_MODULE_RONX? y # Detect writes to read-only module pages - ''} + OCFS2_DEBUG_MASKLOG = option no; - # Security related features. - RANDOMIZE_BASE? y - STRICT_DEVMEM? y # Filter access to /dev/mem - SECURITY_SELINUX_BOOTPARAM_VALUE 0 # Disable SELinux by default - SECURITY_YAMA? y # Prevent processes from ptracing non-children processes - DEVKMEM n # Disable /dev/kmem - ${optionalString (! stdenv.hostPlatform.isAarch32) - (if versionOlder version "3.14" then '' - CC_STACKPROTECTOR? y # Detect buffer overflows on the stack - '' else optionalString (versionOlder version "4.18") '' - CC_STACKPROTECTOR_REGULAR? y - '')} - ${optionalString (versionAtLeast version "3.12") '' - USER_NS y # Support for user namespaces - ''} + BTRFS_FS_POSIX_ACL = yes; - # AppArmor support - SECURITY_APPARMOR y - DEFAULT_SECURITY_APPARMOR y + UBIFS_FS_ADVANCED_COMPR = option yes; - # Microcode loading support - MICROCODE y - MICROCODE_INTEL y - MICROCODE_AMD y - ${optionalString (versionAtLeast version "3.11" && versionOlder version "4.4") '' - MICROCODE_EARLY y - MICROCODE_INTEL_EARLY y - MICROCODE_AMD_EARLY y - ''} + F2FS_FS = module; + F2FS_FS_SECURITY = option yes; + F2FS_FS_ENCRYPTION = option yes; + UDF_FS = module; - ${optionalString (versionAtLeast version "4.10") '' - # Write Back Throttling - # https://lwn.net/Articles/682582/ - # https://bugzilla.kernel.org/show_bug.cgi?id=12309#c655 - BLK_WBT y - BLK_WBT_SQ y - BLK_WBT_MQ y - ''} + NFSD_PNFS = whenBetween "4.0" "4.6" yes; + NFSD_V2_ACL = yes; + NFSD_V3 = yes; + NFSD_V3_ACL = yes; + NFSD_V4 = yes; + NFSD_V4_SECURITY_LABEL = yes; - # Misc. options. - 8139TOO_8129 y - 8139TOO_PIO n # PIO is slower - AIC79XX_DEBUG_ENABLE n - AIC7XXX_DEBUG_ENABLE n - AIC94XX_DEBUG n - ${optionalString (versionAtLeast version "3.3" && versionOlder version "3.13") '' - AUDIT_LOGINUID_IMMUTABLE y - ''} - ${optionalString (versionOlder version "4.4") '' - B43_PCMCIA? y - ''} - BLK_DEV_INITRD y - BLK_DEV_INTEGRITY y - BSD_PROCESS_ACCT_V3 y - BT_HCIUART_BCSP? y - BT_HCIUART_H4? y # UART (H4) protocol support - BT_HCIUART_LL? y - BT_RFCOMM_TTY? y # RFCOMM TTY support - CLEANCACHE? y - CRASH_DUMP? n - DVB_DYNAMIC_MINORS? y # we use udev - EFI_STUB y # EFI bootloader in the bzImage itself - CGROUPS y # used by systemd - FHANDLE y # used by systemd - SECCOMP y # used by systemd >= 231 - SECCOMP_FILTER y # ditto - POSIX_MQUEUE y - FRONTSWAP y - FUSION y # Fusion MPT device support - IDE n # deprecated IDE support - ${optionalString (versionAtLeast version "4.3") '' - IDLE_PAGE_TRACKING y - ''} - ${optionalString (versionOlder version "4.17") '' - IRDA_ULTRA y # Ultra (connectionless) protocol - ''} - JOYSTICK_IFORCE_232? y # I-Force Serial joysticks and wheels - JOYSTICK_IFORCE_USB? y # I-Force USB joysticks and wheels - JOYSTICK_XPAD_FF? y # X-Box gamepad rumble support - JOYSTICK_XPAD_LEDS? y # LED Support for Xbox360 controller 'BigX' LED - KEXEC_FILE? y - KEXEC_JUMP? y - LDM_PARTITION y # Windows Logical Disk Manager (Dynamic Disk) support - LOGIRUMBLEPAD2_FF y # Logitech Rumblepad 2 force feedback - LOGO n # not needed - MEDIA_ATTACH y - MEGARAID_NEWGEN y - ${optionalString (versionAtLeast version "3.15" && versionOlder version "4.8") '' - MLX4_EN_VXLAN y - ''} - ${optionalString (versionOlder version "4.9") '' - MODVERSIONS y - ''} - MOUSE_PS2_ELANTECH y # Elantech PS/2 protocol extension - MTRR_SANITIZER y - NET_FC y # Fibre Channel driver support - ${optionalString (versionAtLeast version "3.11") '' - PINCTRL_BAYTRAIL y # GPIO on Intel Bay Trail, for some Chromebook internal eMMC disks - ''} - MMC_BLOCK_MINORS 32 # 8 is default. Modern gpt tables on eMMC may go far beyond 8. - PPP_MULTILINK y # PPP multilink support - PPP_FILTER y - REGULATOR y # Voltage and Current Regulator Support - RC_DEVICES? y # Enable IR devices - RT2800USB_RT53XX y - RT2800USB_RT55XX y - SCHED_AUTOGROUP y - CFS_BANDWIDTH y - SCSI_LOGGING y # SCSI logging facility - SERIAL_8250 y # 8250/16550 and compatible serial support - SLIP_COMPRESSED y # CSLIP compressed headers - SLIP_SMART y - HWMON y - THERMAL_HWMON y # Hardware monitoring support - ${optionalString (versionAtLeast version "3.15") '' - UEVENT_HELPER n - ''} - ${optionalString (versionOlder version "3.15") '' - USB_DEBUG? n - ''} - USB_EHCI_ROOT_HUB_TT y # Root Hub Transaction Translators - USB_EHCI_TT_NEWSCHED y # Improved transaction translator scheduling - ${optionalString (versionAtLeast version "4.3") '' - USERFAULTFD y - ''} - X86_CHECK_BIOS_CORRUPTION y - X86_MCE y + NFS_FSCACHE = yes; + NFS_SWAP = yes; + NFS_V3_ACL = yes; + NFS_V4_1 = yes; # NFSv4.1 client support + NFS_V4_2 = yes; + NFS_V4_SECURITY_LABEL = yes; - ${optionalString (versionAtLeast version "3.12") '' - HOTPLUG_PCI_ACPI y # PCI hotplug using ACPI - HOTPLUG_PCI_PCIE y # PCI-Expresscard hotplug support - ''} + CIFS_XATTR = yes; + CIFS_POSIX = yes; + CIFS_FSCACHE = yes; + CIFS_STATS = yes; + CIFS_WEAK_PW_HASH = yes; + CIFS_UPCALL = yes; + CIFS_ACL = yes; + CIFS_DFS_UPCALL = yes; + CIFS_SMB2 = whenOlder "4.13" yes; + CEPH_FSCACHE = yes; + CEPH_FS_POSIX_ACL = yes; - # Linux containers. - NAMESPACES? y # Required by 'unshare' used by 'nixos-install' - RT_GROUP_SCHED n - CGROUP_DEVICE? y - MEMCG y - MEMCG_SWAP y - ${optionalString (versionOlder version "4.7") "DEVPTS_MULTIPLE_INSTANCES y"} - BLK_DEV_THROTTLING y - CFQ_GROUP_IOSCHED y - ${optionalString (versionAtLeast version "4.3") '' - CGROUP_PIDS y - ''} + SQUASHFS_FILE_DIRECT = yes; + SQUASHFS_DECOMP_MULTI_PERCPU = yes; + SQUASHFS_XATTR = yes; + SQUASHFS_ZLIB = yes; + SQUASHFS_LZO = yes; + SQUASHFS_XZ = yes; + SQUASHFS_LZ4 = yes; - # Enable staging drivers. These are somewhat experimental, but - # they generally don't hurt. - STAGING y + # Native Language Support modules, needed by some filesystems + NLS = yes; + NLS_DEFAULT = "utf8"; + NLS_UTF8 = module; + NLS_CODEPAGE_437 = module; # VFAT default for the codepage= mount option + NLS_ISO8859_1 = module; # VFAT default for the iocharset= mount option - # PROC_EVENTS requires that the netlink connector is not built - # as a module. This is required by libcgroup's cgrulesengd. - CONNECTOR y - PROC_EVENTS y + DEVTMPFS = yes; + }; - # Tracing. - FTRACE y - KPROBES y - FUNCTION_TRACER y - FTRACE_SYSCALLS y - SCHED_TRACER y - STACK_TRACER y + security = { + # Detect writes to read-only module pages + DEBUG_SET_MODULE_RONX = option (whenOlder "4.11" yes); + RANDOMIZE_BASE = option yes; + STRICT_DEVMEM = option yes; # Filter access to /dev/mem + SECURITY_SELINUX_BOOTPARAM_VALUE = "0"; # Disable SELinux by default + # Prevent processes from ptracing non-children processes + SECURITY_YAMA = option yes; + DEVKMEM = when (!features.grsecurity) no; # Disable /dev/kmem - ${if versionOlder version "4.11" then '' - UPROBE_EVENT? y - '' else '' - UPROBE_EVENTS? y - ''} + USER_NS = yes; # Support for user namespaces - ${optionalString (versionAtLeast version "4.4") '' - BPF_SYSCALL y - BPF_EVENTS y - ''} - FUNCTION_PROFILER y - RING_BUFFER_BENCHMARK n + SECURITY_APPARMOR = yes; + DEFAULT_SECURITY_APPARMOR = yes; - # Devtmpfs support. - DEVTMPFS y + } // optionalAttrs (!stdenv.hostPlatform.isAarch32) { - # Easier debugging of NFS issues. - SUNRPC_DEBUG y + # Detect buffer overflows on the stack + CC_STACKPROTECTOR_REGULAR = option (whenOlder "4.18" yes); + }; - # Virtualisation. - PARAVIRT? y - HYPERVISOR_GUEST y - PARAVIRT_SPINLOCKS? y - ${optionalString (versionOlder version "4.8") '' - KVM_APIC_ARCHITECTURE y - ''} - KVM_ASYNC_PF y - ${optionalString ((versionAtLeast version "4.0") && (versionOlder version "4.12")) '' - KVM_COMPAT? y - ''} - ${optionalString (versionOlder version "4.12") '' - KVM_DEVICE_ASSIGNMENT? y - ''} - ${optionalString (versionAtLeast version "4.0") '' - KVM_GENERIC_DIRTYLOG_READ_PROTECT y - ''} - KVM_GUEST y - KVM_MMIO y - ${optionalString (versionAtLeast version "3.13") '' - KVM_VFIO y - ''} - ${optionalString (stdenv.isx86_64 || stdenv.isi686) '' - XEN? y - XEN_DOM0? y - ${optionalString ((versionAtLeast version "3.18") && (features.xen_dom0 or false)) '' - PCI_XEN? y - HVC_XEN? y - HVC_XEN_FRONTEND? y - XEN_SYS_HYPERVISOR? y - SWIOTLB_XEN? y - XEN_BACKEND? y - XEN_BALLOON? y - XEN_BALLOON_MEMORY_HOTPLUG? y - XEN_EFI? y - XEN_HAVE_PVMMU? y - XEN_MCE_LOG? y - XEN_PVH? y - XEN_PVHVM? y - XEN_SAVE_RESTORE? y - XEN_SCRUB_PAGES? y - XEN_SELFBALLOONING? y - XEN_STUB? y - XEN_TMEM? y - ''} - ''} - KSM y - ${optionalString (!stdenv.is64bit) '' - HIGHMEM64G? y # We need 64 GB (PAE) support for Xen guest support. - ''} - ${optionalString (stdenv.is64bit) '' - VFIO_PCI_VGA y - ''} - VIRT_DRIVERS y + microcode = { + MICROCODE = yes; + MICROCODE_INTEL = yes; + MICROCODE_AMD = yes; - # Media support. - MEDIA_DIGITAL_TV_SUPPORT y - MEDIA_CAMERA_SUPPORT y - ${optionalString (versionOlder version "4.14") '' - MEDIA_RC_SUPPORT y - ''} - MEDIA_CONTROLLER y - MEDIA_USB_SUPPORT y - MEDIA_PCI_SUPPORT y - MEDIA_ANALOG_TV_SUPPORT y - VIDEO_STK1160_COMMON m - ${optionalString (versionOlder version "4.11") '' - VIDEO_STK1160_AC97 y - ''} + MICROCODE_EARLY = whenOlder "4.4" yes; + MICROCODE_INTEL_EARLY = whenOlder "4.4" yes; + MICROCODE_AMD_EARLY = whenOlder "4.4" yes; + } // optionalAttrs (versionAtLeast version "4.10") { + # Write Back Throttling + # https://lwn.net/Articles/682582/ + # https://bugzilla.kernel.org/show_bug.cgi?id=12309#c655 + BLK_WBT = yes; + BLK_WBT_SQ = yes; + BLK_WBT_MQ = yes; + }; - # Our initrd init uses shebang scripts, so can't be modular. - BINFMT_SCRIPT y + container = { + NAMESPACES = option yes; # Required by 'unshare' used by 'nixos-install' + RT_GROUP_SCHED = no; + CGROUP_DEVICE = option yes; - # For systemd-binfmt - BINFMT_MISC? y + MEMCG = yes; + MEMCG_SWAP = yes; - # Enable the 9P cache to speed up NixOS VM tests. - 9P_FSCACHE? y - 9P_FS_POSIX_ACL? y + DEVPTS_MULTIPLE_INSTANCES = whenOlder "4.7" yes; + BLK_DEV_THROTTLING = yes; + CFQ_GROUP_IOSCHED = yes; + CGROUP_PIDS = whenAtLeast "4.3" yes; + }; - # Enable transparent support for huge pages. - TRANSPARENT_HUGEPAGE? y - TRANSPARENT_HUGEPAGE_ALWAYS? n - TRANSPARENT_HUGEPAGE_MADVISE? y + staging = { + # Enable staging drivers. These are somewhat experimental, but + # they generally don't hurt. + STAGING = yes; + }; - # zram support (e.g for in-memory compressed swap). - ZRAM m - ZSWAP? y - ZBUD? y - ${optionalString (versionOlder version "3.18") '' - ZSMALLOC y - ''} - ${optionalString (versionAtLeast version "3.18") '' - ZSMALLOC m - ''} + proc-events = { + # PROC_EVENTS requires that the netlink connector is not built + # as a module. This is required by libcgroup's cgrulesengd. + CONNECTOR = yes; + PROC_EVENTS = yes; + }; - # Enable PCIe and USB for the brcmfmac driver - BRCMFMAC_USB? y - BRCMFMAC_PCIE? y + tracing = { + FTRACE = yes; + KPROBES = yes; + FUNCTION_TRACER = yes; + FTRACE_SYSCALLS = yes; + SCHED_TRACER = yes; + STACK_TRACER = yes; + UPROBE_EVENT = option (whenOlder "4.11" yes); + UPROBE_EVENTS = option (whenAtLeast "4.11" yes); + BPF_SYSCALL = whenAtLeast "4.4" yes; + BPF_EVENTS = whenAtLeast "4.4" yes; + FUNCTION_PROFILER = yes; + RING_BUFFER_BENCHMARK = no; + }; - # Support x2APIC (which requires IRQ remapping). - ${optionalString (stdenv.system == "x86_64-linux") '' - X86_X2APIC y - IRQ_REMAP y - ''} + virtualisation = { + PARAVIRT = option yes; - # needed for iwd WPS support (wpa_supplicant replacement) - ${optionalString (versionAtLeast version "4.7") '' - KEY_DH_OPERATIONS y - ''} + HYPERVISOR_GUEST = when (!features.grsecurity) yes; + PARAVIRT_SPINLOCKS = option yes; - # Disable the firmware helper fallback, udev doesn't implement it any more - FW_LOADER_USER_HELPER_FALLBACK? n + KVM_APIC_ARCHITECTURE = whenOlder "4.8" yes; + KVM_ASYNC_PF = yes; + KVM_COMPAT = option (whenBetween "4.0" "4.12" yes); + KVM_DEVICE_ASSIGNMENT = option (whenBetween "3.10" "4.12" yes); + KVM_GENERIC_DIRTYLOG_READ_PROTECT = whenAtLeast "4.0" yes; + KVM_GUEST = when (!features.grsecurity) yes; + KVM_MMIO = yes; + KVM_VFIO = yes; + KSM = yes; + VIRT_DRIVERS = yes; + # We nneed 64 GB (PAE) support for Xen guest support + HIGHMEM64G = option (when (!stdenv.is64bit) yes); - # Disable various self-test modules that have no use in a production system - # This menu disables all/most of them on >= 4.16 - RUNTIME_TESTING_MENU? n - # For older kernels, painstakingly disable each symbol. - ${optionalString (versionOlder version "4.16") '' - ARM_KPROBES_TEST? n - ASYNC_RAID6_TEST? n - ATOMIC64_SELFTEST? n - BACKTRACE_SELF_TEST? n - INTERVAL_TREE_TEST? n - PERCPU_TEST? n - RBTREE_TEST? n - TEST_BITMAP? n - TEST_BPF? n - TEST_FIRMWARE? n - TEST_HASH? n - TEST_HEXDUMP? n - TEST_KMOD? n - TEST_KSTRTOX? n - TEST_LIST_SORT? n - TEST_LKM? n - TEST_PARMAN? n - TEST_PRINTF? n - TEST_RHASHTABLE? n - TEST_SORT? n - TEST_STATIC_KEYS? n - TEST_STRING_HELPERS? n - TEST_UDELAY? n - TEST_USER_COPY? n - TEST_UUID? n - ''} + VFIO_PCI_VGA = when stdenv.is64bit yes; - CRC32_SELFTEST? n - CRYPTO_TEST? n - ${optionalString (versionOlder version "4.18") '' - DRM_DEBUG_MM_SELFTEST? n - LNET_SELFTEST? n - ''} - EFI_TEST? n - GLOB_SELFTEST? n - LOCK_TORTURE_TEST? n - MTD_TESTS? n - NOTIFIER_ERROR_INJECTION? n - RCU_PERF_TEST? n - RCU_TORTURE_TEST? n - TEST_ASYNC_DRIVER_PROBE? n - WW_MUTEX_SELFTEST? n - XZ_DEC_TEST? n + } // optionalAttrs (stdenv.isx86_64 || stdenv.isi686) ({ + XEN = option yes; - ${optionalString (features.criu or false) '' - EXPERT y - CHECKPOINT_RESTORE y - ''} + # XXX: why isn't this in the xen-dom0 conditional section below? + XEN_DOM0 = option yes; - ${optionalString ((features.criu or false) && (features.criu_revert_expert or true)) - # Revert some changes, introduced by EXPERT, when necessary for criu - '' - RFKILL_INPUT? y - HID_PICOLCD_FB? y - HID_PICOLCD_BACKLIGHT? y - HID_PICOLCD_LCD? y - HID_PICOLCD_LEDS? y - HID_PICOLCD_CIR? y - DEBUG_MEMORY_INIT? y - ''} + } // optionalAttrs features.xen_dom0 { + PCI_XEN = option yes; + HVC_XEN = option yes; + HVC_XEN_FRONTEND = option yes; + XEN_SYS_HYPERVISOR = option yes; + SWIOTLB_XEN = option yes; + XEN_BACKEND = option yes; + XEN_BALLOON = option yes; + XEN_BALLOON_MEMORY_HOTPLUG = option yes; + XEN_EFI = option yes; + XEN_HAVE_PVMMU = option yes; + XEN_MCE_LOG = option yes; + XEN_PVH = option yes; + XEN_PVHVM = option yes; + XEN_SAVE_RESTORE = option yes; + XEN_SCRUB_PAGES = option yes; + XEN_SELFBALLOONING = option yes; + XEN_STUB = option yes; + XEN_TMEM = option yes; + }); - ${extraConfig} -'' + media = { + MEDIA_DIGITAL_TV_SUPPORT = yes; + MEDIA_CAMERA_SUPPORT = yes; + MEDIA_RC_SUPPORT = whenOlder "4.14" yes; + MEDIA_CONTROLLER = yes; + MEDIA_PCI_SUPPORT = yes; + MEDIA_USB_SUPPORT = yes; + MEDIA_ANALOG_TV_SUPPORT = yes; + VIDEO_STK1160_COMMON = module; + VIDEO_STK1160_AC97 = whenOlder "4.11" yes; + }; + + "9p" = { + # Enable the 9P cache to speed up NixOS VM tests. + "9P_FSCACHE" = option yes; + "9P_FS_POSIX_ACL" = option yes; + }; + + huge-page = { + TRANSPARENT_HUGEPAGE = option yes; + TRANSPARENT_HUGEPAGE_ALWAYS = option no; + TRANSPARENT_HUGEPAGE_MADVISE = option yes; + }; + + zram = { + ZRAM = module; + ZSWAP = option yes; + ZBUD = option yes; + ZSMALLOC = module; + }; + + brcmfmac = { + # Enable PCIe and USB for the brcmfmac driver + BRCMFMAC_USB = option yes; + BRCMFMAC_PCIE = option yes; + }; + + # Support x2APIC (which requires IRQ remapping) + x2apic = optionalAttrs (stdenv.system == "x86_64-linux") { + X86_X2APIC = yes; + IRQ_REMAP = yes; + }; + + # Disable various self-test modules that have no use in a production system + tests = { + # This menu disables all/most of them on >= 4.16 + RUNTIME_TESTING_MENU = option no; + } // optionalAttrs (versionOlder version "4.16") { + # For older kernels, painstakingly disable each symbol. + ARM_KPROBES_TEST = option no; + ASYNC_RAID6_TEST = option no; + ATOMIC64_SELFTEST = option no; + BACKTRACE_SELF_TEST = option no; + INTERVAL_TREE_TEST = option no; + PERCPU_TEST = option no; + RBTREE_TEST = option no; + TEST_BITMAP = option no; + TEST_BPF = option no; + TEST_FIRMWARE = option no; + TEST_HASH = option no; + TEST_HEXDUMP = option no; + TEST_KMOD = option no; + TEST_KSTRTOX = option no; + TEST_LIST_SORT = option no; + TEST_LKM = option no; + TEST_PARMAN = option no; + TEST_PRINTF = option no; + TEST_RHASHTABLE = option no; + TEST_SORT = option no; + TEST_STATIC_KEYS = option no; + TEST_STRING_HELPERS = option no; + TEST_UDELAY = option no; + TEST_USER_COPY = option no; + TEST_UUID = option no; + } // { + CRC32_SELFTEST = option no; + CRYPTO_TEST = option no; + EFI_TEST = option no; + GLOB_SELFTEST = option no; + DRM_DEBUG_MM_SELFTEST = option (whenOlder "4.18" no); + LNET_SELFTEST = option (whenOlder "4.18" no); + LOCK_TORTURE_TEST = option no; + MTD_TESTS = option no; + NOTIFIER_ERROR_INJECTION = option no; + RCU_PERF_TEST = option no; + RCU_TORTURE_TEST = option no; + TEST_ASYNC_DRIVER_PROBE = option no; + WW_MUTEX_SELFTEST = option no; + XZ_DEC_TEST = option no; + } // optionalAttrs (features.criu or false) ({ + EXPERT = yes; + CHECKPOINT_RESTORE = yes; + } // optionalAttrs (features.criu_revert_expert or true) { + RFKILL_INPUT = option yes; + HID_PICOLCD_FB = option yes; + HID_PICOLCD_BACKLIGHT = option yes; + HID_PICOLCD_LCD = option yes; + HID_PICOLCD_LEDS = option yes; + HID_PICOLCD_CIR = option yes; + DEBUG_MEMORY_INIT = option yes; + }); + + misc = { + MODULE_COMPRESS = yes; + MODULE_COMPRESS_XZ = yes; + KERNEL_XZ = yes; + + UNIX = yes; # Unix domain sockets. + + MD = yes; # Device mapper (RAID, LVM, etc.) + + # Enable initrd support. + BLK_DEV_RAM = yes; + BLK_DEV_INITRD = yes; + + PM_TRACE_RTC = no; # Disable some expensive (?) features. + ACCESSIBILITY = yes; # Accessibility support + AUXDISPLAY = yes; # Auxiliary Display support + DONGLE = whenOlder "4.17" yes; # Serial dongle support + HIPPI = yes; + MTD_COMPLEX_MAPPINGS = yes; # needed for many devices + + SCSI_LOWLEVEL = yes; # enable lots of SCSI devices + SCSI_LOWLEVEL_PCMCIA = yes; + SCSI_SAS_ATA = yes; # added to enable detection of hard drive + + SPI = yes; # needed for many devices + SPI_MASTER = yes; + + "8139TOO_8129" = yes; + "8139TOO_PIO" = no; # PIO is slower + + AIC79XX_DEBUG_ENABLE = no; + AIC7XXX_DEBUG_ENABLE = no; + AIC94XX_DEBUG = no; + B43_PCMCIA = option (whenOlder "4.4" yes); + + BLK_DEV_INTEGRITY = yes; + + BSD_PROCESS_ACCT_V3 = yes; + + BT_HCIUART_BCSP = option yes; + BT_HCIUART_H4 = option yes; # UART (H4) protocol support + BT_HCIUART_LL = option yes; + BT_RFCOMM_TTY = option yes; # RFCOMM TTY support + + CLEANCACHE = option yes; + CRASH_DUMP = option no; + + DVB_DYNAMIC_MINORS = option yes; # we use udev + + EFI_STUB = yes; # EFI bootloader in the bzImage itself + CGROUPS = yes; # used by systemd + FHANDLE = yes; # used by systemd + SECCOMP = yes; # used by systemd >= 231 + SECCOMP_FILTER = yes; # ditto + POSIX_MQUEUE = yes; + FRONTSWAP = yes; + FUSION = yes; # Fusion MPT device support + IDE = no; # deprecated IDE support + IDLE_PAGE_TRACKING = yes; + IRDA_ULTRA = whenOlder "4.17" yes; # Ultra (connectionless) protocol + + JOYSTICK_IFORCE_232 = option yes; # I-Force Serial joysticks and wheels + JOYSTICK_IFORCE_USB = option yes; # I-Force USB joysticks and wheels + JOYSTICK_XPAD_FF = option yes; # X-Box gamepad rumble support + JOYSTICK_XPAD_LEDS = option yes; # LED Support for Xbox360 controller 'BigX' LED + + KEXEC_FILE = option yes; + KEXEC_JUMP = option yes; + + # Windows Logical Disk Manager (Dynamic Disk) support + LDM_PARTITION = yes; + LOGIRUMBLEPAD2_FF = yes; # Logitech Rumblepad 2 force feedback + LOGO = no; # not needed + MEDIA_ATTACH = yes; + MEGARAID_NEWGEN = yes; + + MLX4_EN_VXLAN = whenOlder "4.8" yes; + + MODVERSIONS = whenOlder "4.9" yes; + MOUSE_PS2_ELANTECH = yes; # Elantech PS/2 protocol extension + MTRR_SANITIZER = yes; + NET_FC = yes; # Fibre Channel driver support + # GPIO on Intel Bay Trail, for some Chromebook internal eMMC disks + PINCTRL_BAYTRAIL = yes; + # 8 is default. Modern gpt tables on eMMC may go far beyond 8. + MMC_BLOCK_MINORS = "32"; + + REGULATOR = yes; # Voltage and Current Regulator Support + RC_DEVICES = option yes; # Enable IR devices + + RT2800USB_RT53XX = yes; + RT2800USB_RT55XX = yes; + + SCHED_AUTOGROUP = yes; + CFS_BANDWIDTH = yes; + + SCSI_LOGGING = yes; # SCSI logging facility + SERIAL_8250 = yes; # 8250/16550 and compatible serial support + + SLIP_COMPRESSED = yes; # CSLIP compressed headers + SLIP_SMART = yes; + + HWMON = yes; + THERMAL_HWMON = yes; # Hardware monitoring support + UEVENT_HELPER = no; + + USERFAULTFD = yes; + X86_CHECK_BIOS_CORRUPTION = yes; + X86_MCE = yes; + + # Our initrd init uses shebang scripts, so can't be modular. + BINFMT_SCRIPT = yes; + # For systemd-binfmt + BINFMT_MISC = option yes; + + # Disable the firmware helper fallback, udev doesn't implement it any more + FW_LOADER_USER_HELPER_FALLBACK = option no; + + HOTPLUG_PCI_ACPI = yes; # PCI hotplug using ACPI + HOTPLUG_PCI_PCIE = yes; # PCI-Expresscard hotplug support + + } // optionalAttrs (stdenv.hostPlatform.system == "x86_64-linux" || stdenv.hostPlatform.system == "aarch64-linux") { + # Bump the maximum number of CPUs to support systems like EC2 x1.* + # instances and Xeon Phi. + NR_CPUS = "384"; + }; + }; +in (generateNixKConf ((flattenKConf options) // structuredExtraConfig) mkValueOverride) + extraConfig diff --git a/pkgs/os-specific/linux/kernel/generic.nix b/pkgs/os-specific/linux/kernel/generic.nix index 249a1ea5cef..684955b9067 100644 --- a/pkgs/os-specific/linux/kernel/generic.nix +++ b/pkgs/os-specific/linux/kernel/generic.nix @@ -15,9 +15,12 @@ , # Allows overriding the default defconfig defconfig ? null -, # Overrides to the kernel config. +, # Legacy overrides to the intermediate kernel config, as string extraConfig ? "" +, # kernel intermediate config overrides, as a set + structuredExtraConfig ? {} + , # The version number used for the module directory modDirVersion ? version @@ -42,6 +45,7 @@ , preferBuiltin ? hostPlatform.platform.kernelPreferBuiltin or false , kernelArch ? hostPlatform.platform.kernelArch +, mkValueOverride ? null , ... } @ args: @@ -57,10 +61,13 @@ let efiBootStub = true; needsCifsUtils = true; netfilterRPFilter = true; + grsecurity = false; + xen_dom0 = false; } // features) kernelPatches; - config = import ./common-config.nix { - inherit stdenv version ; + intermediateNixConfig = import ./common-config.nix { + inherit stdenv version structuredExtraConfig mkValueOverride; + # append extraConfig for backwards compatibility but also means the user can't override the kernelExtraConfig part extraConfig = extraConfig + lib.optionalString (hostPlatform.platform ? kernelExtraConfig) hostPlatform.platform.kernelExtraConfig; @@ -79,7 +86,7 @@ let generateConfig = ./generate-config.pl; - kernelConfig = kernelConfigFun config; + kernelConfig = kernelConfigFun intermediateNixConfig; passAsFile = [ "kernelConfig" ]; depsBuildBuild = [ buildPackages.stdenv.cc ]; diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index 9833bb57baf..fe46b9eab40 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -24,7 +24,7 @@ in { modDirVersion ? version, # The kernel source (tarball, git checkout, etc.) src, - # Any patches + # a list of { name=..., patch=..., extraConfig=...} patches kernelPatches ? [], # The kernel .config file configfile, diff --git a/pkgs/os-specific/linux/thunderbolt/default.nix b/pkgs/os-specific/linux/thunderbolt/default.nix index 3189872ca3b..9d919aaaa93 100644 --- a/pkgs/os-specific/linux/thunderbolt/default.nix +++ b/pkgs/os-specific/linux/thunderbolt/default.nix @@ -4,16 +4,17 @@ , fetchFromGitHub , pkgconfig , txt2tags +, udev }: stdenv.mkDerivation rec { name = "thunderbolt-${version}"; - version = "0.9.2"; + version = "0.9.3"; src = fetchFromGitHub { owner = "01org"; repo = "thunderbolt-software-user-space"; - rev = "1ae06410180320a5d0e7408a8d1a6ae2aa443c23"; - sha256 = "03yk419gj0767lpk6zvla4jx3nx56zsg4x4adl4nd50xhn409rcc"; + rev = "v${version}"; + sha256 = "02w1bfm7xvq0dzkhwqiq0camkzz9kvciyhnsis61c8vzp39cwx0x"; }; buildInputs = [ @@ -23,11 +24,15 @@ stdenv.mkDerivation rec { txt2tags ]; - cmakeFlags = [ - "-DCMAKE_BUILD_TYPE='Release'" - "-DUDEV_BIN_DIR=$out/bin" - "-DUDEV_RULES_DIR=$out/udev" - ]; + # These can't go in the normal nix cmakeFlags because $out needs to be + # expanded by the shell, not by cmake or nix. $ENV{out} doesn't work right + # either; it results in /build/source/build//nix/store/blahblahblahblah/bin/ + # TODO: use ${placeholder "out"} when possible. + # See https://github.com/NixOS/nixpkgs/pull/37693 + preConfigure = '' + cmakeFlags+=" -DUDEV_BIN_DIR=$out/bin" + cmakeFlags+=" -DUDEV_RULES_DIR=$out/etc/udev/rules.d" + ''; meta = { description = "Thunderbolt(TM) user-space components"; diff --git a/pkgs/servers/mail/dovecot/default.nix b/pkgs/servers/mail/dovecot/default.nix index 55070a48b7d..70f2bf9d61e 100644 --- a/pkgs/servers/mail/dovecot/default.nix +++ b/pkgs/servers/mail/dovecot/default.nix @@ -8,7 +8,7 @@ }: stdenv.mkDerivation rec { - name = "dovecot-2.3.1"; + name = "dovecot-2.3.2"; nativeBuildInputs = [ perl pkgconfig ]; buildInputs = @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { src = fetchurl { url = "https://dovecot.org/releases/2.3/${name}.tar.gz"; - sha256 = "14zva4f8k64x86sm9n21cp2yvrpph6k6k52bm22a00pxjwdq50q8"; + sha256 = "14z3vbva1inck2lrrgdj5fbrpqhs7pls7c1m63q2g13nc3xg0j3f"; }; preConfigure = '' diff --git a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix index a393df3d8bd..1b744181096 100644 --- a/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix +++ b/pkgs/servers/mail/dovecot/plugins/pigeonhole/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { name = "dovecot-pigeonhole-${version}"; - version = "0.5.1"; + version = "0.5.2"; src = fetchurl { url = "https://pigeonhole.dovecot.org/releases/2.3/dovecot-2.3-pigeonhole-${version}.tar.gz"; - sha256 = "0ivmaxic6cygfphvlrvy0xgggydm7j7kjv1ssfqbr08q4rcsmc73"; + sha256 = "0d95q2yj2f750jwg599jlizlglldcz9hs52y4mhrflwfqlaqw3lm"; }; buildInputs = [ dovecot openssl ]; diff --git a/pkgs/servers/openafs/default.nix b/pkgs/servers/openafs/1.6/default.nix similarity index 100% rename from pkgs/servers/openafs/default.nix rename to pkgs/servers/openafs/1.6/default.nix diff --git a/pkgs/servers/openafs/module.nix b/pkgs/servers/openafs/1.6/module.nix similarity index 100% rename from pkgs/servers/openafs/module.nix rename to pkgs/servers/openafs/1.6/module.nix diff --git a/pkgs/servers/openafs/srcs.nix b/pkgs/servers/openafs/1.6/srcs.nix similarity index 100% rename from pkgs/servers/openafs/srcs.nix rename to pkgs/servers/openafs/1.6/srcs.nix diff --git a/pkgs/servers/openafs/tsmbac.patch b/pkgs/servers/openafs/1.6/tsmbac.patch similarity index 100% rename from pkgs/servers/openafs/tsmbac.patch rename to pkgs/servers/openafs/1.6/tsmbac.patch diff --git a/pkgs/servers/openafs/1.8/bosserver.patch b/pkgs/servers/openafs/1.8/bosserver.patch new file mode 100644 index 00000000000..094d9871f64 --- /dev/null +++ b/pkgs/servers/openafs/1.8/bosserver.patch @@ -0,0 +1,30 @@ +diff -u openafs-1.8.0/src/bozo/bosserver.c /tmp/buffer-content-13110-gd +--- openafs-1.8.0/src/bozo/bosserver.c ++++ # +@@ -244,24 +244,6 @@ + static int + CreateDirs(const char *coredir) + { +- if ((!strncmp +- (AFSDIR_USR_DIRPATH, AFSDIR_CLIENT_ETC_DIRPATH, +- strlen(AFSDIR_USR_DIRPATH))) +- || +- (!strncmp +- (AFSDIR_USR_DIRPATH, AFSDIR_SERVER_BIN_DIRPATH, +- strlen(AFSDIR_USR_DIRPATH)))) { +- if (MakeDir(AFSDIR_USR_DIRPATH)) +- return errno; +- } +- if (!strncmp +- (AFSDIR_SERVER_AFS_DIRPATH, AFSDIR_SERVER_BIN_DIRPATH, +- strlen(AFSDIR_SERVER_AFS_DIRPATH))) { +- if (MakeDir(AFSDIR_SERVER_AFS_DIRPATH)) +- return errno; +- } +- if (MakeDir(AFSDIR_SERVER_BIN_DIRPATH)) +- return errno; + if (MakeDir(AFSDIR_SERVER_ETC_DIRPATH)) + return errno; + if (MakeDir(AFSDIR_SERVER_LOCAL_DIRPATH)) + +Diff finished. Fri Jun 29 15:45:46 2018 diff --git a/pkgs/servers/openafs/1.8/default.nix b/pkgs/servers/openafs/1.8/default.nix new file mode 100644 index 00000000000..59c15839b39 --- /dev/null +++ b/pkgs/servers/openafs/1.8/default.nix @@ -0,0 +1,97 @@ +{ stdenv, fetchurl, fetchgit, which, autoconf, automake, flex, yacc +, glibc, perl, kerberos, libxslt, docbook_xsl, docbook_xml_dtd_43 +, libtool_2, removeReferencesTo +, ncurses # Extra ncurses utilities. Only needed for debugging. +, tsmbac ? null # Tivoli Storage Manager Backup Client from IBM +}: + +with (import ./srcs.nix { inherit fetchurl; }); + +stdenv.mkDerivation rec { + name = "openafs-${version}"; + inherit version srcs; + + nativeBuildInputs = [ autoconf automake flex libxslt libtool_2 perl + removeReferencesTo which yacc ]; + + buildInputs = [ kerberos ncurses ]; + + patches = [ ./bosserver.patch ] ++ stdenv.lib.optional (tsmbac != null) ./tsmbac.patch; + + outputs = [ "out" "dev" "man" "doc" "server" ]; + + enableParallelBuilding = true; + + setOutputFlags = false; + + # Makefiles don't include install targets for all new shared libs, yet. + dontDisableStatic = true; + + preConfigure = '' + patchShebangs . + for i in `grep -l -R '/usr/\(include\|src\)' .`; do + echo "Patch /usr/include and /usr/src in $i" + substituteInPlace $i \ + --replace "/usr/include" "${glibc.dev}/include" \ + --replace "/usr/src" "$TMP" + done + + for i in ./doc/xml/{AdminGuide,QuickStartUnix,UserGuide}/*.xml; do + substituteInPlace "''${i}" --replace "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" \ + "${docbook_xml_dtd_43}/xml/dtd/docbook/docbookx.dtd" + done + + ./regen.sh + + configureFlagsArray=( + "--with-gssapi" + "--sysconfdir=/etc" + "--localstatedir=/var" + "--disable-kernel-module" + "--disable-fuse-client" + "--with-html-xsl=${docbook_xsl}/share/xml/docbook-xsl/html/chunk.xsl" + ${stdenv.lib.optionalString (tsmbac != null) "--enable-tivoli-tsm"} + ${stdenv.lib.optionalString (ncurses == null) "--disable-gtx"} + "--disable-linux-d_splice-alias-extra-iput" + "--libexecdir=$server/libexec" + ) + '' + stdenv.lib.optionalString (tsmbac != null) '' + export XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I${tsmbac}/lib64/sample -DXBSA_TSMLIB=\\\"${tsmbac}/lib64/libApiTSM64.so\\\"" + export XBSA_XLIBS="-ldl" + ''; + + buildFlags = [ "all_nolibafs" ]; + + postBuild = '' + for d in doc/xml/{AdminGuide,QuickStartUnix,UserGuide}; do + make -C "''${d}" index.html + done + ''; + + postInstall = '' + mkdir -p $doc/share/doc/openafs/{AdminGuide,QuickStartUnix,UserGuide} + cp -r doc/{pdf,protocol,txt} README LICENSE $doc/share/doc/openafs + for d in AdminGuide QuickStartUnix UserGuide ; do + cp "doc/xml/''${d}"/*.html "$doc/share/doc/openafs/''${d}" + done + + rm -r $out/lib/openafs + ''; + + # Avoid references to $TMPDIR by removing it and let patchelf cleanup the + # binaries. + preFixup = '' + rm -rf "$(pwd)" && mkdir "$(pwd)" + + find $out -type f -exec remove-references-to -t $server '{}' '+' + ''; + + meta = with stdenv.lib; { + outputsToInstall = [ "out" "doc" "man" ]; + description = "Open AFS client"; + homepage = https://www.openafs.org; + license = licenses.ipl10; + platforms = platforms.linux; + maintainers = [ maintainers.z77z maintainers.spacefrogg ]; + }; +} diff --git a/pkgs/servers/openafs/1.8/module.nix b/pkgs/servers/openafs/1.8/module.nix new file mode 100644 index 00000000000..356d3cf37c3 --- /dev/null +++ b/pkgs/servers/openafs/1.8/module.nix @@ -0,0 +1,60 @@ +{ stdenv, fetchurl, which, autoconf, automake, flex, yacc +, kernel, glibc, perl, libtool_2, kerberos }: + +with (import ./srcs.nix { inherit fetchurl; }); + +let + modDestDir = "$out/lib/modules/${kernel.modDirVersion}/extra/openafs"; + kernelBuildDir = "${kernel.dev}/lib/modules/${kernel.modDirVersion}/build"; + +in stdenv.mkDerivation rec { + name = "openafs-${version}-${kernel.version}"; + inherit version src; + + nativeBuildInputs = [ autoconf automake flex libtool_2 perl which yacc ] + ++ kernel.moduleBuildDependencies; + + buildInputs = [ kerberos ]; + + hardeningDisable = [ "pic" ]; + + configureFlags = [ + "--with-linux-kernel-build=${kernelBuildDir}" + "--sysconfdir=/etc" + "--localstatedir=/var" + "--with-gssapi" + "--disable-linux-d_splice-alias-extra-iput" + ]; + + preConfigure = '' + patchShebangs . + for i in `grep -l -R '/usr/\(include\|src\)' .`; do + echo "Patch /usr/include and /usr/src in $i" + substituteInPlace $i \ + --replace "/usr/include" "${glibc.dev}/include" \ + --replace "/usr/src" "${kernelBuildDir}" + done + + ./regen.sh -q + ''; + + buildPhase = '' + make V=1 only_libafs + ''; + + installPhase = '' + mkdir -p ${modDestDir} + cp src/libafs/MODLOAD-*/libafs-${kernel.version}.* ${modDestDir}/libafs.ko + xz -f ${modDestDir}/libafs.ko + ''; + + meta = with stdenv.lib; { + description = "Open AFS client kernel module"; + homepage = https://www.openafs.org; + license = licenses.ipl10; + platforms = platforms.linux; + maintainers = [ maintainers.z77z maintainers.spacefrogg ]; + broken = (versionOlder kernel.version "3.18") || stdenv.targetPlatform.isAarch64; + }; + +} diff --git a/pkgs/servers/openafs/1.8/srcs.nix b/pkgs/servers/openafs/1.8/srcs.nix new file mode 100644 index 00000000000..e5150452899 --- /dev/null +++ b/pkgs/servers/openafs/1.8/srcs.nix @@ -0,0 +1,14 @@ +{ fetchurl }: +rec { + version = "1.8.0"; + src = fetchurl { + url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-src.tar.bz2"; + sha256 = "63fae6b3a4339e4a40945fae1afb9b99a5e7f8e8dbde668938ab8c4ff569fd7d"; + }; + + srcs = [ src + (fetchurl { + url = "http://www.openafs.org/dl/openafs/${version}/openafs-${version}-doc.tar.bz2"; + sha256 = "e26f3bb399f524b4978543eb3ec169fd58f2d409cf4bc22c75c65fb9b09f12e8"; + })]; +} diff --git a/pkgs/servers/openafs/1.8/tsmbac.patch b/pkgs/servers/openafs/1.8/tsmbac.patch new file mode 100644 index 00000000000..f68c777b6f0 --- /dev/null +++ b/pkgs/servers/openafs/1.8/tsmbac.patch @@ -0,0 +1,62 @@ +diff -ru openafs-1.8.0/src/butc/afsxbsa.c openafs-1.8.0.new/src/butc/afsxbsa.c +--- openafs-1.8.0/src/butc/afsxbsa.c 2018-04-06 03:21:12.000000000 +0200 ++++ openafs-1.8.0.new/src/butc/afsxbsa.c 2018-06-12 16:26:26.272522305 +0200 +@@ -651,7 +651,7 @@ + #if defined(AFS_AIX_ENV) + dynlib = dlopen("/usr/lib/libApiDS.a(dsmapish.o)", RTLD_NOW | RTLD_LOCAL | RTLD_MEMBER); + #elif defined (AFS_AMD64_LINUX26_ENV) +- dynlib = dlopen("/usr/lib64/libApiTSM64.so", RTLD_NOW | RTLD_LOCAL); ++ dynlib = dlopen(XBSA_TSMLIB, RTLD_NOW | RTLD_LOCAL); + #elif defined(AFS_SUN5_ENV) || defined(AFS_LINUX26_ENV) + dynlib = dlopen("/usr/lib/libApiDS.so", RTLD_NOW | RTLD_LOCAL); + #else +diff -ru openafs-1.8.0/src/cf/tivoli.m4 openafs-1.8.0.new/src/cf/tivoli.m4 +--- openafs-1.8.0/src/cf/tivoli.m4 2018-04-06 03:21:12.000000000 +0200 ++++ openafs-1.8.0.new/src/cf/tivoli.m4 2018-06-12 16:26:26.072522485 +0200 +@@ -1,45 +1,7 @@ + AC_DEFUN([OPENAFS_TIVOLI_TESTS],[ + dnl check for tivoli + AC_MSG_CHECKING(for tivoli tsm butc support) +-XBSA_CFLAGS="" +-if test "$enable_tivoli_tsm" = "yes"; then +- XBSADIR1=/usr/tivoli/tsm/client/api/bin/xopen +- XBSADIR2=/opt/tivoli/tsm/client/api/bin/xopen +- XBSADIR3=/usr/tivoli/tsm/client/api/bin/sample +- XBSADIR4=/opt/tivoli/tsm/client/api/bin/sample +- XBSADIR5=/usr/tivoli/tsm/client/api/bin64/sample +- XBSADIR6=/opt/tivoli/tsm/client/api/bin64/sample +- +- if test -r "$XBSADIR3/dsmapifp.h"; then +- XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR3" +- XBSA_XLIBS="-ldl" +- AC_MSG_RESULT([yes, $XBSA_CFLAGS]) +- elif test -r "$XBSADIR4/dsmapifp.h"; then +- XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR4" +- XBSA_XLIBS="-ldl" +- AC_MSG_RESULT([yes, $XBSA_CFLAGS]) +- elif test -r "$XBSADIR5/dsmapifp.h"; then +- XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR5" +- XBSA_XLIBS="-ldl" +- AC_MSG_RESULT([yes, $XBSA_CFLAGS]) +- elif test -r "$XBSADIR6/dsmapifp.h"; then +- XBSA_CFLAGS="-Dxbsa -DNEW_XBSA -I$XBSADIR6" +- XBSA_XLIBS="-ldl" +- AC_MSG_RESULT([yes, $XBSA_CFLAGS]) +- elif test -r "$XBSADIR1/xbsa.h"; then +- XBSA_CFLAGS="-Dxbsa -I$XBSADIR1" +- XBSA_XLIBS="" +- AC_MSG_RESULT([yes, $XBSA_CFLAGS]) +- elif test -r "$XBSADIR2/xbsa.h"; then +- XBSA_CFLAGS="-Dxbsa -I$XBSADIR2" +- XBSA_XLIBS="" +- AC_MSG_RESULT([yes, $XBSA_CFLAGS]) +- else +- AC_MSG_RESULT([no, missing xbsa.h and dsmapifp.h header files]) +- fi +-else +- AC_MSG_RESULT([no]) +-fi ++AC_MSG_RESULT([yes]) + AC_SUBST(XBSA_CFLAGS) + AC_SUBST(XBSA_XLIBS) + XLIBS="$XBSA_XLIBS $XLIBS" diff --git a/pkgs/servers/radicale/default.nix b/pkgs/servers/radicale/default.nix index 171fcc887d2..077192fbef0 100644 --- a/pkgs/servers/radicale/default.nix +++ b/pkgs/servers/radicale/default.nix @@ -1,11 +1,26 @@ -{ stdenv, fetchFromGitHub, python3Packages }: +{ stdenv, fetchFromGitHub, python3 }: let version = "2.1.9"; sha256 = "1sywxn7j9bq39qwq74h327crc44j9049cykai1alv44agx8s1nhz"; + + python = python3.override { + packageOverrides = self: super: { + + # https://github.com/eventable/vobject/issues/112 + python-dateutil = super.python-dateutil.overridePythonAttrs (oldAttrs: rec { + version = "2.6.1"; + src = oldAttrs.src.override { + inherit version; + sha256 = "891c38b2a02f5bb1be3e4793866c8df49c7d19baabf9c1bad62547e0b4866aca"; + }; + }); + + }; + }; in -python3Packages.buildPythonApplication { +python.pkgs.buildPythonApplication { name = "radicale-${version}"; inherit version; @@ -18,7 +33,7 @@ python3Packages.buildPythonApplication { doCheck = false; - propagatedBuildInputs = with python3Packages; [ + propagatedBuildInputs = with python.pkgs; [ vobject passlib pytz diff --git a/pkgs/servers/sabnzbd/default.nix b/pkgs/servers/sabnzbd/default.nix index 1b5a8c24424..b7fddeb854d 100644 --- a/pkgs/servers/sabnzbd/default.nix +++ b/pkgs/servers/sabnzbd/default.nix @@ -28,7 +28,7 @@ in stdenv.mkDerivation rec { meta = with stdenv.lib; { description = "Usenet NZB downloader, par2 repairer and auto extracting server"; - homepage = http://sabnzbd.org; + homepage = https://sabnzbd.org; license = licenses.gpl2Plus; platforms = platforms.linux; maintainers = with stdenv.lib.maintainers; [ fridh ]; diff --git a/pkgs/shells/zsh/antibody/default.nix b/pkgs/shells/zsh/antibody/default.nix index 6d428b69e63..665f403047f 100644 --- a/pkgs/shells/zsh/antibody/default.nix +++ b/pkgs/shells/zsh/antibody/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { name = "antibody-${version}"; - version = "3.5.0"; + version = "3.5.1"; rev = "v${version}"; goPackagePath = "github.com/getantibody/antibody"; @@ -11,7 +11,7 @@ buildGoPackage rec { inherit rev; owner = "getantibody"; repo = "antibody"; - sha256 = "0x9wfki7cl3cm9h21zj37196gwdzgllfgqmgy9n86m82wbla6slb"; + sha256 = "0bqq59vnnm80jiqlhn7wfyzj96nkv8k9zp8i4sgcj8gvk1zq2lbc"; }; goDeps = ./deps.nix; diff --git a/pkgs/shells/zsh/oh-my-zsh/default.nix b/pkgs/shells/zsh/oh-my-zsh/default.nix index 1ff9455adec..a11a530bcdb 100644 --- a/pkgs/shells/zsh/oh-my-zsh/default.nix +++ b/pkgs/shells/zsh/oh-my-zsh/default.nix @@ -66,7 +66,7 @@ stdenv.mkDerivation rec { $ cp -v $(nix-env -q --out-path oh-my-zsh | cut -d' ' -f3)/share/oh-my-zsh/templates/zshrc.zsh-template ~/.zshrc ''; - homepage = "http://ohmyz.sh/"; + homepage = https://ohmyz.sh/; license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ scolobb nequissimus ]; diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix index fe165b1e66e..07311c2c64a 100644 --- a/pkgs/tools/admin/lego/default.nix +++ b/pkgs/tools/admin/lego/default.nix @@ -1,15 +1,15 @@ { lib, fetchFromGitHub, buildGoPackage }: buildGoPackage rec { - name = "lego-unstable-${version}"; - version = "2018-02-02"; - rev = "06a8e7c475c03ef8d4773284ac63357d2810601b"; + name = "lego-${version}"; + version = "1.0.1"; + rev = "v${version}"; src = fetchFromGitHub { inherit rev; owner = "xenolf"; repo = "lego"; - sha256 = "11a9gcgi3317z4lb1apkf6dnbjhf7xni0670nric3fbf5diqfwh2"; + sha256 = "1l9winhqwid8ac8il303qkhsn0v5h7zhlklviszfi1rjal38ipiz"; }; goPackagePath = "github.com/xenolf/lego"; diff --git a/pkgs/tools/audio/beets/default.nix b/pkgs/tools/audio/beets/default.nix index b53a9b7eb0f..b6ff7e5c967 100644 --- a/pkgs/tools/audio/beets/default.nix +++ b/pkgs/tools/audio/beets/default.nix @@ -17,6 +17,7 @@ , enableLastfm ? true , enableMpd ? true , enableReplaygain ? true, bs1770gain ? null +, enableSonosUpdate ? true , enableThumbnails ? true , enableWeb ? true @@ -37,6 +38,7 @@ assert enableKeyfinder -> keyfinder-cli != null; assert enableLastfm -> pythonPackages.pylast != null; assert enableMpd -> pythonPackages.mpd2 != null; assert enableReplaygain -> bs1770gain != null; +assert enableSonosUpdate -> pythonPackages.soco != null; assert enableThumbnails -> pythonPackages.pyxdg != null; assert enableWeb -> pythonPackages.flask != null; @@ -59,6 +61,7 @@ let mpdstats = enableMpd; mpdupdate = enableMpd; replaygain = enableReplaygain; + sonosupdate = enableSonosUpdate; thumbnails = enableThumbnails; web = enableWeb; }; @@ -95,13 +98,13 @@ let in pythonPackages.buildPythonApplication rec { name = "beets-${version}"; - version = "1.4.6"; + version = "1.4.7"; src = fetchFromGitHub { owner = "beetbox"; repo = "beets"; rev = "v${version}"; - sha256 = "0m8macydkn1fp4ymig0rg7bzw77rrm454q763gxdpq2kg08yl5py"; + sha256 = "17gfz0g7pqm6wha8zf63zpw07zgi787w1bjwdcxdh1l3z4m7jc9l"; }; propagatedBuildInputs = [ @@ -129,6 +132,7 @@ in pythonPackages.buildPythonApplication rec { ++ optional enableKeyfinder keyfinder-cli ++ optional enableLastfm pythonPackages.pylast ++ optional enableMpd pythonPackages.mpd2 + ++ optional enableSonosUpdate pythonPackages.soco ++ optional enableThumbnails pythonPackages.pyxdg ++ optional enableWeb pythonPackages.flask ++ optional enableAlternatives plugins.alternatives diff --git a/pkgs/tools/filesystems/f2fs-tools/default.nix b/pkgs/tools/filesystems/f2fs-tools/default.nix index 53b17f45f9f..321259292ef 100644 --- a/pkgs/tools/filesystems/f2fs-tools/default.nix +++ b/pkgs/tools/filesystems/f2fs-tools/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { name = "f2fs-tools-${version}"; - version = "1.9.0"; + version = "1.10.0"; src = fetchgit { url = "git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs-tools.git"; rev = "refs/tags/v${version}"; - sha256 = "0aj9dbhv7vv19pyb2rhcg99v5v0s66sb9yzrdmi46bmvzz124pal"; + sha256 = "1254pd254l1hxkzkkzqmzc0j9vywj2wddg9apqaixjninj21jrbc"; }; nativeBuildInputs = [ autoreconfHook pkgconfig ]; diff --git a/pkgs/tools/misc/papis/default.nix b/pkgs/tools/misc/papis/default.nix index 49c57ab8dc9..20fafff587c 100644 --- a/pkgs/tools/misc/papis/default.nix +++ b/pkgs/tools/misc/papis/default.nix @@ -1,12 +1,24 @@ { buildPythonApplication, lib, fetchFromGitHub, bashInteractive -, argcomplete, arxiv2bib, beautifulsoup4, bibtexparser -, configparser, dmenu-python, habanero, papis-python-rofi -, pylibgen, prompt_toolkit, pyparser, pytest, python_magic -, pyyaml, requests, unidecode, urwid, vobject, tkinter -, vim +, python3, vim }: -buildPythonApplication rec { +let + python = python3.override { + packageOverrides = self: super: { + + # https://github.com/eventable/vobject/issues/112 + python-dateutil = super.python-dateutil.overridePythonAttrs (oldAttrs: rec { + version = "2.6.1"; + src = oldAttrs.src.override { + inherit version; + sha256 = "891c38b2a02f5bb1be3e4793866c8df49c7d19baabf9c1bad62547e0b4866aca"; + }; + }); + + }; + }; + +in python.pkgs.buildPythonApplication rec { pname = "papis"; version = "0.5.3"; @@ -23,7 +35,7 @@ buildPythonApplication rec { patchShebangs tests ''; - propagatedBuildInputs = [ + propagatedBuildInputs = with python.pkgs; [ argcomplete arxiv2bib beautifulsoup4 bibtexparser configparser dmenu-python habanero papis-python-rofi pylibgen prompt_toolkit pyparser python_magic pyyaml @@ -31,7 +43,7 @@ buildPythonApplication rec { vim ]; - checkInputs = [ pytest ]; + checkInputs = with python.pkgs; [ pytest ]; # Papis tries to create the config folder under $HOME during the tests checkPhase = '' diff --git a/pkgs/tools/misc/progress/default.nix b/pkgs/tools/misc/progress/default.nix index 0b48a5a66c6..b29d0eafcc9 100644 --- a/pkgs/tools/misc/progress/default.nix +++ b/pkgs/tools/misc/progress/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { name = "progress-${version}"; - version = "0.13.1"; + version = "0.14"; src = fetchFromGitHub { owner = "Xfennec"; repo = "progress"; rev = "v${version}"; - sha256 = "13nhczzb0zqg5zfpf5vcfi6aahyb8lrr52pvpjgi1zfkh2m9vnig"; + sha256 = "1lk2v4b767klib93an4g3f7z5qrv9kdk9jf7545vw1immc4kamrl"; }; nativeBuildInputs = [ pkgconfig which ]; diff --git a/pkgs/tools/misc/yubikey-manager/default.nix b/pkgs/tools/misc/yubikey-manager/default.nix index c7fbeddd13a..c8c0ba706c3 100644 --- a/pkgs/tools/misc/yubikey-manager/default.nix +++ b/pkgs/tools/misc/yubikey-manager/default.nix @@ -2,11 +2,11 @@ yubikey-personalization, libu2f-host, libusb1 }: pythonPackages.buildPythonPackage rec { - name = "yubikey-manager-0.4.0"; + name = "yubikey-manager-0.7.0"; srcs = fetchurl { url = "https://developers.yubico.com/yubikey-manager/Releases/${name}.tar.gz"; - sha256 = "0dc0mqg8r6kjh0s2rmrggfxbx9imslajjrj80rffcvg64a2vgsgb"; + sha256 = "13vvl3jc5wg6d4h5cpaf969apsbf72dxad560d02ly061ss856zr"; }; propagatedBuildInputs = @@ -18,6 +18,7 @@ pythonPackages.buildPythonPackage rec { pyusb pyopenssl six + fido2 ] ++ [ libu2f-host libusb1 diff --git a/pkgs/tools/networking/curl/default.nix b/pkgs/tools/networking/curl/default.nix index 4a476a6ba13..2ebae0b0c17 100644 --- a/pkgs/tools/networking/curl/default.nix +++ b/pkgs/tools/networking/curl/default.nix @@ -100,7 +100,7 @@ stdenv.mkDerivation rec { configureFlags = [ ( if sslSupport then "--with-ssl=${openssl.crossDrv}" else "--without-ssl" ) ( if gnutlsSupport then "--with-gnutls=${gnutls.crossDrv}" else "--without-gnutls" ) - "--with-random /dev/urandom" + "--with-random=/dev/urandom" ]; }; diff --git a/pkgs/tools/networking/dnsperf/default.nix b/pkgs/tools/networking/dnsperf/default.nix index b978925c62b..015046f2bda 100644 --- a/pkgs/tools/networking/dnsperf/default.nix +++ b/pkgs/tools/networking/dnsperf/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { outputs = [ "out" "man" "doc" ]; buildInputs = [ bind zlib openssl ] - ++ stdenv.lib.optional stdenv.isLinux [ libcap libseccomp ]; + ++ stdenv.lib.optional stdenv.isLinux [ libcap libcap.lib libseccomp ]; postInstall = '' mkdir -p "$out/share/doc/" diff --git a/pkgs/tools/security/lynis/default.nix b/pkgs/tools/security/lynis/default.nix index 56a47ea3874..f241d581607 100644 --- a/pkgs/tools/security/lynis/default.nix +++ b/pkgs/tools/security/lynis/default.nix @@ -2,14 +2,14 @@ stdenv.mkDerivation rec { pname = "lynis"; - version = "2.6.4"; + version = "2.6.5"; name = "${pname}-${version}"; src = fetchFromGitHub { owner = "CISOfy"; repo = "${pname}"; rev = "${version}"; - sha256 = "1p449gsackcavw5h9yn0ckk1fkakx9d55izi22gh8wfvijdfhw10"; + sha256 = "0q8irq7hmb0nalmc8xn13d08j0qf6sxfiq2c9s7z1c0gd357gmh9"; }; nativeBuildInputs = [ makeWrapper perl ]; diff --git a/pkgs/tools/security/volatility/default.nix b/pkgs/tools/security/volatility/default.nix index 086c82faa4c..e3b7fb643a2 100644 --- a/pkgs/tools/security/volatility/default.nix +++ b/pkgs/tools/security/volatility/default.nix @@ -14,7 +14,7 @@ pythonPackages.buildPythonApplication rec { propagatedBuildInputs = [ pythonPackages.pycrypto pythonPackages.distorm3 ]; meta = with stdenv.lib; { - homepage = http://www.volatilityfoundation.org/; + homepage = https://www.volatilityfoundation.org/; description = "Advanced memory forensics framework"; maintainers = with maintainers; [ bosu ]; license = stdenv.lib.licenses.gpl2Plus; diff --git a/pkgs/tools/text/mpage/default.nix b/pkgs/tools/text/mpage/default.nix index 4ebe62ef9a5..6665b377ccf 100644 --- a/pkgs/tools/text/mpage/default.nix +++ b/pkgs/tools/text/mpage/default.nix @@ -1,10 +1,10 @@ { fetchurl, stdenv }: stdenv.mkDerivation rec { - name = "mpage-2.5.6"; + name = "mpage-2.5.7"; src = fetchurl { url = "http://www.mesa.nl/pub/mpage/${name}.tgz"; - sha256 = "016w9sm06sn1d2lim4p8fzl6wbmad3wigxhflsybzi7p4zy6vrjg"; + sha256 = "1zn37r5xrvjgjbw2bdkc0r7s6q8b1krmcryzj0yf0dyxbx79rasi"; }; patchPhase = '' diff --git a/pkgs/tools/virtualization/distrobuilder/default.nix b/pkgs/tools/virtualization/distrobuilder/default.nix index 55a8352fe77..83a340348c8 100644 --- a/pkgs/tools/virtualization/distrobuilder/default.nix +++ b/pkgs/tools/virtualization/distrobuilder/default.nix @@ -1,10 +1,15 @@ { stdenv, lib, pkgconfig, buildGoPackage, fetchFromGitHub -, makeWrapper, coreutils, gnupg, gnutar, squashfsTools}: +, makeWrapper, coreutils, gnupg, gnutar, squashfsTools, debootstrap +}: +let binPath = stdenv.lib.makeBinPath [ + coreutils gnupg gnutar squashfsTools debootstrap +]; +in buildGoPackage rec { name = "distrobuilder-${version}"; - version = "2018_04_28"; - rev = "406fd5fe7dec4a969ec08bdf799c8ae483d37489"; + version = "2018_06_29"; + rev = "e5acd73f81ad37151f3a2088fde650cea9b6a7e6"; goPackagePath = "github.com/lxc/distrobuilder"; @@ -12,17 +17,14 @@ buildGoPackage rec { inherit rev; owner = "lxc"; repo = "distrobuilder"; - sha256 = "11bd600g36pf89vza9jl7fp7cjy5h67nfvhxlnwghb3z40pq9lnc"; + sha256 = "19rc11s0paqga72jr8bziixihfv7dlkszmfk6xkg0349hzdg0gac"; }; goDeps = ./deps.nix; postInstall = '' - wrapProgram $bin/bin/distrobuilder --prefix PATH ":" ${stdenv.lib.makeBinPath [ - coreutils gnupg gnutar squashfsTools - ]} + wrapProgram $bin/bin/distrobuilder --prefix PATH ":" ${binPath} ''; - nativeBuildInputs = [ pkgconfig makeWrapper ]; meta = with stdenv.lib; { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index c477767d707..6b1219690d7 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1693,13 +1693,14 @@ with pkgs; ciopfs = callPackage ../tools/filesystems/ciopfs { }; citrix_receiver = callPackage ../applications/networking/remote/citrix-receiver { }; - citrix_receiver_13_9_1 = citrix_receiver.override { version = "13.9.1"; }; - citrix_receiver_13_9_0 = citrix_receiver.override { version = "13.9.0"; }; - citrix_receiver_13_8_0 = citrix_receiver.override { version = "13.8.0"; }; - citrix_receiver_13_7_0 = citrix_receiver.override { version = "13.7.0"; }; - citrix_receiver_13_6_0 = citrix_receiver.override { version = "13.6.0"; }; - citrix_receiver_13_5_0 = citrix_receiver.override { version = "13.5.0"; }; - citrix_receiver_13_4_0 = citrix_receiver.override { version = "13.4.0"; }; + citrix_receiver_13_10_0 = citrix_receiver.override { version = "13.10.0"; }; + citrix_receiver_13_9_1 = citrix_receiver.override { version = "13.9.1"; }; + citrix_receiver_13_9_0 = citrix_receiver.override { version = "13.9.0"; }; + citrix_receiver_13_8_0 = citrix_receiver.override { version = "13.8.0"; }; + citrix_receiver_13_7_0 = citrix_receiver.override { version = "13.7.0"; }; + citrix_receiver_13_6_0 = citrix_receiver.override { version = "13.6.0"; }; + citrix_receiver_13_5_0 = citrix_receiver.override { version = "13.5.0"; }; + citrix_receiver_13_4_0 = citrix_receiver.override { version = "13.4.0"; }; citra = libsForQt5.callPackage ../misc/emulators/citra { }; @@ -3535,6 +3536,10 @@ with pkgs; openssl = openssl_1_1_0; }; + nodePackages_10_x = callPackage ../development/node-packages/default-v10.nix { + nodejs = pkgs.nodejs-10_x; + }; + nodePackages_8_x = callPackage ../development/node-packages/default-v8.nix { nodejs = pkgs.nodejs-8_x; }; @@ -10094,6 +10099,24 @@ with pkgs; libgadu = callPackage ../development/libraries/libgadu { }; + gap-libgap-compatible = let + version = "4r8p6"; + pkgVer = "2016_11_12-14_25"; + in + (gap.override { keepAllPackages = false; }).overrideAttrs (oldAttrs: { + name = "libgap-${oldAttrs.pname}-${version}"; + src = fetchurl { + url = "https://www.gap-system.org/pub/gap/gap48/tar.bz2/gap${version}_${pkgVer}.tar.bz2"; + sha256 = "19n2p1mdg33s2x9rs51iak7rgndc1cwr56jyqnah0g1ydgg1yh6b"; + }; + patches = (oldAttrs.patches or []) ++ [ + # don't install any packages by default (needed for interop with libgap, probably obsolete with 4r10 + (fetchpatch { + url = "https://git.sagemath.org/sage.git/plain/build/pkgs/gap/patches/nodefaultpackages.patch?id=07d6c37d18811e2b377a9689790a7c5e24da16ba"; + sha256 = "1xwj766m3axrxbkyx13hy3q8s2wkqxy3m6mgpwq3c3n4vk3v416v"; + }) + ]; + }); libgap = callPackage ../development/libraries/libgap { }; libgdata = gnome3.libgdata; @@ -12818,7 +12841,8 @@ with pkgs; oauth2_proxy = callPackage ../servers/oauth2_proxy { }; - openafs = callPackage ../servers/openafs { tsmbac = null; ncurses = null; }; + openafs = callPackage ../servers/openafs/1.6 { tsmbac = null; ncurses = null; }; + openafs_1_8 = callPackage ../servers/openafs/1.8 { tsmbac = null; ncurses = null; }; openresty = callPackage ../servers/http/openresty { }; @@ -13832,7 +13856,8 @@ with pkgs; rtlwifi_new = callPackage ../os-specific/linux/rtlwifi_new { }; - openafs = callPackage ../servers/openafs/module.nix { }; + openafs = callPackage ../servers/openafs/1.6/module.nix { }; + openafs_1_8 = callPackage ../servers/openafs/1.8/module.nix { }; facetimehd = callPackage ../os-specific/linux/facetimehd { }; @@ -14579,18 +14604,26 @@ with pkgs; camingo-code = callPackage ../data/fonts/camingo-code { }; + combinatorial_designs = callPackage ../data/misc/combinatorial_designs { }; + + conway_polynomials = callPackage ../data/misc/conway_polynomials { }; + dosis = callPackage ../data/fonts/dosis { }; dosemu_fonts = callPackage ../data/fonts/dosemu-fonts { }; eb-garamond = callPackage ../data/fonts/eb-garamond { }; + elliptic_curves = callPackage ../data/misc/elliptic_curves { }; + faba-icon-theme = callPackage ../data/icons/faba-icon-theme { }; faba-mono-icons = callPackage ../data/icons/faba-mono-icons { }; fixedsys-excelsior = callPackage ../data/fonts/fixedsys-excelsior { }; + graphs = callPackage ../data/misc/graphs { }; + emacs-all-the-icons-fonts = callPackage ../data/fonts/emacs-all-the-icons-fonts { }; emojione = callPackage ../data/fonts/emojione { @@ -14795,8 +14828,14 @@ with pkgs; paratype-pt-sans = callPackage ../data/fonts/paratype-pt/sans.nix {}; paratype-pt-serif = callPackage ../data/fonts/paratype-pt/serif.nix {}; + pari-galdata = callPackage ../data/misc/pari-galdata {}; + + pari-seadata-small = callPackage ../data/misc/pari-seadata-small {}; + poly = callPackage ../data/fonts/poly { }; + polytopes_db = callPackage ../data/misc/polytopes_db { }; + posix_man_pages = callPackage ../data/documentation/man-pages-posix { }; powerline-fonts = callPackage ../data/fonts/powerline-fonts { }; @@ -17385,6 +17424,8 @@ with pkgs; sawfish = callPackage ../applications/window-managers/sawfish { }; + sidplayfp = callPackage ../applications/audio/sidplayfp { }; + sxhkd = callPackage ../applications/window-managers/sxhkd { }; sxhkd-unstable = callPackage ../applications/window-managers/sxhkd/unstable.nix { }; @@ -19204,7 +19245,7 @@ with pkgs; zim = callPackage ../applications/office/zim { }; - zoom-us = callPackage ../applications/networking/instant-messengers/zoom-us { }; + zoom-us = libsForQt5.callPackage ../applications/networking/instant-messengers/zoom-us { }; zotero = callPackage ../applications/office/zotero { }; @@ -19570,6 +19611,8 @@ with pkgs; nethack = callPackage ../games/nethack { }; + nethack-x11 = callPackage ../games/nethack { x11Mode = true; }; + neverball = callPackage ../games/neverball { }; nexuiz = callPackage ../games/nexuiz { }; @@ -20342,7 +20385,10 @@ with pkgs; petsc = callPackage ../development/libraries/science/math/petsc { }; - sage = callPackage ../applications/science/math/sage { }; + sage = callPackage ../applications/science/math/sage { + nixpkgs = pkgs; + }; + sageWithDoc = sage.override { withDoc = true; }; suitesparse_4_2 = callPackage ../development/libraries/science/math/suitesparse/4.2.nix { }; suitesparse_4_4 = callPackage ../development/libraries/science/math/suitesparse {}; diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index 2bc5671e987..de9b6d38b74 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -74,7 +74,7 @@ in rec { version = "8.7.2"; }; coq_8_8 = callPackage ../applications/science/logic/coq { - version = "8.8.0"; + version = "8.8.1"; }; coqPackages_8_5 = mkCoqPackages coq_8_5; diff --git a/pkgs/top-level/haskell-packages.nix b/pkgs/top-level/haskell-packages.nix index ec471538095..a6044c7d6c4 100644 --- a/pkgs/top-level/haskell-packages.nix +++ b/pkgs/top-level/haskell-packages.nix @@ -72,6 +72,12 @@ in rec { buildLlvmPackages = buildPackages.llvmPackages_5; llvmPackages = pkgs.llvmPackages_5; }; + ghc861 = callPackage ../development/compilers/ghc/8.6.1.nix rec { + bootPkgs = packages.ghc822; + inherit (bootPkgs) alex happy hscolour; + buildLlvmPackages = buildPackages.llvmPackages_5; + llvmPackages = pkgs.llvmPackages_5; + }; ghcHEAD = callPackage ../development/compilers/ghc/head.nix rec { bootPkgs = packages.ghc821Binary; inherit (bootPkgs) alex happy hscolour; diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index d69fc010e27..c34ba8762f0 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -7927,11 +7927,11 @@ let self = _self // overrides; _self = with self; { ImageExifTool = buildPerlPackage rec { name = "Image-ExifTool-${version}"; - version = "10.80"; + version = "11.01"; src = fetchurl { url = "https://www.sno.phy.queensu.ca/~phil/exiftool/${name}.tar.gz"; - sha256 = "14rwr5wk2snqv4yva6fax1gfsdv88941n237m0wyzn3n0xh9dy5w"; + sha256 = "175w34n73mypdpbaqj2vgqsfp59yvfrn8k7zmx4cawnp895bypvh"; }; meta = with stdenv.lib; { diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 8f88fb48101..c31c3543dc3 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -264,6 +264,8 @@ in { diff-match-patch = callPackage ../development/python-modules/diff-match-patch { }; + fido2 = callPackage ../development/python-modules/fido2 { }; + globus-sdk = callPackage ../development/python-modules/globus-sdk { }; goocalendar = callPackage ../development/python-modules/goocalendar { }; @@ -433,9 +435,7 @@ in { python-hosts = callPackage ../development/python-modules/python-hosts { }; - python-openid = callPackage (if isPy3k - then ../development/python-modules/python3-openid - else ../development/python-modules/python-openid) { }; + python3-openid = callPackage ../development/python-modules/python3-openid { }; python-periphery = callPackage ../development/python-modules/python-periphery { }; @@ -12847,6 +12847,8 @@ in { shapely = callPackage ../development/python-modules/shapely { }; + soco = callPackage ../development/python-modules/soco { }; + sopel = buildPythonPackage rec { name = "sopel-6.3.1"; @@ -15489,28 +15491,7 @@ EOF libarcus = callPackage ../development/python-modules/libarcus { }; - pybrowserid = buildPythonPackage rec { - name = "PyBrowserID-${version}"; - version = "0.9.2"; - disabled = isPy3k; # Errors in the test suite. - - src = pkgs.fetchgit { - url = https://github.com/mozilla/PyBrowserID.git; - rev = "refs/tags/${version}"; - sha256 = "0zsljr45gm8a4c0lxh6mgfc60a5fijhs4pwijb9fdkq16zw0pmf0"; - }; - - doCheck = false; # some tests use networking - - buildInputs = with self; [ mock unittest2 ]; - propagatedBuildInputs = with self; [ requests ]; - - meta = { - description = "Python library for the BrowserID Protocol"; - homepage = "https://github.com/mozilla/PyBrowserID"; - license = licenses.mpl20; - }; - }; + pybrowserid = callPackage ../development/python-modules/pybrowserid { }; pyzmq = callPackage ../development/python-modules/pyzmq { };