diff --git a/lib/systems/doubles.nix b/lib/systems/doubles.nix index aa630b51ed8c..e577059687b0 100644 --- a/lib/systems/doubles.nix +++ b/lib/systems/doubles.nix @@ -26,22 +26,22 @@ let # Linux "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" - "armv7l-linux" "i686-linux" "mipsel-linux" "powerpc64-linux" - "powerpc64le-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" - "m68k-linux" "s390-linux" + "armv7l-linux" "i686-linux" "m68k-linux" "mipsel-linux" + "powerpc64-linux" "powerpc64le-linux" "riscv32-linux" + "riscv64-linux" "s390-linux" "x86_64-linux" # MMIXware "mmix-mmixware" # NetBSD "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" - "i686-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" - "riscv64-netbsd" "x86_64-netbsd" + "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" + "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" # none - "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" "msp430-none" - "or1k-none" "powerpc-none" "riscv32-none" "riscv64-none" "vc4-none" "m68k-none" - "s390-none" "x86_64-none" + "aarch64-none" "arm-none" "armv6l-none" "avr-none" "i686-none" + "msp430-none" "or1k-none" "m68k-none" "powerpc-none" + "riscv32-none" "riscv64-none" "s390-none" "vc4-none" "x86_64-none" # OpenBSD "i686-openbsd" "x86_64-openbsd" diff --git a/lib/systems/parse.nix b/lib/systems/parse.nix index 386f252f2ba4..77e941a913cf 100644 --- a/lib/systems/parse.nix +++ b/lib/systems/parse.nix @@ -127,9 +127,10 @@ rec { # GNU build systems assume that older NetBSD architectures are using a.out. gnuNetBSDDefaultExecFormat = cpu: - if (cpu.family == "x86" && cpu.bits == 32) || - (cpu.family == "arm" && cpu.bits == 32) || - (cpu.family == "sparc" && cpu.bits == 32) + if (cpu.family == "arm" && cpu.bits == 32) || + (cpu.family == "sparc" && cpu.bits == 32) || + (cpu.family == "m68k" && cpu.bits == 32) || + (cpu.family == "x86" && cpu.bits == 32) then execFormats.aout else execFormats.elf; diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix index 6bd43f0d0d00..661b9bc8690c 100644 --- a/lib/tests/systems.nix +++ b/lib/tests/systems.nix @@ -29,7 +29,7 @@ with lib.systems.doubles; lib.runTests { testgnu = mseteq gnu (linux /* ++ kfreebsd ++ ... */); testillumos = mseteq illumos [ "x86_64-solaris" ]; testlinux = mseteq linux [ "aarch64-linux" "armv5tel-linux" "armv6l-linux" "armv7a-linux" "armv7l-linux" "i686-linux" "mipsel-linux" "riscv32-linux" "riscv64-linux" "x86_64-linux" "powerpc64-linux" "powerpc64le-linux" "m68k-linux" "s390-linux" ]; - testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ]; + testnetbsd = mseteq netbsd [ "aarch64-netbsd" "armv6l-netbsd" "armv7a-netbsd" "armv7l-netbsd" "i686-netbsd" "m68k-netbsd" "mipsel-netbsd" "powerpc-netbsd" "riscv32-netbsd" "riscv64-netbsd" "x86_64-netbsd" ]; testopenbsd = mseteq openbsd [ "i686-openbsd" "x86_64-openbsd" ]; testwindows = mseteq windows [ "i686-cygwin" "x86_64-cygwin" "i686-windows" "x86_64-windows" ]; testunix = mseteq unix (linux ++ darwin ++ freebsd ++ openbsd ++ netbsd ++ illumos ++ cygwin ++ redox); diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml index 0cd293df40cd..fa43befea7e9 100644 --- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml +++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml @@ -607,6 +607,14 @@ + + + services.uptimed now uses + /var/lib/uptimed as its stateDirectory + instead of /var/spool/uptimed. Make sure to + move all files to the new directory. + +
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md index 3eefe138fb0d..7d423581059f 100644 --- a/nixos/doc/manual/release-notes/rl-2111.section.md +++ b/nixos/doc/manual/release-notes/rl-2111.section.md @@ -153,6 +153,8 @@ pt-services.clipcat.enable). - `CoenraadS.bracket-pair-colorizer` -> `coenraads.bracket-pair-colorizer` - `golang.Go` -> `golang.go` +- `services.uptimed` now uses `/var/lib/uptimed` as its stateDirectory instead of `/var/spool/uptimed`. Make sure to move all files to the new directory. + ## Other Notable Changes {#sec-release-21.11-notable-changes} - The setting [`services.openssh.logLevel`](options.html#opt-services.openssh.logLevel) `"VERBOSE"` `"INFO"`. This brings NixOS in line with upstream and other Linux distributions, and reduces log spam on servers due to bruteforcing botnets. diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 0bd789b59113..1bb98efafd2d 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -634,6 +634,7 @@ ./services/network-filesystems/glusterfs.nix ./services/network-filesystems/kbfs.nix ./services/network-filesystems/ipfs.nix + ./services/network-filesystems/litestream/default.nix ./services/network-filesystems/netatalk.nix ./services/network-filesystems/nfsd.nix ./services/network-filesystems/openafs/client.nix @@ -961,6 +962,7 @@ ./services/web-apps/moodle.nix ./services/web-apps/nextcloud.nix ./services/web-apps/nexus.nix + ./services/web-apps/node-red.nix ./services/web-apps/plantuml-server.nix ./services/web-apps/plausible.nix ./services/web-apps/pgpkeyserver-lite.nix diff --git a/nixos/modules/services/hardware/sane.nix b/nixos/modules/services/hardware/sane.nix index 8c1bde7b4158..ccf726bd182b 100644 --- a/nixos/modules/services/hardware/sane.nix +++ b/nixos/modules/services/hardware/sane.nix @@ -4,7 +4,10 @@ with lib; let - pkg = pkgs.sane-backends; + pkg = pkgs.sane-backends.override { + scanSnapDriversUnfree = config.hardware.sane.drivers.scanSnap.enable; + scanSnapDriversPackage = config.hardware.sane.drivers.scanSnap.package; + }; sanedConf = pkgs.writeTextFile { name = "saned.conf"; @@ -98,6 +101,28 @@ in ''; }; + hardware.sane.drivers.scanSnap.enable = mkOption { + type = types.bool; + default = false; + example = true; + description = '' + Whether to enable drivers for the Fujitsu ScanSnap scanners. + + The driver files are unfree and extracted from the Windows driver image. + ''; + }; + + hardware.sane.drivers.scanSnap.package = mkOption { + type = types.package; + default = pkgs.sane-drivers.epjitsu; + description = '' + Epjitsu driver package to use. Useful if you want to extract the driver files yourself. + + The process is described in the /etc/sane.d/epjitsu.conf file in + the sane-backends package. + ''; + }; + services.saned.enable = mkOption { type = types.bool; default = false; diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix index b6c1ca3e61a9..2f8e595cad00 100644 --- a/nixos/modules/services/misc/gitea.nix +++ b/nixos/modules/services/misc/gitea.nix @@ -523,19 +523,12 @@ in ''} # update all hooks' binary paths - HOOKS=$(find ${cfg.repositoryRoot} -mindepth 4 -maxdepth 6 -type f -wholename "*git/hooks/*") - if [ "$HOOKS" ] - then - sed -ri 's,/nix/store/[a-z0-9.-]+/bin/gitea,${gitea}/bin/gitea,g' $HOOKS - sed -ri 's,/nix/store/[a-z0-9.-]+/bin/env,${pkgs.coreutils}/bin/env,g' $HOOKS - sed -ri 's,/nix/store/[a-z0-9.-]+/bin/bash,${pkgs.bash}/bin/bash,g' $HOOKS - sed -ri 's,/nix/store/[a-z0-9.-]+/bin/perl,${pkgs.perl}/bin/perl,g' $HOOKS - fi + ${gitea}/bin/gitea admin regenerate hooks # update command option in authorized_keys if [ -r ${cfg.stateDir}/.ssh/authorized_keys ] then - sed -ri 's,/nix/store/[a-z0-9.-]+/bin/gitea,${gitea}/bin/gitea,g' ${cfg.stateDir}/.ssh/authorized_keys + ${gitea}/bin/gitea admin regenerate keys fi ''; diff --git a/nixos/modules/services/misc/nix-daemon.nix b/nixos/modules/services/misc/nix-daemon.nix index 133e96da0ec8..70b27b7d3d09 100644 --- a/nixos/modules/services/misc/nix-daemon.nix +++ b/nixos/modules/services/misc/nix-daemon.nix @@ -458,7 +458,7 @@ in description = "The flake reference to which is to be rewritten."; }; flake = mkOption { - type = types.unspecified; + type = types.nullOr types.attrs; default = null; example = literalExample "nixpkgs"; description = '' diff --git a/nixos/modules/services/network-filesystems/litestream/default.nix b/nixos/modules/services/network-filesystems/litestream/default.nix new file mode 100644 index 000000000000..f1806c5af0a9 --- /dev/null +++ b/nixos/modules/services/network-filesystems/litestream/default.nix @@ -0,0 +1,100 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.litestream; + settingsFormat = pkgs.formats.yaml {}; +in +{ + options.services.litestream = { + enable = mkEnableOption "litestream"; + + package = mkOption { + description = "Package to use."; + default = pkgs.litestream; + defaultText = "pkgs.litestream"; + type = types.package; + }; + + settings = mkOption { + description = '' + See the documentation. + ''; + type = settingsFormat.type; + example = { + dbs = [ + { + path = "/var/lib/db1"; + replicas = [ + { + url = "s3://mybkt.litestream.io/db1"; + } + ]; + } + ]; + }; + }; + + environmentFile = mkOption { + type = types.nullOr types.path; + default = null; + example = "/run/secrets/litestream"; + description = '' + Environment file as defined in + systemd.exec5 + . + + Secrets may be passed to the service without adding them to the + world-readable Nix store, by specifying placeholder variables as + the option value in Nix and setting these variables accordingly in the + environment file. + + By default, Litestream will perform environment variable expansion + within the config file before reading it. Any references to ''$VAR or + ''${VAR} formatted variables will be replaced with their environment + variable values. If no value is set then it will be replaced with an + empty string. + + + # Content of the environment file + LITESTREAM_ACCESS_KEY_ID=AKIAxxxxxxxxxxxxxxxx + LITESTREAM_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxx + + + Note that this file needs to be available on the host on which + this exporter is running. + ''; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + environment.etc = { + "litestream.yml" = { + source = settingsFormat.generate "litestream-config.yaml" cfg.settings; + }; + }; + + systemd.services.litestream = { + description = "Litestream"; + wantedBy = [ "multi-user.target" ]; + after = [ "networking.target" ]; + serviceConfig = { + EnvironmentFile = mkIf (cfg.environmentFile != null) cfg.environmentFile; + ExecStart = "${cfg.package}/bin/litestream replicate"; + Restart = "always"; + User = "litestream"; + Group = "litestream"; + }; + }; + + users.users.litestream = { + description = "Litestream user"; + group = "litestream"; + isSystemUser = true; + }; + users.groups.litestream = {}; + }; + meta.doc = ./litestream.xml; +} diff --git a/nixos/modules/services/network-filesystems/litestream/litestream.xml b/nixos/modules/services/network-filesystems/litestream/litestream.xml new file mode 100644 index 000000000000..598f9be8cf63 --- /dev/null +++ b/nixos/modules/services/network-filesystems/litestream/litestream.xml @@ -0,0 +1,65 @@ + + Litestream + + Litestream is a standalone streaming + replication tool for SQLite. + + +
+ Configuration + + + Litestream service is managed by a dedicated user named litestream + which needs permission to the database file. Here's an example config which gives + required permissions to access + grafana database: + +{ pkgs, ... }: +{ + users.users.litestream.extraGroups = [ "grafana" ]; + + systemd.services.grafana.serviceConfig.ExecStartPost = "+" + pkgs.writeShellScript "grant-grafana-permissions" '' + timeout=10 + + while [ ! -f /var/lib/grafana/data/grafana.db ]; + do + if [ "$timeout" == 0 ]; then + echo "ERROR: Timeout while waiting for /var/lib/grafana/data/grafana.db." + exit 1 + fi + + sleep 1 + + ((timeout--)) + done + + find /var/lib/grafana -type d -exec chmod -v 775 {} \; + find /var/lib/grafana -type f -exec chmod -v 660 {} \; + ''; + + services.litestream = { + enable = true; + + environmentFile = "/run/secrets/litestream"; + + settings = { + dbs = [ + { + path = "/var/lib/grafana/data/grafana.db"; + replicas = [{ + url = "s3://mybkt.litestream.io/grafana"; + }]; + } + ]; + }; + }; +} + + +
+ +
diff --git a/nixos/modules/services/networking/syncthing.nix b/nixos/modules/services/networking/syncthing.nix index 63b249df735e..2e92fe51e90a 100644 --- a/nixos/modules/services/networking/syncthing.nix +++ b/nixos/modules/services/networking/syncthing.nix @@ -37,13 +37,9 @@ let do sleep 1; done curl() { - while - ${pkgs.curl}/bin/curl -Ss -H "X-API-Key: $api_key" \ - --retry 100 --retry-delay 1 --retry-connrefused "$@" - status=$? - [ "$status" -eq 52 ] # retry on empty reply from server - do sleep 1; done - return "$status" + ${pkgs.curl}/bin/curl -sS -H "X-API-Key: $api_key" \ + --retry 1000 --retry-delay 1 --retry-all-errors \ + "$@" } # query the old config @@ -547,6 +543,7 @@ in { cfg.devices != {} || cfg.folders != {} || cfg.extraOptions != {} ) { description = "Syncthing configuration updater"; + requisite = [ "syncthing.service" ]; after = [ "syncthing.service" ]; wantedBy = [ "multi-user.target" ]; diff --git a/nixos/modules/services/system/uptimed.nix b/nixos/modules/services/system/uptimed.nix index 1e256c51408e..67a03876e19f 100644 --- a/nixos/modules/services/system/uptimed.nix +++ b/nixos/modules/services/system/uptimed.nix @@ -4,7 +4,7 @@ with lib; let cfg = config.services.uptimed; - stateDir = "/var/spool/uptimed"; + stateDir = "/var/lib/uptimed"; in { options = { @@ -21,12 +21,16 @@ in }; config = mkIf cfg.enable { + + environment.systemPackages = [ pkgs.uptimed ]; + users.users.uptimed = { description = "Uptimed daemon user"; home = stateDir; - createHome = true; uid = config.ids.uids.uptimed; + group = "uptimed"; }; + users.groups.uptimed = {}; systemd.services.uptimed = { unitConfig.Documentation = "man:uptimed(8) man:uprecords(1)"; @@ -41,7 +45,7 @@ in PrivateTmp = "yes"; PrivateNetwork = "yes"; NoNewPrivileges = "yes"; - ReadWriteDirectories = stateDir; + StateDirectory = [ "uptimed" ]; InaccessibleDirectories = "/home"; ExecStart = "${pkgs.uptimed}/sbin/uptimed -f -p ${stateDir}/pid"; }; diff --git a/nixos/modules/services/web-apps/node-red.nix b/nixos/modules/services/web-apps/node-red.nix new file mode 100644 index 000000000000..16cfb29cf572 --- /dev/null +++ b/nixos/modules/services/web-apps/node-red.nix @@ -0,0 +1,148 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.node-red; + defaultUser = "node-red"; + finalPackage = if cfg.withNpmAndGcc then node-red_withNpmAndGcc else cfg.package; + node-red_withNpmAndGcc = pkgs.runCommandNoCC "node-red" { + nativeBuildInputs = [ pkgs.makeWrapper ]; + } + '' + mkdir -p $out/bin + makeWrapper ${pkgs.nodePackages.node-red}/bin/node-red $out/bin/node-red \ + --set PATH '${lib.makeBinPath [ pkgs.nodePackages.npm pkgs.gcc ]}:$PATH' \ + ''; +in +{ + options.services.node-red = { + enable = mkEnableOption "the Node-RED service"; + + package = mkOption { + default = pkgs.nodePackages.node-red; + defaultText = "pkgs.nodePackages.node-red"; + type = types.package; + description = "Node-RED package to use."; + }; + + openFirewall = mkOption { + type = types.bool; + default = false; + description = '' + Open ports in the firewall for the server. + ''; + }; + + withNpmAndGcc = mkOption { + type = types.bool; + default = false; + description = '' + Give Node-RED access to NPM and GCC at runtime, so 'Nodes' can be + downloaded and managed imperatively via the 'Palette Manager'. + ''; + }; + + configFile = mkOption { + type = types.path; + default = "${cfg.package}/lib/node_modules/node-red/settings.js"; + defaultText = "\${cfg.package}/lib/node_modules/node-red/settings.js"; + description = '' + Path to the JavaScript configuration file. + See + for a configuration example. + ''; + }; + + port = mkOption { + type = types.port; + default = 1880; + description = "Listening port."; + }; + + user = mkOption { + type = types.str; + default = defaultUser; + description = '' + User under which Node-RED runs.If left as the default value this user + will automatically be created on system activation, otherwise the + sysadmin is responsible for ensuring the user exists. + ''; + }; + + group = mkOption { + type = types.str; + default = defaultUser; + description = '' + Group under which Node-RED runs.If left as the default value this group + will automatically be created on system activation, otherwise the + sysadmin is responsible for ensuring the group exists. + ''; + }; + + userDir = mkOption { + type = types.path; + default = "/var/lib/node-red"; + description = '' + The directory to store all user data, such as flow and credential files and all library data. If left + as the default value this directory will automatically be created before the node-red service starts, + otherwise the sysadmin is responsible for ensuring the directory exists with appropriate ownership + and permissions. + ''; + }; + + safe = mkOption { + type = types.bool; + default = false; + description = "Whether to launch Node-RED in --safe mode."; + }; + + define = mkOption { + type = types.attrs; + default = {}; + description = "List of settings.js overrides to pass via -D to Node-RED."; + example = literalExample '' + { + "logging.console.level" = "trace"; + } + ''; + }; + }; + + config = mkIf cfg.enable { + users.users = optionalAttrs (cfg.user == defaultUser) { + ${defaultUser} = { + isSystemUser = true; + }; + }; + + users.groups = optionalAttrs (cfg.group == defaultUser) { + ${defaultUser} = { }; + }; + + networking.firewall = mkIf cfg.openFirewall { + allowedTCPPorts = [ cfg.port ]; + }; + + systemd.services.node-red = { + description = "Node-RED Service"; + wantedBy = [ "multi-user.target" ]; + after = [ "networking.target" ]; + environment = { + HOME = cfg.userDir; + }; + serviceConfig = mkMerge [ + { + User = cfg.user; + Group = cfg.group; + ExecStart = "${finalPackage}/bin/node-red ${pkgs.lib.optionalString cfg.safe "--safe"} --settings ${cfg.configFile} --port ${toString cfg.port} --userDir ${cfg.userDir} ${concatStringsSep " " (mapAttrsToList (name: value: "-D ${name}=${value}") cfg.define)}"; + PrivateTmp = true; + Restart = "always"; + WorkingDirectory = cfg.userDir; + } + (mkIf (cfg.userDir == "/var/lib/node-red") { StateDirectory = "node-red"; }) + ]; + }; + }; +} diff --git a/nixos/modules/services/x11/display-managers/set-session.py b/nixos/modules/services/x11/display-managers/set-session.py index 0cca80af44e8..75940efe32b4 100755 --- a/nixos/modules/services/x11/display-managers/set-session.py +++ b/nixos/modules/services/x11/display-managers/set-session.py @@ -72,11 +72,14 @@ def main(): f"Setting session name: {session}, as we found the existing wayland-session: {session_file}" ) user.set_session(session) + user.set_session_type("wayland") elif is_session_xsession(session_file): logging.debug( f"Setting session name: {session}, as we found the existing xsession: {session_file}" ) user.set_x_session(session) + user.set_session(session) + user.set_session_type("x11") else: logging.error(f"Couldn't figure out session type for {session_file}") sys.exit(1) diff --git a/nixos/modules/virtualisation/virtualbox-image.nix b/nixos/modules/virtualisation/virtualbox-image.nix index 272c696807aa..1a0c4df42cb3 100644 --- a/nixos/modules/virtualisation/virtualbox-image.nix +++ b/nixos/modules/virtualisation/virtualbox-image.nix @@ -18,6 +18,13 @@ in { The size of the VirtualBox base image in MiB. ''; }; + baseImageFreeSpace = mkOption { + type = with types; int; + default = 30 * 1024; + description = '' + Free space in the VirtualBox base image in MiB. + ''; + }; memorySize = mkOption { type = types.int; default = 1536; @@ -129,6 +136,7 @@ in { inherit pkgs lib config; partitionTableType = "legacy"; diskSize = cfg.baseImageSize; + additionalSpace = "${toString cfg.baseImageFreeSpace}M"; postVM = '' diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index ae2aff2226b3..fdda6ed24205 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -227,6 +227,7 @@ in libreswan = handleTest ./libreswan.nix {}; lightdm = handleTest ./lightdm.nix {}; limesurvey = handleTest ./limesurvey.nix {}; + litestream = handleTest ./litestream.nix {}; locate = handleTest ./locate.nix {}; login = handleTest ./login.nix {}; loki = handleTest ./loki.nix {}; @@ -259,6 +260,7 @@ in morty = handleTest ./morty.nix {}; mosquitto = handleTest ./mosquitto.nix {}; mpd = handleTest ./mpd.nix {}; + mpv = handleTest ./mpv.nix {}; mumble = handleTest ./mumble.nix {}; musescore = handleTest ./musescore.nix {}; munin = handleTest ./munin.nix {}; @@ -301,6 +303,7 @@ in nix-serve = handleTest ./nix-ssh-serve.nix {}; nix-ssh-serve = handleTest ./nix-ssh-serve.nix {}; nixos-generate-config = handleTest ./nixos-generate-config.nix {}; + node-red = handleTest ./node-red.nix {}; nomad = handleTest ./nomad.nix {}; novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {}; nsd = handleTest ./nsd.nix {}; diff --git a/nixos/tests/litestream.nix b/nixos/tests/litestream.nix new file mode 100644 index 000000000000..886fbfef9cf5 --- /dev/null +++ b/nixos/tests/litestream.nix @@ -0,0 +1,93 @@ +import ./make-test-python.nix ({ pkgs, ...} : { + name = "litestream"; + meta = with pkgs.lib.maintainers; { + maintainers = [ jwygoda ]; + }; + + machine = + { pkgs, ... }: + { services.litestream = { + enable = true; + settings = { + dbs = [ + { + path = "/var/lib/grafana/data/grafana.db"; + replicas = [{ + url = "sftp://foo:bar@127.0.0.1:22/home/foo/grafana"; + }]; + } + ]; + }; + }; + systemd.services.grafana.serviceConfig.ExecStartPost = "+" + pkgs.writeShellScript "grant-grafana-permissions" '' + timeout=10 + + while [ ! -f /var/lib/grafana/data/grafana.db ]; + do + if [ "$timeout" == 0 ]; then + echo "ERROR: Timeout while waiting for /var/lib/grafana/data/grafana.db." + exit 1 + fi + + sleep 1 + + ((timeout--)) + done + + find /var/lib/grafana -type d -exec chmod -v 775 {} \; + find /var/lib/grafana -type f -exec chmod -v 660 {} \; + ''; + services.openssh = { + enable = true; + allowSFTP = true; + listenAddresses = [ { addr = "127.0.0.1"; port = 22; } ]; + }; + services.grafana = { + enable = true; + security = { + adminUser = "admin"; + adminPassword = "admin"; + }; + addr = "localhost"; + port = 3000; + extraOptions = { + DATABASE_URL = "sqlite3:///var/lib/grafana/data/grafana.db?cache=private&mode=rwc&_journal_mode=WAL"; + }; + }; + users.users.foo = { + isNormalUser = true; + password = "bar"; + }; + users.users.litestream.extraGroups = [ "grafana" ]; + }; + + testScript = '' + start_all() + machine.wait_until_succeeds("test -d /home/foo/grafana") + machine.wait_for_open_port(3000) + machine.succeed(""" + curl -sSfN -X PUT -H "Content-Type: application/json" -d '{ + "oldPassword": "admin", + "newPassword": "newpass", + "confirmNew": "newpass" + }' http://admin:admin@127.0.0.1:3000/api/user/password + """) + # https://litestream.io/guides/systemd/#simulating-a-disaster + machine.systemctl("stop litestream.service") + machine.succeed( + "rm -f /var/lib/grafana/data/grafana.db " + "/var/lib/grafana/data/grafana.db-shm " + "/var/lib/grafana/data/grafana.db-wal" + ) + machine.succeed( + "litestream restore /var/lib/grafana/data/grafana.db " + "&& chown grafana:grafana /var/lib/grafana/data/grafana.db " + "&& chmod 660 /var/lib/grafana/data/grafana.db" + ) + machine.systemctl("restart grafana.service") + machine.wait_for_open_port(3000) + machine.succeed( + "curl -sSfN -u admin:newpass http://127.0.0.1:3000/api/org/users | grep admin\@localhost" + ) + ''; +}) diff --git a/nixos/tests/mpv.nix b/nixos/tests/mpv.nix new file mode 100644 index 000000000000..bcfc17cf3328 --- /dev/null +++ b/nixos/tests/mpv.nix @@ -0,0 +1,28 @@ +import ./make-test-python.nix ({ lib, ... }: + +with lib; + +let + port = toString 4321; +in +{ + name = "mpv"; + meta.maintainers = with maintainers; [ zopieux ]; + + nodes.machine = + { pkgs, ... }: + { + environment.systemPackages = [ + pkgs.curl + (pkgs.mpv-with-scripts.override { + scripts = [ pkgs.mpvScripts.simple-mpv-webui ]; + }) + ]; + }; + + testScript = '' + machine.execute("set -m; mpv --script-opts=webui-port=${port} --idle=yes &") + machine.wait_for_open_port(${port}) + assert "simple-mpv-webui" in machine.succeed("curl -s localhost:${port}") + ''; +}) diff --git a/nixos/tests/node-red.nix b/nixos/tests/node-red.nix new file mode 100644 index 000000000000..7660bc32f4c9 --- /dev/null +++ b/nixos/tests/node-red.nix @@ -0,0 +1,31 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "nodered"; + meta = with pkgs.lib.maintainers; { + maintainers = [ matthewcroughan ]; + }; + + nodes = { + client = { config, pkgs, ... }: { + environment.systemPackages = [ pkgs.curl ]; + }; + nodered = { config, pkgs, ... }: { + services.node-red = { + enable = true; + openFirewall = true; + }; + }; + }; + + testScript = '' + start_all() + nodered.wait_for_unit("node-red.service") + nodered.wait_for_open_port("1880") + + client.wait_for_unit("multi-user.target") + + with subtest("Check that the Node-RED webserver can be reached."): + assert "<title>Node-RED" in client.succeed( + "curl -sSf http:/nodered:1880/ | grep title" + ) + ''; +}) diff --git a/nixos/tests/soapui.nix b/nixos/tests/soapui.nix new file mode 100644 index 000000000000..205128df91f4 --- /dev/null +++ b/nixos/tests/soapui.nix @@ -0,0 +1,24 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "soapui"; + meta = with pkgs.lib.maintainers; { + maintainers = [ asbachb ]; + }; + + machine = { config, pkgs, ... }: { + imports = [ + ./common/x11.nix + ]; + + services.xserver.enable = true; + + environment.systemPackages = [ pkgs.soapui ]; + }; + + testScript = '' + machine.wait_for_x() + machine.succeed("soapui &") + machine.wait_for_window(r"SoapUI \d+\.\d+\.\d+") + machine.sleep(1) + machine.screenshot("soapui") + ''; +}) diff --git a/pkgs/applications/graphics/sane/backends/default.nix b/pkgs/applications/graphics/sane/backends/default.nix index 821a97e35871..3d3c752dcdef 100644 --- a/pkgs/applications/graphics/sane/backends/default.nix +++ b/pkgs/applications/graphics/sane/backends/default.nix @@ -2,12 +2,16 @@ , gettext, pkg-config, python3 , avahi, libgphoto2, libieee1284, libjpeg, libpng, libtiff, libusb1, libv4l, net-snmp , curl, systemd, libxml2, poppler +, sane-drivers # List of { src name backend } attibute sets - see installFirmware below: , extraFirmware ? [] # For backwards compatibility with older setups; use extraFirmware instead: , gt68xxFirmware ? null, snapscanFirmware ? null + +# Not included by default, scan snap drivers require fetching of unfree binaries. +, scanSnapDriversUnfree ? false, scanSnapDriversPackage ? sane-drivers.epjitsu }: stdenv.mkDerivation { @@ -88,7 +92,14 @@ stdenv.mkDerivation { # net.conf conflicts with the file generated by the nixos module rm $out/etc/sane.d/net.conf - '' + lib.concatStrings (builtins.map installFirmware compatFirmware); + + '' + + lib.optionalString scanSnapDriversUnfree '' + # the ScanSnap drivers live under the epjitsu subdirectory, which was already created by the build but is empty. + rmdir $out/share/sane/epjitsu + ln -svT ${scanSnapDriversPackage} $out/share/sane/epjitsu + '' + + lib.concatStrings (builtins.map installFirmware compatFirmware); meta = with lib; { description = "SANE (Scanner Access Now Easy) backends"; diff --git a/pkgs/applications/graphics/sane/drivers.nix b/pkgs/applications/graphics/sane/drivers.nix new file mode 100644 index 000000000000..9f1a644f4fac --- /dev/null +++ b/pkgs/applications/graphics/sane/drivers.nix @@ -0,0 +1,13 @@ +{ lib, fetchFromGitHub }: + +{ + # Fujitsu ScanSnap + epjitsu = fetchFromGitHub { + name = "scansnap-firmware"; + owner = "stevleibelt"; + repo = "scansnap-firmware"; + rev = "96c3a8b2a4e4f1ccc4e5827c5eb5598084fd17c8"; + sha256 = "1inchnvaqyw9d0skpg8hp5rpn27c09q58lsr42by4bahpbx5qday"; + meta.license = lib.licenses.unfree; + }; +} diff --git a/pkgs/applications/misc/1password/default.nix b/pkgs/applications/misc/1password/default.nix index afe15949ee82..8f4ea3df18d0 100644 --- a/pkgs/applications/misc/1password/default.nix +++ b/pkgs/applications/misc/1password/default.nix @@ -2,7 +2,7 @@ stdenv.mkDerivation rec { pname = "1password"; - version = "1.9.1"; + version = "1.11.2"; src = if stdenv.isLinux then fetchzip { url = { @@ -11,14 +11,14 @@ stdenv.mkDerivation rec { "aarch64-linux" = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_linux_arm_v${version}.zip"; }.${stdenv.hostPlatform.system}; sha256 = { - "i686-linux" = "1x5khnp6yqrjf513x3y6l38rb121nib7d4aiz4cz7fh029kxjhd1"; - "x86_64-linux" = "1ar8lzkndl7xzcinv93rzg8q25vb23fggbjkhgchgc5x9wkwk8hw"; - "aarch64-linux" = "1q81pk6qmp96p1dbhx1ijln8f54rac8r81d4ghqx9v756s9szrr1"; + "i686-linux" = "0rh5bakj9qd43cf6wj5v46a3h98kcwqyc0f1yw72wvcacvjycyjz"; + "x86_64-linux" = "00nf0cb8cxk1pvzr1wq778wvikzrlzy38r3rzkq44whdpdj50jzx"; + "aarch64-linux" = "1gv282z49bj3ln5na4wb1z5455a64cyd54fp5i96k8shaxd0apxf"; }.${stdenv.hostPlatform.system}; stripRoot = false; } else fetchurl { - url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_darwin_amd64_v${version}.pkg"; - sha256 = "0904wwy3wdhfvbkvpdap8141a9gqmn0dw45ikrzsqpg7pv1r2zch"; + url = "https://cache.agilebits.com/dist/1P/op/pkg/v${version}/op_apple_universal_v${version}.pkg"; + sha256 = "1pqdjr6d23j9fpwgahb0s1ni1bpjv9jajs1hapgq5kdrww2w7nhm"; }; buildInputs = lib.optionals stdenv.isDarwin [ xar cpio ]; diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index 07e0a62b901b..85a644e5f1b9 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -22,15 +22,16 @@ , libmtp , xdg-utils , removeReferencesTo +, libstemmer }: mkDerivation rec { pname = "calibre"; - version = "5.17.0"; + version = "5.24.0"; src = fetchurl { url = "https://download.calibre-ebook.com/${version}/${pname}-${version}.tar.xz"; - hash = "sha256-rdiBL3Y3q/0wFfWGE4jGkWakgV8hA9HjDcKXso6tVrs="; + hash = "sha256:18dr577nv7ijw3ar6mrk2xrc54mlrqkaj5jrc6s5sirl0710fdfg"; }; patches = [ @@ -65,6 +66,7 @@ mkDerivation rec { libjpeg libmtp libpng + libstemmer libusb1 podofo poppler_utils @@ -73,7 +75,9 @@ mkDerivation rec { xdg-utils ] ++ ( with python3Packages; [ - apsw + (apsw.overrideAttrs (oldAttrs: rec { + setupPyBuildFlags = [ "--enable=load_extension" ]; + })) beautifulsoup4 cchardet css-parser @@ -95,15 +99,7 @@ mkDerivation rec { python regex sip - (zeroconf.overrideAttrs (oldAttrs: rec { - version = "0.31.0"; - src = fetchFromGitHub { - owner = "jstasiak"; - repo = "python-zeroconf"; - rev = version; - sha256 = "158dqay74zvnz6kmpvip4ml0kw59nf2aaajwgaamx0zc8ci1p5pj"; - }; - })) + zeroconf # the following are distributed with calibre, but we use upstream instead odfpy ] ++ lib.optional (unrarSupport) unrardll diff --git a/pkgs/applications/misc/freeplane/default.nix b/pkgs/applications/misc/freeplane/default.nix index f9c04fedfdd9..37c4abb37646 100644 --- a/pkgs/applications/misc/freeplane/default.nix +++ b/pkgs/applications/misc/freeplane/default.nix @@ -2,13 +2,13 @@ let pname = "freeplane"; - version = "1.8.11"; + version = "1.9.5"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "release-${version}"; - sha256 = "07xjx9pf62dvy8lx6vnbwwcn1zqy89cmdmwy792k7gb12wz81nnc"; + sha256 = "qfhhmF3mePxcL4U8izkEmWaiaOLi4slsaymVnDoO3sY="; }; deps = stdenv.mkDerivation { @@ -31,7 +31,7 @@ let outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "0r7f6713m0whh5hlk1id7z9j5v9494r41sivn9fzl63q70kzz92g"; + outputHash = "xphTzaSXTGpP7vI/t4oIiv1ZpbekG2dFRzyl3ub6qnA="; }; # Point to our local deps repo diff --git a/pkgs/applications/misc/yambar/default.nix b/pkgs/applications/misc/yambar/default.nix index 375b802d5c16..933f352e5e86 100644 --- a/pkgs/applications/misc/yambar/default.nix +++ b/pkgs/applications/misc/yambar/default.nix @@ -24,12 +24,12 @@ stdenv.mkDerivation rec { pname = "yambar"; - version = "1.6.1"; + version = "1.6.2"; src = fetchgit { url = "https://codeberg.org/dnkl/yambar.git"; rev = version; - sha256 = "p47tFsEWsYNe6IVV65xGG211u6Vm2biRf4pmUDylBOQ="; + sha256 = "sha256-oUNkaWrYIcsK2u+aeRg6DHmH4M1VZ0leNSM0lV9Yy1Y="; }; nativeBuildInputs = [ pkg-config meson ninja scdoc ]; diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 377835489a2b..eb28146b09f1 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -259,25 +259,12 @@ let ''; gnFlags = mkGnFlags ({ + # Main build and toolchain settings: is_official_build = true; custom_toolchain = "//build/toolchain/linux/unbundle:default"; host_toolchain = "//build/toolchain/linux/unbundle:default"; - system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; - use_sysroot = false; - use_gnome_keyring = gnomeKeyringSupport; - use_gio = gnomeSupport; - # ninja: error: '../../native_client/toolchain/linux_x86/pnacl_newlib/bin/x86_64-nacl-objcopy', - # needed by 'nacl_irt_x86_64.nexe', missing and no known rule to make it - enable_nacl = false; - # Enabling the Widevine component here doesn't affect whether we can - # redistribute the chromium package; the Widevine component is either - # added later in the wrapped -wv build or downloaded from Google. - enable_widevine = true; - use_cups = cupsSupport; - # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture. - rtc_use_pipewire = true; - + system_wayland_scanner_path = "${wayland}/bin/wayland-scanner"; treat_warnings_as_errors = false; clang_use_chrome_plugins = false; blink_symbol_level = 0; @@ -288,6 +275,21 @@ let # Note: The API key is for NixOS/nixpkgs use ONLY. # For your own distribution, please get your own set of keys. google_api_key = "AIzaSyDGi15Zwl11UNe6Y-5XW_upsfyw31qwZPI"; + + # Optional features: + use_cups = cupsSupport; + use_gio = gnomeSupport; + use_gnome_keyring = gnomeKeyringSupport; + + # Feature overrides: + # Native Client support was deprecated in 2020 and support will end in June 2021: + enable_nacl = false; + # Enabling the Widevine component here doesn't affect whether we can + # redistribute the chromium package; the Widevine component is either + # added later in the wrapped -wv build or downloaded from Google: + enable_widevine = true; + # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture: + rtc_use_pipewire = true; } // optionalAttrs proprietaryCodecs { # enable support for the H.264 codec proprietary_codecs = true; @@ -296,14 +298,6 @@ let } // optionalAttrs pulseSupport { use_pulseaudio = true; link_pulseaudio = true; - # Disable PGO (defaults to 2 since M89) because it fails without additional changes: - # error: Could not read profile ../../chrome/build/pgo_profiles/chrome-linux-master-1610647094-405a32bcf15e5a84949640f99f84a5b9f61e2f2e.profdata: Unsupported instrumentation profile format version - chrome_pgo_phase = 0; - # Disable build with TFLite library because it fails without additional changes: - # ninja: error: '../../chrome/test/data/simple_test.tflite', needed by 'test_data/simple_test.tflite', missing and no known rule to make it - # Note: chrome/test/data/simple_test.tflite is in the Git repository but not in chromium-90.0.4400.8.tar.xz - # See also chrome/services/machine_learning/README.md - build_with_tflite_lib = false; } // optionalAttrs ungoogled { chrome_pgo_phase = 0; enable_hangout_services_extension = false; diff --git a/pkgs/applications/networking/instant-messengers/viber/default.nix b/pkgs/applications/networking/instant-messengers/viber/default.nix index 66d33533a736..53eea50767f5 100644 --- a/pkgs/applications/networking/instant-messengers/viber/default.nix +++ b/pkgs/applications/networking/instant-messengers/viber/default.nix @@ -82,7 +82,8 @@ stdenv.mkDerivation { wrapProgram $out/opt/viber/Viber \ --set QT_PLUGIN_PATH "$out/opt/viber/plugins" \ --set QT_XKB_CONFIG_ROOT "${xorg.xkeyboardconfig}/share/X11/xkb" \ - --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" + --set QTCOMPOSE "${xorg.libX11.out}/share/X11/locale" \ + --set QML2_IMPORT_PATH "$out/opt/viber/qml" ln -s $out/opt/viber/Viber $out/bin/viber mv $out/usr/share $out/share diff --git a/pkgs/applications/networking/instant-messengers/zulip/default.nix b/pkgs/applications/networking/instant-messengers/zulip/default.nix index 6e3ef93ec771..1fce1a6b6e52 100644 --- a/pkgs/applications/networking/instant-messengers/zulip/default.nix +++ b/pkgs/applications/networking/instant-messengers/zulip/default.nix @@ -5,12 +5,12 @@ let pname = "zulip"; - version = "5.8.0"; + version = "5.8.1"; name = "${pname}-${version}"; src = fetchurl { url = "https://github.com/zulip/zulip-desktop/releases/download/v${version}/Zulip-${version}-x86_64.AppImage"; - sha256 = "0z8lp56j6qvm57sfqdyqrqzj9add3drh1z4zsckg45jfw6yn3jdv"; + sha256 = "02m18y5j6jmmlygv8ycwaaq6n7mvj97ljhd3l9pvii0adwcvrpfz"; name="${pname}-${version}.AppImage"; }; diff --git a/pkgs/applications/networking/soapui/default.nix b/pkgs/applications/networking/soapui/default.nix index 12301981f653..96d3de98d891 100644 --- a/pkgs/applications/networking/soapui/default.nix +++ b/pkgs/applications/networking/soapui/default.nix @@ -1,25 +1,30 @@ -{ fetchurl, lib, stdenv, writeText, jdk, maven, makeWrapper }: +{ fetchurl, lib, stdenv, writeText, jdk, makeWrapper }: stdenv.mkDerivation rec { pname = "soapui"; - version = "5.5.0"; + version = "5.6.0"; src = fetchurl { url = "https://s3.amazonaws.com/downloads.eviware/soapuios/${version}/SoapUI-${version}-linux-bin.tar.gz"; - sha256 = "0v1wiy61jgvlxjk8qdvcnyn1gh2ysxf266zln7r4wpzwd5gc3dpw"; + sha256 = "0vmj11fswja0ddnbc4vb7gj1al8km7ilma9bv1waaj8h5c8qpayi"; }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ jdk maven ]; + buildInputs = [ jdk ]; installPhase = '' + runHook preInstall + mkdir -p $out/share/java cp -R bin lib $out/share/java makeWrapper $out/share/java/bin/soapui.sh $out/bin/soapui --set SOAPUI_HOME $out/share/java + + runHook postInstall ''; patches = [ + # Adjust java path to point to derivation paths (writeText "soapui-${version}.patch" '' --- a/bin/soapui.sh +++ b/bin/soapui.sh diff --git a/pkgs/applications/science/robotics/mavproxy/default.nix b/pkgs/applications/science/robotics/mavproxy/default.nix index ba0c2530849a..4f83f957dbf7 100644 --- a/pkgs/applications/science/robotics/mavproxy/default.nix +++ b/pkgs/applications/science/robotics/mavproxy/default.nix @@ -3,11 +3,11 @@ buildPythonApplication rec { pname = "MAVProxy"; - version = "1.8.39"; + version = "1.8.40"; src = fetchPypi { inherit pname version; - sha256 = "sha256-1RXuAiz9i5ZnLtDGQ+o3DNgWJ2FDJGIoelmlDmEzrts="; + sha256 = "cad317e2e879f1f7cb59af078788aaf0d09cd761ecd91ad091adf7ac6cc1bcdb"; }; postPatch = '' diff --git a/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix index 99b731757ff9..01f2c3a099fa 100644 --- a/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix +++ b/pkgs/applications/video/mpv/scripts/simple-mpv-webui.nix @@ -2,13 +2,13 @@ , fetchFromGitHub }: stdenvNoCC.mkDerivation rec { pname = "simple-mpv-ui"; - version = "1.0.0"; + version = "2.1.0"; src = fetchFromGitHub { owner = "open-dynaMIX"; repo = "simple-mpv-webui"; rev = "v${version}"; - sha256 = "1glrnnl1slcl0ri0zs4j64lc9aa52p9ffh6av0d81fk95nm98917"; + sha256 = "1z0y8sdv5mbxznxqh43w5592ym688vkvqg7w26p8cinrhf09pbw8"; }; dontBuild = true; @@ -21,7 +21,7 @@ stdenvNoCC.mkDerivation rec { meta = with lib; { description = "A web based user interface with controls for the mpv mediaplayer"; homepage = "https://github.com/open-dynaMIX/simple-mpv-webui"; - maintainers = [ maintainers.cript0nauta ]; + maintainers = with maintainers; [ cript0nauta zopieux ]; longDescription = '' You can access the webui when accessing http://127.0.0.1:8080 or http://[::1]:8080 in your webbrowser. By default it listens on diff --git a/pkgs/applications/video/qmplay2/default.nix b/pkgs/applications/video/qmplay2/default.nix index 0e0580b9f2ae..538f540c63be 100644 --- a/pkgs/applications/video/qmplay2/default.nix +++ b/pkgs/applications/video/qmplay2/default.nix @@ -1,4 +1,5 @@ -{ lib, stdenv +{ lib +, stdenv , fetchFromGitHub , pkg-config , cmake @@ -19,25 +20,27 @@ , vulkan-tools , wrapQtAppsHook }: - -let +stdenv.mkDerivation rec { pname = "qmplay2"; - version = "20.12.16"; -in stdenv.mkDerivation { - inherit pname version; + version = "21.06.07"; src = fetchFromGitHub { owner = "zaps166"; repo = "QMPlay2"; rev = version; - sha256 = "sha256-+XXlQI9MyENioYmzqbbZYQ6kaMATBjPrPaErR2Vqhus="; + sha256 = "sha256-NV9uglYnqebXhMx8uL0DhGe9l5TBVjlSIaB4IWC8YAc="; fetchSubmodules = true; }; - nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ]; + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; buildInputs = [ alsa-lib ffmpeg + libXv libass libcddb libcdio @@ -45,7 +48,6 @@ in stdenv.mkDerivation { libpulseaudio libsidplayfp libva - libXv qtbase qttools taglib diff --git a/pkgs/desktops/arcan/arcan.nix b/pkgs/desktops/arcan/arcan.nix index c6a57ecc3bda..6cd31001fa76 100644 --- a/pkgs/desktops/arcan/arcan.nix +++ b/pkgs/desktops/arcan/arcan.nix @@ -52,13 +52,13 @@ let in stdenv.mkDerivation rec { pname = "arcan"; - version = "0.6.1pre1+unstable=2021-07-10"; + version = "0.6.1pre1+unstable=2021-07-30"; src = fetchFromGitHub { owner = "letoram"; repo = "arcan"; - rev = "25da999e6e03688c71c7df3852314c01ed610e0d"; - hash = "sha256-+ZF6mD/Z0N/5QCjXe80z4L6JOE33+Yv4ZlwKvlG/c44="; + rev = "885b2f0c9e031fd157af21302af2027ecbe3fe1f"; + hash = "sha256-tj5kPa5OWCGt7LTzo4ZYV1UjBpOrjQHER/K+ZfL3h+8="; }; postUnpack = '' diff --git a/pkgs/desktops/arcan/wrapper.nix b/pkgs/desktops/arcan/wrapper.nix index 4368b0ad3a59..e394e2e08976 100644 --- a/pkgs/desktops/arcan/wrapper.nix +++ b/pkgs/desktops/arcan/wrapper.nix @@ -20,9 +20,10 @@ symlinkJoin rec { --set ARCAN_BINPATH "${placeholder "out"}/bin/arcan_frameserver" \ --set ARCAN_LIBPATH "${placeholder "out"}/lib/" \ --set ARCAN_RESOURCEPATH "${placeholder "out"}/share/arcan/resources/" \ - --set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" \ - --set ARCAN_STATEBASEPATH "\$HOME/.arcan/resources/savestates/" + --set ARCAN_SCRIPTPATH "${placeholder "out"}/share/arcan/scripts/" done ''; } # TODO: set ARCAN_FONTPATH to a set of fonts that can be provided in a parameter +# TODO: set ARCAN_STATEBASEPATH to $HOME/.arcan/resources/savestates/ - possibly +# via a suitable script diff --git a/pkgs/desktops/enlightenment/enlightenment/default.nix b/pkgs/desktops/enlightenment/enlightenment/default.nix index 84cadd209499..76beac1392d8 100644 --- a/pkgs/desktops/enlightenment/enlightenment/default.nix +++ b/pkgs/desktops/enlightenment/enlightenment/default.nix @@ -13,6 +13,7 @@ , xkeyboard_config , udisks2 +, waylandSupport ? false, wayland-protocols, xwayland , bluetoothSupport ? true, bluez5 , pulseSupport ? !stdenv.isDarwin, libpulseaudio }: @@ -45,6 +46,7 @@ stdenv.mkDerivation rec { ] ++ lib.optional bluetoothSupport bluez5 # for bluetooth configuration and control ++ lib.optional pulseSupport libpulseaudio # for proper audio device control and redirection + ++ lib.optionals waylandSupport [ wayland-protocols xwayland ] ; patches = [ @@ -62,7 +64,7 @@ stdenv.mkDerivation rec { mesonFlags = [ "-D systemdunitdir=lib/systemd/user" - ]; + ] ++ lib.optional waylandSupport "-Dwl=true"; passthru.providedSessions = [ "enlightenment" ]; diff --git a/pkgs/development/compilers/ecl/default.nix b/pkgs/development/compilers/ecl/default.nix index 083998049c1e..d75418b41ef0 100644 --- a/pkgs/development/compilers/ecl/default.nix +++ b/pkgs/development/compilers/ecl/default.nix @@ -47,20 +47,24 @@ stdenv.mkDerivation { (if threadSupport then "--enable-threads" else "--disable-threads") "--with-gmp-prefix=${gmp.dev}" "--with-libffi-prefix=${libffi.dev}" - ] - ++ - (lib.optional (! noUnicode) - "--enable-unicode") - ; + ] + ++ + (lib.optional useBoehmgc + "--with-libgc-prefix=${boehmgc.dev}") + ++ + (lib.optional (! noUnicode) + "--enable-unicode") + ; hardeningDisable = [ "format" ]; - postInstall = '' + postInstall = let + ldArgs = lib.strings.concatMapStringsSep " " + (l: ''--prefix NIX_LDFLAGS ' ' "-L${l.lib or l.out or l}/lib"'') + ([ gmp libffi ] ++ lib.optional useBoehmgc boehmgc); + in '' sed -e 's/@[-a-zA-Z_]*@//g' -i $out/bin/ecl-config - wrapProgram "$out/bin/ecl" \ - --prefix PATH ':' "${gcc}/bin" \ - --prefix NIX_LDFLAGS ' ' "-L${gmp.lib or gmp.out or gmp}/lib" \ - --prefix NIX_LDFLAGS ' ' "-L${libffi.lib or libffi.out or libffi}/lib" + wrapProgram "$out/bin/ecl" --prefix PATH ':' "${gcc}/bin" ${ldArgs} ''; meta = { diff --git a/pkgs/development/compilers/ponyc/pony-corral.nix b/pkgs/development/compilers/ponyc/pony-corral.nix index 3f40a4d7889e..43fe247b79fb 100644 --- a/pkgs/development/compilers/ponyc/pony-corral.nix +++ b/pkgs/development/compilers/ponyc/pony-corral.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation ( rec { pname = "corral"; - version = "0.5.1"; + version = "0.5.3"; src = fetchFromGitHub { owner = "ponylang"; repo = pname; rev = version; - sha256 = "1g4dkf5hsnykn3x6yx6ycjzmzzr1nwl59lj13j7zyka1ibv53hwf"; + sha256 = "sha256-27J1Y3+tbZK7RX+63xVV2eaX/LF525vBR3Ff9EYDEl0="; }; buildInputs = [ ponyc ]; diff --git a/pkgs/development/coq-modules/VST/default.nix b/pkgs/development/coq-modules/VST/default.nix index 5ee1df774185..1d2a1a3c05fc 100644 --- a/pkgs/development/coq-modules/VST/default.nix +++ b/pkgs/development/coq-modules/VST/default.nix @@ -1,4 +1,16 @@ -{ lib, mkCoqDerivation, coq, compcert, version ? null }: +{ lib, mkCoqDerivation, coq, compcert, ITree, version ? null }: + +# A few modules that are not built and installed by default +# but that may be useful to some users. +# They depend on ITree. +let extra_floyd_files = [ + "ASTsize.v" + "io_events.v" + "powerlater.v" + "printf.v" + "quickprogram.v" + ]; +in with lib; mkCoqDerivation { pname = "coq${coq.coq-version}-VST"; @@ -12,9 +24,14 @@ with lib; mkCoqDerivation { ] null; release."2.8".sha256 = "sha256-cyK88uzorRfjapNQ6XgQEmlbWnDsiyLve5po1VG52q0="; releaseRev = v: "v${v}"; + extraBuildInputs = [ ITree ]; propagatedBuildInputs = [ compcert ]; - preConfigure = "patchShebangs util"; + preConfigure = '' + patchShebangs util + substituteInPlace Makefile \ + --replace 'FLOYD_FILES=' 'FLOYD_FILES= ${toString extra_floyd_files}' + ''; makeFlags = [ "BITSIZE=64" diff --git a/pkgs/development/libraries/audio/libgme/default.nix b/pkgs/development/libraries/audio/libgme/default.nix index 2761eaf3753a..d78756b0ca45 100644 --- a/pkgs/development/libraries/audio/libgme/default.nix +++ b/pkgs/development/libraries/audio/libgme/default.nix @@ -21,6 +21,9 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ cmake removeReferencesTo ]; + # These checks fail on aarch64-darwin + cmakeFlags = [ "-DENABLE_UBSAN=OFF" ]; + # It used to reference it, in the past, but thanks to the postFixup hook, now # it doesn't. disallowedReferences = [ stdenv.cc.cc ]; diff --git a/pkgs/development/libraries/gensio/default.nix b/pkgs/development/libraries/gensio/default.nix index 3978c05f2c71..0cd2f79ea552 100644 --- a/pkgs/development/libraries/gensio/default.nix +++ b/pkgs/development/libraries/gensio/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "gensio"; - version = "2.2.7"; + version = "2.2.8"; src = fetchFromGitHub { owner = "cminyard"; repo = pname; rev = "v${version}"; - sha256 = "sha256-2wxsPHrQ9GgyUE4p6zYuR1mPU2OyjtgiPnMApEscR2g="; + sha256 = "sha256-6+hYytLMg5E1KTBPWSteVu2VjF0APkcoOiigqzrBI+U="; }; passthru = { diff --git a/pkgs/development/libraries/libcanberra/default.nix b/pkgs/development/libraries/libcanberra/default.nix index 5d4bca0f1b9f..92f05b8cd303 100644 --- a/pkgs/development/libraries/libcanberra/default.nix +++ b/pkgs/development/libraries/libcanberra/default.nix @@ -1,22 +1,25 @@ { stdenv, lib, fetchurl, fetchpatch, pkg-config, libtool -, gtk ? null +, gtk2-x11, gtk3-x11 , gtkSupport ? null , libpulseaudio, gst_all_1, libvorbis, libcap -, CoreServices +, Carbon, CoreServices , withAlsa ? stdenv.isLinux, alsa-lib }: stdenv.mkDerivation rec { - name = "libcanberra-0.30"; + pname = "libcanberra"; + version = "0.30"; src = fetchurl { - url = "http://0pointer.de/lennart/projects/libcanberra/${name}.tar.xz"; + url = "http://0pointer.de/lennart/projects/libcanberra/${pname}-${version}.tar.xz"; sha256 = "0wps39h8rx2b00vyvkia5j40fkak3dpipp1kzilqla0cgvk73dn2"; }; nativeBuildInputs = [ pkg-config libtool ]; buildInputs = [ - libpulseaudio libvorbis gtk + libpulseaudio libvorbis ] ++ (with gst_all_1; [ gstreamer gst-plugins-base ]) - ++ lib.optional stdenv.isDarwin CoreServices + ++ lib.optional (gtkSupport == "gtk2") gtk2-x11 + ++ lib.optional (gtkSupport == "gtk3") gtk3-x11 + ++ lib.optionals stdenv.isDarwin [Carbon CoreServices] ++ lib.optional stdenv.isLinux libcap ++ lib.optional withAlsa alsa-lib; @@ -30,7 +33,7 @@ stdenv.mkDerivation rec { }) ]; - postPatch = (lib.optional stdenv.isDarwin) '' + postPatch = lib.optionalString stdenv.isDarwin '' patch -p0 < ${fetchpatch { url = "https://raw.githubusercontent.com/macports/macports-ports/master/audio/libcanberra/files/patch-configure.diff"; sha256 = "1f7h7ifpqvbfhqygn1b7klvwi80zmpv3538vbmq7ql7bkf1q8h31"; @@ -43,8 +46,8 @@ stdenv.mkDerivation rec { done ''; - passthru = { - gtkModule = "/lib/gtk-2.0/"; + passthru = lib.optionalAttrs (gtkSupport != null) { + gtkModule = if gtkSupport == "gtk2" then "/lib/gtk-2.0" else "/lib/gtk-3.0/"; }; meta = with lib; { @@ -62,6 +65,6 @@ stdenv.mkDerivation rec { platforms = platforms.unix; # canberra-gtk-module.c:28:10: fatal error: 'gdk/gdkx.h' file not found # #include - broken = stdenv.isDarwin; + broken = stdenv.isDarwin && (gtkSupport == "gtk3"); }; } diff --git a/pkgs/development/libraries/zchunk/default.nix b/pkgs/development/libraries/zchunk/default.nix index cf0063f7780d..ddbd95b55d96 100644 --- a/pkgs/development/libraries/zchunk/default.nix +++ b/pkgs/development/libraries/zchunk/default.nix @@ -11,15 +11,13 @@ stdenv.mkDerivation rec { pname = "zchunk"; - version = "1.1.11"; - - outputs = [ "out" "lib" "dev" ]; + version = "1.1.16"; src = fetchFromGitHub { owner = "zchunk"; repo = pname; rev = version; - hash = "sha256-r+qWJOUnTyPJjM9eW44Q2DMKxx4HloyfNrQ6xWDO9vQ="; + hash = "sha256-+8FkivLTZXdu0+1wu+7T98y6rQzIHbG9l15Abrbln1o="; }; nativeBuildInputs = [ @@ -33,6 +31,13 @@ stdenv.mkDerivation rec { zstd ] ++ lib.optional stdenv.isDarwin argp-standalone; + + outputs = [ + "out" + "lib" + "dev" + ]; + meta = with lib; { homepage = "https://github.com/zchunk/zchunk"; description = "File format designed for highly efficient deltas while maintaining good compression"; diff --git a/pkgs/development/ocaml-modules/opam-repository/download-tool.patch b/pkgs/development/ocaml-modules/opam-repository/download-tool.patch index 5af720adca91..9cc5f43f34f1 100644 --- a/pkgs/development/ocaml-modules/opam-repository/download-tool.patch +++ b/pkgs/development/ocaml-modules/opam-repository/download-tool.patch @@ -2,16 +2,20 @@ diff --git a/src/repository/opamRepositoryConfig.ml b/src/repository/opamReposit index c2954c1d..528fc621 100644 --- a/src/repository/opamRepositoryConfig.ml +++ b/src/repository/opamRepositoryConfig.ml -@@ -27,23 +27,7 @@ type 'a options_fun = +@@ -27,31 +27,7 @@ type 'a options_fun = 'a let default = { - download_tool = lazy ( +- let os = OpamStd.Sys.os () in - try +- let curl = "curl", `Curl in - let tools = -- if OpamStd.Sys.(os () = Darwin) -- then ["wget", `Default; "curl", `Curl] -- else ["curl", `Curl; "wget", `Default] +- match os with +- | Darwin -> ["wget", `Default; curl] +- | FreeBSD -> ["fetch", `Default ; curl] +- | OpenBSD -> ["ftp", `Default; curl] +- | _ -> [curl; "wget", `Default] - in - let cmd, kind = - List.find (fun (c,_) -> OpamSystem.resolve_command c <> None) tools @@ -20,8 +24,12 @@ index c2954c1d..528fc621 100644 - with Not_found -> - OpamConsole.error_and_exit `Configuration_error - "Could not find a suitable download command. Please make sure you \ -- have either \"curl\" or \"wget\" installed, or specify a custom \ -- command through variable OPAMFETCH." +- have %s installed, or specify a custom command through variable \ +- OPAMFETCH." +- (match os with +- | FreeBSD -> "fetch" +- | OpenBSD -> "ftp" +- | _ -> "either \"curl\" or \"wget\"") - ); + download_tool = lazy ([ CIdent SUBSTITUTE_NIXOS_CURL_PATH, None ], `Curl); validation_hook = None; diff --git a/pkgs/development/python-modules/aioambient/default.nix b/pkgs/development/python-modules/aioambient/default.nix index 83c74925b8cd..8d75a1b11ee5 100644 --- a/pkgs/development/python-modules/aioambient/default.nix +++ b/pkgs/development/python-modules/aioambient/default.nix @@ -16,7 +16,7 @@ buildPythonPackage rec { pname = "aioambient"; - version = "1.2.4"; + version = "1.2.5"; format = "pyproject"; disabled = pythonOlder "3.6"; @@ -24,7 +24,7 @@ buildPythonPackage rec { owner = "bachya"; repo = pname; rev = version; - sha256 = "sha256-uqvM5F0rpw+xeCXYl4lGMt3r0ugPsUmSvujmTJ9HABk="; + sha256 = "1v8xr69y9cajyrdfz8wdksz1hclh5cvgxppf9lpygwfj4q70wh88"; }; nativeBuildInputs = [ @@ -46,12 +46,6 @@ buildPythonPackage rec { pytestCheckHook ]; - postPatch = '' - # https://github.com/bachya/aioambient/pull/84 - substituteInPlace pyproject.toml \ - --replace 'websockets = "^8.1"' 'websockets = ">=8.1,<10.0"' - ''; - # Ignore the examples directory as the files are prefixed with test_ disabledTestPaths = [ "examples/" ]; diff --git a/pkgs/development/python-modules/apispec/default.nix b/pkgs/development/python-modules/apispec/default.nix index 3bc1e6d4a5cf..2753864fed81 100644 --- a/pkgs/development/python-modules/apispec/default.nix +++ b/pkgs/development/python-modules/apispec/default.nix @@ -12,12 +12,12 @@ buildPythonPackage rec { pname = "apispec"; - version = "4.7.0"; + version = "4.7.1"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "sha256-v6G+yLWyzqZyfgIMOm/hHZYwiN0u1hbhFHXOry1naTc="; + sha256 = "1yf71c9nq1rfb5pkgmfw486fvywi1bjnmgwxcly7y3basf3980kr"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/bitstring/default.nix b/pkgs/development/python-modules/bitstring/default.nix index ed67f2be5c5f..52bc9bae865b 100644 --- a/pkgs/development/python-modules/bitstring/default.nix +++ b/pkgs/development/python-modules/bitstring/default.nix @@ -1,14 +1,27 @@ -{ lib, buildPythonPackage, fetchPypi }: +{ lib +, buildPythonPackage +, fetchFromGitHub +, python +}: buildPythonPackage rec { pname = "bitstring"; - version = "3.1.7"; + version = "3.1.9"; - src = fetchPypi { - inherit pname version; - sha256 = "0jl6192dwrlm5ybkbh7ywmyaymrc3cmz9y07nm7qdli9n9rfpwzx"; + src = fetchFromGitHub { + owner = "scott-griffiths"; + repo = pname; + rev = "bitstring-${version}"; + sha256 = "0y2kcq58psvl038r6dhahhlhp1wjgr5zsms45wyz1naq6ri8x9qa"; }; + checkPhase = '' + cd test + ${python.interpreter} -m unittest discover + ''; + + pythonImportsCheck = [ "bitstring" ]; + meta = with lib; { description = "Module for binary data manipulation"; homepage = "https://github.com/scott-griffiths/bitstring"; diff --git a/pkgs/development/python-modules/dipy/default.nix b/pkgs/development/python-modules/dipy/default.nix index 51d689f98596..3712dfbaee1a 100644 --- a/pkgs/development/python-modules/dipy/default.nix +++ b/pkgs/development/python-modules/dipy/default.nix @@ -14,7 +14,7 @@ buildPythonPackage rec { pname = "dipy"; - version = "1.3.0"; + version = "1.4.1"; disabled = isPy27; @@ -22,7 +22,7 @@ buildPythonPackage rec { owner = "dipy"; repo = pname; rev = version; - sha256 = "0555abx0fwqmk6dc3im7r45d9j7r9xh6gm9mbwfwvlf7laf8h098"; + sha256 = "0zaqsiq73vprbqbzvzswjfmqgappl5vhpl2fwjrrda33c27klpzj"; }; nativeBuildInputs = [ cython packaging ]; diff --git a/pkgs/development/python-modules/dufte/default.nix b/pkgs/development/python-modules/dufte/default.nix index d1c9680cb7b9..b9a96cbc8298 100644 --- a/pkgs/development/python-modules/dufte/default.nix +++ b/pkgs/development/python-modules/dufte/default.nix @@ -1,23 +1,23 @@ { lib , buildPythonPackage -, fetchPypi -, isPy3k +, fetchFromGitHub , pythonOlder , importlib-metadata , matplotlib , numpy -, exdown , pytestCheckHook }: buildPythonPackage rec { pname = "dufte"; - version = "0.2.12"; - disabled = !isPy3k; + version = "0.2.27"; + disabled = pythonOlder "3.6"; - src = fetchPypi { - inherit pname version; - sha256 = "0ag1d7h1wijkc7v2vpgkbqjlnpiwd4nh8zhxiby0989bpmlp3jr3"; + src = fetchFromGitHub { + owner = "nschloe"; + repo = pname; + rev = version; + sha256 = "1i68h224hx9clxj3l0rd2yigsi6fqsr3x10vj5hf3j6s69iah7r3"; }; format = "pyproject"; @@ -28,13 +28,10 @@ buildPythonPackage rec { importlib-metadata ]; - preCheck = '' - export HOME=$TMPDIR - mkdir -p $HOME/.matplotlib - echo "backend: ps" > $HOME/.matplotlib/matplotlibrc - ''; + checkInputs = [ + pytestCheckHook + ]; - checkInputs = [ exdown pytestCheckHook ]; pythonImportsCheck = [ "dufte" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/emoji/default.nix b/pkgs/development/python-modules/emoji/default.nix index 67c9c7a1abd0..97a969abf16f 100644 --- a/pkgs/development/python-modules/emoji/default.nix +++ b/pkgs/development/python-modules/emoji/default.nix @@ -6,13 +6,13 @@ buildPythonPackage rec { pname = "emoji"; - version = "1.4.0"; + version = "1.4.1"; src = fetchFromGitHub { owner = "carpedm20"; repo = pname; rev = "v.${version}"; - sha256 = "0xksxdld20sh3c2s6pry1fm2br9xq8ypdq5pf971fpg5pk2f4iy9"; + sha256 = "0gakvh8hfmfdjyp46bl18b2zm3grm3k5shiqrpzqlipbaxb7ifrk"; }; checkInputs = [ diff --git a/pkgs/development/python-modules/motioneye-client/default.nix b/pkgs/development/python-modules/motioneye-client/default.nix index a7981feb2055..35632e780e7e 100644 --- a/pkgs/development/python-modules/motioneye-client/default.nix +++ b/pkgs/development/python-modules/motioneye-client/default.nix @@ -11,7 +11,7 @@ buildPythonPackage rec { pname = "motioneye-client"; - version = "0.3.10"; + version = "0.3.11"; format = "pyproject"; disabled = pythonOlder "3.8"; @@ -19,7 +19,7 @@ buildPythonPackage rec { owner = "dermotduffy"; repo = pname; rev = "v${version}"; - sha256 = "0ilh9wfzggnbfz068vkz66g64ar6isl3m2vcp7jf2zbaj0bqsjax"; + sha256 = "0f34ig8njyn7dzy8272m0b1nlnnhir58ar3vx4zps10i0dc32hb2"; }; nativeBuildInputs = [ diff --git a/pkgs/development/python-modules/nbxmpp/default.nix b/pkgs/development/python-modules/nbxmpp/default.nix index c145b9d888f4..44460a21d5b9 100644 --- a/pkgs/development/python-modules/nbxmpp/default.nix +++ b/pkgs/development/python-modules/nbxmpp/default.nix @@ -1,24 +1,45 @@ -{ lib, buildPythonPackage, pythonOlder, fetchFromGitLab -, gobject-introspection, idna, libsoup, precis-i18n, pygobject3, pyopenssl +{ lib +, buildPythonPackage +, pythonOlder +, fetchFromGitLab +, gobject-introspection +, idna +, libsoup +, precis-i18n +, pygobject3 +, pyopenssl +, pytestCheckHook }: buildPythonPackage rec { pname = "nbxmpp"; - version = "2.0.2"; + version = "2.0.3"; disabled = pythonOlder "3.7"; - # Tests aren't included in PyPI tarball. src = fetchFromGitLab { domain = "dev.gajim.org"; owner = "gajim"; repo = "python-nbxmpp"; rev = "nbxmpp-${version}"; - sha256 = "0z27mxgfk7hvpx0xdrd8g9441rywv74yk7s83zjnc2mc7xvpwhf4"; + sha256 = "0gzyd25sja7n49f1ihyg6gch1b0r409r0p3qpwn8w8xy7jgn6ysc"; }; - buildInputs = [ precis-i18n ]; - propagatedBuildInputs = [ gobject-introspection idna libsoup pygobject3 pyopenssl ]; + buildInputs = [ + precis-i18n + ]; + + propagatedBuildInputs = [ + gobject-introspection + idna + libsoup + pygobject3 + pyopenssl + ]; + + checkInputs = [ + pytestCheckHook + ]; pythonImportsCheck = [ "nbxmpp" ]; diff --git a/pkgs/development/python-modules/neo/default.nix b/pkgs/development/python-modules/neo/default.nix index e5db8450e788..27da5b71b68b 100644 --- a/pkgs/development/python-modules/neo/default.nix +++ b/pkgs/development/python-modules/neo/default.nix @@ -4,15 +4,17 @@ , nose , numpy , quantities +, pythonOlder }: buildPythonPackage rec { pname = "neo"; - version = "0.9.0"; + version = "0.10.0"; + disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "6e31c88d7c52174fa2512df589b2b5003e9471fde27fca9f315f4770ba3bd3cb"; + sha256 = "0lw3r9p1ky1cswhrs9radc0vq1qfzbrk7qd00f34g96g30zab4g5"; }; propagatedBuildInputs = [ numpy quantities ]; diff --git a/pkgs/development/python-modules/perfplot/default.nix b/pkgs/development/python-modules/perfplot/default.nix index 76f2f8d2931b..8e15cc0be8db 100644 --- a/pkgs/development/python-modules/perfplot/default.nix +++ b/pkgs/development/python-modules/perfplot/default.nix @@ -7,20 +7,20 @@ , pipdate , tqdm , rich -, pytest -, isPy27 +, pytestCheckHook +, pythonOlder }: buildPythonPackage rec { pname = "perfplot"; - version = "0.9.5"; - disabled = isPy27; + version = "0.9.6"; + disabled = pythonOlder "3.7"; src = fetchFromGitHub { owner = "nschloe"; - repo = "perfplot"; + repo = pname; rev = "v${version}"; - sha256 = "1nr31a7qvipqjycw2flkabnhnc4drbi1xpjm8yjxw2gjzznd1jg4"; + sha256 = "11f31d6xqxp04693symc2dl8890gjaycrb2a35y5xy023abwir5b"; }; format = "pyproject"; @@ -34,20 +34,15 @@ buildPythonPackage rec { ]; checkInputs = [ - pytest + pytestCheckHook ]; - checkPhase = '' - export HOME=$TMPDIR - mkdir -p $HOME/.matplotlib - echo "backend: ps" > $HOME/.matplotlib/matplotlibrc - pytest test/perfplot_test.py - ''; + pythonImportsCheck = [ "perfplot" ]; meta = with lib; { description = "Performance plots for Python code snippets"; homepage = "https://github.com/nschloe/perfplot"; license = licenses.mit; - maintainers = [ maintainers.costrouc ]; + maintainers = with maintainers; [ costrouc ]; }; } diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix index db18611f20aa..07efa604cad0 100644 --- a/pkgs/development/python-modules/pg8000/default.nix +++ b/pkgs/development/python-modules/pg8000/default.nix @@ -8,12 +8,12 @@ buildPythonPackage rec { pname = "pg8000"; - version = "1.20.0"; + version = "1.21.0"; disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "sha256-SQ7CKpJgHwRUs+1MjU7N3DD2bA4/eD8OzFgQN3SajFU="; + sha256 = "1msj0vk14fbsis8yfk0my1ygpcli9jz3ivwdi9k6ii5i6330i4f9"; }; propagatedBuildInputs = [ @@ -21,11 +21,6 @@ buildPythonPackage rec { scramp ]; - postPatch = '' - substituteInPlace setup.py \ - --replace "scramp==1.4.0" "scramp>=1.4.0" - ''; - # Tests require a running PostgreSQL instance doCheck = false; pythonImportsCheck = [ "pg8000" ]; diff --git a/pkgs/development/python-modules/phonenumbers/default.nix b/pkgs/development/python-modules/phonenumbers/default.nix index fa869c5d75d9..6d2a4cac36b3 100644 --- a/pkgs/development/python-modules/phonenumbers/default.nix +++ b/pkgs/development/python-modules/phonenumbers/default.nix @@ -6,11 +6,11 @@ buildPythonPackage rec { pname = "phonenumbers"; - version = "8.12.26"; + version = "8.12.28"; src = fetchPypi { inherit pname version; - sha256 = "sha256-Zbq269vg7FGWx0YmlJdI21M30jiVqrwe+PXXKEeHmYo="; + sha256 = "1g86bf791lr9ggrfgllah9liwa3bx917h9ffrdb01kjwdna4zsj2"; }; checkInputs = [ diff --git a/pkgs/development/python-modules/pipdate/default.nix b/pkgs/development/python-modules/pipdate/default.nix index 35fbb624e6b7..627e2b0a6fae 100644 --- a/pkgs/development/python-modules/pipdate/default.nix +++ b/pkgs/development/python-modules/pipdate/default.nix @@ -2,23 +2,23 @@ , buildPythonPackage , fetchPypi , pythonOlder -, isPy27 , appdirs , importlib-metadata , requests -, pytest +, rich +, setuptools , wheel }: buildPythonPackage rec { pname = "pipdate"; - version = "0.5.2"; + version = "0.5.5"; format = "pyproject"; - disabled = isPy27; # abandoned + disabled = pythonOlder "3.6"; src = fetchPypi { inherit pname version; - sha256 = "507065231f2d50b6319d483432cba82aadad78be21b7a2969b5881ed8dee9ab4"; + sha256 = "03hr9i691cpg9q2xc1xr4lpd90xs8rba0xjh6qmc1vg7lgcdgbaa"; }; nativeBuildInputs = [ wheel ]; @@ -26,25 +26,19 @@ buildPythonPackage rec { propagatedBuildInputs = [ appdirs requests + rich + setuptools ] ++ lib.optionals (pythonOlder "3.8") [ importlib-metadata ]; - checkInputs = [ - pytest - ]; - - checkPhase = '' - HOME=$(mktemp -d) pytest test/test_pipdate.py - ''; - - # tests require network access + # Tests require network access and pythonImportsCheck requires configuration file doCheck = false; meta = with lib; { description = "pip update helpers"; homepage = "https://github.com/nschloe/pipdate"; - license = licenses.mit; - maintainers = [ maintainers.costrouc ]; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ costrouc ]; }; } diff --git a/pkgs/development/python-modules/plexapi/default.nix b/pkgs/development/python-modules/plexapi/default.nix index d2e04586e382..2df3e3a17c84 100644 --- a/pkgs/development/python-modules/plexapi/default.nix +++ b/pkgs/development/python-modules/plexapi/default.nix @@ -4,19 +4,19 @@ , requests , tqdm , websocket-client -, isPy27 +, pythonOlder }: buildPythonPackage rec { - pname = "PlexAPI"; - version = "4.6.1"; - disabled = isPy27; + pname = "plexapi"; + version = "4.7.0"; + disabled = pythonOlder "3.5"; src = fetchFromGitHub { owner = "pkkid"; repo = "python-plexapi"; rev = version; - sha256 = "sha256-WL5UBsvAdtfOCkVX9NI0Z2fJ2CAO+NwD8wvkvkJ2uww="; + sha256 = "1gh36ln9ki69rs7ml9syqq956i996rdi145qffjwb3736zylrzkp"; }; propagatedBuildInputs = [ @@ -27,6 +27,7 @@ buildPythonPackage rec { # Tests require a running Plex instance doCheck = false; + pythonImportsCheck = [ "plexapi" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/pyfma/default.nix b/pkgs/development/python-modules/pyfma/default.nix index d53c62e2f3a9..e41d51c17719 100644 --- a/pkgs/development/python-modules/pyfma/default.nix +++ b/pkgs/development/python-modules/pyfma/default.nix @@ -1,31 +1,37 @@ { lib , buildPythonPackage -, isPy27 -, fetchPypi -, pybind11 -, exdown +, fetchFromGitHub +, importlib-metadata , numpy +, pybind11 , pytestCheckHook +, pythonOlder }: buildPythonPackage rec { pname = "pyfma"; version = "0.1.4"; + disabled = pythonOlder "3.7"; - disabled = isPy27; - - src = fetchPypi { - inherit pname version; - sha256 = "5bc6bf57d960a5232b7a56bd38e9fe3dce0911016746029931044b66bdec46e9"; + src = fetchFromGitHub { + owner = "nschloe"; + repo = pname; + rev = "v${version}"; + sha256 = "1wkcl41j2d1yflc5dl30ys1yxx68w9zn3vj8brwkm1ar9jnfmg4h"; }; + format = "pyproject"; buildInputs = [ pybind11 ]; - checkInputs = [ - exdown + propagatedBuildInputs = [ numpy + ] ++ lib.optionals (pythonOlder "3.8") [ + importlib-metadata + ]; + + checkInputs = [ pytestCheckHook ]; @@ -35,6 +41,6 @@ buildPythonPackage rec { description = "Fused multiply-add for Python"; homepage = "https://github.com/nschloe/pyfma"; license = licenses.mit; - maintainers = [ maintainers.costrouc]; + maintainers = with maintainers; [ costrouc ]; }; } diff --git a/pkgs/development/python-modules/pypck/default.nix b/pkgs/development/python-modules/pypck/default.nix index b0ea3fdcb24a..797657a28c5c 100644 --- a/pkgs/development/python-modules/pypck/default.nix +++ b/pkgs/development/python-modules/pypck/default.nix @@ -2,7 +2,6 @@ , buildPythonPackage , fetchFromGitHub , pytest-asyncio -, pytest-cov , pytest-timeout , pytestCheckHook , pythonOlder @@ -11,19 +10,18 @@ buildPythonPackage rec { pname = "pypck"; - version = "0.7.10"; + version = "0.7.11"; disabled = pythonOlder "3.8"; src = fetchFromGitHub { owner = "alengwenus"; repo = pname; rev = version; - sha256 = "sha256-B2imewEONewj1Y+Q316reIBZB/b9WQAu67x9cLMkRTU="; + sha256 = "1jj0y487qcxrprx4x2rs6r7rqsf5m9khk0xhigbvnbyvh8rsd2jr"; }; checkInputs = [ pytest-asyncio - pytest-cov pytest-timeout pytestCheckHook ]; diff --git a/pkgs/development/python-modules/pysma/default.nix b/pkgs/development/python-modules/pysma/default.nix index 4f04038d6507..f538830a7fbe 100644 --- a/pkgs/development/python-modules/pysma/default.nix +++ b/pkgs/development/python-modules/pysma/default.nix @@ -9,11 +9,11 @@ buildPythonPackage rec { pname = "pysma"; - version = "0.6.4"; + version = "0.6.5"; src = fetchPypi { inherit pname version; - sha256 = "sha256-hnvbQOilsoHn1qc/pKJ2Eq1VwJi+HbGlAAJwiME1Pgc="; + sha256 = "0kabwx8mi2kkbxxg7abnxwggxvidjrzgp5yidiyll5iba0ghhgnw"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/python-modules/sentry-sdk/default.nix b/pkgs/development/python-modules/sentry-sdk/default.nix index 9b3875822527..ff58edbeb313 100644 --- a/pkgs/development/python-modules/sentry-sdk/default.nix +++ b/pkgs/development/python-modules/sentry-sdk/default.nix @@ -29,11 +29,11 @@ buildPythonPackage rec { pname = "sentry-sdk"; - version = "1.3.0"; + version = "1.3.1"; src = fetchPypi { inherit pname version; - sha256 = "sha256-UhCnEt1X2I0iXB/D/jo2Jv7kk2N7zVTiBIJs8EuNdpw="; + sha256 = "0v72zzghlk6kvjg7fg4c4mfr1kasnwlpjzk1wyqd864nz9293sgb"; }; checkInputs = [ blinker botocore chalice django flask tornado bottle rq falcon sqlalchemy werkzeug trytond diff --git a/pkgs/development/python-modules/tensorflow/default.nix b/pkgs/development/python-modules/tensorflow/default.nix index e87c8aca40eb..c077265bf632 100644 --- a/pkgs/development/python-modules/tensorflow/default.nix +++ b/pkgs/development/python-modules/tensorflow/default.nix @@ -1,5 +1,5 @@ { stdenv, bazel_3, buildBazelPackage, isPy3k, lib, fetchFromGitHub, symlinkJoin -, addOpenGLRunpath +, addOpenGLRunpath, fetchpatch # Python deps , buildPythonPackage, pythonOlder, pythonAtLeast, python # Python libraries @@ -114,6 +114,12 @@ let }; patches = [ + # included from 2.6.0 onwards + (fetchpatch { + name = "fix-numpy-1.20-notimplementederror.patch"; + url = "https://github.com/tensorflow/tensorflow/commit/b258941525f496763d4277045b6513c815720e3a.patch"; + sha256 = "19f9bzrcfsynk11s2hqvscin5c65zf7r6g3nb10jnimw79vafiry"; + }) # Relax too strict Python packages versions dependencies. ./relax-dependencies.patch # Add missing `io_bazel_rules_docker` dependency. diff --git a/pkgs/development/tools/database/liquibase/default.nix b/pkgs/development/tools/database/liquibase/default.nix index 2dc5c4e77c85..9b3a92fecc46 100644 --- a/pkgs/development/tools/database/liquibase/default.nix +++ b/pkgs/development/tools/database/liquibase/default.nix @@ -10,11 +10,11 @@ in stdenv.mkDerivation rec { pname = "liquibase"; - version = "4.4.1"; + version = "4.4.2"; src = fetchurl { url = "https://github.com/liquibase/liquibase/releases/download/v${version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-2Y/eRIkskuk+7GC/br178XzWTnP4iXSFfa5ybLjvqDA="; + sha256 = "sha256-qOKMyqf3KX7pWjslVgcPiGlTiwvMZLvm7DiatmSLd1U="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/development/tools/ocaml/dune-release/default.nix b/pkgs/development/tools/ocaml/dune-release/default.nix index 60a9bfba58fe..4e0f8d80f780 100644 --- a/pkgs/development/tools/ocaml/dune-release/default.nix +++ b/pkgs/development/tools/ocaml/dune-release/default.nix @@ -1,6 +1,6 @@ { lib, buildDunePackage, fetchurl, makeWrapper , curly, fmt, bos, cmdliner, re, rresult, logs -, odoc, opam-format, opam-core, opam-state, yojson +, odoc, opam-format, opam-core, opam-state, yojson, astring , opam, git, findlib, mercurial, bzip2, gnutar, coreutils , alcotest, mdx }: @@ -10,18 +10,18 @@ let runtimeInputs = [ opam findlib git mercurial bzip2 gnutar coreutils ]; in buildDunePackage rec { pname = "dune-release"; - version = "1.4.0"; + version = "1.5.0"; minimumOCamlVersion = "4.06"; src = fetchurl { url = "https://github.com/ocamllabs/${pname}/releases/download/${version}/${pname}-${version}.tbz"; - sha256 = "1frinv1rsrm30q6jclicsswpshkdwwdgxx7sp6q9w4c2p211n1ln"; + sha256 = "1lyfaczskdbqnhmpiy6wga9437frds3m8prfk2rhwyb96h69y3pv"; }; nativeBuildInputs = [ makeWrapper ]; buildInputs = [ curly fmt cmdliner re opam-format opam-state opam-core - rresult logs odoc bos yojson ]; + rresult logs odoc bos yojson astring ]; checkInputs = [ alcotest mdx ] ++ runtimeInputs; doCheck = true; @@ -32,16 +32,16 @@ in buildDunePackage rec { # to have a fixed path to the binary in nix store sed -i '/must_exist (Cmd\.v "curl"/d' lib/github.ml - # fix problems with git invocations in tests - for f in tests/bin/{delegate_info,errors,tag,no_doc,x-commit-hash}/run.t; do - # set bogus user info in git so git commit doesn't fail - sed -i '/git init/ a \ $ git config user.name test; git config user.email "pseudo@pseudo.invalid"' "$f" - # surpress hint to set default branch name - substituteInPlace "$f" --replace "git init" "git init -b main" - done - # ignore weird yes error message - sed -i 's/yes |/yes 2>\/dev\/null |/' tests/bin/no_doc/run.t + sed -i 's/yes |/yes 2>\/dev\/null |/' \ + tests/bin/no_doc/run.t \ + tests/bin/draft/run.t \ + tests/bin/url-file/run.t + ''; + + preCheck = '' + # it fails when it tries to reference "./make_check_deterministic.exe" + rm -fr tests/bin/check ''; # tool specific env vars have been deprecated, use PATH diff --git a/pkgs/development/tools/ocaml/opam/default.nix b/pkgs/development/tools/ocaml/opam/default.nix index bd33d4cc1d34..eb0d284c0821 100644 --- a/pkgs/development/tools/ocaml/opam/default.nix +++ b/pkgs/development/tools/ocaml/opam/default.nix @@ -6,62 +6,74 @@ assert lib.versionAtLeast ocaml.version "4.02.3"; let srcs = { - cmdliner = fetchurl { - url = "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.2.tbz"; - sha256 = "18jqphjiifljlh9jg8zpl6310p3iwyaqphdkmf89acyaix0s4kj1"; + "0install-solver" = fetchurl { + url = "https://github.com/0install/0install/releases/download/v2.17/0install-v2.17.tbz"; + sha256 = "08q95mzmf9pyyqs68ff52422f834hi313cxmypwrxmxsabcfa10p"; }; - cppo = fetchurl { - url = "https://github.com/ocaml-community/cppo/releases/download/v1.6.6/cppo-v1.6.6.tbz"; - sha256 = "185q0x54id7pfc6rkbjscav8sjkrg78fz65rgfw7b4bqlyb2j9z7"; + "cmdliner" = fetchurl { + url = "http://erratique.ch/software/cmdliner/releases/cmdliner-1.0.4.tbz"; + sha256 = "1h04q0zkasd0mw64ggh4y58lgzkhg6yhzy60lab8k8zq9ba96ajw"; }; - cudf = fetchurl { + "cppo" = fetchurl { + url = "https://github.com/ocaml-community/cppo/releases/download/v1.6.7/cppo-v1.6.7.tbz"; + sha256 = "17ajdzrnmnyfig3s6hinb56mcmhywbssxhsq32dz0v90dhz3wmfv"; + }; + "cudf" = fetchurl { url = "https://gforge.inria.fr/frs/download.php/36602/cudf-0.9.tar.gz"; sha256 = "0771lwljqwwn3cryl0plny5a5dyyrj4z6bw66ha5n8yfbpcy8clr"; }; - dose3 = fetchurl { + "dose3" = fetchurl { url = "https://gforge.inria.fr/frs/download.php/file/36063/dose3-5.0.1.tar.gz"; sha256 = "00yvyfm4j423zqndvgc1ycnmiffaa2l9ab40cyg23pf51qmzk2jm"; }; - dune-local = fetchurl { - url = "https://github.com/ocaml/dune/releases/download/1.6.3/dune-1.6.3.tbz"; - sha256 = "0dmf0wbfmgdy5plz1bjiisc2hjgblvxsnrqjmw2c8y45v1h23mdz"; + "dune-local" = fetchurl { + url = "https://github.com/ocaml/dune/releases/download/2.9.0/dune-2.9.0.tbz"; + sha256 = "07m476kgagpd6kzm3jq30yfxqspr2hychah0xfqs14z82zxpq8dv"; }; - extlib = fetchurl { + "extlib" = fetchurl { url = "https://ygrek.org/p/release/ocaml-extlib/extlib-1.7.7.tar.gz"; sha256 = "1sxmzc1mx3kg62j8kbk0dxkx8mkf1rn70h542cjzrziflznap0s1"; }; - mccs = fetchurl { - url = "https://github.com/AltGr/ocaml-mccs/archive/1.1+11.tar.gz"; - sha256 = "0mswapf37rav8nvvbjc4c7c7wnl6qwgd3c5v0nfifmr910qygz72"; + "mccs" = fetchurl { + url = "https://github.com/AltGr/ocaml-mccs/archive/1.1+13.tar.gz"; + sha256 = "05nnji9h8mss3hzjr5faid2v3xfr7rcv2ywmpcxxp28y6h2kv9gv"; }; - ocamlgraph = fetchurl { - url = "http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.8.tar.gz"; - sha256 = "0m9g16wrrr86gw4fz2fazrh8nkqms0n863w7ndcvrmyafgxvxsnr"; + "ocamlgraph" = fetchurl { + url = "https://github.com/backtracking/ocamlgraph/releases/download/2.0.0/ocamlgraph-2.0.0.tbz"; + sha256 = "029692bvdz3hxpva9a2jg5w5381fkcw55ysdi8424lyyjxvjdzi0"; }; - opam-file-format = fetchurl { - url = "https://github.com/ocaml/opam-file-format/archive/2.0.0.tar.gz"; - sha256 = "0cjw69r7iilidi7b6arr92kjnjspchvwnmwr1b1gyaxqxpr2s98m"; + "opam-0install-cudf" = fetchurl { + url = "https://github.com/ocaml-opam/opam-0install-solver/releases/download/v0.4.2/opam-0install-cudf-v0.4.2.tbz"; + sha256 = "10wma4hh9l8hk49rl8nql6ixsvlz3163gcxspay5fwrpbg51fmxr"; }; - re = fetchurl { + "opam-file-format" = fetchurl { + url = "https://github.com/ocaml/opam-file-format/archive/2.1.3.tar.gz"; + sha256 = "1bqyrlsvmjf4gqzmzbiyja9m1ph30ic9i18x23p5ziymyylw2sfg"; + }; + "re" = fetchurl { url = "https://github.com/ocaml/ocaml-re/releases/download/1.9.0/re-1.9.0.tbz"; sha256 = "1gas4ky49zgxph3870nffzkr6y41kkpqp4nj38pz1gh49zcf12aj"; }; - result = fetchurl { - url = "https://github.com/janestreet/result/archive/1.4.tar.gz"; - sha256 = "1cjlncnzkwc6zr4v8dgy8nin490blbyxzwwp0qh0cla7s3q2jw0n"; + "result" = fetchurl { + url = "https://github.com/janestreet/result/releases/download/1.5/result-1.5.tbz"; + sha256 = "0cpfp35fdwnv3p30a06wd0py3805qxmq3jmcynjc3x2qhlimwfkw"; }; - seq = fetchurl { - url = "https://github.com/c-cube/seq/archive/0.1.tar.gz"; - sha256 = "02lb2d9i12bxrz2ba5wygk2bycan316skqlyri0597q7j9210g8r"; + "seq" = fetchurl { + url = "https://github.com/c-cube/seq/archive/0.2.2.tar.gz"; + sha256 = "1ck15v3pg8bacdg6d6iyp2jc3kgrzxk5jsgzx3287x2ycb897j53"; + }; + "stdlib-shims" = fetchurl { + url = "https://github.com/ocaml/stdlib-shims/releases/download/0.3.0/stdlib-shims-0.3.0.tbz"; + sha256 = "0jnqsv6pqp5b5g7lcjwgd75zqqvcwcl5a32zi03zg1kvj79p5gxs"; }; opam = fetchurl { - url = "https://github.com/ocaml/opam/archive/2.0.8.zip"; - sha256 = "1h55jh4nnx1fcn7v7ss3fgxrn6ixkgnq7pvg5njz8c9xq4njwbc1"; + url = "https://github.com/ocaml/opam/archive/2.1.0.zip"; + sha256 = "063df5gsvp4yrbqbnd8k7a1f04cf12prc5wh4f1200acs3jwjxwb"; }; }; in stdenv.mkDerivation { pname = "opam"; - version = "2.0.8"; + version = "2.1.0"; nativeBuildInputs = [ makeWrapper unzip ]; buildInputs = [ curl ncurses ocaml getconf ] ++ lib.optional stdenv.isLinux bubblewrap; @@ -69,18 +81,21 @@ in stdenv.mkDerivation { src = srcs.opam; postUnpack = '' - ln -sv ${srcs.cmdliner} $sourceRoot/src_ext/cmdliner.tbz - ln -sv ${srcs.cppo} $sourceRoot/src_ext/cppo.tbz - ln -sv ${srcs.cudf} $sourceRoot/src_ext/cudf.tar.gz - ln -sv ${srcs.dose3} $sourceRoot/src_ext/dose3.tar.gz - ln -sv ${srcs.dune-local} $sourceRoot/src_ext/dune-local.tbz - ln -sv ${srcs.extlib} $sourceRoot/src_ext/extlib.tar.gz - ln -sv ${srcs.mccs} $sourceRoot/src_ext/mccs.tar.gz - ln -sv ${srcs.ocamlgraph} $sourceRoot/src_ext/ocamlgraph.tar.gz - ln -sv ${srcs.opam-file-format} $sourceRoot/src_ext/opam-file-format.tar.gz - ln -sv ${srcs.re} $sourceRoot/src_ext/re.tbz - ln -sv ${srcs.result} $sourceRoot/src_ext/result.tar.gz - ln -sv ${srcs.seq} $sourceRoot/src_ext/seq.tar.gz + ln -sv ${srcs."0install-solver"} $sourceRoot/src_ext/0install-solver.tbz + ln -sv ${srcs."cmdliner"} $sourceRoot/src_ext/cmdliner.tbz + ln -sv ${srcs."cppo"} $sourceRoot/src_ext/cppo.tbz + ln -sv ${srcs."cudf"} $sourceRoot/src_ext/cudf.tar.gz + ln -sv ${srcs."dose3"} $sourceRoot/src_ext/dose3.tar.gz + ln -sv ${srcs."dune-local"} $sourceRoot/src_ext/dune-local.tbz + ln -sv ${srcs."extlib"} $sourceRoot/src_ext/extlib.tar.gz + ln -sv ${srcs."mccs"} $sourceRoot/src_ext/mccs.tar.gz + ln -sv ${srcs."ocamlgraph"} $sourceRoot/src_ext/ocamlgraph.tbz + ln -sv ${srcs."opam-0install-cudf"} $sourceRoot/src_ext/opam-0install-cudf.tbz + ln -sv ${srcs."opam-file-format"} $sourceRoot/src_ext/opam-file-format.tar.gz + ln -sv ${srcs."re"} $sourceRoot/src_ext/re.tbz + ln -sv ${srcs."result"} $sourceRoot/src_ext/result.tbz + ln -sv ${srcs."seq"} $sourceRoot/src_ext/seq.tar.gz + ln -sv ${srcs."stdlib-shims"} $sourceRoot/src_ext/stdlib-shims.tbz ''; patches = [ ./opam-shebangs.patch ]; @@ -118,4 +133,4 @@ in stdenv.mkDerivation { platforms = platforms.all; }; } -# Generated by: ./opam.nix.pl -v 2.0.8 -p opam-shebangs.patch +# Generated by: ./opam.nix.pl -v 2.1.0 -p opam-shebangs.patch diff --git a/pkgs/development/tools/ocaml/opam/opam-shebangs.patch b/pkgs/development/tools/ocaml/opam/opam-shebangs.patch index 13aa7a895708..72efec0a9105 100644 --- a/pkgs/development/tools/ocaml/opam/opam-shebangs.patch +++ b/pkgs/development/tools/ocaml/opam/opam-shebangs.patch @@ -2,7 +2,7 @@ diff --git a/src/client/opamInitDefaults.ml b/src/client/opamInitDefaults.ml index eca13a7c..1fd66f43 100644 --- a/src/client/opamInitDefaults.ml +++ b/src/client/opamInitDefaults.ml -@@ -35,11 +35,15 @@ let eval_variables = [ +@@ -35,14 +35,18 @@ let eval_variables = [ let os_filter os = FOp (FIdent ([], OpamVariable.of_string "os", None), `Eq, FString os) @@ -13,6 +13,9 @@ index eca13a7c..1fd66f43 100644 let macos_filter = os_filter "macos" let openbsd_filter = os_filter "openbsd" let freebsd_filter = os_filter "freebsd" + let not_open_free_bsd_filter = + FNot (FOr (openbsd_filter, freebsd_filter)) + let win32_filter = os_filter "win32" let sandbox_filter = FOr (linux_filter, macos_filter) +let nixos_filter = os_distribution_filter "nixos" diff --git a/pkgs/development/tools/ocaml/opam/opam.nix.pl b/pkgs/development/tools/ocaml/opam/opam.nix.pl index bfaea0c7ef30..c914bac8b5c6 100755 --- a/pkgs/development/tools/ocaml/opam/opam.nix.pl +++ b/pkgs/development/tools/ocaml/opam/opam.nix.pl @@ -51,7 +51,7 @@ for my $src (sort keys %urls) { system "echo \Q$md5s{$src}\E' *'\Q$store_path\E | md5sum -c 1>&2"; die "md5 check failed for $urls{$src}\n" if $?; print <<"EOF"; - $src = fetchurl { + "$src" = fetchurl { url = "$urls{$src}"; sha256 = "$sha256"; }; @@ -68,8 +68,8 @@ in stdenv.mkDerivation { pname = "opam"; version = "$OPAM_RELEASE"; - nativeBuildInputs = [ unzip ]; - buildInputs = [ curl ncurses ocaml makeWrapper getconf ] ++ lib.optional stdenv.isLinux bubblewrap; + nativeBuildInputs = [ makeWrapper unzip ]; + buildInputs = [ curl ncurses ocaml getconf ] ++ lib.optional stdenv.isLinux bubblewrap; src = srcs.opam; @@ -79,7 +79,7 @@ for my $src (sort keys %urls) { my($ext) = $urls{$src} =~ /(\.(?:t(?:ar\.|)|)(?:gz|bz2?))$/ or die "could not find extension for $urls{$src}\n"; print <<"EOF"; - ln -sv \${srcs.$src} \$sourceRoot/src_ext/$src$ext + ln -sv \${srcs."$src"} \$sourceRoot/src_ext/$src$ext EOF } print <<'EOF'; diff --git a/pkgs/games/dwarf-fortress/twbt/default.nix b/pkgs/games/dwarf-fortress/twbt/default.nix index 7882cf06a074..7d2816d97a4a 100644 --- a/pkgs/games/dwarf-fortress/twbt/default.nix +++ b/pkgs/games/dwarf-fortress/twbt/default.nix @@ -52,8 +52,8 @@ let }; "0.47.05" = { twbtRelease = "6.xx"; - dfhackRelease = "0.47.05-beta1"; - sha256 = "sha256-Y6G0qBMHvotp/oyiqANlzXZVklL270dhskd135PnE9Q="; + dfhackRelease = "0.47.05-r1"; + sha256 = "1nqhaf7271bm9rq9dmilhhk9q7v3841d0rv4y3fid40vfi4gpi3p"; prerelease = true; }; }; diff --git a/pkgs/misc/drivers/epson-escpr2/default.nix b/pkgs/misc/drivers/epson-escpr2/default.nix index 130be517bb84..bcb56ac00517 100644 --- a/pkgs/misc/drivers/epson-escpr2/default.nix +++ b/pkgs/misc/drivers/epson-escpr2/default.nix @@ -1,8 +1,8 @@ -{ lib, stdenv, fetchurl, cups }: +{ lib, stdenv, fetchurl, cups, busybox }: stdenv.mkDerivation rec { pname = "epson-inkjet-printer-escpr2"; - version = "1.1.34"; + version = "1.1.38"; src = fetchurl { # To find new versions, visit @@ -11,15 +11,26 @@ stdenv.mkDerivation rec { # version. # NOTE: Don't forget to update the webarchive link too! urls = [ - "https://download3.ebz.epson.net/dsc/f/03/00/12/85/48/fd5de1ecd7270b0398399355e265c99dfd1dbafb/epson-inkjet-printer-escpr2-1.1.34.tar.gz" - "https://web.archive.org/web/20210627160654/https://download3.ebz.epson.net/dsc/f/03/00/12/85/48/fd5de1ecd7270b0398399355e265c99dfd1dbafb/epson-inkjet-printer-escpr2-1.1.34.tar.gz" + "https://download3.ebz.epson.net/dsc/f/03/00/12/91/84/6902a4d11864b195ddda45f6de968d8ec1ee9e3b/epson-inkjet-printer-escpr2-1.1.38-1lsb3.2.src.rpm" + "https://web.archive.org/web/20210731163511/https://download3.ebz.epson.net/dsc/f/03/00/12/91/84/6902a4d11864b195ddda45f6de968d8ec1ee9e3b/epson-inkjet-printer-escpr2-1.1.38-1lsb3.2.src.rpm" ]; - sha256 = "sha256-sHBGWbkZ+zolHehyXQR8U2AyKSrgDSPmrkrcfcx/bAs="; + sha256 = "sha256-rQtmWREZKtu5MuqEn91/1+SfGol4f8jKzd1mQ0e3h1c="; }; + unpackPhase = '' + runHook preUnpack + + rpm2cpio $src | cpio -idmv + tar xvf ${pname}-${version}-1lsb3.2.tar.gz + cd ${pname}-${version} + + runHook postUnpack + ''; + patches = [ ./cups-filter-ppd-dirs.patch ]; buildInputs = [ cups ]; + nativeBuildInputs = [ busybox ]; meta = with lib; { homepage = "http://download.ebz.epson.net/dsc/search/01/search/"; diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix index fa25609dcdb8..4d0f98552717 100644 --- a/pkgs/misc/emulators/mgba/default.nix +++ b/pkgs/misc/emulators/mgba/default.nix @@ -18,26 +18,15 @@ , wrapQtAppsHook }: -let - desktopItem = makeDesktopItem { - name = "mgba"; - exec = "mgba-qt"; - icon = "mgba"; - comment = "A Game Boy Advance Emulator"; - desktopName = "mgba"; - genericName = "Game Boy Advance Emulator"; - categories = "Game;Emulator;"; - startupNotify = "false"; - }; -in stdenv.mkDerivation rec { +stdenv.mkDerivation rec { pname = "mgba"; - version = "0.9.0"; + version = "0.9.2"; src = fetchFromGitHub { owner = "mgba-emu"; repo = "mgba"; rev = version; - hash = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs="; + hash = "sha256-A48PVUCekdRYel/BddPCeIcEDllOvcU7pk4i4P58dpo="; }; nativeBuildInputs = [ @@ -59,9 +48,21 @@ in stdenv.mkDerivation rec { qttools ]; - postInstall = '' - cp -r ${desktopItem}/share/applications $out/share - ''; + postInstall = let + desktopItem = makeDesktopItem { + name = "mgba"; + exec = "mgba-qt"; + icon = "mgba"; + comment = "A Game Boy Advance Emulator"; + desktopName = "mgba"; + genericName = "Game Boy Advance Emulator"; + categories = "Game;Emulator;"; + startupNotify = "false"; + }; + in + '' + cp -r ${desktopItem}/share/applications $out/share + ''; meta = with lib; { homepage = "https://mgba.io"; diff --git a/pkgs/misc/emulators/openmsx/default.nix b/pkgs/misc/emulators/openmsx/default.nix index 61d416e17ac8..f054b954b59b 100644 --- a/pkgs/misc/emulators/openmsx/default.nix +++ b/pkgs/misc/emulators/openmsx/default.nix @@ -1,28 +1,55 @@ -{ lib, stdenv, fetchFromGitHub, pkg-config +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, SDL2 +, SDL2_image +, SDL2_ttf +, alsa-lib +, freetype +, glew +, libGL +, libogg +, libpng +, libtheora +, libvorbis , python -, alsa-lib, glew, libGL, libpng -, libogg, libtheora, libvorbis -, SDL2, SDL2_image, SDL2_ttf -, freetype, tcl, zlib +, tcl +, zlib }: stdenv.mkDerivation rec { pname = "openmsx"; - version = "16.0"; + version = "17.0"; src = fetchFromGitHub { owner = "openMSX"; repo = "openMSX"; rev = "RELEASE_${builtins.replaceStrings ["."] ["_"] version}"; - sha256 = "04sphn9ph378r0qv881riv90cgz58650jcqcwmi1mv6gbcb3img5"; + sha256 = "sha256-9PdUNahJZ2O6ASkzLW/uudP3hiIzTDpxzFy6Pjb8JiU="; fetchSubmodules = true; }; - nativeBuildInputs = [ pkg-config python ]; + nativeBuildInputs = [ + pkg-config + python + ]; - buildInputs = [ alsa-lib glew libGL libpng - libogg libtheora libvorbis freetype - SDL2 SDL2_image SDL2_ttf tcl zlib ]; + buildInputs = [ + SDL2 + SDL2_image + SDL2_ttf + alsa-lib + freetype + glew + libGL + libogg + libpng + libtheora + libvorbis + tcl + zlib + ]; postPatch = '' cp ${./custom-nix.mk} build/custom.mk @@ -30,19 +57,19 @@ stdenv.mkDerivation rec { dontAddPrefix = true; - # Many thanks @mthuurne from OpenMSX project - # for providing support to Nixpkgs :) + # Many thanks @mthuurne from OpenMSX project for providing support to + # Nixpkgs! :) TCL_CONFIG="${tcl}/lib/"; - meta = with lib;{ + meta = with lib; { + homepage = "https://openmsx.org"; description = "The MSX emulator that aims for perfection"; longDescription = '' OpenMSX is an emulator for the MSX home computer system. Its goal is to emulate all aspects of the MSX with 100% accuracy. ''; - homepage = "https://openmsx.org"; + license = with licenses; [ bsd2 boost gpl2Plus ]; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.unix; - license = with licenses; [ bsd2 boost gpl2 ]; }; } diff --git a/pkgs/misc/emulators/stella/default.nix b/pkgs/misc/emulators/stella/default.nix index ff90ae8908be..73e5990e112e 100644 --- a/pkgs/misc/emulators/stella/default.nix +++ b/pkgs/misc/emulators/stella/default.nix @@ -7,13 +7,13 @@ stdenv.mkDerivation rec { pname = "stella"; - version = "6.5.2"; + version = "6.5.3"; src = fetchFromGitHub { owner = "stella-emu"; repo = pname; rev = version; - hash = "sha256-CDLMOqSgRx75tjBoLycis/cckCNwgdlb9TRBlD3Dd04="; + hash = "sha256-Y9rEh9PZalQNj+d7OXN/8z5P8Hti4R3c2RL1BY+J1y4="; }; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/misc/vim-plugins/overrides.nix b/pkgs/misc/vim-plugins/overrides.nix index 60bd11803cad..de1789ca3475 100644 --- a/pkgs/misc/vim-plugins/overrides.nix +++ b/pkgs/misc/vim-plugins/overrides.nix @@ -433,6 +433,10 @@ self: super: { }); }); + onedark-nvim = super.onedark-nvim.overrideAttrs (old: { + dependencies = with self; [ lush-nvim ]; + }); + onehalf = super.onehalf.overrideAttrs (old: { configurePhase = "cd vim"; }); diff --git a/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix b/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix index 6e987c5dfb41..228a084d250f 100644 --- a/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix +++ b/pkgs/os-specific/darwin/apple-sdk-11.0/apple_sdk.nix @@ -141,6 +141,15 @@ in rec { cp -r ${MacOSX-SDK}/usr/include/libDER $out/include ''; }; + + simd = stdenv.mkDerivation { + name = "apple-lib-simd"; + dontUnpack = true; + installPhase = '' + mkdir -p $out/include + cp -r ${MacOSX-SDK}/usr/include/simd $out/include + ''; + }; }; overrides = super: { diff --git a/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix b/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix index c8f8ccc4a081..96c0475c087e 100644 --- a/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix +++ b/pkgs/os-specific/darwin/apple-sdk-11.0/frameworks.nix @@ -1,7 +1,7 @@ { frameworks, libs, libobjc, Libsystem, libnetwork }: with frameworks; with libs; { AGL = { inherit Carbon OpenGL; }; - AVFoundation = { inherit ApplicationServices AVFCapture AVFCore CoreGraphics; }; + AVFoundation = { inherit ApplicationServices AVFCapture AVFCore CoreGraphics simd UniformTypeIdentifiers; }; AVKit = {}; Accelerate = { inherit CoreWLAN IOBluetooth; }; Accessibility = {}; diff --git a/pkgs/os-specific/linux/kernel/linux-xanmod.nix b/pkgs/os-specific/linux/kernel/linux-xanmod.nix index 701f5d3b1047..62e88d018537 100644 --- a/pkgs/os-specific/linux/kernel/linux-xanmod.nix +++ b/pkgs/os-specific/linux/kernel/linux-xanmod.nix @@ -1,8 +1,9 @@ { lib, stdenv, buildLinux, fetchFromGitHub, ... } @ args: let - version = "5.13.5"; - suffix = "xanmod1-cacule"; + version = "5.13.7"; + release = "1"; + suffix = "xanmod${release}-cacule"; in buildLinux (args // rec { inherit version; @@ -12,7 +13,7 @@ buildLinux (args // rec { owner = "xanmod"; repo = "linux"; rev = modDirVersion; - sha256 = "sha256-Vhshu3mNkQ58TEOUBOuF7jLBlablxg/BioUyd96lI5g="; + sha256 = "sha256-6SppDriZWzLu6Qye1e6ciiE+Ro63vDyabxfgWS/PTSo="; }; structuredExtraConfig = with lib.kernel; { diff --git a/pkgs/os-specific/linux/kernel/linux-zen.nix b/pkgs/os-specific/linux/kernel/linux-zen.nix index 3955b1851d32..2b91a259232b 100644 --- a/pkgs/os-specific/linux/kernel/linux-zen.nix +++ b/pkgs/os-specific/linux/kernel/linux-zen.nix @@ -1,7 +1,7 @@ { lib, fetchFromGitHub, buildLinux, ... } @ args: let - version = "5.13.5"; + version = "5.13.7"; suffix = "zen1"; in @@ -14,11 +14,15 @@ buildLinux (args // { owner = "zen-kernel"; repo = "zen-kernel"; rev = "v${version}-${suffix}"; - sha256 = "sha256-3guG482lsdcWqAJ1kY757D4EeOEpTDvy95de0bHif98="; + sha256 = "sha256-ZvB5Ejt9MXP4QK5cj9CGQgFJIfDV03IW5xcknCxDui0="; + }; + + structuredExtraConfig = with lib.kernel; { + ZEN_INTERACTIVE = yes; }; extraMeta = { - branch = "5.12/master"; + branch = "5.13"; maintainers = with lib.maintainers; [ atemu andresilva ]; description = "Built using the best configuration and kernel sources for desktop, multimedia, and gaming workloads."; }; diff --git a/pkgs/os-specific/linux/rdma-core/default.nix b/pkgs/os-specific/linux/rdma-core/default.nix index 25a8f3bdafad..242a4d03811f 100644 --- a/pkgs/os-specific/linux/rdma-core/default.nix +++ b/pkgs/os-specific/linux/rdma-core/default.nix @@ -3,7 +3,7 @@ } : let - version = "35.0"; + version = "36.0"; in stdenv.mkDerivation { pname = "rdma-core"; @@ -13,7 +13,7 @@ in stdenv.mkDerivation { owner = "linux-rdma"; repo = "rdma-core"; rev = "v${version}"; - sha256 = "0ra0m1s0029qgcq0li7md6pkri7pcc4iy3cd6jrrqs9c6n1clnnd"; + sha256 = "0x3mpwmhln6brwrwix9abdq1bs9zi4qnr3r64vwqk7l6f43mqd30"; }; nativeBuildInputs = [ cmake pkg-config pandoc docutils ]; diff --git a/pkgs/servers/dns/knot-resolver/default.nix b/pkgs/servers/dns/knot-resolver/default.nix index b0f9dfd6c910..60fed65e6d73 100644 --- a/pkgs/servers/dns/knot-resolver/default.nix +++ b/pkgs/servers/dns/knot-resolver/default.nix @@ -17,11 +17,11 @@ lua = luajitPackages; unwrapped = stdenv.mkDerivation rec { pname = "knot-resolver"; - version = "5.3.2"; + version = "5.4.0"; src = fetchurl { url = "https://secure.nic.cz/files/knot-resolver/${pname}-${version}.tar.xz"; - sha256 = "8b6f447d5fe93422d4c129a2d4004a977369c3aa6e55258ead1cbd488bc01436"; + sha256 = "534af671b98433b23b57039acc9d7d3c100a4888a8cf9aeba36161774ca0815e"; }; outputs = [ "out" "dev" ]; @@ -43,7 +43,7 @@ unwrapped = stdenv.mkDerivation rec { # some tests have issues with network sandboxing, apparently + optionalString doInstallCheck '' echo 'os.exit(77)' > daemon/lua/trust_anchors.test/bootstrap.test.lua - sed '/^[[:blank:]]*test_dstaddr,$/d' -i \ + sed -E '/^[[:blank:]]*test_(dstaddr|headers),?$/d' -i \ tests/config/doh2.test.lua modules/http/http_doh.test.lua ''; diff --git a/pkgs/servers/icingaweb2/default.nix b/pkgs/servers/icingaweb2/default.nix index 7923674a3b76..bde0cb010059 100644 --- a/pkgs/servers/icingaweb2/default.nix +++ b/pkgs/servers/icingaweb2/default.nix @@ -2,13 +2,13 @@ stdenvNoCC.mkDerivation rec { pname = "icingaweb2"; - version = "2.9.0"; + version = "2.9.2"; src = fetchFromGitHub { owner = "Icinga"; repo = "icingaweb2"; rev = "v${version}"; - sha256 = "1vp2gdvgvw960178yaqql6iza0rg2h8japsnass3kkrwrmb2liq5"; + sha256 = "sha256-sCglJDxEUOAcBwNowLjglMi6y92QJ4ZF+I/5HPfTE+s="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/servers/icingaweb2/ipl.nix b/pkgs/servers/icingaweb2/ipl.nix index 35b9357009c4..20b29962b7c6 100644 --- a/pkgs/servers/icingaweb2/ipl.nix +++ b/pkgs/servers/icingaweb2/ipl.nix @@ -2,13 +2,13 @@ stdenvNoCC.mkDerivation rec { pname = "icingaweb2-ipl"; - version = "0.6.0"; + version = "0.6.1"; src = fetchFromGitHub { owner = "Icinga"; repo = "icinga-php-library"; rev = "v${version}"; - sha256 = "0nzvd84r9f1mypfhq4p37hsvkrbd5wzgs1m9qhj45ncvf5rq49f1"; + sha256 = "sha256-5xlvwB1o6d3mWd0TSybQW9s88q6A7KrledY1L8xaxLU="; }; installPhase = '' diff --git a/pkgs/servers/pulseaudio/default.nix b/pkgs/servers/pulseaudio/default.nix index 10b18dd1ae1d..232b228394bb 100644 --- a/pkgs/servers/pulseaudio/default.nix +++ b/pkgs/servers/pulseaudio/default.nix @@ -92,7 +92,10 @@ stdenv.mkDerivation rec { "--with-bash-completion-dir=${placeholder "out"}/share/bash-completions/completions" ] ++ lib.optional (jackaudioSupport && !libOnly) "--enable-jack" - ++ lib.optional stdenv.isDarwin "--with-mac-sysroot=/" + ++ lib.optionals stdenv.isDarwin [ + "--with-mac-sysroot=/" + "--disable-neon-opt" + ] ++ lib.optional (stdenv.isLinux && useSystemd) "--with-systemduserunitdir=${placeholder "out"}/lib/systemd/user" ++ lib.optional (stdenv.buildPlatform != stdenv.hostPlatform) "--disable-gsettings"; diff --git a/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix b/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix index d48db311ea10..23425b0a2d00 100644 --- a/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix +++ b/pkgs/servers/tt-rss/plugin-auth-ldap/default.nix @@ -16,6 +16,11 @@ stdenv.mkDerivation rec { url = "https://github.com/Mic92/TTRSS-Auth-LDAP/commit/7534fa54babc377a070e05e326a46a252b5e3884.patch"; sha256 = "1p7zas0n627z0g226dp5m5dg1ai2z3vi69n3xivp517iv3lch70l"; }) + # https://github.com/hydrian/TTRSS-Auth-LDAP/pull/40 + (fetchpatch { + url = "https://github.com/hydrian/TTRSS-Auth-LDAP/commit/557811efa15bab3b5044c98416f9e37264f11c9a.patch"; + sha256 = "sha256-KtDY0J1OYNTLwK7834lI+2XL1N1FkOk5zhinGY90/4A="; + }) ]; installPhase = '' diff --git a/pkgs/shells/tcsh/default.nix b/pkgs/shells/tcsh/default.nix index 4d6c9556501c..4fd4e5730a4e 100644 --- a/pkgs/shells/tcsh/default.nix +++ b/pkgs/shells/tcsh/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation rec { pname = "tcsh"; - version = "6.22.03"; + version = "6.22.04"; src = fetchurl { urls = [ @@ -15,7 +15,7 @@ stdenv.mkDerivation rec { "ftp://ftp.funet.fi/pub/unix/shells/tcsh/${pname}-${version}.tar.gz" "ftp://ftp.funet.fi/pub/unix/shells/tcsh/old/${pname}-${version}.tar.gz" ]; - sha256 = "sha256-viz9ZT0qDH9QbS3RTBIyS6dJvUhAN75t9Eo5c/UiYrc="; + hash = "sha256-6xY1YkMhjDLzngcljXK/iyHmLOlLsOipXjGLFROX4jE="; }; buildInputs = [ ncurses ]; @@ -28,12 +28,13 @@ stdenv.mkDerivation rec { }); meta = with lib; { + homepage = "https://www.tcsh.org/"; description = "An enhanced version of the Berkeley UNIX C shell (csh)"; longDescription = '' - tcsh is an enhanced but completely compatible version of the - Berkeley UNIX C shell, csh. It is a command language interpreter - usable both as an interactive login shell and a shell script - command processor. + tcsh is an enhanced but completely compatible version of the Berkeley UNIX + C shell, csh. It is a command language interpreter usable both as an + interactive login shell and a shell script command processor. + It includes: - command-line editor - programmable word completion @@ -41,10 +42,9 @@ stdenv.mkDerivation rec { - history mechanism - job control ''; - homepage = "https://www.tcsh.org/"; license = licenses.bsd2; maintainers = with maintainers; [ AndersonTorres ]; - platforms = platforms.linux ++ platforms.darwin; + platforms = platforms.unix; }; passthru = { diff --git a/pkgs/tools/admin/eksctl/default.nix b/pkgs/tools/admin/eksctl/default.nix index aeeb6b2ca423..81585c924760 100644 --- a/pkgs/tools/admin/eksctl/default.nix +++ b/pkgs/tools/admin/eksctl/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "eksctl"; - version = "0.58.0"; + version = "0.59.0"; src = fetchFromGitHub { owner = "weaveworks"; repo = pname; rev = version; - sha256 = "sha256-g7Lfx8Q2yEFk6/3r8+MUl8jehbRfVGfrZb1+WgA6TYA="; + sha256 = "sha256-qSZos1BO48Z5aiay8B/9DFGPgAOC8ib7IRjlFhzFh5Y="; }; vendorSha256 = "sha256-mapok/c3uh7xmLZnN5S9zavgxSOfytqtqxBScv4Ao8w="; diff --git a/pkgs/tools/cd-dvd/unetbootin/default.nix b/pkgs/tools/cd-dvd/unetbootin/default.nix index 71a0a763285a..f80f60608470 100644 --- a/pkgs/tools/cd-dvd/unetbootin/default.nix +++ b/pkgs/tools/cd-dvd/unetbootin/default.nix @@ -1,23 +1,39 @@ -{ lib, stdenv, fetchFromGitHub, makeWrapper, qt4, util-linux, coreutils, which, qmake4Hook -, p7zip, mtools, syslinux }: +{ lib +, stdenv +, coreutils +, fetchFromGitHub +, libsForQt5 +, mtools +, p7zip +, qt5 +, syslinux +, util-linux +, which +}: stdenv.mkDerivation rec { pname = "unetbootin"; - version = "681"; + version = "702"; src = fetchFromGitHub { - owner = "unetbootin"; - repo = "unetbootin"; - rev = version; - sha256 = "0ppqb7ywh4cpcjr5nw6f65dx4s8kx09gnhihnby3zjhxdf4l99fm"; + owner = pname; + repo = pname; + rev = version; + sha256 = "sha256-psX15XicPXAsd36BhuvK0G3GQS8hV/hazzO0HByCqV4="; }; setSourceRoot = '' sourceRoot=$(echo */src/unetbootin) ''; - buildInputs = [ qt4 ]; - nativeBuildInputs = [ makeWrapper qmake4Hook ]; + buildInputs = [ + qt5.qtbase + qt5.qttools + libsForQt5.qmake + ]; + + nativeBuildInputs = [ qt5.wrapQtAppsHook ]; + enableParallelBuilding = true; # Lots of nice hard-coded paths... @@ -50,18 +66,19 @@ stdenv.mkDerivation rec { install -Dm644 -t $out/share/unetbootin unetbootin_*.qm install -Dm644 -t $out/share/applications unetbootin.desktop - wrapProgram $out/bin/unetbootin \ - --prefix PATH : ${lib.makeBinPath [ mtools p7zip which ]} \ - --set QT_X11_NO_MITSHM 1 - runHook postInstall ''; + qtWrapperArgs = [ + "--prefix PATH : ${lib.makeBinPath [ mtools p7zip which ]}" + "--set QT_X11_NO_MITSHM 1" + ]; + meta = with lib; { - homepage = "http://unetbootin.sourceforge.net/"; description = "A tool to create bootable live USB drives from ISO images"; - license = licenses.gpl2Plus; - platforms = platforms.linux; + homepage = "http://unetbootin.github.io/"; + license = licenses.gpl2Plus; maintainers = with maintainers; [ ebzzry ]; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/filesystems/squashfs/default.nix b/pkgs/tools/filesystems/squashfs/default.nix index 2c8cd317f661..ee6a9d9a4c39 100644 --- a/pkgs/tools/filesystems/squashfs/default.nix +++ b/pkgs/tools/filesystems/squashfs/default.nix @@ -1,11 +1,13 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , zlib , xz , lz4 , lzo , zstd +, nixosTests }: stdenv.mkDerivation rec { @@ -23,6 +25,12 @@ stdenv.mkDerivation rec { # This patch adds an option to pad filesystems (increasing size) in # exchange for better chunking / binary diff calculation. ./4k-align.patch + # Otherwise sizes of some files may break in our ISO; see + # https://github.com/NixOS/nixpkgs/issues/132286 + (fetchpatch { + url = "https://github.com/plougher/squashfs-tools/commit/19b161c1cd3e31f7a396ea92dea4390ad43f27b9.diff"; + sha256 = "15ng8m2my3a6a9hnfx474bip2vwdh08hzs2k0l5gwd36jv2z1h3f"; + }) ] ++ lib.optional stdenv.isDarwin ./darwin.patch; buildInputs = [ zlib xz zstd lz4 lzo ]; @@ -40,6 +48,10 @@ stdenv.mkDerivation rec { "LZO_SUPPORT=1" ]; + passthru.tests = { + nixos-iso-boots-and-verifies = nixosTests.boot.biosCdrom; + }; + meta = with lib; { homepage = "https://github.com/plougher/squashfs-tools"; description = "Tool for creating and unpacking squashfs filesystems"; diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix index a5c456c00501..9193e18d116a 100644 --- a/pkgs/tools/misc/broot/default.nix +++ b/pkgs/tools/misc/broot/default.nix @@ -14,14 +14,14 @@ rustPlatform.buildRustPackage rec { pname = "broot"; - version = "1.6.0"; + version = "1.6.2"; src = fetchCrate { inherit pname version; - sha256 = "sha256-H/QT/fmQI9sHjl6wMJjrfjvbOhY9VyBkAGetvcUqGrE="; + sha256 = "sha256-SjfTMBGby2jzmeNEtBVYqumLExhXW8nqxpbaeeaRM3w="; }; - cargoHash = "sha256-5mqLVbB/dLAk3Ck7ilHhVn0CB/6Ln82SaTxZ/vkx+9k="; + cargoHash = "sha256-BdSqTzXu7Glhr0fQGmnkg5BXYgdQS6jgfH3A9hPpECY="; nativeBuildInputs = [ installShellFiles @@ -75,7 +75,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "An interactive tree view, a fuzzy search, a balanced BFS descent and customizable commands"; homepage = "https://dystroy.org/broot/"; - maintainers = with maintainers; [ ]; + maintainers = with maintainers; [ dywedir ]; license = with licenses; [ mit ]; }; } diff --git a/pkgs/tools/misc/vial/default.nix b/pkgs/tools/misc/vial/default.nix index c8d38d826d1f..5685141e4465 100644 --- a/pkgs/tools/misc/vial/default.nix +++ b/pkgs/tools/misc/vial/default.nix @@ -1,12 +1,12 @@ { lib, fetchurl, appimageTools }: let name = "vial-${version}"; - version = "0.4"; + version = "0.4.1"; pname = "Vial"; src = fetchurl { url = "https://github.com/vial-kb/vial-gui/releases/download/v${version}/${pname}-v${version}-x86_64.AppImage"; - sha256 = "sha256-4EDEVSqjQ6Ybqx4BoNwE4pT5yFLYM05FBHc5deQU9f8="; + sha256 = "sha256-aN0wvgahWPNSXP/JmV1JWaEnARIOTyRdz1ko6eC7Y5s="; }; appimageContents = appimageTools.extractType2 { inherit name src; }; @@ -26,7 +26,7 @@ appimageTools.wrapType2 { meta = with lib; { description = "An Open-source cross-platform (Windows, Linux and Mac) GUI and a QMK fork for configuring your keyboard in real time"; homepage = "https://get.vial.today"; - license = licenses.gpl2Only; + license = licenses.gpl2Plus; maintainers = with maintainers; [ kranzes ]; platforms = [ "x86_64-linux" ]; }; diff --git a/pkgs/tools/networking/ghostunnel/default.nix b/pkgs/tools/networking/ghostunnel/default.nix index 5d00b493bc37..c5b7d3db0f1b 100644 --- a/pkgs/tools/networking/ghostunnel/default.nix +++ b/pkgs/tools/networking/ghostunnel/default.nix @@ -7,16 +7,25 @@ buildGoModule rec { pname = "ghostunnel"; - version = "1.5.3"; + version = "1.6.0"; src = fetchFromGitHub { owner = "ghostunnel"; repo = "ghostunnel"; rev = "v${version}"; - sha256 = "15rmd89j7sfpznzznss899smizbyshprsrvsdmrbhb617myd9fpy"; + sha256 = "sha256-EE8gCm/gOp3lmCx1q4PahulipLoBZnEatNAVUXzHIVw="; }; - vendorSha256 = "1i95fx4a0fh6id6iy6afbva4pazr7ym6sbwi9r7la6gxzyncd023"; + vendorSha256 = "sha256-XgmvqB1PCfL2gSDqwqauSixk8vlINHRmX6U0h9EXXdU="; + + deleteVendor = true; + + # The certstore directory isn't recognized as a subpackage, but is when moved + # into the vendor directory. + postUnpack = '' + mkdir -p $sourceRoot/vendor/ghostunnel + mv $sourceRoot/certstore $sourceRoot/vendor/ghostunnel/ + ''; meta = with lib; { description = "A simple TLS proxy with mutual authentication support for securing non-TLS backend applications"; @@ -26,4 +35,5 @@ buildGoModule rec { }; passthru.tests.nixos = nixosTests.ghostunnel; + passthru.tests.podman = nixosTests.podman-tls-ghostunnel; } diff --git a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix index d55a46f609b1..9f3ba60af84f 100644 --- a/pkgs/tools/networking/p2p/tahoe-lafs/default.nix +++ b/pkgs/tools/networking/p2p/tahoe-lafs/default.nix @@ -1,18 +1,20 @@ -{ fetchurl, lib, nettools, pythonPackages, texinfo }: +{ lib, nettools, python3Packages, texinfo, fetchFromGitHub }: # FAILURES: The "running build_ext" phase fails to compile Twisted # plugins, because it tries to write them into Twisted's (immutable) # store path. The problem appears to be non-fatal, but there's probably # some loss of functionality because of it. -pythonPackages.buildPythonApplication rec { - version = "1.13.0"; +python3Packages.buildPythonApplication rec { + version = "2021-07-09"; pname = "tahoe-lafs"; namePrefix = ""; - src = fetchurl { - url = "https://tahoe-lafs.org/downloads/tahoe-lafs-${version}.tar.bz2"; - sha256 = "11pfz9yyy6qkkyi0kskxlbn2drfppx6yawqyv4kpkrkj4q7x5m42"; + src = fetchFromGitHub { + owner = "tahoe-lafs"; + repo = "tahoe-lafs"; + rev = "8e28a9d0e02fde2388aca549da2b5c452ac4337f"; + sha256 = "sha256-MuD/ZY+die7RCsuVdcePSD0DdwatXRi7CxW2iFt22L0="; }; outputs = [ "out" "doc" "info" ]; @@ -38,26 +40,30 @@ pythonPackages.buildPythonApplication rec { cd src/allmydata/test # Buggy? - rm cli/test_create.py test_backupdb.py + rm cli/test_create.py test_client.py # These require Tor and I2P. rm test_connections.py test_iputil.py test_hung_server.py test_i2p_provider.py test_tor_provider.py + # Fails due to the above tests missing + rm test_python3.py + # Expensive rm test_system.py ) ''; - nativeBuildInputs = with pythonPackages; [ sphinx texinfo ]; + nativeBuildInputs = with python3Packages; [ sphinx texinfo ]; # The `backup' command requires `sqlite3'. - propagatedBuildInputs = with pythonPackages; [ - twisted foolscap nevow simplejson zfec pycryptopp darcsver - setuptoolsTrial setuptoolsDarcs pycrypto pyasn1 zope_interface - service-identity pyyaml magic-wormhole treq characteristic + propagatedBuildInputs = with python3Packages; [ + appdirs beautifulsoup4 characteristic distro eliot fixtures foolscap future + html5lib magic-wormhole netifaces pyasn1 pycrypto pyutil pyyaml recommonmark + service-identity simplejson sphinx_rtd_theme testtools treq twisted zfec + zope_interface ]; - checkInputs = with pythonPackages; [ mock hypothesis twisted ]; + checkInputs = with python3Packages; [ mock hypothesis twisted ]; # Install the documentation. postInstall = '' @@ -90,6 +96,5 @@ pythonPackages.buildPythonApplication rec { license = [ lib.licenses.gpl2Plus /* or */ "TGPPLv1+" ]; maintainers = with lib.maintainers; [ MostAwesomeDude ]; platforms = lib.platforms.gnu ++ lib.platforms.linux; - broken = true; }; } diff --git a/pkgs/tools/system/gdu/default.nix b/pkgs/tools/system/gdu/default.nix index c50b2a4c84ea..480645f1c947 100644 --- a/pkgs/tools/system/gdu/default.nix +++ b/pkgs/tools/system/gdu/default.nix @@ -7,21 +7,20 @@ buildGoModule rec { pname = "gdu"; - version = "5.3.0"; + version = "5.5.0"; src = fetchFromGitHub { owner = "dundee"; repo = pname; rev = "v${version}"; - sha256 = "sha256-hf5jTEAN5oOPg2PaAlYjIDMYcwXkaFAqPtWTwZV98N0="; + sha256 = "sha256-cnDYeL1BdxBaCZtK+DnIbtsTVUr3AujA50ttchPX6V0="; }; vendorSha256 = "sha256-9W1K01PJ+tRLSJ0L7NGHXT5w5oHmlBkT8kwnOLOzSCc="; nativeBuildInputs = [ installShellFiles ]; - buildFlagsArray = [ - "-ldflags=" + ldflags = [ "-s" "-w" "-X github.com/dundee/gdu/v${lib.versions.major version}/build.Version=${version}" diff --git a/pkgs/tools/system/uptimed/default.nix b/pkgs/tools/system/uptimed/default.nix index 5d0d49f198e1..ac991436f53e 100644 --- a/pkgs/tools/system/uptimed/default.nix +++ b/pkgs/tools/system/uptimed/default.nix @@ -14,6 +14,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ autoreconfHook ]; patches = [ ./no-var-spool-install.patch ]; + postPatch = '' + substituteInPlace libuptimed/urec.h \ + --replace /var/spool /var/lib + ''; + meta = with lib; { description = "Uptime record daemon"; longDescription = '' diff --git a/pkgs/tools/text/rst2html5/default.nix b/pkgs/tools/text/rst2html5/default.nix index c9e8b0469869..5ae0caa34e13 100644 --- a/pkgs/tools/text/rst2html5/default.nix +++ b/pkgs/tools/text/rst2html5/default.nix @@ -1,22 +1,23 @@ { lib, python3Packages }: -let +python3Packages.buildPythonPackage rec { pname = "rst2html5"; - version = "1.10.6"; - format = "wheel"; -in python3Packages.buildPythonPackage { - inherit pname version format; + version = "2.0"; src = python3Packages.fetchPypi { - inherit pname version format; - sha256 = "sha256-jmToDFLQODqgTycBp2J8LyoJ1Zxho9w1VdhFMzvDFkg="; + inherit pname version; + hash = "sha256-Ejjja/fm6wXTf9YtjCYZsNDB8X5oAtyPoUIsYFDuZfc="; }; - propagatedBuildInputs = with python3Packages; - [ docutils genshi pygments beautifulsoup4 ]; + buildInputs = with python3Packages; [ + beautifulsoup4 + docutils + genshi + pygments + ]; meta = with lib;{ - homepage = "https://pypi.org/project/rst2html5/"; + homepage = "https://rst2html5.readthedocs.io/en/latest/"; description = "Converts ReSTructuredText to (X)HTML5"; license = licenses.mit; maintainers = with maintainers; [ AndersonTorres ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 0ef3ab8e60e7..2a13a4706685 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8952,7 +8952,9 @@ in inherit (darwin.apple_sdk.frameworks) Security; }; - soapui = callPackage ../applications/networking/soapui { }; + soapui = callPackage ../applications/networking/soapui { + jdk = jdk11; + }; spglib = callPackage ../development/libraries/spglib { }; @@ -16295,13 +16297,13 @@ in libcacard = callPackage ../development/libraries/libcacard { }; libcanberra = callPackage ../development/libraries/libcanberra { - inherit (darwin.apple_sdk.frameworks) CoreServices; + inherit (darwin.apple_sdk.frameworks) Carbon CoreServices; }; libcanberra-gtk2 = pkgs.libcanberra.override { - gtk = gtk2-x11; + gtkSupport = "gtk2"; }; libcanberra-gtk3 = pkgs.libcanberra.override { - gtk = gtk3-x11; + gtkSupport = "gtk3"; }; libcanberra_kde = if (config.kde_runtime.libcanberraWithoutGTK or true) @@ -31830,6 +31832,8 @@ in sane-backends = callPackage ../applications/graphics/sane/backends (config.sane or {}); + sane-drivers = callPackage ../applications/graphics/sane/drivers.nix {}; + senv = callPackage ../applications/misc/senv { }; brlaser = callPackage ../misc/cups/drivers/brlaser { }; diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index e04b6e7e681a..dfb3b639b278 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -194,6 +194,7 @@ let idrisPackages = packagePlatforms pkgs.idrisPackages; agdaPackages = packagePlatforms pkgs.agdaPackages; + pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ]; pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ]; pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];