diff --git a/doc/contributing/coding-conventions.chapter.md b/doc/contributing/coding-conventions.chapter.md index a95b600a420..e12db53ee33 100644 --- a/doc/contributing/coding-conventions.chapter.md +++ b/doc/contributing/coding-conventions.chapter.md @@ -513,3 +513,73 @@ If you do need to do create this sort of patch file, one way to do so is with gi ```ShellSession $ git diff > nixpkgs/pkgs/the/package/0001-changes.patch ``` + +## Package tests {#sec-package-tests} + +Tests are important to ensure quality and make reviews and automatic updates easy. + +Nix package tests are a lightweight alternative to [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests). They can be used to create simple integration tests for packages while the module tests are used to test services or programs with a graphical user interface on a NixOS VM. Unittests that are included in the source code of a package should be executed in the `checkPhase`. + +### Writing package tests {#ssec-package-tests-writing} + +This is an example using the `phoronix-test-suite` package with the current best practices. + +Add the tests in `passthru.tests` to the package definition like this: + +```nix +{ stdenv, lib, fetchurl, callPackage }: + +stdenv.mkDerivation { + … + + passthru.tests = { + simple-execution = callPackage ./tests.nix { }; + }; + + meta = { … }; +} +``` + +Create `tests.nix` in the package directory: + +```nix +{ runCommand, phoronix-test-suite }: + +let + inherit (phoronix-test-suite) pname version; +in + +runCommand "${pname}-tests" { meta.timeout = 3; } + '' + # automatic initial setup to prevent interactive questions + ${phoronix-test-suite}/bin/phoronix-test-suite enterprise-setup >/dev/null + # get version of installed program and compare with package version + if [[ `${phoronix-test-suite}/bin/phoronix-test-suite version` != *"${version}"* ]]; then + echo "Error: program version does not match package version" + exit 1 + fi + # run dummy command + ${phoronix-test-suite}/bin/phoronix-test-suite dummy_module.dummy-command >/dev/null + # needed for Nix to register the command as successful + touch $out + '' +``` + +### Running package tests {#ssec-package-tests-running} + +You can run these tests with: + +```ShellSession +$ cd path/to/nixpkgs +$ nix-build -A phoronix-test-suite.tests +``` + +### Examples of package tests {#ssec-package-tests-examples} + +Here are examples of package tests: + +- [Jasmin compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/jasmin/test-assemble-hello-world/default.nix) +- [Lobster compile test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/compilers/lobster/test-can-run-hello-world.nix) +- [Spacy annotation test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/python-modules/spacy/annotation-test/default.nix) +- [Libtorch test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/science/math/libtorch/test/default.nix) +- [Multiple tests for nanopb](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/nanopb/default.nix) diff --git a/lib/strings.nix b/lib/strings.nix index 0f23b6b9d41..2e502588bf8 100644 --- a/lib/strings.nix +++ b/lib/strings.nix @@ -606,7 +606,7 @@ rec { This function will fail if the input string is longer than the requested length. - Type: fixedWidthString :: int -> string -> string + Type: fixedWidthString :: int -> string -> string -> string Example: fixedWidthString 5 "0" (toString 15) diff --git a/lib/types.nix b/lib/types.nix index d0a8e96149d..31ce440bcb4 100644 --- a/lib/types.nix +++ b/lib/types.nix @@ -337,7 +337,7 @@ rec { }; shellPackage = package // { - check = x: (package.check x) && (hasAttr "shellPath" x); + check = x: isDerivation x && hasAttr "shellPath" x; }; path = mkOptionType { diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index 1cdce85531c..e9d5e811149 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2177,6 +2177,12 @@ githubId = 990767; name = "Daniel Olsen"; }; + daneads = { + email = "me@daneads.com"; + github = "daneads"; + githubId = 24708079; + name = "Dan Eads"; + }; danharaj = { email = "dan@obsidian.systems"; github = "danharaj"; @@ -2439,6 +2445,12 @@ githubId = 8404455; name = "Diego Lelis"; }; + diogox = { + name = "Diogo Xavier"; + email = "13244408+diogox@users.noreply.github.com"; + github = "diogox"; + githubId = 13244408; + }; dipinhora = { email = "dipinhora+github@gmail.com"; github = "dipinhora"; @@ -3029,6 +3041,12 @@ fingerprint = "F178 B4B4 6165 6D1B 7C15 B55D 4029 3358 C7B9 326B"; }]; }; + erikbackman = { + email = "contact@ebackman.net"; + github = "erikbackman"; + githubId = 46724898; + name = "Erik Backman"; + }; erikryb = { email = "erik.rybakken@math.ntnu.no"; github = "erikryb"; @@ -3107,6 +3125,16 @@ githubId = 2147649; name = "Euan Kemp"; }; + evalexpr = { + name = "Jonathan Wilkins"; + email = "nixos@wilkins.tech"; + github = "evalexpr"; + githubId = 23485511; + keys = [{ + longkeyid = "rsa4096/0x2D1D402E17763DD6"; + fingerprint = "8129 5B85 9C5A F703 C2F4 1E29 2D1D 402E 1776 3DD6"; + }]; + }; evanjs = { email = "evanjsx@gmail.com"; github = "evanjs"; @@ -4725,6 +4753,12 @@ githubId = 1102396; name = "Jussi Maki"; }; + joaquinito2051 = { + email = "joaquinito2051@gmail.com"; + github = "heroku-miraheze"; + githubId = 61781343; + name = "Joaquín Rufo Gutierrez"; + }; jobojeha = { email = "jobojeha@jeppener.de"; github = "jobojeha"; @@ -6144,11 +6178,11 @@ fingerprint = "B573 5118 0375 A872 FBBF 7770 B629 036B E399 EEE9"; }]; }; - mausch = { - email = "mauricioscheffer@gmail.com"; - github = "mausch"; - githubId = 95194; - name = "Mauricio Scheffer"; + masipcat = { + email = "jordi@masip.cat"; + github = "masipcat"; + githubId = 775189; + name = "Jordi Masip"; }; matejc = { email = "cotman.matej@gmail.com"; @@ -6204,6 +6238,12 @@ githubId = 136037; name = "Matthew Maurer"; }; + mausch = { + email = "mauricioscheffer@gmail.com"; + github = "mausch"; + githubId = 95194; + name = "Mauricio Scheffer"; + }; maxdamantus = { email = "maxdamantus@gmail.com"; github = "Maxdamantus"; @@ -10537,7 +10577,12 @@ githubId = 45292658; name = "Julius Schmitt"; }; - + vojta001 = { + email = "vojtech.kane@gmail.com"; + github = "vojta001"; + githubId = 7038383; + name = "Vojta Káně"; + }; volhovm = { email = "volhovm.cs@gmail.com"; github = "volhovm"; diff --git a/maintainers/team-list.nix b/maintainers/team-list.nix index 39a7231a9ee..5ed98c7be98 100644 --- a/maintainers/team-list.nix +++ b/maintainers/team-list.nix @@ -144,6 +144,7 @@ with lib.maintainers; { mguentner ekleog ralith + mjlbach ]; scope = "Maintain the ecosystem around Matrix, a decentralized messenger."; }; diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 6e4a9e7114b..e3e6dc48433 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -330,7 +330,18 @@ - vim switched to Python 3, dropping all Python 2 support. + vim and neovim switched to Python 3, dropping all Python 2 support. + + + + + networking.wireguard.interfaces.<name>.generatePrivateKeyFile, + which is off by default, had a chmod race condition + fixed. As an aside, the parent directory's permissions were widened, + and the key files were made owner-writable. + This only affects newly created keys. + However, if the exact permissions are important for your setup, read + #121294. @@ -692,6 +703,17 @@ environment.systemPackages = [ skip-kernel-setup true and takes care of setting forwarding and rp_filter sysctls by itself as well as for each interface in services.babeld.interfaces. + + + + The option has been renamed to and + now follows RFC 0042. + + + + + The yadm dotfile manager has been updated from 2.x to 3.x, which has new (XDG) default locations for some data/state files. Most yadm commands will fail and print a legacy path warning (which describes how to upgrade/migrate your repository). If you have scripts, daemons, scheduled jobs, shell profiles, etc. that invoke yadm, expect them to fail or misbehave until you perform this migration and prepare accordingly. + @@ -807,6 +829,23 @@ environment.systemPackages = [ default in the CLI tooling which in turn enables us to use unbound-control without passing a custom configuration location. + + + The module has also been reworked to be RFC + 0042 compliant. As such, + has been removed and replaced + by . + has been renamed to . + + + + and + have also been changed to + use the new settings interface. You can follow the instructions when + executing nixos-rebuild to upgrade your configuration to + use the new interface. + @@ -978,6 +1017,24 @@ environment.systemPackages = [ PostgreSQL 9.5 is scheduled EOL during the 21.05 life cycle and has been removed. + + + Xfce4 relies on + GIO/GVfs for userspace virtual filesystem access in applications + like thunar and + gigolo. + For that to work, the gvfs nixos service is enabled by default, + and it can be configured with the specific package that provides + GVfs. Until now Xfce4 was setting it to use a lighter version of + GVfs (without support for samba). To avoid conflicts with other + desktop environments this setting has been dropped. Users that + still want it should add the following to their system + configuration: + + = pkgs.gvfs.override { samba = null; }; + + + diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix index c7e45f55ce1..6497b897eaf 100644 --- a/nixos/lib/testing-python.nix +++ b/nixos/lib/testing-python.nix @@ -54,8 +54,13 @@ rec { }; # Run an automated test suite in the given virtual network. - # `driver' is the script that runs the network. - runTests = driver: + runTests = { + # the script that runs the network + driver, + # a source position in the format of builtins.unsafeGetAttrPos + # for meta.position + pos, + }: stdenv.mkDerivation { name = "vm-test-run-${driver.testName}"; @@ -69,6 +74,8 @@ rec { ''; passthru = driver.passthru; + + inherit pos; }; @@ -79,6 +86,11 @@ rec { # Skip linting (mainly intended for faster dev cycles) , skipLint ? false , passthru ? {} + , # For meta.position + pos ? # position used in error messages and for meta.position + (if t.meta.description or null != null + then builtins.unsafeGetAttrPos "description" t.meta + else builtins.unsafeGetAttrPos "testScript" t) , ... } @ t: let @@ -174,7 +186,7 @@ rec { driver = mkDriver null; driverInteractive = mkDriver pkgs.qemu; - test = passMeta (runTests driver); + test = passMeta (runTests { inherit driver pos; }); nodeNames = builtins.attrNames driver.nodes; invalidNodeNames = lib.filter diff --git a/nixos/maintainers/scripts/ec2/amazon-image.nix b/nixos/maintainers/scripts/ec2/amazon-image.nix index 653744986d1..677aff4421e 100644 --- a/nixos/maintainers/scripts/ec2/amazon-image.nix +++ b/nixos/maintainers/scripts/ec2/amazon-image.nix @@ -41,7 +41,7 @@ in { sizeMB = mkOption { type = with types; either (enum [ "auto" ]) int; - default = "auto"; + default = if config.ec2.hvm then 2048 else 8192; example = 8192; description = "The size in MB of the image"; }; diff --git a/nixos/modules/installer/sd-card/sd-image.nix b/nixos/modules/installer/sd-card/sd-image.nix index b811ae07eb0..45c8c67169b 100644 --- a/nixos/modules/installer/sd-card/sd-image.nix +++ b/nixos/modules/installer/sd-card/sd-image.nix @@ -126,6 +126,13 @@ in ''; }; + expandOnBoot = mkOption { + type = types.bool; + default = true; + description = '' + Whether to configure the sd image to expand it's partition on boot. + ''; + }; }; config = { @@ -215,7 +222,7 @@ in ''; }) {}; - boot.postBootCommands = '' + boot.postBootCommands = lib.mkIf config.sdImage.expandOnBoot '' # On the first boot do some maintenance tasks if [ -f /nix-path-registration ]; then set -euo pipefail diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index dd6fa483281..0c0935a7992 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -114,6 +114,9 @@ ./programs/autojump.nix ./programs/bandwhich.nix ./programs/bash/bash.nix + ./programs/bash/bash-completion.nix + ./programs/bash/ls-colors.nix + ./programs/bash/undistract-me.nix ./programs/bash-my-aws.nix ./programs/bcc.nix ./programs/browserpass.nix @@ -130,6 +133,7 @@ ./programs/droidcam.nix ./programs/environment.nix ./programs/evince.nix + ./programs/feedbackd.nix ./programs/file-roller.nix ./programs/firejail.nix ./programs/fish.nix @@ -163,6 +167,7 @@ ./programs/partition-manager.nix ./programs/plotinus.nix ./programs/proxychains.nix + ./programs/phosh.nix ./programs/qt5ct.nix ./programs/screen.nix ./programs/sedutil.nix @@ -509,6 +514,7 @@ ./services/misc/mame.nix ./services/misc/matrix-appservice-discord.nix ./services/misc/matrix-appservice-irc.nix + ./services/misc/matrix-dendrite.nix ./services/misc/matrix-synapse.nix ./services/misc/mautrix-telegram.nix ./services/misc/mbpfan.nix @@ -975,6 +981,7 @@ ./services/web-servers/shellinabox.nix ./services/web-servers/tomcat.nix ./services/web-servers/traefik.nix + ./services/web-servers/trafficserver.nix ./services/web-servers/ttyd.nix ./services/web-servers/uwsgi.nix ./services/web-servers/varnish/default.nix diff --git a/nixos/modules/programs/bash/bash-completion.nix b/nixos/modules/programs/bash/bash-completion.nix new file mode 100644 index 00000000000..f07b1b636ef --- /dev/null +++ b/nixos/modules/programs/bash/bash-completion.nix @@ -0,0 +1,37 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + enable = config.programs.bash.enableCompletion; +in +{ + options = { + programs.bash.enableCompletion = mkEnableOption "Bash completion for all interactive bash shells" // { + default = true; + }; + }; + + config = mkIf enable { + programs.bash.promptPluginInit = '' + # Check whether we're running a version of Bash that has support for + # programmable completion. If we do, enable all modules installed in + # the system and user profile in obsolete /etc/bash_completion.d/ + # directories. Bash loads completions in all + # $XDG_DATA_DIRS/bash-completion/completions/ + # on demand, so they do not need to be sourced here. + if shopt -q progcomp &>/dev/null; then + . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" + nullglobStatus=$(shopt -p nullglob) + shopt -s nullglob + for p in $NIX_PROFILES; do + for m in "$p/etc/bash_completion.d/"*; do + . $m + done + done + eval "$nullglobStatus" + unset nullglobStatus p m + fi + ''; + }; +} diff --git a/nixos/modules/programs/bash/bash.nix b/nixos/modules/programs/bash/bash.nix index 1b3254b54a5..908ab34b08d 100644 --- a/nixos/modules/programs/bash/bash.nix +++ b/nixos/modules/programs/bash/bash.nix @@ -11,31 +11,6 @@ let cfg = config.programs.bash; - bashCompletion = optionalString cfg.enableCompletion '' - # Check whether we're running a version of Bash that has support for - # programmable completion. If we do, enable all modules installed in - # the system and user profile in obsolete /etc/bash_completion.d/ - # directories. Bash loads completions in all - # $XDG_DATA_DIRS/bash-completion/completions/ - # on demand, so they do not need to be sourced here. - if shopt -q progcomp &>/dev/null; then - . "${pkgs.bash-completion}/etc/profile.d/bash_completion.sh" - nullglobStatus=$(shopt -p nullglob) - shopt -s nullglob - for p in $NIX_PROFILES; do - for m in "$p/etc/bash_completion.d/"*; do - . $m - done - done - eval "$nullglobStatus" - unset nullglobStatus p m - fi - ''; - - lsColors = optionalString cfg.enableLsColors '' - eval "$(${pkgs.coreutils}/bin/dircolors -b)" - ''; - bashAliases = concatStringsSep "\n" ( mapAttrsFlatten (k: v: "alias ${k}=${escapeShellArg v}") (filterAttrs (k: v: v != null) cfg.shellAliases) @@ -123,20 +98,13 @@ in type = types.lines; }; - enableCompletion = mkOption { - default = true; + promptPluginInit = mkOption { + default = ""; description = '' - Enable Bash completion for all interactive bash shells. + Shell script code used to initialise bash prompt plugins. ''; - type = types.bool; - }; - - enableLsColors = mkOption { - default = true; - description = '' - Enable extra colors in directory listings. - ''; - type = types.bool; + type = types.lines; + internal = true; }; }; @@ -167,8 +135,7 @@ in set +h ${cfg.promptInit} - ${bashCompletion} - ${lsColors} + ${cfg.promptPluginInit} ${bashAliases} ${cfge.interactiveShellInit} diff --git a/nixos/modules/programs/bash/ls-colors.nix b/nixos/modules/programs/bash/ls-colors.nix new file mode 100644 index 00000000000..254ee14c477 --- /dev/null +++ b/nixos/modules/programs/bash/ls-colors.nix @@ -0,0 +1,20 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + enable = config.programs.bash.enableLsColors; +in +{ + options = { + programs.bash.enableLsColors = mkEnableOption "extra colors in directory listings" // { + default = true; + }; + }; + + config = mkIf enable { + programs.bash.promptPluginInit = '' + eval "$(${pkgs.coreutils}/bin/dircolors -b)" + ''; + }; +} diff --git a/nixos/modules/programs/bash/undistract-me.nix b/nixos/modules/programs/bash/undistract-me.nix new file mode 100644 index 00000000000..378144f598b --- /dev/null +++ b/nixos/modules/programs/bash/undistract-me.nix @@ -0,0 +1,36 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.bash.undistractMe; +in +{ + options = { + programs.bash.undistractMe = { + enable = mkEnableOption "notifications when long-running terminal commands complete"; + + playSound = mkEnableOption "notification sounds when long-running terminal commands complete"; + + timeout = mkOption { + default = 10; + description = '' + Number of seconds it would take for a command to be considered long-running. + ''; + type = types.int; + }; + }; + }; + + config = mkIf cfg.enable { + programs.bash.promptPluginInit = '' + export LONG_RUNNING_COMMAND_TIMEOUT=${toString cfg.timeout} + export UDM_PLAY_SOUND=${if cfg.playSound then "1" else "0"} + . "${pkgs.undistract-me}/etc/profile.d/undistract-me.sh" + ''; + }; + + meta = { + maintainers = with maintainers; [ metadark ]; + }; +} diff --git a/nixos/modules/programs/feedbackd.nix b/nixos/modules/programs/feedbackd.nix new file mode 100644 index 00000000000..bb14489a6f4 --- /dev/null +++ b/nixos/modules/programs/feedbackd.nix @@ -0,0 +1,32 @@ +{ pkgs, lib, config, ... }: + +with lib; + +let + cfg = config.programs.feedbackd; +in { + options = { + programs.feedbackd = { + enable = mkEnableOption '' + Whether to enable the feedbackd D-BUS service and udev rules. + + Your user needs to be in the `feedbackd` group to trigger effects. + ''; + package = mkOption { + description = '' + Which feedbackd package to use. + ''; + type = types.package; + default = pkgs.feedbackd; + }; + }; + }; + config = mkIf cfg.enable { + environment.systemPackages = [ cfg.package ]; + + services.dbus.packages = [ cfg.package ]; + services.udev.packages = [ cfg.package ]; + + users.groups.feedbackd = {}; + }; +} diff --git a/nixos/modules/programs/phosh.nix b/nixos/modules/programs/phosh.nix new file mode 100644 index 00000000000..f6faf7990dd --- /dev/null +++ b/nixos/modules/programs/phosh.nix @@ -0,0 +1,167 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.programs.phosh; + + # Based on https://source.puri.sm/Librem5/librem5-base/-/blob/4596c1056dd75ac7f043aede07887990fd46f572/default/sm.puri.OSK0.desktop + oskItem = pkgs.makeDesktopItem { + name = "sm.puri.OSK0"; + type = "Application"; + desktopName = "On-screen keyboard"; + exec = "${pkgs.squeekboard}/bin/squeekboard"; + categories = "GNOME;Core;"; + extraEntries = '' + OnlyShowIn=GNOME; + NoDisplay=true + X-GNOME-Autostart-Phase=Panel + X-GNOME-Provides=inputmethod + X-GNOME-Autostart-Notify=true + X-GNOME-AutoRestart=true + ''; + }; + + phocConfigType = types.submodule { + options = { + xwayland = mkOption { + description = '' + Whether to enable XWayland support. + + To start XWayland immediately, use `immediate`. + ''; + type = types.enum [ "true" "false" "immediate" ]; + default = "false"; + }; + cursorTheme = mkOption { + description = '' + Cursor theme to use in Phosh. + ''; + type = types.str; + default = "default"; + }; + outputs = mkOption { + description = '' + Output configurations. + ''; + type = types.attrsOf phocOutputType; + default = { + DSI-1 = { + scale = 2; + }; + }; + }; + }; + }; + + phocOutputType = types.submodule { + options = { + modeline = mkOption { + description = '' + One or more modelines. + ''; + type = types.either types.str (types.listOf types.str); + default = []; + example = [ + "87.25 720 776 848 976 1440 1443 1453 1493 -hsync +vsync" + "65.13 768 816 896 1024 1024 1025 1028 1060 -HSync +VSync" + ]; + }; + mode = mkOption { + description = '' + Default video mode. + ''; + type = types.nullOr types.str; + default = null; + example = "768x1024"; + }; + scale = mkOption { + description = '' + Display scaling factor. + ''; + type = types.nullOr types.ints.unsigned; + default = null; + example = 2; + }; + rotate = mkOption { + description = '' + Screen transformation. + ''; + type = types.enum [ + "90" "180" "270" "flipped" "flipped-90" "flipped-180" "flipped-270" null + ]; + default = null; + }; + }; + }; + + optionalKV = k: v: if v == null then "" else "${k} = ${builtins.toString v}"; + + renderPhocOutput = name: output: let + modelines = if builtins.isList output.modeline + then output.modeline + else [ output.modeline ]; + renderModeline = l: "modeline = ${l}"; + in '' + [output:${name}] + ${concatStringsSep "\n" (map renderModeline modelines)} + ${optionalKV "mode" output.mode} + ${optionalKV "scale" output.scale} + ${optionalKV "rotate" output.rotate} + ''; + + renderPhocConfig = phoc: let + outputs = mapAttrsToList renderPhocOutput phoc.outputs; + in '' + [core] + xwayland = ${phoc.xwayland} + ${concatStringsSep "\n" outputs} + [cursor] + theme = ${phoc.cursorTheme} + ''; +in { + options = { + programs.phosh = { + enable = mkEnableOption '' + Whether to enable, Phosh, related packages and default configurations. + ''; + phocConfig = mkOption { + description = '' + Configurations for the Phoc compositor. + ''; + type = types.oneOf [ types.lines types.path phocConfigType ]; + default = {}; + }; + }; + }; + + config = mkIf cfg.enable { + environment.systemPackages = [ + pkgs.phoc + pkgs.phosh + pkgs.squeekboard + oskItem + ]; + + programs.feedbackd.enable = true; + + # https://source.puri.sm/Librem5/phosh/-/issues/303 + security.pam.services.phosh = { + text = '' + auth requisite pam_nologin.so + auth required pam_succeed_if.so user != root quiet_success + auth required pam_securetty.so + auth requisite pam_nologin.so + ''; + }; + + services.gnome3.core-shell.enable = true; + services.gnome3.core-os-services.enable = true; + services.xserver.displayManager.sessionPackages = [ pkgs.phosh ]; + + environment.etc."phosh/phoc.ini".source = + if builtins.isPath cfg.phocConfig then cfg.phocConfig + else if builtins.isString cfg.phocConfig then pkgs.writeText "phoc.ini" cfg.phocConfig + else pkgs.writeText "phoc.ini" (renderPhocConfig cfg.phocConfig); + }; +} diff --git a/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixos/modules/services/cluster/kubernetes/apiserver.nix index a5b13215476..f1531caa754 100644 --- a/nixos/modules/services/cluster/kubernetes/apiserver.nix +++ b/nixos/modules/services/cluster/kubernetes/apiserver.nix @@ -145,7 +145,7 @@ in extraOpts = mkOption { description = "Kubernetes apiserver extra command line options."; default = ""; - type = str; + type = separatedString " "; }; extraSANs = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/controller-manager.nix b/nixos/modules/services/cluster/kubernetes/controller-manager.nix index a99ef6640e9..0c81fa9ae49 100644 --- a/nixos/modules/services/cluster/kubernetes/controller-manager.nix +++ b/nixos/modules/services/cluster/kubernetes/controller-manager.nix @@ -38,7 +38,7 @@ in extraOpts = mkOption { description = "Kubernetes controller manager extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix index b5346b1cd44..a428a60800c 100644 --- a/nixos/modules/services/cluster/kubernetes/kubelet.nix +++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix @@ -142,7 +142,7 @@ in extraOpts = mkOption { description = "Kubernetes kubelet extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/proxy.nix b/nixos/modules/services/cluster/kubernetes/proxy.nix index 86d1dc2439b..7aa449f9aa2 100644 --- a/nixos/modules/services/cluster/kubernetes/proxy.nix +++ b/nixos/modules/services/cluster/kubernetes/proxy.nix @@ -25,7 +25,7 @@ in extraOpts = mkOption { description = "Kubernetes proxy extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { diff --git a/nixos/modules/services/cluster/kubernetes/scheduler.nix b/nixos/modules/services/cluster/kubernetes/scheduler.nix index 5f6113227d9..454c689759d 100644 --- a/nixos/modules/services/cluster/kubernetes/scheduler.nix +++ b/nixos/modules/services/cluster/kubernetes/scheduler.nix @@ -21,7 +21,7 @@ in extraOpts = mkOption { description = "Kubernetes scheduler extra command line options."; default = ""; - type = str; + type = separatedString " "; }; featureGates = mkOption { diff --git a/nixos/modules/services/continuous-integration/buildkite-agents.nix b/nixos/modules/services/continuous-integration/buildkite-agents.nix index b0045409ae6..3dd1c40aaa4 100644 --- a/nixos/modules/services/continuous-integration/buildkite-agents.nix +++ b/nixos/modules/services/continuous-integration/buildkite-agents.nix @@ -76,7 +76,7 @@ let }; tags = mkOption { - type = types.attrsOf types.str; + type = types.attrsOf (types.either types.str (types.listOf types.str)); default = {}; example = { queue = "default"; docker = "true"; ruby2 ="true"; }; description = '' @@ -230,7 +230,11 @@ in ## don't end up in the Nix store. preStart = let sshDir = "${cfg.dataDir}/.ssh"; - tagStr = lib.concatStringsSep "," (lib.mapAttrsToList (name: value: "${name}=${value}") cfg.tags); + tagStr = name: value: + if lib.isList value + then lib.concatStringsSep "," (builtins.map (v: "${name}=${v}") value) + else "${name}=${value}"; + tagsStr = lib.concatStringsSep "," (lib.mapAttrsToList tagStr cfg.tags); in optionalString (cfg.privateSshKeyPath != null) '' mkdir -m 0700 -p "${sshDir}" @@ -241,7 +245,7 @@ in token="$(cat ${toString cfg.tokenPath})" name="${cfg.name}" shell="${cfg.shell}" - tags="${tagStr}" + tags="${tagsStr}" build-path="${cfg.dataDir}/builds" hooks-path="${cfg.hooksPath}" ${cfg.extraConfig} diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix index d55a7db3915..820be5085de 100644 --- a/nixos/modules/services/databases/cassandra.nix +++ b/nixos/modules/services/databases/cassandra.nix @@ -1,79 +1,108 @@ { config, lib, pkgs, ... }: -with lib; - let + inherit (lib) + concatStringsSep + flip + literalExample + optionalAttrs + optionals + recursiveUpdate + mkEnableOption + mkIf + mkOption + types + versionAtLeast + ; + cfg = config.services.cassandra; + defaultUser = "cassandra"; - cassandraConfig = flip recursiveUpdate cfg.extraConfig - ({ commitlog_sync = "batch"; - commitlog_sync_batch_window_in_ms = 2; - start_native_transport = cfg.allowClients; - cluster_name = cfg.clusterName; - partitioner = "org.apache.cassandra.dht.Murmur3Partitioner"; - endpoint_snitch = "SimpleSnitch"; - data_file_directories = [ "${cfg.homeDir}/data" ]; - commitlog_directory = "${cfg.homeDir}/commitlog"; - saved_caches_directory = "${cfg.homeDir}/saved_caches"; - } // (lib.optionalAttrs (cfg.seedAddresses != []) { - seed_provider = [{ - class_name = "org.apache.cassandra.locator.SimpleSeedProvider"; - parameters = [ { seeds = concatStringsSep "," cfg.seedAddresses; } ]; - }]; - }) // (lib.optionalAttrs (lib.versionAtLeast cfg.package.version "3") { - hints_directory = "${cfg.homeDir}/hints"; - }) - ); - cassandraConfigWithAddresses = cassandraConfig // - ( if cfg.listenAddress == null - then { listen_interface = cfg.listenInterface; } - else { listen_address = cfg.listenAddress; } - ) // ( - if cfg.rpcAddress == null - then { rpc_interface = cfg.rpcInterface; } - else { rpc_address = cfg.rpcAddress; } - ); - cassandraEtc = pkgs.stdenv.mkDerivation - { name = "cassandra-etc"; - cassandraYaml = builtins.toJSON cassandraConfigWithAddresses; - cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh"; - cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig; - passAsFile = [ "extraEnvSh" ]; - inherit (cfg) extraEnvSh; - buildCommand = '' - mkdir -p "$out" - echo "$cassandraYaml" > "$out/cassandra.yaml" - ln -s "$cassandraLogbackConfig" "$out/logback.xml" + cassandraConfig = flip recursiveUpdate cfg.extraConfig ( + { + commitlog_sync = "batch"; + commitlog_sync_batch_window_in_ms = 2; + start_native_transport = cfg.allowClients; + cluster_name = cfg.clusterName; + partitioner = "org.apache.cassandra.dht.Murmur3Partitioner"; + endpoint_snitch = "SimpleSnitch"; + data_file_directories = [ "${cfg.homeDir}/data" ]; + commitlog_directory = "${cfg.homeDir}/commitlog"; + saved_caches_directory = "${cfg.homeDir}/saved_caches"; + } // optionalAttrs (cfg.seedAddresses != [ ]) { + seed_provider = [ + { + class_name = "org.apache.cassandra.locator.SimpleSeedProvider"; + parameters = [{ seeds = concatStringsSep "," cfg.seedAddresses; }]; + } + ]; + } // optionalAttrs (versionAtLeast cfg.package.version "3") { + hints_directory = "${cfg.homeDir}/hints"; + } + ); - ( cat "$cassandraEnvPkg" - echo "# lines from services.cassandra.extraEnvSh: " - cat "$extraEnvShPath" - ) > "$out/cassandra-env.sh" + cassandraConfigWithAddresses = cassandraConfig // ( + if cfg.listenAddress == null + then { listen_interface = cfg.listenInterface; } + else { listen_address = cfg.listenAddress; } + ) // ( + if cfg.rpcAddress == null + then { rpc_interface = cfg.rpcInterface; } + else { rpc_address = cfg.rpcAddress; } + ); - # Delete default JMX Port, otherwise we can't set it using env variable - sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh" + cassandraEtc = pkgs.stdenv.mkDerivation { + name = "cassandra-etc"; - # Delete default password file - sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh" - ''; - }; - defaultJmxRolesFile = builtins.foldl' - (left: right: left + right) "" - (map (role: "${role.username} ${role.password}") cfg.jmxRoles); - fullJvmOptions = cfg.jvmOpts - ++ lib.optionals (cfg.jmxRoles != []) [ + cassandraYaml = builtins.toJSON cassandraConfigWithAddresses; + cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh"; + cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig; + + passAsFile = [ "extraEnvSh" ]; + inherit (cfg) extraEnvSh; + + buildCommand = '' + mkdir -p "$out" + + echo "$cassandraYaml" > "$out/cassandra.yaml" + ln -s "$cassandraLogbackConfig" "$out/logback.xml" + + ( cat "$cassandraEnvPkg" + echo "# lines from services.cassandra.extraEnvSh: " + cat "$extraEnvShPath" + ) > "$out/cassandra-env.sh" + + # Delete default JMX Port, otherwise we can't set it using env variable + sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh" + + # Delete default password file + sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh" + ''; + }; + + defaultJmxRolesFile = + builtins.foldl' + (left: right: left + right) "" + (map (role: "${role.username} ${role.password}") cfg.jmxRoles); + + fullJvmOptions = + cfg.jvmOpts + ++ optionals (cfg.jmxRoles != [ ]) [ "-Dcom.sun.management.jmxremote.authenticate=true" "-Dcom.sun.management.jmxremote.password.file=${cfg.jmxRolesFile}" - ] - ++ lib.optionals cfg.remoteJmx [ + ] ++ optionals cfg.remoteJmx [ "-Djava.rmi.server.hostname=${cfg.rpcAddress}" ]; -in { + +in +{ options.services.cassandra = { + enable = mkEnableOption '' Apache Cassandra – Scalable and highly available database. ''; + clusterName = mkOption { type = types.str; default = "Test Cluster"; @@ -83,16 +112,19 @@ in { another. All nodes in a cluster must have the same value. ''; }; + user = mkOption { type = types.str; default = defaultUser; description = "Run Apache Cassandra under this user."; }; + group = mkOption { type = types.str; default = defaultUser; description = "Run Apache Cassandra under this group."; }; + homeDir = mkOption { type = types.path; default = "/var/lib/cassandra"; @@ -100,6 +132,7 @@ in { Home directory for Apache Cassandra. ''; }; + package = mkOption { type = types.package; default = pkgs.cassandra; @@ -109,17 +142,19 @@ in { The Apache Cassandra package to use. ''; }; + jvmOpts = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; description = '' Populate the JVM_OPT environment variable. ''; }; + listenAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; - example = literalExample "null"; + example = null; description = '' Address or interface to bind to and tell other Cassandra nodes to connect to. You _must_ change this if you want multiple @@ -136,6 +171,7 @@ in { Setting listen_address to 0.0.0.0 is always wrong. ''; }; + listenInterface = mkOption { type = types.nullOr types.str; default = null; @@ -146,10 +182,11 @@ in { supported. ''; }; + rpcAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; - example = literalExample "null"; + example = null; description = '' The address or interface to bind the native transport server to. @@ -167,6 +204,7 @@ in { internet. Firewall it if needed. ''; }; + rpcInterface = mkOption { type = types.nullOr types.str; default = null; @@ -176,6 +214,7 @@ in { correspond to a single address, IP aliasing is not supported. ''; }; + logbackConfig = mkOption { type = types.lines; default = '' @@ -197,6 +236,7 @@ in { XML logback configuration for cassandra ''; }; + seedAddresses = mkOption { type = types.listOf types.str; default = [ "127.0.0.1" ]; @@ -207,6 +247,7 @@ in { Set to 127.0.0.1 for a single node cluster. ''; }; + allowClients = mkOption { type = types.bool; default = true; @@ -219,16 +260,19 @@ in { extraConfig. ''; }; + extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = - { commitlog_sync_batch_window_in_ms = 3; + { + commitlog_sync_batch_window_in_ms = 3; }; description = '' Extra options to be merged into cassandra.yaml as nix attribute set. ''; }; + extraEnvSh = mkOption { type = types.lines; default = ""; @@ -237,48 +281,53 @@ in { Extra shell lines to be appended onto cassandra-env.sh. ''; }; + fullRepairInterval = mkOption { type = types.nullOr types.str; default = "3w"; - example = literalExample "null"; + example = null; description = '' - Set the interval how often full repairs are run, i.e. - nodetool repair --full is executed. See - https://cassandra.apache.org/doc/latest/operating/repair.html - for more information. + Set the interval how often full repairs are run, i.e. + nodetool repair --full is executed. See + https://cassandra.apache.org/doc/latest/operating/repair.html + for more information. - Set to null to disable full repairs. - ''; + Set to null to disable full repairs. + ''; }; + fullRepairOptions = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; example = [ "--partitioner-range" ]; description = '' - Options passed through to the full repair command. - ''; + Options passed through to the full repair command. + ''; }; + incrementalRepairInterval = mkOption { type = types.nullOr types.str; default = "3d"; - example = literalExample "null"; + example = null; description = '' - Set the interval how often incremental repairs are run, i.e. - nodetool repair is executed. See - https://cassandra.apache.org/doc/latest/operating/repair.html - for more information. + Set the interval how often incremental repairs are run, i.e. + nodetool repair is executed. See + https://cassandra.apache.org/doc/latest/operating/repair.html + for more information. - Set to null to disable incremental repairs. - ''; + Set to null to disable incremental repairs. + ''; }; + incrementalRepairOptions = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; example = [ "--partitioner-range" ]; description = '' - Options passed through to the incremental repair command. - ''; + Options passed through to the incremental repair command. + ''; }; + maxHeapSize = mkOption { type = types.nullOr types.str; default = null; @@ -299,6 +348,7 @@ in { expensive GC will be (usually). ''; }; + heapNewSize = mkOption { type = types.nullOr types.str; default = null; @@ -322,6 +372,7 @@ in { 100 MB per physical CPU core. ''; }; + mallocArenaMax = mkOption { type = types.nullOr types.int; default = null; @@ -330,6 +381,7 @@ in { Set this to control the amount of arenas per-thread in glibc. ''; }; + remoteJmx = mkOption { type = types.bool; default = false; @@ -341,6 +393,7 @@ in { See: https://wiki.apache.org/cassandra/JmxSecurity ''; }; + jmxPort = mkOption { type = types.int; default = 7199; @@ -351,8 +404,9 @@ in { Firewall it if needed. ''; }; + jmxRoles = mkOption { - default = []; + default = [ ]; description = '' Roles that are allowed to access the JMX (e.g. nodetool) BEWARE: The passwords will be stored world readable in the nix-store. @@ -375,11 +429,13 @@ in { }; }); }; + jmxRolesFile = mkOption { type = types.nullOr types.path; - default = if (lib.versionAtLeast cfg.package.version "3.11") - then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile - else null; + default = + if versionAtLeast cfg.package.version "3.11" + then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile + else null; example = "/var/lib/cassandra/jmx.password"; description = '' Specify your own jmx roles file. @@ -391,102 +447,115 @@ in { }; config = mkIf cfg.enable { - assertions = - [ { assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null); - message = "You have to set either listenAddress or listenInterface"; - } - { assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null); - message = "You have to set either rpcAddress or rpcInterface"; - } - { assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null); - message = "If you set either of maxHeapSize or heapNewSize you have to set both"; - } - { assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null; - message = '' - If you want JMX available remotely you need to set a password using - jmxRoles or jmxRolesFile if - using Cassandra older than v3.11. - ''; - } - ]; + assertions = [ + { + assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null); + message = "You have to set either listenAddress or listenInterface"; + } + { + assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null); + message = "You have to set either rpcAddress or rpcInterface"; + } + { + assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null); + message = "If you set either of maxHeapSize or heapNewSize you have to set both"; + } + { + assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null; + message = '' + If you want JMX available remotely you need to set a password using + jmxRoles or jmxRolesFile if + using Cassandra older than v3.11. + ''; + } + ]; users = mkIf (cfg.user == defaultUser) { - extraUsers.${defaultUser} = - { group = cfg.group; - home = cfg.homeDir; - createHome = true; - uid = config.ids.uids.cassandra; - description = "Cassandra service user"; - }; - extraGroups.${defaultUser}.gid = config.ids.gids.cassandra; + users.${defaultUser} = { + group = cfg.group; + home = cfg.homeDir; + createHome = true; + uid = config.ids.uids.cassandra; + description = "Cassandra service user"; + }; + groups.${defaultUser}.gid = config.ids.gids.cassandra; }; - systemd.services.cassandra = - { description = "Apache Cassandra service"; - after = [ "network.target" ]; - environment = - { CASSANDRA_CONF = "${cassandraEtc}"; - JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions; - MAX_HEAP_SIZE = toString cfg.maxHeapSize; - HEAP_NEWSIZE = toString cfg.heapNewSize; - MALLOC_ARENA_MAX = toString cfg.mallocArenaMax; - LOCAL_JMX = if cfg.remoteJmx then "no" else "yes"; - JMX_PORT = toString cfg.jmxPort; - }; - wantedBy = [ "multi-user.target" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = "${cfg.package}/bin/cassandra -f"; - SuccessExitStatus = 143; - }; + systemd.services.cassandra = { + description = "Apache Cassandra service"; + after = [ "network.target" ]; + environment = { + CASSANDRA_CONF = "${cassandraEtc}"; + JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions; + MAX_HEAP_SIZE = toString cfg.maxHeapSize; + HEAP_NEWSIZE = toString cfg.heapNewSize; + MALLOC_ARENA_MAX = toString cfg.mallocArenaMax; + LOCAL_JMX = if cfg.remoteJmx then "no" else "yes"; + JMX_PORT = toString cfg.jmxPort; }; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = "${cfg.package}/bin/cassandra -f"; + SuccessExitStatus = 143; + }; + }; - systemd.services.cassandra-full-repair = - { description = "Perform a full repair on this Cassandra node"; - after = [ "cassandra.service" ]; - requires = [ "cassandra.service" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = - lib.concatStringsSep " " - ([ "${cfg.package}/bin/nodetool" "repair" "--full" - ] ++ cfg.fullRepairOptions); - }; + systemd.services.cassandra-full-repair = { + description = "Perform a full repair on this Cassandra node"; + after = [ "cassandra.service" ]; + requires = [ "cassandra.service" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = + concatStringsSep " " + ([ + "${cfg.package}/bin/nodetool" + "repair" + "--full" + ] ++ cfg.fullRepairOptions); }; + }; + systemd.timers.cassandra-full-repair = mkIf (cfg.fullRepairInterval != null) { description = "Schedule full repairs on Cassandra"; wantedBy = [ "timers.target" ]; - timerConfig = - { OnBootSec = cfg.fullRepairInterval; - OnUnitActiveSec = cfg.fullRepairInterval; - Persistent = true; - }; + timerConfig = { + OnBootSec = cfg.fullRepairInterval; + OnUnitActiveSec = cfg.fullRepairInterval; + Persistent = true; + }; }; - systemd.services.cassandra-incremental-repair = - { description = "Perform an incremental repair on this cassandra node."; - after = [ "cassandra.service" ]; - requires = [ "cassandra.service" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = - lib.concatStringsSep " " - ([ "${cfg.package}/bin/nodetool" "repair" - ] ++ cfg.incrementalRepairOptions); - }; + systemd.services.cassandra-incremental-repair = { + description = "Perform an incremental repair on this cassandra node."; + after = [ "cassandra.service" ]; + requires = [ "cassandra.service" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = + concatStringsSep " " + ([ + "${cfg.package}/bin/nodetool" + "repair" + ] ++ cfg.incrementalRepairOptions); }; + }; + systemd.timers.cassandra-incremental-repair = mkIf (cfg.incrementalRepairInterval != null) { description = "Schedule incremental repairs on Cassandra"; wantedBy = [ "timers.target" ]; - timerConfig = - { OnBootSec = cfg.incrementalRepairInterval; - OnUnitActiveSec = cfg.incrementalRepairInterval; - Persistent = true; - }; + timerConfig = { + OnBootSec = cfg.incrementalRepairInterval; + OnUnitActiveSec = cfg.incrementalRepairInterval; + Persistent = true; + }; }; }; + + meta.maintainers = with lib.maintainers; [ roberth ]; } diff --git a/nixos/modules/services/hardware/pcscd.nix b/nixos/modules/services/hardware/pcscd.nix index 59c12ee12ca..4fc1e351f50 100644 --- a/nixos/modules/services/hardware/pcscd.nix +++ b/nixos/modules/services/hardware/pcscd.nix @@ -50,6 +50,7 @@ in environment.etc."reader.conf".source = cfgFile; + environment.systemPackages = [ pkgs.pcsclite ]; systemd.packages = [ (getBin pkgs.pcsclite) ]; systemd.sockets.pcscd.wantedBy = [ "sockets.target" ]; diff --git a/nixos/modules/services/mail/opendkim.nix b/nixos/modules/services/mail/opendkim.nix index 9bf6f338d93..beff57613af 100644 --- a/nixos/modules/services/mail/opendkim.nix +++ b/nixos/modules/services/mail/opendkim.nix @@ -134,7 +134,7 @@ in { ReadWritePaths = [ cfg.keyPath ]; AmbientCapabilities = []; - CapabilityBoundingSet = []; + CapabilityBoundingSet = ""; DevicePolicy = "closed"; LockPersonality = true; MemoryDenyWriteExecute = true; diff --git a/nixos/modules/services/mail/postfix.nix b/nixos/modules/services/mail/postfix.nix index 8e5bed5fcb8..35639e1bbc8 100644 --- a/nixos/modules/services/mail/postfix.nix +++ b/nixos/modules/services/mail/postfix.nix @@ -773,7 +773,7 @@ in }; services.postfix.config = (mapAttrs (_: v: mkDefault v) { - compatibility_level = "9999"; + compatibility_level = pkgs.postfix.version; mail_owner = cfg.user; default_privs = "nobody"; diff --git a/nixos/modules/services/mail/rspamd.nix b/nixos/modules/services/mail/rspamd.nix index 2f9d28195bd..473ddd52357 100644 --- a/nixos/modules/services/mail/rspamd.nix +++ b/nixos/modules/services/mail/rspamd.nix @@ -410,7 +410,7 @@ in StateDirectoryMode = "0700"; AmbientCapabilities = []; - CapabilityBoundingSet = []; + CapabilityBoundingSet = ""; DevicePolicy = "closed"; LockPersonality = true; NoNewPrivileges = true; diff --git a/nixos/modules/services/misc/airsonic.nix b/nixos/modules/services/misc/airsonic.nix index 5cc2ff7f4bd..a572f1f6d6f 100644 --- a/nixos/modules/services/misc/airsonic.nix +++ b/nixos/modules/services/misc/airsonic.nix @@ -118,7 +118,7 @@ in { ''; serviceConfig = { ExecStart = '' - ${pkgs.jre}/bin/java -Xmx${toString cfg.maxMemory}m \ + ${pkgs.jre8}/bin/java -Xmx${toString cfg.maxMemory}m \ -Dairsonic.home=${cfg.home} \ -Dserver.address=${cfg.listenAddress} \ -Dserver.port=${toString cfg.port} \ diff --git a/nixos/modules/services/misc/gitea.nix b/nixos/modules/services/misc/gitea.nix index 434e2d2429b..95369ff7ee4 100644 --- a/nixos/modules/services/misc/gitea.nix +++ b/nixos/modules/services/misc/gitea.nix @@ -477,47 +477,49 @@ in in '' # copy custom configuration and generate a random secret key if needed ${optionalString (cfg.useWizard == false) '' - cp -f ${configFile} ${runConfig} + function gitea_setup { + cp -f ${configFile} ${runConfig} - if [ ! -e ${secretKey} ]; then - ${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey} - fi + if [ ! -e ${secretKey} ]; then + ${gitea}/bin/gitea generate secret SECRET_KEY > ${secretKey} + fi - # Migrate LFS_JWT_SECRET filename - if [[ -e ${oldLfsJwtSecret} && ! -e ${lfsJwtSecret} ]]; then - mv ${oldLfsJwtSecret} ${lfsJwtSecret} - fi + # Migrate LFS_JWT_SECRET filename + if [[ -e ${oldLfsJwtSecret} && ! -e ${lfsJwtSecret} ]]; then + mv ${oldLfsJwtSecret} ${lfsJwtSecret} + fi - if [ ! -e ${oauth2JwtSecret} ]; then - ${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret} - fi + if [ ! -e ${oauth2JwtSecret} ]; then + ${gitea}/bin/gitea generate secret JWT_SECRET > ${oauth2JwtSecret} + fi - if [ ! -e ${lfsJwtSecret} ]; then - ${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret} - fi + if [ ! -e ${lfsJwtSecret} ]; then + ${gitea}/bin/gitea generate secret LFS_JWT_SECRET > ${lfsJwtSecret} + fi - if [ ! -e ${internalToken} ]; then - ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken} - fi + if [ ! -e ${internalToken} ]; then + ${gitea}/bin/gitea generate secret INTERNAL_TOKEN > ${internalToken} + fi - SECRETKEY="$(head -n1 ${secretKey})" - DBPASS="$(head -n1 ${cfg.database.passwordFile})" - OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})" - LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})" - INTERNALTOKEN="$(head -n1 ${internalToken})" - ${if (cfg.mailerPasswordFile == null) then '' - MAILERPASSWORD="#mailerpass#" - '' else '' - MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)" - ''} - sed -e "s,#secretkey#,$SECRETKEY,g" \ - -e "s,#dbpass#,$DBPASS,g" \ - -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \ - -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \ - -e "s,#internaltoken#,$INTERNALTOKEN,g" \ - -e "s,#mailerpass#,$MAILERPASSWORD,g" \ - -i ${runConfig} - chmod 640 ${runConfig} ${secretKey} ${oauth2JwtSecret} ${lfsJwtSecret} ${internalToken} + SECRETKEY="$(head -n1 ${secretKey})" + DBPASS="$(head -n1 ${cfg.database.passwordFile})" + OAUTH2JWTSECRET="$(head -n1 ${oauth2JwtSecret})" + LFSJWTSECRET="$(head -n1 ${lfsJwtSecret})" + INTERNALTOKEN="$(head -n1 ${internalToken})" + ${if (cfg.mailerPasswordFile == null) then '' + MAILERPASSWORD="#mailerpass#" + '' else '' + MAILERPASSWORD="$(head -n1 ${cfg.mailerPasswordFile} || :)" + ''} + sed -e "s,#secretkey#,$SECRETKEY,g" \ + -e "s,#dbpass#,$DBPASS,g" \ + -e "s,#oauth2jwtsecret#,$OAUTH2JWTSECRET,g" \ + -e "s,#lfsjwtsecret#,$LFSJWTSECRET,g" \ + -e "s,#internaltoken#,$INTERNALTOKEN,g" \ + -e "s,#mailerpass#,$MAILERPASSWORD,g" \ + -i ${runConfig} + } + (umask 027; gitea_setup) ''} # update all hooks' binary paths diff --git a/nixos/modules/services/misc/home-assistant.nix b/nixos/modules/services/misc/home-assistant.nix index 0590f54ae60..1985f130881 100644 --- a/nixos/modules/services/misc/home-assistant.nix +++ b/nixos/modules/services/misc/home-assistant.nix @@ -245,22 +245,85 @@ in { rm -f "${cfg.configDir}/ui-lovelace.yaml" ln -s ${lovelaceConfigFile} "${cfg.configDir}/ui-lovelace.yaml" ''); - serviceConfig = { - ExecStart = "${package}/bin/hass --config '${cfg.configDir}'"; + serviceConfig = let + # List of capabilities to equip home-assistant with, depending on configured components + capabilities = [ + # Empty string first, so we will never accidentally have an empty capability bounding set + # https://github.com/NixOS/nixpkgs/issues/120617#issuecomment-830685115 + "" + ] ++ (unique (optionals (useComponent "bluetooth_tracker" || useComponent "bluetooth_le_tracker") [ + # Required for interaction with hci devices and bluetooth sockets + # https://www.home-assistant.io/integrations/bluetooth_le_tracker/#rootless-setup-on-core-installs + "CAP_NET_ADMIN" + "CAP_NET_RAW" + ] ++ lib.optionals (useComponent "emulated_hue") [ + # Alexa looks for the service on port 80 + # https://www.home-assistant.io/integrations/emulated_hue + "CAP_NET_BIND_SERVICE" + ] ++ lib.optionals (useComponent "nmap_tracker") [ + # https://www.home-assistant.io/integrations/nmap_tracker#linux-capabilities + "CAP_NET_ADMIN" + "CAP_NET_BIND_SERVICE" + "CAP_NET_RAW" + ])); + in { + ExecStart = "${package}/bin/hass --runner --config '${cfg.configDir}'"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; User = "hass"; Group = "hass"; Restart = "on-failure"; + RestartForceExitStatus = "100"; + SuccessExitStatus = "100"; + KillSignal = "SIGINT"; + + # Hardening + AmbientCapabilities = capabilities; + CapabilityBoundingSet = capabilities; + DeviceAllow = [ + "char-ttyACM rw" + "char-ttyAMA rw" + "char-ttyUSB rw" + ]; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; + PrivateTmp = true; + PrivateUsers = false; # prevents gaining capabilities in the host namespace + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProcSubset = "pid"; ProtectSystem = "strict"; + RemoveIPC = true; ReadWritePaths = let + # Allow rw access to explicitly configured paths cfgPath = [ "config" "homeassistant" "allowlist_external_dirs" ]; value = attrByPath cfgPath [] cfg; allowPaths = if isList value then value else singleton value; in [ "${cfg.configDir}" ] ++ allowPaths; - KillSignal = "SIGINT"; - PrivateTmp = true; - RemoveIPC = true; - AmbientCapabilities = "cap_net_raw,cap_net_admin+eip"; + RestrictAddressFamilies = [ + "AF_UNIX" + "AF_INET" + "AF_INET6" + ] ++ optionals (useComponent "bluetooth_tracker" || useComponent "bluetooth_le_tracker") [ + "AF_BLUETOOTH" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SupplementaryGroups = [ "dialout" ]; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + ]; + UMask = "0077"; }; path = [ "/run/wrappers" # needed for ping @@ -278,7 +341,6 @@ in { home = cfg.configDir; createHome = true; group = "hass"; - extraGroups = [ "dialout" ]; uid = config.ids.uids.hass; }; diff --git a/nixos/modules/services/misc/matrix-dendrite.nix b/nixos/modules/services/misc/matrix-dendrite.nix new file mode 100644 index 00000000000..b719df29c5a --- /dev/null +++ b/nixos/modules/services/misc/matrix-dendrite.nix @@ -0,0 +1,181 @@ +{ config, lib, pkgs, ... }: +let + cfg = config.services.matrix-dendrite; + settingsFormat = pkgs.formats.yaml { }; + configurationYaml = settingsFormat.generate "dendrite.yaml" cfg.settings; + workingDir = "/var/lib/matrix-dendrite"; +in +{ + options.services.matrix-dendrite = { + enable = lib.mkEnableOption "matrix.org dendrite"; + httpPort = lib.mkOption { + type = lib.types.nullOr lib.types.port; + default = 8008; + description = '' + The port to listen for HTTP requests on. + ''; + }; + httpsPort = lib.mkOption { + type = lib.types.nullOr lib.types.port; + default = null; + description = '' + The port to listen for HTTPS requests on. + ''; + }; + tlsCert = lib.mkOption { + type = lib.types.nullOr lib.types.path; + example = "/var/lib/matrix-dendrite/server.cert"; + default = null; + description = '' + The path to the TLS certificate. + + + nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" + + ''; + }; + tlsKey = lib.mkOption { + type = lib.types.nullOr lib.types.path; + example = "/var/lib/matrix-dendrite/server.key"; + default = null; + description = '' + The path to the TLS key. + + + nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" + + ''; + }; + environmentFile = lib.mkOption { + type = lib.types.nullOr lib.types.path; + example = "/var/lib/matrix-dendrite/registration_secret"; + default = null; + 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. Currently only used + for the registration secret to allow secure registration when + client_api.registration_disabled is true. + + + # snippet of dendrite-related config + services.matrix-dendrite.settings.client_api.registration_shared_secret = "$REGISTRATION_SHARED_SECRET"; + + + + # content of the environment file + REGISTRATION_SHARED_SECRET=verysecretpassword + + + Note that this file needs to be available on the host on which + dendrite is running. + ''; + }; + settings = lib.mkOption { + type = lib.types.submodule { + freeformType = settingsFormat.type; + options.global = { + server_name = lib.mkOption { + type = lib.types.str; + example = "example.com"; + description = '' + The domain name of the server, with optional explicit port. + This is used by remote servers to connect to this server. + This is also the last part of your UserID. + ''; + }; + private_key = lib.mkOption { + type = lib.types.path; + example = "${workingDir}/matrix_key.pem"; + description = '' + The path to the signing private key file, used to sign + requests and events. + + + nix-shell -p matrix-dendrite --command "generate-keys --private-key matrix_key.pem" + + ''; + }; + trusted_third_party_id_servers = lib.mkOption { + type = lib.types.listOf lib.types.str; + example = [ "matrix.org" ]; + default = [ "matrix.org" "vector.im" ]; + description = '' + Lists of domains that the server will trust as identity + servers to verify third party identifiers such as phone + numbers and email addresses + ''; + }; + }; + options.client_api = { + registration_disabled = lib.mkOption { + type = lib.types.bool; + default = true; + description = '' + Whether to disable user registration to the server + without the shared secret. + ''; + }; + }; + }; + default = { }; + description = '' + Configuration for dendrite, see: + + for available options with which to populate settings. + ''; + }; + }; + + config = lib.mkIf cfg.enable { + assertions = [{ + assertion = cfg.httpsPort != null -> (cfg.tlsCert != null && cfg.tlsKey != null); + message = '' + If Dendrite is configured to use https, tlsCert and tlsKey must be provided. + + nix-shell -p matrix-dendrite --command "generate-keys --tls-cert server.crt --tls-key server.key" + ''; + }]; + + systemd.services.matrix-dendrite = { + description = "Dendrite Matrix homeserver"; + after = [ + "network.target" + ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + Type = "simple"; + DynamicUser = true; + StateDirectory = "matrix-dendrite"; + WorkingDirectory = workingDir; + RuntimeDirectory = "matrix-dendrite"; + RuntimeDirectoryMode = "0700"; + EnvironmentFile = lib.mkIf (cfg.environmentFile != null) cfg.environmentFile; + ExecStartPre = + if (cfg.environmentFile != null) then '' + ${pkgs.envsubst}/bin/envsubst \ + -i ${configurationYaml} \ + -o /run/matrix-dendrite/dendrite.yaml + '' else '' + ${pkgs.coreutils}/bin/cp ${configurationYaml} /run/matrix-dendrite/dendrite.yaml + ''; + ExecStart = lib.strings.concatStringsSep " " ([ + "${pkgs.matrix-dendrite}/bin/dendrite-monolith-server" + "--config /run/matrix-dendrite/dendrite.yaml" + ] ++ lib.optionals (cfg.httpPort != null) [ + "--http-bind-address :${builtins.toString cfg.httpPort}" + ] ++ lib.optionals (cfg.httpsPort != null) [ + "--https-bind-address :${builtins.toString cfg.httpsPort}" + "--tls-cert ${cfg.tlsCert}" + "--tls-key ${cfg.tlsKey}" + ]); + ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; + Restart = "on-failure"; + }; + }; + }; + meta.maintainers = lib.teams.matrix.members; +} diff --git a/nixos/modules/services/misc/pinnwand.nix b/nixos/modules/services/misc/pinnwand.nix index aa1ee5cfaa7..cbc796c9a7c 100644 --- a/nixos/modules/services/misc/pinnwand.nix +++ b/nixos/modules/services/misc/pinnwand.nix @@ -24,55 +24,80 @@ in Your pinnwand.toml as a Nix attribute set. Look up possible options in the pinnwand.toml-example. ''; - default = { - # https://github.com/supakeen/pinnwand/blob/master/pinnwand.toml-example - database_uri = "sqlite:///var/lib/pinnwand/pinnwand.db"; - preferred_lexeres = []; - paste_size = 262144; - paste_help = '' -

Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.

People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.

- ''; - footer = '' - View source code, the removal or expiry stories, or read the about page. - ''; - }; + default = {}; }; }; config = mkIf cfg.enable { - systemd.services.pinnwand = { - description = "Pinnwannd HTTP Server"; - after = [ "network.target" ]; - wantedBy = [ "multi-user.target" ]; + services.pinnwand.settings = { + database_uri = mkDefault "sqlite:////var/lib/pinnwand/pinnwand.db"; + paste_size = mkDefault 262144; + paste_help = mkDefault '' +

Welcome to pinnwand, this site is a pastebin. It allows you to share code with others. If you write code in the text area below and press the paste button you will be given a link you can share with others so they can view your code as well.

People with the link can view your pasted code, only you can remove your paste and it expires automatically. Note that anyone could guess the URI to your paste so don't rely on it being private.

+ ''; + footer = mkDefault '' + View source code, the removal or expiry stories, or read the about page. + ''; + }; + + systemd.services = let + hardeningOptions = { + User = "pinnwand"; + DynamicUser = true; - unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/"; - serviceConfig = { - ExecStart = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile} http --port ${toString(cfg.port)}"; StateDirectory = "pinnwand"; StateDirectoryMode = "0700"; AmbientCapabilities = []; CapabilityBoundingSet = ""; DevicePolicy = "closed"; - DynamicUser = true; LockPersonality = true; MemoryDenyWriteExecute = true; PrivateDevices = true; PrivateUsers = true; + ProcSubset = "pid"; ProtectClock = true; ProtectControlGroups = true; - ProtectKernelLogs = true; ProtectHome = true; ProtectHostname = true; + ProtectKernelLogs = true; ProtectKernelModules = true; ProtectKernelTunables = true; - RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ]; + ProtectProc = "invisible"; + RestrictAddressFamilies = [ + "AF_UNIX" + "AF_INET" + "AF_INET6" + ]; RestrictNamespaces = true; RestrictRealtime = true; SystemCallArchitectures = "native"; SystemCallFilter = "@system-service"; UMask = "0077"; }; + + command = "${pkgs.pinnwand}/bin/pinnwand --configuration-path ${configFile}"; + in { + pinnwand = { + description = "Pinnwannd HTTP Server"; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + + unitConfig.Documentation = "https://pinnwand.readthedocs.io/en/latest/"; + + serviceConfig = { + ExecStart = "${command} http --port ${toString(cfg.port)}"; + } // hardeningOptions; + }; + + pinnwand-reaper = { + description = "Pinnwand Reaper"; + startAt = "daily"; + + serviceConfig = { + ExecStart = "${command} -vvvv reap"; # verbosity increased to show number of deleted pastes + } // hardeningOptions; + }; }; }; } diff --git a/nixos/modules/services/misc/zigbee2mqtt.nix b/nixos/modules/services/misc/zigbee2mqtt.nix index cd987eb76c7..4458da1346b 100644 --- a/nixos/modules/services/misc/zigbee2mqtt.nix +++ b/nixos/modules/services/misc/zigbee2mqtt.nix @@ -5,29 +5,17 @@ with lib; let cfg = config.services.zigbee2mqtt; - configJSON = pkgs.writeText "configuration.json" - (builtins.toJSON (recursiveUpdate defaultConfig cfg.config)); - configFile = pkgs.runCommand "configuration.yaml" { preferLocalBuild = true; } '' - ${pkgs.remarshal}/bin/json2yaml -i ${configJSON} -o $out - ''; + format = pkgs.formats.yaml { }; + configFile = format.generate "zigbee2mqtt.yaml" cfg.settings; - # the default config contains all required settings, - # so the service starts up without crashing. - defaultConfig = { - homeassistant = false; - permit_join = false; - mqtt = { - base_topic = "zigbee2mqtt"; - server = "mqtt://localhost:1883"; - }; - serial.port = "/dev/ttyACM0"; - # put device configuration into separate file because configuration.yaml - # is copied from the store on startup - devices = "devices.yaml"; - }; in { - meta.maintainers = with maintainers; [ sweber ]; + meta.maintainers = with maintainers; [ sweber hexa ]; + + imports = [ + # Remove warning before the 21.11 release + (mkRenamedOptionModule [ "services" "zigbee2mqtt" "config" ] [ "services" "zigbee2mqtt" "settings" ]) + ]; options.services.zigbee2mqtt = { enable = mkEnableOption "enable zigbee2mqtt service"; @@ -37,7 +25,11 @@ in default = pkgs.zigbee2mqtt.override { dataDir = cfg.dataDir; }; - defaultText = "pkgs.zigbee2mqtt"; + defaultText = literalExample '' + pkgs.zigbee2mqtt { + dataDir = services.zigbee2mqtt.dataDir + } + ''; type = types.package; }; @@ -47,9 +39,9 @@ in type = types.path; }; - config = mkOption { + settings = mkOption { + type = format.type; default = {}; - type = with types; nullOr attrs; example = literalExample '' { homeassistant = config.services.home-assistant.enable; @@ -61,11 +53,28 @@ in ''; description = '' Your configuration.yaml as a Nix attribute set. + Check the documentation + for possible options. ''; }; }; config = mkIf (cfg.enable) { + + # preset config values + services.zigbee2mqtt.settings = { + homeassistant = mkDefault config.services.home-assistant.enable; + permit_join = mkDefault false; + mqtt = { + base_topic = mkDefault "zigbee2mqtt"; + server = mkDefault "mqtt://localhost:1883"; + }; + serial.port = mkDefault "/dev/ttyACM0"; + # reference device configuration, that is kept in a separate file + # to prevent it being overwritten in the units ExecStartPre script + devices = mkDefault "devices.yaml"; + }; + systemd.services.zigbee2mqtt = { description = "Zigbee2mqtt Service"; wantedBy = [ "multi-user.target" ]; @@ -76,10 +85,48 @@ in User = "zigbee2mqtt"; WorkingDirectory = cfg.dataDir; Restart = "on-failure"; + + # Hardening + CapabilityBoundingSet = ""; + DeviceAllow = [ + config.services.zigbee2mqtt.settings.serial.port + ]; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = false; + NoNewPrivileges = true; + PrivateDevices = false; # prevents access to /dev/serial, because it is set 0700 root:root + PrivateUsers = true; + PrivateTmp = true; + ProtectClock = true; + ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; + ProtectKernelModules = true; + ProtectKernelTunables = true; + ProtectProc = "invisible"; + ProcSubset = "pid"; ProtectSystem = "strict"; ReadWritePaths = cfg.dataDir; - PrivateTmp = true; RemoveIPC = true; + RestrictAddressFamilies = [ + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SupplementaryGroups = [ + "dialout" + ]; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "~@resources" + ]; + UMask = "0077"; }; preStart = '' cp --no-preserve=mode ${configFile} "${cfg.dataDir}/configuration.yaml" @@ -90,7 +137,6 @@ in home = cfg.dataDir; createHome = true; group = "zigbee2mqtt"; - extraGroups = [ "dialout" ]; uid = config.ids.uids.zigbee2mqtt; }; diff --git a/nixos/modules/services/networking/babeld.nix b/nixos/modules/services/networking/babeld.nix index 97dca002a00..5e14283179a 100644 --- a/nixos/modules/services/networking/babeld.nix +++ b/nixos/modules/services/networking/babeld.nix @@ -32,6 +32,8 @@ in { + meta.maintainers = with maintainers; [ hexa ]; + ###### interface options = { diff --git a/nixos/modules/services/networking/bind.nix b/nixos/modules/services/networking/bind.nix index e507e8ce9ee..b73b2b62685 100644 --- a/nixos/modules/services/networking/bind.nix +++ b/nixos/modules/services/networking/bind.nix @@ -8,32 +8,37 @@ let bindUser = "named"; - bindZoneOptions = { - name = mkOption { - type = types.str; - description = "Name of the zone."; - }; - master = mkOption { - description = "Master=false means slave server"; - type = types.bool; - }; - file = mkOption { - type = types.either types.str types.path; - description = "Zone file resource records contain columns of data, separated by whitespace, that define the record."; - }; - masters = mkOption { - type = types.listOf types.str; - description = "List of servers for inclusion in stub and secondary zones."; - }; - slaves = mkOption { - type = types.listOf types.str; - description = "Addresses who may request zone transfers."; - default = []; - }; - extraConfig = mkOption { - type = types.str; - description = "Extra zone config to be appended at the end of the zone section."; - default = ""; + bindZoneCoerce = list: builtins.listToAttrs (lib.forEach list (zone: { name = zone.name; value = zone; })); + + bindZoneOptions = { name, config, ... }: { + options = { + name = mkOption { + type = types.str; + default = name; + description = "Name of the zone."; + }; + master = mkOption { + description = "Master=false means slave server"; + type = types.bool; + }; + file = mkOption { + type = types.either types.str types.path; + description = "Zone file resource records contain columns of data, separated by whitespace, that define the record."; + }; + masters = mkOption { + type = types.listOf types.str; + description = "List of servers for inclusion in stub and secondary zones."; + }; + slaves = mkOption { + type = types.listOf types.str; + description = "Addresses who may request zone transfers."; + default = []; + }; + extraConfig = mkOption { + type = types.str; + description = "Extra zone config to be appended at the end of the zone section."; + default = ""; + }; }; }; @@ -84,7 +89,7 @@ let ${extraConfig} }; '') - cfg.zones } + (attrValues cfg.zones) } ''; in @@ -153,18 +158,19 @@ in zones = mkOption { default = []; - type = types.listOf (types.submodule [ { options = bindZoneOptions; } ]); + type = with types; coercedTo (listOf attrs) bindZoneCoerce (attrsOf (types.submodule bindZoneOptions)); description = " List of zones we claim authority over. "; - example = [{ - name = "example.com"; - master = false; - file = "/var/dns/example.com"; - masters = ["192.168.0.1"]; - slaves = []; - extraConfig = ""; - }]; + example = { + "example.com" = { + master = false; + file = "/var/dns/example.com"; + masters = ["192.168.0.1"]; + slaves = []; + extraConfig = ""; + }; + }; }; extraConfig = mkOption { diff --git a/nixos/modules/services/networking/mosquitto.nix b/nixos/modules/services/networking/mosquitto.nix index 10b49d9b220..8e814ffd0b9 100644 --- a/nixos/modules/services/networking/mosquitto.nix +++ b/nixos/modules/services/networking/mosquitto.nix @@ -20,8 +20,7 @@ let acl_file ${aclFile} persistence true allow_anonymous ${boolToString cfg.allowAnonymous} - bind_address ${cfg.host} - port ${toString cfg.port} + listener ${toString cfg.port} ${cfg.host} ${passwordConf} ${listenerConf} ${cfg.extraConf} @@ -233,15 +232,50 @@ in ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${mosquittoConf}"; ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; - ProtectSystem = "strict"; - ProtectHome = true; + # Hardening + CapabilityBoundingSet = ""; + DevicePolicy = "closed"; + LockPersonality = true; + MemoryDenyWriteExecute = true; + NoNewPrivileges = true; PrivateDevices = true; PrivateTmp = true; - ReadWritePaths = "${cfg.dataDir}"; + PrivateUsers = true; + ProtectClock = true; ProtectControlGroups = true; + ProtectHome = true; + ProtectHostname = true; + ProtectKernelLogs = true; ProtectKernelModules = true; ProtectKernelTunables = true; - NoNewPrivileges = true; + ProtectProc = "invisible"; + ProcSubset = "pid"; + ProtectSystem = "strict"; + ReadWritePaths = [ + cfg.dataDir + "/tmp" # mosquitto_passwd creates files in /tmp before moving them + ]; + ReadOnlyPaths = with cfg.ssl; lib.optionals (enable) [ + certfile + keyfile + cafile + ]; + RemoveIPC = true; + RestrictAddressFamilies = [ + "AF_UNIX" # for sd_notify() call + "AF_INET" + "AF_INET6" + ]; + RestrictNamespaces = true; + RestrictRealtime = true; + RestrictSUIDSGID = true; + SystemCallArchitectures = "native"; + SystemCallFilter = [ + "@system-service" + "~@privileged" + "~@resources" + ]; + UMask = "0077"; }; preStart = '' rm -f ${cfg.dataDir}/passwd diff --git a/nixos/modules/services/networking/unbound.nix b/nixos/modules/services/networking/unbound.nix index 622c3d8ea43..a8747e244a9 100644 --- a/nixos/modules/services/networking/unbound.nix +++ b/nixos/modules/services/networking/unbound.nix @@ -4,51 +4,28 @@ with lib; let cfg = config.services.unbound; - stateDir = "/var/lib/unbound"; + yesOrNo = v: if v then "yes" else "no"; - access = concatMapStringsSep "\n " (x: "access-control: ${x} allow") cfg.allowedAccess; + toOption = indent: n: v: "${indent}${toString n}: ${v}"; - interfaces = concatMapStringsSep "\n " (x: "interface: ${x}") cfg.interfaces; + toConf = indent: n: v: + if builtins.isFloat v then (toOption indent n (builtins.toJSON v)) + else if isInt v then (toOption indent n (toString v)) + else if isBool v then (toOption indent n (yesOrNo v)) + else if isString v then (toOption indent n v) + else if isList v then (concatMapStringsSep "\n" (toConf indent n) v) + else if isAttrs v then (concatStringsSep "\n" ( + ["${indent}${n}:"] ++ ( + mapAttrsToList (toConf "${indent} ") v + ) + )) + else throw (traceSeq v "services.unbound.settings: unexpected type"); - isLocalAddress = x: substring 0 3 x == "::1" || substring 0 9 x == "127.0.0.1"; + confFile = pkgs.writeText "unbound.conf" (concatStringsSep "\n" ((mapAttrsToList (toConf "") cfg.settings) ++ [""])); - forward = - optionalString (any isLocalAddress cfg.forwardAddresses) '' - do-not-query-localhost: no - '' - + optionalString (cfg.forwardAddresses != []) '' - forward-zone: - name: . - '' - + concatMapStringsSep "\n" (x: " forward-addr: ${x}") cfg.forwardAddresses; + rootTrustAnchorFile = "${cfg.stateDir}/root.key"; - rootTrustAnchorFile = "${stateDir}/root.key"; - - trustAnchor = optionalString cfg.enableRootTrustAnchor - "auto-trust-anchor-file: ${rootTrustAnchorFile}"; - - confFile = pkgs.writeText "unbound.conf" '' - server: - ip-freebind: yes - directory: "${stateDir}" - username: unbound - chroot: "" - pidfile: "" - # when running under systemd there is no need to daemonize - do-daemonize: no - ${interfaces} - ${access} - ${trustAnchor} - ${lib.optionalString (cfg.localControlSocketPath != null) '' - remote-control: - control-enable: yes - control-interface: ${cfg.localControlSocketPath} - ''} - ${cfg.extraConfig} - ${forward} - ''; -in -{ +in { ###### interface @@ -64,27 +41,32 @@ in description = "The unbound package to use"; }; - allowedAccess = mkOption { - default = [ "127.0.0.0/24" ]; - type = types.listOf types.str; - description = "What networks are allowed to use unbound as a resolver."; + user = mkOption { + type = types.str; + default = "unbound"; + description = "User account under which unbound runs."; }; - interfaces = mkOption { - default = [ "127.0.0.1" ] ++ optional config.networking.enableIPv6 "::1"; - type = types.listOf types.str; - description = '' - What addresses the server should listen on. This supports the interface syntax documented in - unbound.conf8. + group = mkOption { + type = types.str; + default = "unbound"; + description = "Group under which unbound runs."; + }; + + stateDir = mkOption { + default = "/var/lib/unbound"; + description = "Directory holding all state for unbound to run."; + }; + + resolveLocalQueries = mkOption { + type = types.bool; + default = true; + description = '' + Whether unbound should resolve local queries (i.e. add 127.0.0.1 to + /etc/resolv.conf). ''; }; - forwardAddresses = mkOption { - default = []; - type = types.listOf types.str; - description = "What servers to forward queries to."; - }; - enableRootTrustAnchor = mkOption { default = true; type = types.bool; @@ -106,23 +88,66 @@ in and group will be nogroup. Users that should be permitted to access the socket must be in the - unbound group. + config.services.unbound.group group. If this option is null remote control will not be - configured at all. Unbounds default values apply. + enabled. Unbounds default values apply. ''; }; - extraConfig = mkOption { - default = ""; - type = types.lines; + settings = mkOption { + default = {}; + type = with types; submodule { + + freeformType = let + validSettingsPrimitiveTypes = oneOf [ int str bool float ]; + validSettingsTypes = oneOf [ validSettingsPrimitiveTypes (listOf validSettingsPrimitiveTypes) ]; + settingsType = (attrsOf validSettingsTypes); + in attrsOf (oneOf [ string settingsType (listOf settingsType) ]) + // { description = '' + unbound.conf configuration type. The format consist of an attribute + set of settings. Each settings can be either one value, a list of + values or an attribute set. The allowed values are integers, + strings, booleans or floats. + ''; + }; + + options = { + remote-control.control-enable = mkOption { + type = bool; + default = false; + internal = true; + }; + }; + }; + example = literalExample '' + { + server = { + interface = [ "127.0.0.1" ]; + }; + forward-zone = [ + { + name = "."; + forward-addr = "1.1.1.1@853#cloudflare-dns.com"; + } + { + name = "example.org."; + forward-addr = [ + "1.1.1.1@853#cloudflare-dns.com" + "1.0.0.1@853#cloudflare-dns.com" + ]; + } + ]; + remote-control.control-enable = true; + }; + ''; description = '' - Extra unbound config. See - unbound.conf8 - . + Declarative Unbound configuration + See the unbound.conf + 5 manpage for a list of + available options. ''; }; - }; }; @@ -130,23 +155,56 @@ in config = mkIf cfg.enable { - environment.systemPackages = [ cfg.package ]; - - users.users.unbound = { - description = "unbound daemon user"; - isSystemUser = true; - group = lib.mkIf (cfg.localControlSocketPath != null) (lib.mkDefault "unbound"); + services.unbound.settings = { + server = { + directory = mkDefault cfg.stateDir; + username = cfg.user; + chroot = ''""''; + pidfile = ''""''; + # when running under systemd there is no need to daemonize + do-daemonize = false; + interface = mkDefault ([ "127.0.0.1" ] ++ (optional config.networking.enableIPv6 "::1")); + access-control = mkDefault ([ "127.0.0.0/8 allow" ] ++ (optional config.networking.enableIPv6 "::1/128 allow")); + auto-trust-anchor-file = mkIf cfg.enableRootTrustAnchor rootTrustAnchorFile; + tls-cert-bundle = mkDefault "/etc/ssl/certs/ca-certificates.crt"; + # prevent race conditions on system startup when interfaces are not yet + # configured + ip-freebind = mkDefault true; + }; + remote-control = { + control-enable = mkDefault false; + control-interface = mkDefault ([ "127.0.0.1" ] ++ (optional config.networking.enableIPv6 "::1")); + server-key-file = mkDefault "${cfg.stateDir}/unbound_server.key"; + server-cert-file = mkDefault "${cfg.stateDir}/unbound_server.pem"; + control-key-file = mkDefault "${cfg.stateDir}/unbound_control.key"; + control-cert-file = mkDefault "${cfg.stateDir}/unbound_control.pem"; + } // optionalAttrs (cfg.localControlSocketPath != null) { + control-enable = true; + control-interface = cfg.localControlSocketPath; + }; }; - # We need a group so that we can give users access to the configured - # control socket. Unbound allows access to the socket only to the unbound - # user and the primary group. - users.groups = lib.mkIf (cfg.localControlSocketPath != null) { + environment.systemPackages = [ cfg.package ]; + + users.users = mkIf (cfg.user == "unbound") { + unbound = { + description = "unbound daemon user"; + isSystemUser = true; + group = cfg.group; + }; + }; + + users.groups = mkIf (cfg.group == "unbound") { unbound = {}; }; - networking.resolvconf.useLocalResolver = mkDefault true; + networking = mkIf cfg.resolveLocalQueries { + resolvconf = { + useLocalResolver = mkDefault true; + }; + networkmanager.dns = "unbound"; + }; environment.etc."unbound/unbound.conf".source = confFile; @@ -156,8 +214,15 @@ in before = [ "nss-lookup.target" ]; wantedBy = [ "multi-user.target" "nss-lookup.target" ]; - preStart = lib.mkIf cfg.enableRootTrustAnchor '' - ${cfg.package}/bin/unbound-anchor -a ${rootTrustAnchorFile} || echo "Root anchor updated!" + path = mkIf cfg.settings.remote-control.control-enable [ pkgs.openssl ]; + + preStart = '' + ${optionalString cfg.enableRootTrustAnchor '' + ${cfg.package}/bin/unbound-anchor -a ${rootTrustAnchorFile} || echo "Root anchor updated!" + ''} + ${optionalString cfg.settings.remote-control.control-enable '' + ${cfg.package}/bin/unbound-control-setup -d ${cfg.stateDir} + ''} ''; restartTriggers = [ @@ -181,8 +246,8 @@ in "CAP_SYS_RESOURCE" ]; - User = "unbound"; - Group = lib.mkIf (cfg.localControlSocketPath != null) (lib.mkDefault "unbound"); + User = cfg.user; + Group = cfg.group; MemoryDenyWriteExecute = true; NoNewPrivileges = true; @@ -211,9 +276,29 @@ in RestrictNamespaces = true; LockPersonality = true; RestrictSUIDSGID = true; + + Restart = "on-failure"; + RestartSec = "5s"; }; }; - # If networkmanager is enabled, ask it to interface with unbound. - networking.networkmanager.dns = "unbound"; }; + + imports = [ + (mkRenamedOptionModule [ "services" "unbound" "interfaces" ] [ "services" "unbound" "settings" "server" "interface" ]) + (mkChangedOptionModule [ "services" "unbound" "allowedAccess" ] [ "services" "unbound" "settings" "server" "access-control" ] ( + config: map (value: "${value} allow") (getAttrFromPath [ "services" "unbound" "allowedAccess" ] config) + )) + (mkRemovedOptionModule [ "services" "unbound" "forwardAddresses" ] '' + Add a new setting: + services.unbound.settings.forward-zone = [{ + name = "."; + forward-addr = [ # Your current services.unbound.forwardAddresses ]; + }]; + If any of those addresses are local addresses (127.0.0.1 or ::1), you must + also set services.unbound.settings.server.do-not-query-localhost to false. + '') + (mkRemovedOptionModule [ "services" "unbound" "extraConfig" ] '' + You can use services.unbound.settings to add any configuration you want. + '') + ]; } diff --git a/nixos/modules/services/networking/wireguard.nix b/nixos/modules/services/networking/wireguard.nix index 34c86934535..043bce16e54 100644 --- a/nixos/modules/services/networking/wireguard.nix +++ b/nixos/modules/services/networking/wireguard.nix @@ -246,12 +246,15 @@ let }; script = '' - mkdir --mode 0644 -p "${dirOf values.privateKeyFile}" + set -e + + # If the parent dir does not already exist, create it. + # Otherwise, does nothing, keeping existing permisions intact. + mkdir -p --mode 0755 "${dirOf values.privateKeyFile}" + if [ ! -f "${values.privateKeyFile}" ]; then - touch "${values.privateKeyFile}" - chmod 0600 "${values.privateKeyFile}" - wg genkey > "${values.privateKeyFile}" - chmod 0400 "${values.privateKeyFile}" + # Write private key file with atomically-correct permissions. + (set -e; umask 077; wg genkey > "${values.privateKeyFile}") fi ''; }; diff --git a/nixos/modules/services/security/fail2ban.nix b/nixos/modules/services/security/fail2ban.nix index b901b19cf31..0c24972823d 100644 --- a/nixos/modules/services/security/fail2ban.nix +++ b/nixos/modules/services/security/fail2ban.nix @@ -62,6 +62,22 @@ in description = "The firewall package used by fail2ban service."; }; + extraPackages = mkOption { + default = []; + type = types.listOf types.package; + example = lib.literalExample "[ pkgs.ipset ]"; + description = '' + Extra packages to be made available to the fail2ban service. The example contains + the packages needed by the `iptables-ipset-proto6` action. + ''; + }; + + maxretry = mkOption { + default = 3; + type = types.ints.unsigned; + description = "Number of failures before a host gets banned."; + }; + banaction = mkOption { default = "iptables-multiport"; type = types.str; @@ -243,7 +259,7 @@ in restartTriggers = [ fail2banConf jailConf pathsConf ]; reloadIfChanged = true; - path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ]; + path = [ cfg.package cfg.packageFirewall pkgs.iproute2 ] ++ cfg.extraPackages; unitConfig.Documentation = "man:fail2ban(1)"; @@ -291,7 +307,7 @@ in ''} # Miscellaneous options ignoreip = 127.0.0.1/8 ${optionalString config.networking.enableIPv6 "::1"} ${concatStringsSep " " cfg.ignoreIP} - maxretry = 3 + maxretry = ${toString cfg.maxretry} backend = systemd # Actions banaction = ${cfg.banaction} diff --git a/nixos/modules/services/security/oauth2_proxy_nginx.nix b/nixos/modules/services/security/oauth2_proxy_nginx.nix index 553638ad496..d82ddb894ea 100644 --- a/nixos/modules/services/security/oauth2_proxy_nginx.nix +++ b/nixos/modules/services/security/oauth2_proxy_nginx.nix @@ -23,7 +23,8 @@ in config.services.oauth2_proxy = mkIf (cfg.virtualHosts != [] && (hasPrefix "127.0.0.1:" cfg.proxy)) { enable = true; }; - config.services.nginx = mkMerge ((optional (cfg.virtualHosts != []) { + config.services.nginx = mkIf config.services.oauth2_proxy.enable (mkMerge + ((optional (cfg.virtualHosts != []) { recommendedProxySettings = true; # needed because duplicate headers }) ++ (map (vhost: { virtualHosts.${vhost} = { @@ -60,5 +61,5 @@ in ''; }; - }) cfg.virtualHosts)); + }) cfg.virtualHosts))); } diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index 18e1263fef5..d811879b7b1 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -819,28 +819,38 @@ in # Logs directory and mode LogsDirectory = "nginx"; LogsDirectoryMode = "0750"; + # Proc filesystem + ProcSubset = "pid"; + ProtectProc = "invisible"; + # New file permissions + UMask = "0027"; # 0640 / 0750 # Capabilities AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ]; CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" "CAP_SYS_RESOURCE" ]; # Security NoNewPrivileges = true; - # Sandboxing + # Sandboxing (sorted by occurrence in https://www.freedesktop.org/software/systemd/man/systemd.exec.html) ProtectSystem = "strict"; ProtectHome = mkDefault true; PrivateTmp = true; PrivateDevices = true; ProtectHostname = true; + ProtectClock = true; ProtectKernelTunables = true; ProtectKernelModules = true; + ProtectKernelLogs = true; ProtectControlGroups = true; RestrictAddressFamilies = [ "AF_UNIX" "AF_INET" "AF_INET6" ]; + RestrictNamespaces = true; LockPersonality = true; MemoryDenyWriteExecute = !(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules); RestrictRealtime = true; RestrictSUIDSGID = true; + RemoveIPC = true; PrivateMounts = true; # System Call Filtering SystemCallArchitectures = "native"; + SystemCallFilter = "~@chown @cpu-emulation @debug @keyring @ipc @module @mount @obsolete @privileged @raw-io @reboot @setuid @swap"; }; }; diff --git a/nixos/modules/services/web-servers/trafficserver.nix b/nixos/modules/services/web-servers/trafficserver.nix new file mode 100644 index 00000000000..db0e2ac0bd0 --- /dev/null +++ b/nixos/modules/services/web-servers/trafficserver.nix @@ -0,0 +1,318 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.trafficserver; + user = config.users.users.trafficserver.name; + group = config.users.groups.trafficserver.name; + + getManualUrl = name: "https://docs.trafficserver.apache.org/en/latest/admin-guide/files/${name}.en.html"; + getConfPath = name: "${pkgs.trafficserver}/etc/trafficserver/${name}"; + + yaml = pkgs.formats.yaml { }; + + fromYAML = f: + let + jsonFile = pkgs.runCommand "in.json" + { + nativeBuildInputs = [ pkgs.remarshal ]; + } '' + yaml2json < "${f}" > "$out" + ''; + in + builtins.fromJSON (builtins.readFile jsonFile); + + mkYamlConf = name: cfg: + if cfg != null then { + "trafficserver/${name}.yaml".source = yaml.generate "${name}.yaml" cfg; + } else { + "trafficserver/${name}.yaml".text = ""; + }; + + mkRecordLines = path: value: + if isAttrs value then + lib.mapAttrsToList (n: v: mkRecordLines (path ++ [ n ]) v) value + else if isInt value then + "CONFIG ${concatStringsSep "." path} INT ${toString value}" + else if isFloat value then + "CONFIG ${concatStringsSep "." path} FLOAT ${toString value}" + else + "CONFIG ${concatStringsSep "." path} STRING ${toString value}"; + + mkRecordsConfig = cfg: concatStringsSep "\n" (flatten (mkRecordLines [ ] cfg)); + mkPluginConfig = cfg: concatStringsSep "\n" (map (p: "${p.path} ${p.arg}") cfg); +in +{ + options.services.trafficserver = { + enable = mkEnableOption "Apache Traffic Server"; + + cache = mkOption { + type = types.lines; + default = ""; + example = "dest_domain=example.com suffix=js action=never-cache"; + description = '' + Caching rules that overrule the origin's caching policy. + + Consult the upstream + documentation for more details. + ''; + }; + + hosting = mkOption { + type = types.lines; + default = ""; + example = "domain=example.com volume=1"; + description = '' + Partition the cache according to origin server or domain + + Consult the + upstream documentation for more details. + ''; + }; + + ipAllow = mkOption { + type = types.nullOr yaml.type; + default = fromYAML (getConfPath "ip_allow.yaml"); + defaultText = "upstream defaults"; + example = literalExample { + ip_allow = [{ + apply = "in"; + ip_addrs = "127.0.0.1"; + action = "allow"; + methods = "ALL"; + }]; + }; + description = '' + Control client access to Traffic Server and Traffic Server connections + to upstream servers. + + Consult the upstream + documentation for more details. + ''; + }; + + logging = mkOption { + type = types.nullOr yaml.type; + default = fromYAML (getConfPath "logging.yaml"); + defaultText = "upstream defaults"; + example = literalExample { }; + description = '' + Configure logs. + + Consult the upstream + documentation for more details. + ''; + }; + + parent = mkOption { + type = types.lines; + default = ""; + example = '' + dest_domain=. method=get parent="p1.example:8080; p2.example:8080" round_robin=true + ''; + description = '' + Identify the parent proxies used in an cache hierarchy. + + Consult the upstream + documentation for more details. + ''; + }; + + plugins = mkOption { + default = [ ]; + + description = '' + Controls run-time loadable plugins available to Traffic Server, as + well as their configuration. + + Consult the upstream + documentation for more details. + ''; + + type = with types; + listOf (submodule { + options.path = mkOption { + type = str; + example = "xdebug.so"; + description = '' + Path to plugin. The path can either be absolute, or relative to + the plugin directory. + ''; + }; + options.arg = mkOption { + type = str; + default = ""; + example = "--header=ATS-My-Debug"; + description = "arguments to pass to the plugin"; + }; + }); + }; + + records = mkOption { + type = with types; + let valueType = (attrsOf (oneOf [ int float str valueType ])) // { + description = "Traffic Server records value"; + }; + in + valueType; + default = { }; + example = literalExample { proxy.config.proxy_name = "my_server"; }; + description = '' + List of configurable variables used by Traffic Server. + + Consult the + upstream documentation for more details. + ''; + }; + + remap = mkOption { + type = types.lines; + default = ""; + example = "map http://from.example http://origin.example"; + description = '' + URL remapping rules used by Traffic Server. + + Consult the + upstream documentation for more details. + ''; + }; + + splitDns = mkOption { + type = types.lines; + default = ""; + example = '' + dest_domain=internal.corp.example named="255.255.255.255:212 255.255.255.254" def_domain=corp.example search_list="corp.example corp1.example" + dest_domain=!internal.corp.example named=255.255.255.253 + ''; + description = '' + Specify the DNS server that Traffic Server should use under specific + conditions. + + Consult the + upstream documentation for more details. + ''; + }; + + sslMulticert = mkOption { + type = types.lines; + default = ""; + example = "dest_ip=* ssl_cert_name=default.pem"; + description = '' + Configure SSL server certificates to terminate the SSL sessions. + + Consult the + upstream documentation for more details. + ''; + }; + + sni = mkOption { + type = types.nullOr yaml.type; + default = null; + example = literalExample { + sni = [{ + fqdn = "no-http2.example.com"; + https = "off"; + }]; + }; + description = '' + Configure aspects of TLS connection handling for both inbound and + outbound connections. + + Consult the upstream + documentation for more details. + ''; + }; + + storage = mkOption { + type = types.lines; + default = "/var/cache/trafficserver 256M"; + example = "/dev/disk/by-id/XXXXX volume=1"; + description = '' + List all the storage that make up the Traffic Server cache. + + Consult the + upstream documentation for more details. + ''; + }; + + strategies = mkOption { + type = types.nullOr yaml.type; + default = null; + description = '' + Specify the next hop proxies used in an cache hierarchy and the + algorithms used to select the next proxy. + + Consult the + upstream documentation for more details. + ''; + }; + + volume = mkOption { + type = types.nullOr yaml.type; + default = ""; + example = "volume=1 scheme=http size=20%"; + description = '' + Manage cache space more efficiently and restrict disk usage by + creating cache volumes of different sizes. + + Consult the + upstream documentation for more details. + ''; + }; + }; + + config = mkIf cfg.enable { + environment.etc = { + "trafficserver/cache.config".text = cfg.cache; + "trafficserver/hosting.config".text = cfg.hosting; + "trafficserver/parent.config".text = cfg.parent; + "trafficserver/plugin.config".text = mkPluginConfig cfg.plugins; + "trafficserver/records.config".text = mkRecordsConfig cfg.records; + "trafficserver/remap.config".text = cfg.remap; + "trafficserver/splitdns.config".text = cfg.splitDns; + "trafficserver/ssl_multicert.config".text = cfg.sslMulticert; + "trafficserver/storage.config".text = cfg.storage; + "trafficserver/volume.config".text = cfg.volume; + } // (mkYamlConf "ip_allow" cfg.ipAllow) + // (mkYamlConf "logging" cfg.logging) + // (mkYamlConf "sni" cfg.sni) + // (mkYamlConf "strategies" cfg.strategies); + + environment.systemPackages = [ pkgs.trafficserver ]; + systemd.packages = [ pkgs.trafficserver ]; + + # Traffic Server does privilege handling independently of systemd, and + # therefore should be started as root + systemd.services.trafficserver = { + enable = true; + wantedBy = [ "multi-user.target" ]; + }; + + # These directories can't be created by systemd because: + # + # 1. Traffic Servers starts as root and switches to an unprivileged user + # afterwards. The runtime directories defined below are assumed to be + # owned by that user. + # 2. The bin/trafficserver script assumes these directories exist. + systemd.tmpfiles.rules = [ + "d '/run/trafficserver' - ${user} ${group} - -" + "d '/var/cache/trafficserver' - ${user} ${group} - -" + "d '/var/lib/trafficserver' - ${user} ${group} - -" + "d '/var/log/trafficserver' - ${user} ${group} - -" + ]; + + services.trafficserver = { + records.proxy.config.admin.user_id = user; + records.proxy.config.body_factory.template_sets_dir = + "${pkgs.trafficserver}/etc/trafficserver/body_factory"; + }; + + users.users.trafficserver = { + description = "Apache Traffic Server"; + isSystemUser = true; + inherit group; + }; + users.groups.trafficserver = { }; + }; +} diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index fc7f7bea4e4..7d2856939c8 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -151,7 +151,6 @@ in services.upower.enable = config.powerManagement.enable; services.gnome3.glib-networking.enable = true; services.gvfs.enable = true; - services.gvfs.package = pkgs.xfce.gvfs; services.tumbler.enable = true; services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager diff --git a/nixos/modules/services/x11/xserver.nix b/nixos/modules/services/x11/xserver.nix index 35bd4dabb67..4dde4476d2c 100644 --- a/nixos/modules/services/x11/xserver.nix +++ b/nixos/modules/services/x11/xserver.nix @@ -666,6 +666,7 @@ in # The default max inotify watches is 8192. # Nowadays most apps require a good number of inotify watches, # the value below is used by default on several other distros. + boot.kernel.sysctl."fs.inotify.max_user_instances" = mkDefault 524288; boot.kernel.sysctl."fs.inotify.max_user_watches" = mkDefault 524288; systemd.defaultUnit = mkIf cfg.autorun "graphical.target"; diff --git a/nixos/modules/virtualisation/amazon-init.nix b/nixos/modules/virtualisation/amazon-init.nix index be83607c0af..4f2f8df90eb 100644 --- a/nixos/modules/virtualisation/amazon-init.nix +++ b/nixos/modules/virtualisation/amazon-init.nix @@ -16,6 +16,16 @@ let userData=/etc/ec2-metadata/user-data + # Check if user-data looks like a shell script and execute it with the + # runtime shell if it does. Otherwise treat it as a nixos configuration + # expression + if IFS= LC_ALL=C read -rN2 shebang < $userData && [ "$shebang" = '#!' ]; then + # NB: we cannot chmod the $userData file, this is why we execute it via + # `pkgs.runtimeShell`. This means we have only limited support for shell + # scripts compatible with the `pkgs.runtimeShell`. + exec ${pkgs.runtimeShell} $userData + fi + if [ -s "$userData" ]; then # If the user-data looks like it could be a nix expression, # copy it over. Also, look for a magic three-hash comment and set diff --git a/nixos/release.nix b/nixos/release.nix index 87382f42f50..746e4c9dc69 100644 --- a/nixos/release.nix +++ b/nixos/release.nix @@ -224,6 +224,25 @@ in rec { ); + # Test job for https://github.com/NixOS/nixpkgs/issues/121354 to test + # automatic sizing without blocking the channel. + amazonImageAutomaticSize = forMatchingSystems [ "x86_64-linux" "aarch64-linux" ] (system: + + with import ./.. { inherit system; }; + + hydraJob ((import lib/eval-config.nix { + inherit system; + modules = + [ configuration + versionModule + ./maintainers/scripts/ec2/amazon-image.nix + ({ ... }: { amazonImage.sizeMB = "auto"; }) + ]; + }).config.system.build.amazonImage) + + ); + + # Ensure that all packages used by the minimal NixOS config end up in the channel. dummy = forAllSystems (system: pkgs.runCommand "dummy" { toplevel = (import lib/eval-config.nix { diff --git a/nixos/tests/airsonic.nix b/nixos/tests/airsonic.nix new file mode 100644 index 00000000000..59bd84877c6 --- /dev/null +++ b/nixos/tests/airsonic.nix @@ -0,0 +1,32 @@ +import ./make-test-python.nix ({ pkgs, ... }: { + name = "airsonic"; + meta = with pkgs.lib.maintainers; { + maintainers = [ sumnerevans ]; + }; + + machine = + { pkgs, ... }: + { + services.airsonic = { + enable = true; + maxMemory = 800; + }; + + # Airsonic is a Java application, and unfortunately requires a significant + # amount of memory. + virtualisation.memorySize = 1024; + }; + + testScript = '' + def airsonic_is_up(_) -> bool: + return machine.succeed("curl --fail http://localhost:4040/login") + + + machine.start() + machine.wait_for_unit("airsonic.service") + machine.wait_for_open_port(4040) + + with machine.nested("Waiting for UI to work"): + retry(airsonic_is_up) + ''; +}) diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 2347673cef1..e39c525a604 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -24,6 +24,8 @@ in _3proxy = handleTest ./3proxy.nix {}; acme = handleTest ./acme.nix {}; agda = handleTest ./agda.nix {}; + airsonic = handleTest ./airsonic.nix {}; + amazon-init-shell = handleTest ./amazon-init-shell.nix {}; ammonite = handleTest ./ammonite.nix {}; atd = handleTest ./atd.nix {}; avahi = handleTest ./avahi.nix {}; @@ -413,6 +415,7 @@ in # traefik test relies on docker-containers trac = handleTest ./trac.nix {}; traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {}; + trafficserver = handleTest ./trafficserver.nix {}; transmission = handleTest ./transmission.nix {}; trezord = handleTest ./trezord.nix {}; trickster = handleTest ./trickster.nix {}; diff --git a/nixos/tests/amazon-init-shell.nix b/nixos/tests/amazon-init-shell.nix new file mode 100644 index 00000000000..f9268b2f3a0 --- /dev/null +++ b/nixos/tests/amazon-init-shell.nix @@ -0,0 +1,40 @@ +# This test verifies that the amazon-init service can treat the `user-data` ec2 +# metadata file as a shell script. If amazon-init detects that `user-data` is a +# script (based on the presence of the shebang #! line) it executes it and +# exits. +# Note that other tests verify that amazon-init can treat user-data as a nixos +# configuration expression. + +{ system ? builtins.currentSystem, + config ? {}, + pkgs ? import ../.. { inherit system config; } +}: + +with import ../lib/testing-python.nix { inherit system pkgs; }; +with pkgs.lib; + +makeTest { + name = "amazon-init"; + meta = with maintainers; { + maintainers = [ urbas ]; + }; + machine = { ... }: + { + imports = [ ../modules/profiles/headless.nix ../modules/virtualisation/amazon-init.nix ]; + services.openssh.enable = true; + networking.hostName = ""; + environment.etc."ec2-metadata/user-data" = { + text = '' + #!/usr/bin/bash + + echo successful > /tmp/evidence + ''; + }; + }; + testScript = '' + # To wait until amazon-init terminates its run + unnamed.wait_for_unit("amazon-init.service") + + unnamed.succeed("grep -q successful /tmp/evidence") + ''; +} diff --git a/nixos/tests/cage.nix b/nixos/tests/cage.nix index 53476c2fbe8..80ce1e0d8b3 100644 --- a/nixos/tests/cage.nix +++ b/nixos/tests/cage.nix @@ -18,6 +18,10 @@ import ./make-test-python.nix ({ pkgs, ...} : }; virtualisation.memorySize = 1024; + # Need to switch to a different VGA card / GPU driver because Cage segfaults with the default one (std): + # machine # [ 14.355893] .cage-wrapped[736]: segfault at 20 ip 00007f035fa0d8c7 sp 00007ffce9e4a2f0 error 4 in libwlroots.so.8[7f035fa07000+5a000] + # machine # [ 14.358108] Code: 4f a8 ff ff eb aa 0f 1f 44 00 00 c3 0f 1f 80 00 00 00 00 41 54 49 89 f4 55 31 ed 53 48 89 fb 48 8d 7f 18 48 8d 83 b8 00 00 00 <80> 7f 08 00 75 0d 48 83 3f 00 0f 85 91 00 00 00 48 89 fd 48 83 c7 + virtualisation.qemu.options = [ "-vga virtio" ]; }; enableOCR = true; @@ -25,11 +29,6 @@ import ./make-test-python.nix ({ pkgs, ...} : testScript = { nodes, ... }: let user = nodes.machine.config.users.users.alice; in '' - # Need to switch to a different VGA card / GPU driver because Cage segfaults with the default one (std): - # machine # [ 14.355893] .cage-wrapped[736]: segfault at 20 ip 00007f035fa0d8c7 sp 00007ffce9e4a2f0 error 4 in libwlroots.so.8[7f035fa07000+5a000] - # machine # [ 14.358108] Code: 4f a8 ff ff eb aa 0f 1f 44 00 00 c3 0f 1f 80 00 00 00 00 41 54 49 89 f4 55 31 ed 53 48 89 fb 48 8d 7f 18 48 8d 83 b8 00 00 00 <80> 7f 08 00 75 0d 48 83 3f 00 0f 85 91 00 00 00 48 89 fd 48 83 c7 - os.environ["QEMU_OPTS"] = "-vga virtio" - with subtest("Wait for cage to boot up"): start_all() machine.wait_for_file("/run/user/${toString user.uid}/wayland-0.lock") diff --git a/nixos/tests/custom-ca.nix b/nixos/tests/custom-ca.nix index 67f7b3ff1f1..31909188d3a 100644 --- a/nixos/tests/custom-ca.nix +++ b/nixos/tests/custom-ca.nix @@ -92,13 +92,19 @@ in { onlySSL = true; sslCertificate = "${example-good-cert}/server.crt"; sslCertificateKey = "${example-good-cert}/server.key"; - locations."/".extraConfig = "return 200 'It works!';"; + locations."/".extraConfig = '' + add_header Content-Type text/plain; + return 200 'It works!'; + ''; }; services.nginx.virtualHosts."bad.example.com" = { onlySSL = true; sslCertificate = "${example-bad-cert}/server.crt"; sslCertificateKey = "${example-bad-cert}/server.key"; - locations."/".extraConfig = "return 200 'It does not work!';"; + locations."/".extraConfig = '' + add_header Content-Type text/plain; + return 200 'It does not work!'; + ''; }; environment.systemPackages = with pkgs; diff --git a/nixos/tests/gitdaemon.nix b/nixos/tests/gitdaemon.nix index d0156fb9a49..bb07b6e97b7 100644 --- a/nixos/tests/gitdaemon.nix +++ b/nixos/tests/gitdaemon.nix @@ -18,6 +18,11 @@ in { environment.systemPackages = [ pkgs.git ]; + systemd.tmpfiles.rules = [ + # type path mode user group age arg + " d /git 0755 root root - -" + ]; + services.gitDaemon = { enable = true; basePath = "/git"; @@ -35,7 +40,6 @@ in { with subtest("create project.git"): server.succeed( - "mkdir /git", "git init --bare /git/project.git", "touch /git/project.git/git-daemon-export-ok", ) diff --git a/nixos/tests/home-assistant.nix b/nixos/tests/home-assistant.nix index 3b7295324a1..c75dd248ecb 100644 --- a/nixos/tests/home-assistant.nix +++ b/nixos/tests/home-assistant.nix @@ -1,4 +1,4 @@ -import ./make-test-python.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, lib, ... }: let configDir = "/var/lib/foobar"; @@ -6,9 +6,7 @@ let mqttPassword = "secret"; in { name = "home-assistant"; - meta = with pkgs.lib; { - maintainers = with maintainers; [ dotlambda ]; - }; + meta.maintainers = lib.teams.home-assistant.members; nodes.hass = { pkgs, ... }: { environment.systemPackages = with pkgs; [ mosquitto ]; @@ -47,6 +45,10 @@ in { payload_on = "let_there_be_light"; payload_off = "off"; }]; + emulated_hue = { + host_ip = "127.0.0.1"; + listen_port = 80; + }; logger = { default = "info"; logs."homeassistant.components.mqtt" = "debug"; @@ -82,6 +84,9 @@ in { hass.succeed( "mosquitto_pub -V mqttv5 -t home-assistant/test -u ${mqttUsername} -P '${mqttPassword}' -m let_there_be_light" ) + with subtest("Check that capabilities are passed for emulated_hue to bind to port 80"): + hass.wait_for_open_port(80) + hass.succeed("curl --fail http://localhost:80/description.xml") with subtest("Print log to ease debugging"): output_log = hass.succeed("cat ${configDir}/home-assistant.log") print("\n### home-assistant.log ###\n") @@ -93,5 +98,8 @@ in { # example line: 2020-06-20 10:01:32 DEBUG (MainThread) [homeassistant.components.mqtt] Received message on home-assistant/test: b'let_there_be_light' with subtest("Check we received the mosquitto message"): assert "let_there_be_light" in output_log + + with subtest("Check systemd unit hardening"): + hass.log(hass.succeed("systemd-analyze security home-assistant.service")) ''; }) diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix index 24c55081f9a..48f0f593425 100644 --- a/nixos/tests/installer.nix +++ b/nixos/tests/installer.nix @@ -75,7 +75,7 @@ let else '' def assemble_qemu_flags(): flags = "-cpu max" - ${if system == "x86_64-linux" + ${if (system == "x86_64-linux" || system == "i686-linux") then ''flags += " -m 1024"'' else ''flags += " -m 768 -enable-kvm -machine virt,gic-version=host"'' } diff --git a/nixos/tests/jellyfin.nix b/nixos/tests/jellyfin.nix index 65360624d48..f8c2429a7b8 100644 --- a/nixos/tests/jellyfin.nix +++ b/nixos/tests/jellyfin.nix @@ -1,16 +1,156 @@ -import ./make-test-python.nix ({ lib, ...}: +import ./make-test-python.nix ({ lib, pkgs, ... }: -{ - name = "jellyfin"; - meta.maintainers = with lib.maintainers; [ minijackson ]; + { + name = "jellyfin"; + meta.maintainers = with lib.maintainers; [ minijackson ]; - machine = - { ... }: - { services.jellyfin.enable = true; }; + machine = + { ... }: + { + services.jellyfin.enable = true; + environment.systemPackages = with pkgs; [ ffmpeg ]; + }; - testScript = '' - machine.wait_for_unit("jellyfin.service") - machine.wait_for_open_port(8096) - machine.succeed("curl --fail http://localhost:8096/") - ''; -}) + # Documentation of the Jellyfin API: https://api.jellyfin.org/ + # Beware, this link can be resource intensive + testScript = + let + payloads = { + auth = pkgs.writeText "auth.json" (builtins.toJSON { + Username = "jellyfin"; + }); + empty = pkgs.writeText "empty.json" (builtins.toJSON { }); + }; + in + '' + import json + import time + from urllib.parse import urlencode + + machine.wait_for_unit("jellyfin.service") + machine.wait_for_open_port(8096) + machine.succeed("curl --fail http://localhost:8096/") + + machine.wait_until_succeeds("curl --fail http://localhost:8096/health | grep Healthy") + + auth_header = 'MediaBrowser Client="NixOS Integration Tests", DeviceId="1337", Device="Apple II", Version="20.09"' + + + def api_get(path): + return f"curl --fail 'http://localhost:8096{path}' -H 'X-Emby-Authorization:{auth_header}'" + + + def api_post(path, json_file=None): + if json_file: + return f"curl --fail -X post 'http://localhost:8096{path}' -d '@{json_file}' -H Content-Type:application/json -H 'X-Emby-Authorization:{auth_header}'" + else: + return f"curl --fail -X post 'http://localhost:8096{path}' -H 'X-Emby-Authorization:{auth_header}'" + + + with machine.nested("Wizard completes"): + machine.wait_until_succeeds(api_get("/Startup/Configuration")) + machine.succeed(api_get("/Startup/FirstUser")) + machine.succeed(api_post("/Startup/Complete")) + + with machine.nested("Can login"): + auth_result = machine.succeed( + api_post( + "/Users/AuthenticateByName", + "${payloads.auth}", + ) + ) + auth_result = json.loads(auth_result) + auth_token = auth_result["AccessToken"] + auth_header += f", Token={auth_token}" + + sessions_result = machine.succeed(api_get("/Sessions")) + sessions_result = json.loads(sessions_result) + + this_session = [ + session for session in sessions_result if session["DeviceId"] == "1337" + ] + if len(this_session) != 1: + raise Exception("Session not created") + + me = machine.succeed(api_get("/Users/Me")) + me = json.loads(me)["Id"] + + with machine.nested("Can add library"): + tempdir = machine.succeed("mktemp -d -p /var/lib/jellyfin").strip() + machine.succeed(f"chmod 755 '{tempdir}'") + + # Generate a dummy video that we can test later + videofile = f"{tempdir}/Big Buck Bunny (2008) [1080p].mkv" + machine.succeed(f"ffmpeg -f lavfi -i testsrc2=duration=5 '{videofile}'") + + add_folder_query = urlencode( + { + "name": "My Library", + "collectionType": "Movies", + "paths": tempdir, + "refreshLibrary": "true", + } + ) + + machine.succeed( + api_post( + f"/Library/VirtualFolders?{add_folder_query}", + "${payloads.empty}", + ) + ) + + + def is_refreshed(_): + folders = machine.succeed(api_get(f"/Library/VirtualFolders")) + folders = json.loads(folders) + print(folders) + return all(folder["RefreshStatus"] == "Idle" for folder in folders) + + + retry(is_refreshed) + + with machine.nested("Can identify videos"): + items = [] + + # For some reason, having the folder refreshed doesn't mean the + # movie was scanned + def has_movie(_): + global items + + items = machine.succeed( + api_get(f"/Users/{me}/Items?IncludeItemTypes=Movie&Recursive=true") + ) + items = json.loads(items)["Items"] + + return len(items) == 1 + + retry(has_movie) + + video = items[0]["Id"] + + item_info = machine.succeed(api_get(f"/Users/{me}/Items/{video}")) + item_info = json.loads(item_info) + + if item_info["Name"] != "Big Buck Bunny": + raise Exception("Jellyfin failed to properly identify file") + + with machine.nested("Can read videos"): + media_source_id = item_info["MediaSources"][0]["Id"] + + machine.succeed( + "ffmpeg" + + f" -headers 'X-Emby-Authorization:{auth_header}'" + + f" -i http://localhost:8096/Videos/{video}/master.m3u8?mediaSourceId={media_source_id}" + + f" /tmp/test.mkv" + ) + + duration = machine.succeed( + "ffprobe /tmp/test.mkv" + + " -show_entries format=duration" + + " -of compact=print_section=0:nokey=1" + ) + + if duration.strip() != "5.000000": + raise Exception("Downloaded video has wrong duration") + ''; + }) diff --git a/nixos/tests/mosquitto.nix b/nixos/tests/mosquitto.nix index 308c1396013..e29bd559ed9 100644 --- a/nixos/tests/mosquitto.nix +++ b/nixos/tests/mosquitto.nix @@ -1,4 +1,4 @@ -import ./make-test-python.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, lib, ... }: let port = 1888; @@ -30,6 +30,9 @@ in { ]; }; }; + + # disable private /tmp for this test + systemd.services.mosquitto.serviceConfig.PrivateTmp = lib.mkForce false; }; client1 = client; diff --git a/nixos/tests/os-prober.nix b/nixos/tests/os-prober.nix index f778d30bdc0..3cc38ebe347 100644 --- a/nixos/tests/os-prober.nix +++ b/nixos/tests/os-prober.nix @@ -69,6 +69,9 @@ in { imports = [ ../modules/profiles/installation-device.nix ../modules/profiles/base.nix ]; virtualisation.memorySize = 1300; + # To add the secondary disk: + virtualisation.qemu.options = [ "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio" ]; + # The test cannot access the network, so any packages # nixos-rebuild needs must be included in the VM. system.extraDependencies = with pkgs; @@ -95,11 +98,6 @@ in { }); testScript = '' - # hack to add the secondary disk - os.environ[ - "QEMU_OPTS" - ] = "-drive index=2,file=${debianImage}/disk-image.qcow2,read-only,if=virtio" - machine.start() machine.succeed("udevadm settle") machine.wait_for_unit("multi-user.target") diff --git a/nixos/tests/pinnwand.nix b/nixos/tests/pinnwand.nix index 0c583e1104d..0391c413311 100644 --- a/nixos/tests/pinnwand.nix +++ b/nixos/tests/pinnwand.nix @@ -61,7 +61,7 @@ in client.wait_until_succeeds("ping -c1 server") # make sure pinnwand is listening - server.wait_until_succeeds("ss -lnp | grep ${toString port}") + server.wait_for_open_port(${toString port}) # send the contents of /etc/machine-id response = client.succeed("steck paste /etc/machine-id") @@ -75,6 +75,12 @@ in if line.startswith("Removal link:"): removal_link = line.split(":", 1)[1] + + # start the reaper, it shouldn't do anything meaningful here + server.systemctl("start pinnwand-reaper.service") + server.wait_until_fails("systemctl is-active -q pinnwand-reaper.service") + server.log(server.execute("journalctl -u pinnwand-reaper -e --no-pager")[1]) + # check whether paste matches what we sent client.succeed(f"curl {raw_url} > /tmp/machine-id") client.succeed("diff /tmp/machine-id /etc/machine-id") @@ -82,5 +88,7 @@ in # remove paste and check that it's not available any more client.succeed(f"curl {removal_link}") client.fail(f"curl --fail {raw_url}") + + server.log(server.succeed("systemd-analyze security pinnwand")) ''; }) diff --git a/nixos/tests/rspamd.nix b/nixos/tests/rspamd.nix index f0ccfe7ea0e..3fd55444fd8 100644 --- a/nixos/tests/rspamd.nix +++ b/nixos/tests/rspamd.nix @@ -25,6 +25,7 @@ let machine = { services.rspamd.enable = true; networking.enableIPv6 = enableIPv6; + virtualisation.memorySize = 1024; }; testScript = '' start_all() @@ -68,6 +69,7 @@ in group = "rspamd"; }]; }; + virtualisation.memorySize = 1024; }; testScript = '' @@ -116,6 +118,7 @@ in ''; }; }; + virtualisation.memorySize = 1024; }; testScript = '' @@ -221,6 +224,7 @@ in rspamd_logger.infox(rspamd_config, 'Work dammit!!!') ''; }; + virtualisation.memorySize = 1024; }; testScript = '' ${initMachine} @@ -287,6 +291,7 @@ in postfix.enable = true; workers.rspamd_proxy.type = "rspamd_proxy"; }; + virtualisation.memorySize = 1024; }; testScript = '' ${initMachine} diff --git a/nixos/tests/trafficserver.nix b/nixos/tests/trafficserver.nix new file mode 100644 index 00000000000..3979a1b4a48 --- /dev/null +++ b/nixos/tests/trafficserver.nix @@ -0,0 +1,176 @@ +# verifies: +# 1. Traffic Server is able to start +# 2. Traffic Server spawns traffic_crashlog upon startup +# 3. Traffic Server proxies HTTP requests according to URL remapping rules +# in 'services.trafficserver.remap' +# 4. Traffic Server applies per-map settings specified with the conf_remap +# plugin +# 5. Traffic Server caches HTTP responses +# 6. Traffic Server processes HTTP PUSH requests +# 7. Traffic Server can load the healthchecks plugin +# 8. Traffic Server logs HTTP traffic as configured +# +# uses: +# - bin/traffic_manager +# - bin/traffic_server +# - bin/traffic_crashlog +# - bin/traffic_cache_tool +# - bin/traffic_ctl +# - bin/traffic_logcat +# - bin/traffic_logstats +# - bin/tspush +import ./make-test-python.nix ({ pkgs, ... }: { + name = "trafficserver"; + meta = with pkgs.lib.maintainers; { + maintainers = [ midchildan ]; + }; + + nodes = { + ats = { pkgs, lib, config, ... }: let + user = config.users.users.trafficserver.name; + group = config.users.groups.trafficserver.name; + healthchecks = pkgs.writeText "healthchecks.conf" '' + /status /tmp/ats.status text/plain 200 500 + ''; + in { + services.trafficserver.enable = true; + + services.trafficserver.records = { + proxy.config.http.server_ports = "80 80:ipv6"; + proxy.config.hostdb.host_file.path = "/etc/hosts"; + proxy.config.log.max_space_mb_headroom = 0; + proxy.config.http.push_method_enabled = 1; + + # check that cache storage is usable before accepting traffic + proxy.config.http.wait_for_cache = 2; + }; + + services.trafficserver.plugins = [ + { path = "healthchecks.so"; arg = toString healthchecks; } + { path = "xdebug.so"; } + ]; + + services.trafficserver.remap = '' + map http://httpbin.test http://httpbin + map http://pristine-host-hdr.test http://httpbin \ + @plugin=conf_remap.so \ + @pparam=proxy.config.url_remap.pristine_host_hdr=1 + map http://ats/tspush http://httpbin/cache \ + @plugin=conf_remap.so \ + @pparam=proxy.config.http.cache.required_headers=0 + ''; + + services.trafficserver.storage = '' + /dev/vdb volume=1 + ''; + + networking.firewall.allowedTCPPorts = [ 80 ]; + virtualisation.emptyDiskImages = [ 256 ]; + services.udev.extraRules = '' + KERNEL=="vdb", OWNER="${user}", GROUP="${group}" + ''; + }; + + httpbin = { pkgs, lib, ... }: let + python = pkgs.python3.withPackages + (ps: with ps; [ httpbin gunicorn gevent ]); + in { + systemd.services.httpbin = { + enable = true; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${python}/bin/gunicorn -b 0.0.0.0:80 httpbin:app -k gevent"; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 ]; + }; + + client = { pkgs, lib, ... }: { + environment.systemPackages = with pkgs; [ curl ]; + }; + }; + + testScript = { nodes, ... }: let + sampleFile = pkgs.writeText "sample.txt" '' + It's the season of White Album. + ''; + in '' + import json + import re + + ats.wait_for_unit("trafficserver") + ats.wait_for_open_port(80) + httpbin.wait_for_unit("httpbin") + httpbin.wait_for_open_port(80) + + with subtest("Traffic Server is running"): + out = ats.succeed("traffic_ctl server status") + assert out.strip() == "Proxy -- on" + + with subtest("traffic_crashlog is running"): + ats.succeed("pgrep -f traffic_crashlog") + + with subtest("basic remapping works"): + out = client.succeed("curl -vv -H 'Host: httpbin.test' http://ats/headers") + assert json.loads(out)["headers"]["Host"] == "httpbin" + + with subtest("conf_remap plugin works"): + out = client.succeed( + "curl -vv -H 'Host: pristine-host-hdr.test' http://ats/headers" + ) + assert json.loads(out)["headers"]["Host"] == "pristine-host-hdr.test" + + with subtest("caching works"): + out = client.succeed( + "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null" + ) + assert "X-Cache: miss" in out + + out = client.succeed( + "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null" + ) + assert "X-Cache: hit-fresh" in out + + with subtest("pushing to cache works"): + url = "http://ats/tspush" + + ats.succeed(f"echo {url} > /tmp/urls.txt") + out = ats.succeed( + f"tspush -f '${sampleFile}' -u {url}" + ) + assert "HTTP/1.0 201 Created" in out, "cache push failed" + + out = ats.succeed( + "traffic_cache_tool --spans /etc/trafficserver/storage.config find --input /tmp/urls.txt" + ) + assert "Span: /dev/vdb" in out, "cache not stored on disk" + + out = client.succeed(f"curl {url}").strip() + expected = ( + open("${sampleFile}").read().strip() + ) + assert out == expected, "cache content mismatch" + + with subtest("healthcheck plugin works"): + out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'") + assert out.strip() == "500" + + ats.succeed("touch /tmp/ats.status") + + out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'") + assert out.strip() == "200" + + with subtest("logging works"): + access_log_path = "/var/log/trafficserver/squid.blog" + ats.wait_for_file(access_log_path) + + out = ats.succeed(f"traffic_logcat {access_log_path}").split("\n")[0] + expected = "^\S+ \S+ \S+ TCP_MISS/200 \S+ GET http://httpbin/headers - DIRECT/httpbin application/json$" + assert re.fullmatch(expected, out) is not None, "no matching logs" + + out = json.loads(ats.succeed(f"traffic_logstats -jf {access_log_path}")) + assert out["total"]["error.total"]["req"] == "0", "unexpected log stat" + ''; +}) diff --git a/nixos/tests/unbound.nix b/nixos/tests/unbound.nix index ca9718ac633..e24c3ef6c99 100644 --- a/nixos/tests/unbound.nix +++ b/nixos/tests/unbound.nix @@ -61,13 +61,16 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: services.unbound = { enable = true; - interfaces = [ "192.168.0.1" "fd21::1" "::1" "127.0.0.1" ]; - allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ]; - extraConfig = '' - server: - local-data: "example.local. IN A 1.2.3.4" - local-data: "example.local. IN AAAA abcd::eeff" - ''; + settings = { + server = { + interface = [ "192.168.0.1" "fd21::1" "::1" "127.0.0.1" ]; + access-control = [ "192.168.0.0/24 allow" "fd21::/64 allow" "::1 allow" "127.0.0.0/8 allow" ]; + local-data = [ + ''"example.local. IN A 1.2.3.4"'' + ''"example.local. IN AAAA abcd::eeff"'' + ]; + }; + }; }; }; @@ -90,19 +93,25 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: services.unbound = { enable = true; - allowedAccess = [ "192.168.0.0/24" "fd21::/64" "::1" "127.0.0.0/8" ]; - interfaces = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2" - "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853" - "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ]; - forwardAddresses = [ - (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address - (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address - ]; - extraConfig = '' - server: - tls-service-pem: ${cert}/cert.pem - tls-service-key: ${cert}/key.pem - ''; + settings = { + server = { + interface = [ "::1" "127.0.0.1" "192.168.0.2" "fd21::2" + "192.168.0.2@853" "fd21::2@853" "::1@853" "127.0.0.1@853" + "192.168.0.2@443" "fd21::2@443" "::1@443" "127.0.0.1@443" ]; + access-control = [ "192.168.0.0/24 allow" "fd21::/64 allow" "::1 allow" "127.0.0.0/8 allow" ]; + tls-service-pem = "${cert}/cert.pem"; + tls-service-key = "${cert}/key.pem"; + }; + forward-zone = [ + { + name = "."; + forward-addr = [ + (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv6.addresses).address + (lib.head nodes.authoritative.config.networking.interfaces.eth1.ipv4.addresses).address + ]; + } + ]; + }; }; }; @@ -122,12 +131,14 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: services.unbound = { enable = true; - allowedAccess = [ "::1" "127.0.0.0/8" ]; - interfaces = [ "::1" "127.0.0.1" ]; + settings = { + server = { + interface = [ "::1" "127.0.0.1" ]; + access-control = [ "::1 allow" "127.0.0.0/8 allow" ]; + }; + include = "/etc/unbound/extra*.conf"; + }; localControlSocketPath = "/run/unbound/unbound.ctl"; - extraConfig = '' - include: "/etc/unbound/extra*.conf" - ''; }; users.users = { @@ -143,12 +154,13 @@ import ./make-test-python.nix ({ pkgs, lib, ... }: unauthorizeduser = { isSystemUser = true; }; }; + # Used for testing configuration reloading environment.etc = { "unbound-extra1.conf".text = '' forward-zone: - name: "example.local." - forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv6.addresses).address} - forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv4.addresses).address} + name: "example.local." + forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv6.addresses).address} + forward-addr: ${(lib.head nodes.resolver.config.networking.interfaces.eth1.ipv4.addresses).address} ''; "unbound-extra2.conf".text = '' auth-zone: diff --git a/nixos/tests/zigbee2mqtt.nix b/nixos/tests/zigbee2mqtt.nix index b7bb21f9227..98aadbb699b 100644 --- a/nixos/tests/zigbee2mqtt.nix +++ b/nixos/tests/zigbee2mqtt.nix @@ -1,4 +1,4 @@ -import ./make-test-python.nix ({ pkgs, ... }: +import ./make-test-python.nix ({ pkgs, lib, ... }: { machine = { pkgs, ... }: @@ -6,6 +6,8 @@ import ./make-test-python.nix ({ pkgs, ... }: services.zigbee2mqtt = { enable = true; }; + + systemd.services.zigbee2mqtt.serviceConfig.DevicePolicy = lib.mkForce "auto"; }; testScript = '' @@ -14,6 +16,8 @@ import ./make-test-python.nix ({ pkgs, ... }: machine.succeed( "journalctl -eu zigbee2mqtt | grep \"Error: Error while opening serialport 'Error: Error: No such file or directory, cannot open /dev/ttyACM0'\"" ) + + machine.log(machine.succeed("systemd-analyze security zigbee2mqtt.service")) ''; } ) diff --git a/pkgs/applications/audio/bucklespring/default.nix b/pkgs/applications/audio/bucklespring/default.nix new file mode 100644 index 00000000000..ee363c5c32e --- /dev/null +++ b/pkgs/applications/audio/bucklespring/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchFromGitHub + +, legacy ? false +, libinput + +, pkg-config +, makeWrapper + +, openal +, alure +, libXtst +, libX11 +}: + +let + inherit (lib) optionals; +in +stdenv.mkDerivation rec { + pname = "bucklespring"; + version = "1.5.0"; + + src = fetchFromGitHub { + owner = "zevv"; + repo = pname; + rev = version; + sha256 = "114dib4npb7r1z2zd1fwsx71xbf9r6psxqd7n7590cwz1w3r51mz"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + + buildInputs = [ openal alure ] + ++ optionals (legacy) [ libXtst libX11 ] + ++ optionals (!legacy) [ libinput ]; + + makeFlags = optionals (!legacy) [ "libinput=1" ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/wav + cp -r $src/wav $out/share/. + install -D ./buckle.desktop $out/share/applications/buckle.desktop + install -D ./buckle $out/bin/buckle + wrapProgram $out/bin/buckle --add-flags "-p $out/share/wav" + + runHook postInstall + ''; + + meta = with lib; { + description = "Nostalgia bucklespring keyboard sound"; + longDescription = '' + When built with libinput (wayland or bare console), + users need to be in the input group to use this: + users.users.alice.extraGroups = [ "input" ]; + ''; + homepage = "https://github.com/zevv/bucklespring"; + license = licenses.gpl2Only; + platforms = platforms.unix; + maintainers = [ maintainers.evils ]; + }; +} diff --git a/pkgs/applications/audio/kid3/default.nix b/pkgs/applications/audio/kid3/default.nix index abfc9e7fe1e..7f8015e7143 100644 --- a/pkgs/applications/audio/kid3/default.nix +++ b/pkgs/applications/audio/kid3/default.nix @@ -6,7 +6,7 @@ , cmake , docbook_xml_dtd_45 , docbook_xsl -, ffmpeg_3 +, ffmpeg , flac , id3lib , libogg @@ -31,21 +31,22 @@ stdenv.mkDerivation rec { version = "3.8.6"; src = fetchurl { - url = "mirror://sourceforge/project/kid3/kid3/${version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-ce+MWCJzAnN+u+07f0dvn0jnbqiUlS2RbcM9nAj5bgg="; + url = "https://download.kde.org/stable/${pname}/${version}/${pname}-${version}.tar.xz"; + hash = "sha256-R4gAWlCw8RezhYbw1XDo+wdp797IbLoM3wqHwr+ul6k="; }; nativeBuildInputs = [ cmake + docbook_xml_dtd_45 + docbook_xsl pkg-config + python3 wrapQtAppsHook ]; buildInputs = [ automoc4 chromaprint - docbook_xml_dtd_45 - docbook_xsl - ffmpeg_3 + ffmpeg flac id3lib libogg @@ -53,7 +54,6 @@ stdenv.mkDerivation rec { libxslt mp4v2 phonon - python3 qtbase qtmultimedia qtquickcontrols @@ -71,6 +71,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { + homepage = "https://kid3.kde.org/"; description = "A simple and powerful audio tag editor"; longDescription = '' If you want to easily tag multiple MP3, Ogg/Vorbis, FLAC, MPC, MP4/AAC, @@ -101,7 +102,6 @@ stdenv.mkDerivation rec { - Edit synchronized lyrics and event timing codes, import and export LRC files. ''; - homepage = "http://kid3.sourceforge.net/"; license = licenses.lgpl2Plus; maintainers = [ maintainers.AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/applications/audio/librespot/cargo-lock.patch b/pkgs/applications/audio/librespot/cargo-lock.patch index 129ba96987a..0c2af8f80c6 100644 --- a/pkgs/applications/audio/librespot/cargo-lock.patch +++ b/pkgs/applications/audio/librespot/cargo-lock.patch @@ -1,137 +1,3817 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 533b47d..9c9c2f6 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -932,7 +932,7 @@ dependencies = [ +--- source/Cargo.lock 1970-01-01 01:00:01.000000000 +0100 ++++ ../nix-build-librespot-0.1.6.drv-0/source/Cargo.lock 2021-04-27 19:07:38.535244188 +0200 +@@ -4,2784 +4,2782 @@ + name = "aes" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9" + dependencies = [ +- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-soft", ++ "aesni", ++ "block-cipher-trait", + ] + + [[package]] + name = "aes-ctr" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee" + dependencies = [ +- "aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-soft", ++ "aesni", ++ "ctr", ++ "stream-cipher", + ] + + [[package]] + name = "aes-soft" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "byteorder", ++ "opaque-debug", + ] + + [[package]] + name = "aesni" + version = "0.6.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "opaque-debug", ++ "stream-cipher", + ] + + [[package]] + name = "alga" + version = "0.9.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" + dependencies = [ +- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "approx", ++ "num-complex", ++ "num-traits", + ] + + [[package]] + name = "alsa" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32" + dependencies = [ +- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alsa-sys", ++ "bitflags 0.9.1", ++ "libc", ++ "nix", + ] + + [[package]] + name = "alsa-sys" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "approx" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" + dependencies = [ +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-traits", + ] + + [[package]] + name = "arc-swap" + version = "0.4.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" + + [[package]] + name = "atty" + version = "0.2.14" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" + dependencies = [ +- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "hermit-abi", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "autocfg" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" + + [[package]] + name = "autocfg" + version = "1.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" + + [[package]] + name = "base64" + version = "0.9.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "safemem", + ] + + [[package]] + name = "base64" + version = "0.10.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", + ] + + [[package]] + name = "bindgen" + version = "0.53.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "cexpr", ++ "cfg-if", ++ "clang-sys", ++ "lazy_static", ++ "lazycell", ++ "peeking_take_while", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "regex", ++ "rustc-hash", ++ "shlex", + ] + + [[package]] + name = "bit-set" + version = "0.5.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" + dependencies = [ +- "bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bit-vec", + ] + + [[package]] + name = "bit-vec" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" + + [[package]] + name = "bitflags" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" + + [[package]] + name = "bitflags" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" + + [[package]] + name = "bitflags" + version = "1.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" + + [[package]] + name = "block-buffer" + version = "0.7.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" + dependencies = [ +- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-padding", ++ "byte-tools", ++ "byteorder", ++ "generic-array", + ] + + [[package]] + name = "block-cipher-trait" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", + ] + + [[package]] + name = "block-modes" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "block-padding", + ] + + [[package]] + name = "block-padding" + version = "0.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" + dependencies = [ +- "byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byte-tools", + ] + + [[package]] + name = "byte-tools" + version = "0.3.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" + + [[package]] + name = "byteorder" + version = "1.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" + + [[package]] + name = "bytes" + version = "0.4.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "iovec", + ] + + [[package]] + name = "cc" + version = "1.0.58" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" + + [[package]] + name = "cexpr" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" + dependencies = [ +- "nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "nom", + ] + + [[package]] + name = "cfg-if" + version = "0.1.10" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" + + [[package]] + name = "chrono" + version = "0.4.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" + dependencies = [ +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-integer", ++ "num-traits", ++ "time", + ] + + [[package]] + name = "clang-sys" + version = "0.29.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" + dependencies = [ +- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glob", ++ "libc", ++ "libloading 0.5.2", + ] + + [[package]] + name = "cloudabi" + version = "0.0.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", + ] + + [[package]] + name = "core-foundation-sys" + version = "0.5.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] + + [[package]] + name = "coreaudio-rs" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "coreaudio-sys", + ] + + [[package]] + name = "coreaudio-sys" + version = "0.2.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4" + dependencies = [ +- "bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bindgen", + ] + + [[package]] + name = "cpal" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e" + dependencies = [ +- "alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alsa-sys", ++ "core-foundation-sys", ++ "coreaudio-rs", ++ "lazy_static", ++ "libc", ++ "stdweb", ++ "winapi 0.3.9", + ] + + [[package]] + name = "crossbeam-deque" + version = "0.7.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" + dependencies = [ +- "crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-epoch", ++ "crossbeam-utils 0.7.2", ++ "maybe-uninit", + ] + + [[package]] + name = "crossbeam-epoch" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "cfg-if", ++ "crossbeam-utils 0.7.2", ++ "lazy_static", ++ "maybe-uninit", ++ "memoffset", ++ "scopeguard", + ] + + [[package]] + name = "crossbeam-queue" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" + dependencies = [ +- "crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.6.6", + ] + + [[package]] + name = "crossbeam-queue" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "crossbeam-utils 0.7.2", ++ "maybe-uninit", + ] + + [[package]] + name = "crossbeam-utils" + version = "0.6.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "lazy_static", + ] + + [[package]] + name = "crossbeam-utils" + version = "0.7.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "cfg-if", ++ "lazy_static", + ] + + [[package]] + name = "crypto-mac" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", ++ "subtle", + ] + + [[package]] + name = "ctr" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736" + dependencies = [ +- "block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-cipher-trait", ++ "stream-cipher", + ] + + [[package]] + name = "digest" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", + ] + + [[package]] + name = "dns-sd" + version = "0.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "env_logger" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" + dependencies = [ +- "atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)", +- "humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "atty", ++ "humantime", ++ "log 0.4.11", ++ "termcolor", + ] + + [[package]] + name = "error-chain" + version = "0.12.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" + dependencies = [ +- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "version_check", + ] + + [[package]] + name = "fake-simd" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" + + [[package]] + name = "fnv" + version = "1.0.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + + [[package]] + name = "fuchsia-cprng" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" + + [[package]] + name = "fuchsia-zircon" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "fuchsia-zircon-sys", + ] + + [[package]] + name = "fuchsia-zircon-sys" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" + + [[package]] + name = "futures" + version = "0.1.29" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" + + [[package]] + name = "futures-channel" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" + dependencies = [ +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures-core", + ] + + [[package]] + name = "futures-core" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" + + [[package]] + name = "futures-cpupool" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "num_cpus", + ] + + [[package]] + name = "futures-executor" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" + dependencies = [ +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures-core", ++ "futures-task", ++ "futures-util", + ] + + [[package]] + name = "futures-macro" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" + dependencies = [ +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro-hack", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "syn 1.0.35", + ] + + [[package]] + name = "futures-sink" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" + + [[package]] + name = "futures-task" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" + dependencies = [ +- "once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "once_cell", + ] + + [[package]] + name = "futures-util" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" + dependencies = [ +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures-core", ++ "futures-macro", ++ "futures-task", ++ "pin-project", ++ "pin-utils", ++ "proc-macro-hack", ++ "proc-macro-nested", ++ "slab 0.4.2", + ] + + [[package]] + name = "gcc" + version = "0.3.55" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" + + [[package]] + name = "generic-array" + version = "0.12.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" + dependencies = [ +- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "typenum", + ] + + [[package]] + name = "getopts" + version = "0.2.21" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" + dependencies = [ +- "unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-width", + ] + + [[package]] + name = "getrandom" + version = "0.1.14" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "wasi", + ] + + [[package]] + name = "glib" + version = "0.9.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "futures-channel", ++ "futures-core", ++ "futures-executor", ++ "futures-task", ++ "futures-util", ++ "glib-sys", ++ "gobject-sys", ++ "lazy_static", ++ "libc", + ] + + [[package]] + name = "glib-sys" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "glob" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" + + [[package]] + name = "gobject-sys" + version = "0.9.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "gstreamer" + version = "0.15.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "cfg-if", ++ "futures-channel", ++ "futures-core", ++ "futures-util", ++ "glib", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer-sys", ++ "lazy_static", ++ "libc", ++ "muldiv", ++ "num-rational", ++ "paste", + ] + + [[package]] + name = "gstreamer-app" + version = "0.15.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "futures-core", ++ "futures-sink", ++ "glib", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer", ++ "gstreamer-app-sys", ++ "gstreamer-base", ++ "gstreamer-sys", ++ "lazy_static", ++ "libc", + ] + + [[package]] + name = "gstreamer-app-sys" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "gstreamer-base-sys", ++ "gstreamer-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "gstreamer-base" + version = "0.15.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "glib", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer", ++ "gstreamer-base-sys", ++ "gstreamer-sys", ++ "libc", + ] + + [[package]] + name = "gstreamer-base-sys" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "gobject-sys", ++ "gstreamer-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "gstreamer-sys" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db" + dependencies = [ +- "glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glib-sys", ++ "gobject-sys", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "hermit-abi" + version = "0.1.15" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] + + [[package]] + name = "hex" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" + + [[package]] + name = "hmac" + version = "0.7.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" + dependencies = [ +- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crypto-mac", ++ "digest", + ] + + [[package]] + name = "hostname" + version = "0.3.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "match_cfg", ++ "winapi 0.3.9", + ] + + [[package]] + name = "httparse" + version = "1.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" + + [[package]] + name = "humantime" + version = "1.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" + dependencies = [ +- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "quick-error", + ] + + [[package]] + name = "hyper" + version = "0.11.27" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7" + dependencies = [ +- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "base64 0.9.3", ++ "bytes", ++ "futures", ++ "futures-cpupool", ++ "httparse", ++ "iovec", ++ "language-tags", ++ "log 0.4.11", ++ "mime", ++ "net2", ++ "percent-encoding", ++ "relay", ++ "time", ++ "tokio-core", ++ "tokio-io", ++ "tokio-proto", ++ "tokio-service", ++ "unicase", ++ "want", + ] + + [[package]] + name = "hyper-proxy" + version = "0.4.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "hyper", ++ "tokio-core", ++ "tokio-io", + ] + + [[package]] + name = "idna" + version = "0.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" + dependencies = [ +- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "matches", ++ "unicode-bidi", ++ "unicode-normalization", + ] + + [[package]] + name = "if-addrs" + version = "0.6.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48" + dependencies = [ +- "if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "if-addrs-sys", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "if-addrs-sys" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" + dependencies = [ +- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc", ++ "libc", + ] + + [[package]] + name = "iovec" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] + + [[package]] + name = "itoa" + version = "0.4.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" + + [[package]] + name = "jack" + version = "0.5.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df" + dependencies = [ +- "bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 0.7.0", ++ "jack-sys", ++ "lazy_static", ++ "libc", + ] + + [[package]] + name = "jack-sys" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3" + dependencies = [ +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lazy_static", ++ "libc", ++ "libloading 0.4.3", + ] + + [[package]] + name = "kernel32-sys" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" + dependencies = [ +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8", ++ "winapi-build", + ] + + [[package]] + name = "language-tags" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" + + [[package]] + name = "lazy_static" + version = "1.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" + + [[package]] + name = "lazycell" + version = "1.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" + + [[package]] + name = "lewton" + version = "0.9.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "ogg", ++ "smallvec 0.6.13", + ] + + [[package]] + name = "libc" + version = "0.2.73" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9" + + [[package]] + name = "libloading" + version = "0.4.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" + dependencies = [ +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys", ++ "lazy_static", ++ "winapi 0.2.8", + ] + + [[package]] + name = "libloading" + version = "0.5.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" + dependencies = [ +- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "libm" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" + + [[package]] + name = "libmdns" + version = "0.2.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "futures", ++ "hostname", ++ "if-addrs", ++ "log 0.4.11", ++ "multimap", ++ "net2", ++ "quick-error", ++ "rand 0.7.3", ++ "tokio-core", + ] + + [[package]] + name = "libpulse-sys" + version = "0.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", + ] [[package]] name = "librespot" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", - "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -940,12 +940,12 @@ dependencies = [ - "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", - "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-audio 0.1.2", -- "librespot-connect 0.1.2", -- "librespot-core 0.1.2", -- "librespot-metadata 0.1.2", -- "librespot-playback 0.1.2", -- "librespot-protocol 0.1.2", -+ "librespot-audio 0.1.3", -+ "librespot-connect 0.1.3", -+ "librespot-core 0.1.3", -+ "librespot-metadata 0.1.3", -+ "librespot-playback 0.1.3", -+ "librespot-protocol 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -961,7 +961,7 @@ dependencies = [ +- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)", +- "hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-audio 0.1.5", +- "librespot-connect 0.1.5", +- "librespot-core 0.1.5", +- "librespot-metadata 0.1.5", +- "librespot-playback 0.1.5", +- "librespot-protocol 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "base64 0.10.1", ++ "env_logger", ++ "futures", ++ "getopts", ++ "hex", ++ "hyper", ++ "librespot-audio", ++ "librespot-connect", ++ "librespot-core", ++ "librespot-metadata", ++ "librespot-playback", ++ "librespot-protocol", ++ "log 0.4.11", ++ "num-bigint", ++ "protobuf", ++ "rand 0.7.3", ++ "rpassword", ++ "sha-1", ++ "tokio-core", ++ "tokio-io", ++ "tokio-process", ++ "tokio-signal", ++ "url", + ] [[package]] name = "librespot-audio" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -969,7 +969,7 @@ dependencies = [ - "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", - "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-core 0.1.2", -+ "librespot-core 0.1.3", - "librespot-tremor 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -980,7 +980,7 @@ dependencies = [ +- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-core 0.1.5", +- "librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-ctr", ++ "bit-set", ++ "byteorder", ++ "bytes", ++ "futures", ++ "lewton", ++ "librespot-core", ++ "librespot-tremor", ++ "log 0.4.11", ++ "num-bigint", ++ "num-traits", ++ "tempfile", ++ "vorbis", + ] [[package]] name = "librespot-connect" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -990,9 +990,9 @@ dependencies = [ - "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", - "libmdns 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-core 0.1.2", -- "librespot-playback 0.1.2", -- "librespot-protocol 0.1.2", -+ "librespot-core 0.1.3", -+ "librespot-playback 0.1.3", -+ "librespot-protocol 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1007,7 +1007,7 @@ dependencies = [ +- "aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-core 0.1.5", +- "librespot-playback 0.1.5", +- "librespot-protocol 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes-ctr", ++ "base64 0.10.1", ++ "block-modes", ++ "dns-sd", ++ "futures", ++ "hmac", ++ "hyper", ++ "libmdns", ++ "librespot-core", ++ "librespot-playback", ++ "librespot-protocol", ++ "log 0.4.11", ++ "num-bigint", ++ "protobuf", ++ "rand 0.7.3", ++ "serde", ++ "serde_derive", ++ "serde_json", ++ "sha-1", ++ "tokio-core", ++ "url", + ] [[package]] name = "librespot-core" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1020,7 +1020,7 @@ dependencies = [ - "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", - "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", - "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-protocol 0.1.2", -+ "librespot-protocol 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", - "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1043,12 +1043,12 @@ dependencies = [ +- "aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)", +- "hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-protocol 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "aes", ++ "base64 0.10.1", ++ "byteorder", ++ "bytes", ++ "error-chain", ++ "futures", ++ "hmac", ++ "httparse", ++ "hyper", ++ "hyper-proxy", ++ "lazy_static", ++ "librespot-protocol", ++ "log 0.4.11", ++ "num-bigint", ++ "num-integer", ++ "num-traits", ++ "pbkdf2", ++ "protobuf", ++ "rand 0.7.3", ++ "serde", ++ "serde_derive", ++ "serde_json", ++ "sha-1", ++ "shannon", ++ "tokio-codec", ++ "tokio-core", ++ "tokio-io", ++ "url", ++ "uuid", ++ "vergen", + ] [[package]] name = "librespot-metadata" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", - "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-core 0.1.2", -- "librespot-protocol 0.1.2", -+ "librespot-core 0.1.3", -+ "librespot-protocol 0.1.3", - "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1056,7 +1056,7 @@ dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-core 0.1.5", +- "librespot-protocol 0.1.5", +- "linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "futures", ++ "librespot-core", ++ "librespot-protocol", ++ "linear-map", ++ "log 0.4.11", ++ "protobuf", + ] [[package]] name = "librespot-playback" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", - "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1068,9 +1068,9 @@ dependencies = [ - "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", - "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", - "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", -- "librespot-audio 0.1.2", -- "librespot-core 0.1.2", -- "librespot-metadata 0.1.2", -+ "librespot-audio 0.1.3", -+ "librespot-core 0.1.3", -+ "librespot-metadata 0.1.3", - "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", - "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", - "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", -@@ -1081,7 +1081,7 @@ dependencies = [ +- "alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "librespot-audio 0.1.5", +- "librespot-core 0.1.5", +- "librespot-metadata 0.1.5", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alsa", ++ "byteorder", ++ "cpal", ++ "futures", ++ "glib", ++ "gstreamer", ++ "gstreamer-app", ++ "jack", ++ "libc", ++ "libpulse-sys", ++ "librespot-audio", ++ "librespot-core", ++ "librespot-metadata", ++ "log 0.4.11", ++ "portaudio-rs", ++ "rodio", ++ "sdl2", ++ "shell-words", ++ "zerocopy", + ] [[package]] name = "librespot-protocol" --version = "0.1.2" -+version = "0.1.3" +-version = "0.1.5" ++version = "0.1.6" dependencies = [ - "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", - "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "glob", ++ "protobuf", ++ "protobuf-codegen", ++ "protobuf-codegen-pure", + ] + + [[package]] + name = "librespot-tremor" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe" + dependencies = [ +- "cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cc", ++ "libc", ++ "ogg-sys", ++ "pkg-config", + ] + + [[package]] + name = "linear-map" + version = "1.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" + + [[package]] + name = "lock_api" + version = "0.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" + dependencies = [ +- "scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "scopeguard", + ] + + [[package]] + name = "log" + version = "0.3.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" + dependencies = [ +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.11", + ] + + [[package]] + name = "log" + version = "0.4.11" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", + ] + + [[package]] + name = "match_cfg" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" + + [[package]] + name = "matches" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" + + [[package]] + name = "matrixmultiply" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f" + dependencies = [ +- "rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rawpointer", + ] + + [[package]] + name = "maybe-uninit" + version = "2.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" + + [[package]] + name = "memchr" + version = "2.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" + + [[package]] + name = "memoffset" + version = "0.5.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", + ] + + [[package]] + name = "mime" + version = "0.3.16" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" + + [[package]] + name = "mio" + version = "0.6.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "fuchsia-zircon", ++ "fuchsia-zircon-sys", ++ "iovec", ++ "kernel32-sys", ++ "libc", ++ "log 0.4.11", ++ "miow 0.2.1", ++ "net2", ++ "slab 0.4.2", ++ "winapi 0.2.8", + ] + + [[package]] + name = "mio-named-pipes" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" + dependencies = [ +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "log 0.4.11", ++ "mio", ++ "miow 0.3.5", ++ "winapi 0.3.9", + ] + + [[package]] + name = "mio-uds" + version = "0.6.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" + dependencies = [ +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "iovec", ++ "libc", ++ "mio", + ] + + [[package]] + name = "miow" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" + dependencies = [ +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys", ++ "net2", ++ "winapi 0.2.8", ++ "ws2_32-sys", + ] + + [[package]] + name = "miow" + version = "0.3.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" + dependencies = [ +- "socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "socket2", ++ "winapi 0.3.9", + ] + + [[package]] + name = "muldiv" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204" + + [[package]] + name = "multimap" + version = "0.8.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce" + dependencies = [ +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", ++ "serde", + ] + + [[package]] + name = "nalgebra" + version = "0.18.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2" + dependencies = [ +- "alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "alga", ++ "approx", ++ "generic-array", ++ "matrixmultiply", ++ "num-complex", ++ "num-rational", ++ "num-traits", ++ "rand 0.6.5", ++ "typenum", + ] + + [[package]] + name = "net2" + version = "0.2.34" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "nix" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32" + dependencies = [ +- "bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 0.9.1", ++ "cfg-if", ++ "libc", ++ "void", + ] + + [[package]] + name = "nom" + version = "5.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" + dependencies = [ +- "memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "memchr", ++ "version_check", + ] + + [[package]] + name = "num" + version = "0.1.42" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" + dependencies = [ +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "num-integer", ++ "num-iter", ++ "num-traits", + ] + + [[package]] + name = "num-bigint" + version = "0.2.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-integer", ++ "num-traits", + ] + + [[package]] + name = "num-complex" + version = "0.2.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-traits", + ] + + [[package]] + name = "num-integer" + version = "0.1.43" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-traits", + ] + + [[package]] + name = "num-iter" + version = "0.1.41" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-integer", ++ "num-traits", + ] + + [[package]] + name = "num-rational" + version = "0.2.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)", +- "num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "num-integer", ++ "num-traits", + ] + + [[package]] + name = "num-traits" + version = "0.2.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" + dependencies = [ +- "autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 1.0.0", ++ "libm", + ] + + [[package]] + name = "num_cpus" + version = "1.13.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" + dependencies = [ +- "hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "hermit-abi", ++ "libc", + ] + + [[package]] + name = "ogg" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", + ] + + [[package]] + name = "ogg-sys" + version = "0.0.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2" + dependencies = [ +- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gcc", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "once_cell" + version = "1.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" + + [[package]] + name = "opaque-debug" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" + + [[package]] + name = "parking_lot" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" + dependencies = [ +- "lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "lock_api", ++ "parking_lot_core", ++ "rustc_version", + ] + + [[package]] + name = "parking_lot_core" + version = "0.6.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", +- "rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "cloudabi", ++ "libc", ++ "redox_syscall", ++ "rustc_version", ++ "smallvec 0.6.13", ++ "winapi 0.3.9", + ] + + [[package]] + name = "paste" + version = "0.1.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" + dependencies = [ +- "paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", ++ "paste-impl", ++ "proc-macro-hack", + ] + + [[package]] + name = "paste-impl" + version = "0.1.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" + dependencies = [ +- "proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro-hack", + ] + + [[package]] + name = "pbkdf2" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" + dependencies = [ +- "base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "base64 0.9.3", ++ "byteorder", ++ "crypto-mac", ++ "hmac", ++ "rand 0.5.6", ++ "sha2", ++ "subtle", + ] + + [[package]] + name = "peeking_take_while" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + + [[package]] + name = "percent-encoding" + version = "1.0.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" + + [[package]] + name = "pin-project" + version = "0.4.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17" + dependencies = [ +- "pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)", ++ "pin-project-internal", + ] + + [[package]] + name = "pin-project-internal" + version = "0.4.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "syn 1.0.35", + ] + + [[package]] + name = "pin-utils" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + + [[package]] + name = "pkg-config" + version = "0.3.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" + + [[package]] + name = "portaudio-rs" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "libc", ++ "portaudio-sys", + ] + + [[package]] + name = "portaudio-sys" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "pkg-config", + ] + + [[package]] + name = "ppv-lite86" + version = "0.2.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" + + [[package]] + name = "proc-macro-hack" + version = "0.5.16" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" + + [[package]] + name = "proc-macro-nested" + version = "0.1.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" + + [[package]] + name = "proc-macro2" + version = "0.4.30" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" + dependencies = [ +- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.1.0", + ] + + [[package]] + name = "proc-macro2" + version = "1.0.19" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" + dependencies = [ +- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "unicode-xid 0.2.1", + ] + + [[package]] + name = "protobuf" + version = "2.14.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485" + + [[package]] + name = "protobuf-codegen" + version = "2.14.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c" + dependencies = [ +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "protobuf", + ] + + [[package]] + name = "protobuf-codegen-pure" + version = "2.14.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440" + dependencies = [ +- "protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "protobuf", ++ "protobuf-codegen", + ] + + [[package]] + name = "quick-error" + version = "1.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + + [[package]] + name = "quote" + version = "0.6.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30", + ] + + [[package]] + name = "quote" + version = "1.0.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", + ] + + [[package]] + name = "rand" + version = "0.3.23" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "rand 0.4.6", + ] + + [[package]] + name = "rand" + version = "0.4.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" + dependencies = [ +- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fuchsia-cprng", ++ "libc", ++ "rand_core 0.3.1", ++ "rdrand", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand" + version = "0.5.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" + dependencies = [ +- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cloudabi", ++ "fuchsia-cprng", ++ "libc", ++ "rand_core 0.3.1", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand" + version = "0.6.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" + dependencies = [ +- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 0.1.7", ++ "libc", ++ "rand_chacha 0.1.1", ++ "rand_core 0.4.2", ++ "rand_hc 0.1.0", ++ "rand_isaac", ++ "rand_jitter", ++ "rand_os", ++ "rand_pcg", ++ "rand_xorshift", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand" + version = "0.7.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" + dependencies = [ +- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "getrandom", ++ "libc", ++ "rand_chacha 0.2.2", ++ "rand_core 0.5.1", ++ "rand_hc 0.2.0", + ] + + [[package]] + name = "rand_chacha" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" + dependencies = [ +- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 0.1.7", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rand_chacha" + version = "0.2.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" + dependencies = [ +- "ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "ppv-lite86", ++ "rand_core 0.5.1", + ] + + [[package]] + name = "rand_core" + version = "0.3.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" + dependencies = [ +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.4.2", + ] + + [[package]] + name = "rand_core" + version = "0.4.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" + + [[package]] + name = "rand_core" + version = "0.5.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + dependencies = [ +- "getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)", ++ "getrandom", + ] + + [[package]] + name = "rand_hc" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rand_hc" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" + dependencies = [ +- "rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.5.1", + ] + + [[package]] + name = "rand_isaac" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rand_jitter" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "rand_core 0.4.2", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand_os" + version = "0.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" + dependencies = [ +- "cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cloudabi", ++ "fuchsia-cprng", ++ "libc", ++ "rand_core 0.4.2", ++ "rdrand", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rand_pcg" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" + dependencies = [ +- "autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "autocfg 0.1.7", ++ "rand_core 0.4.2", + ] + + [[package]] + name = "rand_xorshift" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "rawpointer" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" + + [[package]] + name = "rdrand" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" + dependencies = [ +- "rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand_core 0.3.1", + ] + + [[package]] + name = "redox_syscall" + version = "0.1.57" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" + + [[package]] + name = "regex" + version = "1.3.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" + dependencies = [ +- "regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "regex-syntax", + ] + + [[package]] + name = "regex-syntax" + version = "0.6.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" + + [[package]] + name = "relay" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", + ] + + [[package]] + name = "remove_dir_all" + version = "0.5.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" + dependencies = [ +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.9", + ] + + [[package]] + name = "rodio" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d" + dependencies = [ +- "cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cpal", ++ "lazy_static", ++ "nalgebra", + ] + + [[package]] + name = "rpassword" + version = "3.0.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e" + dependencies = [ +- "kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "kernel32-sys", ++ "libc", ++ "winapi 0.2.8", + ] + + [[package]] + name = "rustc-hash" + version = "1.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + + [[package]] + name = "rustc_version" + version = "0.2.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" + dependencies = [ +- "semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "semver", + ] + + [[package]] + name = "ryu" + version = "1.0.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" + + [[package]] + name = "safemem" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" + + [[package]] + name = "scoped-tls" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" + + [[package]] + name = "scopeguard" + version = "1.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + + [[package]] + name = "sdl2" + version = "0.32.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "lazy_static", ++ "libc", ++ "num", ++ "rand 0.6.5", ++ "sdl2-sys", + ] + + [[package]] + name = "sdl2-sys" + version = "0.32.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", + ] + + [[package]] + name = "semver" + version = "0.9.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" + dependencies = [ +- "semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "semver-parser", + ] + + [[package]] + name = "semver-parser" + version = "0.7.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" + + [[package]] + name = "serde" + version = "1.0.114" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" + + [[package]] + name = "serde_derive" + version = "1.0.114" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "syn 1.0.35", + ] + + [[package]] + name = "serde_json" + version = "1.0.56" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" + dependencies = [ +- "itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)", ++ "itoa", ++ "ryu", ++ "serde", + ] + + [[package]] + name = "sha-1" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" + dependencies = [ +- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-buffer", ++ "digest", ++ "fake-simd", ++ "opaque-debug", + ] + + [[package]] + name = "sha2" + version = "0.8.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" + dependencies = [ +- "block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "block-buffer", ++ "digest", ++ "fake-simd", ++ "opaque-debug", + ] + + [[package]] + name = "shannon" + version = "0.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", + ] + + [[package]] + name = "shell-words" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a" + + [[package]] + name = "shlex" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" + + [[package]] + name = "signal-hook-registry" + version = "1.2.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" + dependencies = [ +- "arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", ++ "arc-swap", ++ "libc", + ] + + [[package]] + name = "slab" + version = "0.3.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23" + + [[package]] + name = "slab" + version = "0.4.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" + + [[package]] + name = "smallvec" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013" + + [[package]] + name = "smallvec" + version = "0.6.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" + dependencies = [ +- "maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "maybe-uninit", + ] + + [[package]] + name = "socket2" + version = "0.3.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "redox_syscall", ++ "winapi 0.3.9", + ] + + [[package]] + name = "stdweb" + version = "0.1.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" + + [[package]] + name = "stream-cipher" + version = "0.3.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c" + dependencies = [ +- "generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "generic-array", + ] + + [[package]] + name = "subtle" + version = "1.0.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" + + [[package]] + name = "syn" + version = "0.15.44" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30", ++ "quote 0.6.13", ++ "unicode-xid 0.1.0", + ] + + [[package]] + name = "syn" + version = "1.0.35" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0" + dependencies = [ +- "proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 1.0.19", ++ "quote 1.0.7", ++ "unicode-xid 0.2.1", + ] + + [[package]] + name = "synstructure" + version = "0.10.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", +- "quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", +- "unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "proc-macro2 0.4.30", ++ "quote 0.6.13", ++ "syn 0.15.44", ++ "unicode-xid 0.1.0", + ] + + [[package]] + name = "take" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5" + + [[package]] + name = "tempfile" + version = "3.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" + dependencies = [ +- "cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)", +- "remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "cfg-if", ++ "libc", ++ "rand 0.7.3", ++ "redox_syscall", ++ "remove_dir_all", ++ "winapi 0.3.9", + ] + + [[package]] + name = "termcolor" + version = "1.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" + dependencies = [ +- "winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-util", + ] + + [[package]] + name = "time" + version = "0.1.43" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "winapi 0.3.9", + ] + + [[package]] + name = "tinyvec" + version = "0.3.3" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" + + [[package]] + name = "tokio" + version = "0.1.22" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "mio", ++ "num_cpus", ++ "tokio-codec", ++ "tokio-current-thread", ++ "tokio-executor", ++ "tokio-fs", ++ "tokio-io", ++ "tokio-reactor", ++ "tokio-sync", ++ "tokio-tcp", ++ "tokio-threadpool", ++ "tokio-timer", ++ "tokio-udp", ++ "tokio-uds", + ] + + [[package]] + name = "tokio-codec" + version = "0.1.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "tokio-io", + ] + + [[package]] + name = "tokio-core" + version = "0.1.17" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "iovec", ++ "log 0.4.11", ++ "mio", ++ "scoped-tls", ++ "tokio", ++ "tokio-executor", ++ "tokio-io", ++ "tokio-reactor", ++ "tokio-timer", + ] + + [[package]] + name = "tokio-current-thread" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "tokio-executor", + ] + + [[package]] + name = "tokio-executor" + version = "0.1.10" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" + dependencies = [ +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.7.2", ++ "futures", + ] + + [[package]] + name = "tokio-fs" + version = "0.1.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "tokio-io", ++ "tokio-threadpool", + ] + + [[package]] + name = "tokio-io" + version = "0.1.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "log 0.4.11", + ] + + [[package]] + name = "tokio-process" + version = "0.2.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43" + dependencies = [ +- "crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-queue 0.1.2", ++ "futures", ++ "lazy_static", ++ "libc", ++ "log 0.4.11", ++ "mio", ++ "mio-named-pipes", ++ "tokio-io", ++ "tokio-reactor", ++ "tokio-signal", ++ "winapi 0.3.9", + ] + + [[package]] + name = "tokio-proto" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)", +- "rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "log 0.3.9", ++ "net2", ++ "rand 0.3.23", ++ "slab 0.3.0", ++ "smallvec 0.2.1", ++ "take", ++ "tokio-core", ++ "tokio-io", ++ "tokio-service", + ] + + [[package]] + name = "tokio-reactor" + version = "0.1.12" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" + dependencies = [ +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.7.2", ++ "futures", ++ "lazy_static", ++ "log 0.4.11", ++ "mio", ++ "num_cpus", ++ "parking_lot", ++ "slab 0.4.2", ++ "tokio-executor", ++ "tokio-io", ++ "tokio-sync", + ] + + [[package]] + name = "tokio-service" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", + ] + + [[package]] + name = "tokio-signal" + version = "0.2.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "libc", ++ "mio", ++ "mio-uds", ++ "signal-hook-registry", ++ "tokio-executor", ++ "tokio-io", ++ "tokio-reactor", ++ "winapi 0.3.9", + ] + + [[package]] + name = "tokio-sync" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" + dependencies = [ +- "fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", ++ "fnv", ++ "futures", + ] + + [[package]] + name = "tokio-tcp" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "iovec", ++ "mio", ++ "tokio-io", ++ "tokio-reactor", + ] + + [[package]] + name = "tokio-threadpool" + version = "0.1.18" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" + dependencies = [ +- "crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)", +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-deque", ++ "crossbeam-queue 0.2.3", ++ "crossbeam-utils 0.7.2", ++ "futures", ++ "lazy_static", ++ "log 0.4.11", ++ "num_cpus", ++ "slab 0.4.2", ++ "tokio-executor", + ] + + [[package]] + name = "tokio-timer" + version = "0.2.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" + dependencies = [ +- "crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)", ++ "crossbeam-utils 0.7.2", ++ "futures", ++ "slab 0.4.2", ++ "tokio-executor", + ] + + [[package]] + name = "tokio-udp" + version = "0.1.6" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "log 0.4.11", ++ "mio", ++ "tokio-codec", ++ "tokio-io", ++ "tokio-reactor", + ] + + [[package]] + name = "tokio-uds" + version = "0.2.7" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" + dependencies = [ +- "bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)", +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)", +- "mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)", +- "tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bytes", ++ "futures", ++ "iovec", ++ "libc", ++ "log 0.4.11", ++ "mio", ++ "mio-uds", ++ "tokio-codec", ++ "tokio-io", ++ "tokio-reactor", + ] + + [[package]] + name = "try-lock" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2" + + [[package]] + name = "typenum" + version = "1.12.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" + + [[package]] + name = "unicase" + version = "2.6.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" + dependencies = [ +- "version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)", ++ "version_check", + ] + + [[package]] + name = "unicode-bidi" + version = "0.3.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" + dependencies = [ +- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "matches", + ] + + [[package]] + name = "unicode-normalization" + version = "0.1.13" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" + dependencies = [ +- "tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)", ++ "tinyvec", + ] + + [[package]] + name = "unicode-width" + version = "0.1.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" + + [[package]] + name = "unicode-xid" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + + [[package]] + name = "unicode-xid" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" + + [[package]] + name = "url" + version = "1.7.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" + dependencies = [ +- "idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)", +- "matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "idna", ++ "matches", ++ "percent-encoding", + ] + + [[package]] + name = "uuid" + version = "0.7.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" + dependencies = [ +- "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", ++ "rand 0.6.5", + ] + + [[package]] + name = "vergen" + version = "3.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb" + dependencies = [ +- "bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)", +- "chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)", ++ "bitflags 1.2.1", ++ "chrono", + ] + + [[package]] + name = "version_check" + version = "0.9.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" + + [[package]] + name = "void" + version = "1.0.2" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" + + [[package]] + name = "vorbis" + version = "0.0.14" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776" + dependencies = [ +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)", ++ "libc", ++ "ogg-sys", ++ "vorbis-sys", ++ "vorbisfile-sys", + ] + + [[package]] + name = "vorbis-sys" + version = "0.1.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4" + dependencies = [ +- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gcc", ++ "libc", ++ "ogg-sys", ++ "pkg-config", + ] + + [[package]] + name = "vorbisfile-sys" + version = "0.0.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1" + dependencies = [ +- "gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)", +- "libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)", +- "ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)", +- "pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)", +- "vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "gcc", ++ "libc", ++ "ogg-sys", ++ "pkg-config", ++ "vorbis-sys", + ] + + [[package]] + name = "want" + version = "0.0.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1" + dependencies = [ +- "futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)", +- "log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)", +- "try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "futures", ++ "log 0.4.11", ++ "try-lock", + ] + + [[package]] + name = "wasi" + version = "0.9.0+wasi-snapshot-preview1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + + [[package]] + name = "winapi" + version = "0.2.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" + + [[package]] + name = "winapi" + version = "0.3.9" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" + dependencies = [ +- "winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi-i686-pc-windows-gnu", ++ "winapi-x86_64-pc-windows-gnu", + ] + + [[package]] + name = "winapi-build" + version = "0.1.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" + + [[package]] + name = "winapi-i686-pc-windows-gnu" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + + [[package]] + name = "winapi-util" + version = "0.1.5" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" + dependencies = [ +- "winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.3.9", + ] + + [[package]] + name = "winapi-x86_64-pc-windows-gnu" + version = "0.4.0" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + + [[package]] + name = "ws2_32-sys" + version = "0.2.1" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" + dependencies = [ +- "winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)", +- "winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)", ++ "winapi 0.2.8", ++ "winapi-build", + ] + + [[package]] + name = "zerocopy" + version = "0.2.8" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056" + dependencies = [ +- "byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)", +- "zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)", ++ "byteorder", ++ "zerocopy-derive", + ] + + [[package]] + name = "zerocopy-derive" + version = "0.1.4" + source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5" + dependencies = [ +- "proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)", +- "syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)", +- "synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)", +-] +- +-[metadata] +-"checksum aes 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "54eb1d8fe354e5fc611daf4f2ea97dd45a765f4f1e4512306ec183ae2e8f20c9" +-"checksum aes-ctr 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d2e5b0458ea3beae0d1d8c0f3946564f8e10f90646cf78c06b4351052058d1ee" +-"checksum aes-soft 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "cfd7e7ae3f9a1fb5c03b389fc6bb9a51400d0c13053f0dca698c832bfd893a0d" +-"checksum aesni 0.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2f70a6b5f971e473091ab7cfb5ffac6cde81666c4556751d8d5620ead8abf100" +-"checksum alga 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "4f823d037a7ec6ea2197046bafd4ae150e6bc36f9ca347404f46a46823fa84f2" +-"checksum alsa 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b4a0d4ebc8b23041c5de9bc9aee13b4bad844a589479701f31a5934cfe4aeb32" +-"checksum alsa-sys 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b0edcbbf9ef68f15ae1b620f722180b82a98b6f0628d30baa6b8d2a5abc87d58" +-"checksum approx 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f0e60b75072ecd4168020818c0107f2857bb6c4e64252d8d3983f6263b40a5c3" +-"checksum arc-swap 0.4.7 (registry+https://github.com/rust-lang/crates.io-index)" = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034" +-"checksum atty 0.2.14 (registry+https://github.com/rust-lang/crates.io-index)" = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +-"checksum autocfg 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1d49d90015b3c36167a20fe2810c5cd875ad504b39cff3d4eae7977e6b7c1cb2" +-"checksum autocfg 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f8aac770f1885fd7e387acedd76065302551364496e46b3dd00860b2f8359b9d" +-"checksum base64 0.10.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0b25d992356d2eb0ed82172f5248873db5560c4721f564b13cb5193bda5e668e" +-"checksum base64 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "489d6c0ed21b11d038c31b6ceccca973e65d73ba3bd8ecb9a2babf5546164643" +-"checksum bindgen 0.53.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c72a978d268b1d70b0e963217e60fdabd9523a941457a6c42a7315d15c7e89e5" +-"checksum bit-set 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6e11e16035ea35e4e5997b393eacbf6f63983188f7a2ad25bfb13465f5ad59de" +-"checksum bit-vec 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "5f0dc55f2d8a1a85650ac47858bb001b4c0dd73d79e3c455a842925e68d29cd3" +-"checksum bitflags 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "aad18937a628ec6abcd26d1489012cc0e18c21798210f491af69ded9b881106d" +-"checksum bitflags 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4efd02e230a02e18f92fc2735f44597385ed02ad8f831e7c1c1156ee5e1ab3a5" +-"checksum bitflags 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" +-"checksum block-buffer 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c0940dc441f31689269e10ac70eb1002a3a1d3ad1390e030043662eb7fe4688b" +-"checksum block-cipher-trait 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "1c924d49bd09e7c06003acda26cd9742e796e34282ec6c1189404dee0c1f4774" +-"checksum block-modes 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "31aa8410095e39fdb732909fb5730a48d5bd7c2e3cd76bd1b07b3dbea130c529" +-"checksum block-padding 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "fa79dedbb091f449f1f39e53edf88d5dbe95f895dae6135a8d7b881fb5af73f5" +-"checksum byte-tools 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7" +-"checksum byteorder 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "08c48aae112d48ed9f069b33538ea9e3e90aa263cfa3d1c24309612b1f7472de" +-"checksum bytes 0.4.12 (registry+https://github.com/rust-lang/crates.io-index)" = "206fdffcfa2df7cbe15601ef46c813fce0965eb3286db6b56c583b814b51c81c" +-"checksum cc 1.0.58 (registry+https://github.com/rust-lang/crates.io-index)" = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518" +-"checksum cexpr 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f4aedb84272dbe89af497cf81375129abda4fc0a9e7c5d317498c15cc30c0d27" +-"checksum cfg-if 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" +-"checksum chrono 0.4.13 (registry+https://github.com/rust-lang/crates.io-index)" = "c74d84029116787153e02106bf53e66828452a4b325cc8652b788b5967c0a0b6" +-"checksum clang-sys 0.29.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fe6837df1d5cba2397b835c8530f51723267e16abbf83892e9e5af4f0e5dd10a" +-"checksum cloudabi 0.0.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f" +-"checksum core-foundation-sys 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "716c271e8613ace48344f723b60b900a93150271e5be206212d052bbc0883efa" +-"checksum coreaudio-rs 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f229761965dad3e9b11081668a6ea00f1def7aa46062321b5ec245b834f6e491" +-"checksum coreaudio-sys 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d6570ee6e089131e928d5ec9236db9e818aa3cf850f48b0eec6ef700571271d4" +-"checksum cpal 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d58ae1ed6536b1b233f5e3aeb6997a046ddb4d05e3f61701b58a92eb254a829e" +-"checksum crossbeam-deque 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285" +-"checksum crossbeam-epoch 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "058ed274caafc1f60c4997b5fc07bf7dc7cca454af7c6e81edffe5f33f70dace" +-"checksum crossbeam-queue 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7c979cd6cfe72335896575c6b5688da489e420d36a27a0b9eb0c73db574b4a4b" +-"checksum crossbeam-queue 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570" +-"checksum crossbeam-utils 0.6.6 (registry+https://github.com/rust-lang/crates.io-index)" = "04973fa96e96579258a5091af6003abde64af786b860f18622b82e026cca60e6" +-"checksum crossbeam-utils 0.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c3c7c73a2d1e9fc0886a08b93e98eb643461230d5f1925e4036204d5f2e261a8" +-"checksum crypto-mac 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4434400df11d95d556bac068ddfedd482915eb18fe8bea89bc80b6e4b1c179e5" +-"checksum ctr 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "022cd691704491df67d25d006fe8eca083098253c4d43516c2206479c58c6736" +-"checksum digest 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f3d0c8c8752312f9713efd397ff63acb9f85585afbf179282e720e7704954dd5" +-"checksum dns-sd 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d748509dea20228f63ba519bf142ce2593396386125b01f5b0d6412dab972087" +-"checksum env_logger 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "aafcde04e90a5226a6443b7aabdb016ba2f8307c847d524724bd9b346dd1a2d3" +-"checksum error-chain 0.12.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d371106cc88ffdfb1eabd7111e432da544f16f3e2d7bf1dfe8bf575f1df045cd" +-"checksum fake-simd 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "e88a8acf291dafb59c2d96e8f59828f3838bb1a70398823ade51a84de6a6deed" +-"checksum fnv 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" +-"checksum fuchsia-cprng 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "a06f77d526c1a601b7c4cdd98f54b5eaabffc14d5f2f0296febdc7f357c6d3ba" +-"checksum fuchsia-zircon 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2e9763c69ebaae630ba35f74888db465e49e259ba1bc0eda7d06f4a067615d82" +-"checksum fuchsia-zircon-sys 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3dcaa9ae7725d12cdb85b3ad99a434db70b468c09ded17e012d86b5c1010f7a7" +-"checksum futures 0.1.29 (registry+https://github.com/rust-lang/crates.io-index)" = "1b980f2816d6ee8673b6517b52cb0e808a180efc92e5c19d02cdda79066703ef" +-"checksum futures-channel 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5" +-"checksum futures-core 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399" +-"checksum futures-cpupool 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "ab90cde24b3319636588d0c35fe03b1333857621051837ed769faefb4c2162e4" +-"checksum futures-executor 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314" +-"checksum futures-macro 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39" +-"checksum futures-sink 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "3f2032893cb734c7a05d85ce0cc8b8c4075278e93b24b66f9de99d6eb0fa8acc" +-"checksum futures-task 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "bdb66b5f09e22019b1ab0830f7785bcea8e7a42148683f99214f73f8ec21a626" +-"checksum futures-util 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6" +-"checksum gcc 0.3.55 (registry+https://github.com/rust-lang/crates.io-index)" = "8f5f3913fa0bfe7ee1fd8248b6b9f42a5af4b9d65ec2dd2c3c26132b950ecfc2" +-"checksum generic-array 0.12.3 (registry+https://github.com/rust-lang/crates.io-index)" = "c68f0274ae0e023facc3c97b2e00f076be70e254bc851d972503b328db79b2ec" +-"checksum getopts 0.2.21 (registry+https://github.com/rust-lang/crates.io-index)" = "14dbbfd5c71d70241ecf9e6f13737f7b5ce823821063188d7e46c41d371eebd5" +-"checksum getrandom 0.1.14 (registry+https://github.com/rust-lang/crates.io-index)" = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb" +-"checksum glib 0.9.3 (registry+https://github.com/rust-lang/crates.io-index)" = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0" +-"checksum glib-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "95856f3802f446c05feffa5e24859fe6a183a7cb849c8449afc35c86b1e316e2" +-"checksum glob 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9b919933a397b79c37e33b77bb2aa3dc8eb6e165ad809e58ff75bc7db2e34574" +-"checksum gobject-sys 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9" +-"checksum gstreamer 0.15.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ce8664a114cd6ec16bece783d5eee59496919915b1f6884400ba4a953274a163" +-"checksum gstreamer-app 0.15.6 (registry+https://github.com/rust-lang/crates.io-index)" = "789784e8d42f5add1e1e965cf9f7e2d09e21dd0756bae6148f971db9a761d6a9" +-"checksum gstreamer-app-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "bf869ce152c23bca5d761ab62146b47f750d0b28d4d499731857532897d48167" +-"checksum gstreamer-base 0.15.4 (registry+https://github.com/rust-lang/crates.io-index)" = "42552f75cc6c260b0be180d5c955f4cd74bd170289c622404c25f1210b521c12" +-"checksum gstreamer-base-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ba384f52174b3c586593fca32642680a9e67961fea9f4cd8419f678965023bed" +-"checksum gstreamer-sys 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1d18da01b97d0ab5896acd5151e4c155acefd0e6c03c3dd24dd133ba054053db" +-"checksum hermit-abi 0.1.15 (registry+https://github.com/rust-lang/crates.io-index)" = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9" +-"checksum hex 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "805026a5d0141ffc30abb3be3173848ad46a1b1664fe632428479619a3644d77" +-"checksum hmac 0.7.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5dcb5e64cda4c23119ab41ba960d1e170a774c8e4b9d9e6a9bc18aabf5e59695" +-"checksum hostname 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "3c731c3e10504cc8ed35cfe2f1db4c9274c3d35fa486e3b31df46f068ef3e867" +-"checksum httparse 1.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "cd179ae861f0c2e53da70d892f5f3029f9594be0c41dc5269cd371691b1dc2f9" +-"checksum humantime 1.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "df004cfca50ef23c36850aaaa59ad52cc70d0e90243c3c7737a4dd32dc7a3c4f" +-"checksum hyper 0.11.27 (registry+https://github.com/rust-lang/crates.io-index)" = "34a590ca09d341e94cddf8e5af0bbccde205d5fbc2fa3c09dd67c7f85cea59d7" +-"checksum hyper-proxy 0.4.1 (registry+https://github.com/rust-lang/crates.io-index)" = "44f0925de2747e481e6e477dd212c25e8f745567f02f6182e04d27b97c3fbece" +-"checksum idna 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "38f09e0f0b1fb55fdee1f17470ad800da77af5186a1a76c026b679358b7e844e" +-"checksum if-addrs 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "28538916eb3f3976311f5dfbe67b5362d0add1293d0a9cad17debf86f8e3aa48" +-"checksum if-addrs-sys 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "de74b9dd780476e837e5eb5ab7c88b49ed304126e412030a0adba99c8efe79ea" +-"checksum iovec 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e" +-"checksum itoa 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6" +-"checksum jack 0.5.7 (registry+https://github.com/rust-lang/crates.io-index)" = "1e15fc592e2e5a74a105ff507083c04db1aa20ba1b90d425362ba000e57422df" +-"checksum jack-sys 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "c0d4ca501477fd3cd93a36df581046e5d6338ed826cf7e9b8d302603521e6cc3" +-"checksum kernel32-sys 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "7507624b29483431c0ba2d82aece8ca6cdba9382bff4ddd0f7490560c056098d" +-"checksum language-tags 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a91d884b6667cd606bb5a69aa0c99ba811a115fc68915e7056ec08a46e93199a" +-"checksum lazy_static 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +-"checksum lazycell 1.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "b294d6fa9ee409a054354afc4352b0b9ef7ca222c69b8812cbea9e7d2bf3783f" +-"checksum lewton 0.9.4 (registry+https://github.com/rust-lang/crates.io-index)" = "8d542c1a317036c45c2aa1cf10cc9d403ca91eb2d333ef1a4917e5cb10628bd0" +-"checksum libc 0.2.73 (registry+https://github.com/rust-lang/crates.io-index)" = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9" +-"checksum libloading 0.4.3 (registry+https://github.com/rust-lang/crates.io-index)" = "fd38073de8f7965d0c17d30546d4bb6da311ab428d1c7a3fc71dff7f9d4979b9" +-"checksum libloading 0.5.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f2b111a074963af1d37a139918ac6d49ad1d0d5e47f72fd55388619691a7d753" +-"checksum libm 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "c7d73b3f436185384286bd8098d17ec07c9a7d2388a6599f824d8502b529702a" +-"checksum libmdns 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "5d8582c174736c53633bc482ac709b24527c018356c3dc6d8e25a788b06b394e" +-"checksum libpulse-sys 0.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "9bb11b06faf883500c1b625cf4453e6c7737e9df9c7ba01df3f84b22b083e4ac" +-"checksum librespot-tremor 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "97f525bff915d478a76940a7b988e5ea34911ba7280c97bd3a7673f54d68b4fe" +-"checksum linear-map 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bfae20f6b19ad527b550c223fddc3077a547fc70cda94b9b566575423fd303ee" +-"checksum lock_api 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75" +-"checksum log 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "e19e8d5c34a3e0e2223db8e060f9e8264aeeb5c5fc64a4ee9965c062211c024b" +-"checksum log 0.4.11 (registry+https://github.com/rust-lang/crates.io-index)" = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" +-"checksum match_cfg 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ffbee8634e0d45d258acb448e7eaab3fce7a0a467395d4d9f228e3c1f01fb2e4" +-"checksum matches 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08" +-"checksum matrixmultiply 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "d4f7ec66360130972f34830bfad9ef05c6610a43938a467bcc9ab9369ab3478f" +-"checksum maybe-uninit 2.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00" +-"checksum memchr 2.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3728d817d99e5ac407411fa471ff9800a778d88a24685968b36824eaf4bee400" +-"checksum memoffset 0.5.5 (registry+https://github.com/rust-lang/crates.io-index)" = "c198b026e1bbf08a937e94c6c60f9ec4a2267f5b0d2eec9c1b21b061ce2be55f" +-"checksum mime 0.3.16 (registry+https://github.com/rust-lang/crates.io-index)" = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d" +-"checksum mio 0.6.22 (registry+https://github.com/rust-lang/crates.io-index)" = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430" +-"checksum mio-named-pipes 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "0840c1c50fd55e521b247f949c241c9997709f23bd7f023b9762cd561e935656" +-"checksum mio-uds 0.6.8 (registry+https://github.com/rust-lang/crates.io-index)" = "afcb699eb26d4332647cc848492bbc15eafb26f08d0304550d5aa1f612e066f0" +-"checksum miow 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919" +-"checksum miow 0.3.5 (registry+https://github.com/rust-lang/crates.io-index)" = "07b88fb9795d4d36d62a012dfbf49a8f5cf12751f36d31a9dbe66d528e58979e" +-"checksum muldiv 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "0419348c027fa7be448d2ae7ea0e4e04c2334c31dc4e74ab29f00a2a7ca69204" +-"checksum multimap 0.8.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d8883adfde9756c1d30b0f519c9b8c502a94b41ac62f696453c37c7fc0a958ce" +-"checksum nalgebra 0.18.1 (registry+https://github.com/rust-lang/crates.io-index)" = "aaa9fddbc34c8c35dd2108515587b8ce0cab396f17977b8c738568e4edb521a2" +-"checksum net2 0.2.34 (registry+https://github.com/rust-lang/crates.io-index)" = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7" +-"checksum nix 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "a2c5afeb0198ec7be8569d666644b574345aad2e95a53baf3a532da3e0f3fb32" +-"checksum nom 5.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "ffb4262d26ed83a1c0a33a38fe2bb15797329c85770da05e6b828ddb782627af" +-"checksum num 0.1.42 (registry+https://github.com/rust-lang/crates.io-index)" = "4703ad64153382334aa8db57c637364c322d3372e097840c72000dabdcf6156e" +-"checksum num-bigint 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)" = "090c7f9998ee0ff65aa5b723e4009f7b217707f1fb5ea551329cc4d6231fb304" +-"checksum num-complex 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b6b19411a9719e753aff12e5187b74d60d3dc449ec3f4dc21e3989c3f554bc95" +-"checksum num-integer 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "8d59457e662d541ba17869cf51cf177c0b5f0cbf476c66bdc90bf1edac4f875b" +-"checksum num-iter 0.1.41 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e6b7c748f995c4c29c5f5ae0248536e04a5739927c74ec0fa564805094b9f" +-"checksum num-rational 0.2.4 (registry+https://github.com/rust-lang/crates.io-index)" = "5c000134b5dbf44adc5cb772486d335293351644b801551abe8f75c84cfa4aef" +-"checksum num-traits 0.2.12 (registry+https://github.com/rust-lang/crates.io-index)" = "ac267bcc07f48ee5f8935ab0d24f316fb722d7a1292e2913f0cc196b29ffd611" +-"checksum num_cpus 1.13.0 (registry+https://github.com/rust-lang/crates.io-index)" = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3" +-"checksum ogg 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d79f1db9148be9d0e174bb3ac890f6030fcb1ed947267c5a91ee4c91b5a91e15" +-"checksum ogg-sys 0.0.9 (registry+https://github.com/rust-lang/crates.io-index)" = "a95b8c172e17df1a41bf8d666301d3b2c4efeb90d9d0415e2a4dc0668b35fdb2" +-"checksum once_cell 1.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "0b631f7e854af39a1739f401cf34a8a013dfe09eac4fa4dba91e9768bd28168d" +-"checksum opaque-debug 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "2839e79665f131bdb5782e51f2c6c9599c133c6098982a54c794358bf432529c" +-"checksum parking_lot 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "f842b1982eb6c2fe34036a4fbfb06dd185a3f5c8edfaacdf7d1ea10b07de6252" +-"checksum parking_lot_core 0.6.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b876b1b9e7ac6e1a74a6da34d25c42e17e8862aa409cbbbdcfc8d86c6f3bc62b" +-"checksum paste 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "45ca20c77d80be666aef2b45486da86238fabe33e38306bd3118fe4af33fa880" +-"checksum paste-impl 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d95a7db200b97ef370c8e6de0088252f7e0dfff7d047a28528e47456c0fc98b6" +-"checksum pbkdf2 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "006c038a43a45995a9670da19e67600114740e8511d4333bf97a56e66a7542d9" +-"checksum peeking_take_while 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" +-"checksum percent-encoding 1.0.1 (registry+https://github.com/rust-lang/crates.io-index)" = "31010dd2e1ac33d5b46a5b413495239882813e0369f8ed8a5e266f173602f831" +-"checksum pin-project 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17" +-"checksum pin-project-internal 0.4.22 (registry+https://github.com/rust-lang/crates.io-index)" = "6a0ffd45cf79d88737d7cc85bfd5d2894bee1139b356e616fe85dc389c61aaf7" +-"checksum pin-utils 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" +-"checksum pkg-config 0.3.18 (registry+https://github.com/rust-lang/crates.io-index)" = "d36492546b6af1463394d46f0c834346f31548646f6ba10849802c9c9a27ac33" +-"checksum portaudio-rs 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "cdb6b5eff96ccc9bf44d34c379ab03ae944426d83d1694345bdf8159d561d562" +-"checksum portaudio-sys 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "5194a4fa953b4ffd851c320ef6f0484cd7278cb7169ea9d6c433e49b23f7b7f5" +-"checksum ppv-lite86 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea" +-"checksum proc-macro-hack 0.5.16 (registry+https://github.com/rust-lang/crates.io-index)" = "7e0456befd48169b9f13ef0f0ad46d492cf9d2dbb918bcf38e01eed4ce3ec5e4" +-"checksum proc-macro-nested 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "eba180dafb9038b050a4c280019bbedf9f2467b61e5d892dcad585bb57aadc5a" +-"checksum proc-macro2 0.4.30 (registry+https://github.com/rust-lang/crates.io-index)" = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +-"checksum proc-macro2 1.0.19 (registry+https://github.com/rust-lang/crates.io-index)" = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12" +-"checksum protobuf 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "8e86d370532557ae7573551a1ec8235a0f8d6cb276c7c9e6aa490b511c447485" +-"checksum protobuf-codegen 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "de113bba758ccf2c1ef816b127c958001b7831136c9bc3f8e9ec695ac4e82b0c" +-"checksum protobuf-codegen-pure 2.14.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d1a4febc73bf0cada1d77c459a0c8e5973179f1cfd5b0f1ab789d45b17b6440" +-"checksum quick-error 1.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" +-"checksum quote 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +-"checksum quote 1.0.7 (registry+https://github.com/rust-lang/crates.io-index)" = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37" +-"checksum rand 0.3.23 (registry+https://github.com/rust-lang/crates.io-index)" = "64ac302d8f83c0c1974bf758f6b041c6c8ada916fbb44a609158ca8b064cc76c" +-"checksum rand 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)" = "552840b97013b1a26992c11eac34bdd778e464601a4c2054b5f0bff7c6761293" +-"checksum rand 0.5.6 (registry+https://github.com/rust-lang/crates.io-index)" = "c618c47cd3ebd209790115ab837de41425723956ad3ce2e6a7f09890947cacb9" +-"checksum rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)" = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca" +-"checksum rand 0.7.3 (registry+https://github.com/rust-lang/crates.io-index)" = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +-"checksum rand_chacha 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "556d3a1ca6600bfcbab7c7c91ccb085ac7fbbcd70e008a98742e7847f4f7bcef" +-"checksum rand_chacha 0.2.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +-"checksum rand_core 0.3.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6fdeb83b075e8266dcc8762c22776f6877a63111121f5f8c7411e5be7eed4b" +-"checksum rand_core 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "9c33a3c44ca05fa6f1807d8e6743f3824e8509beca625669633be0acbdf509dc" +-"checksum rand_core 0.5.1 (registry+https://github.com/rust-lang/crates.io-index)" = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +-"checksum rand_hc 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7b40677c7be09ae76218dc623efbf7b18e34bced3f38883af07bb75630a21bc4" +-"checksum rand_hc 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +-"checksum rand_isaac 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "ded997c9d5f13925be2a6fd7e66bf1872597f759fd9dd93513dd7e92e5a5ee08" +-"checksum rand_jitter 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b" +-"checksum rand_os 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "7b75f676a1e053fc562eafbb47838d67c84801e38fc1ba459e8f180deabd5071" +-"checksum rand_pcg 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "abf9b09b01790cfe0364f52bf32995ea3c39f4d2dd011eac241d2914146d0b44" +-"checksum rand_xorshift 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "cbf7e9e623549b0e21f6e97cf8ecf247c1a8fd2e8a992ae265314300b2455d5c" +-"checksum rawpointer 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "60a357793950651c4ed0f3f52338f53b2f809f32d83a07f72909fa13e4c6c1e3" +-"checksum rdrand 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "678054eb77286b51581ba43620cc911abf02758c91f93f479767aed0f90458b2" +-"checksum redox_syscall 0.1.57 (registry+https://github.com/rust-lang/crates.io-index)" = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" +-"checksum regex 1.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6" +-"checksum regex-syntax 0.6.18 (registry+https://github.com/rust-lang/crates.io-index)" = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8" +-"checksum relay 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "1576e382688d7e9deecea24417e350d3062d97e32e45d70b1cde65994ff1489a" +-"checksum remove_dir_all 0.5.3 (registry+https://github.com/rust-lang/crates.io-index)" = "3acd125665422973a33ac9d3dd2df85edad0f4ae9b00dafb1a05e43a9f5ef8e7" +-"checksum rodio 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "5d0f961b254e66d147a7b550c78b01308934c97d807a34b417fd0f5a0a0f3a2d" +-"checksum rpassword 3.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c34fa7bcae7fca3c8471e8417088bbc3ad9af8066b0ecf4f3c0d98a0d772716e" +-"checksum rustc-hash 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" +-"checksum rustc_version 0.2.3 (registry+https://github.com/rust-lang/crates.io-index)" = "138e3e0acb6c9fb258b19b67cb8abd63c00679d2851805ea151465464fe9030a" +-"checksum ryu 1.0.5 (registry+https://github.com/rust-lang/crates.io-index)" = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e" +-"checksum safemem 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef703b7cb59335eae2eb93ceb664c0eb7ea6bf567079d843e09420219668e072" +-"checksum scoped-tls 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "332ffa32bf586782a3efaeb58f127980944bbc8c4d6913a86107ac2a5ab24b28" +-"checksum scopeguard 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +-"checksum sdl2 0.32.2 (registry+https://github.com/rust-lang/crates.io-index)" = "d051a07231e303f5f719da78cb6f7394f6d5b54f733aef5b0b447804a83edd7b" +-"checksum sdl2-sys 0.32.6 (registry+https://github.com/rust-lang/crates.io-index)" = "34e71125077d297d57e4c1acfe8981b5bdfbf5a20e7b589abfdcb33bf1127f86" +-"checksum semver 0.9.0 (registry+https://github.com/rust-lang/crates.io-index)" = "1d7eb9ef2c18661902cc47e535f9bc51b78acd254da71d375c2f6720d9a40403" +-"checksum semver-parser 0.7.0 (registry+https://github.com/rust-lang/crates.io-index)" = "388a1df253eca08550bef6c72392cfe7c30914bf41df5269b68cbd6ff8f570a3" +-"checksum serde 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3" +-"checksum serde_derive 1.0.114 (registry+https://github.com/rust-lang/crates.io-index)" = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e" +-"checksum serde_json 1.0.56 (registry+https://github.com/rust-lang/crates.io-index)" = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3" +-"checksum sha-1 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "f7d94d0bede923b3cea61f3f1ff57ff8cdfd77b400fb8f9998949e0cf04163df" +-"checksum sha2 0.8.2 (registry+https://github.com/rust-lang/crates.io-index)" = "a256f46ea78a0c0d9ff00077504903ac881a1dafdc20da66545699e7776b3e69" +-"checksum shannon 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7ea5b41c9427b56caa7b808cb548a04fb50bb5b9e98590b53f28064ff4174561" +-"checksum shell-words 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "39acde55a154c4cd3ae048ac78cc21c25f3a0145e44111b523279113dce0d94a" +-"checksum shlex 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "7fdf1b9db47230893d76faad238fd6097fd6d6a9245cd7a4d90dbd639536bbd2" +-"checksum signal-hook-registry 1.2.0 (registry+https://github.com/rust-lang/crates.io-index)" = "94f478ede9f64724c5d173d7bb56099ec3e2d9fc2774aac65d34b8b890405f41" +-"checksum slab 0.3.0 (registry+https://github.com/rust-lang/crates.io-index)" = "17b4fcaed89ab08ef143da37bc52adbcc04d4a69014f4c1208d6b51f0c47bc23" +-"checksum slab 0.4.2 (registry+https://github.com/rust-lang/crates.io-index)" = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8" +-"checksum smallvec 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "4c8cbcd6df1e117c2210e13ab5109635ad68a929fcbb8964dc965b76cb5ee013" +-"checksum smallvec 0.6.13 (registry+https://github.com/rust-lang/crates.io-index)" = "f7b0758c52e15a8b5e3691eae6cc559f08eee9406e548a4477ba4e67770a82b6" +-"checksum socket2 0.3.12 (registry+https://github.com/rust-lang/crates.io-index)" = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918" +-"checksum stdweb 0.1.3 (registry+https://github.com/rust-lang/crates.io-index)" = "ef5430c8e36b713e13b48a9f709cc21e046723fe44ce34587b73a830203b533e" +-"checksum stream-cipher 0.3.2 (registry+https://github.com/rust-lang/crates.io-index)" = "8131256a5896cabcf5eb04f4d6dacbe1aefda854b0d9896e09cb58829ec5638c" +-"checksum subtle 1.0.0 (registry+https://github.com/rust-lang/crates.io-index)" = "2d67a5a62ba6e01cb2192ff309324cb4875d0c451d55fe2319433abe7a05a8ee" +-"checksum syn 0.15.44 (registry+https://github.com/rust-lang/crates.io-index)" = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +-"checksum syn 1.0.35 (registry+https://github.com/rust-lang/crates.io-index)" = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0" +-"checksum synstructure 0.10.2 (registry+https://github.com/rust-lang/crates.io-index)" = "02353edf96d6e4dc81aea2d8490a7e9db177bf8acb0e951c24940bf866cb313f" +-"checksum take 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "b157868d8ac1f56b64604539990685fa7611d8fa9e5476cf0c02cf34d32917c5" +-"checksum tempfile 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9" +-"checksum termcolor 1.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f" +-"checksum time 0.1.43 (registry+https://github.com/rust-lang/crates.io-index)" = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438" +-"checksum tinyvec 0.3.3 (registry+https://github.com/rust-lang/crates.io-index)" = "53953d2d3a5ad81d9f844a32f14ebb121f50b650cd59d0ee2a07cf13c617efed" +-"checksum tokio 0.1.22 (registry+https://github.com/rust-lang/crates.io-index)" = "5a09c0b5bb588872ab2f09afa13ee6e9dac11e10a0ec9e8e3ba39a5a5d530af6" +-"checksum tokio-codec 0.1.2 (registry+https://github.com/rust-lang/crates.io-index)" = "25b2998660ba0e70d18684de5d06b70b70a3a747469af9dea7618cc59e75976b" +-"checksum tokio-core 0.1.17 (registry+https://github.com/rust-lang/crates.io-index)" = "aeeffbbb94209023feaef3c196a41cbcdafa06b4a6f893f68779bb5e53796f71" +-"checksum tokio-current-thread 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "b1de0e32a83f131e002238d7ccde18211c0a5397f60cbfffcb112868c2e0e20e" +-"checksum tokio-executor 0.1.10 (registry+https://github.com/rust-lang/crates.io-index)" = "fb2d1b8f4548dbf5e1f7818512e9c406860678f29c300cdf0ebac72d1a3a1671" +-"checksum tokio-fs 0.1.7 (registry+https://github.com/rust-lang/crates.io-index)" = "297a1206e0ca6302a0eed35b700d292b275256f596e2f3fea7729d5e629b6ff4" +-"checksum tokio-io 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "57fc868aae093479e3131e3d165c93b1c7474109d13c90ec0dda2a1bbfff0674" +-"checksum tokio-process 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)" = "382d90f43fa31caebe5d3bc6cfd854963394fff3b8cb59d5146607aaae7e7e43" +-"checksum tokio-proto 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "8fbb47ae81353c63c487030659494b295f6cb6576242f907f203473b191b0389" +-"checksum tokio-reactor 0.1.12 (registry+https://github.com/rust-lang/crates.io-index)" = "09bc590ec4ba8ba87652da2068d150dcada2cfa2e07faae270a5e0409aa51351" +-"checksum tokio-service 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "24da22d077e0f15f55162bdbdc661228c1581892f52074fb242678d015b45162" +-"checksum tokio-signal 0.2.9 (registry+https://github.com/rust-lang/crates.io-index)" = "d0c34c6e548f101053321cba3da7cbb87a610b85555884c41b07da2eb91aff12" +-"checksum tokio-sync 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "edfe50152bc8164fcc456dab7891fa9bf8beaf01c5ee7e1dd43a397c3cf87dee" +-"checksum tokio-tcp 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "98df18ed66e3b72e742f185882a9e201892407957e45fbff8da17ae7a7c51f72" +-"checksum tokio-threadpool 0.1.18 (registry+https://github.com/rust-lang/crates.io-index)" = "df720b6581784c118f0eb4310796b12b1d242a7eb95f716a8367855325c25f89" +-"checksum tokio-timer 0.2.13 (registry+https://github.com/rust-lang/crates.io-index)" = "93044f2d313c95ff1cb7809ce9a7a05735b012288a888b62d4434fd58c94f296" +-"checksum tokio-udp 0.1.6 (registry+https://github.com/rust-lang/crates.io-index)" = "e2a0b10e610b39c38b031a2fcab08e4b82f16ece36504988dcbd81dbba650d82" +-"checksum tokio-uds 0.2.7 (registry+https://github.com/rust-lang/crates.io-index)" = "ab57a4ac4111c8c9dbcf70779f6fc8bc35ae4b2454809febac840ad19bd7e4e0" +-"checksum try-lock 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ee2aa4715743892880f70885373966c83d73ef1b0838a664ef0c76fffd35e7c2" +-"checksum typenum 1.12.0 (registry+https://github.com/rust-lang/crates.io-index)" = "373c8a200f9e67a0c95e62a4f52fbf80c23b4381c05a17845531982fa99e6b33" +-"checksum unicase 2.6.0 (registry+https://github.com/rust-lang/crates.io-index)" = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +-"checksum unicode-bidi 0.3.4 (registry+https://github.com/rust-lang/crates.io-index)" = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5" +-"checksum unicode-normalization 0.1.13 (registry+https://github.com/rust-lang/crates.io-index)" = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977" +-"checksum unicode-width 0.1.8 (registry+https://github.com/rust-lang/crates.io-index)" = "9337591893a19b88d8d87f2cec1e73fad5cdfd10e5a6f349f498ad6ea2ffb1e3" +-"checksum unicode-xid 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" +-"checksum unicode-xid 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" +-"checksum url 1.7.2 (registry+https://github.com/rust-lang/crates.io-index)" = "dd4e7c0d531266369519a4aa4f399d748bd37043b00bde1e4ff1f60a120b355a" +-"checksum uuid 0.7.4 (registry+https://github.com/rust-lang/crates.io-index)" = "90dbc611eb48397705a6b0f6e917da23ae517e4d127123d2cf7674206627d32a" +-"checksum vergen 3.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "4ce50d8996df1f85af15f2cd8d33daae6e479575123ef4314a51a70a230739cb" +-"checksum version_check 0.9.2 (registry+https://github.com/rust-lang/crates.io-index)" = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed" +-"checksum void 1.0.2 (registry+https://github.com/rust-lang/crates.io-index)" = "6a02e4885ed3bc0f2de90ea6dd45ebcbb66dacffe03547fadbb0eeae2770887d" +-"checksum vorbis 0.0.14 (registry+https://github.com/rust-lang/crates.io-index)" = "5e8a194457075360557b82dac78f7ca2d65bbb6679bccfabae5f7c8c706cc776" +-"checksum vorbis-sys 0.1.0 (registry+https://github.com/rust-lang/crates.io-index)" = "3a0a8d7034313748da1d84b0adfa501f83f9ec83250f37fbacfa92a3580327c4" +-"checksum vorbisfile-sys 0.0.8 (registry+https://github.com/rust-lang/crates.io-index)" = "4f4306d7e1ac4699b55e20de9483750b90c250913188efd7484db6bfbe9042d1" +-"checksum want 0.0.4 (registry+https://github.com/rust-lang/crates.io-index)" = "a05d9d966753fa4b5c8db73fcab5eed4549cfe0e1e4e66911e5564a0085c35d1" +-"checksum wasi 0.9.0+wasi-snapshot-preview1 (registry+https://github.com/rust-lang/crates.io-index)" = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" +-"checksum winapi 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "167dc9d6949a9b857f3451275e911c3f44255842c1f7a76f33c55103a909087a" +-"checksum winapi 0.3.9 (registry+https://github.com/rust-lang/crates.io-index)" = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +-"checksum winapi-build 0.1.1 (registry+https://github.com/rust-lang/crates.io-index)" = "2d315eee3b34aca4797b2da6b13ed88266e6d612562a0c46390af8299fc699bc" +-"checksum winapi-i686-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +-"checksum winapi-util 0.1.5 (registry+https://github.com/rust-lang/crates.io-index)" = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +-"checksum winapi-x86_64-pc-windows-gnu 0.4.0 (registry+https://github.com/rust-lang/crates.io-index)" = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +-"checksum ws2_32-sys 0.2.1 (registry+https://github.com/rust-lang/crates.io-index)" = "d59cefebd0c892fa2dd6de581e937301d8552cb44489cdff035c6187cb63fa5e" +-"checksum zerocopy 0.2.8 (registry+https://github.com/rust-lang/crates.io-index)" = "992b9b31f80fd4a167f903f879b8ca43d6716cc368ea01df90538baa2dd34056" +-"checksum zerocopy-derive 0.1.4 (registry+https://github.com/rust-lang/crates.io-index)" = "b090467ecd0624026e8a6405d343ac7382592530d54881330b3fc8e400280fa5" ++ "proc-macro2 0.4.30", ++ "syn 0.15.44", ++ "synstructure", ++] diff --git a/pkgs/applications/audio/librespot/default.nix b/pkgs/applications/audio/librespot/default.nix index 13aa4fe5bc2..858d8e795e1 100644 --- a/pkgs/applications/audio/librespot/default.nix +++ b/pkgs/applications/audio/librespot/default.nix @@ -4,18 +4,17 @@ rustPlatform.buildRustPackage rec { pname = "librespot"; - version = "0.1.3"; + version = "0.1.6"; src = fetchFromGitHub { owner = "librespot-org"; repo = "librespot"; rev = "v${version}"; - sha256 = "1ixh47yvaamrpzagqsiimc3y6bi4nbym95843d23am55zkrgnmy5"; + sha256 = "153i9n3qwmmwc29f62cz8nbqrlry16iygvibm1sdnvpf0s6wk5f3"; }; - cargoSha256 = "1csls8kzzx28ng6w9vdwhnnav5sqp2m5fj430db5z306xh5acg3d"; - cargoPatches = [ ./cargo-lock.patch ]; + cargoSha256 = "11d64rpq4b5rdxk5wx0hhzgc6mvs6h2br0w3kfncfklp67vn3v4v"; cargoBuildFlags = with lib; [ "--no-default-features" diff --git a/pkgs/applications/audio/mopidy/default.nix b/pkgs/applications/audio/mopidy/default.nix index 0acc1545a8d..0deecaec7ff 100644 --- a/pkgs/applications/audio/mopidy/default.nix +++ b/pkgs/applications/audio/mopidy/default.nix @@ -21,6 +21,8 @@ lib.makeScope newScope (self: with self; { mopidy-musicbox-webclient = callPackage ./musicbox-webclient.nix { }; + mopidy-podcast = callPackage ./podcast.nix { }; + mopidy-scrobbler = callPackage ./scrobbler.nix { }; mopidy-somafm = callPackage ./somafm.nix { }; diff --git a/pkgs/applications/audio/mopidy/podcast.nix b/pkgs/applications/audio/mopidy/podcast.nix new file mode 100644 index 00000000000..8a5c4ec2b3d --- /dev/null +++ b/pkgs/applications/audio/mopidy/podcast.nix @@ -0,0 +1,31 @@ +{ lib, python3Packages, mopidy }: + +python3Packages.buildPythonApplication rec { + pname = "mopidy-podcast"; + version = "3.0.0"; + + src = python3Packages.fetchPypi { + inherit version; + pname = "Mopidy-Podcast"; + sha256 = "1z2b523yvdpcf8p7m7kczrvaw045lmxzhq4qj00dflxa2yw61qxr"; + }; + + propagatedBuildInputs = [ + mopidy + python3Packages.cachetools + python3Packages.uritools + ]; + + checkInputs = with python3Packages; [ + pytestCheckHook + ]; + + meta = with lib; { + homepage = "https://github.com/tkem/mopidy-podcast"; + description = "Mopidy extension for browsing and playing podcasts"; + license = licenses.asl20; + maintainers = [ + maintainers.daneads + ]; + }; +} diff --git a/pkgs/applications/audio/musikcube/default.nix b/pkgs/applications/audio/musikcube/default.nix index 4a80ea09878..c8e18c03c1e 100644 --- a/pkgs/applications/audio/musikcube/default.nix +++ b/pkgs/applications/audio/musikcube/default.nix @@ -4,7 +4,7 @@ , boost , curl , fetchFromGitHub -, ffmpeg_3 +, ffmpeg , lame , libev , libmicrohttpd @@ -17,13 +17,13 @@ stdenv.mkDerivation rec { pname = "musikcube"; - version = "0.96.5"; + version = "0.96.7"; src = fetchFromGitHub { owner = "clangen"; repo = pname; rev = version; - sha256 = "sha256-GxMQPP8i/NWvduf10f+xVyuG666pChj9RsiF4jfygyY="; + sha256 = "1y00vwn1h10cfflxrm5bk271ak9gilhjycgi44hlkkhmf5bdgn35"; }; nativeBuildInputs = [ @@ -34,7 +34,7 @@ stdenv.mkDerivation rec { alsaLib boost curl - ffmpeg_3 + ffmpeg lame libev libmicrohttpd diff --git a/pkgs/applications/audio/ocenaudio/default.nix b/pkgs/applications/audio/ocenaudio/default.nix index d770396a6ad..68edf99e010 100644 --- a/pkgs/applications/audio/ocenaudio/default.nix +++ b/pkgs/applications/audio/ocenaudio/default.nix @@ -11,17 +11,17 @@ stdenv.mkDerivation rec { pname = "ocenaudio"; - version = "3.10.2"; + version = "3.10.6"; src = fetchurl { url = "https://www.ocenaudio.com/downloads/index.php/ocenaudio_debian9_64.deb?version=${version}"; - sha256 = "sha256-mmo6/zc/3R8ptXfY01RKUOLgmDhWTHiYBMlGqpdMTAo="; + sha256 = "0fgvm1xw2kgrqj3w6slpfxbb3pw9k8i0dz16q9d5d8gyyvr2mh8g"; }; - nativeBuildInputs = [ autoPatchelfHook qt5.qtbase + qt5.wrapQtAppsHook libjack2 libpulseaudio bzip2 @@ -33,7 +33,6 @@ stdenv.mkDerivation rec { dontUnpack = true; dontBuild = true; dontStrip = true; - dontWrapQtApps = true; installPhase = '' mkdir -p $out diff --git a/pkgs/applications/audio/quodlibet/default.nix b/pkgs/applications/audio/quodlibet/default.nix index 2110a0deb24..738bf161cd5 100644 --- a/pkgs/applications/audio/quodlibet/default.nix +++ b/pkgs/applications/audio/quodlibet/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, python3, wrapGAppsHook, gettext, libsoup, gnome3, gtk3, gdk-pixbuf, librsvg, tag ? "", xvfb_run, dbus, glibcLocales, glib, glib-networking, gobject-introspection, hicolor-icon-theme, gst_all_1, withGstPlugins ? true, - xineBackend ? false, xineLib, + xineBackend ? false, xine-lib, withDbusPython ? false, withPyInotify ? false, withMusicBrainzNgs ? false, withPahoMqtt ? false, webkitgtk ? null, keybinder3 ? null, gtksourceview ? null, libmodplug ? null, kakasi ? null, libappindicator-gtk3 ? null }: @@ -23,7 +23,7 @@ python3.pkgs.buildPythonApplication rec { checkInputs = [ gdk-pixbuf hicolor-icon-theme ] ++ (with python3.pkgs; [ pytest pytest_xdist polib xvfb_run dbus.daemon glibcLocales ]); buildInputs = [ gnome3.adwaita-icon-theme libsoup glib glib-networking gtk3 webkitgtk gdk-pixbuf keybinder3 gtksourceview libmodplug libappindicator-gtk3 kakasi gobject-introspection ] - ++ (if xineBackend then [ xineLib ] else with gst_all_1; + ++ (if xineBackend then [ xine-lib ] else with gst_all_1; [ gstreamer gst-plugins-base ] ++ optionals withGstPlugins [ gst-plugins-good gst-plugins-ugly gst-plugins-bad ]); propagatedBuildInputs = with python3.pkgs; [ pygobject3 pycairo mutagen gst-python feedparser ] diff --git a/pkgs/applications/blockchains/bitcoin.nix b/pkgs/applications/blockchains/bitcoin.nix index b241fcc49ee..1f222477ab2 100644 --- a/pkgs/applications/blockchains/bitcoin.nix +++ b/pkgs/applications/blockchains/bitcoin.nix @@ -22,7 +22,7 @@ with lib; let - version = "0.21.0"; + version = "0.21.1"; majorMinorVersion = versions.majorMinor version; desktop = fetchurl { url = "https://raw.githubusercontent.com/bitcoin-core/packaging/${majorMinorVersion}/debian/bitcoin-qt.desktop"; @@ -38,7 +38,7 @@ stdenv.mkDerivation rec { "https://bitcoincore.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" "https://bitcoin.org/bin/bitcoin-core-${version}/bitcoin-${version}.tar.gz" ]; - sha256 = "1a91202c62ee49fb64d57a52b8d6d01cd392fffcbef257b573800f9289655f37"; + sha256 = "caff23449220cf45753f312cefede53a9eac64000bb300797916526236b6a1e0"; }; nativeBuildInputs = diff --git a/pkgs/applications/blockchains/miniscript/default.nix b/pkgs/applications/blockchains/miniscript/default.nix new file mode 100644 index 00000000000..0520101c4cc --- /dev/null +++ b/pkgs/applications/blockchains/miniscript/default.nix @@ -0,0 +1,29 @@ +{ stdenv, lib, fetchFromGitHub }: + +stdenv.mkDerivation rec { + pname = "miniscript"; + version = "unstable-2020-12-01"; + + src = fetchFromGitHub { + owner = "sipa"; + repo = pname; + rev = "02682a398a35b410571b10cde7f39837141ddad6"; + sha256 = "079jz4g88cfzfm9a6ykby9haxwcs033c1288mgr8cl2hw4qd2sjl"; + }; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin + cp miniscript $out/bin/miniscript + runHook postInstall + ''; + + meta = with lib; { + description = "Compiler and inspector for the miniscript Bitcoin policy language"; + longDescription = "Miniscript is a language for writing (a subset of) Bitcoin Scripts in a structured way, enabling analysis, composition, generic signing and more."; + homepage = "http://bitcoin.sipa.be/miniscript/"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ RaghavSood jb55 ]; + }; +} diff --git a/pkgs/applications/blockchains/monero-gui/default.nix b/pkgs/applications/blockchains/monero-gui/default.nix index 5f430bc8869..47df64b514f 100644 --- a/pkgs/applications/blockchains/monero-gui/default.nix +++ b/pkgs/applications/blockchains/monero-gui/default.nix @@ -17,22 +17,15 @@ with lib; -let - arch = if stdenv.isx86_64 then "x86-64" - else if stdenv.isi686 then "i686" - else if stdenv.isAarch64 then "armv8-a" - else throw "unsupported architecture"; -in - stdenv.mkDerivation rec { pname = "monero-gui"; - version = "0.17.1.9"; + version = "0.17.2.1"; src = fetchFromGitHub { owner = "monero-project"; repo = "monero-gui"; rev = "v${version}"; - sha256 = "0143mmxk0jfb5pmjlx6v0knvf8v49kmkpjxlp6rw8lwnlf71xadn"; + sha256 = "1apjvpvn6hg0k0ak6wpg4prcdcslnb6fqhzzg2p4iy846f0ai9ji"; }; nativeBuildInputs = [ @@ -58,7 +51,10 @@ stdenv.mkDerivation rec { chmod -R +w source/monero ''; - patches = [ ./move-log-file.patch ]; + patches = [ + ./move-log-file.patch + ./use-system-libquirc.patch + ]; postPatch = '' # set monero-gui version @@ -69,17 +65,15 @@ stdenv.mkDerivation rec { substituteInPlace src/daemon/DaemonManager.cpp \ --replace 'QApplication::applicationDirPath() + "' '"${monero}/bin' - # only build external deps, *not* the full monero + # 1: only build external deps, *not* the full monero + # 2: use nixpkgs libraries substituteInPlace CMakeLists.txt \ --replace 'add_subdirectory(monero)' \ - 'add_subdirectory(monero EXCLUDE_FROM_ALL)' - - # use nixpkgs quirc - substituteInPlace CMakeLists.txt \ + 'add_subdirectory(monero EXCLUDE_FROM_ALL)' \ --replace 'add_subdirectory(external)' "" ''; - cmakeFlags = [ "-DARCH=${arch}" ]; + cmakeFlags = [ "-DARCH=default" ]; desktopItem = makeDesktopItem { name = "monero-wallet-gui"; diff --git a/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch b/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch new file mode 100644 index 00000000000..b60057294b1 --- /dev/null +++ b/pkgs/applications/blockchains/monero-gui/use-system-libquirc.patch @@ -0,0 +1,37 @@ +diff --git a/src/QR-Code-scanner/CMakeLists.txt b/src/QR-Code-scanner/CMakeLists.txt +index 15e288df..2e9b3305 100644 +--- a/src/QR-Code-scanner/CMakeLists.txt ++++ b/src/QR-Code-scanner/CMakeLists.txt +@@ -1,11 +1,18 @@ ++find_library(QUIRC_LIBRARY quirc REQUIRED) ++find_path(QUIRC_INCLUDE_DIR quirc.h REQUIRED) ++ + add_library(qrdecoder STATIC + Decoder.cpp + ) ++target_include_directories(qrdecoder ++ PUBLIC ++ ${QUIRC_INCLUDE_DIR} ++) + target_link_libraries(qrdecoder + PUBLIC + Qt5::Gui + PRIVATE +- quirc ++ ${QUIRC_LIBRARY} + ) + + if(WITH_SCANNER) +diff --git a/src/QR-Code-scanner/Decoder.cpp b/src/QR-Code-scanner/Decoder.cpp +index 1bb99140..353ca189 100644 +--- a/src/QR-Code-scanner/Decoder.cpp ++++ b/src/QR-Code-scanner/Decoder.cpp +@@ -30,7 +30,7 @@ + + #include + +-#include "quirc.h" ++#include + + QrDecoder::QrDecoder() + : m_qr(quirc_new()) diff --git a/pkgs/applications/blockchains/monero/default.nix b/pkgs/applications/blockchains/monero/default.nix index 3be8b908c7a..2a12bfe872b 100644 --- a/pkgs/applications/blockchains/monero/default.nix +++ b/pkgs/applications/blockchains/monero/default.nix @@ -17,13 +17,13 @@ assert trezorSupport -> all (x: x!=null) [ libusb1 protobuf python3 ]; stdenv.mkDerivation rec { pname = "monero"; - version = "0.17.1.9"; + version = "0.17.2.0"; src = fetchFromGitHub { owner = "monero-project"; repo = "monero"; rev = "v${version}"; - sha256 = "0jqss4csvkcrhrmaa3vrnyv6yiwqpbfw7037clx9xcfm4qrrfiwy"; + sha256 = "0jwlmrpzisvw1c06cvd5b3s3hd4w0pa1qmrypfwah67qj3x6hnb6"; fetchSubmodules = true; }; diff --git a/pkgs/applications/editors/bluej/default.nix b/pkgs/applications/editors/bluej/default.nix index 9b28de9440f..a34d6983b2f 100644 --- a/pkgs/applications/editors/bluej/default.nix +++ b/pkgs/applications/editors/bluej/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "bluej"; - version = "5.0.0"; + version = "5.0.1"; src = fetchurl { # We use the deb here. First instinct might be to go for the "generic" JAR # download, but that is actually a graphical installer that is much harder # to unpack than the deb. url = "https://www.bluej.org/download/files/BlueJ-linux-${builtins.replaceStrings ["."] [""] version}.deb"; - sha256 = "sha256-U81FIf67Qm/86+hA9iUCHt61dxiZsTkkequlVjft6/0="; + sha256 = "sha256-KhNhJ2xsw1g2yemwP6NQmJvk4cxZAQQNPEUBuLso5qM="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/editors/emacs-modes/emacs2nix.nix b/pkgs/applications/editors/emacs-modes/emacs2nix.nix index e29a19713bd..cc82646870c 100644 --- a/pkgs/applications/editors/emacs-modes/emacs2nix.nix +++ b/pkgs/applications/editors/emacs-modes/emacs2nix.nix @@ -4,8 +4,8 @@ let src = pkgs.fetchgit { url = "https://github.com/ttuegel/emacs2nix.git"; fetchSubmodules = true; - rev = "b815a9323c1f58f6c163a1f968939c57a8b6cfa0"; - sha256 = "183xlmhjmj4z2zssc0pw990h7bf3bam8zqswnf1zcsyp8z7yrl5g"; + rev = "860da04ca91cbb69c9b881a54248d16bdaaf9923"; + sha256 = "1r3xmyk9rfgx7ln69dk8mgbnh3awcalm3r1c5ia2shlsrymvv1df"; }; in pkgs.mkShell { diff --git a/pkgs/applications/editors/emacs-modes/melpa-packages.nix b/pkgs/applications/editors/emacs-modes/melpa-packages.nix index e5e2bac964f..5a1c9168bc4 100644 --- a/pkgs/applications/editors/emacs-modes/melpa-packages.nix +++ b/pkgs/applications/editors/emacs-modes/melpa-packages.nix @@ -362,6 +362,7 @@ let zmq = super.zmq.overrideAttrs (old: { stripDebugList = [ "share" ]; preBuild = '' + export EZMQ_LIBDIR=$(mktemp -d) make ''; nativeBuildInputs = [ @@ -372,7 +373,7 @@ let (pkgs.zeromq.override { enableDrafts = true; }) ]; postInstall = '' - mv $out/share/emacs/site-lisp/elpa/zmq-*/src/.libs/emacs-zmq.so $out/share/emacs/site-lisp/elpa/zmq-* + mv $EZMQ_LIBDIR/emacs-zmq.* $out/share/emacs/site-lisp/elpa/zmq-* rm -r $out/share/emacs/site-lisp/elpa/zmq-*/src rm $out/share/emacs/site-lisp/elpa/zmq-*/Makefile ''; diff --git a/pkgs/applications/editors/emacs-modes/update-melpa.el b/pkgs/applications/editors/emacs-modes/update-melpa.el index b315777620e..c8c1bfee566 100644 --- a/pkgs/applications/editors/emacs-modes/update-melpa.el +++ b/pkgs/applications/editors/emacs-modes/update-melpa.el @@ -99,7 +99,10 @@ return Promise to resolve in that process." ("github" (list "nix-prefetch-url" "--unpack" (concat "https://github.com/" repo "/archive/" commit ".tar.gz"))) ("gitlab" (list "nix-prefetch-url" - "--unpack" (concat "https://gitlab.com/" repo "/repository/archive.tar.gz?ref=" commit))) + "--unpack" (concat "https://gitlab.com/api/v4/projects/" + (url-hexify-string repo) + "/repository/archive.tar.gz?ref=" + commit))) ("bitbucket" (list "nix-prefetch-hg" (concat "https://bitbucket.com/" repo) commit)) ("hg" (list "nix-prefetch-hg" diff --git a/pkgs/applications/editors/jetbrains/default.nix b/pkgs/applications/editors/jetbrains/default.nix index 16d7bf7dd16..32159e3ebd2 100644 --- a/pkgs/applications/editors/jetbrains/default.nix +++ b/pkgs/applications/editors/jetbrains/default.nix @@ -242,12 +242,12 @@ in clion = buildClion rec { name = "clion-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "C/C++ IDE. New. Intelligent. Cross-platform"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/cpp/CLion-${version}.tar.gz"; - sha256 = "1qq2k14pf2qy93y1xchlv08vvx99zcml8bdcx3h6jnjz6d7gz0px"; /* updated by script */ + sha256 = "0xzlkf3gq6fcb0q9mcj8k39880l8h21pb1lz0xl2dqj8cfwpws9h"; /* updated by script */ }; wmClass = "jetbrains-clion"; update-channel = "CLion RELEASE"; # channel's id as in http://www.jetbrains.com/updates/updates.xml @@ -255,12 +255,12 @@ in datagrip = buildDataGrip rec { name = "datagrip-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Your Swiss Army Knife for Databases and SQL"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/datagrip/${name}.tar.gz"; - sha256 = "11am11lkrhgfianr1apkkl4mn8gcsf6p1vz47y7lz4rfm05ac4gj"; /* updated by script */ + sha256 = "0smg0qbk3mnm2543w0nlvnyvbwmprf0p3z2spwrmcmfagv50crrx"; /* updated by script */ }; wmClass = "jetbrains-datagrip"; update-channel = "DataGrip RELEASE"; @@ -268,12 +268,12 @@ in goland = buildGoland rec { name = "goland-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Up and Coming Go IDE"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/go/${name}.tar.gz"; - sha256 = "1hxid7k5b26hiwwdxbvhi1fzhlrvm1xsd5gb0vj0g5zw658y2lzz"; /* updated by script */ + sha256 = "02fyrq4px9w34amincgjgm6maxpxn445j5h4nfbskx7z428ynx25"; /* updated by script */ }; wmClass = "jetbrains-goland"; update-channel = "GoLand RELEASE"; @@ -281,12 +281,12 @@ in idea-community = buildIdea rec { name = "idea-community-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Integrated Development Environment (IDE) by Jetbrains, community edition"; license = lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIC-${version}.tar.gz"; - sha256 = "1d7m39rzdgh2fyx50rpifqfsdmvfpi04hjp52pl76m35gyb5hsvs"; /* updated by script */ + sha256 = "1say19p7kgx4b2ccs9bv61phllzhl8gmrd1fp1a5cnagya7vl1c5"; /* updated by script */ }; wmClass = "jetbrains-idea-ce"; update-channel = "IntelliJ IDEA RELEASE"; @@ -294,12 +294,12 @@ in idea-ultimate = buildIdea rec { name = "idea-ultimate-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Integrated Development Environment (IDE) by Jetbrains, requires paid license"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/idea/ideaIU-${version}-no-jbr.tar.gz"; - sha256 = "062kaph42xs5hc01sbmry4cm7nkyjks43qr5m7pbj5a2bgd7zzgx"; /* updated by script */ + sha256 = "19zi4njz79z8gi458kz1m0sia79y3rhbayix4rmh93mwfc0npkii"; /* updated by script */ }; wmClass = "jetbrains-idea"; update-channel = "IntelliJ IDEA RELEASE"; @@ -320,12 +320,12 @@ in phpstorm = buildPhpStorm rec { name = "phpstorm-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.2"; /* updated by script */ description = "Professional IDE for Web and PHP developers"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webide/PhpStorm-${version}.tar.gz"; - sha256 = "052m7mqa1s548my0gda9y2mysi2ijq27c9b3bskrwqsf1pm5ry63"; /* updated by script */ + sha256 = "02s75fqd9hfh302zha4jw6qynpgm9nkrlq7s78nk3fc3d3hw8v5y"; /* updated by script */ }; wmClass = "jetbrains-phpstorm"; update-channel = "PhpStorm RELEASE"; @@ -333,12 +333,12 @@ in pycharm-community = buildPycharm rec { name = "pycharm-community-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "PyCharm Community Edition"; license = lib.licenses.asl20; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "1iiglh7s2zm37kj6hzlzxb1jnzh2p0j1f2zzhg3nqyrrakfbyq3h"; /* updated by script */ + sha256 = "04bs9sz872b0h1zzax23irvj6q5wxnzp6fl4f177j94kh4116cqh"; /* updated by script */ }; wmClass = "jetbrains-pycharm-ce"; update-channel = "PyCharm RELEASE"; @@ -346,12 +346,12 @@ in pycharm-professional = buildPycharm rec { name = "pycharm-professional-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "PyCharm Professional Edition"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/python/${name}.tar.gz"; - sha256 = "1n3b4mdygzal7w88gwka5wh5jp09bh2zmm4n5rz9s7hr2srz71mz"; /* updated by script */ + sha256 = "0wc9j7nilakmm7scf7a71zb3k9vixgih05ni3n3pp4iznvwb3nxg"; /* updated by script */ }; wmClass = "jetbrains-pycharm"; update-channel = "PyCharm RELEASE"; @@ -359,12 +359,12 @@ in rider = buildRider rec { name = "rider-${version}"; - version = "2021.1.1"; /* updated by script */ + version = "2021.1.2"; /* updated by script */ description = "A cross-platform .NET IDE based on the IntelliJ platform and ReSharper"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/rider/JetBrains.Rider-${version}.tar.gz"; - sha256 = "00kdbsjw9hmq7x94pjscslv0b412g8l0jbvyi7jiyay8xc6wiaaj"; /* updated by script */ + sha256 = "1a28pi18j0cb2wxhw1vnfg9gqsgf2kyfg0hl4xgqp50gzv7i3aam"; /* updated by script */ }; wmClass = "jetbrains-rider"; update-channel = "Rider RELEASE"; @@ -372,12 +372,12 @@ in ruby-mine = buildRubyMine rec { name = "ruby-mine-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "The Most Intelligent Ruby and Rails IDE"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/ruby/RubyMine-${version}.tar.gz"; - sha256 = "12mkb51x1w5wbx436pfnfzcad10qd53y43n0p4l2zg9yx985gm7v"; /* updated by script */ + sha256 = "05sfjf5523idsl7byc7400r4xqv1d65gpmkh5x0lbgf1k3bx2wlm"; /* updated by script */ }; wmClass = "jetbrains-rubymine"; update-channel = "RubyMine RELEASE"; @@ -385,12 +385,12 @@ in webstorm = buildWebStorm rec { name = "webstorm-${version}"; - version = "2021.1"; /* updated by script */ + version = "2021.1.1"; /* updated by script */ description = "Professional IDE for Web and JavaScript development"; license = lib.licenses.unfree; src = fetchurl { url = "https://download.jetbrains.com/webstorm/WebStorm-${version}.tar.gz"; - sha256 = "15i521qj2b0y1viqr0xx815ckpq359j6nars4xxq8xvy7cg729yc"; /* updated by script */ + sha256 = "1hici40qsxj2fw29g68i6hr1vhr0h7xrlhkialy74ah53wi7myz1"; /* updated by script */ }; wmClass = "jetbrains-webstorm"; update-channel = "WebStorm RELEASE"; diff --git a/pkgs/applications/editors/neovim/default.nix b/pkgs/applications/editors/neovim/default.nix index 3e5de3d5fc1..1b4835064f9 100644 --- a/pkgs/applications/editors/neovim/default.nix +++ b/pkgs/applications/editors/neovim/default.nix @@ -6,7 +6,7 @@ # now defaults to false because some tests can be flaky (clipboard etc) , doCheck ? false -, nodejs ? null, fish ? null, python ? null +, nodejs ? null, fish ? null, python3 ? null }: with lib; @@ -19,7 +19,7 @@ let ] )); - pyEnv = python.withPackages(ps: [ ps.pynvim ps.msgpack ]); + pyEnv = python3.withPackages(ps: with ps; [ pynvim msgpack ]); # FIXME: this is verry messy and strange. # see https://github.com/NixOS/nixpkgs/pull/80528 diff --git a/pkgs/applications/editors/neovim/neovim-qt.nix b/pkgs/applications/editors/neovim/neovim-qt.nix index d925ddd2a52..0a4d17d997b 100644 --- a/pkgs/applications/editors/neovim/neovim-qt.nix +++ b/pkgs/applications/editors/neovim/neovim-qt.nix @@ -1,5 +1,5 @@ { lib, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper -, msgpack, neovim, pythonPackages, qtbase }: +, msgpack, neovim, python3Packages, qtbase }: mkDerivation rec { pname = "neovim-qt-unwrapped"; @@ -20,7 +20,7 @@ mkDerivation rec { buildInputs = [ neovim.unwrapped # only used to generate help tags at build time qtbase - ] ++ (with pythonPackages; [ + ] ++ (with python3Packages; [ jinja2 python msgpack ]); diff --git a/pkgs/applications/editors/neovim/neovim-remote.nix b/pkgs/applications/editors/neovim/neovim-remote.nix index 867e2275128..2b1281ae21b 100644 --- a/pkgs/applications/editors/neovim/neovim-remote.nix +++ b/pkgs/applications/editors/neovim/neovim-remote.nix @@ -1,11 +1,14 @@ -{ lib, fetchFromGitHub, pythonPackages }: +{ lib +, fetchFromGitHub +, python3 +, neovim +}: with lib; -pythonPackages.buildPythonApplication rec { +with python3.pkgs; buildPythonApplication rec { pname = "neovim-remote"; version = "2.4.0"; - disabled = !pythonPackages.isPy3k; src = fetchFromGitHub { owner = "mhinz"; @@ -14,12 +17,24 @@ pythonPackages.buildPythonApplication rec { sha256 = "0jlw0qksak4bdzddpsj74pm2f2bgpj3cwrlspdjjy0j9qzg0mpl9"; }; - propagatedBuildInputs = with pythonPackages; [ + propagatedBuildInputs = [ pynvim psutil setuptools ]; + checkInputs = [ + neovim + pytestCheckHook + ]; + + disabledTests = [ + # these tests get stuck and never return + "test_escape_filenames_properly" + "test_escape_single_quotes_in_filenames" + "test_escape_double_quotes_in_filenames" + ]; + meta = { description = "A tool that helps controlling nvim processes from a terminal"; homepage = "https://github.com/mhinz/neovim-remote/"; diff --git a/pkgs/applications/editors/neovim/qt.nix b/pkgs/applications/editors/neovim/qt.nix index 5210b6b67c8..1da7e7e966e 100644 --- a/pkgs/applications/editors/neovim/qt.nix +++ b/pkgs/applications/editors/neovim/qt.nix @@ -1,5 +1,4 @@ -{ lib, stdenv, mkDerivation, fetchFromGitHub, cmake, doxygen, makeWrapper -, msgpack, neovim, pythonPackages, qtbase, neovim-qt-unwrapped }: +{ stdenv, makeWrapper, neovim, neovim-qt-unwrapped }: let unwrapped = neovim-qt-unwrapped; diff --git a/pkgs/applications/editors/neovim/utils.nix b/pkgs/applications/editors/neovim/utils.nix index d992ccd3f6a..6d04fa6851a 100644 --- a/pkgs/applications/editors/neovim/utils.nix +++ b/pkgs/applications/editors/neovim/utils.nix @@ -4,7 +4,6 @@ , neovim-unwrapped , bundlerEnv , ruby -, pythonPackages , python3Packages , writeText , wrapNeovimUnstable @@ -48,12 +47,6 @@ let requiredPlugins = vimUtils.requiredPlugins configure; getDeps = attrname: map (plugin: plugin.${attrname} or (_: [ ])); - pluginPython2Packages = getDeps "pythonDependencies" requiredPlugins; - python2Env = pythonPackages.python.withPackages (ps: - [ ps.pynvim ] - ++ (extraPython2Packages ps) - ++ (lib.concatMap (f: f ps) pluginPython2Packages)); - pluginPython3Packages = getDeps "python3Dependencies" requiredPlugins; python3Env = python3Packages.python.withPackages (ps: [ ps.pynvim ] @@ -69,7 +62,6 @@ let # While the latter tells nvim that this provider is not available hostprog_check_table = { node = withNodeJs; - python = withPython2; python3 = withPython3; ruby = withRuby; }; @@ -99,11 +91,12 @@ let manifestRc = vimUtils.vimrcContent (configure // { customRC = ""; }); neovimRcContent = vimUtils.vimrcContent configure; in + assert withPython2 -> throw "Python2 support has been removed from neovim, please remove withPython2 and extraPython2Packages."; + args // { wrapperArgs = makeWrapperArgs; inherit neovimRcContent; inherit manifestRc; - inherit python2Env; inherit python3Env; inherit withNodeJs; } // lib.optionalAttrs withRuby { @@ -120,7 +113,7 @@ let # to keep backwards compatibility legacyWrapper = neovim: { extraMakeWrapperArgs ? "" - , withPython ? true + , withPython ? false /* the function you would have passed to python.withPackages */ , extraPythonPackages ? (_: []) /* the function you would have passed to python.withPackages */ @@ -138,14 +131,14 @@ let else funOrList); res = makeNeovimConfig { - withPython2 = withPython; - extraPythonPackages = compatFun extraPythonPackages; inherit withPython3; extraPython3Packages = compatFun extraPython3Packages; inherit withNodeJs withRuby viAlias vimAlias; inherit configure; }; in + assert withPython -> throw "Python2 support has been removed from neovim, please remove withPython and extraPythonPackages."; + wrapNeovimUnstable neovim (res // { wrapperArgs = lib.escapeShellArgs ( res.wrapperArgs ++ lib.optionals (configure != {}) [ diff --git a/pkgs/applications/editors/neovim/wrapper.nix b/pkgs/applications/editors/neovim/wrapper.nix index 66127980bf6..db30832d239 100644 --- a/pkgs/applications/editors/neovim/wrapper.nix +++ b/pkgs/applications/editors/neovim/wrapper.nix @@ -3,7 +3,6 @@ , bundlerEnv, ruby , nodejs , nodePackages -, pythonPackages , python3Packages }: with lib; @@ -15,7 +14,7 @@ let # should contain all args but the binary wrapperArgs ? "" , manifestRc ? null - , withPython2 ? true, python2Env ? null + , withPython2 ? false , withPython3 ? true, python3Env ? null , withNodeJs ? false , rubyEnv ? null @@ -35,6 +34,8 @@ let [ "${neovim}/bin/nvim" "${placeholder "out"}/bin/nvim" ] ++ [ "--set" "NVIM_SYSTEM_RPLUGIN_MANIFEST" "${placeholder "out"}/rplugin.vim" ]; in + assert withPython2 -> throw "Python2 support has been removed from the neovim wrapper, please remove withPython2 and python2Env."; + symlinkJoin { name = "neovim-${lib.getVersion neovim}"; # Remove the symlinks created by symlinkJoin which we need to perform @@ -44,9 +45,6 @@ let substitute ${neovim}/share/applications/nvim.desktop $out/share/applications/nvim.desktop \ --replace 'Name=Neovim' 'Name=WrappedNeovim' '' - + optionalString withPython2 '' - makeWrapper ${python2Env}/bin/python $out/bin/nvim-python --unset PYTHONPATH - '' + optionalString withPython3 '' makeWrapper ${python3Env}/bin/python3 $out/bin/nvim-python3 --unset PYTHONPATH '' diff --git a/pkgs/applications/editors/thonny/default.nix b/pkgs/applications/editors/thonny/default.nix index 39aefe3fa16..fa71a612fa8 100644 --- a/pkgs/applications/editors/thonny/default.nix +++ b/pkgs/applications/editors/thonny/default.nix @@ -4,13 +4,13 @@ with python3.pkgs; buildPythonApplication rec { pname = "thonny"; - version = "3.3.2"; + version = "3.3.6"; src = fetchFromGitHub { owner = pname; repo = pname; rev = "v${version}"; - sha256 = "1pzy7v48x4ip8v6aqm8hl5ywx7xiqbsfypxxifih8gnlangp1n8y"; + sha256 = "0ga0pqvq3nglr4jgh8ajv0bv8c7q09h1jh6q6r5cwqa49fawkr02"; }; propagatedBuildInputs = with python3.pkgs; [ diff --git a/pkgs/applications/editors/vscode/generic.nix b/pkgs/applications/editors/vscode/generic.nix index 060078cd57b..2d8f639a0c6 100644 --- a/pkgs/applications/editors/vscode/generic.nix +++ b/pkgs/applications/editors/vscode/generic.nix @@ -1,7 +1,8 @@ { stdenv, lib, makeDesktopItem , unzip, libsecret, libXScrnSaver, libxshmfence, wrapGAppsHook , gtk2, atomEnv, at-spi2-atk, autoPatchelfHook -, systemd, fontconfig, libdbusmenu +, systemd, fontconfig, libdbusmenu, buildFHSUserEnvBubblewrap +, writeShellScriptBin # Populate passthru.tests , tests @@ -13,13 +14,14 @@ let inherit (stdenv.hostPlatform) system; -in - stdenv.mkDerivation { + unwrapped = stdenv.mkDerivation { inherit pname version src sourceRoot; passthru = { inherit executableName tests; + fhs = fhs {}; + fhsWithPackages = f: fhs { additionalPkgs = f; }; }; desktopItem = makeDesktopItem { @@ -97,4 +99,64 @@ in ''; inherit meta; - } + }; + + # Vscode and variants allow for users to download and use extensions + # which often include the usage of pre-built binaries. + # This has been an on-going painpoint for many users, as + # a full extension update cycle has to be done through nixpkgs + # in order to create or update extensions. + # See: #83288 #91179 #73810 #41189 + # + # buildFHSUserEnv allows for users to use the existing vscode + # extension tooling without significant pain. + fhs = { additionalPkgs ? pkgs: [] }: buildFHSUserEnvBubblewrap { + # also determines the name of the wrapped command + name = executableName; + + # additional libraries which are commonly needed for extensions + targetPkgs = pkgs: (with pkgs; [ + # ld-linux-x86-64-linux.so.2 and others + glibc + + # dotnet + curl + icu + libunwind + libuuid + openssl + zlib + + # mono + krb5 + ]) ++ additionalPkgs pkgs; + + # restore desktop item icons + extraInstallCommands = '' + mkdir -p $out/share/applications + for item in ${unwrapped}/share/applications/*.desktop; do + ln -s $item $out/share/applications/ + done + ''; + + runScript = "${unwrapped}/bin/${executableName}"; + + # vscode likes to kill the parent so that the + # gui application isn't attached to the terminal session + dieWithParent = false; + + passthru = { + inherit executableName; + inherit (unwrapped) pname version; # for home-manager module + }; + + meta = meta // { + description = '' + Wrapped variant of ${pname} which launches in a FHS compatible envrionment. + Should allow for easy usage of extensions without nix-specific modifications. + ''; + }; + }; +in + unwrapped + diff --git a/pkgs/applications/gis/qmapshack/default.nix b/pkgs/applications/gis/qmapshack/default.nix index ef036fb71b0..30231e7135a 100644 --- a/pkgs/applications/gis/qmapshack/default.nix +++ b/pkgs/applications/gis/qmapshack/default.nix @@ -18,13 +18,13 @@ mkDerivation rec { cmakeFlags = [ "-DROUTINO_XML_PATH=${routino}/share/routino" - "-DQUAZIP_INCLUDE_DIR=${quazip}/include/quazip5" - "-DLIBQUAZIP_LIBRARY=${quazip}/lib/libquazip.so" ]; patches = [ "${src}/FindPROJ4.patch" - "${src}/FindQuaZip5.patch" + + # Support QuaZip 1.x. + ./pr350-support-quazip-1x.patch ]; qtWrapperArgs = [ diff --git a/pkgs/applications/gis/qmapshack/pr350-support-quazip-1x.patch b/pkgs/applications/gis/qmapshack/pr350-support-quazip-1x.patch new file mode 100644 index 00000000000..82ebed14dbb --- /dev/null +++ b/pkgs/applications/gis/qmapshack/pr350-support-quazip-1x.patch @@ -0,0 +1,141 @@ +From 8fb751c656a14020ba37fb91b7f7cba3c49d8504 Mon Sep 17 00:00:00 2001 +From: kiozen +Date: Sat, 20 Mar 2021 12:14:29 +0100 +Subject: [PATCH] [QMS-349] Upgrade to Quazip Qt5 V1.x + +Simply adjusted the cmake scripts +--- + CMakeLists.txt | 2 +- + src/qmapshack/CMakeLists.txt | 27 +++++++++++++-------------- + 3 files changed, 15 insertions(+), 15 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 8d2cf127..7420d9b2 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -152,7 +152,7 @@ find_package(GDAL REQUIRED) + find_package(PROJ REQUIRED) + find_package(JPEG REQUIRED) + find_package(ROUTINO REQUIRED) +-find_package(QuaZip5 REQUIRED) ++find_package(QuaZip-Qt5 REQUIRED) + find_package(ALGLIB ) # optional as we can use our local version + + +diff --git a/src/qmapshack/CMakeLists.txt b/src/qmapshack/CMakeLists.txt +index 08eeb183..9b3836d6 100644 +--- a/src/qmapshack/CMakeLists.txt ++++ b/src/qmapshack/CMakeLists.txt +@@ -22,8 +22,8 @@ add_definitions(-DROUTINO_XML_PATH=${ROUTINO_XML_PATH}) + # All source files needed to compile + ############################################################################################### + +-set( SRCS +- CAbout.cpp ++set( SRCS ++ CAbout.cpp + CMainWindow.cpp + CSingleInstanceProxy.cpp + canvas/CCanvas.cpp +@@ -160,7 +160,7 @@ set( SRCS + gis/trk/CInvalidTrk.cpp + gis/trk/CKnownExtension.cpp + gis/trk/CListTrkPts.cpp +- gis/trk/CPropertyTrk.cpp ++ gis/trk/CPropertyTrk.cpp + gis/trk/CScrOptTrk.cpp + gis/trk/CSelectActivityColor.cpp + gis/trk/CTableTrk.cpp +@@ -272,7 +272,7 @@ set( SRCS + mouse/line/CLineOpMovePoint.cpp + mouse/line/CLineOpSelectRange.cpp + mouse/line/CScrOptEditLine.cpp +- mouse/line/CScrOptRangeLine.cpp ++ mouse/line/CScrOptRangeLine.cpp + mouse/line/ILineOp.cpp + mouse/line/IMouseEditLine.cpp + plot/CPlot.cpp +@@ -401,7 +401,7 @@ set( HDRS + gis/CGisListDB.h + gis/CGisListWks.h + gis/CGisWorkspace.h +- gis/CSelDevices.h ++ gis/CSelDevices.h + gis/IGisItem.h + gis/IGisLine.h + gis/Poi.h +@@ -512,7 +512,7 @@ set( HDRS + gis/trk/CInvalidTrk.h + gis/trk/CKnownExtension.h + gis/trk/CListTrkPts.h +- gis/trk/CPropertyTrk.h ++ gis/trk/CPropertyTrk.h + gis/trk/CScrOptTrk.h + gis/trk/CSelectActivityColor.h + gis/trk/CTableTrk.h +@@ -579,7 +579,7 @@ set( HDRS + map/CMapList.h + map/CMapMAP.h + map/CMapPathSetup.h +- map/CMapPropSetup.h ++ map/CMapPropSetup.h + map/CMapRMAP.h + map/CMapTMS.h + map/CMapVRT.h +@@ -655,7 +655,7 @@ set( HDRS + realtime/CRtSelectSource.h + realtime/CRtWorkspace.h + realtime/IRtInfo.h +- realtime/IRtRecord.h ++ realtime/IRtRecord.h + realtime/IRtSource.h + realtime/gpstether/CRtGpsTether.h + realtime/gpstether/CRtGpsTetherInfo.h +@@ -764,7 +764,7 @@ set( UIS + gis/search/IGeoSearchWebConfigDialog.ui + gis/search/ISearchExplanationDialog.ui + gis/summary/IGisSummary.ui +- gis/summary/IGisSummarySetup.ui ++ gis/summary/IGisSummarySetup.ui + gis/trk/ICombineTrk.ui + gis/trk/ICutTrk.ui + gis/trk/IDetailsTrk.ui +@@ -818,7 +818,7 @@ set( UIS + mouse/range/IActionSelect.ui + mouse/range/IRangeToolSetup.ui + mouse/range/IScrOptRangeTool.ui +- mouse/range/IScrOptRangeTrk.ui ++ mouse/range/IScrOptRangeTrk.ui + mouse/IScrOptRuler.ui + mouse/IScrOptSelect.ui + mouse/line/IScrOptEditLine.ui +@@ -899,7 +899,6 @@ include_directories( + ${PROJ_INCLUDE_DIRS} + ${ROUTINO_INCLUDE_DIRS} + ${ALGLIB_INCLUDE_DIRS} +- ${QUAZIP_INCLUDE_DIRS} + ) + + if(APPLE) +@@ -934,10 +933,10 @@ endif(Qt5DBus_FOUND) + + target_link_libraries(${APPLICATION_NAME} + Qt5::Widgets +- Qt5::Xml ++ Qt5::Xml + Qt5::Sql + Qt5::PrintSupport +- Qt5::UiTools ++ Qt5::UiTools + Qt5::Network + Qt5::WebEngineWidgets + Qt5::Qml +@@ -947,7 +946,7 @@ target_link_libraries(${APPLICATION_NAME} + ${PROJ_LIBRARIES} + ${ROUTINO_LIBRARIES} + ${ALGLIB_LIBRARIES} +- ${QUAZIP_LIBRARIES} ++ QuaZip::QuaZip + ) + + if(APPLE) diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix index 71adfe0d2db..d8862525030 100644 --- a/pkgs/applications/graphics/foxotron/default.nix +++ b/pkgs/applications/graphics/foxotron/default.nix @@ -25,14 +25,14 @@ stdenv.mkDerivation rec { pname = "foxotron"; - version = "2021-03-12"; + version = "2021-04-19"; src = fetchFromGitHub { owner = "Gargaj"; repo = "Foxotron"; rev = version; fetchSubmodules = true; - sha256 = "1finvbs3pbfyvm525blwgwl5jci2zjxb1923i0cm8rmf7wasaapb"; + sha256 = "sha256-YTCnWHXBNqvJmhRqRQRFCVvBcqbjKzcc3AKVXS0jvno="; }; nativeBuildInputs = [ cmake pkg-config makeWrapper ]; @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { Revision 2021 3D Graphics Competition. ''; homepage = "https://github.com/Gargaj/Foxotron"; - license = licenses.publicDomain; + license = licenses.unlicense; maintainers = with maintainers; [ OPNA2608 ]; platforms = platforms.all; }; diff --git a/pkgs/applications/graphics/nomacs/default.nix b/pkgs/applications/graphics/nomacs/default.nix index bd6d732ac68..142c76b2f6d 100644 --- a/pkgs/applications/graphics/nomacs/default.nix +++ b/pkgs/applications/graphics/nomacs/default.nix @@ -27,6 +27,15 @@ mkDerivation rec { sha256 = "1bq7bv4p7w67172y893lvpk90d6fgdpnylynbj2kn8m2hs6khya4"; }; + patches = [ + # Add support for Quazip 1.x. + (fetchpatch { + url = "https://github.com/nomacs/nomacs/pull/576.patch"; + sha256 = "11ryjvd9jbb0cqagai4a6980jfq8lrcbyw2d7z9yld1f42w9kbxm"; + stripLen = 1; + }) + ]; + setSourceRoot = '' sourceRoot=$(echo */ImageLounge) ''; diff --git a/pkgs/applications/graphics/openboard/default.nix b/pkgs/applications/graphics/openboard/default.nix index 859c2219218..ca51d74a0a1 100644 --- a/pkgs/applications/graphics/openboard/default.nix +++ b/pkgs/applications/graphics/openboard/default.nix @@ -34,7 +34,8 @@ in mkDerivation rec { postPatch = '' substituteInPlace OpenBoard.pro \ - --replace '/usr/include/quazip' '${quazip}/include/quazip5' \ + --replace '/usr/include/quazip' '${quazip}/include/QuaZip-Qt5-${quazip.version}/quazip' \ + --replace '-lquazip5' '-lquazip1-qt5' \ --replace '/usr/include/poppler' '${poppler.dev}/include/poppler' ''; diff --git a/pkgs/applications/misc/authenticator/default.nix b/pkgs/applications/misc/authenticator/default.nix new file mode 100644 index 00000000000..46b61720d0a --- /dev/null +++ b/pkgs/applications/misc/authenticator/default.nix @@ -0,0 +1,99 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, appstream-glib +, desktop-file-utils +, meson +, ninja +, pkg-config +, python3 +, rustPlatform +, wrapGAppsHook +, gdk-pixbuf +, glib +, gst_all_1 +, gtk4 +, libadwaita +, openssl +, sqlite +, wayland +, zbar +}: + +stdenv.mkDerivation rec { + pname = "authenticator"; + version = "4.0.3"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "World"; + repo = "Authenticator"; + rev = version; + sha256 = "0fvs76f3fm5pxn7wg6sjbqpgip5w2j7xrh4siasdcl2bx6vsld8b"; + }; + + cargoDeps = rustPlatform.fetchCargoTarball { + inherit src; + name = "${pname}-${version}"; + sha256 = "1s97jyszxf24rs3ni11phiyvmp1wm8sicb0rh1jgwz4bn1cnakx4"; + }; + + postPatch = '' + patchShebangs build-aux + ''; + + nativeBuildInputs = [ + appstream-glib + desktop-file-utils + meson + ninja + pkg-config + python3 + wrapGAppsHook + ] ++ (with rustPlatform; [ + cargoSetupHook + rust.cargo + rust.rustc + ]); + + buildInputs = [ + gdk-pixbuf + glib + gst_all_1.gstreamer + gst_all_1.gst-plugins-base + + # gst-plugins-good needs gtk4 support: + # https://gitlab.freedesktop.org/gstreamer/gst-plugins-good/-/merge_requests/767 + # We copy the way it is built from the Flatpak: + # https://gitlab.gnome.org/World/Authenticator/-/blob/master/build-aux/com.belmoussaoui.Authenticator.Devel.json + (gst_all_1.gst-plugins-good.overrideAttrs (old: { + patches = old.patches or [ ] ++ [ + "${src}/build-aux/767.patch" + ]; + mesonFlags = old.mesonFlags ++ [ + "-Dgtk3=disabled" + "-Dgtk4=enabled" + "-Dgtk4-experiments=true" + ]; + buildInputs = old.buildInputs ++ [ + gtk4 + ]; + })) + + (gst_all_1.gst-plugins-bad.override { enableZbar = true; }) + gtk4 + libadwaita + openssl + sqlite + wayland + zbar + ]; + + meta = with lib; { + description = "Two-factor authentication code generator for GNOME"; + homepage = "https://gitlab.gnome.org/World/Authenticator"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ dotlambda ]; + }; +} diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index fa5240b5333..234ed7410f9 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -2,7 +2,6 @@ , stdenv , copyDesktopItems , fetchFromGitHub -, fetchpatch , makeDesktopItem , makeWrapper , fontconfig @@ -19,18 +18,18 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "21.0.3"; # When updating also update fetchedMavenDeps.sha256 + version = "21.0.4"; # When updating also update fetchedMavenDeps.sha256 src = fetchFromGitHub { owner = "dbeaver"; repo = "dbeaver"; rev = version; - sha256 = "sha256-ItM8t+gqE0ccuuimfEMUddykl+xt2eZIBd3MbpreRwA="; + sha256 = "sha256-jV7Pe4MsLQnIrkDnlI2SrPzSjiDHM59GbMy4G7oeQK8="; }; fetchedMavenDeps = stdenv.mkDerivation { name = "dbeaver-${version}-maven-deps"; - inherit src patches; + inherit src; buildInputs = [ maven @@ -51,18 +50,9 @@ stdenv.mkDerivation rec { dontFixup = true; outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "sha256-rsK/B39ogNu5nC41OfyAsLiwBz4gWyH+8Fj7E6+rOng="; + outputHash = "sha256-RspJTWVM0ZpAz4yDeKsG7wSHZ//bi3SSV5c0gbsqZKY="; }; - patches = [ - # Fix eclipse-color-theme URL (https://github.com/dbeaver/dbeaver/pull/12133) - # After April 15, 2021 eclipse-color-theme.github.com no longer redirects to eclipse-color-theme.github.io - (fetchpatch { - url = "https://github.com/dbeaver/dbeaver/commit/65d65e2c2c711cc87fddcec425a6915aa80f4ced.patch"; - sha256 = "sha256-pxOcRYkV/5o+tHcRhHDZ1TmZSHMnKBmkNTVAlIf9nUE="; - }) - ]; - nativeBuildInputs = [ copyDesktopItems makeWrapper diff --git a/pkgs/applications/misc/eaglemode/default.nix b/pkgs/applications/misc/eaglemode/default.nix index d411ce7ae81..65a74c4aca4 100644 --- a/pkgs/applications/misc/eaglemode/default.nix +++ b/pkgs/applications/misc/eaglemode/default.nix @@ -1,5 +1,5 @@ { lib, stdenv, fetchurl, perl, libX11, libXinerama, libjpeg, libpng, libtiff, pkg-config, -librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xineLib, ghostscript, makeWrapper }: +librsvg, glib, gtk2, libXext, libXxf86vm, poppler, xine-lib, ghostscript, makeWrapper }: stdenv.mkDerivation rec { pname = "eaglemode"; @@ -12,11 +12,11 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config ]; buildInputs = [ perl libX11 libXinerama libjpeg libpng libtiff - librsvg glib gtk2 libXxf86vm libXext poppler xineLib ghostscript makeWrapper ]; + librsvg glib gtk2 libXxf86vm libXext poppler xine-lib ghostscript makeWrapper ]; # The program tries to dlopen Xxf86vm, Xext and Xinerama, so we use the # trick on NIX_LDFLAGS and dontPatchELF to make it find them. - # I use 'yes y' to skip a build error linking with xineLib, + # I use 'yes y' to skip a build error linking with xine-lib, # because xine stopped exporting "_x_vo_new_port" # https://sourceforge.net/projects/eaglemode/forums/forum/808824/topic/5115261 buildPhase = '' diff --git a/pkgs/applications/misc/feedbackd/default.nix b/pkgs/applications/misc/feedbackd/default.nix index 34119c2006d..1cf2fee3710 100644 --- a/pkgs/applications/misc/feedbackd/default.nix +++ b/pkgs/applications/misc/feedbackd/default.nix @@ -41,6 +41,11 @@ stdenv.mkDerivation rec { json-glib ]; + postInstall = '' + mkdir -p $out/lib/udev/rules.d + sed "s|/usr/libexec/|$out/libexec/|" < $src/debian/feedbackd.udev > $out/lib/udev/rules.d/90-feedbackd.rules + ''; + meta = with lib; { description = "A daemon to provide haptic (and later more) feedback on events"; homepage = "https://source.puri.sm/Librem5/feedbackd"; diff --git a/pkgs/applications/misc/geoipupdate/default.nix b/pkgs/applications/misc/geoipupdate/default.nix index 12b5a38877a..e85ada2253f 100644 --- a/pkgs/applications/misc/geoipupdate/default.nix +++ b/pkgs/applications/misc/geoipupdate/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "geoipupdate"; - version = "4.6.0"; + version = "4.7.1"; src = fetchFromGitHub { owner = "maxmind"; repo = "geoipupdate"; rev = "v${version}"; - sha256 = "1rzc8kidm8nr9pbcbq96kax3cbf39afrk5vzpl04lzpw3jbbakjq"; + sha256 = "sha256-nshQxr6y3TxKsAVSA9mzL7LJfCtpv0QuuTTqk3/lENc="; }; - vendorSha256 = "1f858k8cl0dgiw124jv0p9jhi9aqxnc3nmc7hksw70fla2nzjrv0"; + vendorSha256 = "sha256-fqQWFhFeyW4GntRBxEeN6WSOo0G+1hH9vSEZmBKglz8="; doCheck = false; diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix index e5192c9a73e..e7cfe04da6e 100644 --- a/pkgs/applications/misc/googleearth-pro/default.nix +++ b/pkgs/applications/misc/googleearth-pro/default.nix @@ -1,41 +1,54 @@ -{ lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv -, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, libXcomposite -, libxcb, sqlite, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus, makeWrapper }: +{ lib +, stdenv +, mkDerivation +, fetchurl +, ffmpeg_3 +, freetype +, gdal_2 +, glib +, libGL +, libGLU +, libICE +, libSM +, libXi +, libXv +, libav_12 +, libXrender +, libXrandr +, libXfixes +, libXcursor +, libXinerama +, libXext +, libX11 +, libXcomposite + +, libxcb +, sqlite +, zlib +, fontconfig +, dpkg +, libproxy +, libxml2 +, gst_all_1 +, dbus +, makeWrapper + +, qtlocation +, qtwebkit +, qtx11extras +, qtsensors +, qtscript + +, xkeyboardconfig +, autoPatchelfHook +}: let arch = if stdenv.hostPlatform.system == "x86_64-linux" then "amd64" else throw "Unsupported system ${stdenv.hostPlatform.system} "; - fullPath = lib.makeLibraryPath [ - glibc - glib - stdenv.cc.cc - libSM - libICE - libXi - libXv - libGLU libGL - libXrender - libXrandr - libXfixes - libXcursor - libXinerama - libXcomposite - freetype - libXext - libX11 - libxcb - sqlite - zlib - fontconfig - libproxy - libxml2 - dbus - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - ]; in -stdenv.mkDerivation rec { +mkDerivation rec { pname = "googleearth-pro"; version = "7.3.3.7786"; @@ -44,20 +57,56 @@ stdenv.mkDerivation rec { sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3"; }; - nativeBuildInputs = [ dpkg makeWrapper ]; + nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ]; + propagatedBuildInputs = [ xkeyboardconfig ]; + buildInputs = [ + dbus + ffmpeg_3 + fontconfig + freetype + gdal_2 + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + libGL + libGLU + libICE + libSM + libX11 + libXcomposite + libXcursor + libXext + libXfixes + libXi + libXinerama + libXrandr + libXrender + libXv + libav_12 + libproxy + libxcb + libxml2 + qtlocation + qtscript + qtsensors + qtwebkit + qtx11extras + sqlite + zlib + ]; doInstallCheck = true; dontBuild = true; - dontPatchELF = true; - unpackPhase = '' # deb file contains a setuid binary, so 'dpkg -x' doesn't work here dpkg --fsys-tarfile ${src} | tar --extract ''; installPhase ='' + runHook preInstall + mkdir $out mv usr/* $out/ rmdir usr @@ -66,20 +115,9 @@ stdenv.mkDerivation rec { # patch and link googleearth binary ln -s $out/opt/google/earth/pro/googleearth-bin $out/bin/googleearth-pro - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${fullPath}:\$ORIGIN" \ - $out/opt/google/earth/pro/googleearth-bin # patch and link gpsbabel binary ln -s $out/opt/google/earth/pro/gpsbabel $out/bin/gpsbabel - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${fullPath}:\$ORIGIN" \ - $out/opt/google/earth/pro/gpsbabel - - # patch libraries - for a in $out/opt/google/earth/pro/*.so* ; do - patchelf --set-rpath "${fullPath}:\$ORIGIN" $a - done # Add desktop config file and icons mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps} @@ -89,23 +127,37 @@ stdenv.mkDerivation rec { ln -s $out/opt/google/earth/pro/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth-pro.png done ln -s $out/opt/google/earth/pro/product_logo_256.png $out/share/pixmaps/google-earth-pro.png + + runHook postInstall ''; + postInstall = '' + find "$out/opt/google/earth/pro" -name "*.so.*" | \ + egrep -v 'libssl*|libcrypto*|libicu*' | \ + xargs rm + find "$out/opt/google/earth/pro" -name "*.so" | \ + egrep -v 'libgoogle*|libauth*|libbase*|libcommon*|libcommon_gui*|libcommon_platform*|libcommon_webbrowser*|libcomponentframework*|libgeobase*|libgeobaseutils*|libge_net*|libgdata*|libgoogleapi*|libmath*|libmoduleframework*|libmaps*|libport*|libprintmodule*|libprofile*|librender*|libreporting*|libsgutil*|libspatial*|libxsltransform*|libbase*|libport*|libport*|libbase*|libcomponentframework*|libIGCore*|libIGUtils*|libaction*|libapiloader*|libapiloader*|libIGCore*|libIGUtils*|libIGMath*|libfusioncommon*|libge_exif*|libaction*|libfusioncommon*|libapiloader*|liblayer*|libapiloader*|libIGAttrs*|libIGCore*|libIGGfx*|libIGMath*|libIGSg*|libIGUtils*|libwmsbase*|libwebbrowser*|libevllpro*|libalchemyext*|libge_cache*|libflightsim*|libnpgeinprocessplugin*|libmeasure*|libviewsync*|libcapture*|libtheme*|libgps*|libgisingest*|libsearchmodule*|libinput_plugin*|libnavigate*|libspnav*|libsearch*|libLeap*' | \ + xargs rm + ''; + + autoPatchelfIgnoreMissingDeps=true; + installCheckPhase = '' $out/bin/gpsbabel -V > /dev/null ''; # wayland is not supported by Qt included in binary package, so make sure it uses xcb - fixupPhase = '' - wrapProgram $out/bin/googleearth-pro --set QT_QPA_PLATFORM xcb + postFixup = '' + wrapProgram $out/bin/googleearth-pro \ + --set QT_QPA_PLATFORM xcb \ + --set QT_XKB_CONFIG_ROOT "${xkeyboardconfig}/share/X11/xkb" ''; - meta = with lib; { description = "A world sphere viewer"; - homepage = "https://earth.google.com"; + homepage = "https://www.google.com/earth/"; license = licenses.unfree; - maintainers = with maintainers; [ friedelino ]; + maintainers = with maintainers; [ friedelino shamilton ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/haunt/default.nix b/pkgs/applications/misc/haunt/default.nix index 124e441a5af..87656d730b2 100644 --- a/pkgs/applications/misc/haunt/default.nix +++ b/pkgs/applications/misc/haunt/default.nix @@ -27,10 +27,23 @@ stdenv.mkDerivation rec { guile-reader ]; - postInstall = '' - wrapProgram $out/bin/haunt \ - --prefix GUILE_LOAD_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" \ - --prefix GUILE_LOAD_COMPILED_PATH : "$out/share/guile/site:${guile-commonmark}/share/guile/site:${guile-reader}/share/guile/site" + doCheck = true; + + postInstall = + let + guileVersion = lib.versions.majorMinor guile.version; + in + '' + wrapProgram $out/bin/haunt \ + --prefix GUILE_LOAD_PATH : "$out/share/guile/site/${guileVersion}:$GUILE_LOAD_PATH" \ + --prefix GUILE_LOAD_COMPILED_PATH : "$out/lib/guile/${guileVersion}/site-ccache:$GUILE_LOAD_COMPILED_PATH" + ''; + + doInstallCheck = true; + installCheckPhase = '' + runHook preInstallCheck + $out/bin/haunt --version + runHook postInstallCheck ''; meta = with lib; { @@ -53,7 +66,7 @@ stdenv.mkDerivation rec { to do things that aren't provided out-of-the-box. ''; license = licenses.gpl3Plus; - maintainers = with maintainers; [ AndersonTorres ]; + maintainers = with maintainers; [ AndersonTorres AluisioASG ]; platforms = guile.meta.platforms; }; } diff --git a/pkgs/applications/misc/ideamaker/default.nix b/pkgs/applications/misc/ideamaker/default.nix index 7b2eeec292b..1996ba5c1ea 100644 --- a/pkgs/applications/misc/ideamaker/default.nix +++ b/pkgs/applications/misc/ideamaker/default.nix @@ -9,7 +9,7 @@ , libcork , makeDesktopItem , qt5 -, quazip_qt4 +, quazip , zlib }: stdenv.mkDerivation rec { @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { libcork qt5.qtbase qt5.qtserialport - quazip_qt4 + quazip zlib ]; @@ -73,5 +73,6 @@ stdenv.mkDerivation rec { license = licenses.unfree; platforms = [ "x86_64-linux" ]; maintainers = with maintainers; [ lovesegfault ]; + broken = true; # Segfaults on startup. }; } diff --git a/pkgs/applications/misc/mako/default.nix b/pkgs/applications/misc/mako/default.nix index a845a767b2a..f28292cb2f1 100644 --- a/pkgs/applications/misc/mako/default.nix +++ b/pkgs/applications/misc/mako/default.nix @@ -5,19 +5,22 @@ stdenv.mkDerivation rec { pname = "mako"; - version = "1.4.1"; + version = "1.5"; src = fetchFromGitHub { owner = "emersion"; repo = pname; rev = "v${version}"; - sha256 = "0hwvibpnrximb628w9dsfjpi30b5jy7nfkm4d94z5vhp78p43vxh"; + sha256 = "0f92krcgybl4113g2gawf7lcbh1fss7bq4cx81h1zyn7yvxlwx2b"; }; nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook ]; buildInputs = [ systemd pango cairo gdk-pixbuf wayland ]; - mesonFlags = [ "-Dzsh-completions=true" ]; + mesonFlags = [ + "-Dzsh-completions=true" + "-Dsd-bus-provider=libsystemd" + ]; meta = with lib; { description = "A lightweight Wayland notification daemon"; diff --git a/pkgs/applications/misc/metadata-cleaner/default.nix b/pkgs/applications/misc/metadata-cleaner/default.nix index b1b77a53ea0..6807e056152 100644 --- a/pkgs/applications/misc/metadata-cleaner/default.nix +++ b/pkgs/applications/misc/metadata-cleaner/default.nix @@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec { pname = "metadata-cleaner"; - version = "1.0.4"; + version = "1.0.5"; format = "other"; @@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec { owner = "rmnvgr"; repo = "metadata-cleaner"; rev = "v${version}"; - sha256 = "sha256-F/xh4dFX7W50kFzpWpGKyMUhxOlDO3WDXBzXVsDViY8="; + sha256 = "sha256-9s9i703Svql1Nn1M1sFp3FOtLGjuxXi6YR6nsUJCkeg="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/misc/phoc/default.nix b/pkgs/applications/misc/phoc/default.nix new file mode 100644 index 00000000000..6ef88fb07c6 --- /dev/null +++ b/pkgs/applications/misc/phoc/default.nix @@ -0,0 +1,84 @@ +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, libinput +, gnome3 +, glib +, gtk3 +, wayland +, libdrm +, libxkbcommon +, wlroots +}: + +let + phocWlroots = wlroots.overrideAttrs (old: { + patches = (old.patches or []) ++ [ + # Temporary fix. Upstream report: https://source.puri.sm/Librem5/phosh/-/issues/422 + (fetchpatch { + name = "0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; + url = "https://gitlab.alpinelinux.org/alpine/aports/-/raw/78fde4aaf1a74eb13a3f083cb6dfb29f578c3265/community/wlroots/0001-Revert-layer-shell-error-on-0-dimension-without-anch.patch"; + sha256 = "1zjn7mwdj21z0jsc2mz90cnrzk97yqkiq58qqgpjav4h4dgpfb38"; + }) + # To fix missing header `EGL/eglmesaext.h` dropped upstream + (fetchpatch { + name = "0002-stop-including-eglmesaext-h.patch"; + url = "https://github.com/swaywm/wlroots/commit/e18599b05e0f0cbeba11adbd489e801285470eab.patch"; + sha256 = "17ax4dyk0584yhs3lq8ija5bkainjf7psx9c9r50cr4jm9c0i37l"; + }) + ]; + }); +in stdenv.mkDerivation rec { + pname = "phoc"; + version = "0.7.0"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "0afiyr2slg38ksrqn19zygsmjy9k5bpwv6n7zjas3s5djr6hch45"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + libdrm.dev + libxkbcommon + libinput + glib + gtk3 + gnome3.gnome-desktop + # For keybindings settings schemas + gnome3.mutter + wayland + phocWlroots + ]; + + mesonFlags = ["-Dembed-wlroots=disabled"]; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + meta = with lib; { + description = "Wayland compositor for mobile phones like the Librem 5"; + homepage = "https://source.puri.sm/Librem5/phoc"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ archseer masipcat zhaofengli ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/misc/xplr/default.nix b/pkgs/applications/misc/xplr/default.nix index 14a50dbeb9e..bcb5beff287 100644 --- a/pkgs/applications/misc/xplr/default.nix +++ b/pkgs/applications/misc/xplr/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { name = "xplr"; - version = "0.5.10"; + version = "0.5.12"; src = fetchFromGitHub { owner = "sayanarijit"; repo = name; rev = "v${version}"; - sha256 = "1gy0iv39arq2ri57iqsycp1sfnn1yafnhblr7p1my2wnmqwmd4qw"; + sha256 = "0dmqa56sxyvrq03rpf9yczp75zk44s79ilz6kbykdghp0d9lyldf"; }; - cargoSha256 = "01b4dlbakkdn3pfyyphabzrmqyp7fjy6n1nfk38z3zap5zvx8ipl"; + cargoSha256 = "1mb1rfax91cbi2wvshl8jsfykx9kfwff8fkqa7rc4plqxnz0qxkx"; meta = with lib; { description = "A hackable, minimal, fast TUI file explorer"; diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix index c4a5508b753..dcac873b849 100644 --- a/pkgs/applications/networking/browsers/chromium/browser.nix +++ b/pkgs/applications/networking/browsers/chromium/browser.nix @@ -85,6 +85,7 @@ mkChromiumDerivation (base: rec { else [ primeos thefloweringash bendlas ]; license = if enableWideVine then licenses.unfree else licenses.bsd3; platforms = platforms.linux; + mainProgram = "chromium"; hydraPlatforms = if (channel == "stable" || channel == "ungoogled-chromium") then ["aarch64-linux" "x86_64-linux"] else []; diff --git a/pkgs/applications/networking/browsers/firefox-bin/default.nix b/pkgs/applications/networking/browsers/firefox-bin/default.nix index 93b89e9031e..ffba1096d1d 100644 --- a/pkgs/applications/networking/browsers/firefox-bin/default.nix +++ b/pkgs/applications/networking/browsers/firefox-bin/default.nix @@ -33,6 +33,7 @@ , nspr , nss , pango +, pipewire , pciutils , libheimdal , libpulseaudio @@ -126,6 +127,7 @@ stdenv.mkDerivation { nspr nss pango + pipewire pciutils libheimdal libpulseaudio diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix index 0b79da754f8..24195e578bd 100644 --- a/pkgs/applications/networking/browsers/firefox/common.nix +++ b/pkgs/applications/networking/browsers/firefox/common.nix @@ -9,7 +9,7 @@ , hunspell, libevent, libstartup_notification , libvpx_1_8 , icu67, libpng, jemalloc, glib, pciutils -, autoconf213, which, gnused, rustPackages +, autoconf213, which, gnused, rustPackages, rustPackages_1_45 , rust-cbindgen, nodejs, nasm, fetchpatch , gnum4 , debugBuild ? false @@ -90,13 +90,19 @@ let then "/Applications/${binaryNameCapitalized}.app/Contents/MacOS" else "/bin"; - inherit (rustPackages) rustc cargo; + # 78 ESR won't build with rustc 1.47 + inherit (if lib.versionAtLeast ffversion "82" then rustPackages else rustPackages_1_45) + rustc cargo; # Darwin's stdenv provides the default llvmPackages version, match that since # clang LTO on Darwin is broken so the stdenv is not being changed. + # Target the LLVM version that rustc -Vv reports it is built with for LTO. + # rustPackages_1_45 -> LLVM 10, rustPackages -> LLVM 11 llvmPackages = if stdenv.isDarwin then buildPackages.llvmPackages - else buildPackages.llvmPackages_11; + else if lib.versionAtLeast rustc.llvm.version "11" + then buildPackages.llvmPackages_11 + else buildPackages.llvmPackages_10; # When LTO for Darwin is fixed, the following will need updating as lld # doesn't work on it. For now it is fine since ltoSupport implies no Darwin. diff --git a/pkgs/applications/networking/browsers/vivaldi/default.nix b/pkgs/applications/networking/browsers/vivaldi/default.nix index 96355789eb3..2ff0d2d5df0 100644 --- a/pkgs/applications/networking/browsers/vivaldi/default.nix +++ b/pkgs/applications/networking/browsers/vivaldi/default.nix @@ -18,11 +18,11 @@ let vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi"; in stdenv.mkDerivation rec { pname = "vivaldi"; - version = "3.7.2218.45-1"; + version = "3.8.2259.37-1"; src = fetchurl { url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}_amd64.deb"; - sha256 = "11q3whw01nbwvzccgn55b4lkr7dzlql961406r6by8xqvf8zgmp4"; + sha256 = "1lpia3jm6l2yvbhrw5khws28n653w22bszzd44y6zv6zwbw7y127"; }; unpackPhase = '' @@ -47,6 +47,7 @@ in stdenv.mkDerivation rec { + ":$out/opt/${vivaldiName}/lib"; buildPhase = '' + runHook preBuild echo "Patching Vivaldi binaries" patchelf \ --set-interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ @@ -56,12 +57,14 @@ in stdenv.mkDerivation rec { ln -s ${vivaldi-ffmpeg-codecs}/lib/libffmpeg.so opt/${vivaldiName}/libffmpeg.so.''${version%\.*\.*} '' + '' echo "Finished patching Vivaldi binaries" + runHook postBuild ''; dontPatchELF = true; dontStrip = true; installPhase = '' + runHook preInstall mkdir -p "$out" cp -r opt "$out" mkdir "$out/bin" @@ -84,6 +87,8 @@ in stdenv.mkDerivation rec { ${lib.optionalString enableWidevine "--suffix LD_LIBRARY_PATH : ${libPath}"} '' + lib.optionalString enableWidevine '' ln -sf ${vivaldi-widevine}/share/google/chrome/WidevineCdm $out/opt/${vivaldiName}/WidevineCdm + '' + '' + runHook postInstall ''; meta = with lib; { diff --git a/pkgs/applications/networking/cluster/fluxcd/default.nix b/pkgs/applications/networking/cluster/fluxcd/default.nix index a0593aab989..4a338ac9a42 100644 --- a/pkgs/applications/networking/cluster/fluxcd/default.nix +++ b/pkgs/applications/networking/cluster/fluxcd/default.nix @@ -1,11 +1,11 @@ { lib, buildGoModule, fetchFromGitHub, fetchzip, installShellFiles }: let - version = "0.12.0"; + version = "0.13.2"; manifests = fetchzip { url = "https://github.com/fluxcd/flux2/releases/download/v${version}/manifests.tar.gz"; - sha256 = "sha256-8NgKr5uRVFBD1pARaD+vH9wPA5gUNltwMe0i0icED1c="; + sha256 = "sha256-+2JvJFzH1CjU/WQ7MLtqd5Adfi/ktX9lPq4IyxPcUD8="; stripRoot = false; }; in @@ -19,10 +19,10 @@ buildGoModule rec { owner = "fluxcd"; repo = "flux2"; rev = "v${version}"; - sha256 = "sha256-idHMijca1lYQF4aW+RPyzRraLDNdVavMuj4TP6z90Oo="; + sha256 = "sha256-yWcoHUHEiRp4YxTDxi+inJkpb8dnTVTwSO3MgFyhvps="; }; - vendorSha256 = "sha256-VrDO8y6omRKf3mPRAnRMZsSMwQHxQxShUa9HZ3dfCgM="; + vendorSha256 = "sha256-hSnTM89s3R7UDn1gLlb1gu6rhTPqVKJpWKCz1SDyfmg="; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix index 7cbe5558533..a51230d5ff4 100644 --- a/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix +++ b/pkgs/applications/networking/cluster/kubelogin-oidc/default.nix @@ -2,18 +2,18 @@ buildGoModule rec { pname = "kubelogin"; - version = "1.23.0"; + version = "1.23.1"; src = fetchFromGitHub { owner = "int128"; repo = pname; rev = "v${version}"; - sha256 = "0n94nx17c6ln2nd6d9yr93vc251y1xphq1wj2vzs4j2l8dqfyjpn"; + sha256 = "sha256-YK/QGx6QzSeyeZ61KgdYO3POJQFK1F6yJayd2gcRWS4="; }; subPackages = ["."]; - vendorSha256 = "1dvrk6z6k66wawgb50n8hbgdd8fly399mlbgnvxi671vfi7lkz09"; + vendorSha256 = "sha256-tnjgs8Ziqdo1ciVOWtL0D8puv2SZGqSHgo2SV7N8F0M="; # Rename the binary instead of symlinking to avoid conflict with the # Azure version of kubelogin diff --git a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix index 9ab5b94251b..979216b3ccd 100644 --- a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix +++ b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "tektoncd-cli"; - version = "0.17.2"; + version = "0.18.0"; src = fetchFromGitHub { owner = "tektoncd"; repo = "cli"; rev = "v${version}"; - sha256 = "sha256-7VG9OFt1yVt4st8EM1aiRqLCHwjSqib28GoamoJHHnM="; + sha256 = "sha256-vZxpfVMUl1EZwCuLlwmSKWrz86aTjWYlAIwO4b9ACqk="; }; vendorSha256 = null; @@ -24,6 +24,8 @@ buildGoModule rec { excludedPackages = "\\(third_party\\|cmd/docs\\)"; preCheck = '' + # Some tests try to write to the home dir + export HOME="$TMPDIR" # Change the golden files to match our desired version sed -i "s/dev/${version}/" pkg/cmd/version/testdata/TestGetVersions-*.golden ''; diff --git a/pkgs/applications/networking/flexget/default.nix b/pkgs/applications/networking/flexget/default.nix index 3f2e3490955..592c5282cd1 100644 --- a/pkgs/applications/networking/flexget/default.nix +++ b/pkgs/applications/networking/flexget/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "FlexGet"; - version = "3.1.110"; + version = "3.1.116"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "e8642dcbbfe941e2d2def7bf2e28889082a78c1d041edb33dae180036832a96b"; + sha256 = "6372b36495ae023bd64ce28ca649feba54b060ed8f0a5f606a4845974e834493"; }; postPatch = '' @@ -54,6 +54,7 @@ python3Packages.buildPythonApplication rec { sqlalchemy terminaltables zxcvbn + psutil # plugins transmission-rpc ]; diff --git a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix index 72ff8bd8b4b..29ae860cdad 100644 --- a/pkgs/applications/networking/google-drive-ocamlfuse/default.nix +++ b/pkgs/applications/networking/google-drive-ocamlfuse/default.nix @@ -4,7 +4,7 @@ buildDunePackage rec { pname = "google-drive-ocamlfuse"; - version = "0.7.22"; + version = "0.7.26"; useDune2 = true; @@ -14,7 +14,7 @@ buildDunePackage rec { owner = "astrada"; repo = "google-drive-ocamlfuse"; rev = "v${version}"; - sha256 = "027j1r2iy8vnbqs8bv893f0909yk5312ki5p3zh2pdz6s865h750"; + sha256 = "sha256-8s3DnpdYIVyJj5rtsof3WpLvX9wCrWU47dp4D6c986s="; }; buildInputs = [ ocaml_extlib ocamlfuse gapi_ocaml ocaml_sqlite3 ]; diff --git a/pkgs/applications/networking/instant-messengers/seren/default.nix b/pkgs/applications/networking/instant-messengers/seren/default.nix new file mode 100644 index 00000000000..63cefbd2ffd --- /dev/null +++ b/pkgs/applications/networking/instant-messengers/seren/default.nix @@ -0,0 +1,37 @@ +{ lib +, stdenv +, fetchurl +, alsaLib +, libopus +, libogg +, gmp +, ncurses +}: + +stdenv.mkDerivation rec { + pname = "seren"; + version = "0.0.21"; + + buildInputs = [ alsaLib libopus libogg gmp ncurses ]; + + src = fetchurl { + url = "http://holdenc.altervista.org/seren/downloads/${pname}-${version}.tar.gz"; + sha256 = "sha256-adI365McrJkvTexvnWjMzpHcJkLY3S/uWfE8u4yuqho="; + }; + + meta = with lib; { + description = "A simple ncurses VoIP program based on the Opus codec"; + longDescription = '' + Seren is a simple VoIP program based on the Opus codec + that allows you to create a voice conference from the terminal, with up to 10 + participants, without having to register accounts, exchange emails, or add + people to contact lists. All you need to join an existing conference is the + host name or IP address of one of the participants. + ''; + homepage = "http://holdenc.altervista.org/seren/"; + changelog = "http://holdenc.altervista.org/seren/"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ matthewcroughan nixinator ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix index 1775e45d4e6..6269e5c3a97 100644 --- a/pkgs/applications/networking/instant-messengers/slack/default.nix +++ b/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -42,11 +42,11 @@ let pname = "slack"; - x86_64-darwin-version = "4.14.0"; - x86_64-darwin-sha256 = "0kpjsnriav6rcddjkz0z9arxjd09i6bw2krnmf3dc31my64nmxs6"; + x86_64-darwin-version = "4.15.0"; + x86_64-darwin-sha256 = "12mfha0f7nciszsv7fb0zk4y10p63mh7kaw8gbk3q2fmyp8aij6l"; - x86_64-linux-version = "4.14.0"; - x86_64-linux-sha256 = "0xy9i8ssjba62ca7lfan58rhwx69wkapfd0jzkaj95qhqnv019fg"; + x86_64-linux-version = "4.15.0"; + x86_64-linux-sha256 = "1xzp7ql4i3n3fqfwk0400hkg4xn0pi66sy5jzqn68z33zzf7raii"; version = { x86_64-darwin = x86_64-darwin-version; diff --git a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix index 98867407916..d2648eff57c 100644 --- a/pkgs/applications/networking/instant-messengers/teamspeak/client.nix +++ b/pkgs/applications/networking/instant-messengers/teamspeak/client.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { '' mv ts3client_linux_${arch} ts3client echo "patching ts3client..." - patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip5.so ts3client + patchelf --replace-needed libquazip.so ${quazip}/lib/libquazip1-qt5.so ts3client patchelf \ --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ --set-rpath ${lib.makeLibraryPath deps}:$(cat $NIX_CC/nix-support/orig-cc)/${libDir} \ diff --git a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix index 2f6594c1765..c88c97705fd 100644 --- a/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix +++ b/pkgs/applications/networking/instant-messengers/telegram/kotatogram-desktop/default.nix @@ -2,7 +2,7 @@ , pkg-config, cmake, ninja, python3, wrapGAppsHook, wrapQtAppsHook , qtbase, qtimageformats, gtk3, libsForQt5, lz4, xxHash , ffmpeg, openalSoft, minizip, libopus, alsaLib, libpulseaudio, range-v3 -, tl-expected, hunspell, glibmm +, tl-expected, hunspell, glibmm, webkitgtk # Transitive dependencies: , pcre, xorg, util-linux, libselinux, libsepol, epoxy , at-spi2-core, libXtst, libthai, libdatrie @@ -14,13 +14,13 @@ let tg_owt = callPackage ../tdesktop/tg_owt.nix {}; in mkDerivation rec { pname = "kotatogram-desktop"; - version = "1.4"; + version = "1.4.1"; src = fetchFromGitHub { owner = "kotatogram"; repo = "kotatogram-desktop"; rev = "k${version}"; - sha256 = "0nhyjqxrbqiik4sgzplmpgx8msf8rykjiik0c2zr61rjm4fngkb3"; + sha256 = "07z56gz3sk45n5j0gw9p9mxrbwixxsmp7lvqc6lqnxmglz6knc1d"; fetchSubmodules = true; }; @@ -38,7 +38,7 @@ in mkDerivation rec { buildInputs = [ qtbase qtimageformats gtk3 libsForQt5.kwayland libsForQt5.libdbusmenu lz4 xxHash ffmpeg openalSoft minizip libopus alsaLib libpulseaudio range-v3 - tl-expected hunspell glibmm + tl-expected hunspell glibmm webkitgtk tg_owt # Transitive dependencies: pcre xorg.libXdmcp util-linux libselinux libsepol epoxy diff --git a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix index fd15e77c8be..44bbbeece30 100644 --- a/pkgs/applications/networking/instant-messengers/zoom-us/default.nix +++ b/pkgs/applications/networking/instant-messengers/zoom-us/default.nix @@ -29,11 +29,11 @@ assert pulseaudioSupport -> libpulseaudio != null; let - version = "5.6.16775.0418"; + version = "5.6.16888.0424"; srcs = { x86_64-linux = fetchurl { url = "https://zoom.us/client/${version}/zoom_x86_64.pkg.tar.xz"; - sha256 = "twtxzniojgyLTx6Kda8Ej96uyw2JQB/jIhLdTgTqpCo="; + sha256 = "H/G9cSVmxYM0AVfrdpXzm7ohssDbKq2xdvIBc4d+elc="; }; }; @@ -79,7 +79,7 @@ in stdenv.mkDerivation rec { installPhase = '' runHook preInstall mkdir $out - tar -C $out -xf ${src} + tar -C $out -xf $src mv $out/usr/* $out/ runHook postInstall ''; diff --git a/pkgs/applications/networking/p2p/gnunet/default.nix b/pkgs/applications/networking/p2p/gnunet/default.nix index af290fc1cc5..61ff1642978 100644 --- a/pkgs/applications/networking/p2p/gnunet/default.nix +++ b/pkgs/applications/networking/p2p/gnunet/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "gnunet"; - version = "0.14.0"; + version = "0.14.1"; src = fetchurl { url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; - sha256 = "sha256-2u9gO9Mu0dM1yixcaqOnZcDfGcp69dc5CH5tkl6vRas="; + sha256 = "1hhqv994akymf4s593mc1wpsjy6hccd0zbdim3qmc1y3f32hacja"; }; enableParallelBuilding = true; diff --git a/pkgs/applications/networking/p2p/gnunet/gtk.nix b/pkgs/applications/networking/p2p/gnunet/gtk.nix index 2532671bc25..3711d5a3c1e 100644 --- a/pkgs/applications/networking/p2p/gnunet/gtk.nix +++ b/pkgs/applications/networking/p2p/gnunet/gtk.nix @@ -5,6 +5,7 @@ , gtk3 , libextractor , libgcrypt +, libsodium , libxml2 , pkg-config , wrapGAppsHook @@ -12,11 +13,11 @@ stdenv.mkDerivation rec { pname = "gnunet-gtk"; - version = "0.13.1"; + version = "0.14.0"; src = fetchurl { url = "mirror://gnu/gnunet/${pname}-${version}.tar.gz"; - sha256 = "1zdzgq16h77w6ybwg3lqjsjr965np6iqvncqvkbj07glqd4wss0j"; + sha256 = "18rc7mb45y17d5nrlpf2p4ixp7ir67gcgjf4hlj4r95ic5zi54wa"; }; nativeBuildInputs= [ @@ -31,15 +32,16 @@ stdenv.mkDerivation rec { gtk3 libextractor libgcrypt + libsodium libxml2 ]; + configureFlags = [ "--with-gnunet=${gnunet}" ]; + patchPhase = "patchShebangs pixmaps/icon-theme-installer"; meta = gnunet.meta // { description = "GNUnet GTK User Interface"; homepage = "https://git.gnunet.org/gnunet-gtk.git"; - # configure: error: compiling gnunet-gtk requires GNUnet core headers - broken = true; }; } diff --git a/pkgs/applications/networking/pcloud/default.nix b/pkgs/applications/networking/pcloud/default.nix index 64721cd75a6..6cff01c1cc2 100644 --- a/pkgs/applications/networking/pcloud/default.nix +++ b/pkgs/applications/networking/pcloud/default.nix @@ -21,7 +21,7 @@ # Runtime dependencies; # A few additional ones (e.g. Node) are already shipped together with the # AppImage, so we don't have to duplicate them here. - alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, udev, nss + alsaLib, dbus-glib, fuse, gnome3, gtk3, libdbusmenu-gtk2, libXdamage, udev, nss }: let @@ -59,6 +59,7 @@ in stdenv.mkDerivation { fuse gtk3 libdbusmenu-gtk2 + libXdamage nss udev ]; diff --git a/pkgs/applications/networking/remote/citrix-workspace/generic.nix b/pkgs/applications/networking/remote/citrix-workspace/generic.nix index 35faeb20b75..8b1ef3c5863 100644 --- a/pkgs/applications/networking/remote/citrix-workspace/generic.nix +++ b/pkgs/applications/networking/remote/citrix-workspace/generic.nix @@ -1,7 +1,7 @@ { lib, stdenv, requireFile, makeWrapper, autoPatchelfHook, wrapGAppsHook, which, more , file, atk, alsaLib, cairo, fontconfig, gdk-pixbuf, glib, gnome3, gtk2-x11, gtk3 , heimdal, krb5, libsoup, libvorbis, speex, openssl, zlib, xorg, pango, gtk2 -, gnome2, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2 +, gnome2, mesa, nss, nspr, gtk_engines, freetype, dconf, libpng12, libxml2 , libjpeg, libredirect, tzdata, cacert, systemd, libcxxabi, libcxx, e2fsprogs, symlinkJoin , libpulseaudio, pcsclite @@ -84,6 +84,7 @@ stdenv.mkDerivation rec { libsoup libvorbis libxml2 + mesa nspr nss openssl' diff --git a/pkgs/applications/networking/shellhub-agent/default.nix b/pkgs/applications/networking/shellhub-agent/default.nix index fa129baabc1..54eb1216b09 100644 --- a/pkgs/applications/networking/shellhub-agent/default.nix +++ b/pkgs/applications/networking/shellhub-agent/default.nix @@ -9,18 +9,23 @@ buildGoModule rec { pname = "shellhub-agent"; - version = "0.6.0"; + version = "0.6.4"; src = fetchFromGitHub { owner = "shellhub-io"; repo = "shellhub"; rev = "v${version}"; - sha256 = "0vdasz3qph73xb9y831bnr1hpcw0669n9zckqn95v1bsjc936313"; + sha256 = "12g9067knppkci2acc4w9xcismgw2w1zd0f1swbzdnx8bxl3vg9i"; }; + patches = [ + # Fix missing multierr package on go.mod + ./fix-go-mod-deps.patch + ]; + modRoot = "./agent"; - vendorSha256 = "059772rd1l7zyf2vlqjm35hg8ibmjc1p6cfazqd47n8mqqlqkilw"; + vendorSha256 = "0z5qvgmmrwwvhpmhjxdvgdfsd60a24q9ld68ggnkv36qln0gw7p4"; buildFlagsArray = [ "-ldflags=-s -w -X main.AgentVersion=v${version}" ]; diff --git a/pkgs/applications/networking/shellhub-agent/fix-go-mod-deps.patch b/pkgs/applications/networking/shellhub-agent/fix-go-mod-deps.patch new file mode 100644 index 00000000000..7e99eccb04d --- /dev/null +++ b/pkgs/applications/networking/shellhub-agent/fix-go-mod-deps.patch @@ -0,0 +1,128 @@ +diff --git a/agent/go.mod b/agent/go.mod +index c075083..b79726e 100644 +--- a/agent/go.mod ++++ b/agent/go.mod +@@ -28,6 +28,7 @@ require ( + github.com/pkg/errors v0.9.1 + github.com/shellhub-io/shellhub v0.5.2 + github.com/sirupsen/logrus v1.8.1 ++ go.uber.org/multierr v1.6.0 // indirect + golang.org/x/crypto v0.0.0-20210220033148-5ea612d1eb83 + golang.org/x/net v0.0.0-20210224082022-3d97a244fca7 // indirect + golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 +diff --git a/agent/go.sum b/agent/go.sum +index e65c9ad..0f9afcd 100644 +--- a/agent/go.sum ++++ b/agent/go.sum +@@ -62,7 +62,6 @@ github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw + github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= + github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= + github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= +-github.com/google/go-cmp v0.4.0 h1:xsAVV57WRhGj6kEIi8ReJzQlHHqcBYCElAvkovg3B/4= + github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= + github.com/google/go-cmp v0.5.0 h1:/QaMHBdZ26BB3SSst0Iwl10Epc+xhTquomWX0oZEB6w= + github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +@@ -73,7 +72,6 @@ github.com/gorilla/mux v1.8.0 h1:i40aqfkR1h2SlN9hojwV5ZA91wcXFOvkdNIeFDP5koI= + github.com/gorilla/mux v1.8.0/go.mod h1:DVbg23sWSpFRCP0SfiEN6jmj59UnW/n46BH5rLB71So= + github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= + github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= +-github.com/hashicorp/go-cleanhttp v0.5.1 h1:dH3aiDG9Jvb5r5+bYHsikaOUIpcM0xvgMXVoDkXMzJM= + github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= + github.com/hashicorp/go-cleanhttp v0.5.2 h1:035FKYIWjmULyFRBKPs8TBQoi0x6d9G4xc9neXJWAZQ= + github.com/hashicorp/go-cleanhttp v0.5.2/go.mod h1:kO/YDlP8L1346E6Sodw+PrpBSV4/SoxCXGY6BqNFT48= +@@ -87,9 +85,7 @@ github.com/kelseyhightower/envconfig v1.4.0 h1:Im6hONhd3pLkfDFsbRgu68RDNkGF1r3dv + github.com/kelseyhightower/envconfig v1.4.0/go.mod h1:cccZRl6mQpaq41TPp5QxidR+Sa3axMbJDNb//FQX6Gg= + github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= + github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +-github.com/konsorten/go-windows-terminal-sequences v1.0.1 h1:mweAR1A6xJ3oS2pRaGiHgQ4OO8tzTaLawm8vnODuwDk= + github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +-github.com/leodido/go-urn v1.2.0 h1:hpXL4XnriNwQ/ABnpepYM/1vCLWNDfUNts8dX3xTG6Y= + github.com/leodido/go-urn v1.2.0/go.mod h1:+8+nEpDfqqsY+g338gtMEUOtuK+4dEMhiQEgxpxOKII= + github.com/leodido/go-urn v1.2.1 h1:BqpAaACuzVSgi/VLzGZIobT2z4v53pjosyNd9Yv6n/w= + github.com/leodido/go-urn v1.2.1/go.mod h1:zt4jvISO2HfUBqxjfIshjdMTYS56ZS/qv49ictyFfxY= +@@ -113,7 +109,6 @@ github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZN + github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= + github.com/rogpeppe/go-charset v0.0.0-20180617210344-2471d30d28b4/go.mod h1:qgYeAmZ5ZIpBWTGllZSQnw97Dj+woV0toclVaRGI8pc= + github.com/sirupsen/logrus v1.4.1/go.mod h1:ni0Sbl8bgC9z8RoU9G6nDWqqs/fq4eDPysMBDgk/93Q= +-github.com/sirupsen/logrus v1.7.0 h1:ShrD1U9pZB12TX0cVy0DtePoCH97K8EtX+mg7ZARUtM= + github.com/sirupsen/logrus v1.7.0/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= + github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= + github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +@@ -124,15 +119,18 @@ github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9 + github.com/spf13/pflag v1.0.3/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= + github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= + github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +-github.com/stretchr/testify v1.2.2 h1:bSDNvY7ZPG5RlJ8otE/7V6gMiyenm9RtJ7IUVIAoJ1w= + github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= +-github.com/stretchr/testify v1.4.0 h1:2E4SXV/wtOkTonXsotYi4li6zVWxYlZuYNCXe9XRJyk= ++github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= + github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= + github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= + github.com/stretchr/testify v1.6.1 h1:hDPOHmpOpP40lSULcqw7IrRb/u7w6RpDC9399XyoNd0= + github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= + github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= + github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= ++go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= ++go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= ++go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= ++go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= + golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= + golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= + golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +@@ -148,7 +146,6 @@ golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73r + golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= + golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +-golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3 h1:0GoQqolDA55aaLxZyTzK/Y2ePZzZTUrRacwib7cNsYQ= + golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= + golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= + golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +@@ -169,17 +166,13 @@ golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7w + golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20200831180312-196b9ba8737a/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +-golang.org/x/sys v0.0.0-20201119102817-f84b799fce68 h1:nxC68pudNYkKU6jWhgrqdreuFiOQWj1Fs7T3VrH4Pjw= + golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= + golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073 h1:8qxJSnu+7dRq6upnbntrmriWByIakBuct5OM/MdQC1M= + golang.org/x/sys v0.0.0-20210225134936-a50acf3fe073/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +-golang.org/x/term v0.0.0-20201117132131-f5c789dd3221 h1:/ZHdbVpdR/jk3g30/d4yUL0JU9kksj8+F/bnQUVLGDM= + golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1 h1:v+OssWQX+hTHEmOBgwxdZxK4zHq3yOs8F9J7mk0PY8E= + golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +-golang.org/x/text v0.3.0 h1:g61tztE5qeGQ89tm6NTjjM9VPIm088od1l6aSorWRWg= + golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +-golang.org/x/text v0.3.2 h1:tW2bmiBqwgJj/UpqtC8EpXEZVYOwU0yG4iWbprSVAcs= + golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= + golang.org/x/text v0.3.3 h1:cokOdA+Jmi5PJGXLlLllQSgYigAEfHXJAERHVMaCc2k= + golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +@@ -197,14 +190,12 @@ golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roY + golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= + golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +-golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543 h1:E7g+9GITq07hpfrRu66IVDexMakfv52eLZ2CXBWiKr4= + golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= + golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= + google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= + google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= + google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= +-google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= + google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= + google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= + google.golang.org/genproto v0.0.0-20210224155714-063164c882e6 h1:bXUwz2WkXXrXgiLxww3vWmoSHLOGv4ipdPdTvKymcKw= +@@ -223,7 +214,6 @@ google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzi + google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= + google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= + google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +-google.golang.org/protobuf v1.24.0 h1:UhZDfRO8JRQru4/+LlLE0BRKGF8L+PICnvYZmx/fEGA= + google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= + google.golang.org/protobuf v1.25.0 h1:Ejskq+SyPohKW+1uil0JJMtmHCgJPJ/qWTxr8qp+R4c= + google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= +@@ -233,7 +223,6 @@ gopkg.in/go-playground/assert.v1 v1.2.1 h1:xoYuJVE7KT85PYWrN730RguIQO0ePzVRfFMXa + gopkg.in/go-playground/assert.v1 v1.2.1/go.mod h1:9RXL0bg/zibRAgZUYszZSwO/z8Y/a8bDuhia5mkpMnE= + gopkg.in/go-playground/validator.v9 v9.31.0 h1:bmXmP2RSNtFES+bn4uYuHT7iJFJv7Vj+an+ZQdDaD1M= + gopkg.in/go-playground/validator.v9 v9.31.0/go.mod h1:+c9/zcJMFNgbLvly1L1V+PpxWdVbfP1avr/N00E2vyQ= +-gopkg.in/yaml.v2 v2.2.2 h1:ZCJp+EgiOT7lHqUV2J862kp8Qj64Jo6az82+3Td9dZw= + gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c h1:dUUwHk2QECo/6vqA44rthZ8ie2QXMNeKRTHCNY2nXvo= + gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= diff --git a/pkgs/applications/office/timeular/default.nix b/pkgs/applications/office/timeular/default.nix index 948918e5491..477ae48b5f4 100644 --- a/pkgs/applications/office/timeular/default.nix +++ b/pkgs/applications/office/timeular/default.nix @@ -2,22 +2,30 @@ , fetchurl , appimageTools , libsecret +, gtk3 +, gsettings-desktop-schemas }: let - version = "3.4.1"; + version = "3.9.1"; pname = "timeular"; name = "${pname}-${version}"; + src = fetchurl { url = "https://s3.amazonaws.com/timeular-desktop-packages/linux/production/Timeular-${version}.AppImage"; - sha256 = "1s5jjdl1nzq9yd582lqs904yl10mp0s25897zmifmcbw1vz38bar"; + sha256 = "103hy443p697jdkz6li8s1n6kg1r55jmiw2vbjz12kskf7njg4y4"; }; + appimageContents = appimageTools.extractType2 { inherit name src; }; in appimageTools.wrapType2 rec { inherit name src; + profile = '' + export XDG_DATA_DIRS=${gsettings-desktop-schemas}/share/gsettings-schemas/${gsettings-desktop-schemas.name}:${gtk3}/share/gsettings-schemas/${gtk3.name}:$XDG_DATA_DIRS + ''; + extraPkgs = pkgs: with pkgs; [ libsecret ]; diff --git a/pkgs/applications/science/biology/dcm2niix/default.nix b/pkgs/applications/science/biology/dcm2niix/default.nix index 7ec5476cb82..6224ccabb06 100644 --- a/pkgs/applications/science/biology/dcm2niix/default.nix +++ b/pkgs/applications/science/biology/dcm2niix/default.nix @@ -6,14 +6,14 @@ }: stdenv.mkDerivation rec { - version = "1.0.20200331"; + version = "1.0.20210317"; pname = "dcm2niix"; src = fetchFromGitHub { owner = "rordenlab"; repo = "dcm2niix"; rev = "v${version}"; - sha256 = "1cncfwhyhmg18n970lkn6yvp0i74ajznsl8dqz00asqfzmg681n1"; + sha256 = "05rjk0xsrzcxa979vlx25k1rdz1in84gkfm9l1h9f7k4a4aa5r6j"; }; nativeBuildInputs = [ cmake git ]; diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix index 3a0b13d7d09..aa7fe5ab914 100644 --- a/pkgs/applications/science/logic/lean/default.nix +++ b/pkgs/applications/science/logic/lean/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "lean"; - version = "3.29.0"; + version = "3.30.0"; src = fetchFromGitHub { owner = "leanprover-community"; repo = "lean"; rev = "v${version}"; - sha256 = "sha256-f2Gp76c+4R+ww52f1AyVZqixpei1WZPwr7pfgxMMb9Q="; + sha256 = "sha256-gJhbkl19iilNyfCt2TfPmghYA3yCjg6kS+yk/x/k14Y="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/science/math/numworks-epsilon/default.nix b/pkgs/applications/science/math/numworks-epsilon/default.nix new file mode 100644 index 00000000000..9ec41386da5 --- /dev/null +++ b/pkgs/applications/science/math/numworks-epsilon/default.nix @@ -0,0 +1,53 @@ +{ stdenv +, lib +, fetchFromGitHub +, libpng +, xorg +, python3 +, imagemagick +, gcc-arm-embedded +, pkg-config +}: + +stdenv.mkDerivation rec { + pname = "numworks-epsilon"; + version = "15.3.2"; + + src = fetchFromGitHub { + owner = "numworks"; + repo = "epsilon"; + rev = version; + sha256 = "1q34dilyypiggjs16486jm122yf20wcigqxvspc77ig9albaxgh5"; + }; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ + libpng + xorg.libXext + python3 + imagemagick + gcc-arm-embedded + ]; + + makeFlags = [ + "PLATFORM=simulator" + ]; + + installPhase = '' + runHook preInstall + + mv ./output/release/simulator/linux/{epsilon.bin,epsilon} + mkdir -p $out/bin + cp -r ./output/release/simulator/linux/* $out/bin/ + + runHook postInstall + ''; + + meta = with lib; { + description = "Emulator for Epsilon, a High-performance graphing calculator operating system"; + homepage = "https://numworks.com/"; + license = licenses.cc-by-nc-sa-40; + maintainers = with maintainers; [ erikbackman ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/applications/science/misc/rink/default.nix b/pkgs/applications/science/misc/rink/default.nix index 31ae8678719..232e13218cb 100644 --- a/pkgs/applications/science/misc/rink/default.nix +++ b/pkgs/applications/science/misc/rink/default.nix @@ -1,17 +1,17 @@ { lib, fetchFromGitHub, rustPlatform, openssl, pkg-config, ncurses }: rustPlatform.buildRustPackage rec { - version = "0.6.0"; + version = "0.6.1"; pname = "rink"; src = fetchFromGitHub { owner = "tiffany352"; repo = "rink-rs"; rev = "v${version}"; - sha256 = "sha256-3uhKevuUVh7AObn2GDW2T+5wttX20SbVP+sFaFj3Jmk="; + sha256 = "1h93xlavcjvx588q8wkpbzph88yjjhhvzcfxr5nicdca0jnha5ch"; }; - cargoSha256 = "sha256-luJzIGdcitH+PNgr86AYX6wKEkQlsRhwwylo+hzeovE="; + cargoSha256 = "0x4rvfnw3gl2aj6i006nkk3y1f8skyv8g0ss3z2v6qj9nhs7pyir"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ncurses ]; diff --git a/pkgs/applications/science/physics/xfitter/default.nix b/pkgs/applications/science/physics/xfitter/default.nix index d0a0585e69f..4390826ccee 100644 --- a/pkgs/applications/science/physics/xfitter/default.nix +++ b/pkgs/applications/science/physics/xfitter/default.nix @@ -39,9 +39,10 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ gfortran which ]; buildInputs = - [ apfel apfelgrid applgrid blas lhapdf lapack mela root5 qcdnum libtirpc ] + [ apfel apfelgrid applgrid blas lhapdf lapack mela root5 qcdnum ] # pdf2yaml requires fmemopen and open_memstream which are not readily available on Darwin ++ lib.optional (!stdenv.isDarwin) libyaml + ++ lib.optional (stdenv.hostPlatform.libc == "glibc") libtirpc ; propagatedBuildInputs = [ lynx ]; @@ -49,8 +50,8 @@ stdenv.mkDerivation rec { hardeningDisable = [ "format" ]; - NIX_CFLAGS_COMPILE = [ "-I${libtirpc.dev}/include/tirpc" ]; - NIX_LDFLAGS = [ "-ltirpc" ]; + NIX_CFLAGS_COMPILE = lib.optional (stdenv.hostPlatform.libc == "glibc") "-I${libtirpc.dev}/include/tirpc"; + NIX_LDFLAGS = lib.optional (stdenv.hostPlatform.libc == "glibc") "-ltirpc"; meta = with lib; { description = "The xFitter project is an open source QCD fit framework ready to extract PDFs and assess the impact of new data"; diff --git a/pkgs/applications/science/robotics/sumorobot-manager/default.nix b/pkgs/applications/science/robotics/sumorobot-manager/default.nix index 0b4b807a481..c0f619b9592 100644 --- a/pkgs/applications/science/robotics/sumorobot-manager/default.nix +++ b/pkgs/applications/science/robotics/sumorobot-manager/default.nix @@ -1,22 +1,22 @@ -{ lib, stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial }: +{ lib, stdenv, python3, qt5, fetchFromGitHub, wrapPython, pyqt5, pyserial, dos2unix }: stdenv.mkDerivation rec { pname = "sumorobot-manager"; - version = "0.9.0"; + version = "1.0.0"; src = fetchFromGitHub { owner = "robokoding"; repo = pname; rev = "v${version}"; - sha256 = "03zhb54c259a66hsahmv2ajbzwcjnfjj050wbjhw51zqzxinlgqr"; + sha256 = "07snhwmqqp52vdgr66vx50zxx0nmpmns5cdjgh50hzlhji2z1fl9"; }; buildInputs = [ python3 ]; pythonPath = [ - pyqt5 pyserial + pyqt5.dev pyserial ]; - nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook ]; + nativeBuildInputs = [ wrapPython qt5.wrapQtAppsHook dos2unix ]; buildPhase = "true"; @@ -25,6 +25,7 @@ stdenv.mkDerivation rec { cp -r main.py lib res $out/opt/sumorobot-manager chmod -R 644 $out/opt/sumorobot-manager/lib/* mkdir $out/bin + dos2unix $out/opt/sumorobot-manager/main.py makeQtWrapper $out/opt/sumorobot-manager/main.py $out/bin/sumorobot-manager \ --run "cd $out/opt/sumorobot-manager" ''; diff --git a/pkgs/applications/system/glances/default.nix b/pkgs/applications/system/glances/default.nix index e41d9bee5b4..c142ba12bc2 100644 --- a/pkgs/applications/system/glances/default.nix +++ b/pkgs/applications/system/glances/default.nix @@ -9,14 +9,14 @@ buildPythonApplication rec { pname = "glances"; - version = "3.1.6.2"; + version = "3.1.7"; disabled = isPyPy; src = fetchFromGitHub { owner = "nicolargo"; repo = "glances"; rev = "v${version}"; - sha256 = "sha256-6vxJKIwMKz8KQn10aOzqXhVBDfBLylw925hR1hWP7/A="; + sha256 = "sha256-82ZD32dqRYGbGM/uyaJ5VqVZbhDZthiEcTihkV43JOU="; }; # Some tests fail in the sandbox (they e.g. require access to /sys/class/power_supply): @@ -45,15 +45,11 @@ buildPythonApplication rec { py-cpuinfo ] ++ lib.optional stdenv.isLinux hddtemp; - preConfigure = '' - sed -i 's/data_files\.append((conf_path/data_files.append(("etc\/glances"/' setup.py; - ''; - meta = with lib; { homepage = "https://nicolargo.github.io/glances/"; description = "Cross-platform curses-based monitoring tool"; changelog = "https://github.com/nicolargo/glances/releases/tag/v${version}"; - license = licenses.lgpl3; + license = licenses.lgpl3Only; maintainers = with maintainers; [ jonringer primeos koral ]; }; } diff --git a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix index 99772f60bc5..f93947d0515 100644 --- a/pkgs/applications/version-management/git-and-tools/git-machete/default.nix +++ b/pkgs/applications/version-management/git-and-tools/git-machete/default.nix @@ -4,11 +4,11 @@ buildPythonApplication rec { pname = "git-machete"; - version = "3.1.0"; + version = "3.1.1"; src = fetchPypi { inherit pname version; - sha256 = "0bb6ap8sdp4ad0xkh3y8vj46a363g5gdw0dzf9ycw0z9ah8ispfx"; + sha256 = "00f1rq80vya464dkvf3mzs9zpvkz15ki8srwg08snsm5kb7amwlm"; }; nativeBuildInputs = [ installShellFiles pbr ]; diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock index d3afc9de341..7f3fc0650cf 100644 --- a/pkgs/applications/version-management/redmine/Gemfile.lock +++ b/pkgs/applications/version-management/redmine/Gemfile.lock @@ -70,28 +70,28 @@ GEM globalid (0.4.2) activesupport (>= 4.2.0) htmlentities (4.3.4) - i18n (1.8.9) + i18n (1.8.10) concurrent-ruby (~> 1.0) - loofah (2.9.0) + loofah (2.9.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.0) + marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.0.3) - mini_portile2 (2.5.0) + mini_portile2 (2.5.1) minitest (5.14.4) mocha (1.12.0) mysql2 (0.5.3) net-ldap (0.17.0) nio4r (2.5.7) - nokogiri (1.11.2) + nokogiri (1.11.3) mini_portile2 (~> 2.5.0) racc (~> 1.4) parallel (1.20.1) - parser (3.0.0.0) + parser (3.0.1.0) ast (~> 2.4.1) pg (1.2.3) public_suffix (4.0.6) @@ -138,7 +138,7 @@ GEM regexp_parser (1.8.2) request_store (1.5.0) rack (>= 1.4) - rexml (3.2.4) + rexml (3.2.5) roadie (4.0.0) css_parser (~> 1.4) nokogiri (~> 1.8) @@ -151,7 +151,7 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.2) rqrcode_core (0.2.0) - rubocop (1.12.0) + rubocop (1.12.1) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix index e0559a9c48f..7eca72ac5f0 100644 --- a/pkgs/applications/version-management/redmine/default.nix +++ b/pkgs/applications/version-management/redmine/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }: let - version = "4.2.0"; + version = "4.2.1"; rubyEnv = bundlerEnv { name = "redmine-env-${version}"; @@ -16,7 +16,7 @@ in src = fetchurl { url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz"; - sha256 = "1r87gy73dclnvcz55vziv6kbgyck0v8jlzx1wwkak8mgh32n8n19"; + sha256 = "1d217fhyvncpwahwlinr3vc20vn7jijaxxk1i56gw72z8b1hjhdd"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix index b545c9d6a3e..2d045a5f292 100644 --- a/pkgs/applications/version-management/redmine/gemset.nix +++ b/pkgs/applications/version-management/redmine/gemset.nix @@ -269,10 +269,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32"; + sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a"; type = "gem"; }; - version = "1.8.9"; + version = "1.8.10"; }; loofah = { dependencies = ["crass" "nokogiri"]; @@ -280,10 +280,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck"; + sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7"; type = "gem"; }; - version = "2.9.0"; + version = "2.9.1"; }; mail = { dependencies = ["mini_mime"]; @@ -301,10 +301,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vhp6lifwvqs2b0a276lj61n86c1l7d1xiswjj2w23f54gl51mpk"; + sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; method_source = { groups = ["default"]; @@ -341,10 +341,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2"; type = "gem"; }; - version = "2.5.0"; + version = "2.5.1"; }; minitest = { groups = ["default" "test"]; @@ -410,10 +410,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p"; + sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0"; type = "gem"; }; - version = "1.11.2"; + version = "1.11.3"; }; parallel = { groups = ["default" "test"]; @@ -431,10 +431,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml"; + sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8"; type = "gem"; }; - version = "3.0.0.0"; + version = "3.0.1.0"; }; pg = { groups = ["default"]; @@ -638,10 +638,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; type = "gem"; }; - version = "3.2.4"; + version = "3.2.5"; }; roadie = { dependencies = ["css_parser" "nokogiri"]; @@ -712,10 +712,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1i3y0h6awywx4rdmjdan908jmnyk589pndbjypxkfbkqvjx514fw"; + sha256 = "0hi2c3a6alya9yx07nirnjzlc0mvmidnx67874njp6wf7d5xqqr9"; type = "gem"; }; - version = "1.12.0"; + version = "1.12.1"; }; rubocop-ast = { dependencies = ["parser"]; diff --git a/pkgs/applications/video/aegisub/default.nix b/pkgs/applications/video/aegisub/default.nix index d39b5e179a6..e953b96638f 100644 --- a/pkgs/applications/video/aegisub/default.nix +++ b/pkgs/applications/video/aegisub/default.nix @@ -3,22 +3,22 @@ , stdenv , fetchurl , fetchpatch -, libX11 -, wxGTK -, libiconv +, boost +, ffmpeg +, ffms +, fftw , fontconfig , freetype -, libGLU -, libGL -, libass -, fftw -, ffms -, ffmpeg_3 -, pkg-config -, zlib , icu -, boost , intltool +, libGL +, libGLU +, libX11 +, libass +, libiconv +, pkg-config +, wxGTK +, zlib , spellcheckSupport ? true , hunspell ? null @@ -46,71 +46,75 @@ assert alsaSupport -> (alsaLib != null); assert pulseaudioSupport -> (libpulseaudio != null); assert portaudioSupport -> (portaudio != null); -with lib; -stdenv.mkDerivation - rec { +let + inherit (lib) optional; +in +stdenv.mkDerivation rec { pname = "aegisub"; version = "3.2.2"; src = fetchurl { url = "http://ftp.aegisub.org/pub/releases/${pname}-${version}.tar.xz"; - sha256 = "11b83qazc8h0iidyj1rprnnjdivj1lpphvpa08y53n42bfa36pn5"; + hash = "sha256-xV4zlFuC2FE8AupueC8Ncscmrc03B+lbjAAi9hUeaIU="; }; patches = [ # Compatibility with ICU 59 (fetchpatch { url = "https://github.com/Aegisub/Aegisub/commit/dd67db47cb2203e7a14058e52549721f6ff16a49.patch"; - sha256 = "07qqlckiyy64lz8zk1as0vflk9kqnjb340420lp9f0xj93ncssj7"; + sha256 = "sha256-R2rN7EiyA5cuBYIAMpa0eKZJ3QZahfnRp8R4HyejGB8="; }) # Compatbility with Boost 1.69 (fetchpatch { url = "https://github.com/Aegisub/Aegisub/commit/c3c446a8d6abc5127c9432387f50c5ad50012561.patch"; - sha256 = "1n8wmjka480j43b1pr30i665z8hdy6n3wdiz1ls81wyv7ai5yygf"; + sha256 = "sha256-7nlfojrb84A0DT82PqzxDaJfjIlg5BvWIBIgoqasHNk="; }) # Compatbility with make 4.3 (fetchpatch { url = "https://github.com/Aegisub/Aegisub/commit/6bd3f4c26b8fc1f76a8b797fcee11e7611d59a39.patch"; - sha256 = "1s9cc5rikrqb9ivjbag4b8yxcyjsmmmw744394d5xq8xi4k12vxc"; + sha256 = "sha256-rG8RJokd4V4aSYOQw2utWnrWPVrkqSV3TAvnGXNhLOk="; }) ]; nativeBuildInputs = [ - pkg-config intltool + pkg-config ]; - - buildInputs = with lib; [ - libX11 - wxGTK + buildInputs = [ + boost + ffmpeg + ffms + fftw fontconfig freetype - libGLU - libGL - libass - fftw - ffms - ffmpeg_3 - zlib icu - boost + libGL + libGLU + libX11 + libass libiconv + wxGTK + zlib ] - ++ optional spellcheckSupport hunspell - ++ optional automationSupport lua - ++ optional openalSupport openal - ++ optional alsaSupport alsaLib - ++ optional pulseaudioSupport libpulseaudio - ++ optional portaudioSupport portaudio - ; + ++ optional alsaSupport alsaLib + ++ optional automationSupport lua + ++ optional openalSupport openal + ++ optional portaudioSupport portaudio + ++ optional pulseaudioSupport libpulseaudio + ++ optional spellcheckSupport hunspell + ; enableParallelBuilding = true; - hardeningDisable = [ "bindnow" "relro" ]; + hardeningDisable = [ + "bindnow" + "relro" + ]; - # compat with icu61+ https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554 + # compat with icu61+ + # https://github.com/unicode-org/icu/blob/release-64-2/icu4c/readme.html#L554 CXXFLAGS = [ "-DU_USING_ICU_NAMESPACE=1" ]; # this is fixed upstream though not yet in an officially released version, @@ -119,7 +123,8 @@ stdenv.mkDerivation postInstall = "ln -s $out/bin/aegisub-* $out/bin/aegisub"; - meta = { + meta = with lib; { + homepage = "https://github.com/Aegisub/Aegisub"; description = "An advanced subtitle editor"; longDescription = '' Aegisub is a free, cross-platform open source tool for creating and @@ -127,12 +132,11 @@ stdenv.mkDerivation audio, and features many powerful tools for styling them, including a built-in real-time video preview. ''; - homepage = "http://www.aegisub.org/"; - # The Aegisub sources are itself BSD/ISC, - # but they are linked against GPL'd softwares - # - so the resulting program will be GPL + # The Aegisub sources are itself BSD/ISC, but they are linked against GPL'd + # softwares - so the resulting program will be GPL license = licenses.bsd3; maintainers = [ maintainers.AndersonTorres ]; platforms = [ "i686-linux" "x86_64-linux" ]; }; } +# TODO [ AndersonTorres ]: update to fork release diff --git a/pkgs/applications/video/bombono/default.nix b/pkgs/applications/video/bombono/default.nix index 8d6df2c4904..a6633904c20 100644 --- a/pkgs/applications/video/bombono/default.nix +++ b/pkgs/applications/video/bombono/default.nix @@ -7,7 +7,8 @@ , dvdauthor , dvdplusrwtools , enca -, ffmpeg_3 +, cdrkit +, ffmpeg , gettext , gtk2 , gtkmm2 @@ -59,7 +60,7 @@ stdenv.mkDerivation rec { dvdauthor dvdplusrwtools enca - ffmpeg_3 + ffmpeg gtk2 gtkmm2 libdvdread @@ -71,6 +72,13 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; + postInstall = '' + # fix iso authoring + install -Dt $out/share/bombono/resources/scons_authoring tools/scripts/SConsTwin.py + + wrapProgram $out/bin/bombono-dvd --prefix PATH : ${lib.makeBinPath [ ffmpeg dvdauthor cdrkit ]} + ''; + meta = with lib; { description = "a DVD authoring program for personal computers"; homepage = "https://www.bombono.org/"; diff --git a/pkgs/applications/video/dvdstyler/default.nix b/pkgs/applications/video/dvdstyler/default.nix index 6366a222722..83c38b933dd 100644 --- a/pkgs/applications/video/dvdstyler/default.nix +++ b/pkgs/applications/video/dvdstyler/default.nix @@ -1,84 +1,107 @@ -{ lib, stdenv, fetchurl, pkg-config -, flex, bison, gettext -, xineUI, wxSVG +{ lib +, stdenv +, fetchurl +, bison +, cdrtools +, docbook5 +, dvdauthor +, dvdplusrwtools +, flex , fontconfig -, xmlto, docbook5, zip -, cdrtools, dvdauthor, dvdplusrwtools +, gettext +, makeWrapper +, pkg-config +, wxSVG +, xine-ui +, xmlto +, zip + , dvdisasterSupport ? true, dvdisaster ? null , thumbnailSupport ? true, libgnomeui ? null , udevSupport ? true, udev ? null , dbusSupport ? true, dbus ? null -, makeWrapper }: - -with lib; -stdenv.mkDerivation rec { +}: +let + inherit (lib) optionals makeBinPath; +in stdenv.mkDerivation rec { pname = "dvdstyler"; - srcName = "DVDStyler-${version}"; version = "3.1.2"; src = fetchurl { - url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/${srcName}.tar.bz2"; + url = "mirror://sourceforge/project/dvdstyler/dvdstyler/${version}/DVDStyler-${version}.tar.bz2"; sha256 = "03lsblqficcadlzkbyk8agh5rqcfz6y6dqvy9y866wqng3163zq4"; }; - nativeBuildInputs = - [ pkg-config ]; - - packagesToBinPath = - [ cdrtools dvdauthor dvdplusrwtools ]; - - buildInputs = - [ flex bison gettext xineUI - wxSVG fontconfig xmlto - docbook5 zip makeWrapper ] - ++ packagesToBinPath + nativeBuildInputs = [ + pkg-config + ]; + buildInputs = [ + bison + cdrtools + docbook5 + dvdauthor + dvdplusrwtools + flex + fontconfig + gettext + makeWrapper + wxSVG + xine-ui + xmlto + zip + ] ++ optionals dvdisasterSupport [ dvdisaster ] ++ optionals udevSupport [ udev ] ++ optionals dbusSupport [ dbus ] ++ optionals thumbnailSupport [ libgnomeui ]; - binPath = makeBinPath packagesToBinPath; - postInstall = '' - wrapProgram $out/bin/dvdstyler \ - --prefix PATH ":" "${binPath}" - ''; + postInstall = let + binPath = makeBinPath [ + cdrtools + dvdauthor + dvdplusrwtools + ]; in + '' + wrapProgram $out/bin/dvdstyler --prefix PATH ":" "${binPath}" + ''; meta = with lib; { + homepage = "https://www.dvdstyler.org/"; description = "A DVD authoring software"; longDescription = '' - DVDStyler is a cross-platform free DVD authoring application for the - creation of professional-looking DVDs. It allows not only burning of video - files on DVD that can be played practically on any standalone DVD player, - but also creation of individually designed DVD menus. It is Open Source - Software and is completely free. + DVDStyler is a cross-platform free DVD authoring application for the + creation of professional-looking DVDs. It allows not only burning of video + files on DVD that can be played practically on any standalone DVD player, + but also creation of individually designed DVD menus. It is Open Source + Software and is completely free. - Some of its features include: - - create and burn DVD video with interactive menus - - design your own DVD menu or select one from the list of ready to use menu - templates - - create photo slideshow - - add multiple subtitle and audio tracks - - support of AVI, MOV, MP4, MPEG, OGG, WMV and other file formats - - support of MPEG-2, MPEG-4, DivX, Xvid, MP2, MP3, AC-3 and other audio and - video formats - - support of multi-core processor - - use MPEG and VOB files without reencoding - - put files with different audio/video format on one DVD (support of - titleset) - - user-friendly interface with support of drag & drop - - flexible menu creation on the basis of scalable vector graphic - - import of image file for background - - place buttons, text, images and other graphic objects anywhere on the menu - screen - - change the font/color and other parameters of buttons and graphic objects - - scale any button or graphic object - - copy any menu object or whole menu - - customize navigation using DVD scripting + Some of its features include: + + - create and burn DVD video with interactive menus + - design your own DVD menu or select one from the list of ready to use menu + templates + - create photo slideshow + - add multiple subtitle and audio tracks + - support of AVI, MOV, MP4, MPEG, OGG, WMV and other file formats + - support of MPEG-2, MPEG-4, DivX, Xvid, MP2, MP3, AC-3 and other audio and + video formats + - support of multi-core processor + - use MPEG and VOB files without reencoding + - put files with different audio/video format on one DVD (support of + titleset) + - user-friendly interface with support of drag & drop + - flexible menu creation on the basis of scalable vector graphic + - import of image file for background + - place buttons, text, images and other graphic objects anywhere on the menu + screen + - change the font/color and other parameters of buttons and graphic objects + - scale any button or graphic object + - copy any menu object or whole menu + - customize navigation using DVD scripting ''; - homepage = "http://www.dvdstyler.org/"; - license = with licenses; gpl2; + license = licenses.gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = with platforms; linux; }; diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix index 817daf31d0a..da18a8d7abe 100644 --- a/pkgs/applications/video/makemkv/default.nix +++ b/pkgs/applications/video/makemkv/default.nix @@ -3,7 +3,7 @@ , fetchurl , autoPatchelfHook , pkg-config -, ffmpeg_3 +, ffmpeg , openssl , qtbase , zlib @@ -39,7 +39,7 @@ in mkDerivation { nativeBuildInputs = [ autoPatchelfHook pkg-config ]; - buildInputs = [ ffmpeg_3 openssl qtbase zlib ]; + buildInputs = [ ffmpeg openssl qtbase zlib ]; qtWrapperArgs = let diff --git a/pkgs/applications/video/openshot-qt/libopenshot.nix b/pkgs/applications/video/openshot-qt/libopenshot.nix index 169bd33b709..246c3d5cab8 100644 --- a/pkgs/applications/video/openshot-qt/libopenshot.nix +++ b/pkgs/applications/video/openshot-qt/libopenshot.nix @@ -1,8 +1,8 @@ { lib, stdenv, fetchFromGitHub, fetchpatch , pkg-config, cmake, doxygen -, libopenshot-audio, imagemagick, ffmpeg_3 -, swig, python3 -, unittest-cpp, cppzmq, zeromq +, libopenshot-audio, imagemagick, ffmpeg +, swig, python3, jsoncpp +, cppzmq, zeromq , qtbase, qtmultimedia , llvmPackages }: @@ -20,6 +20,7 @@ stdenv.mkDerivation rec { }; patches = [ + # Fix build with GCC 10. (fetchpatch { name = "fix-build-with-gcc-10.patch"; url = "https://github.com/OpenShot/libopenshot/commit/13290364e7bea54164ab83d973951f2898ad9e23.diff"; @@ -33,10 +34,10 @@ stdenv.mkDerivation rec { export _REL_PYTHON_MODULE_PATH=$(toPythonPath $out) ''; - nativeBuildInputs = [ pkg-config cmake doxygen ]; + nativeBuildInputs = [ pkg-config cmake doxygen swig ]; buildInputs = - [ imagemagick ffmpeg_3 swig python3 unittest-cpp + [ imagemagick ffmpeg python3 jsoncpp cppzmq zeromq qtbase qtmultimedia ] ++ optional stdenv.isDarwin llvmPackages.openmp ; @@ -44,7 +45,6 @@ stdenv.mkDerivation rec { dontWrapQtApps = true; LIBOPENSHOT_AUDIO_DIR = libopenshot-audio; - "UNITTEST++_INCLUDE_DIR" = "${unittest-cpp}/include/UnitTest++"; doCheck = false; diff --git a/pkgs/applications/video/vdr/xineliboutput/default.nix b/pkgs/applications/video/vdr/xineliboutput/default.nix index 950cb253c12..7660b4eae3d 100644 --- a/pkgs/applications/video/vdr/xineliboutput/default.nix +++ b/pkgs/applications/video/vdr/xineliboutput/default.nix @@ -1,6 +1,6 @@ { stdenv, fetchurl, lib, vdr , libav, libcap, libvdpau -, xineLib, libjpeg, libextractor, libglvnd, libGLU +, xine-lib, libjpeg, libextractor, libglvnd, libGLU , libX11, libXext, libXrender, libXrandr , makeWrapper }: let @@ -34,7 +34,7 @@ postFixup = '' for f in $out/bin/*; do wrapProgram $f \ - --prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xineLib ]}" + --prefix XINE_PLUGIN_PATH ":" "${makeXinePluginPath [ "$out" xine-lib ]}" done ''; @@ -53,10 +53,10 @@ libXrender libX11 vdr - xineLib + xine-lib ]; - passthru.requiredXinePlugins = [ xineLib self ]; + passthru.requiredXinePlugins = [ xine-lib self ]; meta = with lib;{ homepage = "https://sourceforge.net/projects/xineliboutput/"; diff --git a/pkgs/applications/video/xine-ui/default.nix b/pkgs/applications/video/xine-ui/default.nix index 651597b3a48..0a206befaf1 100644 --- a/pkgs/applications/video/xine-ui/default.nix +++ b/pkgs/applications/video/xine-ui/default.nix @@ -1,34 +1,63 @@ -{lib, stdenv, fetchurl, pkg-config, xorg, libpng, xineLib, readline, ncurses, curl -, lirc, shared-mime-info, libjpeg }: +{ lib +, stdenv +, fetchurl +, curl +, libjpeg +, libpng +, lirc +, ncurses +, pkg-config +, readline +, shared-mime-info +, xine-lib +, xorg +}: stdenv.mkDerivation rec { - name = "xine-ui-0.99.12"; + pname = "xine-ui"; + version = "0.99.12"; src = fetchurl { - url = "mirror://sourceforge/xine/${name}.tar.xz"; + url = "mirror://sourceforge/xine/${pname}-${version}.tar.xz"; sha256 = "10zmmss3hm8gjjyra20qhdc0lb1m6sym2nb2w62bmfk8isfw9gsl"; }; - nativeBuildInputs = [ pkg-config shared-mime-info ]; + nativeBuildInputs = [ + pkg-config + shared-mime-info + ]; + buildInputs = [ + curl + libjpeg + libpng + lirc + ncurses + readline + xine-lib + ] ++ (with xorg; [ + libXext + libXft + libXi + libXinerama + libXtst + libXv + libXxf86vm + xlibsWrapper + xorgproto + ]); - buildInputs = - [ xineLib libpng readline ncurses curl lirc libjpeg - xorg.xlibsWrapper xorg.libXext xorg.libXv xorg.libXxf86vm xorg.libXtst xorg.xorgproto - xorg.libXinerama xorg.libXi xorg.libXft - ]; - - patchPhase = ''sed -e '/curl\/types\.h/d' -i src/xitk/download.c''; + postPatch = "sed -e '/curl\/types\.h/d' -i src/xitk/download.c"; configureFlags = [ "--with-readline=${readline.dev}" ]; LIRC_CFLAGS="-I${lirc}/include"; LIRC_LIBS="-L ${lirc}/lib -llirc_client"; -#NIX_LDFLAGS = "-lXext -lgcc_s"; meta = with lib; { - homepage = "http://www.xine-project.org/"; - description = "Xlib-based interface to Xine, a video player"; + homepage = "http://xinehq.de/"; + description = "Xlib-based frontend for Xine video player"; + license = licenses.gpl2Plus; + maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.linux; - license = licenses.gpl2; }; } diff --git a/pkgs/applications/virtualization/charliecloud/default.nix b/pkgs/applications/virtualization/charliecloud/default.nix index 3e9029cce0a..f6d7ce3d619 100644 --- a/pkgs/applications/virtualization/charliecloud/default.nix +++ b/pkgs/applications/virtualization/charliecloud/default.nix @@ -1,15 +1,15 @@ -{ lib, stdenv, fetchFromGitHub, python3, python3Packages, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }: +{ lib, stdenv, fetchFromGitHub, python3, docker, autoreconfHook, coreutils, makeWrapper, gnused, gnutar, gzip, findutils, sudo, nixosTests }: stdenv.mkDerivation rec { - version = "0.22"; + version = "0.23"; pname = "charliecloud"; src = fetchFromGitHub { owner = "hpc"; repo = "charliecloud"; rev = "v${version}"; - sha256 = "sha256-+9u7WRKAJ9F70+I68xNRck5Q22XzgLKTCnjGbIcsyW8="; + sha256 = "sha256-JQNidKqJROFVm+O1exTDon1fwU91zONqgKJIpe9gspY="; }; nativeBuildInputs = [ autoreconfHook makeWrapper ]; diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix index 5a12be3afa6..d04c0230c97 100644 --- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix +++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix @@ -2,19 +2,19 @@ rustPlatform.buildRustPackage rec { pname = "cloud-hypervisor"; - version = "0.14.1"; + version = "15.0"; src = fetchFromGitHub { owner = "cloud-hypervisor"; repo = pname; rev = "v${version}"; - sha256 = "0pnfg6dzpz8v40cwg3dmlj52x8pblavv7mkczar814dwbk01y7vr"; + sha256 = "14s80vs7j5fxzl2a6k44fjlbk8i13lln28i37xaa6yk1q3d9jwic"; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc; - cargoSha256 = "0dbjds40znly11i0ssfv66w82ynxp00ixw1349m5ln9i9ms94sr4"; + cargoSha256 = "02q4k7j1hyibsiwsbqa5bd4vr3fs1vngnnhqa4kzvih73bkagvk7"; meta = with lib; { homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor"; diff --git a/pkgs/applications/virtualization/open-vm-tools/default.nix b/pkgs/applications/virtualization/open-vm-tools/default.nix index e56293dcc64..bc66791ad36 100644 --- a/pkgs/applications/virtualization/open-vm-tools/default.nix +++ b/pkgs/applications/virtualization/open-vm-tools/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "open-vm-tools"; - version = "11.2.0"; + version = "11.2.5"; src = fetchFromGitHub { owner = "vmware"; repo = "open-vm-tools"; rev = "stable-${version}"; - sha256 = "125y3zdhj353dmmjmssdaib2zp1jg5aiqmvpgkrzhnh5nx2icfv6"; + sha256 = "sha256-Jv+NSKw/+l+b4lfVGgCZFlcTScO/WAO/d7DtI0FAEV4="; }; sourceRoot = "${src.name}/open-vm-tools"; diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index c3484a3312c..0c7cbd853a2 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -39,7 +39,7 @@ let in stdenv.mkDerivation rec { - version = "5.2.0"; + version = "6.0.0"; pname = "qemu" + lib.optionalString xenSupport "-xen" + lib.optionalString hostCpuOnly "-host-cpu-only" @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { src = fetchurl { url= "https://download.qemu.org/qemu-${version}.tar.xz"; - sha256 = "1g0pvx4qbirpcn9mni704y03n3lvkmw2c0rbcwvydyr8ns4xh66b"; + sha256 = "1f9hz8rf12jm8baa7kda34yl4hyl0xh0c4ap03krfjx23i3img47"; }; nativeBuildInputs = [ python python.pkgs.sphinx pkg-config flex bison meson ninja ] @@ -84,126 +84,6 @@ stdenv.mkDerivation rec { patches = [ ./fix-qemu-ga.patch ./9p-ignore-noatime.patch - (fetchpatch { - name = "CVE-2020-27821.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/memory-clamp-cached-translation-if-points-to-MMIO-region-CVE-2020-27821.patch"; - sha256 = "0sj0kr0g6jalygr5mb9i17fgr491jzaxvk3dvala0268940s01x9"; - }) - (fetchpatch { - name = "CVE-2021-20221.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/arm_gic-fix-interrupt-ID-in-GICD_SGIR-CVE-2021-20221.patch"; - sha256 = "1iyvcw87hzlc57fg5l87vddqmch8iw2yghk0s125hk5shn1bygjq"; - }) - (fetchpatch { - name = "CVE-2021-20181.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/9pfs-Fully-restart-unreclaim-loop-CVE-2021-20181.patch"; - sha256 = "149ifiazj6rn4d4mv2c7lcayq744fijsv5abxlb8bhbkj99wd64f"; - }) - (fetchpatch { - name = "CVE-2020-35517.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-extract-lo_do_open-from-lo_open.patch"; - sha256 = "0j4waaz6q54by4a7vd5m8s2n8y0an9hqf0ndycxsy03g4ksm669d"; - }) - (fetchpatch { - name = "CVE-2020-35517.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-optionally-return-inode-pointer-from-lo_do_lookup.patch"; - sha256 = "08bag890r6dx2rhnq58gyvsxvzwqgvn83pjlg95b5ic0z6gyjnsg"; - }) - (fetchpatch { - name = "CVE-2020-35517.part-3.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-prevent-opening-of-special-files-CVE-2020-35517.patch"; - sha256 = "0ziy6638zbkn037l29ywirvgymbqq66l5rngg8iwyky67acilv94"; - }) - (fetchpatch { - name = "CVE-2021-20263.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-save-error-code-early-at-the-failure-callsite.patch"; - sha256 = "15rwb15yjpclrqaxkhx76npr8zlfm9mj4jb19czg093is2cn4rys"; - }) - (fetchpatch { - name = "CVE-2021-20263.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/virtiofsd-drop-remapped-security.capability-xattr-as-needed-CVE-2021-20263.patch"; - sha256 = "06ylz80ilg30wlskd4dsjx677fp5qr8cranwlakvjhr88b630xw0"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-introduce.patch"; - sha256 = "0hcpf00vqpg9rc0wl8cry905w04614843aqifybyv15wbv190gpz"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-cadence_gem.patch"; - sha256 = "12mjnrvs6p4g5frzqb08k4h86hphdqlka91fcma2a3m4ap98nrxy"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-3.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-dp8393x.patch"; - sha256 = "02z6q0578fj55phjlg2larrsx3psch2ixzy470yf57jl3jq1dy6k"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-4.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-e1000.patch"; - sha256 = "0zzbiz8i9js524mcdi739c7hrsmn82gnafrygi0xrd5sqf1hp08z"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-5.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-lan9118.patch"; - sha256 = "1f44v5znd9s7l7wgc71nbg8jw1bjqiga4wkz7d7cpnkv3l7b9kjj"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-6.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-msf2.patch"; - sha256 = "04n1rzn6gfxdalp34903ysdhlvxqkfndnqayjj3iv1k27i5pcidn"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-7.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-pcnet.patch"; - sha256 = "1p9ls6f8r6hxprj8ha6278fydcxj3av29p1hvszxmabazml2g7l2"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-8.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-rtl8139.patch"; - sha256 = "0lms1zn49kpwblkp54widjjy7fwyhdh1x832l1jvds79l2nm6i04"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-9.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-sungem.patch"; - sha256 = "1mkzyrgsp9ml9yqzjxdfqnwjr7n0fd8vxby4yp4ksrskyni8y0p4"; - }) - (fetchpatch { - name = "CVE-2021-3416.part-10.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/net-qemu_receive_packet-for-loopback-tx_pkt-iov.patch"; - sha256 = "1pwqq8yw06y3p6hah3dgjhsqzk802wbn7zyajla1zwdfpic63jss"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-1.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-transfer-any-data-when-command-time-out.patch"; - sha256 = "0wf1yhb9mqpfgh9rv0hff0v1sw3zl2vsfgjrby4r8jvxdfjrxj8s"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-2.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/dont-write-to-SDHC_SYSAD-register-when-transfer-is-in-progress.patch"; - sha256 = "1dd405dsdc7fbp68yf6f32js1azsv3n595c6nbxh28kfh9lspx4v"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-3.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/correctly-set-the-controller-status-for-ADMA.patch"; - sha256 = "08jk51pfrbn1zfymahgllrzivajh2v2qx0868rv9zmgi0jldbky6"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-4.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/limit-block-size-only-when-SDHC_BLKSIZE-register-is-writable.patch"; - sha256 = "1valfhw3l83br1cny6n4kmrv0f416hl625mggayqfz4prsknyhh7"; - }) - (fetchpatch { - name = "CVE-2021-3409.part-5.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/sdhci/reset-the-data-pointer-of-s-fifo_buffer-when-a-different-block-size-is-programmed.patch"; - sha256 = "01p5qrr00rh3mlwrp3qq56h7yhqv0w7pw2cw035nxw3mnap03v31"; - }) - (fetchpatch { - name = "CVE-2021-3392.patch"; - url = "https://sources.debian.org/data/main/q/qemu/1:5.2+dfsg-10/debian/patches/mptsas-remove-unused-MPTSASState.pending-CVE-2021-3392.patch"; - sha256 = "0n7dn2p102c21mf3ncqrnks0wl5kas6yspafbn8jd03ignjgc4hd"; - }) ] ++ optional nixosTestRunner ./force-uid0-on-9p.patch ++ optionals stdenv.hostPlatform.isMusl [ (fetchpatch { @@ -234,6 +114,8 @@ stdenv.mkDerivation rec { patchShebangs . # avoid conflicts with libc++ include for mv VERSION QEMU_VERSION + substituteInPlace configure \ + --replace '$source_path/VERSION' '$source_path/QEMU_VERSION' substituteInPlace meson.build \ --replace "'VERSION'" "'QEMU_VERSION'" '' + optionalString stdenv.hostPlatform.isMusl '' @@ -304,7 +186,7 @@ stdenv.mkDerivation rec { homepage = "http://www.qemu.org/"; description = "A generic and open source machine emulator and virtualizer"; license = licenses.gpl2Plus; - maintainers = with maintainers; [ eelco ]; - platforms = platforms.linux ++ platforms.darwin; + maintainers = with maintainers; [ eelco qyliss ]; + platforms = platforms.unix; }; } diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix index 11ddaff8d3b..922d6fa9ff1 100644 --- a/pkgs/applications/virtualization/virt-manager/default.nix +++ b/pkgs/applications/virtualization/virt-manager/default.nix @@ -1,7 +1,7 @@ { lib, fetchurl, python3Packages, intltool, file , wrapGAppsHook, gtk-vnc, vte, avahi, dconf , gobject-introspection, libvirt-glib, system-libvirt -, gsettings-desktop-schemas, glib, libosinfo, gnome3 +, gsettings-desktop-schemas, libosinfo, gnome3 , gtksourceview4, docutils , spiceSupport ? true, spice-gtk ? null , cpio, e2fsprogs, findutils, gzip @@ -11,11 +11,11 @@ with lib; python3Packages.buildPythonApplication rec { pname = "virt-manager"; - version = "3.1.0"; + version = "3.2.0"; src = fetchurl { - url = "http://virt-manager.org/download/sources/virt-manager/${pname}-${version}.tar.gz"; - sha256 = "0al34lxlywqnj98hdm72a38zk8ns91wkqgrc3h1mhv1kikd8pjfc"; + url = "https://releases.pagure.org/virt-manager/${pname}-${version}.tar.gz"; + sha256 = "11kvpzcmyir91qz0dsnk7748jbb4wr8mrc744w117qc91pcy6vrb"; }; nativeBuildInputs = [ diff --git a/pkgs/applications/virtualization/xen/4.10.nix b/pkgs/applications/virtualization/xen/4.10.nix index bc9003e128a..765baa0a3b4 100644 --- a/pkgs/applications/virtualization/xen/4.10.nix +++ b/pkgs/applications/virtualization/xen/4.10.nix @@ -160,6 +160,9 @@ callPackage (import ./generic.nix (rec { "-Wno-error=address-of-packed-member" "-Wno-error=format-overflow" "-Wno-error=absolute-value" + # Fix build with GCC 10 + "-Wno-error=enum-conversion" + "-Wno-error=zero-length-bounds" ]; postPatch = '' diff --git a/pkgs/applications/window-managers/leftwm/default.nix b/pkgs/applications/window-managers/leftwm/default.nix index bab0439bf8b..f4b72197f54 100644 --- a/pkgs/applications/window-managers/leftwm/default.nix +++ b/pkgs/applications/window-managers/leftwm/default.nix @@ -6,16 +6,16 @@ in rustPlatform.buildRustPackage rec { pname = "leftwm"; - version = "0.2.6"; + version = "0.2.7"; src = fetchFromGitHub { owner = "leftwm"; repo = "leftwm"; rev = version; - sha256 = "sha256-hirT0gScC2LFPvygywgPiSVDUE/Zd++62wc26HlufYU="; + sha256 = "sha256-nRPt+Tyfq62o+3KjsXkHQHUMMslHFGNBd3s2pTb7l4w="; }; - cargoSha256 = "sha256-j57LHPU3U3ipUGQDrZ8KCuELOVJ3BxhLXsJePOO6rTM="; + cargoSha256 = "sha256-lmzA7XM8B5QJI4Wo0cKeMR3+np6jT6mdGzTry4g87ng="; nativeBuildInputs = [ makeWrapper ]; buildInputs = [ libX11 libXinerama ]; diff --git a/pkgs/applications/window-managers/phosh/default.nix b/pkgs/applications/window-managers/phosh/default.nix new file mode 100644 index 00000000000..95faee74dbc --- /dev/null +++ b/pkgs/applications/window-managers/phosh/default.nix @@ -0,0 +1,158 @@ +{ lib +, stdenv +, fetchFromGitLab +, meson +, ninja +, pkg-config +, python3 +, wrapGAppsHook +, libhandy +, libxkbcommon +, pulseaudio +, glib +, gtk3 +, gnome3 +, gcr +, pam +, systemd +, upower +, wayland +, dbus +, xvfb_run +, phoc +, feedbackd +, networkmanager +, polkit +, libsecret +, writeText +}: + +let + gvc = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "libgnome-volume-control"; + rev = "ae1a34aafce7026b8c0f65a43c9192d756fe1057"; + sha256 = "0a4qh5pgyjki904qf7qmvqz2ksxb0p8xhgl2aixfbhixn0pw6saw"; + }; + + executable = writeText "phosh" '' + PHOC_INI=@out@/share/phosh/phoc.ini + GNOME_SESSION_ARGS="--disable-acceleration-check --session=phosh --debug" + + if [ -f /etc/phosh/phoc.ini ]; then + PHOC_INI=/etc/phosh/phoc.ini + elif [ -f /etc/phosh/rootston.ini ]; then + # honor old configs + PHOC_INI=/etc/phosh/rootston.ini + fi + + # Run gnome-session through a login shell so it picks + # variables from /etc/profile.d (XDG_*) + [ -n "$WLR_BACKENDS" ] || WLR_BACKENDS=drm,libinput + export WLR_BACKENDS + exec "${phoc}/bin/phoc" -C "$PHOC_INI" \ + -E "bash -lc 'XDG_DATA_DIRS=$XDG_DATA_DIRS:\$XDG_DATA_DIRS ${gnome3.gnome-session}/bin/gnome-session $GNOME_SESSION_ARGS'" + ''; + +in stdenv.mkDerivation rec { + pname = "phosh"; + version = "0.10.2"; + + src = fetchFromGitLab { + domain = "source.puri.sm"; + owner = "Librem5"; + repo = pname; + rev = "v${version}"; + sha256 = "07i8wpzl7311dcf9s57s96qh1v672c75wv6cllrxx7fsmpf8fhx4"; + }; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3 + wrapGAppsHook + ]; + + buildInputs = [ + phoc + libhandy + libsecret + libxkbcommon + pulseaudio + glib + gcr + networkmanager + polkit + gnome3.gnome-control-center + gnome3.gnome-desktop + gnome3.gnome-session + gtk3 + pam + systemd + upower + wayland + feedbackd + ]; + + checkInputs = [ + dbus + xvfb_run + ]; + + # Temporarily disabled - Test is broken (SIGABRT) + doCheck = false; + + postUnpack = '' + rmdir $sourceRoot/subprojects/gvc + ln -s ${gvc} $sourceRoot/subprojects/gvc + ''; + + postPatch = '' + chmod +x build-aux/post_install.py + patchShebangs build-aux/post_install.py + ''; + + checkPhase = '' + runHook preCheck + export NO_AT_BRIDGE=1 + xvfb-run -s '-screen 0 800x600x24' dbus-run-session \ + --config-file=${dbus.daemon}/share/dbus-1/session.conf \ + meson test --print-errorlogs + runHook postCheck + ''; + + # Replace the launcher script with ours + postInstall = '' + substituteAll ${executable} $out/bin/phosh + ''; + + # Depends on GSettings schemas in gnome-shell + preFixup = '' + gappsWrapperArgs+=( + --prefix XDG_DATA_DIRS : "${gnome3.gnome-shell}/share/gsettings-schemas/${gnome3.gnome-shell.name}" + ) + ''; + + postFixup = '' + mkdir -p $out/share/wayland-sessions + ln -s $out/share/applications/sm.puri.Phosh.desktop $out/share/wayland-sessions/ + # The OSK0.desktop points to a dummy stub that's not needed + rm $out/share/applications/sm.puri.OSK0.desktop + ''; + + passthru = { + providedSessions = [ + "sm.puri.Phosh" + ]; + }; + + meta = with lib; { + description = "A pure Wayland shell prototype for GNOME on mobile devices"; + homepage = "https://source.puri.sm/Librem5/phosh"; + license = licenses.gpl3Plus; + maintainers = with maintainers; [ archseer jtojnar masipcat zhaofengli ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix index 1911d08d2a1..868686bd5c0 100644 --- a/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix +++ b/pkgs/build-support/build-fhs-userenv-bubblewrap/default.nix @@ -14,6 +14,7 @@ args @ { , unshareNet ? false , unshareUts ? true , unshareCgroup ? true +, dieWithParent ? true , ... }: @@ -22,7 +23,7 @@ let buildFHSEnv = callPackage ./env.nix { }; env = buildFHSEnv (removeAttrs args [ - "runScript" "extraInstallCommands" "meta" "passthru" + "runScript" "extraInstallCommands" "meta" "passthru" "dieWithParent" "unshareUser" "unshareCgroup" "unshareUts" "unshareNet" "unsharePid" "unshareIpc" ]); @@ -30,6 +31,13 @@ let files = [ # NixOS Compatibility "static" + "nix" # mainly for nixUnstable users, but also for access to nix/netrc + # Shells + "bashrc" + "zshenv" + "zshrc" + "zinputrc" + "zprofile" # Users, Groups, NSS "passwd" "group" @@ -136,7 +144,7 @@ let ${lib.optionalString unshareNet "--unshare-net"} ${lib.optionalString unshareUts "--unshare-uts"} ${lib.optionalString unshareCgroup "--unshare-cgroup"} - --die-with-parent + ${lib.optionalString dieWithParent "--die-with-parent"} --ro-bind /nix /nix # Our glibc will look for the cache in its own path in `/nix/store`. # As such, we need a cache to exist there, because pressure-vessel diff --git a/pkgs/data/documentation/man-pages-posix/default.nix b/pkgs/data/documentation/man-pages-posix/default.nix index ca7fdf1d4be..1d9ddda377b 100644 --- a/pkgs/data/documentation/man-pages-posix/default.nix +++ b/pkgs/data/documentation/man-pages-posix/default.nix @@ -1,11 +1,16 @@ {lib, stdenv, fetchurl}: +let + year = "2017"; + minor = "a"; +in + stdenv.mkDerivation rec { pname = "man-pages-posix"; - version = "2017-a"; + version = "${year}${minor}"; src = fetchurl { - url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${version}.tar.xz"; + url = "mirror://kernel/linux/docs/man-pages/man-pages-posix/${pname}-${year}-${minor}.tar.xz"; sha256 = "ce67bb25b5048b20dad772e405a83f4bc70faf051afa289361c81f9660318bc3"; }; diff --git a/pkgs/data/icons/papirus-icon-theme/default.nix b/pkgs/data/icons/papirus-icon-theme/default.nix index ff18baf75f4..bd9ab1bb77b 100644 --- a/pkgs/data/icons/papirus-icon-theme/default.nix +++ b/pkgs/data/icons/papirus-icon-theme/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "papirus-icon-theme"; - version = "20210401"; + version = "20210501"; src = fetchFromGitHub { owner = "PapirusDevelopmentTeam"; repo = pname; rev = version; - sha256 = "sha256-t0zoeIpj+0QVH1wmbEIJdqzEDOGzpclePv+bcZgtnwo="; + sha256 = "sha256-3KH0oLeCev7WuoIOh4KBTiHTn2/aQlVrW5dpO+LSRT4="; }; nativeBuildInputs = [ diff --git a/pkgs/data/icons/tela-icon-theme/default.nix b/pkgs/data/icons/tela-icon-theme/default.nix index 7bbad945206..aaf32fdf16d 100644 --- a/pkgs/data/icons/tela-icon-theme/default.nix +++ b/pkgs/data/icons/tela-icon-theme/default.nix @@ -1,6 +1,6 @@ -{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenv }: +{ fetchFromGitHub, gtk3, hicolor-icon-theme, jdupes, lib, stdenvNoCC }: -stdenv.mkDerivation rec { +stdenvNoCC.mkDerivation rec { pname = "tela-icon-theme"; version = "2021-01-21"; @@ -17,19 +17,25 @@ stdenv.mkDerivation rec { dontDropIconThemeCache = true; + # These fixup steps are slow and unnecessary. + dontPatchELF = true; + dontRewriteSymlinks = true; + installPhase = '' runHook preInstall + patchShebangs install.sh mkdir -p $out/share/icons ./install.sh -a -d $out/share/icons jdupes -l -r $out/share/icons + runHook postInstall ''; meta = with lib; { description = "A flat colorful Design icon theme"; homepage = "https://github.com/vinceliuice/tela-icon-theme"; - license = licenses.gpl3Plus; + license = licenses.gpl3Only; platforms = platforms.unix; maintainers = with maintainers; [ figsoda ]; }; diff --git a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix index a1b06806740..3713bcf0bb5 100644 --- a/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix +++ b/pkgs/desktops/lxqt/lxqt-powermanagement/default.nix @@ -18,13 +18,13 @@ mkDerivation rec { pname = "lxqt-powermanagement"; - version = "0.17.0"; + version = "0.17.1"; src = fetchFromGitHub { owner = "lxqt"; repo = pname; rev = version; - sha256 = "1ikkksg5k7jwph7060h8wyk7bdsywvhl47zp23j5gcig0nk62ggf"; + sha256 = "04prx15l05kw97mwajc8yi2s7p3n6amzs5jnnmh9payxzp6glzmk"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/lxqt/obconf-qt/default.nix b/pkgs/desktops/lxqt/obconf-qt/default.nix index 442c4c940b0..18d3f9899b4 100644 --- a/pkgs/desktops/lxqt/obconf-qt/default.nix +++ b/pkgs/desktops/lxqt/obconf-qt/default.nix @@ -15,13 +15,13 @@ mkDerivation rec { pname = "obconf-qt"; - version = "0.16.0"; + version = "0.16.1"; src = fetchFromGitHub { owner = "lxqt"; repo = pname; rev = version; - sha256 = "0kk5scp1j0hqi27q3yl9cg73ybxzm22nj96pa8adhdn4shg9bpac"; + sha256 = "1nw2r3h7ynmygpslnzjn40vvickd988nm31wy2b645xcck89q4rm"; }; nativeBuildInputs = [ diff --git a/pkgs/desktops/mate/mate-session-manager/default.nix b/pkgs/desktops/mate/mate-session-manager/default.nix index c0cd12bd273..f790b0f65dc 100644 --- a/pkgs/desktops/mate/mate-session-manager/default.nix +++ b/pkgs/desktops/mate/mate-session-manager/default.nix @@ -5,11 +5,11 @@ stdenv.mkDerivation rec { pname = "mate-session-manager"; - version = "1.24.2"; + version = "1.24.3"; src = fetchurl { url = "https://pub.mate-desktop.org/releases/${lib.versions.majorMinor version}/${pname}-${version}.tar.xz"; - sha256 = "1jcb5k2fx2rwwbrslgv1xlzaiwiwjnxjwnp503qf8cg89w69q2vb"; + sha256 = "18mhv8dq18hvx28gi88c9499s3s1nsq55m64sas8fqlvnp2sx84h"; }; patches = [ diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix index b9ff011f3be..4b7c258ca59 100644 --- a/pkgs/desktops/xfce/applications/gigolo/default.nix +++ b/pkgs/desktops/xfce/applications/gigolo/default.nix @@ -1,4 +1,4 @@ -{ lib, mkXfceDerivation, gtk3, gvfs, glib }: +{ lib, mkXfceDerivation, gtk3, glib }: mkXfceDerivation { category = "apps"; @@ -8,12 +8,7 @@ mkXfceDerivation { sha256 = "8UDb4H3zxRKx2y+MRsozQoR3es0fs5ooR/5wBIE11bY="; - buildInputs = [ gtk3 glib gvfs ]; - - postPatch = '' - # exo-csource has been dropped from exo - substituteInPlace src/Makefile.am --replace exo-csource xdt-csource - ''; + buildInputs = [ gtk3 glib ]; meta = { description = "A frontend to easily manage connections to remote filesystems"; diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix index cc94683ddde..e220e29f3ed 100644 --- a/pkgs/desktops/xfce/core/thunar/default.nix +++ b/pkgs/desktops/xfce/core/thunar/default.nix @@ -12,7 +12,6 @@ , libxslt , xfconf , gobject-introspection -, gvfs , makeWrapper , symlinkJoin , thunarPlugins ? [] @@ -35,7 +34,6 @@ let unwrapped = mkXfceDerivation { exo gdk-pixbuf gtk3 - gvfs libX11 libgudev libnotify diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index 12f487f1784..1b7877cd79d 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -15,9 +15,6 @@ lib.makeScope pkgs.newScope (self: with self; { automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh; - # Samba is a rather heavy dependency - gvfs = pkgs.gvfs.override { samba = null; }; - #### CORE exo = callPackage ./core/exo { }; diff --git a/pkgs/development/compilers/nim/default.nix b/pkgs/development/compilers/nim/default.nix index 676e35b06bb..21d1017a675 100644 --- a/pkgs/development/compilers/nim/default.nix +++ b/pkgs/development/compilers/nim/default.nix @@ -95,12 +95,12 @@ in { nim-unwrapped = stdenv.mkDerivation rec { pname = "nim-unwrapped"; - version = "1.4.4"; + version = "1.4.6"; strictDeps = true; src = fetchurl { url = "https://nim-lang.org/download/nim-${version}.tar.xz"; - sha256 = "03k642nnjca0s6jlbn1v4jld51mbkix97jli4ky74gqlxyfp4wvd"; + hash = "sha256-D7wPkoLP/oXembxHv6h2Ulud3aKi6uVcGFoIgEuY070="; }; buildInputs = [ boehmgc openssl pcre readline sqlite ]; diff --git a/pkgs/development/compilers/ophis/default.nix b/pkgs/development/compilers/ophis/default.nix index f28513a9bb2..2ddfa849b66 100644 --- a/pkgs/development/compilers/ophis/default.nix +++ b/pkgs/development/compilers/ophis/default.nix @@ -11,7 +11,7 @@ buildPythonApplication rec { sha256 = "2x8vwLTSngqQqmVrVh/mM4peATgaRqOSwrfm5XCkg/g="; }; - sourceRoot = "./src"; + sourceRoot = "${src.name}/src"; meta = with lib; { homepage = "http://michaelcmartin.github.io/Ophis/"; diff --git a/pkgs/development/interpreters/j/default.nix b/pkgs/development/interpreters/j/default.nix index 8875a9cf55e..e41d71ef960 100644 --- a/pkgs/development/interpreters/j/default.nix +++ b/pkgs/development/interpreters/j/default.nix @@ -4,13 +4,13 @@ stdenv.mkDerivation rec { pname = "j"; - version = "901"; - jtype = "release-f"; + version = "902"; + jtype = "release-b"; src = fetchFromGitHub { owner = "jsoftware"; repo = "jsource"; rev = "j${version}-${jtype}"; - sha256 = "1776021m0j1aanzwg60by83n53pw7i6afd5wplfzczwk8bywax4p"; + sha256 = "0j67vgikqflwjqacsdicasvyv1k54s2c8vjgwmf0ix7l41p4xqz0"; name = "jsource"; }; diff --git a/pkgs/development/interpreters/mujs/default.nix b/pkgs/development/interpreters/mujs/default.nix index d9b52af9254..46f86f85fc3 100644 --- a/pkgs/development/interpreters/mujs/default.nix +++ b/pkgs/development/interpreters/mujs/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "mujs"; - version = "1.1.1"; + version = "1.1.2"; src = fetchurl { url = "https://mujs.com/downloads/mujs-${version}.tar.xz"; - sha256 = "sha256-meYfyWGfHVULVjVyA7NJ2Ih9CjbffblWc1yijU/3e7A="; + sha256 = "sha256-cZ6IK7fZhkDvoWM4Hpto7xzjXIekIuKqQZDJ5AIlh10="; }; buildInputs = [ readline ]; diff --git a/pkgs/development/java-modules/postgresql_jdbc/default.nix b/pkgs/development/java-modules/postgresql_jdbc/default.nix index e7968cf80c0..524273e080f 100644 --- a/pkgs/development/java-modules/postgresql_jdbc/default.nix +++ b/pkgs/development/java-modules/postgresql_jdbc/default.nix @@ -2,19 +2,21 @@ stdenv.mkDerivation rec { pname = "postgresql-jdbc"; - version = "42.2.5"; + version = "42.2.20"; src = fetchMavenArtifact { artifactId = "postgresql"; groupId = "org.postgresql"; - sha256 = "1p0cbb7ka41xxipzjy81hmcndkqynav22xyipkg7qdqrqvw4dykz"; + sha256 = "0kjilsrz9shymfki48kg1q84la1870ixlh2lnfw347x8mqw2k2vh"; inherit version; }; phases = [ "installPhase" ]; installPhase = '' + runHook preInstall install -m444 -D $src/share/java/*postgresql-${version}.jar $out/share/java/postgresql-jdbc.jar + runHook postInstall ''; meta = with lib; { diff --git a/pkgs/development/libraries/CGAL/default.nix b/pkgs/development/libraries/CGAL/default.nix index 7ff9ac43343..bd8edc14a8b 100644 --- a/pkgs/development/libraries/CGAL/default.nix +++ b/pkgs/development/libraries/CGAL/default.nix @@ -8,13 +8,13 @@ stdenv.mkDerivation rec { pname = "cgal"; - version = "5.2"; + version = "5.2.1"; src = fetchFromGitHub { owner = "CGAL"; repo = "releases"; rev = "CGAL-${version}"; - sha256 = "1+ov1fu79MXoW0D8odInMZPFMYg69st//PoMW42oXpA="; + sha256 = "sha256-sJyeehgt84rLX8ZBYIbFgHLG2aJDDHEj5GeVnQhjiOQ="; }; # note: optional component libCGAL_ImageIO would need zlib and opengl; diff --git a/pkgs/development/libraries/arrow-cpp/default.nix b/pkgs/development/libraries/arrow-cpp/default.nix index 8a9074ccb90..ac53ae3bbd4 100644 --- a/pkgs/development/libraries/arrow-cpp/default.nix +++ b/pkgs/development/libraries/arrow-cpp/default.nix @@ -1,6 +1,7 @@ -{ stdenv, lib, fetchurl, fetchFromGitHub, fetchpatch, fixDarwinDylibNames +{ stdenv, lib, fetchurl, fetchFromGitHub, fixDarwinDylibNames , autoconf, boost, brotli, cmake, flatbuffers, gflags, glog, gtest, lz4 -, perl, python3, rapidjson, re2, snappy, thrift, utf8proc, which, zlib, zstd +, perl, python3, rapidjson, re2, snappy, thrift, utf8proc, which, xsimd +, zlib, zstd , enableShared ? !stdenv.hostPlatform.isStatic }: @@ -15,18 +16,18 @@ let parquet-testing = fetchFromGitHub { owner = "apache"; repo = "parquet-testing"; - rev = "e31fe1a02c9e9f271e4bfb8002d403c52f1ef8eb"; - sha256 = "02f51dvx8w5mw0bx3hn70hkn55mn1m65kzdps1ifvga9hghpy0sh"; + rev = "ddd898958803cb89b7156c6350584d1cda0fe8de"; + sha256 = "0n16xqlpxn2ryp43w8pppxrbwmllx6sk4hv3ycgikfj57nd3ibc0"; }; in stdenv.mkDerivation rec { pname = "arrow-cpp"; - version = "3.0.0"; + version = "4.0.0"; src = fetchurl { url = "mirror://apache/arrow/arrow-${version}/apache-arrow-${version}.tar.gz"; - sha256 = "0yp2b02wrc3s50zd56fmpz4nhhbihp0zw329v4zizaipwlxwrhkk"; + sha256 = "1bj9jr0pgq9f2nyzqiyj3cl0hcx3c83z2ym6rpdkp59ff2zx0caa"; }; sourceRoot = "apache-arrow-${version}/cpp"; @@ -90,6 +91,10 @@ in stdenv.mkDerivation rec { "-DARROW_VERBOSE_THIRDPARTY_BUILD=ON" "-DARROW_DEPENDENCY_SOURCE=SYSTEM" "-DARROW_DEPENDENCY_USE_SHARED=${if enableShared then "ON" else "OFF"}" + "-DARROW_COMPUTE=ON" + "-DARROW_CSV=ON" + "-DARROW_DATASET=ON" + "-DARROW_JSON=ON" "-DARROW_PLASMA=ON" # Disable Python for static mode because openblas is currently broken there. "-DARROW_PYTHON=${if enableShared then "ON" else "OFF"}" @@ -111,6 +116,8 @@ in stdenv.mkDerivation rec { "-DCMAKE_INSTALL_RPATH=@loader_path/../lib" # needed for tools executables ] ++ lib.optional (!stdenv.isx86_64) "-DARROW_USE_SIMD=OFF"; + ARROW_XSIMD_URL = xsimd.src; + doInstallCheck = true; ARROW_TEST_DATA = if doInstallCheck then "${arrow-testing}/data" else null; diff --git a/pkgs/development/libraries/aws-c-common/default.nix b/pkgs/development/libraries/aws-c-common/default.nix index 988a27a5878..580eaec2ebe 100644 --- a/pkgs/development/libraries/aws-c-common/default.nix +++ b/pkgs/development/libraries/aws-c-common/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "aws-c-common"; - version = "0.5.4"; + version = "0.5.5"; src = fetchFromGitHub { owner = "awslabs"; repo = pname; rev = "v${version}"; - sha256 = "sha256-NH66WAOqAaMm/IIu8L5R7CUFhX56yTLH7mPY1Q4jDC4="; + sha256 = "sha256-rGv+fa+UF/f6mY8CmZpkjP98CAcAQCTjL3OI7HsUHcU="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/libraries/cjose/default.nix b/pkgs/development/libraries/cjose/default.nix new file mode 100644 index 00000000000..57b5c6c1b8b --- /dev/null +++ b/pkgs/development/libraries/cjose/default.nix @@ -0,0 +1,40 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, doxygen +, check +, jansson +, openssl +}: + +stdenv.mkDerivation rec { + pname = "cjose"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "cisco"; + repo = "cjose"; + rev = version; + sha256 = "1msyjwmylb5c7jc16ryx3xb9cdwx682ihsm0ni766y6dfwx8bkhp"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config doxygen ]; + buildInputs = [ jansson openssl ]; + checkInputs = [ check ]; + + configureFlags = [ + "--with-jansson=${jansson}" + "--with-openssl=${openssl.dev}" + ]; + + meta = with lib; { + homepage = "https://github.com/cisco/cjose"; + changelog = "https://github.com/cisco/cjose/blob/${version}/CHANGELOG.md"; + description = "C library for Javascript Object Signing and Encryption"; + license = licenses.mit; + maintainers = with maintainers; [ midchildan ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/libraries/clanlib/default.nix b/pkgs/development/libraries/clanlib/default.nix new file mode 100644 index 00000000000..15fd9cd7286 --- /dev/null +++ b/pkgs/development/libraries/clanlib/default.nix @@ -0,0 +1,50 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, libGL +, libpng +, pkg-config +, xorg +, file +, freetype +, fontconfig +, xlibsWrapper +, alsaLib +, libXrender +}: + +stdenv.mkDerivation rec { + pname = "clanlib"; + version = "4.1.0"; + + src = fetchFromGitHub { + repo = "ClanLib"; + owner = "sphair"; + rev = "v${version}"; + sha256 = "sha256-SVsLWcTP+PCIGDWLkadMpJPj4coLK9dJrW4sc2+HotE="; + }; + + nativeBuildInputs = [ + pkg-config + autoreconfHook + ]; + buildInputs = [ + libGL + libpng + xorg.xorgproto + freetype + fontconfig + xlibsWrapper + alsaLib + libXrender + ]; + + meta = with lib; { + homepage = "https://github.com/sphair/ClanLib"; + description = "A cross platform toolkit library with a primary focus on game creation"; + license = licenses.mit; + maintainers = with maintainers; [ nixinator ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch b/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch index 9eb53acebb0..63948ab4fad 100644 --- a/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch +++ b/pkgs/development/libraries/geoclue/add-option-for-installation-sysconfdir.patch @@ -65,17 +65,20 @@ index fde6fa3..39b7b0a 100644 conf.set_quoted('LOCALEDIR', localedir) -conf.set_quoted('SYSCONFDIR', sysconfdir) +conf.set_quoted('SYSCONFDIR', get_option('sysconfdir')) + conf.set_quoted('MOZILLA_API_KEY', get_option('mozilla-api-key')) conf.set10('GCLUE_USE_3G_SOURCE', get_option('3g-source')) conf.set10('GCLUE_USE_CDMA_SOURCE', get_option('cdma-source')) - conf.set10('GCLUE_USE_MODEM_GPS_SOURCE', get_option('modem-gps-source')) diff --git a/meson_options.txt b/meson_options.txt index 83bc60e..b726329 100644 --- a/meson_options.txt +++ b/meson_options.txt -@@ -34,3 +34,6 @@ option('systemd-system-unit-dir', +@@ -34,6 +34,9 @@ option('systemd-system-unit-dir', option('dbus-srv-user', type: 'string', value: 'root', description: 'The user (existing) as which the service will run') +option('sysconfdir_install', + type: 'string', value: '', + description: 'sysconfdir to use during installation') + option('mozilla-api-key', + type: 'string', value: 'geoclue', + description: 'Your API key for Mozilla Location Service') diff --git a/pkgs/development/libraries/geoclue/default.nix b/pkgs/development/libraries/geoclue/default.nix index 711f1a444b3..360094ea765 100644 --- a/pkgs/development/libraries/geoclue/default.nix +++ b/pkgs/development/libraries/geoclue/default.nix @@ -1,50 +1,98 @@ -{ lib, stdenv, fetchFromGitLab, intltool, meson, ninja, pkg-config, gtk-doc, docbook_xsl, docbook_xml_dtd_412, glib, json-glib, libsoup, libnotify, gdk-pixbuf -, modemmanager, avahi, glib-networking, python3, wrapGAppsHook, gobject-introspection, vala +{ lib +, stdenv +, fetchFromGitLab +, fetchpatch +, intltool +, meson +, ninja +, pkg-config +, gtk-doc +, docbook-xsl-nons +, docbook_xml_dtd_412 +, glib +, json-glib +, libsoup +, libnotify +, gdk-pixbuf +, modemmanager +, avahi +, glib-networking +, python3 +, wrapGAppsHook +, gobject-introspection +, vala , withDemoAgent ? false }: -with lib; - stdenv.mkDerivation rec { pname = "geoclue"; - version = "2.5.6"; + version = "2.5.7"; + + outputs = [ "out" "dev" "devdoc" ]; src = fetchFromGitLab { domain = "gitlab.freedesktop.org"; owner = pname; repo = pname; rev = version; - sha256 = "13fk6n4j74lvcsrg3kwbw1mkxgcr3iy9dnysmy0pclfsym8z5m5m"; + sha256 = "1mv1vs4q94bqkmgkj53jcsw1x31kczwydyy3r27a7fycgzmii1pj"; }; patches = [ + # Make the Mozilla API key configurable + # https://gitlab.freedesktop.org/geoclue/geoclue/merge_requests/54 (only partially backported) + (fetchpatch { + url = "https://gitlab.freedesktop.org/geoclue/geoclue/commit/95c9ad4dc176860c85a07d0db4cb4179929bdb54.patch"; + sha256 = "/lq/dLBJl2vf16tt7emYoTtXY6iUw+4s2XcABUHp3Kc="; + }) + (fetchpatch { + url = "https://gitlab.freedesktop.org/geoclue/geoclue/commit/1a00809a0d89b0849a57647c878d192354247a33.patch"; + sha256 = "6FuiukgFWg2cEKt8LlKP4E0rfSH/ZQgk6Ip1mGJpNFQ="; + }) + ./add-option-for-installation-sysconfdir.patch ]; - outputs = [ "out" "dev" "devdoc" ]; - nativeBuildInputs = [ - pkg-config intltool meson ninja wrapGAppsHook python3 vala gobject-introspection + pkg-config + intltool + meson + ninja + wrapGAppsHook + python3 + vala + gobject-introspection # devdoc - gtk-doc docbook_xsl docbook_xml_dtd_412 + gtk-doc + docbook-xsl-nons + docbook_xml_dtd_412 ]; buildInputs = [ - glib json-glib libsoup avahi - ] ++ optionals withDemoAgent [ + glib + json-glib + libsoup + avahi + ] ++ lib.optionals withDemoAgent [ libnotify gdk-pixbuf - ] ++ optionals (!stdenv.isDarwin) [ modemmanager ]; + ] ++ lib.optionals (!stdenv.isDarwin) [ + modemmanager + ]; - propagatedBuildInputs = [ glib glib-networking ]; + propagatedBuildInputs = [ + glib + glib-networking + ]; mesonFlags = [ "-Dsystemd-system-unit-dir=${placeholder "out"}/etc/systemd/system" - "-Ddemo-agent=${boolToString withDemoAgent}" + "-Ddemo-agent=${lib.boolToString withDemoAgent}" "--sysconfdir=/etc" "-Dsysconfdir_install=${placeholder "out"}/etc" + "-Dmozilla-api-key=5c28d1f4-9511-47ff-b11a-2bef80fc177c" "-Ddbus-srv-user=geoclue" "-Ddbus-sys-dir=${placeholder "out"}/share/dbus-1/system.d" - ] ++ optionals stdenv.isDarwin [ + ] ++ lib.optionals stdenv.isDarwin [ "-D3g-source=false" "-Dcdma-source=false" "-Dmodem-gps-source=false" diff --git a/pkgs/development/libraries/grpc/default.nix b/pkgs/development/libraries/grpc/default.nix index 9dd5150f17d..cb2c0e79dd5 100644 --- a/pkgs/development/libraries/grpc/default.nix +++ b/pkgs/development/libraries/grpc/default.nix @@ -3,13 +3,13 @@ }: stdenv.mkDerivation rec { - version = "1.37.0"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too + version = "1.37.1"; # N.B: if you change this, change pythonPackages.grpcio-tools to a matching version too pname = "grpc"; src = fetchFromGitHub { owner = "grpc"; repo = "grpc"; rev = "v${version}"; - sha256 = "0q3hcnq351j0qm0gsbaxbsnz1gd9w3bk4cazkvq4l2lfmmiw7z56"; + sha256 = "0mjlz2cax5v37g7xnrbf5px88bm7xzl4a5pds112yk096d7wmxm5"; fetchSubmodules = true; }; patches = [ diff --git a/pkgs/development/libraries/hyperscan/default.nix b/pkgs/development/libraries/hyperscan/default.nix index f160afb99b7..4093578156a 100644 --- a/pkgs/development/libraries/hyperscan/default.nix +++ b/pkgs/development/libraries/hyperscan/default.nix @@ -11,12 +11,12 @@ stdenv.mkDerivation rec { pname = "hyperscan"; - version = "5.3.0"; + version = "5.4.0"; src = fetchFromGitHub { owner = "intel"; repo = pname; - sha256 = "0psfkzmyhqfrs750b10d0xv37rcz6nwsw1mnc7zagijckwis2wvj"; + sha256 = "sha256-AJAjaXVnGqIlMk+gb6lpTLUdZr8nxn2XSW4fj6j/cmk="; rev = "v${version}"; }; diff --git a/pkgs/development/libraries/libadwaita/default.nix b/pkgs/development/libraries/libadwaita/default.nix new file mode 100644 index 00000000000..486326f15f8 --- /dev/null +++ b/pkgs/development/libraries/libadwaita/default.nix @@ -0,0 +1,67 @@ +{ lib +, stdenv +, fetchFromGitLab +, docbook-xsl-nons +, gtk-doc +, meson +, ninja +, pkg-config +, sassc +, vala +, gobject-introspection +, gtk4 +, xvfb_run +}: + +stdenv.mkDerivation rec { + pname = "libadwaita"; + version = "unstable-2021-05-01"; + + outputs = [ "out" "dev" "devdoc" ]; + outputBin = "dev"; + + src = fetchFromGitLab { + domain = "gitlab.gnome.org"; + owner = "GNOME"; + repo = "libadwaita"; + rev = "8d66b987a19979d9d7b85dacc6bad5ce0c8743fe"; + sha256 = "0i3wav6jsyi4w4i2r1rad769m5y5s9djj4zqb7dfyh0bad24ba3q"; + }; + + nativeBuildInputs = [ + docbook-xsl-nons + gtk-doc + meson + ninja + pkg-config + sassc + vala + ]; + + mesonFlags = [ + "-Dgtk_doc=true" + ]; + + buildInputs = [ + gobject-introspection + gtk4 + ]; + + checkInputs = [ + xvfb_run + ]; + + doCheck = true; + + checkPhase = '' + xvfb-run meson test + ''; + + meta = with lib; { + description = "Library to help with developing UI for mobile devices using GTK/GNOME"; + homepage = "https://gitlab.gnome.org/GNOME/libadwaita"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ dotlambda ]; + platforms = platforms.linux; + }; +} diff --git a/pkgs/development/libraries/libfaketime/default.nix b/pkgs/development/libraries/libfaketime/default.nix index ced1c3e7bb9..34c957715dd 100644 --- a/pkgs/development/libraries/libfaketime/default.nix +++ b/pkgs/development/libraries/libfaketime/default.nix @@ -39,5 +39,6 @@ stdenv.mkDerivation rec { license = licenses.gpl2; platforms = platforms.all; maintainers = [ maintainers.bjornfor ]; + mainProgram = "faketime"; }; } diff --git a/pkgs/development/libraries/malcontent/default.nix b/pkgs/development/libraries/malcontent/default.nix index 641f3b87c3f..82635ae66d6 100644 --- a/pkgs/development/libraries/malcontent/default.nix +++ b/pkgs/development/libraries/malcontent/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { pname = "malcontent"; - version = "0.10.0"; + version = "0.10.1"; outputs = [ "bin" "out" "lib" "pam" "dev" "man" "installedTests" ]; @@ -28,7 +28,7 @@ stdenv.mkDerivation rec { owner = "pwithnall"; repo = pname; rev = version; - sha256 = "1b6rgf7h9gj2kw1b7ba0mvhsb89riwf9p4pviqjfzd1i5nmbmnyx"; + sha256 = "sha256-GgY+E+1gzmiAAALzdKu1CjN3xPeVMhbmNLqJNB1zHaU="; }; patches = [ diff --git a/pkgs/development/libraries/netcdf-cxx4/default.nix b/pkgs/development/libraries/netcdf-cxx4/default.nix index b594a672140..494f4bf7157 100644 --- a/pkgs/development/libraries/netcdf-cxx4/default.nix +++ b/pkgs/development/libraries/netcdf-cxx4/default.nix @@ -1,15 +1,22 @@ -{ lib, stdenv, fetchurl, netcdf, hdf5, curl }: +{ lib, stdenv, fetchzip, netcdf, hdf5, curl, cmake, ninja }: stdenv.mkDerivation rec { pname = "netcdf-cxx4"; - version = "4.3.0"; + version = "4.3.1"; - src = fetchurl { + src = fetchzip { url = "https://github.com/Unidata/netcdf-cxx4/archive/v${version}.tar.gz"; - sha256 = "13zi8cbk18gggx1c12a580wdsbl714lw68a1wg7c86x0sybirni5"; + sha256 = "05kydd5z9iil5iv4fp7l11cicda5n5lsg5sdmsmc55xpspnsg7hr"; }; + preConfigure = '' + cmakeFlags+="-Dabs_top_srcdir=$(readlink -f ./)" + ''; + + nativeBuildInputs = [ cmake ninja ]; buildInputs = [ netcdf hdf5 curl ]; + doCheck = true; + enableParallelChecking = false; meta = { description = "C++ API to manipulate netcdf files"; diff --git a/pkgs/development/libraries/ogre/default.nix b/pkgs/development/libraries/ogre/default.nix index ae65da3f418..d097dc623e7 100644 --- a/pkgs/development/libraries/ogre/default.nix +++ b/pkgs/development/libraries/ogre/default.nix @@ -6,6 +6,7 @@ , libXxf86vm, libICE , unzip , libXrender +, SDL2 , withNvidiaCg ? false, nvidia_cg_toolkit , withSamples ? false }: @@ -18,7 +19,7 @@ stdenv.mkDerivation rec { sha256 = "1iv6k0dwdzg5nnzw2mcgcl663q4f7p2kj7nhs8afnsikrzxxgsi4"; }; - cmakeFlags = [ "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ] + cmakeFlags = [ "-DOGRE_BUILD_DEPENDENCIES=OFF" "-DOGRE_BUILD_SAMPLES=${toString withSamples}" ] ++ map (x: "-DOGRE_BUILD_PLUGIN_${x}=on") ([ "BSP" "OCTREE" "PCZ" "PFX" ] ++ lib.optional withNvidiaCg "CG") ++ map (x: "-DOGRE_BUILD_RENDERSYSTEM_${x}=on") [ "GL" ]; @@ -32,6 +33,7 @@ stdenv.mkDerivation rec { libX11 libXmu libSM libXxf86vm libICE libXrender + SDL2 ] ++ lib.optional withNvidiaCg nvidia_cg_toolkit; meta = { diff --git a/pkgs/development/libraries/openscenegraph/default.nix b/pkgs/development/libraries/openscenegraph/default.nix index da7e9c755a0..6b446882ba1 100644 --- a/pkgs/development/libraries/openscenegraph/default.nix +++ b/pkgs/development/libraries/openscenegraph/default.nix @@ -11,7 +11,7 @@ curlSupport ? true, curl, colladaSupport ? false, opencollada, opencascadeSupport ? false, opencascade, - ffmpegSupport ? false, ffmpeg_3, + ffmpegSupport ? false, ffmpeg, nvttSupport ? false, nvidia-texture-tools, freetypeSupport ? true, freetype, svgSupport ? false, librsvg, @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { ++ lib.optional curlSupport curl ++ lib.optional colladaSupport opencollada ++ lib.optional opencascadeSupport opencascade - ++ lib.optional ffmpegSupport ffmpeg_3 + ++ lib.optional ffmpegSupport ffmpeg ++ lib.optional nvttSupport nvidia-texture-tools ++ lib.optional freetypeSupport freetype ++ lib.optional svgSupport librsvg diff --git a/pkgs/development/libraries/py3c/default.nix b/pkgs/development/libraries/py3c/default.nix index 2a89161ef38..eec051f0cc1 100644 --- a/pkgs/development/libraries/py3c/default.nix +++ b/pkgs/development/libraries/py3c/default.nix @@ -11,6 +11,11 @@ stdenv.mkDerivation rec { sha256 = "04i2z7hrig78clc59q3i1z2hh24g7z1bfvxznlzxv00d4s57nhpi"; }; + postPatch = lib.optionalString stdenv.cc.isClang '' + substituteInPlace test/setup.py \ + --replace "'-Werror', " "" + ''; + makeFlags = [ "prefix=${placeholder "out"}" ]; @@ -26,6 +31,6 @@ stdenv.mkDerivation rec { homepage = "https://github.com/encukou/py3c"; description = "Python 2/3 compatibility layer for C extensions"; license = licenses.mit; - maintainers = with maintainers; [ ajs124 ]; + maintainers = with maintainers; [ ajs124 dotlambda ]; }; } diff --git a/pkgs/development/libraries/quazip/default.nix b/pkgs/development/libraries/quazip/default.nix index a12d6cafe4a..4184f3276c0 100644 --- a/pkgs/development/libraries/quazip/default.nix +++ b/pkgs/development/libraries/quazip/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "quazip"; - version = "0.9.1"; + version = "1.1"; src = fetchFromGitHub { owner = "stachenov"; repo = pname; rev = "v${version}"; - sha256 = "11icgwv2xyxhd1hm1add51xv54zwkcqkg85d1xqlgiigvbm196iq"; + sha256 = "06srglrj6jvy5ngmidlgx03i0d5w91yhi7sf846wql00v8rvhc5h"; }; buildInputs = [ zlib qtbase ]; diff --git a/pkgs/development/libraries/science/math/cudnn/default.nix b/pkgs/development/libraries/science/math/cudnn/default.nix index d4c7fcac978..d2a5a8c2a79 100644 --- a/pkgs/development/libraries/science/math/cudnn/default.nix +++ b/pkgs/development/libraries/science/math/cudnn/default.nix @@ -30,12 +30,12 @@ in rec { cudnn_cudatoolkit_10 = cudnn_cudatoolkit_10_2; cudnn_cudatoolkit_11_0 = generic rec { - version = "8.1.0"; + version = "8.1.1"; cudatoolkit = cudatoolkit_11_0; # 8.1.0 is compatible with CUDA 11.0, 11.1, and 11.2: # https://docs.nvidia.com/deeplearning/cudnn/support-matrix/index.html#cudnn-cuda-hardware-versions - srcName = "cudnn-11.2-linux-x64-v8.1.0.77.tgz"; - sha256 = "sha256-2+gvrwcdkbqbzwBIAUatM/RiSC3+5WyvRHnBuNq+Pss="; + srcName = "cudnn-11.2-linux-x64-v8.1.1.33.tgz"; + hash = "sha256-mKh4TpKGLyABjSDCgbMNSgzZUfk2lPZDPM9K6cUCumo="; }; cudnn_cudatoolkit_11_1 = cudnn_cudatoolkit_11_0.override { diff --git a/pkgs/development/libraries/science/math/cudnn/generic.nix b/pkgs/development/libraries/science/math/cudnn/generic.nix index d9c19e6790c..f5a4fac1a90 100644 --- a/pkgs/development/libraries/science/math/cudnn/generic.nix +++ b/pkgs/development/libraries/science/math/cudnn/generic.nix @@ -1,8 +1,11 @@ { version , srcName -, sha256 +, hash ? null +, sha256 ? null }: +assert (hash != null) || (sha256 != null); + { stdenv , lib , cudatoolkit @@ -22,11 +25,13 @@ stdenv.mkDerivation { name = "cudatoolkit-${cudatoolkit.majorVersion}-cudnn-${version}"; inherit version; - src = fetchurl { + + src = let + hash_ = if hash != null then { inherit hash; } else { inherit sha256; }; + in fetchurl ({ # URL from NVIDIA docker containers: https://gitlab.com/nvidia/cuda/blob/centos7/7.0/runtime/cudnn4/Dockerfile url = "https://developer.download.nvidia.com/compute/redist/cudnn/v${version}/${srcName}"; - inherit sha256; - }; + } // hash_); nativeBuildInputs = [ addOpenGLRunpath ]; diff --git a/pkgs/development/libraries/science/math/libtorch/bin.nix b/pkgs/development/libraries/science/math/libtorch/bin.nix index 481836a4e11..87b5835aa9e 100644 --- a/pkgs/development/libraries/science/math/libtorch/bin.nix +++ b/pkgs/development/libraries/science/math/libtorch/bin.nix @@ -18,7 +18,7 @@ let # this derivation. However, we should ensure on version bumps # that the CUDA toolkit for `passthru.tests` is still # up-to-date. - version = "1.8.0"; + version = "1.8.1"; device = if cudaSupport then "cuda" else "cpu"; srcs = import ./binary-hashes.nix version; unavailable = throw "libtorch is not available for this platform"; diff --git a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix index 208e0b7adab..ec4522a7559 100644 --- a/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix +++ b/pkgs/development/libraries/science/math/libtorch/binary-hashes.nix @@ -1,14 +1,14 @@ version: { x86_64-darwin-cpu = { url = "https://download.pytorch.org/libtorch/cpu/libtorch-macos-${version}.zip"; - hash = "sha256-V1lbztMB09wyWjdiJrwVwJ00DT8Kihy/TC2cKmdBLIE="; + hash = "sha256-FYgnd5zlycjCYnP5bZcjpMdGYXrRERwhFFBYo/SJgzs="; }; x86_64-linux-cpu = { url = "https://download.pytorch.org/libtorch/cpu/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcpu.zip"; - hash = "sha256-xBaNyI7eiQnSArHMITonrQQLZnZCZK/SWKOTWnxzdpc="; + hash = "sha256-xneCcVrY25Whgbs/kPbwdS1Lc0e6RxsDRpA5lHTZigc="; }; x86_64-linux-cuda = { url = "https://download.pytorch.org/libtorch/cu111/libtorch-cxx11-abi-shared-with-deps-${version}%2Bcu111.zip"; - hash = "sha256-uQ7ptOuzowJ0JSPIvJHyNotBfpsqAnxpMDLq7Vl6L00="; + hash = "sha256-VW+TW00nD49GBztCyxHE4dTyy81aN/kfYE3hKQOIm50="; }; } diff --git a/pkgs/development/libraries/science/math/libtorch/test/default.nix b/pkgs/development/libraries/science/math/libtorch/test/default.nix index 60f9b5ad884..eaea649d434 100644 --- a/pkgs/development/libraries/science/math/libtorch/test/default.nix +++ b/pkgs/development/libraries/science/math/libtorch/test/default.nix @@ -42,8 +42,9 @@ in stdenv.mkDerivation { touch $out ''; - checkPhase = '' + checkPhase = lib.optionalString cudaSupport '' LD_LIBRARY_PATH=${cudaStub}''${LD_LIBRARY_PATH:+:}$LD_LIBRARY_PATH \ - ./test + '' + '' + ./test ''; } diff --git a/pkgs/development/libraries/wxSVG/default.nix b/pkgs/development/libraries/wxSVG/default.nix index 5e7f7b71fbe..f83f7e40897 100644 --- a/pkgs/development/libraries/wxSVG/default.nix +++ b/pkgs/development/libraries/wxSVG/default.nix @@ -1,34 +1,43 @@ -{ lib, stdenv, fetchurl -, pkg-config, wxGTK -, ffmpeg_3, libexif -, cairo, pango }: +{ lib +, stdenv +, fetchurl +, cairo +, ffmpeg +, libexif +, pango +, pkg-config +, wxGTK +}: stdenv.mkDerivation rec { - pname = "wxSVG"; - srcName = "wxsvg-${version}"; version = "1.5.22"; src = fetchurl { - url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/${srcName}.tar.bz2"; - sha256 = "0agmmwg0zlsw1idygvqjpj1nk41akzlbdha0hsdk1k8ckz6niq8d"; + url = "mirror://sourceforge/project/wxsvg/wxsvg/${version}/wxsvg-${version}.tar.bz2"; + hash = "sha256-DeFozZ8MzTCbhkDBtuifKpBpg7wS7+dbDFzTDx6v9Sk="; }; - nativeBuildInputs = [ pkg-config ]; - - propagatedBuildInputs = [ wxGTK ffmpeg_3 libexif ]; - - buildInputs = [ cairo pango ]; + nativeBuildInputs = [ + pkg-config + ]; + buildInputs = [ + cairo + ffmpeg + libexif + pango + wxGTK + ]; meta = with lib; { + homepage = "http://wxsvg.sourceforge.net/"; description = "A SVG manipulation library built with wxWidgets"; longDescription = '' - wxSVG is C++ library to create, manipulate and render - Scalable Vector Graphics (SVG) files with the wxWidgets toolkit. + wxSVG is C++ library to create, manipulate and render Scalable Vector + Graphics (SVG) files with the wxWidgets toolkit. ''; - homepage = "http://wxsvg.sourceforge.net/"; - license = with licenses; gpl2; + license = with licenses; gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; - platforms = with platforms; linux; + platforms = wxGTK.meta.platforms; }; } diff --git a/pkgs/development/libraries/xine-lib/default.nix b/pkgs/development/libraries/xine-lib/default.nix index 97fb83e4e2a..d84023bf9e9 100644 --- a/pkgs/development/libraries/xine-lib/default.nix +++ b/pkgs/development/libraries/xine-lib/default.nix @@ -1,7 +1,27 @@ -{ lib, stdenv, fetchurl, pkg-config, xorg, alsaLib, libGLU, libGL, aalib -, libvorbis, libtheora, speex, zlib, perl, ffmpeg_3 -, flac, libcaca, libpulseaudio, libmng, libcdio, libv4l, vcdimager -, libmpcdec, ncurses +{ lib +, stdenv +, fetchurl +, fetchpatch +, aalib +, alsaLib +, ffmpeg +, flac +, libGL +, libGLU +, libcaca +, libcdio +, libmng +, libmpcdec +, libpulseaudio +, libtheora +, libv4l +, libvorbis +, perl +, pkg-config +, speex +, vcdimager +, xorg +, zlib }: stdenv.mkDerivation rec { @@ -10,27 +30,58 @@ stdenv.mkDerivation rec { src = fetchurl { url = "mirror://sourceforge/xine/xine-lib-${version}.tar.xz"; - sha256 = "01bhq27g5zbgy6y36hl7lajz1nngf68vs4fplxgh98fx20fv4lgg"; + sha256 = "sha256-71GyHRDdoQRfp9cRvZFxz9rwpaKHQjO88W/98o7AcAU="; }; - nativeBuildInputs = [ pkg-config perl ]; - + nativeBuildInputs = [ + pkg-config + perl + ]; buildInputs = [ - xorg.libX11 xorg.libXv xorg.libXinerama xorg.libxcb xorg.libXext - alsaLib libGLU libGL aalib libvorbis libtheora speex perl ffmpeg_3 flac - libcaca libpulseaudio libmng libcdio libv4l vcdimager libmpcdec ncurses + aalib + alsaLib + ffmpeg + flac + libGL + libGLU + libcaca + libcdio + libmng + libmpcdec + libpulseaudio + libtheora + libv4l + libvorbis + perl + speex + vcdimager + zlib + ] ++ (with xorg; [ + libX11 + libXext + libXinerama + libXv + libxcb + ]); + + patches = [ + # splitting path plugin + (fetchpatch { + name = "0001-fix-XINE_PLUGIN_PATH-splitting.patch"; + url = "https://sourceforge.net/p/xine/mailman/attachment/32394053-5e27-6558-f0c9-49e0da0bc3cc%40gmx.de/1/"; + sha256 = "sha256-LJedxrD8JWITDo9pnS9BCmy7wiPTyJyoQ1puX49tOls="; + }) ]; NIX_LDFLAGS = "-lxcb-shm"; - propagatedBuildInputs = [zlib]; - enableParallelBuilding = true; meta = with lib; { - homepage = "http://xine.sourceforge.net/home"; + homepage = "http://www.xinehq.de/"; description = "A high-performance, portable and reusable multimedia playback engine"; - platforms = platforms.linux; license = with licenses; [ gpl2Plus lgpl2Plus ]; + maintainers = with maintainers; [ AndersonTorres ]; + platforms = platforms.linux; }; } diff --git a/pkgs/development/libraries/xsimd/default.nix b/pkgs/development/libraries/xsimd/default.nix new file mode 100644 index 00000000000..745ee9ee3fc --- /dev/null +++ b/pkgs/development/libraries/xsimd/default.nix @@ -0,0 +1,56 @@ +{ lib, stdenv, fetchFromGitHub, cmake, gtest }: +let + version = "7.5.0"; + + darwin_src = fetchFromGitHub { + owner = "xtensor-stack"; + repo = "xsimd"; + rev = version; + sha256 = "eGAdRSYhf7rbFdm8g1Tz1ZtSVu44yjH/loewblhv9Vs="; + # Avoid requiring apple_sdk. We're doing this here instead of in the patchPhase + # because this source is directly used in arrow-cpp. + # pyconfig.h defines _GNU_SOURCE to 1, so we need to stamp that out too. + # Upstream PR with a better fix: https://github.com/xtensor-stack/xsimd/pull/463 + postFetch = '' + mkdir $out + tar -xf $downloadedFile --directory=$out --strip-components=1 + substituteInPlace $out/include/xsimd/types/xsimd_scalar.hpp \ + --replace 'defined(__APPLE__)' 0 \ + --replace 'defined(_GNU_SOURCE)' 0 + ''; + }; + + src = fetchFromGitHub { + owner = "xtensor-stack"; + repo = "xsimd"; + rev = version; + sha256 = "0c9pq5vz43j99z83w3b9qylfi66mn749k1afpv5cwfxggbxvy63f"; + }; +in stdenv.mkDerivation { + pname = "xsimd"; + inherit version; + src = if stdenv.hostPlatform.isDarwin then darwin_src else src; + + nativeBuildInputs = [ cmake ]; + + cmakeFlags = [ "-DBUILD_TESTS=ON" ]; + + doCheck = true; + checkInputs = [ gtest ]; + checkTarget = "xtest"; + GTEST_FILTER = let + # Upstream Issue: https://github.com/xtensor-stack/xsimd/issues/456 + filteredTests = lib.optionals stdenv.hostPlatform.isDarwin [ + "error_gamma_test/sse_double.gamma" + "error_gamma_test/avx_double.gamma" + ]; + in "-${builtins.concatStringsSep ":" filteredTests}"; + + meta = with lib; { + description = "C++ wrappers for SIMD intrinsics"; + homepage = "https://github.com/xtensor-stack/xsimd"; + license = licenses.bsd3; + maintainers = with maintainers; [ tobim ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix b/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix new file mode 100644 index 00000000000..412ef9568db --- /dev/null +++ b/pkgs/development/ocaml-modules/ppx_deriving_cmdliner/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildDunePackage +, fetchFromGitHub +, alcotest +, cmdliner +, ppx_deriving +, ppxlib +}: + +buildDunePackage rec { + pname = "ppx_deriving_cmdliner"; + version = "0.6.0"; + + minimumOCamlVersion = "4.08"; + useDune2 = true; + + src = fetchFromGitHub { + owner = "hammerlab"; + repo = "ppx_deriving_cmdliner"; + rev = "v${version}"; + sha256 = "19l32y2wv64d1c7fvln07dg3bkf7wf5inzjxlff7lbabskdbbras"; + }; + + propagatedBuildInputs = [ + cmdliner + ppx_deriving + ppxlib + ]; + + doCheck = true; + checkInputs = [ + alcotest + ]; + + meta = with lib; { + description = "Ppx_deriving plugin for generating command line interfaces from types for OCaml"; + inherit (src.meta) homepage; + license = licenses.asl20; + maintainers = [ maintainers.romildo ]; + }; +} diff --git a/pkgs/development/python-modules/autoit-ripper/default.nix b/pkgs/development/python-modules/autoit-ripper/default.nix new file mode 100644 index 00000000000..2276241d25e --- /dev/null +++ b/pkgs/development/python-modules/autoit-ripper/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, fetchPypi +, lief +, pythonOlder +}: + +buildPythonPackage rec { + pname = "autoit-ripper"; + version = "1.0.1"; + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "0mbsrfa72n7y1vkm9jhwhn1z3k45jxrlgx58ia1l2bp6chnnn2zy"; + }; + + propagatedBuildInputs = [ + lief + ]; + + postPatch = '' + substituteInPlace requirements.txt --replace "lief==0.10.1" "lief>=0.10.1" + ''; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "autoit_ripper" ]; + + meta = with lib; { + description = "Python module to extract AutoIt scripts embedded in PE binaries"; + homepage = "https://github.com/nazywam/AutoIt-Ripper"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/beancount_docverif/default.nix b/pkgs/development/python-modules/beancount_docverif/default.nix index 0067716b626..44ebb5d94f0 100644 --- a/pkgs/development/python-modules/beancount_docverif/default.nix +++ b/pkgs/development/python-modules/beancount_docverif/default.nix @@ -1,4 +1,5 @@ { lib, buildPythonPackage, fetchPypi, isPy3k +, setuptools-scm , beancount , pytest, sh }: @@ -14,6 +15,10 @@ buildPythonPackage rec { sha256 = "1kjc0axrxpvm828lqq5m2ikq0ls8xksbmm7312zw867gdx56x5aj"; }; + nativeBuildInputs = [ + setuptools-scm + ]; + propagatedBuildInputs = [ beancount ]; diff --git a/pkgs/development/python-modules/click-configfile/default.nix b/pkgs/development/python-modules/click-configfile/default.nix new file mode 100644 index 00000000000..0d87aa890d2 --- /dev/null +++ b/pkgs/development/python-modules/click-configfile/default.nix @@ -0,0 +1,38 @@ +{ lib +, buildPythonPackage +, fetchPypi +, click +, six +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "click-configfile"; + version = "0.2.3"; + + src = fetchPypi { + inherit pname version; + sha256 = "lb7sE77pUOmPQ8gdzavvT2RAkVWepmKY+drfWTUdkNE="; + }; + + propagatedBuildInputs = [ + click + six + ]; + + checkInputs = [ + pytestCheckHook + ]; + + disabledTests = [ + "test_configfile__with_unbound_section" + "test_matches_section__with_bad_arg" + ]; + + meta = with lib; { + description = "Add support for commands that use configuration files to Click"; + homepage = "https://github.com/click-contrib/click-configfile"; + license = licenses.bsd3; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/development/python-modules/click-spinner/default.nix b/pkgs/development/python-modules/click-spinner/default.nix new file mode 100644 index 00000000000..e0d862ab131 --- /dev/null +++ b/pkgs/development/python-modules/click-spinner/default.nix @@ -0,0 +1,30 @@ +{ lib +, buildPythonPackage +, fetchPypi +, click +, six +, pytestCheckHook +}: + +buildPythonPackage rec { + pname = "click-spinner"; + version = "0.1.10"; + + src = fetchPypi { + inherit pname version; + sha256 = "h+rPnXKYlzol12Fe9X1Hgq6/kTpTK7pLKKN+Nm6XXa8="; + }; + + checkInputs = [ + click + six + pytestCheckHook + ]; + + meta = with lib; { + description = "Add support for showwing that command line app is active to Click"; + homepage = "https://github.com/click-contrib/click-spinner"; + license = licenses.mit; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/development/python-modules/cloudsmith-api/default.nix b/pkgs/development/python-modules/cloudsmith-api/default.nix new file mode 100644 index 00000000000..57316ae9d6c --- /dev/null +++ b/pkgs/development/python-modules/cloudsmith-api/default.nix @@ -0,0 +1,42 @@ +{ lib +, buildPythonPackage +, fetchPypi +, certifi +, six +, dateutil +, urllib3 +}: + +buildPythonPackage rec { + pname = "cloudsmith-api"; + version = "0.54.15"; + + format = "wheel"; + + src = fetchPypi { + pname = "cloudsmith_api"; + inherit format version; + sha256 = "X72xReosUnUlj69Gq+i+izhaKZuakM9mUrRHZI5L9h0="; + }; + + propagatedBuildInputs = [ + certifi + six + dateutil + urllib3 + ]; + + # Wheels have no tests + doCheck = false; + + pythonImportsCheck = [ + "cloudsmith_api" + ]; + + meta = with lib; { + description = "Cloudsmith API Client"; + homepage = "https://github.com/cloudsmith-io/cloudsmith-api"; + license = licenses.asl20; + maintainers = with maintainers; [ jtojnar ]; + }; +} diff --git a/pkgs/development/python-modules/csvw/default.nix b/pkgs/development/python-modules/csvw/default.nix index e4bd7ab2b62..cf388409c57 100644 --- a/pkgs/development/python-modules/csvw/default.nix +++ b/pkgs/development/python-modules/csvw/default.nix @@ -14,14 +14,14 @@ buildPythonPackage rec { pname = "csvw"; - version = "1.10.1"; + version = "1.10.2"; disabled = isPy27; src = fetchFromGitHub { owner = "cldf"; repo = "csvw"; rev = "v${version}"; - sha256 = "1764nfa4frjdd7v6wj35y7prnciaqz57wwygy5zfavl4laxn4nxd"; + sha256 = "0z0qxlsfxwz1qapxb4d0mz3wkj99d7zi9yrg1cbd2xp7giagb6d4"; }; patchPhase = '' diff --git a/pkgs/development/python-modules/flask-httpauth/default.nix b/pkgs/development/python-modules/flask-httpauth/default.nix index e5d55a2b9b5..ba8e0d0f11e 100644 --- a/pkgs/development/python-modules/flask-httpauth/default.nix +++ b/pkgs/development/python-modules/flask-httpauth/default.nix @@ -1,16 +1,22 @@ -{ lib, buildPythonPackage, fetchPypi, flask }: +{ lib, python, buildPythonPackage, fetchPypi, flask }: buildPythonPackage rec { pname = "Flask-HTTPAuth"; - version = "4.2.0"; + version = "4.3.0"; src = fetchPypi { inherit pname version; - sha256 = "8c7e49e53ce7dc14e66fe39b9334e4b7ceb8d0b99a6ba1c3562bb528ef9da84a"; + sha256 = "05j1mckwhgicrlj4j7ni2rhcf9w4i7phll06jbjjyvs3rj1l4q1f"; }; propagatedBuildInputs = [ flask ]; + pythonImportsCheck = [ "flask_httpauth" ]; + + checkPhase = '' + ${python.interpreter} -m unittest discover + ''; + meta = with lib; { description = "Extension that provides HTTP authentication for Flask routes"; homepage = "https://github.com/miguelgrinberg/Flask-HTTPAuth"; diff --git a/pkgs/development/python-modules/flask-restx/default.nix b/pkgs/development/python-modules/flask-restx/default.nix index f2b7222c3d0..e1de7bf0d3b 100644 --- a/pkgs/development/python-modules/flask-restx/default.nix +++ b/pkgs/development/python-modules/flask-restx/default.nix @@ -20,14 +20,14 @@ buildPythonPackage rec { pname = "flask-restx"; - version = "0.2.0"; + version = "0.3.0"; # Tests not included in PyPI tarball src = fetchFromGitHub { owner = "python-restx"; repo = pname; rev = version; - sha256 = "0xf2vkmdngp9cv9klznizai4byxjcf0iqh1pr4b83nann0jxqwy7"; + sha256 = "0aj13nd3z71gb8c2kqiaz3f9k7jr0srlvrsx8hpz4nkpki8jiz2s"; }; propagatedBuildInputs = [ aniso8601 jsonschema flask werkzeug pytz six ] @@ -45,6 +45,7 @@ buildPythonPackage rec { meta = with lib; { homepage = "https://flask-restx.readthedocs.io/en/${version}/"; description = "Fully featured framework for fast, easy and documented API development with Flask"; + changelog = "https://github.com/python-restx/flask-restx/raw/${version}/CHANGELOG.rst"; license = licenses.bsd3; maintainers = [ maintainers.marsam ]; }; diff --git a/pkgs/development/python-modules/graphene/default.nix b/pkgs/development/python-modules/graphene/default.nix index 2839fc337cd..be2cc808eb0 100644 --- a/pkgs/development/python-modules/graphene/default.nix +++ b/pkgs/development/python-modules/graphene/default.nix @@ -11,6 +11,7 @@ , pytest-mock , pytz , snapshottest +, fetchpatch }: buildPythonPackage rec { @@ -24,6 +25,13 @@ buildPythonPackage rec { sha256 = "sha256-bVCCLPnV5F8PqLMg3GwcpwpGldrxsU+WryL6gj6y338="; }; + # Allow later aniso8601 releases + # https://github.com/graphql-python/graphene/pull/1331 + patches = [ (fetchpatch { + url = "https://github.com/graphql-python/graphene/commit/26b16f75b125e35eeb2274b7be503ec29f2e8a45.patch"; + sha256 = "qm96pNOoxPieEy1CFZpa2Mx010pY3QU/vRyuL0qO3Tk="; + }) ]; + propagatedBuildInputs = [ aniso8601 graphql-core diff --git a/pkgs/development/python-modules/grpcio-tools/default.nix b/pkgs/development/python-modules/grpcio-tools/default.nix index 2f4ee5de8d2..0ad0b960ee4 100644 --- a/pkgs/development/python-modules/grpcio-tools/default.nix +++ b/pkgs/development/python-modules/grpcio-tools/default.nix @@ -2,11 +2,11 @@ buildPythonPackage rec { pname = "grpcio-tools"; - version = "1.37.0"; + version = "1.37.1"; src = fetchPypi { inherit pname version; - sha256 = "3ec510c1b6bfc32effc639acf9a055e72dab7a7b6757bf72f2132790d6a7cf1c"; + sha256 = "d775fb07cc6561174d6c86d11727a156c4ade969f7bf5edf623ffe2a428bee4e"; }; outputs = [ "out" "dev" ]; diff --git a/pkgs/development/python-modules/karton-autoit-ripper/default.nix b/pkgs/development/python-modules/karton-autoit-ripper/default.nix new file mode 100644 index 00000000000..d1f79f42a2a --- /dev/null +++ b/pkgs/development/python-modules/karton-autoit-ripper/default.nix @@ -0,0 +1,46 @@ +{ lib +, autoit-ripper +, buildPythonPackage +, fetchFromGitHub +, karton-core +, malduck +, regex +}: + +buildPythonPackage rec { + pname = "karton-autoit-ripper"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "CERT-Polska"; + repo = pname; + rev = "v${version}"; + sha256 = "0vdsxkbjcr0inpcfjh45gl72ipzklkhgs06fdpkyy9y0cfx3zq7z"; + }; + + propagatedBuildInputs = [ + autoit-ripper + karton-core + malduck + regex + ]; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "autoit-ripper==1.0.0" "autoit-ripper" \ + --replace "karton.core==4.0.4" "karton-core" \ + --replace "malduck==3.1.0" "malduck>=3.1.0" \ + --replace "regex==2020.2.20" "regex>=2020.2.20" + ''; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "karton.autoit_ripper" ]; + + meta = with lib; { + description = "AutoIt script ripper for Karton framework"; + homepage = "https://github.com/CERT-Polska/karton-autoit-ripper"; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/poppler-qt5/default.nix b/pkgs/development/python-modules/poppler-qt5/default.nix index 345f092a80f..94d86f7b713 100644 --- a/pkgs/development/python-modules/poppler-qt5/default.nix +++ b/pkgs/development/python-modules/poppler-qt5/default.nix @@ -1,44 +1,64 @@ -{ buildPythonPackage, fetchPypi, lib, sip, qtbase, pyqt5, poppler, pkg-config, fetchpatch -, substituteAll +{ stdenv +, lib +, buildPythonPackage +, isPy3k +, fetchPypi +, pythonPackages +, sip_5 +, qtbase +, qmake +, pyqt5 +, pyqt-builder +, poppler +, pkg-config +, fetchpatch }: buildPythonPackage rec { pname = "python-poppler-qt5"; - version = "0.24.2"; + version = "21.1.0"; + + disabled = !isPy3k; src = fetchPypi { inherit pname version; - sha256 = "0l69llw1fzwz8y90q0qp9q5pifbrqjjbwii7di54dwghw5fc6w1r"; + sha256 = "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"; }; patches = [ - (substituteAll { - src = ./poppler-include-dir.patch; - poppler_include_dir = "${poppler.dev}/include/poppler"; - }) + # Fix for https://github.com/frescobaldi/python-poppler-qt5/issues/43 (from PR #45) (fetchpatch { - url = "https://github.com/wbsoft/python-poppler-qt5/commit/faf4d1308f89560b0d849671226e3080dfc72e79.patch"; - sha256 = "18krhh6wzsnpxzlzv02nginb1vralla8ai24zqk10nc4mj6fkj86"; + url = "https://github.com/frescobaldi/python-poppler-qt5/commit/40e71ad88173d02648bceb2438bc0567e60dacd5.patch"; + sha256 = "0c93d0k7b1n2s2njl8g92x6vw3z96da1fczah9qx07x08iw8dzi5"; }) ]; - setupPyBuildFlags = [ - "--pyqt-sip-dir ${pyqt5}/share/sip/PyQt5" - "--qt-include-dir ${qtbase.dev}/include" - ]; + buildInputs = [ qtbase.dev poppler pyqt-builder ]; + nativeBuildInputs = [ pkg-config qmake sip_5 ]; + propagatedBuildInputs = [ pyqt5.dev ]; - buildInputs = [ qtbase.dev poppler ]; - nativeBuildInputs = [ pkg-config ]; - propagatedBuildInputs = [ sip pyqt5.dev ]; + format = "pyproject"; + dontConfigure = true; + + postPatch = '' + cat <> pyproject.toml + sip-include-dirs = ["${pyqt5}/share/sip/PyQt5"] + + [tool.sip.bindings.Poppler-Qt5] + include-dirs = ["${poppler.dev}/include/poppler"] + tags = ["${sip_5.platform_tag}"] + EOF + ''; # no tests, just bindings for `poppler_qt5` doCheck = false; + pythonImportsCheck = [ "popplerqt5" ]; dontWrapQtApps = true; meta = with lib; { - homepage = "https://github.com/wbsoft/python-poppler-qt5"; - license = licenses.gpl2; - maintainers = with maintainers; [ ]; + homepage = "https://github.com/frescobaldi/python-poppler-qt5"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ eduardosm ]; }; } diff --git a/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch b/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch deleted file mode 100644 index 7106c1d6352..00000000000 --- a/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/setup.py b/setup.py -index 59a75b0..0a73268 100644 ---- a/setup.py -+++ b/setup.py -@@ -169,6 +169,7 @@ class build_ext(build_ext_base): - 'Please specify via --pyqt-sip-flags=') - - self.include_dirs += (self.qt_include_dir, -+ '@poppler_include_dir@', - os.path.join(self.qt_include_dir, 'QtCore'), - os.path.join(self.qt_include_dir, 'QtGui'), - os.path.join(self.qt_include_dir, 'QtXml')) diff --git a/pkgs/development/python-modules/pyarrow/default.nix b/pkgs/development/python-modules/pyarrow/default.nix index a38d5df50dd..dabe85b9043 100644 --- a/pkgs/development/python-modules/pyarrow/default.nix +++ b/pkgs/development/python-modules/pyarrow/default.nix @@ -34,12 +34,17 @@ buildPythonPackage rec { export PYARROW_PARALLEL=$NIX_BUILD_CORES ''; - # Deselect a single test because pyarrow prints a 2-line error message where - # only a single line is expected. The additional line of output comes from - # the glog library which is an optional dependency of arrow-cpp that is - # enabled in nixpkgs. - # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393 - pytestFlagsArray = [ "--deselect=pyarrow/tests/test_memory.py::test_env_var" ]; + pytestFlagsArray = [ + # Deselect a single test because pyarrow prints a 2-line error message where + # only a single line is expected. The additional line of output comes from + # the glog library which is an optional dependency of arrow-cpp that is + # enabled in nixpkgs. + # Upstream Issue: https://issues.apache.org/jira/browse/ARROW-11393 + "--deselect=pyarrow/tests/test_memory.py::test_env_var" + # Deselect the parquet dataset write test because it erroneously fails to find the + # pyarrow._dataset module. + "--deselect=pyarrow/tests/parquet/test_dataset.py::test_write_to_dataset_filesystem" + ]; dontUseSetuptoolsCheck = true; preCheck = '' diff --git a/pkgs/development/python-modules/pykeepass/default.nix b/pkgs/development/python-modules/pykeepass/default.nix index 294e47872fc..6e73501bfb0 100644 --- a/pkgs/development/python-modules/pykeepass/default.nix +++ b/pkgs/development/python-modules/pykeepass/default.nix @@ -1,15 +1,18 @@ -{ lib, fetchPypi, buildPythonPackage +{ lib, fetchFromGitHub, buildPythonPackage , lxml, pycryptodomex, construct , argon2_cffi, dateutil, future +, python }: buildPythonPackage rec { pname = "pykeepass"; version = "4.0.0"; - src = fetchPypi { - inherit pname version; - sha256 = "1b41b3277ea4e044556e1c5a21866ea4dfd36e69a4c0f14272488f098063178f"; + src = fetchFromGitHub { + owner = "libkeepass"; + repo = "pykeepass"; + rev = version; + sha256 = "1zw5hjk90zfxpgq2fz4h5qzw3kmvdnlfbd32gw57l034hmz2i08v"; }; postPatch = '' @@ -21,13 +24,15 @@ buildPythonPackage rec { argon2_cffi dateutil future ]; - # no tests in PyPI tarball - doCheck = false; + checkPhase = '' + ${python.interpreter} -m unittest tests.tests + ''; - meta = { - homepage = "https://github.com/pschmitt/pykeepass"; + meta = with lib; { + homepage = "https://github.com/libkeepass/pykeepass"; + changelog = "https://github.com/libkeepass/pykeepass/blob/${version}/CHANGELOG.rst"; description = "Python library to interact with keepass databases (supports KDBX3 and KDBX4)"; - license = lib.licenses.gpl3; + license = licenses.gpl3Only; + maintainers = with maintainers; [ dotlambda ]; }; - } diff --git a/pkgs/development/python-modules/pynmea2/default.nix b/pkgs/development/python-modules/pynmea2/default.nix index 8bb82fa330a..4a4fbfd4dc6 100644 --- a/pkgs/development/python-modules/pynmea2/default.nix +++ b/pkgs/development/python-modules/pynmea2/default.nix @@ -2,15 +2,17 @@ buildPythonPackage rec { pname = "pynmea2"; - version = "1.17.0"; + version = "1.18.0"; src = fetchPypi { inherit pname version; - sha256 = "0x5xrk51dpzsvky1ncikadm80a44a82j3mjjykmhmx7jddc5qh9d"; + sha256 = "1b94lhpbgvnknb563dlwvs5vkk7w3ma54sj614ynh2dzgqrd6h73"; }; checkInputs = [ pytestCheckHook ]; + pythonImportsCheck = [ "pynmea2" ]; + meta = { homepage = "https://github.com/Knio/pynmea2"; description = "Python library for the NMEA 0183 protcol"; diff --git a/pkgs/development/python-modules/pyotgw/default.nix b/pkgs/development/python-modules/pyotgw/default.nix new file mode 100644 index 00000000000..b48c190ca1e --- /dev/null +++ b/pkgs/development/python-modules/pyotgw/default.nix @@ -0,0 +1,41 @@ +{ lib +, buildPythonPackage +, fetchFromGitHub +, pyserial-asyncio +, pytest-asyncio +, pytestCheckHook +, pythonOlder +}: + +buildPythonPackage rec { + pname = "pyotgw"; + version = "unstable-2021-03-25"; + disabled = pythonOlder "3.7"; + + src = fetchFromGitHub { + owner = "mvn23"; + repo = pname; + rev = "1854ef4ffb907524ff457ba558e4979ba7fabd02"; + sha256 = "0zckd85dmzpz0drcgx16ly6kzh1f1slcxb9lrcf81wh1p4q9bcaa"; + }; + + propagatedBuildInputs = [ + pyserial-asyncio + ]; + + checkInputs = [ + pytest-asyncio + pytestCheckHook + ]; + + pytestFlagsArray = [ "tests" ]; + + pythonImportsCheck = [ "pyotgw" ]; + + meta = with lib; { + description = "Python module to interact the OpenTherm Gateway"; + homepage = "https://github.com/mvn23/pyotgw"; + license = with licenses; [ gpl3Plus ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/python-language-server/default.nix b/pkgs/development/python-modules/python-language-server/default.nix index b776a784c8e..daab437c979 100644 --- a/pkgs/development/python-modules/python-language-server/default.nix +++ b/pkgs/development/python-modules/python-language-server/default.nix @@ -1,4 +1,4 @@ -{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, isPy27 +{ lib, buildPythonPackage, fetchFromGitHub, pythonAtLeast, pythonOlder, isPy27 , backports_functools_lru_cache ? null, configparser ? null, futures ? null, future, jedi, pluggy, python-jsonrpc-server, flake8 , pytestCheckHook, mock, pytestcov, coverage, setuptools, ujson, flaky , # Allow building a limited set of providers, e.g. ["pycodestyle"]. @@ -22,6 +22,8 @@ in buildPythonPackage rec { pname = "python-language-server"; version = "0.36.2"; + # https://github.com/palantir/python-language-server/issues/896#issuecomment-752790868 + disabled = pythonAtLeast "3.9"; src = fetchFromGitHub { owner = "palantir"; diff --git a/pkgs/development/python-modules/pytmx/default.nix b/pkgs/development/python-modules/pytmx/default.nix index 17c18a96c73..6d88f4b636b 100644 --- a/pkgs/development/python-modules/pytmx/default.nix +++ b/pkgs/development/python-modules/pytmx/default.nix @@ -5,20 +5,26 @@ buildPythonPackage rec { pname = "pytmx"; - version = "3.24.0"; + version = "3.25"; disabled = isPy27; src = fetchFromGitHub { - # The release was not git tagged. owner = "bitcraft"; repo = "PyTMX"; - rev = "eb96efea30d57b731654b2a167d86b8b553b147d"; - sha256 = "1g1j4w75zw76p5f8m5v0hdigdlva2flf0ngyk8nvqcwzcl5vq5wc"; + rev = version; + sha256 = "0v07zhvzvl2qcqhjzgfzm8hgayq38gaqcxxkyhlq9n0hlk93nm97"; }; propagatedBuildInputs = [ pygame pyglet pysdl2 six ]; + pythonImportsCheck = [ + "pytmx.pytmx" + "pytmx.util_pygame" + "pytmx.util_pyglet" + "pytmx.util_pysdl2" + ]; + checkPhase = '' # Change into the test directory due to a relative resource path. cd tests/pytmx @@ -28,7 +34,7 @@ buildPythonPackage rec { meta = with lib; { homepage = "https://github.com/bitcraft/PyTMX"; description = "Python library to read Tiled Map Editor's TMX maps"; - license = licenses.lgpl3; + license = licenses.lgpl3Plus; maintainers = with maintainers; [ oxzi ]; }; } diff --git a/pkgs/development/python-modules/pywizlight/default.nix b/pkgs/development/python-modules/pywizlight/default.nix index ba41712c236..1461a705302 100644 --- a/pkgs/development/python-modules/pywizlight/default.nix +++ b/pkgs/development/python-modules/pywizlight/default.nix @@ -9,13 +9,13 @@ buildPythonPackage rec { pname = "pywizlight"; - version = "0.4.6"; + version = "0.4.7"; src = fetchFromGitHub { owner = "sbidy"; repo = pname; - rev = "v${version}"; - sha256 = "sha256-BCHLd1SbdHWrl7dcLD69t2K5Sa1WtGpMxTmMyDWl9u4="; + rev = version; + sha256 = "0zagdb90bxmf06fzpljhqgsgzg36zc1yhdibacfrx8bmnx3l657h"; }; propagatedBuildInputs = [ diff --git a/pkgs/development/tools/buildkit/default.nix b/pkgs/development/tools/buildkit/default.nix index 806eb7c5b0e..f6eb7aef1ed 100644 --- a/pkgs/development/tools/buildkit/default.nix +++ b/pkgs/development/tools/buildkit/default.nix @@ -2,7 +2,7 @@ buildGoPackage rec { pname = "buildkit"; - version = "0.8.2"; + version = "0.8.3"; goPackagePath = "github.com/moby/buildkit"; subPackages = [ "cmd/buildctl" ] ++ lib.optionals stdenv.isLinux [ "cmd/buildkitd" ]; @@ -11,7 +11,7 @@ buildGoPackage rec { owner = "moby"; repo = "buildkit"; rev = "v${version}"; - sha256 = "sha256-aPVroqpR4ynfHhjJ6jJX6y5cdgmoUny3A8GBhnooOeo="; + sha256 = "sha256-dHtGxugTtxHcfZHMIHinlcH05ss7zT/+Ll1WboAhw9o="; }; buildFlagsArray = [ "-ldflags=-s -w -X ${goPackagePath}/version.Version=${version} -X ${goPackagePath}/version.Revision=${src.rev}" ]; diff --git a/pkgs/development/tools/cloudsmith-cli/default.nix b/pkgs/development/tools/cloudsmith-cli/default.nix new file mode 100644 index 00000000000..8de2bc1aeed --- /dev/null +++ b/pkgs/development/tools/cloudsmith-cli/default.nix @@ -0,0 +1,43 @@ +{ python3 +, lib +}: + +python3.pkgs.buildPythonApplication rec { + pname = "cloudsmith-cli"; + version = "0.26.0"; + + format = "wheel"; + + src = python3.pkgs.fetchPypi { + pname = "cloudsmith_cli"; + inherit format version; + sha256 = "c2W5+z+X4oRZxlNhB6for4mN4NeBX9MtEtmXhU5sz4A="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + click + click-configfile + click-didyoumean + click-spinner + cloudsmith-api + colorama + future + requests + requests_toolbelt + semver + simplejson + six + setuptools # needs pkg_resources + ]; + + # Wheels have no tests + doCheck = false; + + meta = { + homepage = "https://help.cloudsmith.io/docs/cli/"; + description = "Cloudsmith Command Line Interface"; + maintainers = with lib.maintainers; [ jtojnar ]; + license = lib.licenses.asl20; + platforms = with lib.platforms; unix; + }; +} diff --git a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix index 4a402111b08..db1f2aeabc7 100644 --- a/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix +++ b/pkgs/development/tools/continuous-integration/buildkite-agent/default.nix @@ -2,16 +2,16 @@ makeWrapper, coreutils, git, openssh, bash, gnused, gnugrep }: buildGoModule rec { name = "buildkite-agent-${version}"; - version = "3.28.1"; + version = "3.29.0"; src = fetchFromGitHub { owner = "buildkite"; repo = "agent"; rev = "v${version}"; - sha256 = "sha256-5YOXYOAh/0fOagcqdK2IEwm5XDCxyfTeTzwBGtsQRCs="; + sha256 = "sha256-76yyqZi+ktcwRXo0ZIcdFJ9YCuHm9Te4AI+4meuhMNA="; }; - vendorSha256 = "sha256-3UXZxeiL0WO4X/3/hW8ubL1TormGbn9X/k0PX+/cLuM="; + vendorSha256 = "sha256-6cejbCbr0Rn4jWFJ0fxG4v0L0xUM8k16cbACmcQ6m4o="; postPatch = '' substituteInPlace bootstrap/shell/shell.go --replace /bin/bash ${bash}/bin/bash diff --git a/pkgs/development/tools/ecpdap/default.nix b/pkgs/development/tools/ecpdap/default.nix index dbb9a2405b0..46b5945fb94 100644 --- a/pkgs/development/tools/ecpdap/default.nix +++ b/pkgs/development/tools/ecpdap/default.nix @@ -2,26 +2,26 @@ rustPlatform.buildRustPackage rec { pname = "ecpdap"; - version = "0.1.5"; + version = "0.1.6"; src = fetchFromGitHub { owner = "adamgreig"; repo = pname; rev = "v${version}"; - sha256 = "1z8w37i6wjz6cr453md54ip21y26605vrx4vpq5wwd11mfvc1jsg"; + sha256 = "1va96hxm22a2lfy141x1sv5f5g8f6mp965an4jsff9qzi55kfv2g"; }; - # The lock file was not up to date with cargo.toml for this release - # - # This patch is the lock file after running `cargo update` - cargoPatches = [ ./lock-update.patch ]; - - cargoSha256 = "08xcnvbxm508v03b3hmz71mpa3yd8lamvazxivp6qsv46ri163mn"; + cargoSha256 = "1dk6x2f36c546qr415kzmqr2r4550iwdmj4chrb46p3hr64jddhd"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libusb1 ]; + postInstall = '' + mkdir -p $out/etc/udev/rules.d + cp drivers/*.rules $out/etc/udev/rules.d + ''; + meta = with lib; { description = "A tool to program ECP5 FPGAs"; longDescription = '' diff --git a/pkgs/development/tools/ecpdap/lock-update.patch b/pkgs/development/tools/ecpdap/lock-update.patch deleted file mode 100644 index f57c1922ad1..00000000000 --- a/pkgs/development/tools/ecpdap/lock-update.patch +++ /dev/null @@ -1,345 +0,0 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 91f7e0c..1610002 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -26,9 +26,9 @@ dependencies = [ - - [[package]] - name = "anyhow" --version = "1.0.37" -+version = "1.0.40" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86" -+checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" - - [[package]] - name = "atty" -@@ -49,15 +49,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - - [[package]] - name = "cc" --version = "1.0.66" -+version = "1.0.67" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" -- --[[package]] --name = "cfg-if" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -+checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" - - [[package]] - name = "cfg-if" -@@ -82,9 +76,9 @@ dependencies = [ - - [[package]] - name = "console" --version = "0.14.0" -+version = "0.14.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7cc80946b3480f421c2f17ed1cb841753a371c7c5104f51d507e13f532c856aa" -+checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" - dependencies = [ - "encode_unicode", - "lazy_static", -@@ -101,14 +95,14 @@ version = "1.2.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" - dependencies = [ -- "cfg-if 1.0.0", -+ "cfg-if", - ] - - [[package]] - name = "derivative" --version = "2.1.1" -+version = "2.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" -+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" - dependencies = [ - "proc-macro2", - "quote", -@@ -117,7 +111,7 @@ dependencies = [ - - [[package]] - name = "ecpdap" --version = "0.1.4" -+version = "0.1.5" - dependencies = [ - "anyhow", - "clap", -@@ -153,11 +147,11 @@ dependencies = [ - - [[package]] - name = "filetime" --version = "0.2.13" -+version = "0.2.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe" -+checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" - dependencies = [ -- "cfg-if 1.0.0", -+ "cfg-if", - "libc", - "redox_syscall", - "winapi", -@@ -165,9 +159,9 @@ dependencies = [ - - [[package]] - name = "hermit-abi" --version = "0.1.17" -+version = "0.1.18" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" -+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" - dependencies = [ - "libc", - ] -@@ -206,9 +200,9 @@ dependencies = [ - - [[package]] - name = "jep106" --version = "0.2.4" -+version = "0.2.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f57cd08ee4fbc8043949150a59e34ea5f2afeb172f875db9607689e48600c653" -+checksum = "939876d20519325db0883757e29e9858ee02919d0f03e43c74f69296caa314f4" - dependencies = [ - "serde", - ] -@@ -221,33 +215,35 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - - [[package]] - name = "libc" --version = "0.2.81" -+version = "0.2.94" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" -+checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - - [[package]] - name = "libflate" --version = "1.0.3" -+version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "389de7875e06476365974da3e7ff85d55f1972188ccd9f6020dd7c8156e17914" -+checksum = "6d87eae36b3f680f7f01645121b782798b56ef33c53f83d1c66ba3a22b60bfe3" - dependencies = [ - "adler32", - "crc32fast", - "libflate_lz77", -- "rle-decode-fast", - ] - - [[package]] - name = "libflate_lz77" --version = "1.0.0" -+version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b" -+checksum = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a" -+dependencies = [ -+ "rle-decode-fast", -+] - - [[package]] - name = "libusb1-sys" --version = "0.4.3" -+version = "0.4.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5e3b8385bdc8931a82a0865a3a7285e2c28e41287824dc92c7724b7759a0c685" -+checksum = "be241693102a24766d0b8526c8988771edac2842630d7e730f8e9fbc014f3703" - dependencies = [ - "cc", - "libc", -@@ -259,11 +255,11 @@ dependencies = [ - - [[package]] - name = "log" --version = "0.4.11" -+version = "0.4.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" -+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" - dependencies = [ -- "cfg-if 0.1.10", -+ "cfg-if", - ] - - [[package]] -@@ -327,9 +323,9 @@ dependencies = [ - - [[package]] - name = "proc-macro2" --version = "1.0.24" -+version = "1.0.26" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" -+checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" - dependencies = [ - "unicode-xid", - ] -@@ -342,36 +338,38 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - - [[package]] - name = "quote" --version = "1.0.8" -+version = "1.0.9" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" -+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" - dependencies = [ - "proc-macro2", - ] - - [[package]] - name = "redox_syscall" --version = "0.1.57" -+version = "0.2.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" -+checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041" -+dependencies = [ -+ "bitflags", -+] - - [[package]] - name = "regex" --version = "1.4.2" -+version = "1.4.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" -+checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759" - dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -- "thread_local", - ] - - [[package]] - name = "regex-syntax" --version = "0.6.21" -+version = "0.6.23" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" -+checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" - - [[package]] - name = "rle-decode-fast" -@@ -391,18 +389,18 @@ dependencies = [ - - [[package]] - name = "serde" --version = "1.0.118" -+version = "1.0.125" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" -+checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" - dependencies = [ - "serde_derive", - ] - - [[package]] - name = "serde_derive" --version = "1.0.118" -+version = "1.0.125" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" -+checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" - dependencies = [ - "proc-macro2", - "quote", -@@ -431,9 +429,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - - [[package]] - name = "syn" --version = "1.0.57" -+version = "1.0.71" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4211ce9909eb971f111059df92c45640aad50a619cf55cd76476be803c4c68e6" -+checksum = "ad184cc9470f9117b2ac6817bfe297307418819ba40552f9b3846f05c33d5373" - dependencies = [ - "proc-macro2", - "quote", -@@ -442,13 +440,12 @@ dependencies = [ - - [[package]] - name = "tar" --version = "0.4.30" -+version = "0.4.33" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "489997b7557e9a43e192c527face4feacc78bfbe6eed67fd55c4c9e381cba290" -+checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228" - dependencies = [ - "filetime", - "libc", -- "redox_syscall", - "xattr", - ] - -@@ -463,9 +460,9 @@ dependencies = [ - - [[package]] - name = "terminal_size" --version = "0.1.15" -+version = "0.1.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4bd2d183bd3fac5f5fe38ddbeb4dc9aec4a39a9d7d59e7491d900302da01cbe1" -+checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406" - dependencies = [ - "libc", - "winapi", -@@ -482,33 +479,24 @@ dependencies = [ - - [[package]] - name = "thiserror" --version = "1.0.23" -+version = "1.0.24" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" -+checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" - dependencies = [ - "thiserror-impl", - ] - - [[package]] - name = "thiserror-impl" --version = "1.0.23" -+version = "1.0.24" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" -+checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" - dependencies = [ - "proc-macro2", - "quote", - "syn", - ] - --[[package]] --name = "thread_local" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" --dependencies = [ -- "lazy_static", --] -- - [[package]] - name = "toml" - version = "0.5.8" -@@ -532,9 +520,9 @@ checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" - - [[package]] - name = "vcpkg" --version = "0.2.11" -+version = "0.2.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" -+checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d" - - [[package]] - name = "vec_map" diff --git a/pkgs/development/tools/electron/default.nix b/pkgs/development/tools/electron/default.nix index 077d6c74c8b..a3f58ae827e 100644 --- a/pkgs/development/tools/electron/default.nix +++ b/pkgs/development/tools/electron/default.nix @@ -86,22 +86,22 @@ rec { headers = "0yx8mkrm15ha977hzh7g2sc5fab9sdvlk1bk3yxignhxrqqbw885"; }; - electron_10 = mkElectron "10.4.3" { - x86_64-linux = "48793fc6c6d3bfb8df81cd29f6c52e68c8c6b901693c6ba4ed505799fa673e9f"; - x86_64-darwin = "28cbacf51e0528e0d4ba30a2c56efd6a8e7f836104786733aae0c5fc99dc2615"; - i686-linux = "b9b7fd9b91630350dafe97a31c918f941ab15b044f0b4e9b2a705482447fe78f"; - armv7l-linux = "b1e1b4d0620eae647915c95d21656d21c00efe89f44198938d9fd9fba045e39c"; - aarch64-linux = "aa9177becf787920cef4cde27a6ed08e2e23976678162a3cd6b77615b1582c05"; - headers = "0phv08myxq226blrqzg3fza3mh3ivgfmcja98b7377pc3x7bv76g"; + electron_10 = mkElectron "10.4.4" { + x86_64-linux = "e82d347ff4753fd4296550e403390c7a9c448d150ea6bb05bd245fd43ac5a708"; + x86_64-darwin = "b8f01dedbd81c58e1dc0fafd316e4c1be07681f7e6d42d3f6f3947cf78d9a8fa"; + i686-linux = "2e7847c902e174496e152030932a921ca1cfb2ffcb556e2a01b08d8235eb333d"; + armv7l-linux = "303c246816bff2dc7aeb26d37d99fe82e4bbe484e3e96f42731f6350498b1af2"; + aarch64-linux = "21ba3370b01870fc498d7e180d034a3e3b59a84af231d2dcd82984d6d09fd5da"; + headers = "0qxzsycpdq1g8a2yaw7g43da1f8ijpbhj97vvxza8nnvxiay5apf"; }; - electron_11 = mkElectron "11.4.3" { - x86_64-linux = "222e7aa51d5516796d532f784c574f07315bad4bf29efb0ce687014f93ba5fa5"; - x86_64-darwin = "6cccbaf8dca7eb3819b0ac3044686f6705c5d51c88ee1361d8573c2b83c8dc0a"; - i686-linux = "1910729fd6088e9c914db9fdd6c42ce6747fcb048947dd83fa2cdf564c786353"; - armv7l-linux = "e0e1375bdb79a6917467490683e49bb59da9260b73d7b710a5e4e4535c1c5e80"; - aarch64-linux = "9fb287ed8bcc7782775bd615fe1c31db4a8b6d548209fd15ef5312ac72a04d07"; - headers = "00gln9jlb621gvxx1z7s212wakjbdigdqv02vx1pjvkg62aazg8j"; + electron_11 = mkElectron "11.4.4" { + x86_64-linux = "154ae71e674b37b6cb5ec56e0f569435cb9303a5b0c0608bd2e1d026803be1a5"; + x86_64-darwin = "783962e25433178a1e41b895dbbebc7b82efbe819dbd08c9314d2f4547c73e05"; + i686-linux = "fcfeba63e490648156f01bbe51f27123f93762713f6ab5e4433dc9c232708a25"; + armv7l-linux = "3b98dabbce5a5a8ba66d2f909174b792eeccddd95fd4396a596130f6817ec0d3"; + aarch64-linux = "cf886b382f4e3815487ee1403d4bb6ff434ecd9625e61c9ecf082f482c88617e"; + headers = "1wjcygxy6lvmf1lw857rcd499jk8103nvld0q3jj4r90gwbdhfi3"; }; electron_12 = mkElectron "12.0.5" { diff --git a/pkgs/development/tools/frugal/default.nix b/pkgs/development/tools/frugal/default.nix new file mode 100644 index 00000000000..e76b62d45cb --- /dev/null +++ b/pkgs/development/tools/frugal/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "frugal"; + version = "3.14.3"; + + src = fetchFromGitHub { + owner = "Workiva"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-zns2XcydY4xxgF8FB6eje0pAt0DZnFOIAqXaSX0xoMg="; + }; + + subPackages = [ "." ]; + + vendorSha256 = "sha256-hyupBMRKuw77SJNIk3mEUixV0LV5mEmZx8M70qGmYJY="; + + meta = with lib; { + description = "Thrift improved"; + homepage = "https://github.com/Workiva/frugal"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ diogox ]; + }; +} diff --git a/pkgs/development/tools/go-tools/default.nix b/pkgs/development/tools/go-tools/default.nix index 2bf5093e5e3..00cd19863d6 100644 --- a/pkgs/development/tools/go-tools/default.nix +++ b/pkgs/development/tools/go-tools/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "go-tools"; - version = "2020.2.3"; + version = "2020.2.4"; src = fetchFromGitHub { owner = "dominikh"; repo = "go-tools"; rev = version; - sha256 = "17li8jbw3cpn59kpcl3j3r2an4wkx3fc81xn0j4xgbjpkxh9493n"; + sha256 = "sha256-yFZ01bfejbq8zQ52DbcomBcHnB6H5Ds4MJP93xQ2/jU="; }; - vendorSha256 = "081p008sb3lkc8j6sa6n42qi04za4a631kihrd4ca6aigwkgl3ak"; + vendorSha256 = "sha256-Uw36Jn9RGcVIyzDOMIwi6hMQsSDWKG0kYpOOpREANyA="; doCheck = false; diff --git a/pkgs/development/tools/knightos/mkrom/default.nix b/pkgs/development/tools/knightos/mkrom/default.nix index 2e067e92d91..21caa5b8b32 100644 --- a/pkgs/development/tools/knightos/mkrom/default.nix +++ b/pkgs/development/tools/knightos/mkrom/default.nix @@ -1,25 +1,27 @@ -{ lib, stdenv, fetchFromGitHub, cmake, libxslt, asciidoc }: +{ lib, stdenv, fetchFromGitHub, libxslt, asciidoc }: stdenv.mkDerivation rec { pname = "mkrom"; - version = "1.0.3"; + version = "1.0.4"; src = fetchFromGitHub { owner = "KnightOS"; repo = "mkrom"; rev = version; - sha256 = "0xgvanya40mdwy35j94j61hsp80dm5b440iphmr5ng3kjgchvpx2"; + sha256 = "sha256-YFrh0tOGiM90uvU9ZWopW1+9buHDQtetuOtPDSYYaXw="; }; strictDeps = true; - nativeBuildInputs = [ asciidoc cmake libxslt.bin ]; + nativeBuildInputs = [ asciidoc libxslt.bin ]; - hardeningDisable = [ "format" ]; + installFlags = [ "DESTDIR=$(out)" ]; + installTargets = [ "install" "install_man" ]; meta = with lib; { homepage = "https://knightos.org/"; description = "Packages KnightOS distribution files into a ROM"; license = licenses.mit; maintainers = with maintainers; [ siraben ]; + platforms = platforms.all; }; } diff --git a/pkgs/development/tools/knightos/scas/default.nix b/pkgs/development/tools/knightos/scas/default.nix index ceb8212cf7f..255ecf798d8 100644 --- a/pkgs/development/tools/knightos/scas/default.nix +++ b/pkgs/development/tools/knightos/scas/default.nix @@ -2,14 +2,13 @@ stdenv.mkDerivation rec { pname = "scas"; - - version = "0.5.3"; + version = "0.5.5"; src = fetchFromGitHub { owner = "KnightOS"; repo = "scas"; rev = version; - sha256 = "0z6r07cl92kq860ddas5p88l990ih9cfqlzy5y4mk5hrmjzya60j"; + sha256 = "sha256-JGQE+orVDKKJsTt8sIjPX+3yhpZkujISroQ6g19+MzU="; }; cmakeFlags = [ "-DSCAS_LIBRARY=1" ]; diff --git a/pkgs/development/tools/krankerl/default.nix b/pkgs/development/tools/krankerl/default.nix index b771fe6bfc5..8697f81a9da 100644 --- a/pkgs/development/tools/krankerl/default.nix +++ b/pkgs/development/tools/krankerl/default.nix @@ -12,16 +12,16 @@ rustPlatform.buildRustPackage rec { pname = "krankerl"; - version = "0.13.0"; + version = "0.13.1"; src = fetchFromGitHub { owner = "ChristophWurst"; repo = "krankerl"; rev = "v${version}"; - sha256 = "1gp8b2m8kcz2f16zv9xwv4n1zki6imvz9z31kixh6amdj6fif3d1"; + sha256 = "sha256-uIFcWHdW8887CDkFxZznh9akYs+vxsE9Bc9g1hKi7Kc="; }; - cargoSha256 = "sha256:01hcxs14wwhhvr08x816wa3jcm4zvm6g7vais793cgijipyv00rc"; + cargoSha256 = "sha256-6joHwz0HIVbta8ALvsJLMvmeDh9IFPR4Cx36H63MliI="; nativeBuildInputs = [ pkg-config diff --git a/pkgs/development/tools/misc/hydra/default.nix b/pkgs/development/tools/misc/hydra/default.nix index 40a480a0909..7bed3b5d202 100644 --- a/pkgs/development/tools/misc/hydra/default.nix +++ b/pkgs/development/tools/misc/hydra/default.nix @@ -2,12 +2,12 @@ { hydra-unstable = callPackage ./common.nix { - version = "2021-03-29"; + version = "2021-04-29"; src = fetchFromGitHub { owner = "NixOS"; repo = "hydra"; - rev = "9bb04ed97af047968196bad1728f927f7a6d905f"; - sha256 = "sha256-gN/zNI2hGDMnYUjeGnU7SAuXP4KCmNqG+AYOVfINaQE="; + rev = "6047b1dd04d44acff9343b6b971ab609b73099d5"; + sha256 = "sha256-E7JOHhSd4gIzE6FvSZVMxZE9WagbBkrfZVoibkanaYE="; }; nix = nixFlakes; diff --git a/pkgs/development/tools/rgp/default.nix b/pkgs/development/tools/rgp/default.nix index 3cfd608e225..7b49a83b1cc 100644 --- a/pkgs/development/tools/rgp/default.nix +++ b/pkgs/development/tools/rgp/default.nix @@ -19,15 +19,15 @@ }: let - buildNum = "2020-11-19-376"; + buildNum = "2021-03-31-696"; in stdenv.mkDerivation rec { pname = "rgp"; - version = "1.9"; + version = "1.10"; src = fetchurl { url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz"; - sha256 = "f71ibuMerd0SmXKSDjaTj7xtyy1dWzkZ5s0PlGtQ1+k="; + sha256 = "1GUV75KpYbeq7KkE86QqTfGnf/t3VEgviaAsbg/LWJI="; }; nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; @@ -59,6 +59,9 @@ stdenv.mkDerivation rec { mkdir -p $out/opt/rgp $out/bin cp -r . $out/opt/rgp/ + chmod +x $out/opt/rgp/scripts/* + patchShebangs $out/opt/rgp/scripts + for prog in RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI RadeonGPUAnalyzer RadeonGPUProfiler rga rtda; do # makeWrapper is needed so that executables are started from the opt # directory, where qt.conf and other tools are diff --git a/pkgs/development/tools/rust/cargo-limit/default.nix b/pkgs/development/tools/rust/cargo-limit/default.nix index 3ebe5ef1304..7d63b7adcea 100644 --- a/pkgs/development/tools/rust/cargo-limit/default.nix +++ b/pkgs/development/tools/rust/cargo-limit/default.nix @@ -6,16 +6,16 @@ rustPlatform.buildRustPackage rec { pname = "cargo-limit"; - version = "0.0.7"; + version = "0.0.8"; src = fetchFromGitHub { owner = "alopatindev"; repo = "cargo-limit"; rev = version; - sha256 = "sha256-8HsYhWYeRhCPTxVnU8hOJKLXvza8i9KvKTLL6yLo0+c="; + sha256 = "sha256-OHBxQcXhZkJ1F6xLc7/sPpJhJzuJXb91IUjAtyC3XP8="; }; - cargoSha256 = "sha256-8uA4oFExrzDMeMV5MacbtE0Awdfx+jUUkrKd7ushOHo="; + cargoSha256 = "sha256-LxqxRtMKUKZeuvk1caoYy8rv1bkEOQBM8i5SXMF4GXc="; passthru = { updateScript = nix-update-script { diff --git a/pkgs/development/tools/rust/cargo-msrv/default.nix b/pkgs/development/tools/rust/cargo-msrv/default.nix new file mode 100644 index 00000000000..32ce1464f82 --- /dev/null +++ b/pkgs/development/tools/rust/cargo-msrv/default.nix @@ -0,0 +1,41 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, nix-update-script +, pkg-config +, openssl +}: + +rustPlatform.buildRustPackage rec { + pname = "cargo-msrv"; + version = "0.4.0"; + + src = fetchFromGitHub { + owner = "foresterre"; + repo = pname; + rev = "v${version}"; + sha256 = "1ynv5d2rxlc1gzq93v8qjyl5063w7q42g9m95250yh2lmf9hdj5i"; + }; + + cargoSha256 = "03rphdps17gzcmf8n5w14x5i5rjnfznsl150s3cz5vzhbmnlpszf"; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + # Integration tests fail + doCheck = false; + + buildInputs = [ openssl ]; + + nativeBuildInputs = [ pkg-config ]; + + meta = with lib; { + description = "Cargo subcommand \"msrv\": assists with finding your minimum supported Rust version (MSRV)"; + homepage = "https://github.com/foresterre/cargo-msrv"; + license = with licenses; [ asl20 /* or */ mit ]; + maintainers = with maintainers; [ otavio ]; + }; +} diff --git a/pkgs/development/tools/rust/cargo-rr/default.nix b/pkgs/development/tools/rust/cargo-rr/default.nix new file mode 100644 index 00000000000..47d58e9b92a --- /dev/null +++ b/pkgs/development/tools/rust/cargo-rr/default.nix @@ -0,0 +1,40 @@ +{ lib +, rustPlatform +, fetchFromGitHub +, nix-update-script +, makeWrapper +, rr +}: + +rustPlatform.buildRustPackage rec { + pname = "cargo-rr"; + version = "0.1.3"; + + src = fetchFromGitHub { + owner = "danielzfranklin"; + repo = pname; + rev = version; + sha256 = "01m8fdz9as2fxnzs9csvbc76qxzbb98a66dh7w4a5q855v38g0zy"; + }; + + cargoSha256 = "0fjs76n6bbbv83s213h2dgsszgxy4hbjsclyk9m81b3bfbmmb9sa"; + + passthru = { + updateScript = nix-update-script { + attrPath = pname; + }; + }; + + nativeBuildInputs = [ makeWrapper ]; + + postInstall = '' + wrapProgram $out/bin/cargo-rr --prefix PATH : ${lib.makeBinPath [ rr ]} + ''; + + meta = with lib; { + description = "Cargo subcommand \"rr\": a light wrapper around rr, the time-travelling debugger"; + homepage = "https://github.com/danielzfranklin/cargo-rr"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ otavio ]; + }; +} diff --git a/pkgs/development/tools/vagrant/default.nix b/pkgs/development/tools/vagrant/default.nix index 1ea172ae137..db807bda0a7 100644 --- a/pkgs/development/tools/vagrant/default.nix +++ b/pkgs/development/tools/vagrant/default.nix @@ -5,9 +5,9 @@ let # NOTE: bumping the version and updating the hash is insufficient; # you must use bundix to generate a new gemset.nix in the Vagrant source. - version = "2.2.15"; + version = "2.2.16"; url = "https://github.com/hashicorp/vagrant/archive/v${version}.tar.gz"; - sha256 = "sha256-mMnHJtXLfkZ5O0UF89kHsqBnPg9uQ5l8IYoL5TMMyD8="; + sha256 = "sha256-qzxguxKy2pFv0HMZKEnytdPyJPlf6/NTghIkfEzeKNY="; deps = bundlerEnv rec { name = "${pname}-${version}"; diff --git a/pkgs/development/tools/vagrant/gemset.nix b/pkgs/development/tools/vagrant/gemset.nix index 89555490492..27ebf31c32c 100644 --- a/pkgs/development/tools/vagrant/gemset.nix +++ b/pkgs/development/tools/vagrant/gemset.nix @@ -64,10 +64,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1759s0rz6qgsw86dds1z4jzb3fvizqsk11j5q6z7lc5n404w6i23"; + sha256 = "19g5nvkycnkzqq4mqn1zjznq9adrlv2jz0dr9w10cbn42hhqpiz7"; type = "gem"; }; - version = "0.79.0"; + version = "0.81.0"; }; ffi = { groups = ["default"]; @@ -274,10 +274,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "14mhzrhs2j43vj36i1qq4z29nd860shrslfik015f4kf1jiaqcrw"; + sha256 = "1rmm9ym3qxysrmvgnrad28llnzj6wj9ljir8zaw9myas7m8vhvsq"; type = "gem"; }; - version = "0.2.5"; + version = "0.2.6"; }; rubyntlm = { groups = ["default"]; diff --git a/pkgs/development/web/cypress/default.nix b/pkgs/development/web/cypress/default.nix index e05a320f63b..a4046c37abe 100644 --- a/pkgs/development/web/cypress/default.nix +++ b/pkgs/development/web/cypress/default.nix @@ -9,6 +9,8 @@ stdenv.mkDerivation rec { sha256 = "1m52v6hhblrjji9c5885bn5qq0xlaw36krbmqfac7fhgsxmkxd2h"; }; + passthru.updateScript = ./update.sh; + # don't remove runtime deps dontPatchELF = true; diff --git a/pkgs/development/web/cypress/update.sh b/pkgs/development/web/cypress/update.sh new file mode 100755 index 00000000000..f8389b517c3 --- /dev/null +++ b/pkgs/development/web/cypress/update.sh @@ -0,0 +1,10 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p common-updater-scripts curl jq + +set -euo pipefail + +basedir="$(git rev-parse --show-toplevel)" +version="$(curl -sL https://cdn.cypress.io/desktop/ | jq '.version' --raw-output)" + +cd "$basedir" +update-source-version cypress "$version" diff --git a/pkgs/development/web/nodejs/nodejs.nix b/pkgs/development/web/nodejs/nodejs.nix index 09d15901ada..0e52dd5f804 100644 --- a/pkgs/development/web/nodejs/nodejs.nix +++ b/pkgs/development/web/nodejs/nodejs.nix @@ -142,6 +142,7 @@ in license = licenses.mit; maintainers = with maintainers; [ goibhniu gilligan cko marsam ]; platforms = platforms.linux ++ platforms.darwin; + mainProgram = "node"; }; passthru.python = python; # to ensure nodeEnv uses the same version diff --git a/pkgs/games/methane/default.nix b/pkgs/games/methane/default.nix new file mode 100644 index 00000000000..17c9dc42567 --- /dev/null +++ b/pkgs/games/methane/default.nix @@ -0,0 +1,70 @@ +{ lib +, stdenv +, fetchFromGitHub +, pkg-config +, SDL2 +, SDL2_image +, SDL2_mixer +, fontconfig +, freealut +, freeglut +, gettext +, libGL +, libGLU +, openal +, quesoglc +, clanlib +, libXrender +, libmikmod +, alsaLib +}: + +stdenv.mkDerivation rec { + pname = "methane"; + version = "2.0.1"; + + src = fetchFromGitHub { + repo = "methane"; + owner = "rombust"; + rev = "v${version}"; + sha256 = "sha256-STS2+wfZ8E1jpr0PYQOBQsztxhJU0Dt3IhWBE3sjdWE="; + }; + + nativeBuildInputs = [ + gettext + pkg-config + ]; + buildInputs = [ + SDL2 + SDL2_image + SDL2_mixer + fontconfig + freealut + freeglut + libGL + libGLU + openal + quesoglc + clanlib + libXrender + libmikmod + alsaLib + ]; + + installPhase = '' + runHook preInstall + mkdir -p $out/bin/ $out/share/methane/ $out/share/docs/ + cp methane $out/bin + cp -r resources/* $out/share/methane/. + cp -r docs/* $out/share/docs/. + runHook postInstall + ''; + + meta = with lib; { + homepage = "https://github.com/rombust/methane"; + description = "A clone of Taito's Bubble Bobble arcade game released for Amiga in 1993 by Apache Software"; + license = licenses.gpl2Only; + maintainers = with maintainers; [ nixinator ]; + platforms = [ "x86_64-linux" ]; + }; +} diff --git a/pkgs/games/osu-lazer/default.nix b/pkgs/games/osu-lazer/default.nix index 81f50e96822..7dd9235b69d 100644 --- a/pkgs/games/osu-lazer/default.nix +++ b/pkgs/games/osu-lazer/default.nix @@ -16,13 +16,13 @@ let in stdenv.mkDerivation rec { pname = "osu-lazer"; - version = "2021.410.0"; + version = "2021.502.0"; src = fetchFromGitHub { owner = "ppy"; repo = "osu"; rev = version; - sha256 = "twKg9iZdY+zgwEQeHMOlRZKXxAHic7GnoqH0jOdW7fw="; + sha256 = "IOneihYQry0pRXYaxZuVLIj2Ydei//khvpqwiJoakZ8="; }; patches = [ ./bypass-tamper-detection.patch ]; diff --git a/pkgs/games/osu-lazer/deps.nix b/pkgs/games/osu-lazer/deps.nix index f30ac9b13f4..9c839ec376e 100644 --- a/pkgs/games/osu-lazer/deps.nix +++ b/pkgs/games/osu-lazer/deps.nix @@ -26,8 +26,8 @@ }) (fetchNuGet { name = "Humanizer"; - version = "2.8.26"; - sha256 = "11kddzyzqpq9gkz0hmrblq494nh86va6wxx6z89xi6w1f4vj15ak"; + version = "2.9.9"; + sha256 = "07ql79qz4m7cdr6g0f0dxjywrv70xzpzz45gch73x1ad4vwc5n4m"; }) (fetchNuGet { name = "Humanizer.Core"; @@ -36,228 +36,243 @@ }) (fetchNuGet { name = "Humanizer.Core"; - version = "2.8.26"; - sha256 = "1v8xd12yms4qq1md4vh6faxicmqrvahqdd7sdkyzrphab9v44nsm"; + version = "2.9.9"; + sha256 = "05sn5l0qg5bi8qxqxlch88zlk79z9pbh6jwln7b3yxnp4hkj4kvm"; }) (fetchNuGet { name = "Humanizer.Core.af"; - version = "2.8.26"; - sha256 = "0znrq4frlkq1qi20301hlzxa6mdc275fa1i1a1i8ldgk9cjq94k9"; + version = "2.9.9"; + sha256 = "0l51ll73gjjarpyknj81v8f64mg0f0zlc7q3sgcz4fkmj6n0wxb3"; }) (fetchNuGet { name = "Humanizer.Core.ar"; - version = "2.8.26"; - sha256 = "1hi7mln48p1nmxlgdq725s4cvla9nlkvbmrsql1rfjjlsy8hn6n7"; + version = "2.9.9"; + sha256 = "1akrcrxl01phzp1cyhknwcmghhmr808dzv9aj8vzjmyq67p8mnja"; }) (fetchNuGet { name = "Humanizer.Core.az"; - version = "2.8.26"; - sha256 = "0av7ycrqwvmikqia3z3qkp9967zilrhayny17zkm0d0mnjq62vs6"; + version = "2.9.9"; + sha256 = "0jsxjvhmgwngx5b1yki5g6ns7yhzn3m5invzlnl79dh09krx9pg4"; }) (fetchNuGet { name = "Humanizer.Core.bg"; - version = "2.8.26"; - sha256 = "13j6zk2cmk7a119azxlpjhfwykrzk0vkf5a799fb2fzkvhnj4hkg"; + version = "2.9.9"; + sha256 = "0l32vi52qkvx267qnykid5965199h6rcy5r04gmkv3lg2ydds0ig"; }) (fetchNuGet { name = "Humanizer.Core.bn-BD"; - version = "2.8.26"; - sha256 = "0h619sksggfi7dnaycz6bj9aiqdgn0d8dpgjgdl73crw52lr70p9"; + version = "2.9.9"; + sha256 = "1yivbxcxh15jgy8j5fzrd40c9k75wmcd9wdy1333zwcyrwqzpx7v"; }) (fetchNuGet { name = "Humanizer.Core.cs"; - version = "2.8.26"; - sha256 = "11bh3k15388bi5wizaihnwqk7wb4n7q636fqjllwdhjggqrsc3f6"; + version = "2.9.9"; + sha256 = "05ysribnj8b2q2fcm33lcgz7mcdgx5q53w6vihyjc5s6zmlfqqfr"; }) (fetchNuGet { name = "Humanizer.Core.da"; - version = "2.8.26"; - sha256 = "09b3x3bw3cgby9qvaccnqz2y6d8gl3497dh7q0dk1iznsxbk4x4m"; + version = "2.9.9"; + sha256 = "0d6swwliw0cbb03vjv2i1n8vcclwzragi1ik3m6ysbwm1m0sip5v"; }) (fetchNuGet { name = "Humanizer.Core.de"; - version = "2.8.26"; - sha256 = "1pyp2a9my20wlwjjzv563kshl9fpjb2kd4cw41l4wvsz1bsq3l22"; + version = "2.9.9"; + sha256 = "085ijfkbz4q6q90z0qc4k5hsv2acdlhli8whiikil9mlrjsjrqhi"; }) (fetchNuGet { name = "Humanizer.Core.el"; - version = "2.8.26"; - sha256 = "0v3sdcxca4dam1y5yjh9n6v711ys0zdv38hr4kij35s6277ls6lb"; + version = "2.9.9"; + sha256 = "1f5fr6l8f4brva1jxx6migv9yhp98svwkzly1b2b6n43ngppn4jd"; }) (fetchNuGet { name = "Humanizer.Core.es"; - version = "2.8.26"; - sha256 = "0wh9qvqf80cngwsz2jnrsjpmaax4xa2xp8bbk5xs480kp071z37q"; + version = "2.9.9"; + sha256 = "0nwwxhp2wgq424fy2mjrgsjsm86y818zl64k6zibkcnfldm8als6"; }) (fetchNuGet { name = "Humanizer.Core.fa"; - version = "2.8.26"; - sha256 = "00v56ddjfv6sr6w5246gn5z0padwswvnngp8mdl7gjfg5ycmbkl1"; + version = "2.9.9"; + sha256 = "1268lf9lxxnnax0ivyghh707fy50z09qds2jlh53dw1q0lxqgp50"; }) (fetchNuGet { name = "Humanizer.Core.fi-FI"; - version = "2.8.26"; - sha256 = "1pgs0j5ri50a6vhljplhrlc8jj1hrd9ggxkj60d9v5kk9xibzzyd"; + version = "2.9.9"; + sha256 = "1cjs78z1lc7a42b1wvcpxpydyv65rvyfvfic8k0d2flwcv98i7z2"; }) (fetchNuGet { name = "Humanizer.Core.fr"; - version = "2.8.26"; - sha256 = "0kkhgy3yn8vfqlx3dhb9m3cazkgfxarknam4macng9y17l7wj83m"; + version = "2.9.9"; + sha256 = "1al0xbg6p0287v60a4s6k7vgsng6k4m0scwlshmqsqxmvfsa1wk3"; }) (fetchNuGet { name = "Humanizer.Core.fr-BE"; - version = "2.8.26"; - sha256 = "13spcx07hph366qk073pz63s56nadaac7l4mr4a66gbpqd3814kb"; + version = "2.9.9"; + sha256 = "0jvi063lsrzds52zvq4w4qx6khkjcn5k8mp4014pzlphfhvlfbcl"; }) (fetchNuGet { name = "Humanizer.Core.he"; - version = "2.8.26"; - sha256 = "1ccn82aj3rhrhsa3kvkrmjw0p687icxlfja8ngbh7sby4cszx9bk"; + version = "2.9.9"; + sha256 = "1azymmsf79dyl8ihx8kn19mymx98sjknaqrqf043fy8qwirll1wm"; }) (fetchNuGet { name = "Humanizer.Core.hr"; - version = "2.8.26"; - sha256 = "12ii79bhai3kv7zr3k9k9dh569r6p3m4l4gj25cln2isr4wdi5r9"; + version = "2.9.9"; + sha256 = "1ygi02nxssn1wrdzammr5km7ak5h8yxghfvbcmy559npg0gy2gya"; }) (fetchNuGet { name = "Humanizer.Core.hu"; - version = "2.8.26"; - sha256 = "0cibbdxiqhwrjmxlr805mg3l9v0fl2ydx4m50608rkysjq6vxx7y"; + version = "2.9.9"; + sha256 = "0nimza5dngvl6yyigavr1rk5068yf2fmq3w3nm128plbnc8ynxfr"; }) (fetchNuGet { name = "Humanizer.Core.hy"; - version = "2.8.26"; - sha256 = "15aikm04f74abm4ak8rvnnkrlcz155gibn1y81pbgsyn7yrh84v3"; + version = "2.9.9"; + sha256 = "0v11hfh39mzm27dshmakhdnbpgzg660mskn1pkmmfdprka970cfj"; }) (fetchNuGet { name = "Humanizer.Core.id"; - version = "2.8.26"; - sha256 = "1i9gpzdfhmbvrqg858kqz5461sp3sh60g16dmcmyi1ik0qlspijn"; + version = "2.9.9"; + sha256 = "012bhisp75s4wv37ra692bfsvibnqgbfyipb2hw0743dqcy2mah2"; }) (fetchNuGet { name = "Humanizer.Core.it"; - version = "2.8.26"; - sha256 = "01j7qskmqcxsakbx3bkxcjyzrh6nxi2v6kfzsfb0vf980qqq331l"; + version = "2.9.9"; + sha256 = "1jj7qbia4b09hsyll524mpz67vy4z25zazwc1g10yi1sjsyah92f"; }) (fetchNuGet { name = "Humanizer.Core.ja"; - version = "2.8.26"; - sha256 = "07d19ns4a4pa2k4vdc1af7wj10gaflq1ny4mx6y574afkdi8v6d5"; + version = "2.9.9"; + sha256 = "1wqxw815287jlg6a6x3ffjhxvpa5al94jh3qkai2rw5kggcqzws4"; + }) + (fetchNuGet { + name = "Humanizer.Core.ko-KR"; + version = "2.9.9"; + sha256 = "1azggn1i8gnvc89kh7mv165bd2c7fwp1m1h9k6fcdk36kl4xxb97"; + }) + (fetchNuGet { + name = "Humanizer.Core.ku"; + version = "2.9.9"; + sha256 = "1qpwancwa6hgafrcdpbdb00vq08hrk77wjl64dvcjsx010n4c0fc"; }) (fetchNuGet { name = "Humanizer.Core.lv"; - version = "2.8.26"; - sha256 = "1pm64sj65nmngyfa3hjcw67icfmlzr232hmgpnw7306sb7dxmnfv"; + version = "2.9.9"; + sha256 = "1k6gxlzkpfmp8khn0dl0bfw878qpdff6zjqbirgpvlc57d00bws4"; }) (fetchNuGet { name = "Humanizer.Core.ms-MY"; - version = "2.8.26"; - sha256 = "1yx4cc023kc4k14abk2ycmjy6y2xaknaz4zria7xsadf0fabd1jc"; + version = "2.9.9"; + sha256 = "0p0lc3qkq5f8354g77xgy8qc9wyc509rca8xrzgc2lpzbvb4v008"; }) (fetchNuGet { name = "Humanizer.Core.mt"; - version = "2.8.26"; - sha256 = "0iai35pzka9g6c3sgswki06fk6gdnq8kc88wyb4pcciivazz31px"; + version = "2.9.9"; + sha256 = "0qn2c583lbc5qg0i1inqjb7zn8vcmvmjy8k70ngb6qyl1navmvcm"; }) (fetchNuGet { name = "Humanizer.Core.nb"; - version = "2.8.26"; - sha256 = "0xprhiyjyq6mpha2lrav59n1f48508ddvm9nmdk5sm5k26ff3l90"; + version = "2.9.9"; + sha256 = "12b7dx6jp5fcwsn54i7w1qz8y3cwbl8n8hia75iy9acd9l328shk"; }) (fetchNuGet { name = "Humanizer.Core.nb-NO"; - version = "2.8.26"; - sha256 = "160c98wfh7d2xlvlra4x5rdj4klgcjwcy3gkb4ipg655byn2m1j2"; + version = "2.9.9"; + sha256 = "04f47z9klpj6dq1gqlbcgyrli2s3rjci75i8lrng63vjjqi7jpqh"; }) (fetchNuGet { name = "Humanizer.Core.nl"; - version = "2.8.26"; - sha256 = "067pqm4i1mk83fqqr0bvzrchrvxwdnff18z3djgagclh1i4xqlvk"; + version = "2.9.9"; + sha256 = "19l4ik73500k2nxpcpylawy1aimb0awd82521abry3az4kc1lf29"; }) (fetchNuGet { name = "Humanizer.Core.pl"; - version = "2.8.26"; - sha256 = "1r1bbqb990war1hiag5f88yxw0k9jiid1ihb4s5bc1lzs3vfsb6x"; + version = "2.9.9"; + sha256 = "0hdh6gvz00xbrfyypwlbaw14409p75wqxraih2ckw23g8ci404l3"; }) (fetchNuGet { name = "Humanizer.Core.pt"; - version = "2.8.26"; - sha256 = "1bik0vjjdzw51yl11ng9gsi3ihz50ibwh1gdhh2vd13jxjzb512p"; + version = "2.9.9"; + sha256 = "03xplyqms9hpkl2bzhnqij3il78adi8a4azrs658rslpl8fl7ksd"; }) (fetchNuGet { name = "Humanizer.Core.ro"; - version = "2.8.26"; - sha256 = "12f2hry6x1p1mgx6g4kpig2jpybx52ibghvhdhjbbfhy32gv8dr0"; + version = "2.9.9"; + sha256 = "0x8qjkp8w32bhwr6509zpxlkvxb9izkgzq411hmh2sx4hrr90pzc"; }) (fetchNuGet { name = "Humanizer.Core.ru"; - version = "2.8.26"; - sha256 = "1hri12kwymzvdqcr66l8yiqiw3pmf9fk492z10yqljm576kyshgg"; + version = "2.9.9"; + sha256 = "0s2f9wxqwy281zw7aiswvfk8dg0i278g4z2l3bqn9iyijqm47zxx"; }) (fetchNuGet { name = "Humanizer.Core.sk"; - version = "2.8.26"; - sha256 = "07jfgk67axw97b85dn4bwpjwf3swd74j9hdd870qps12xfp98i9j"; + version = "2.9.9"; + sha256 = "0nq27nx6xq81d5avriphm7s926xm34306v7l7c88n71kn097jzl9"; }) (fetchNuGet { name = "Humanizer.Core.sl"; - version = "2.8.26"; - sha256 = "060xbzwb7p9ypbqfklih2zal2rh6h55gq4hv3i6alvlbd3vsx29n"; + version = "2.9.9"; + sha256 = "0dwszkm2xd4ysh3rrjx1zran09hl532hjrppfckqyy6n65b4axyf"; }) (fetchNuGet { name = "Humanizer.Core.sr"; - version = "2.8.26"; - sha256 = "0i2c24qmqnhp85b088qlbagxd48hcl0v1ly4m7hfbvx5s7fg8riv"; + version = "2.9.9"; + sha256 = "1vmfs9jp8ljlh6965pmb4afbcc9c4zlg5dn1pgbjc4miiwj6vc73"; }) (fetchNuGet { name = "Humanizer.Core.sr-Latn"; - version = "2.8.26"; - sha256 = "1911a69sqssh9f007vmxbgyj4ym2ym4423xvw6cmbfhjcrhkfpbi"; + version = "2.9.9"; + sha256 = "1dakb2zcaxmm9qw8fnsz5z12mmbjgx7jm9plxbm7jidjn7z271yl"; }) (fetchNuGet { name = "Humanizer.Core.sv"; - version = "2.8.26"; - sha256 = "056h8n9i18yl78f9ppzn2kkrz2cs46aqv0j5y8xq360zarggh0nm"; + version = "2.9.9"; + sha256 = "0jys46lz25yxx70w7y2623iabv3clf3lix8jzl8r68rj0lw6pxdz"; + }) + (fetchNuGet { + name = "Humanizer.Core.th-TH"; + version = "2.9.9"; + sha256 = "0r37ckvh68xvlyszgx94a8xxmya5cqiqnvdg5syw04lj0rshc3jb"; }) (fetchNuGet { name = "Humanizer.Core.tr"; - version = "2.8.26"; - sha256 = "0dk8ga3fpxifxxkz0n68654h65cvrx00hy7q00m5vgvmcp70gxxn"; + version = "2.9.9"; + sha256 = "1dnba6wbf6r5a1gmf7a7136qhy1w8izbh6wimmmwqsch2sk4ng4f"; }) (fetchNuGet { name = "Humanizer.Core.uk"; - version = "2.8.26"; - sha256 = "0bnj5xqlcqp4n8i04ra78dax4854zbf2jsygvb4lpiayyyaj2bxw"; + version = "2.9.9"; + sha256 = "1z0kdp2qkiyb4dhy22rqfik2b2c899nzkfh10907gp9827rdz3b9"; }) (fetchNuGet { name = "Humanizer.Core.uz-Cyrl-UZ"; - version = "2.8.26"; - sha256 = "1bbf6mxas6brjw7rjljq5saz6v3ic6zbvm1b3c1jbk0hc0qkd7c8"; + version = "2.9.9"; + sha256 = "1rnqa7w8s44fnqpw4g2drcwyajd5zhmwkqipi5zfhh0bcdnj9hxx"; }) (fetchNuGet { name = "Humanizer.Core.uz-Latn-UZ"; - version = "2.8.26"; - sha256 = "1bfgfihpynax30g9kq8kra7c4jxps2ccxsxrs9gls47xbs35cw2f"; + version = "2.9.9"; + sha256 = "1i1c6dy4bdglgyhv8g13lwqlis1snl7zcpdrvidw40f74ch0zq0g"; }) (fetchNuGet { name = "Humanizer.Core.vi"; - version = "2.8.26"; - sha256 = "1vm765nvkp6wyfwlcgppimjrk04lkg8lscch3n1i1i5hlqxrs9ch"; + version = "2.9.9"; + sha256 = "0ji0lmcm073x9fyigrw3b500drz268jarv6vfxpwxbzxd3mvnrys"; }) (fetchNuGet { name = "Humanizer.Core.zh-CN"; - version = "2.8.26"; - sha256 = "1qyl12rdh4iv1k1qcivcmxxnh8y93ainf22pmch8vvw9yjhs1y7s"; + version = "2.9.9"; + sha256 = "10iyrahi7rdp8lq4rxb2k9pny7da2aw9xfy2la8jdjrjgmqwffsi"; }) (fetchNuGet { name = "Humanizer.Core.zh-Hans"; - version = "2.8.26"; - sha256 = "1gqv3dyk236wlp5wb7kd4qnyrmp3cy36ycykl7zr91s25cdls5vy"; + version = "2.9.9"; + sha256 = "0f92fvzgcifaf2b64x8v52xckp1qxg88djlb9vlj083f6x29ick5"; }) (fetchNuGet { name = "Humanizer.Core.zh-Hant"; - version = "2.8.26"; - sha256 = "1rhzbiqbx04l3kvzjklix90fxyc6vvmmw0p564ajdiximivs0pbh"; + version = "2.9.9"; + sha256 = "0v9vqn6h467q7fy3xwabnqw48p48ilwkfg62b65j0q76ppnvsnvj"; }) (fetchNuGet { name = "JetBrains.Annotations"; @@ -301,53 +316,53 @@ }) (fetchNuGet { name = "Microsoft.AspNetCore.Connections.Abstractions"; - version = "5.0.4"; - sha256 = "002a3cvarwvvyic65khwavjxqsqjlnbgqc11sdyj3li15fxflk5g"; + version = "5.0.5"; + sha256 = "0qi4q54v7qiyc7xjbby88vmg1zcnb39sg8g1s7h0dnvapa436jv5"; }) (fetchNuGet { name = "Microsoft.AspNetCore.Http.Connections.Client"; - version = "5.0.4"; - sha256 = "1s19hx083c0r98wi6a8gqb3j3xjlrp9rkmvbpdxikzw8z4bnrjpn"; + version = "5.0.5"; + sha256 = "1lpsjv6475p2vdvwv9wwmpzxc0r9bfya15nc5xqiv8m9z8d4sxlh"; }) (fetchNuGet { name = "Microsoft.AspNetCore.Http.Connections.Common"; - version = "5.0.4"; - sha256 = "132ahfq7m369iss4ka402fj24rjdnhia41b94l3l135zplzlsl5n"; + version = "5.0.5"; + sha256 = "1knfn9d1wsczaic3vlnracmj5frpaxwx15x7j06kgi2kl6j2hbc7"; }) (fetchNuGet { name = "Microsoft.AspNetCore.Http.Features"; - version = "5.0.4"; - sha256 = "064n12ydyngh5q3y597x5cmciib74mpnhkvxicqp0kmgqsixkc7b"; + version = "5.0.5"; + sha256 = "011xdkqna8q0r2h9i1f646rkfjbl9qbaq56a487zagp8plwxvaxl"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Client"; - version = "5.0.4"; - sha256 = "0rpafasicnqng7ylx29hyslwp6g2j1l92szs0n9j98siscap17qg"; + version = "5.0.5"; + sha256 = "0r16n5c4im7gkfrhx2miiz9w58j0z87wjysbi4rsdav94hmkvgj4"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Client.Core"; - version = "5.0.4"; - sha256 = "1fwy2akhgphx72hc3rlax08aiaabvm9fi6jfj2r1dyzb2plcgig3"; + version = "5.0.5"; + sha256 = "11phwns2sn44vfd3vn6c0lh3aiiysfpav7rmv4cmjkxp3jmpay8r"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Common"; - version = "5.0.4"; - sha256 = "1dy00sf695sz842rlvgbyj2krgiqprx8qcdci8lz388rwp17drk2"; + version = "5.0.5"; + sha256 = "0am84ckim30djh4inv7mqph50axik79dwbfyrzlnaxcd3jr73c8c"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.Json"; - version = "5.0.4"; - sha256 = "0xp6ihjq835iqiiaxjl501pfplkqhd40kqxkazfj1icryls8hzhq"; + version = "5.0.5"; + sha256 = "1z8d2dsgj9bh9a2xcz5xlrw4iijgmrm1midkdqni9b4nypbyraf6"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.MessagePack"; - version = "5.0.4"; - sha256 = "1bvy4pvp3kxl75mbgy7saapjcnczylrqhf8ry0s66r12f7bzjki8"; + version = "5.0.5"; + sha256 = "0p52j1mrihvm4y4yp2rnimp4vdypn0hbba0p79vp617jj17vs45l"; }) (fetchNuGet { name = "Microsoft.AspNetCore.SignalR.Protocols.NewtonsoftJson"; - version = "5.0.4"; - sha256 = "1gbkgc3cqv7q10k9hrjfj1ixpwx7b4n0x2f7sn9snsh977w7209j"; + version = "5.0.5"; + sha256 = "0jllzr9sba5m9ccdslr4dysmxzrfzy9zvianmqhmj4is6dg2krfs"; }) (fetchNuGet { name = "Microsoft.Bcl.AsyncInterfaces"; @@ -574,6 +589,11 @@ version = "5.0.0"; sha256 = "0swqcknyh87ns82w539z1mvy804pfwhgzs97cr3nwqk6g5s42gd6"; }) + (fetchNuGet { + name = "Microsoft.Extensions.Primitives"; + version = "5.0.1"; + sha256 = "01ar5ba2sal9wnpa1xnnikhgb37vzhg2cspz45wf760jflpai2vv"; + }) (fetchNuGet { name = "Microsoft.NETCore.App.Runtime.linux-x64"; version = "5.0.5"; @@ -629,6 +649,11 @@ version = "0.9.6.1"; sha256 = "1fr7969h5q611l5227xw6nvv5rzap76vbpk0wg9hxbcxk3hn7szf"; }) + (fetchNuGet { + name = "Mono.Posix.NETStandard"; + version = "1.0.0"; + sha256 = "0xlja36hwpjm837haq15mjh2prcf68lyrmn72nvgpz8qnf9vappw"; + }) (fetchNuGet { name = "NETStandard.Library"; version = "1.6.0"; @@ -706,23 +731,23 @@ }) (fetchNuGet { name = "NUnit"; - version = "3.13.1"; - sha256 = "07156gr0yl9rqhyj44cp1xz9jpngbl5kb7ci3qfy9fcp01dczmm9"; + version = "3.13.2"; + sha256 = "00bkjgarkwbj497da9d7lajala1ns67h1kx53w4bapwkf32jlcvn"; }) (fetchNuGet { name = "OpenTabletDriver"; - version = "0.5.2.3"; - sha256 = "1qz5vmdwmfw8glkm6r7n06srcvrz5c3cwld1wv6xw4sagvwf0b6g"; + version = "0.5.3.1"; + sha256 = "16xw8w943x9gvnnpbryahff5azzy8n26j2igyqgv88m352jd9rb8"; }) (fetchNuGet { name = "OpenTabletDriver.Plugin"; - version = "0.5.2.3"; - sha256 = "0i03n5aydn0rv1v2y9c1cm9a2ss9y7p7l92k1x2yb6mwbx6vkpda"; + version = "0.5.3.1"; + sha256 = "17dxsvcz9g8kzydk5xlfz9kfxl62x9wi20609rh76wjd881bg1br"; }) (fetchNuGet { name = "ppy.osu.Framework"; - version = "2021.410.0"; - sha256 = "1vwdrspdpal44hyspv3rsax8mkszvbnc2xl1xswczx9mzj6qs4by"; + version = "2021.427.0"; + sha256 = "18n9g21y7asgr51fskfk3m0sx07y1mwrsdq4s065i8yk8d412mh7"; }) (fetchNuGet { name = "ppy.osu.Framework.NativeLibs"; @@ -731,8 +756,8 @@ }) (fetchNuGet { name = "ppy.osu.Game.Resources"; - version = "2021.410.0"; - sha256 = "1a5qia4595n0b21dj63sl71ar56m9x1glqwky7a9bb0dqpvfivya"; + version = "2021.422.0"; + sha256 = "1zw0197k6wmmjqjh022q3302mrwn59msx06y66378pahmhrr0sjc"; }) (fetchNuGet { name = "ppy.osuTK.NS20"; @@ -856,8 +881,8 @@ }) (fetchNuGet { name = "Sentry"; - version = "3.2.0"; - sha256 = "1hhgc4sqd7nampqydpdwfrc04hhqlkbv4p4w8cq6dswp5rf5k89b"; + version = "3.3.4"; + sha256 = "188rlyg6xfmgk6ypyg1mmbvm8d64q3wfjn3h0ays73b9wlypk8x6"; }) (fetchNuGet { name = "SharpCompress"; @@ -866,8 +891,8 @@ }) (fetchNuGet { name = "SharpCompress"; - version = "0.28.1"; - sha256 = "1h7gx7apafdd0jnv12fppca9b6cpq205kjkcipclxp1lli0i7qvw"; + version = "0.28.2"; + sha256 = "0pj30qm48m9vpq3i8wx9x11ficv36ki1973dk0873vqgvw8fwjj4"; }) (fetchNuGet { name = "SharpFNT"; @@ -1604,6 +1629,11 @@ version = "5.0.0"; sha256 = "144pgy65jc3bkar7d4fg1c0rq6qmkx68gj9k1ldk97558w22v1r1"; }) + (fetchNuGet { + name = "System.Text.Encodings.Web"; + version = "5.0.1"; + sha256 = "00yg63qnp94q2qryxxggzigi276bibb8b3b96gcvsyrxy7b703n9"; + }) (fetchNuGet { name = "System.Text.Json"; version = "5.0.0"; @@ -1611,8 +1641,8 @@ }) (fetchNuGet { name = "System.Text.Json"; - version = "5.0.1"; - sha256 = "1j7via4spxy73ipng754wdz1nb882gsb9qh26jqlql66vzbbm3j3"; + version = "5.0.2"; + sha256 = "0vd0wd29cdhgcjngl9sw391sn2s8xm974y15zvym0whsdgjwiqfx"; }) (fetchNuGet { name = "System.Text.RegularExpressions"; diff --git a/pkgs/games/steam/runtime.nix b/pkgs/games/steam/runtime.nix index 70c6abe8db4..b501df598ef 100644 --- a/pkgs/games/steam/runtime.nix +++ b/pkgs/games/steam/runtime.nix @@ -8,11 +8,11 @@ stdenv.mkDerivation rec { pname = "steam-runtime"; # from https://repo.steampowered.com/steamrt-images-scout/snapshots/ - version = "0.20201203.1"; + version = "0.20210317.0"; src = fetchurl { url = "https://repo.steampowered.com/steamrt-images-scout/snapshots/${version}/steam-runtime.tar.xz"; - sha256 = "sha256-hOHfMi0x3K82XM3m/JmGYbVk5RvuHG+m275eAC0MoQc="; + sha256 = "061z2r33n2017prmhdxm82cly3qp3bma2q70pqs57adl65yvg7vw"; name = "scout-runtime-${version}.tar.gz"; }; diff --git a/pkgs/misc/emulators/mgba/default.nix b/pkgs/misc/emulators/mgba/default.nix index be097c31185..fa25609dcdb 100644 --- a/pkgs/misc/emulators/mgba/default.nix +++ b/pkgs/misc/emulators/mgba/default.nix @@ -1,6 +1,22 @@ -{ lib, stdenv, fetchFromGitHub, makeDesktopItem, wrapQtAppsHook, pkg-config -, cmake, epoxy, libzip, libelf, libedit, ffmpeg_3, SDL2, imagemagick -, qtbase, qtmultimedia, qttools, minizip }: +{ lib +, stdenv +, fetchFromGitHub +, SDL2 +, cmake +, epoxy +, ffmpeg +, imagemagick +, libedit +, libelf +, libzip +, makeDesktopItem +, minizip +, pkg-config +, qtbase +, qtmultimedia +, qttools +, wrapQtAppsHook +}: let desktopItem = makeDesktopItem { @@ -21,14 +37,26 @@ in stdenv.mkDerivation rec { owner = "mgba-emu"; repo = "mgba"; rev = version; - sha256 = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs="; + hash = "sha256-JVauGyHJVfiXVG4Z+Ydh1lRypy5rk9SKeTbeHFNFYJs="; }; - nativeBuildInputs = [ wrapQtAppsHook pkg-config cmake ]; - + nativeBuildInputs = [ + cmake + pkg-config + wrapQtAppsHook + ]; buildInputs = [ - epoxy libzip libelf libedit ffmpeg_3 SDL2 imagemagick - qtbase qtmultimedia qttools minizip + SDL2 + epoxy + ffmpeg + imagemagick + libedit + libelf + libzip + minizip + qtbase + qtmultimedia + qttools ]; postInstall = '' @@ -38,21 +66,19 @@ in stdenv.mkDerivation rec { meta = with lib; { homepage = "https://mgba.io"; description = "A modern GBA emulator with a focus on accuracy"; - longDescription = '' mGBA is a new Game Boy Advance emulator written in C. - The project started in April 2013 with the goal of being fast - enough to run on lower end hardware than other emulators - support, without sacrificing accuracy or portability. Even in - the initial version, games generally play without problems. It - is loosely based on the previous GBA.js emulator, although very - little of GBA.js can still be seen in mGBA. + The project started in April 2013 with the goal of being fast enough to + run on lower end hardware than other emulators support, without + sacrificing accuracy or portability. Even in the initial version, games + generally play without problems. It is loosely based on the previous + GBA.js emulator, although very little of GBA.js can still be seen in mGBA. - Other goals include accurate enough emulation to provide a - development environment for homebrew software, a good workflow - for tool-assist runners, and a modern feature set for emulators - that older emulators may not support. + Other goals include accurate enough emulation to provide a development + environment for homebrew software, a good workflow for tool-assist + runners, and a modern feature set for emulators that older emulators may + not support. ''; license = licenses.mpl20; @@ -60,3 +86,4 @@ in stdenv.mkDerivation rec { platforms = platforms.linux; }; } +# TODO [ AndersonTorres ]: use desktopItem functions diff --git a/pkgs/misc/emulators/ppsspp/default.nix b/pkgs/misc/emulators/ppsspp/default.nix index a50bc3eb3ec..4f5b4f7d69b 100644 --- a/pkgs/misc/emulators/ppsspp/default.nix +++ b/pkgs/misc/emulators/ppsspp/default.nix @@ -1,11 +1,11 @@ -{ SDL2 -, cmake +{ mkDerivation , fetchFromGitHub -, ffmpeg_3 +, SDL2 +, cmake +, ffmpeg , glew , lib , libzip -, mkDerivation , pkg-config , python3 , qtbase @@ -23,7 +23,7 @@ mkDerivation rec { repo = pname; rev = "v${version}"; fetchSubmodules = true; - sha256 = "19948jzqpclf8zfzp3k7s580xfjgqcyfwlcp7x7xj8h8lyypzymx"; + sha256 = "sha256-vfp/vacIItlPP5dR7jzDT7oOUNFnjvvdR46yi79EJKU="; }; postPatch = '' @@ -35,7 +35,7 @@ mkDerivation rec { buildInputs = [ SDL2 - ffmpeg_3 + ffmpeg glew libzip qtbase @@ -45,23 +45,25 @@ mkDerivation rec { ]; cmakeFlags = [ + "-DHEADLESS=OFF" "-DOpenGL_GL_PREFERENCE=GLVND" "-DUSE_SYSTEM_FFMPEG=ON" "-DUSE_SYSTEM_LIBZIP=ON" "-DUSE_SYSTEM_SNAPPY=ON" "-DUSING_QT_UI=ON" - "-DHEADLESS=OFF" ]; installPhase = '' + runHook preInstall mkdir -p $out/share/ppsspp install -Dm555 PPSSPPQt $out/bin/ppsspp mv assets $out/share/ppsspp + runHook postInstall ''; meta = with lib; { - description = "A HLE Playstation Portable emulator, written in C++"; homepage = "https://www.ppsspp.org/"; + description = "A HLE Playstation Portable emulator, written in C++"; license = licenses.gpl2Plus; maintainers = with maintainers; [ AndersonTorres ]; platforms = platforms.linux; diff --git a/pkgs/os-specific/linux/android-udev-rules/default.nix b/pkgs/os-specific/linux/android-udev-rules/default.nix index e542c0dbc63..d41c3e2dc33 100644 --- a/pkgs/os-specific/linux/android-udev-rules/default.nix +++ b/pkgs/os-specific/linux/android-udev-rules/default.nix @@ -6,13 +6,13 @@ stdenv.mkDerivation rec { pname = "android-udev-rules"; - version = "20210302"; + version = "20210425"; src = fetchFromGitHub { owner = "M0Rf30"; repo = "android-udev-rules"; rev = version; - sha256 = "sha256-yIVHcaQAr2gKH/NZeN+vRmGS8OgyNeRsZkCYyqjsSsI="; + sha256 = "sha256-crNK6mZCCqD/Lm3rNtfH/4F48RuQCqHWP+qsTNVLOGY="; }; installPhase = '' diff --git a/pkgs/os-specific/linux/bpftool/default.nix b/pkgs/os-specific/linux/bpftool/default.nix deleted file mode 100644 index d8c64738d82..00000000000 --- a/pkgs/os-specific/linux/bpftool/default.nix +++ /dev/null @@ -1,30 +0,0 @@ -{ lib, stdenv -, libopcodes, libbfd, libelf -, linuxPackages_latest, zlib -, python3 -}: - -stdenv.mkDerivation { - pname = "bpftool"; - inherit (linuxPackages_latest.kernel) version src; - - nativeBuildInputs = [ python3 ]; - buildInputs = [ libopcodes libbfd libelf zlib ]; - - preConfigure = '' - patchShebangs scripts/bpf_helpers_doc.py - - cd tools/bpf/bpftool - substituteInPlace ./Makefile \ - --replace '/usr/local' "$out" \ - --replace '/usr' "$out" \ - --replace '/sbin' '/bin' - ''; - - meta = with lib; { - description = "Debugging/program analysis tool for the eBPF subsystem"; - license = [ licenses.gpl2 licenses.bsd2 ]; - platforms = platforms.linux; - maintainers = with maintainers; [ thoughtpolice ]; - }; -} diff --git a/pkgs/os-specific/linux/bpftools/default.nix b/pkgs/os-specific/linux/bpftools/default.nix new file mode 100644 index 00000000000..3e20efa9f01 --- /dev/null +++ b/pkgs/os-specific/linux/bpftools/default.nix @@ -0,0 +1,38 @@ +{ lib, stdenv +, libopcodes, libbfd, libelf, readline +, linuxPackages_latest, zlib +, python3, bison, flex +}: + +stdenv.mkDerivation { + pname = "bpftools"; + inherit (linuxPackages_latest.kernel) version src; + + nativeBuildInputs = [ python3 bison flex ]; + buildInputs = [ libopcodes libbfd libelf zlib readline ]; + + preConfigure = '' + patchShebangs scripts/bpf_helpers_doc.py + + cd tools/bpf + substituteInPlace ./bpftool/Makefile \ + --replace '/usr/local' "$out" \ + --replace '/usr' "$out" \ + --replace '/sbin' '/bin' + ''; + + buildFlags = [ "bpftool" "bpf_asm" "bpf_dbg" ]; + + installPhase = '' + make -C bpftool install + install -Dm755 -t $out/bin bpf_asm + install -Dm755 -t $out/bin bpf_dbg + ''; + + meta = with lib; { + description = "Debugging/program analysis tools for the eBPF subsystem"; + license = [ licenses.gpl2 licenses.bsd2 ]; + platforms = platforms.linux; + maintainers = with maintainers; [ thoughtpolice ]; + }; +} diff --git a/pkgs/os-specific/linux/busybox/default.nix b/pkgs/os-specific/linux/busybox/default.nix index 6c034e1c2af..63435e09168 100644 --- a/pkgs/os-specific/linux/busybox/default.nix +++ b/pkgs/os-specific/linux/busybox/default.nix @@ -1,4 +1,4 @@ -{ stdenv, lib, buildPackages, fetchurl, fetchFromGitLab +{ stdenv, lib, buildPackages, fetchurl, fetchFromGitLab, fetchpatch , enableStatic ? stdenv.hostPlatform.isStatic , enableMinimal ? false # Allow forcing musl without switching stdenv itself, e.g. for our bootstrapping: @@ -49,6 +49,9 @@ in stdenv.mkDerivation rec { pname = "busybox"; + # TODO: When bumping to next version, remove the patch + # for CVE-2021-28831 (assuming the patch was included in + # the next upstream release) version = "1.32.1"; # Note to whoever is updating busybox: please verify that: @@ -64,6 +67,11 @@ stdenv.mkDerivation rec { patches = [ ./busybox-in-store.patch + (fetchpatch { + name = "CVE-2021-28831.patch"; + url = "https://git.busybox.net/busybox/patch/?id=f25d254dfd4243698c31a4f3153d4ac72aa9e9bd"; + sha256 = "0y79flfbk45krwn963nnbqc21a88bsz4k4asqwvcnfk2lkciadxm"; + }) # TODO: Removing when bumping the version ] ++ lib.optional (stdenv.hostPlatform != stdenv.buildPlatform) ./clang-cross.patch; postPatch = "patchShebangs ."; diff --git a/pkgs/os-specific/linux/cifs-utils/default.nix b/pkgs/os-specific/linux/cifs-utils/default.nix index 38f958fe9dd..8c587a40196 100644 --- a/pkgs/os-specific/linux/cifs-utils/default.nix +++ b/pkgs/os-specific/linux/cifs-utils/default.nix @@ -3,11 +3,11 @@ stdenv.mkDerivation rec { pname = "cifs-utils"; - version = "6.12"; + version = "6.13"; src = fetchurl { url = "mirror://samba/pub/linux-cifs/cifs-utils/${pname}-${version}.tar.bz2"; - sha256 = "1vw570pvir73kl4y6fhd6ns936ankimkhb1ii43yh8lr0p1xqbcj"; + sha256 = "sha256-Q9h4bIYTysz6hJEwgcHWK8JAlXWFTPiVsFtIrwhj0FY="; }; nativeBuildInputs = [ autoreconfHook docutils pkg-config ]; diff --git a/pkgs/os-specific/linux/conky/default.nix b/pkgs/os-specific/linux/conky/default.nix index 0e7eaa19b4d..9bd8890e713 100644 --- a/pkgs/os-specific/linux/conky/default.nix +++ b/pkgs/os-specific/linux/conky/default.nix @@ -68,13 +68,13 @@ with lib; stdenv.mkDerivation rec { pname = "conky"; - version = "1.12.1"; + version = "1.12.2"; src = fetchFromGitHub { owner = "brndnmtthws"; repo = "conky"; rev = "v${version}"; - sha256 = "sha256-qQx9+Z1OAQlbHupflzHD5JV4NqedoF8A57F1+rPT3/o="; + sha256 = "sha256-x6bR5E5LIvKWiVM15IEoUgGas/hcRp3F/O4MTOhVPb8="; }; postPatch = '' diff --git a/pkgs/os-specific/linux/kernel/manual-config.nix b/pkgs/os-specific/linux/kernel/manual-config.nix index e45b21ff35f..f874762267a 100644 --- a/pkgs/os-specific/linux/kernel/manual-config.nix +++ b/pkgs/os-specific/linux/kernel/manual-config.nix @@ -285,7 +285,7 @@ let " (with patches: " + lib.concatStringsSep ", " (map (x: x.name) kernelPatches) + ")"); - license = lib.licenses.gpl2; + license = lib.licenses.gpl2Only; homepage = "https://www.kernel.org/"; repositories.git = "https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git"; maintainers = [ diff --git a/pkgs/os-specific/linux/lxc/default.nix b/pkgs/os-specific/linux/lxc/default.nix index e6bdd70b915..1f5cf028a28 100644 --- a/pkgs/os-specific/linux/lxc/default.nix +++ b/pkgs/os-specific/linux/lxc/default.nix @@ -9,11 +9,11 @@ with lib; stdenv.mkDerivation rec { pname = "lxc"; - version = "4.0.6"; + version = "4.0.8"; src = fetchurl { url = "https://linuxcontainers.org/downloads/lxc/lxc-${version}.tar.gz"; - sha256 = "0qz4l7mlhq7hx53q606qgvkyzyr01glsw290v8ppzvxn1fydlrci"; + sha256 = "16qbmysiyrvb1inbbdr8qwqa0c6h9mwyrbx4ry18x0kvrhmqamdc"; }; nativeBuildInputs = [ diff --git a/pkgs/os-specific/linux/lxcfs/default.nix b/pkgs/os-specific/linux/lxcfs/default.nix index bcc86b72de0..440e81266c8 100644 --- a/pkgs/os-specific/linux/lxcfs/default.nix +++ b/pkgs/os-specific/linux/lxcfs/default.nix @@ -5,13 +5,13 @@ with lib; stdenv.mkDerivation rec { pname = "lxcfs"; - version = "4.0.7"; + version = "4.0.8"; src = fetchFromGitHub { owner = "lxc"; repo = "lxcfs"; rev = "lxcfs-${version}"; - sha256 = "sha256-gC1Q+kG/oKfYvuHVKstpRWfL/thsemULrimPrV/eeaI="; + sha256 = "sha256-8Tack2gM3AU3coGXs5hEbAaBCo5ss1sGUFFEjZDn5Lg="; }; nativeBuildInputs = [ pkg-config help2man autoreconfHook makeWrapper ]; diff --git a/pkgs/servers/dante/default.nix b/pkgs/servers/dante/default.nix index 99bde454659..1ed03f0e3d5 100644 --- a/pkgs/servers/dante/default.nix +++ b/pkgs/servers/dante/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "dante"; - version = "1.4.2"; + version = "1.4.3"; src = fetchurl { url = "https://www.inet.no/dante/files/${pname}-${version}.tar.gz"; - sha256 = "1bfafnm445afrmyxvvcl8ckq0p59yzykmr3y8qvryzrscd85g8ms"; + sha256 = "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"; }; buildInputs = [ pam libkrb5 cyrus_sasl miniupnpc ]; diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix index cf8c0641bc7..b6e8dedf2ec 100644 --- a/pkgs/servers/home-assistant/component-packages.nix +++ b/pkgs/servers/home-assistant/component-packages.nix @@ -598,7 +598,7 @@ "openhome" = ps: with ps; [ openhomedevice ]; "opensensemap" = ps: with ps; [ opensensemap-api ]; "opensky" = ps: with ps; [ ]; - "opentherm_gw" = ps: with ps; [ ]; # missing inputs: pyotgw + "opentherm_gw" = ps: with ps; [ pyotgw ]; "openuv" = ps: with ps; [ pyopenuv ]; "openweathermap" = ps: with ps; [ pyowm ]; "opnsense" = ps: with ps; [ pyopnsense ]; diff --git a/pkgs/servers/home-assistant/default.nix b/pkgs/servers/home-assistant/default.nix index cb455738080..960535b5ec6 100644 --- a/pkgs/servers/home-assistant/default.nix +++ b/pkgs/servers/home-assistant/default.nix @@ -336,6 +336,7 @@ in with py.pkgs; buildPythonApplication rec { "omnilogic" "ondilo_ico" "openerz" + "opentherm_gw" "ozw" "panel_custom" "panel_iframe" diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix new file mode 100644 index 00000000000..05eb9a17c8e --- /dev/null +++ b/pkgs/servers/http/trafficserver/default.nix @@ -0,0 +1,207 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, makeWrapper +, nixosTests +, pkg-config +, file +, linuxHeaders +, openssl +, pcre +, perlPackages +, python3 +, xz +, zlib +# recommended dependencies +, withHwloc ? true +, hwloc +, withCurl ? true +, curl +, withCurses ? true +, ncurses +, withCap ? stdenv.isLinux +, libcap +, withUnwind ? stdenv.isLinux +, libunwind +# optional dependencies +, withBrotli ? false +, brotli +, withCjose ? false +, cjose +, withGeoIP ? false +, geoip +, withHiredis ? false +, hiredis +, withImageMagick ? false +, imagemagick +, withJansson ? false +, jansson +, withKyotoCabinet ? false +, kyotocabinet +, withLuaJIT ? false +, luajit +, withMaxmindDB ? false +, libmaxminddb +# optional features +, enableWCCP ? false +}: + +stdenv.mkDerivation rec { + pname = "trafficserver"; + version = "9.0.1"; + + src = fetchurl { + url = "mirror://apache/trafficserver/trafficserver-${version}.tar.bz2"; + sha256 = "1q164pvfmbqh3gzy3bqy96lwd0fdbhz78r06pd92p7rmkqwx005z"; + }; + + patches = [ + # Adds support for NixOS + # https://github.com/apache/trafficserver/pull/7697 + (fetchpatch { + url = "https://github.com/apache/trafficserver/commit/19d3af481cf74c91fbf713fc9d2f8b138ed5fbaf.diff"; + sha256 = "0z1ikgpp00rzrrcqh97931586yn9wbksgai9xlkcjd5cg8gq0150"; + }) + + # Fixes a bug in tspush which pushes incorrect contents to cache + # https://github.com/apache/trafficserver/pull/7696 + (fetchpatch { + url = "https://github.com/apache/trafficserver/commit/b08215272872f452787915cd3a8e0b0ea0b88385.diff"; + sha256 = "0axk8x1xvd8wvpgcxgyqqg7kgxyxwfgwmisq3xnk1da0cqv9cx9f"; + }) + ]; + + # NOTE: The upstream README indicates that flex is needed for some features, + # but it actually seems to be unnecessary as of this commit[1]. The detection + # logic for bison and flex is still present in the build script[2], but no + # other code seems to depend on it. This situation is susceptible to change + # though, so it's a good idea to inspect the build scripts periodically. + # + # [1]: https://github.com/apache/trafficserver/pull/5617 + # [2]: https://github.com/apache/trafficserver/blob/3fd2c60/configure.ac#L742-L788 + nativeBuildInputs = [ makeWrapper pkg-config file python3 ] + ++ (with perlPackages; [ perl ExtUtilsMakeMaker ]) + ++ lib.optionals stdenv.isLinux [ linuxHeaders ]; + + buildInputs = [ + openssl + pcre + perlPackages.perl + ] ++ lib.optional withBrotli brotli + ++ lib.optional withCap libcap + ++ lib.optional withCjose cjose + ++ lib.optional withCurl curl + ++ lib.optional withGeoIP geoip + ++ lib.optional withHiredis hiredis + ++ lib.optional withHwloc hwloc + ++ lib.optional withImageMagick imagemagick + ++ lib.optional withJansson jansson + ++ lib.optional withKyotoCabinet kyotocabinet + ++ lib.optional withCurses ncurses + ++ lib.optional withLuaJIT luajit + ++ lib.optional withUnwind libunwind + ++ lib.optional withMaxmindDB libmaxminddb; + + outputs = [ "out" "man" ]; + + postPatch = '' + patchShebangs \ + iocore/aio/test_AIO.sample \ + src/traffic_via/test_traffic_via \ + src/traffic_logstats/tests \ + tools/check-unused-dependencies + + substituteInPlace configure --replace '/usr/bin/file' '${file}/bin/file' + '' + lib.optionalString stdenv.isLinux '' + substituteInPlace configure \ + --replace '/usr/include/linux' '${linuxHeaders}/include/linux' + '' + lib.optionalString stdenv.isDarwin '' + # 'xcrun leaks' probably requires non-free XCode + substituteInPlace iocore/net/test_certlookup.cc \ + --replace 'xcrun leaks' 'true' + ''; + + configureFlags = [ + "--enable-layout=NixOS" + "--enable-experimental-plugins" + (lib.enableFeature enableWCCP "wccp") + + # the configure script can't auto-locate the following from buildInputs + "--with-lzma=${xz.dev}" + "--with-zlib=${zlib.dev}" + (lib.withFeatureAs withHiredis "hiredis" hiredis) + ]; + + installFlags = [ + "pkgsysconfdir=${placeholder "out"}/etc/trafficserver" + + # replace runtime directories with an install-time placeholder directory + "pkgcachedir=${placeholder "out"}/.install-trafficserver" + "pkglocalstatedir=${placeholder "out"}/.install-trafficserver" + "pkglogdir=${placeholder "out"}/.install-trafficserver" + "pkgruntimedir=${placeholder "out"}/.install-trafficserver" + ]; + + postInstall = '' + substituteInPlace rc/trafficserver.service --replace "syslog.target" "" + install -Dm644 rc/trafficserver.service $out/lib/systemd/system/trafficserver.service + + wrapProgram $out/bin/tspush \ + --set PERL5LIB '${with perlPackages; makePerlPath [ URI ]}' \ + --prefix PATH : "${lib.makeBinPath [ file ]}" + + find "$out" -name '*.la' -delete + + # ensure no files actually exist in this directory + rmdir $out/.install-trafficserver + ''; + + installCheckPhase = let + expected = '' + Via header is [uScMsEf p eC:t cCMp sF], Length is 22 + Via Header Details: + Request headers received from client :simple request (not conditional) + Result of Traffic Server cache lookup for URL :miss (a cache "MISS") + Response information received from origin server :error in response + Result of document write-to-cache: :no cache write performed + Proxy operation result :unknown + Error codes (if any) :connection to server failed + Tunnel info :no tunneling + Cache Type :cache + Cache Lookup Result :cache miss (url not in cache) + Parent proxy connection status :no parent proxy or unknown + Origin server connection status :connection open failed + ''; + in '' + runHook preInstallCheck + diff -Naur <($out/bin/traffic_via '[uScMsEf p eC:t cCMp sF]') - < $out/bin/mautrix-signal echo "#!/bin/sh - exec python -m mautrix_signal \"$@\" + exec python -m mautrix_signal \"\$@\" " > $out/bin/mautrix-signal chmod +x $out/bin/mautrix-signal wrapProgram $out/bin/mautrix-signal \ diff --git a/pkgs/servers/misc/airsonic/default.nix b/pkgs/servers/misc/airsonic/default.nix index bd8310bc74f..8fba050ffad 100644 --- a/pkgs/servers/misc/airsonic/default.nix +++ b/pkgs/servers/misc/airsonic/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl }: +{ lib, stdenv, fetchurl, nixosTests }: stdenv.mkDerivation rec { pname = "airsonic"; @@ -14,6 +14,10 @@ stdenv.mkDerivation rec { cp "$src" "$out/webapps/airsonic.war" ''; + passthru.tests = { + airsonic-starts = nixosTests.airsonic; + }; + meta = with lib; { description = "Personal media streamer"; homepage = "https://airsonic.github.io"; diff --git a/pkgs/servers/mx-puppet-discord/default.nix b/pkgs/servers/mx-puppet-discord/default.nix new file mode 100644 index 00000000000..b3b72c2c5f2 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/default.nix @@ -0,0 +1,45 @@ +{ stdenv, fetchFromGitHub, pkgs, lib, nodejs, nodePackages, pkg-config, libjpeg +, pixman, cairo, pango }: + +let + # No official version ever released + src = fetchFromGitHub { + owner = "matrix-discord"; + repo = "mx-puppet-discord"; + rev = "c17384a6a12a42a528e0b1259f8073e8db89b8f4"; + sha256 = "1yczhfpa4qzvijcpgc2pr10s009qb6jwlfwpcbb17g2wsx6zj0c2"; + }; + + myNodePackages = import ./node-composition.nix { + inherit pkgs nodejs; + inherit (stdenv.hostPlatform) system; + }; + +in myNodePackages.package.override { + inherit src; + nativeBuildInputs = [ nodePackages.node-pre-gyp pkg-config ]; + buildInputs = [ libjpeg pixman cairo pango ]; + + postInstall = '' + # Patch shebangs in node_modules, otherwise the webpack build fails with interpreter problems + patchShebangs --build "$out/lib/node_modules/mx-puppet-discord/node_modules/" + # compile Typescript sources + npm run build + + # Make an executable to run the server + mkdir -p $out/bin + cat < $out/bin/mx-puppet-discord + #!/bin/sh + exec ${nodejs}/bin/node $out/lib/node_modules/mx-puppet-discord/build/index.js "\$@" + EOF + chmod +x $out/bin/mx-puppet-discord + ''; + + meta = with lib; { + description = "A discord puppeting bridge for matrix"; + license = licenses.asl20; + homepage = "https://github.com/matrix-discord/mx-puppet-discord"; + maintainers = with maintainers; [ expipiplus1 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/mx-puppet-discord/generate.sh b/pkgs/servers/mx-puppet-discord/generate.sh new file mode 100755 index 00000000000..851671a147a --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/generate.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nodePackages.node2nix + +# No official release +rev=c17384a6a12a42a528e0b1259f8073e8db89b8f4 +u=https://raw.githubusercontent.com/matrix-discord/mx-puppet-discord/$rev +# Download package.json and package-lock.json +curl -O $u/package.json +curl -O $u/package-lock.json + +node2nix \ + --nodejs-12 \ + --node-env ../../development/node-packages/node-env.nix \ + --input package.json \ + --lock package-lock.json \ + --output node-packages.nix \ + --composition node-composition.nix + +sed -i 's||../../..|' node-composition.nix + +rm -f package.json package-lock.json diff --git a/pkgs/servers/mx-puppet-discord/node-composition.nix b/pkgs/servers/mx-puppet-discord/node-composition.nix new file mode 100644 index 00000000000..777c9db5256 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/node-composition.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{pkgs ? import ../../.. { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + +let + nodeEnv = import ../../development/node-packages/node-env.nix { + inherit (pkgs) stdenv lib python2 runCommand writeTextFile; + inherit pkgs nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/pkgs/servers/mx-puppet-discord/node-packages.nix b/pkgs/servers/mx-puppet-discord/node-packages.nix new file mode 100644 index 00000000000..b3dc83bb343 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/node-packages.nix @@ -0,0 +1,3616 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: + +let + sources = { + "@babel/code-frame-7.0.0" = { + name = "_at_babel_slash_code-frame"; + packageName = "@babel/code-frame"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz"; + sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA=="; + }; + }; + "@babel/highlight-7.0.0" = { + name = "_at_babel_slash_highlight"; + packageName = "@babel/highlight"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz"; + sha512 = "UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw=="; + }; + }; + "@dabh/diagnostics-2.0.2" = { + name = "_at_dabh_slash_diagnostics"; + packageName = "@dabh/diagnostics"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz"; + sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q=="; + }; + }; + "@discordjs/collection-0.1.6" = { + name = "_at_discordjs_slash_collection"; + packageName = "@discordjs/collection"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz"; + sha512 = "utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="; + }; + }; + "@discordjs/form-data-3.0.1" = { + name = "_at_discordjs_slash_form-data"; + packageName = "@discordjs/form-data"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz"; + sha512 = "ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg=="; + }; + }; + "@sindresorhus/is-3.1.2" = { + name = "_at_sindresorhus_slash_is"; + packageName = "@sindresorhus/is"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz"; + sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ=="; + }; + }; + "@sorunome/matrix-bot-sdk-0.5.8" = { + name = "_at_sorunome_slash_matrix-bot-sdk"; + packageName = "@sorunome/matrix-bot-sdk"; + version = "0.5.8"; + src = fetchurl { + url = "https://registry.npmjs.org/@sorunome/matrix-bot-sdk/-/matrix-bot-sdk-0.5.8.tgz"; + sha512 = "Uifu8saeD1fPrj6F8ZdYiCeADCluySbdi/nVKJy0NQOi6cA5p68ZaeydlCyl+YuFJoCjsDWBe+Szq9CgFd/SpA=="; + }; + }; + "@szmarczak/http-timer-4.0.5" = { + name = "_at_szmarczak_slash_http-timer"; + packageName = "@szmarczak/http-timer"; + version = "4.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz"; + sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ=="; + }; + }; + "@types/body-parser-1.19.0" = { + name = "_at_types_slash_body-parser"; + packageName = "@types/body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ=="; + }; + }; + "@types/cacheable-request-6.0.1" = { + name = "_at_types_slash_cacheable-request"; + packageName = "@types/cacheable-request"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz"; + sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ=="; + }; + }; + "@types/connect-3.4.34" = { + name = "_at_types_slash_connect"; + packageName = "@types/connect"; + version = "3.4.34"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz"; + sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ=="; + }; + }; + "@types/express-4.17.11" = { + name = "_at_types_slash_express"; + packageName = "@types/express"; + version = "4.17.11"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz"; + sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg=="; + }; + }; + "@types/express-serve-static-core-4.17.18" = { + name = "_at_types_slash_express-serve-static-core"; + packageName = "@types/express-serve-static-core"; + version = "4.17.18"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz"; + sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA=="; + }; + }; + "@types/http-cache-semantics-4.0.0" = { + name = "_at_types_slash_http-cache-semantics"; + packageName = "@types/http-cache-semantics"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz"; + sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A=="; + }; + }; + "@types/keyv-3.1.1" = { + name = "_at_types_slash_keyv"; + packageName = "@types/keyv"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz"; + sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw=="; + }; + }; + "@types/mime-1.3.2" = { + name = "_at_types_slash_mime"; + packageName = "@types/mime"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz"; + sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="; + }; + }; + "@types/node-14.6.3" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "14.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-14.6.3.tgz"; + sha512 = "pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww=="; + }; + }; + "@types/prop-types-15.7.3" = { + name = "_at_types_slash_prop-types"; + packageName = "@types/prop-types"; + version = "15.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz"; + sha512 = "KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="; + }; + }; + "@types/qs-6.9.5" = { + name = "_at_types_slash_qs"; + packageName = "@types/qs"; + version = "6.9.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz"; + sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="; + }; + }; + "@types/range-parser-1.2.3" = { + name = "_at_types_slash_range-parser"; + packageName = "@types/range-parser"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz"; + sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; + }; + }; + "@types/react-17.0.0" = { + name = "_at_types_slash_react"; + packageName = "@types/react"; + version = "17.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz"; + sha512 = "aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw=="; + }; + }; + "@types/responselike-1.0.0" = { + name = "_at_types_slash_responselike"; + packageName = "@types/responselike"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz"; + sha512 = "85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA=="; + }; + }; + "@types/serve-static-1.13.9" = { + name = "_at_types_slash_serve-static"; + packageName = "@types/serve-static"; + version = "1.13.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz"; + sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA=="; + }; + }; + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "abort-controller-3.0.0" = { + name = "abort-controller"; + packageName = "abort-controller"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"; + sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="; + }; + }; + "accepts-1.3.7" = { + name = "accepts"; + packageName = "accepts"; + version = "1.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"; + sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA=="; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "ansi-styles-3.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; + }; + }; + "ansi-styles-4.3.0" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"; + sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; + }; + }; + "are-we-there-yet-1.1.5" = { + name = "are-we-there-yet"; + packageName = "are-we-there-yet"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; + sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w=="; + }; + }; + "argparse-1.0.10" = { + name = "argparse"; + packageName = "argparse"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; + sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; + }; + }; + "array-back-2.0.0" = { + name = "array-back"; + packageName = "array-back"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz"; + sha512 = "eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw=="; + }; + }; + "array-back-3.1.0" = { + name = "array-back"; + packageName = "array-back"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz"; + sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="; + }; + }; + "array-flatten-1.1.1" = { + name = "array-flatten"; + packageName = "array-flatten"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"; + sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; + }; + }; + "assert-options-0.7.0" = { + name = "assert-options"; + packageName = "assert-options"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz"; + sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ=="; + }; + }; + "async-3.2.0" = { + name = "async"; + packageName = "async"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz"; + sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "base64-js-1.5.1" = { + name = "base64-js"; + packageName = "base64-js"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"; + sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="; + }; + }; + "basic-auth-2.0.1" = { + name = "basic-auth"; + packageName = "basic-auth"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"; + sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="; + }; + }; + "better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72" = { + name = "better-discord.js"; + packageName = "better-discord.js"; + version = "12.5.1"; + src = fetchgit { + url = "https://github.com/Sorunome/better-discord.js.git"; + rev = "5e58e1e7510cf2192f3503ca146dd61a56a75c72"; + sha256 = "ab87453cc9db05b3bc691f27e92c5a4a6a14a528c98c7d313d6dd42f1741124a"; + }; + }; + "better-sqlite3-6.0.1" = { + name = "better-sqlite3"; + packageName = "better-sqlite3"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-6.0.1.tgz"; + sha512 = "4aV1zEknM9g1a6B0mVBx1oIlmYioEJ8gSS3J6EpN1b1bKYEE+N5lmpmXHKNKTi0qjHziSd7XrXwHl1kpqvEcHQ=="; + }; + }; + "bindings-1.5.0" = { + name = "bindings"; + packageName = "bindings"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"; + sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="; + }; + }; + "bintrees-1.0.1" = { + name = "bintrees"; + packageName = "bintrees"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz"; + sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524"; + }; + }; + "bl-4.0.3" = { + name = "bl"; + packageName = "bl"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz"; + sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg=="; + }; + }; + "blurhash-1.1.3" = { + name = "blurhash"; + packageName = "blurhash"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz"; + sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw=="; + }; + }; + "body-parser-1.19.0" = { + name = "body-parser"; + packageName = "body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "buffer-5.7.1" = { + name = "buffer"; + packageName = "buffer"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"; + sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="; + }; + }; + "buffer-writer-2.0.0" = { + name = "buffer-writer"; + packageName = "buffer-writer"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz"; + sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="; + }; + }; + "builtin-modules-1.1.1" = { + name = "builtin-modules"; + packageName = "builtin-modules"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"; + sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f"; + }; + }; + "bytes-3.1.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"; + sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="; + }; + }; + "cacheable-lookup-5.0.3" = { + name = "cacheable-lookup"; + packageName = "cacheable-lookup"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz"; + sha512 = "W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w=="; + }; + }; + "cacheable-request-7.0.1" = { + name = "cacheable-request"; + packageName = "cacheable-request"; + version = "7.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz"; + sha512 = "lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw=="; + }; + }; + "canvas-2.6.1" = { + name = "canvas"; + packageName = "canvas"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz"; + sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA=="; + }; + }; + "chalk-2.4.2" = { + name = "chalk"; + packageName = "chalk"; + version = "2.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; + sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; + }; + }; + "chalk-4.1.0" = { + name = "chalk"; + packageName = "chalk"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz"; + sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A=="; + }; + }; + "chownr-1.1.4" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"; + sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="; + }; + }; + "clone-response-1.0.2" = { + name = "clone-response"; + packageName = "clone-response"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz"; + sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b"; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "color-3.0.0" = { + name = "color"; + packageName = "color"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz"; + sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w=="; + }; + }; + "color-convert-1.9.3" = { + name = "color-convert"; + packageName = "color-convert"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; + sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; + }; + }; + "color-convert-2.0.1" = { + name = "color-convert"; + packageName = "color-convert"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"; + sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; + }; + }; + "color-name-1.1.3" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + }; + "color-name-1.1.4" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"; + sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; + }; + }; + "color-string-1.5.4" = { + name = "color-string"; + packageName = "color-string"; + version = "1.5.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz"; + sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw=="; + }; + }; + "colors-1.4.0" = { + name = "colors"; + packageName = "colors"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"; + sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="; + }; + }; + "colorspace-1.1.2" = { + name = "colorspace"; + packageName = "colorspace"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz"; + sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ=="; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; + }; + }; + "command-line-args-5.1.1" = { + name = "command-line-args"; + packageName = "command-line-args"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz"; + sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg=="; + }; + }; + "command-line-usage-5.0.5" = { + name = "command-line-usage"; + packageName = "command-line-usage"; + version = "5.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz"; + sha512 = "d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA=="; + }; + }; + "commander-2.20.0" = { + name = "commander"; + packageName = "commander"; + version = "2.20.0"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz"; + sha512 = "7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "console-control-strings-1.1.0" = { + name = "console-control-strings"; + packageName = "console-control-strings"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; + sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; + }; + }; + "content-disposition-0.5.3" = { + name = "content-disposition"; + packageName = "content-disposition"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"; + sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g=="; + }; + }; + "content-type-1.0.4" = { + name = "content-type"; + packageName = "content-type"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"; + sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; + }; + }; + "cookie-0.4.0" = { + name = "cookie"; + packageName = "cookie"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"; + sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="; + }; + }; + "cookie-signature-1.0.6" = { + name = "cookie-signature"; + packageName = "cookie-signature"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"; + sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "csstype-3.0.5" = { + name = "csstype"; + packageName = "csstype"; + version = "3.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz"; + sha512 = "uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ=="; + }; + }; + "cycle-1.0.3" = { + name = "cycle"; + packageName = "cycle"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz"; + sha1 = "21e80b2be8580f98b468f379430662b046c34ad2"; + }; + }; + "debug-2.6.9" = { + name = "debug"; + packageName = "debug"; + version = "2.6.9"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; + sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; + }; + }; + "debug-3.2.7" = { + name = "debug"; + packageName = "debug"; + version = "3.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"; + sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="; + }; + }; + "decompress-response-4.2.1" = { + name = "decompress-response"; + packageName = "decompress-response"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz"; + sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw=="; + }; + }; + "decompress-response-6.0.0" = { + name = "decompress-response"; + packageName = "decompress-response"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz"; + sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="; + }; + }; + "deep-extend-0.6.0" = { + name = "deep-extend"; + packageName = "deep-extend"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"; + sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="; + }; + }; + "defer-to-connect-2.0.0" = { + name = "defer-to-connect"; + packageName = "defer-to-connect"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz"; + sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg=="; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "depd-1.1.2" = { + name = "depd"; + packageName = "depd"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"; + sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; + }; + }; + "depd-2.0.0" = { + name = "depd"; + packageName = "depd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"; + sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="; + }; + }; + "destroy-1.0.4" = { + name = "destroy"; + packageName = "destroy"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"; + sha1 = "978857442c44749e4206613e37946205826abd80"; + }; + }; + "detect-libc-1.0.3" = { + name = "detect-libc"; + packageName = "detect-libc"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + }; + "diff-3.5.0" = { + name = "diff"; + packageName = "diff"; + version = "3.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz"; + sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="; + }; + }; + "discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085" = { + name = "discord-markdown"; + packageName = "discord-markdown"; + version = "2.3.1"; + src = fetchgit { + url = "git://github.com/Sorunome/discord-markdown.git"; + rev = "0f38420fdd41340d6eadd38cd5b71784ca954085"; + sha256 = "61a5ffd248b6d2784665fa710bfe4c39f241c75be07dbe53f5f48575a4df229c"; + }; + }; + "dom-serializer-1.2.0" = { + name = "dom-serializer"; + packageName = "dom-serializer"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz"; + sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA=="; + }; + }; + "domelementtype-2.1.0" = { + name = "domelementtype"; + packageName = "domelementtype"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz"; + sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="; + }; + }; + "domhandler-3.3.0" = { + name = "domhandler"; + packageName = "domhandler"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz"; + sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA=="; + }; + }; + "domhandler-4.0.0" = { + name = "domhandler"; + packageName = "domhandler"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz"; + sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA=="; + }; + }; + "domutils-2.4.4" = { + name = "domutils"; + packageName = "domutils"; + version = "2.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz"; + sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA=="; + }; + }; + "ee-first-1.1.1" = { + name = "ee-first"; + packageName = "ee-first"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; + sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; + }; + }; + "enabled-2.0.0" = { + name = "enabled"; + packageName = "enabled"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz"; + sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="; + }; + }; + "encodeurl-1.0.2" = { + name = "encodeurl"; + packageName = "encodeurl"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; + }; + }; + "end-of-stream-1.4.4" = { + name = "end-of-stream"; + packageName = "end-of-stream"; + version = "1.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; + }; + }; + "entities-1.1.2" = { + name = "entities"; + packageName = "entities"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz"; + sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="; + }; + }; + "entities-2.1.0" = { + name = "entities"; + packageName = "entities"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz"; + sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="; + }; + }; + "escape-html-1.0.3" = { + name = "escape-html"; + packageName = "escape-html"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; + sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; + }; + }; + "escape-string-regexp-1.0.5" = { + name = "escape-string-regexp"; + packageName = "escape-string-regexp"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + }; + "esprima-4.0.1" = { + name = "esprima"; + packageName = "esprima"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; + sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; + }; + }; + "esutils-2.0.2" = { + name = "esutils"; + packageName = "esutils"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"; + sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"; + }; + }; + "etag-1.8.1" = { + name = "etag"; + packageName = "etag"; + version = "1.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"; + sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; + }; + }; + "event-target-shim-5.0.1" = { + name = "event-target-shim"; + packageName = "event-target-shim"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"; + sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="; + }; + }; + "events-3.0.0" = { + name = "events"; + packageName = "events"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.0.0.tgz"; + sha512 = "Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="; + }; + }; + "events-3.2.0" = { + name = "events"; + packageName = "events"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz"; + sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="; + }; + }; + "expand-template-2.0.3" = { + name = "expand-template"; + packageName = "expand-template"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz"; + sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="; + }; + }; + "expire-set-1.0.0" = { + name = "expire-set"; + packageName = "expire-set"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/expire-set/-/expire-set-1.0.0.tgz"; + sha512 = "wOQlqatf2sJtOabNk3gEPbGvo/C8tIUhzT3rz08+i7X+u1NV+UNY4p3Lzq8DxrW57mBML1Fp5qNeYt70Qnndpg=="; + }; + }; + "express-4.17.1" = { + name = "express"; + packageName = "express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz"; + sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; + }; + }; + "extend-shallow-2.0.1" = { + name = "extend-shallow"; + packageName = "extend-shallow"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"; + sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; + }; + }; + "fast-safe-stringify-2.0.7" = { + name = "fast-safe-stringify"; + packageName = "fast-safe-stringify"; + version = "2.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz"; + sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="; + }; + }; + "fecha-2.3.3" = { + name = "fecha"; + packageName = "fecha"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz"; + sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="; + }; + }; + "fecha-4.2.0" = { + name = "fecha"; + packageName = "fecha"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz"; + sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="; + }; + }; + "file-stream-rotator-0.4.1" = { + name = "file-stream-rotator"; + packageName = "file-stream-rotator"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz"; + sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ=="; + }; + }; + "file-type-12.4.2" = { + name = "file-type"; + packageName = "file-type"; + version = "12.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz"; + sha512 = "UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg=="; + }; + }; + "file-uri-to-path-1.0.0" = { + name = "file-uri-to-path"; + packageName = "file-uri-to-path"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; + sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="; + }; + }; + "finalhandler-1.1.2" = { + name = "finalhandler"; + packageName = "finalhandler"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; + sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; + }; + }; + "find-replace-3.0.0" = { + name = "find-replace"; + packageName = "find-replace"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz"; + sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ=="; + }; + }; + "fn.name-1.1.0" = { + name = "fn.name"; + packageName = "fn.name"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz"; + sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="; + }; + }; + "forwarded-0.1.2" = { + name = "forwarded"; + packageName = "forwarded"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"; + sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; + }; + }; + "fresh-0.5.2" = { + name = "fresh"; + packageName = "fresh"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"; + sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; + }; + }; + "fs-constants-1.0.0" = { + name = "fs-constants"; + packageName = "fs-constants"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz"; + sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="; + }; + }; + "fs-minipass-1.2.7" = { + name = "fs-minipass"; + packageName = "fs-minipass"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz"; + sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA=="; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "gauge-2.7.4" = { + name = "gauge"; + packageName = "gauge"; + version = "2.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + }; + "get-stream-5.2.0" = { + name = "get-stream"; + packageName = "get-stream"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"; + sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="; + }; + }; + "github-from-package-0.0.0" = { + name = "github-from-package"; + packageName = "github-from-package"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz"; + sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce"; + }; + }; + "glob-7.1.4" = { + name = "glob"; + packageName = "glob"; + version = "7.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"; + sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="; + }; + }; + "glob-to-regexp-0.4.1" = { + name = "glob-to-regexp"; + packageName = "glob-to-regexp"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"; + sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="; + }; + }; + "got-11.6.0" = { + name = "got"; + packageName = "got"; + version = "11.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/got/-/got-11.6.0.tgz"; + sha512 = "ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA=="; + }; + }; + "graceful-fs-4.2.4" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz"; + sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="; + }; + }; + "has-flag-3.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + }; + "has-flag-4.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"; + sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; + }; + }; + "has-unicode-2.0.1" = { + name = "has-unicode"; + packageName = "has-unicode"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + }; + "hash.js-1.1.7" = { + name = "hash.js"; + packageName = "hash.js"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"; + sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; + }; + }; + "hasha-5.2.2" = { + name = "hasha"; + packageName = "hasha"; + version = "5.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz"; + sha512 = "Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ=="; + }; + }; + "he-1.2.0" = { + name = "he"; + packageName = "he"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz"; + sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; + }; + }; + "highlight.js-10.4.1" = { + name = "highlight.js"; + packageName = "highlight.js"; + version = "10.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz"; + sha512 = "yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg=="; + }; + }; + "htmlencode-0.0.4" = { + name = "htmlencode"; + packageName = "htmlencode"; + version = "0.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz"; + sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f"; + }; + }; + "htmlparser2-4.1.0" = { + name = "htmlparser2"; + packageName = "htmlparser2"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz"; + sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q=="; + }; + }; + "http-cache-semantics-4.1.0" = { + name = "http-cache-semantics"; + packageName = "http-cache-semantics"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz"; + sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="; + }; + }; + "http-errors-1.7.2" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"; + sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg=="; + }; + }; + "http2-wrapper-1.0.0-beta.5.2" = { + name = "http2-wrapper"; + packageName = "http2-wrapper"; + version = "1.0.0-beta.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz"; + sha512 = "xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ=="; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "ieee754-1.2.1" = { + name = "ieee754"; + packageName = "ieee754"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"; + sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="; + }; + }; + "ignore-walk-3.0.3" = { + name = "ignore-walk"; + packageName = "ignore-walk"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz"; + sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw=="; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.3" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "ini-1.3.8" = { + name = "ini"; + packageName = "ini"; + version = "1.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"; + sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="; + }; + }; + "integer-3.0.1" = { + name = "integer"; + packageName = "integer"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/integer/-/integer-3.0.1.tgz"; + sha512 = "OqtER6W2GIJTIcnT5o2B/pWGgvurnVOYs4OZCgay40QEIbMTnNq4R0KSaIw1TZyFtPWjm5aNM+pBBMTfc3exmw=="; + }; + }; + "ipaddr.js-1.9.1" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; + sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="; + }; + }; + "is-arrayish-0.3.2" = { + name = "is-arrayish"; + packageName = "is-arrayish"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"; + sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="; + }; + }; + "is-extendable-0.1.1" = { + name = "is-extendable"; + packageName = "is-extendable"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"; + sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-promise-2.2.2" = { + name = "is-promise"; + packageName = "is-promise"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"; + sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="; + }; + }; + "is-stream-2.0.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz"; + sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "js-tokens-4.0.0" = { + name = "js-tokens"; + packageName = "js-tokens"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; + sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; + }; + }; + "js-yaml-3.13.1" = { + name = "js-yaml"; + packageName = "js-yaml"; + version = "3.13.1"; + src = fetchurl { + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"; + sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw=="; + }; + }; + "json-buffer-3.0.1" = { + name = "json-buffer"; + packageName = "json-buffer"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz"; + sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="; + }; + }; + "keyv-4.0.1" = { + name = "keyv"; + packageName = "keyv"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz"; + sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw=="; + }; + }; + "kuler-2.0.0" = { + name = "kuler"; + packageName = "kuler"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz"; + sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="; + }; + }; + "linkify-it-2.2.0" = { + name = "linkify-it"; + packageName = "linkify-it"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz"; + sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw=="; + }; + }; + "lodash-4.17.20" = { + name = "lodash"; + packageName = "lodash"; + version = "4.17.20"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz"; + sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="; + }; + }; + "lodash.camelcase-4.3.0" = { + name = "lodash.camelcase"; + packageName = "lodash.camelcase"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"; + sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6"; + }; + }; + "lodash.padend-4.6.1" = { + name = "lodash.padend"; + packageName = "lodash.padend"; + version = "4.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz"; + sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e"; + }; + }; + "lodash.toarray-4.4.0" = { + name = "lodash.toarray"; + packageName = "lodash.toarray"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz"; + sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561"; + }; + }; + "logform-1.10.0" = { + name = "logform"; + packageName = "logform"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz"; + sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg=="; + }; + }; + "logform-2.2.0" = { + name = "logform"; + packageName = "logform"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz"; + sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg=="; + }; + }; + "lowdb-1.0.0" = { + name = "lowdb"; + packageName = "lowdb"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz"; + sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ=="; + }; + }; + "lowercase-keys-2.0.0" = { + name = "lowercase-keys"; + packageName = "lowercase-keys"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz"; + sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="; + }; + }; + "lru-cache-6.0.0" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"; + sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="; + }; + }; + "markdown-it-9.1.0" = { + name = "markdown-it"; + packageName = "markdown-it"; + version = "9.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz"; + sha512 = "xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w=="; + }; + }; + "matrix-discord-parser-0.1.7" = { + name = "matrix-discord-parser"; + packageName = "matrix-discord-parser"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/matrix-discord-parser/-/matrix-discord-parser-0.1.7.tgz"; + sha512 = "zL1L52Wsc80IaVPXGVMjfumpN+PJ6zAuXJ6EKf8HTjPvPx4J03ybHHUrDPw455WxaJp00SmuDq+wZZyOZTvIeQ=="; + }; + }; + "mdurl-1.0.1" = { + name = "mdurl"; + packageName = "mdurl"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz"; + sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e"; + }; + }; + "media-typer-0.3.0" = { + name = "media-typer"; + packageName = "media-typer"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"; + sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; + }; + }; + "merge-descriptors-1.0.1" = { + name = "merge-descriptors"; + packageName = "merge-descriptors"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; + sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; + }; + }; + "methods-1.1.2" = { + name = "methods"; + packageName = "methods"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"; + sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; + }; + }; + "mime-1.6.0" = { + name = "mime"; + packageName = "mime"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; + sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; + }; + }; + "mime-2.5.0" = { + name = "mime"; + packageName = "mime"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz"; + sha512 = "ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag=="; + }; + }; + "mime-db-1.43.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.43.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz"; + sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="; + }; + }; + "mime-types-2.1.26" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.26"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz"; + sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ=="; + }; + }; + "mimic-response-1.0.1" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz"; + sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="; + }; + }; + "mimic-response-2.1.0" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz"; + sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="; + }; + }; + "mimic-response-3.1.0" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz"; + sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="; + }; + }; + "minimalistic-assert-1.0.1" = { + name = "minimalistic-assert"; + packageName = "minimalistic-assert"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; + sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-1.2.5" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; + sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; + }; + }; + "minipass-2.9.0" = { + name = "minipass"; + packageName = "minipass"; + version = "2.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz"; + sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg=="; + }; + }; + "minizlib-1.3.3" = { + name = "minizlib"; + packageName = "minizlib"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz"; + sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q=="; + }; + }; + "mkdirp-0.5.5" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"; + sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="; + }; + }; + "mkdirp-1.0.4" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"; + sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="; + }; + }; + "mkdirp-classic-0.5.3" = { + name = "mkdirp-classic"; + packageName = "mkdirp-classic"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz"; + sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="; + }; + }; + "moment-2.29.1" = { + name = "moment"; + packageName = "moment"; + version = "2.29.1"; + src = fetchurl { + url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz"; + sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="; + }; + }; + "morgan-1.10.0" = { + name = "morgan"; + packageName = "morgan"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz"; + sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ=="; + }; + }; + "ms-2.0.0" = { + name = "ms"; + packageName = "ms"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + }; + "ms-2.1.1" = { + name = "ms"; + packageName = "ms"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; + sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; + }; + }; + "ms-2.1.3" = { + name = "ms"; + packageName = "ms"; + version = "2.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"; + sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="; + }; + }; + "mx-puppet-bridge-0.1.4" = { + name = "mx-puppet-bridge"; + packageName = "mx-puppet-bridge"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mx-puppet-bridge/-/mx-puppet-bridge-0.1.4.tgz"; + sha512 = "Jg4hszVqQv1n35Mvb5HcfK4VafjB0LaCEay8ylgiu/M2oIPE0fadFNdQpkwssXmShDzSeth/xga3HgP8G6O5Fg=="; + }; + }; + "nan-2.14.2" = { + name = "nan"; + packageName = "nan"; + version = "2.14.2"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz"; + sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="; + }; + }; + "napi-build-utils-1.0.2" = { + name = "napi-build-utils"; + packageName = "napi-build-utils"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz"; + sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="; + }; + }; + "needle-2.6.0" = { + name = "needle"; + packageName = "needle"; + version = "2.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz"; + sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg=="; + }; + }; + "negotiator-0.6.2" = { + name = "negotiator"; + packageName = "negotiator"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"; + sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="; + }; + }; + "node-abi-2.19.3" = { + name = "node-abi"; + packageName = "node-abi"; + version = "2.19.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz"; + sha512 = "9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg=="; + }; + }; + "node-emoji-1.10.0" = { + name = "node-emoji"; + packageName = "node-emoji"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz"; + sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw=="; + }; + }; + "node-fetch-2.6.1" = { + name = "node-fetch"; + packageName = "node-fetch"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz"; + sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="; + }; + }; + "node-html-parser-1.4.9" = { + name = "node-html-parser"; + packageName = "node-html-parser"; + version = "1.4.9"; + src = fetchurl { + url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz"; + sha512 = "UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw=="; + }; + }; + "node-pre-gyp-0.11.0" = { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz"; + sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q=="; + }; + }; + "noop-logger-0.1.1" = { + name = "noop-logger"; + packageName = "noop-logger"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"; + sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2"; + }; + }; + "nopt-4.0.3" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; + sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; + }; + }; + "normalize-url-4.5.0" = { + name = "normalize-url"; + packageName = "normalize-url"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz"; + sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="; + }; + }; + "normalize-version-1.0.5" = { + name = "normalize-version"; + packageName = "normalize-version"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-version/-/normalize-version-1.0.5.tgz"; + sha1 = "a6a2b9002dc6fa2e5f15ec2f0b2c0284fb499712"; + }; + }; + "npm-bundled-1.1.1" = { + name = "npm-bundled"; + packageName = "npm-bundled"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz"; + sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA=="; + }; + }; + "npm-normalize-package-bin-1.0.1" = { + name = "npm-normalize-package-bin"; + packageName = "npm-normalize-package-bin"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz"; + sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="; + }; + }; + "npm-packlist-1.4.8" = { + name = "npm-packlist"; + packageName = "npm-packlist"; + version = "1.4.8"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz"; + sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A=="; + }; + }; + "npmlog-4.1.2" = { + name = "npmlog"; + packageName = "npmlog"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; + sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "object-hash-1.3.1" = { + name = "object-hash"; + packageName = "object-hash"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz"; + sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="; + }; + }; + "on-finished-2.3.0" = { + name = "on-finished"; + packageName = "on-finished"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; + sha1 = "20f1336481b083cd75337992a16971aa2d906947"; + }; + }; + "on-headers-1.0.2" = { + name = "on-headers"; + packageName = "on-headers"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "one-time-1.0.0" = { + name = "one-time"; + packageName = "one-time"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz"; + sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; + }; + }; + "p-cancelable-2.0.0" = { + name = "p-cancelable"; + packageName = "p-cancelable"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz"; + sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg=="; + }; + }; + "packet-reader-1.0.0" = { + name = "packet-reader"; + packageName = "packet-reader"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz"; + sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="; + }; + }; + "parse-srcset-1.0.2" = { + name = "parse-srcset"; + packageName = "parse-srcset"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz"; + sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1"; + }; + }; + "parseurl-1.3.3" = { + name = "parseurl"; + packageName = "parseurl"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; + sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; + }; + }; + "path-0.12.7" = { + name = "path"; + packageName = "path"; + version = "0.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path/-/path-0.12.7.tgz"; + sha1 = "d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "path-parse-1.0.6" = { + name = "path-parse"; + packageName = "path-parse"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; + sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; + }; + }; + "path-to-regexp-0.1.7" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; + sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; + }; + }; + "pg-8.5.1" = { + name = "pg"; + packageName = "pg"; + version = "8.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz"; + sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw=="; + }; + }; + "pg-connection-string-2.4.0" = { + name = "pg-connection-string"; + packageName = "pg-connection-string"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz"; + sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ=="; + }; + }; + "pg-int8-1.0.1" = { + name = "pg-int8"; + packageName = "pg-int8"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"; + sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; + }; + }; + "pg-minify-1.6.2" = { + name = "pg-minify"; + packageName = "pg-minify"; + version = "1.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz"; + sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg=="; + }; + }; + "pg-pool-3.2.2" = { + name = "pg-pool"; + packageName = "pg-pool"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz"; + sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA=="; + }; + }; + "pg-promise-10.9.1" = { + name = "pg-promise"; + packageName = "pg-promise"; + version = "10.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.1.tgz"; + sha512 = "Om5sYmsm2NWXP+D0Soappb4fuidER9qNLcnVo9nBPFqwPfpnBZZPzzLaVvwBXs//+kJ9L4bBTXm2iWNAp39e2A=="; + }; + }; + "pg-protocol-1.4.0" = { + name = "pg-protocol"; + packageName = "pg-protocol"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz"; + sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA=="; + }; + }; + "pg-types-2.2.0" = { + name = "pg-types"; + packageName = "pg-types"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"; + sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="; + }; + }; + "pgpass-1.0.4" = { + name = "pgpass"; + packageName = "pgpass"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz"; + sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w=="; + }; + }; + "pify-3.0.0" = { + name = "pify"; + packageName = "pify"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + }; + "postcss-7.0.35" = { + name = "postcss"; + packageName = "postcss"; + version = "7.0.35"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz"; + sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg=="; + }; + }; + "postgres-array-2.0.0" = { + name = "postgres-array"; + packageName = "postgres-array"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"; + sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="; + }; + }; + "postgres-bytea-1.0.0" = { + name = "postgres-bytea"; + packageName = "postgres-bytea"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"; + sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35"; + }; + }; + "postgres-date-1.0.7" = { + name = "postgres-date"; + packageName = "postgres-date"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"; + sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="; + }; + }; + "postgres-interval-1.2.0" = { + name = "postgres-interval"; + packageName = "postgres-interval"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"; + sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="; + }; + }; + "prebuild-install-5.3.6" = { + name = "prebuild-install"; + packageName = "prebuild-install"; + version = "5.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz"; + sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg=="; + }; + }; + "prism-media-1.2.3" = { + name = "prism-media"; + packageName = "prism-media"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz"; + sha512 = "fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A=="; + }; + }; + "process-0.11.10" = { + name = "process"; + packageName = "process"; + version = "0.11.10"; + src = fetchurl { + url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz"; + sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; + }; + }; + "prom-client-13.0.0" = { + name = "prom-client"; + packageName = "prom-client"; + version = "13.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz"; + sha512 = "M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A=="; + }; + }; + "proxy-addr-2.0.6" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"; + sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw=="; + }; + }; + "pump-3.0.0" = { + name = "pump"; + packageName = "pump"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"; + sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww=="; + }; + }; + "qs-6.7.0" = { + name = "qs"; + packageName = "qs"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"; + sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="; + }; + }; + "quick-lru-5.1.1" = { + name = "quick-lru"; + packageName = "quick-lru"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"; + sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="; + }; + }; + "range-parser-1.2.1" = { + name = "range-parser"; + packageName = "range-parser"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"; + sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="; + }; + }; + "raw-body-2.4.0" = { + name = "raw-body"; + packageName = "raw-body"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz"; + sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q=="; + }; + }; + "rc-1.2.8" = { + name = "rc"; + packageName = "rc"; + version = "1.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"; + sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="; + }; + }; + "readable-stream-2.3.7" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; + sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; + }; + }; + "readable-stream-3.6.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; + sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + }; + }; + "reduce-flatten-1.0.1" = { + name = "reduce-flatten"; + packageName = "reduce-flatten"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz"; + sha1 = "258c78efd153ddf93cb561237f61184f3696e327"; + }; + }; + "resolve-1.11.1" = { + name = "resolve"; + packageName = "resolve"; + version = "1.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz"; + sha512 = "vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw=="; + }; + }; + "resolve-alpn-1.0.0" = { + name = "resolve-alpn"; + packageName = "resolve-alpn"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz"; + sha512 = "rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA=="; + }; + }; + "responselike-2.0.0" = { + name = "responselike"; + packageName = "responselike"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz"; + sha512 = "xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw=="; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="; + }; + }; + "safe-buffer-5.1.2" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; + }; + }; + "safer-buffer-2.1.2" = { + name = "safer-buffer"; + packageName = "safer-buffer"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; + }; + }; + "sanitize-html-1.27.5" = { + name = "sanitize-html"; + packageName = "sanitize-html"; + version = "1.27.5"; + src = fetchurl { + url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz"; + sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A=="; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; + }; + }; + "semver-5.7.0" = { + name = "semver"; + packageName = "semver"; + version = "5.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz"; + sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="; + }; + }; + "semver-6.3.0" = { + name = "semver"; + packageName = "semver"; + version = "6.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"; + sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="; + }; + }; + "semver-closest-0.1.2" = { + name = "semver-closest"; + packageName = "semver-closest"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/semver-closest/-/semver-closest-0.1.2.tgz"; + sha512 = "Q6qk0bPNlK5zG62mWFC8L0Qc6OJX76XRWxiPgZyrh98IZTL3HPErgUlPfCyrAPsHVpU+YP4lf5Mz+LzpId91Og=="; + }; + }; + "send-0.17.1" = { + name = "send"; + packageName = "send"; + version = "0.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; + sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; + }; + }; + "serve-static-1.14.1" = { + name = "serve-static"; + packageName = "serve-static"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; + sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "setimmediate-1.0.5" = { + name = "setimmediate"; + packageName = "setimmediate"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"; + sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; + }; + }; + "setprototypeof-1.1.1" = { + name = "setprototypeof"; + packageName = "setprototypeof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; + sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; + }; + }; + "signal-exit-3.0.3" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"; + sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="; + }; + }; + "simple-concat-1.0.1" = { + name = "simple-concat"; + packageName = "simple-concat"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"; + sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="; + }; + }; + "simple-get-3.1.0" = { + name = "simple-get"; + packageName = "simple-get"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz"; + sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA=="; + }; + }; + "simple-markdown-0.7.2" = { + name = "simple-markdown"; + packageName = "simple-markdown"; + version = "0.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.2.tgz"; + sha512 = "XfCvqqzMyzRj4L7eIxJgGaQ2Gaxr20GhTFMB+1yuY8q3xffjzmOg4Q5tC0kcaJPV42NNUHCQDaRK6jzi3/RhrA=="; + }; + }; + "simple-swizzle-0.2.2" = { + name = "simple-swizzle"; + packageName = "simple-swizzle"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"; + sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a"; + }; + }; + "source-map-0.6.1" = { + name = "source-map"; + packageName = "source-map"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; + sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; + }; + }; + "spex-3.2.0" = { + name = "spex"; + packageName = "spex"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz"; + sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg=="; + }; + }; + "split2-3.2.2" = { + name = "split2"; + packageName = "split2"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz"; + sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="; + }; + }; + "sprintf-js-1.0.3" = { + name = "sprintf-js"; + packageName = "sprintf-js"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + }; + "stack-trace-0.0.10" = { + name = "stack-trace"; + packageName = "stack-trace"; + version = "0.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"; + sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0"; + }; + }; + "statuses-1.5.0" = { + name = "statuses"; + packageName = "statuses"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; + sha1 = "161c7dac177659fd9811f43771fa99381478628c"; + }; + }; + "steno-0.4.4" = { + name = "steno"; + packageName = "steno"; + version = "0.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz"; + sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb"; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-json-comments-2.0.1" = { + name = "strip-json-comments"; + packageName = "strip-json-comments"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + }; + "supports-color-5.5.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; + sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; + }; + }; + "supports-color-6.1.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz"; + sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ=="; + }; + }; + "supports-color-7.2.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "7.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"; + sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; + }; + }; + "table-layout-0.4.5" = { + name = "table-layout"; + packageName = "table-layout"; + version = "0.4.5"; + src = fetchurl { + url = "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz"; + sha512 = "zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw=="; + }; + }; + "tar-4.4.10" = { + name = "tar"; + packageName = "tar"; + version = "4.4.10"; + src = fetchurl { + url = "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz"; + sha512 = "g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA=="; + }; + }; + "tar-fs-2.1.1" = { + name = "tar-fs"; + packageName = "tar-fs"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz"; + sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng=="; + }; + }; + "tar-stream-2.2.0" = { + name = "tar-stream"; + packageName = "tar-stream"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz"; + sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="; + }; + }; + "tdigest-0.1.1" = { + name = "tdigest"; + packageName = "tdigest"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz"; + sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021"; + }; + }; + "text-hex-1.0.0" = { + name = "text-hex"; + packageName = "text-hex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz"; + sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="; + }; + }; + "toidentifier-1.0.0" = { + name = "toidentifier"; + packageName = "toidentifier"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; + sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; + }; + }; + "triple-beam-1.3.0" = { + name = "triple-beam"; + packageName = "triple-beam"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz"; + sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="; + }; + }; + "tslib-1.10.0" = { + name = "tslib"; + packageName = "tslib"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz"; + sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="; + }; + }; + "tslint-5.18.0" = { + name = "tslint"; + packageName = "tslint"; + version = "5.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz"; + sha512 = "Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w=="; + }; + }; + "tsutils-2.29.0" = { + name = "tsutils"; + packageName = "tsutils"; + version = "2.29.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz"; + sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA=="; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-1.0.3" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz"; + sha512 = "6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="; + }; + }; + "type-fest-0.8.1" = { + name = "type-fest"; + packageName = "type-fest"; + version = "0.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz"; + sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="; + }; + }; + "type-is-1.6.18" = { + name = "type-is"; + packageName = "type-is"; + version = "1.6.18"; + src = fetchurl { + url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"; + sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="; + }; + }; + "typescript-3.7.4" = { + name = "typescript"; + packageName = "typescript"; + version = "3.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz"; + sha512 = "A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw=="; + }; + }; + "typical-2.6.1" = { + name = "typical"; + packageName = "typical"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz"; + sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d"; + }; + }; + "typical-4.0.0" = { + name = "typical"; + packageName = "typical"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz"; + sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="; + }; + }; + "uc.micro-1.0.6" = { + name = "uc.micro"; + packageName = "uc.micro"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz"; + sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="; + }; + }; + "unescape-1.0.1" = { + name = "unescape"; + packageName = "unescape"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz"; + sha512 = "O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ=="; + }; + }; + "unescape-html-1.1.0" = { + name = "unescape-html"; + packageName = "unescape-html"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unescape-html/-/unescape-html-1.1.0.tgz"; + sha512 = "O9/yBNqIkArjS597iHez5hAaAdn7b8/230SX8IncgXAX5tWI9XlEQYaz6Qbou0Sloa9n6lx9G5s6hg5qhJyzGg=="; + }; + }; + "unpipe-1.0.0" = { + name = "unpipe"; + packageName = "unpipe"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; + }; + }; + "useragent-generator-1.1.1-amkt-22079-finish.0" = { + name = "useragent-generator"; + packageName = "useragent-generator"; + version = "1.1.1-amkt-22079-finish.0"; + src = fetchurl { + url = "https://registry.npmjs.org/useragent-generator/-/useragent-generator-1.1.1-amkt-22079-finish.0.tgz"; + sha512 = "jUVHvx1t3bVjx2dI9fG4iKzjO5WA6qtjWaR/PitNvd6zQMJNlFYehNwRUaAAKkhBCkw1T0U9e2oG9Sg3wSmc6Q=="; + }; + }; + "util-0.10.4" = { + name = "util"; + packageName = "util"; + version = "0.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/util/-/util-0.10.4.tgz"; + sha512 = "0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A=="; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "utils-merge-1.0.1" = { + name = "utils-merge"; + packageName = "utils-merge"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; + sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; + }; + }; + "uuid-3.4.0" = { + name = "uuid"; + packageName = "uuid"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; + sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; + }; + }; + "vary-1.1.2" = { + name = "vary"; + packageName = "vary"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"; + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; + }; + }; + "which-pm-runs-1.0.0" = { + name = "which-pm-runs"; + packageName = "which-pm-runs"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz"; + sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb"; + }; + }; + "wide-align-1.1.3" = { + name = "wide-align"; + packageName = "wide-align"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; + sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; + }; + }; + "winston-3.3.3" = { + name = "winston"; + packageName = "winston"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz"; + sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw=="; + }; + }; + "winston-compat-0.1.5" = { + name = "winston-compat"; + packageName = "winston-compat"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz"; + sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g=="; + }; + }; + "winston-daily-rotate-file-3.10.0" = { + name = "winston-daily-rotate-file"; + packageName = "winston-daily-rotate-file"; + version = "3.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz"; + sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA=="; + }; + }; + "winston-transport-4.4.0" = { + name = "winston-transport"; + packageName = "winston-transport"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz"; + sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw=="; + }; + }; + "wordwrapjs-3.0.0" = { + name = "wordwrapjs"; + packageName = "wordwrapjs"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz"; + sha512 = "mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw=="; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "ws-7.4.1" = { + name = "ws"; + packageName = "ws"; + version = "7.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz"; + sha512 = "pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ=="; + }; + }; + "xtend-4.0.2" = { + name = "xtend"; + packageName = "xtend"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; + sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; + }; + }; + "yallist-3.1.1" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; + sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="; + }; + }; + "yallist-4.0.0" = { + name = "yallist"; + packageName = "yallist"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"; + sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="; + }; + }; + }; + args = { + name = "mx-puppet-discord"; + packageName = "mx-puppet-discord"; + version = "0.0.0"; + src = ./.; + dependencies = [ + sources."@babel/code-frame-7.0.0" + sources."@babel/highlight-7.0.0" + sources."@dabh/diagnostics-2.0.2" + sources."@discordjs/collection-0.1.6" + sources."@discordjs/form-data-3.0.1" + sources."@sindresorhus/is-3.1.2" + (sources."@sorunome/matrix-bot-sdk-0.5.8" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."chalk-4.1.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."has-flag-4.0.0" + sources."mkdirp-1.0.4" + sources."supports-color-7.2.0" + ]; + }) + sources."@szmarczak/http-timer-4.0.5" + sources."@types/body-parser-1.19.0" + sources."@types/cacheable-request-6.0.1" + sources."@types/connect-3.4.34" + sources."@types/express-4.17.11" + sources."@types/express-serve-static-core-4.17.18" + sources."@types/http-cache-semantics-4.0.0" + sources."@types/keyv-3.1.1" + sources."@types/node-14.6.3" + sources."@types/prop-types-15.7.3" + sources."@types/qs-6.9.5" + sources."@types/range-parser-1.2.3" + sources."@types/react-17.0.0" + sources."@types/responselike-1.0.0" + (sources."@types/serve-static-1.13.9" // { + dependencies = [ + sources."@types/mime-1.3.2" + ]; + }) + sources."abbrev-1.1.1" + sources."abort-controller-3.0.0" + sources."accepts-1.3.7" + sources."ansi-regex-2.1.1" + sources."ansi-styles-3.2.1" + sources."aproba-1.2.0" + sources."are-we-there-yet-1.1.5" + sources."argparse-1.0.10" + sources."array-back-3.1.0" + sources."array-flatten-1.1.1" + sources."assert-options-0.7.0" + sources."async-3.2.0" + sources."asynckit-0.4.0" + sources."balanced-match-1.0.0" + sources."base64-js-1.5.1" + sources."basic-auth-2.0.1" + sources."better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72" + sources."better-sqlite3-6.0.1" + sources."bindings-1.5.0" + sources."bintrees-1.0.1" + (sources."bl-4.0.3" // { + dependencies = [ + sources."inherits-2.0.4" + sources."readable-stream-3.6.0" + ]; + }) + sources."blurhash-1.1.3" + sources."body-parser-1.19.0" + sources."brace-expansion-1.1.11" + sources."buffer-5.7.1" + sources."buffer-writer-2.0.0" + sources."builtin-modules-1.1.1" + sources."bytes-3.1.0" + sources."cacheable-lookup-5.0.3" + sources."cacheable-request-7.0.1" + sources."canvas-2.6.1" + sources."chalk-2.4.2" + sources."chownr-1.1.4" + sources."clone-response-1.0.2" + sources."code-point-at-1.1.0" + sources."color-3.0.0" + sources."color-convert-1.9.3" + sources."color-name-1.1.3" + sources."color-string-1.5.4" + sources."colors-1.4.0" + sources."colorspace-1.1.2" + sources."combined-stream-1.0.8" + sources."command-line-args-5.1.1" + (sources."command-line-usage-5.0.5" // { + dependencies = [ + sources."array-back-2.0.0" + sources."typical-2.6.1" + ]; + }) + sources."commander-2.20.0" + sources."concat-map-0.0.1" + sources."console-control-strings-1.1.0" + sources."content-disposition-0.5.3" + sources."content-type-1.0.4" + sources."cookie-0.4.0" + sources."cookie-signature-1.0.6" + sources."core-util-is-1.0.2" + sources."csstype-3.0.5" + sources."cycle-1.0.3" + sources."debug-2.6.9" + (sources."decompress-response-6.0.0" // { + dependencies = [ + sources."mimic-response-3.1.0" + ]; + }) + sources."deep-extend-0.6.0" + sources."defer-to-connect-2.0.0" + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."depd-1.1.2" + sources."destroy-1.0.4" + sources."detect-libc-1.0.3" + sources."diff-3.5.0" + sources."discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085" + (sources."dom-serializer-1.2.0" // { + dependencies = [ + sources."domhandler-4.0.0" + ]; + }) + sources."domelementtype-2.1.0" + sources."domhandler-3.3.0" + (sources."domutils-2.4.4" // { + dependencies = [ + sources."domhandler-4.0.0" + ]; + }) + sources."ee-first-1.1.1" + sources."enabled-2.0.0" + sources."encodeurl-1.0.2" + sources."end-of-stream-1.4.4" + sources."entities-2.1.0" + sources."escape-html-1.0.3" + sources."escape-string-regexp-1.0.5" + sources."esprima-4.0.1" + sources."esutils-2.0.2" + sources."etag-1.8.1" + sources."event-target-shim-5.0.1" + sources."events-3.0.0" + sources."expand-template-2.0.3" + sources."expire-set-1.0.0" + sources."express-4.17.1" + sources."extend-shallow-2.0.1" + sources."fast-safe-stringify-2.0.7" + sources."fecha-4.2.0" + sources."file-stream-rotator-0.4.1" + sources."file-type-12.4.2" + sources."file-uri-to-path-1.0.0" + sources."finalhandler-1.1.2" + sources."find-replace-3.0.0" + sources."fn.name-1.1.0" + sources."forwarded-0.1.2" + sources."fresh-0.5.2" + sources."fs-constants-1.0.0" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + sources."gauge-2.7.4" + sources."get-stream-5.2.0" + sources."github-from-package-0.0.0" + sources."glob-7.1.4" + sources."glob-to-regexp-0.4.1" + sources."got-11.6.0" + sources."graceful-fs-4.2.4" + sources."has-flag-3.0.0" + sources."has-unicode-2.0.1" + sources."hash.js-1.1.7" + sources."hasha-5.2.2" + sources."he-1.2.0" + sources."highlight.js-10.4.1" + sources."htmlencode-0.0.4" + sources."htmlparser2-4.1.0" + sources."http-cache-semantics-4.1.0" + sources."http-errors-1.7.2" + sources."http2-wrapper-1.0.0-beta.5.2" + sources."iconv-lite-0.4.24" + sources."ieee754-1.2.1" + sources."ignore-walk-3.0.3" + sources."inflight-1.0.6" + sources."inherits-2.0.3" + sources."ini-1.3.8" + sources."integer-3.0.1" + sources."ipaddr.js-1.9.1" + sources."is-arrayish-0.3.2" + sources."is-extendable-0.1.1" + sources."is-fullwidth-code-point-1.0.0" + sources."is-promise-2.2.2" + sources."is-stream-2.0.0" + sources."isarray-1.0.0" + sources."js-tokens-4.0.0" + sources."js-yaml-3.13.1" + sources."json-buffer-3.0.1" + sources."keyv-4.0.1" + sources."kuler-2.0.0" + sources."linkify-it-2.2.0" + sources."lodash-4.17.20" + sources."lodash.camelcase-4.3.0" + sources."lodash.padend-4.6.1" + sources."lodash.toarray-4.4.0" + (sources."logform-2.2.0" // { + dependencies = [ + sources."ms-2.1.3" + ]; + }) + sources."lowdb-1.0.0" + sources."lowercase-keys-2.0.0" + sources."lru-cache-6.0.0" + (sources."markdown-it-9.1.0" // { + dependencies = [ + sources."entities-1.1.2" + ]; + }) + sources."matrix-discord-parser-0.1.7" + sources."mdurl-1.0.1" + sources."media-typer-0.3.0" + sources."merge-descriptors-1.0.1" + sources."methods-1.1.2" + sources."mime-2.5.0" + sources."mime-db-1.43.0" + sources."mime-types-2.1.26" + sources."mimic-response-1.0.1" + sources."minimalistic-assert-1.0.1" + sources."minimatch-3.0.4" + sources."minimist-1.2.5" + (sources."minipass-2.9.0" // { + dependencies = [ + sources."yallist-3.1.1" + ]; + }) + sources."minizlib-1.3.3" + sources."mkdirp-0.5.5" + sources."mkdirp-classic-0.5.3" + sources."moment-2.29.1" + (sources."morgan-1.10.0" // { + dependencies = [ + sources."depd-2.0.0" + ]; + }) + sources."ms-2.0.0" + (sources."mx-puppet-bridge-0.1.4" // { + dependencies = [ + sources."events-3.2.0" + ]; + }) + sources."nan-2.14.2" + sources."napi-build-utils-1.0.2" + (sources."needle-2.6.0" // { + dependencies = [ + sources."debug-3.2.7" + sources."ms-2.1.3" + ]; + }) + sources."negotiator-0.6.2" + sources."node-abi-2.19.3" + sources."node-emoji-1.10.0" + sources."node-fetch-2.6.1" + sources."node-html-parser-1.4.9" + sources."node-pre-gyp-0.11.0" + sources."noop-logger-0.1.1" + sources."nopt-4.0.3" + sources."normalize-url-4.5.0" + sources."normalize-version-1.0.5" + sources."npm-bundled-1.1.1" + sources."npm-normalize-package-bin-1.0.1" + sources."npm-packlist-1.4.8" + sources."npmlog-4.1.2" + sources."number-is-nan-1.0.1" + sources."object-assign-4.1.1" + sources."object-hash-1.3.1" + sources."on-finished-2.3.0" + sources."on-headers-1.0.2" + sources."once-1.4.0" + sources."one-time-1.0.0" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."p-cancelable-2.0.0" + sources."packet-reader-1.0.0" + sources."parse-srcset-1.0.2" + sources."parseurl-1.3.3" + sources."path-0.12.7" + sources."path-is-absolute-1.0.1" + sources."path-parse-1.0.6" + sources."path-to-regexp-0.1.7" + sources."pg-8.5.1" + sources."pg-connection-string-2.4.0" + sources."pg-int8-1.0.1" + sources."pg-minify-1.6.2" + sources."pg-pool-3.2.2" + sources."pg-promise-10.9.1" + sources."pg-protocol-1.4.0" + sources."pg-types-2.2.0" + sources."pgpass-1.0.4" + sources."pify-3.0.0" + (sources."postcss-7.0.35" // { + dependencies = [ + sources."supports-color-6.1.0" + ]; + }) + sources."postgres-array-2.0.0" + sources."postgres-bytea-1.0.0" + sources."postgres-date-1.0.7" + sources."postgres-interval-1.2.0" + sources."prebuild-install-5.3.6" + sources."prism-media-1.2.3" + sources."process-0.11.10" + sources."process-nextick-args-2.0.1" + sources."prom-client-13.0.0" + sources."proxy-addr-2.0.6" + sources."pump-3.0.0" + sources."qs-6.7.0" + sources."quick-lru-5.1.1" + sources."range-parser-1.2.1" + sources."raw-body-2.4.0" + sources."rc-1.2.8" + sources."readable-stream-2.3.7" + sources."reduce-flatten-1.0.1" + sources."resolve-1.11.1" + sources."resolve-alpn-1.0.0" + sources."responselike-2.0.0" + sources."rimraf-2.7.1" + sources."safe-buffer-5.1.2" + sources."safer-buffer-2.1.2" + sources."sanitize-html-1.27.5" + sources."sax-1.2.4" + sources."semver-5.7.0" + sources."semver-closest-0.1.2" + (sources."send-0.17.1" // { + dependencies = [ + sources."mime-1.6.0" + sources."ms-2.1.1" + ]; + }) + sources."serve-static-1.14.1" + sources."set-blocking-2.0.0" + sources."setimmediate-1.0.5" + sources."setprototypeof-1.1.1" + sources."signal-exit-3.0.3" + sources."simple-concat-1.0.1" + (sources."simple-get-3.1.0" // { + dependencies = [ + sources."decompress-response-4.2.1" + sources."mimic-response-2.1.0" + ]; + }) + sources."simple-markdown-0.7.2" + sources."simple-swizzle-0.2.2" + sources."source-map-0.6.1" + sources."spex-3.2.0" + (sources."split2-3.2.2" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + sources."sprintf-js-1.0.3" + sources."stack-trace-0.0.10" + sources."statuses-1.5.0" + sources."steno-0.4.4" + sources."string-width-1.0.2" + sources."string_decoder-1.1.1" + sources."strip-ansi-3.0.1" + sources."strip-json-comments-2.0.1" + sources."supports-color-5.5.0" + (sources."table-layout-0.4.5" // { + dependencies = [ + sources."array-back-2.0.0" + sources."typical-2.6.1" + ]; + }) + (sources."tar-4.4.10" // { + dependencies = [ + sources."yallist-3.1.1" + ]; + }) + sources."tar-fs-2.1.1" + (sources."tar-stream-2.2.0" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + sources."tdigest-0.1.1" + sources."text-hex-1.0.0" + sources."toidentifier-1.0.0" + sources."triple-beam-1.3.0" + sources."tslib-1.10.0" + sources."tslint-5.18.0" + sources."tsutils-2.29.0" + sources."tunnel-agent-0.6.0" + sources."tweetnacl-1.0.3" + sources."type-fest-0.8.1" + sources."type-is-1.6.18" + sources."typescript-3.7.4" + sources."typical-4.0.0" + sources."uc.micro-1.0.6" + sources."unescape-1.0.1" + sources."unescape-html-1.1.0" + sources."unpipe-1.0.0" + sources."useragent-generator-1.1.1-amkt-22079-finish.0" + sources."util-0.10.4" + sources."util-deprecate-1.0.2" + sources."utils-merge-1.0.1" + sources."uuid-3.4.0" + sources."vary-1.1.2" + sources."which-pm-runs-1.0.0" + sources."wide-align-1.1.3" + (sources."winston-3.3.3" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + (sources."winston-compat-0.1.5" // { + dependencies = [ + sources."fecha-2.3.3" + sources."logform-1.10.0" + sources."ms-2.1.3" + ]; + }) + (sources."winston-daily-rotate-file-3.10.0" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + sources."winston-transport-4.4.0" + (sources."wordwrapjs-3.0.0" // { + dependencies = [ + sources."typical-2.6.1" + ]; + }) + sources."wrappy-1.0.2" + sources."ws-7.4.1" + sources."xtend-4.0.2" + sources."yallist-4.0.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = ""; + }; + production = true; + bypassCache = true; + reconstructLock = false; + }; +in +{ + args = args; + sources = sources; + tarball = nodeEnv.buildNodeSourceDist args; + package = nodeEnv.buildNodePackage args; + shell = nodeEnv.buildNodeShell args; + nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args { + src = stdenv.mkDerivation { + name = args.name + "-package-json"; + src = nix-gitignore.gitignoreSourcePure [ + "*" + "!package.json" + "!package-lock.json" + ] args.src; + dontBuild = true; + installPhase = "mkdir -p $out; cp -r ./* $out;"; + }; + }); +} diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix index ca2001817a3..cab21080a04 100644 --- a/pkgs/servers/nosql/cassandra/generic.nix +++ b/pkgs/servers/nosql/cassandra/generic.nix @@ -1,22 +1,34 @@ -{ lib, stdenv, fetchurl, python, makeWrapper, gawk, bash, getopt, procps -, which, jre, coreutils, nixosTests -# generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11 +{ lib +, stdenv +, fetchurl +, python +, makeWrapper +, gawk +, bash +, getopt +, procps +, which +, jre +, coreutils +, nixosTests + # generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11 , generation -, version, sha256 -, extraMeta ? {} +, version +, sha256 +, extraMeta ? { } , ... }: let libPath = lib.makeLibraryPath [ stdenv.cc.cc ]; - binPath = with lib; makeBinPath ([ + binPath = lib.makeBinPath [ bash getopt gawk which jre procps - ]); + ]; in stdenv.mkDerivation rec { @@ -90,13 +102,14 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/cqlsh --prefix PATH : ${python}/bin runHook postInstall - ''; + ''; passthru = { tests = let test = nixosTests."cassandra_${generation}"; - in { + in + { nixos = assert test.testPackage.version == version; test; diff --git a/pkgs/servers/sql/postgresql/ext/pgvector.nix b/pkgs/servers/sql/postgresql/ext/pgvector.nix index a5c0f558c46..a93c400069b 100644 --- a/pkgs/servers/sql/postgresql/ext/pgvector.nix +++ b/pkgs/servers/sql/postgresql/ext/pgvector.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "pgvector"; - version = "0.1.0"; + version = "0.1.2"; src = fetchFromGitHub { owner = "ankane"; repo = pname; rev = "v${version}"; - sha256 = "03i8rq9wp9j2zdba82q31lzbrqpnhrqc8867pxxy3z505fxsvfzb"; + sha256 = "1vq672ghhv0azpzgfb7azb36kbjyz9ypcly7r16lrryvjgp5lcjs"; }; buildInputs = [ postgresql ]; @@ -22,6 +22,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Open-source vector similarity search for PostgreSQL"; homepage = "https://github.com/ankane/pgvector"; + changelog = "https://github.com/ankane/pgvector/raw/v${version}/CHANGELOG.md"; license = licenses.postgresql; platforms = postgresql.meta.platforms; maintainers = [ maintainers.marsam ]; diff --git a/pkgs/shells/bash/undistract-me/default.nix b/pkgs/shells/bash/undistract-me/default.nix new file mode 100644 index 00000000000..e6641d9039c --- /dev/null +++ b/pkgs/shells/bash/undistract-me/default.nix @@ -0,0 +1,79 @@ +{ lib +, stdenvNoCC +, fetchFromGitHub +, fetchpatch +, coreutils +, gnused +, libnotify +, pulseaudio +, sound-theme-freedesktop +, xprop +}: + +stdenvNoCC.mkDerivation rec { + pname = "undistract-me"; + version = "unstable-2020-08-09"; + + src = fetchFromGitHub { + owner = "jml"; + repo = pname; + rev = "2f8ac25c6ad8efcf160d2b480825b1cbb6772aab"; + hash = "sha256-Qw7Cu9q0ZgK/RTvyDdHM5N3eBaKjtYqYH0J+hKMUZX8="; + }; + + patches = [ + # Don't block the terminal when notification sound is played + # + # See https://github.com/jml/undistract-me/pull/69 + (fetchpatch { + url = "https://github.com/jml/undistract-me/commit/2356ebbe8bf2bcb4b95af1ae2bcdc786ce7cc6e8.patch"; + sha256 = "sha256-Ij3OXTOnIQsYhKVmqjChhN1q4ASZ7waOkfQTTp5XfPo="; + }) + + # Fix showing notifications when using Wayland apps with XWayland + # running, or connection to X server fails. + # + # NOTE: Without a real X server, notifications will not be + # suppressed when the window running the command is focused. + # + # See https://github.com/jml/undistract-me/pull/71 + (fetchpatch { + url = "https://github.com/jml/undistract-me/commit/3f4ceaf5a4eba8e3cb02236c48247f87e3d1124f.patch"; + sha256 = "sha256-9AK9Jp3TXJ75Y+jwZXlwQ6j54FW1rOBddoktrm0VX68="; + }) + ]; + + # Patch in dependencies. Can't use makeWrapper because the bash + # functions will be sourced and invoked in a different environment + # for each command invocation. + postPatch = '' + for script in *.bash *.sh; do + substituteInPlace "$script" \ + --replace /usr/share/undistract-me "$out/share/undistract-me" \ + --replace basename ${coreutils}/bin/basename \ + --replace 'cut ' '${coreutils}/bin/cut ' \ + --replace date ${coreutils}/bin/date \ + --replace dirname ${coreutils}/bin/dirname \ + --replace sed ${gnused}/bin/sed \ + --replace notify-send ${libnotify}/bin/notify-send \ + --replace paplay ${pulseaudio}/bin/paplay \ + --replace /usr/share/sounds/freedesktop ${sound-theme-freedesktop}/share/sounds/freedesktop \ + --replace xprop ${xprop}/bin/xprop + done + ''; + + installPhase = '' + mkdir -p "$out/share/undistract-me" "$out/etc/profile.d" "$out/share/licenses/undistract-me" + cp long-running.bash "$out/share/undistract-me" + cp preexec.bash "$out/share/undistract-me" + cp undistract-me.sh "$out/etc/profile.d" + cp LICENSE "$out/share/licenses/undistract-me" + ''; + + meta = with lib; { + description = "Notifies you when long-running terminal commands complete"; + homepage = "https://github.com/jml/undistract-me"; + license = licenses.mit; + maintainers = with maintainers; [ metadark ]; + }; +} diff --git a/pkgs/shells/zsh/zsh-z/default.nix b/pkgs/shells/zsh/zsh-z/default.nix new file mode 100644 index 00000000000..9623ff6648c --- /dev/null +++ b/pkgs/shells/zsh/zsh-z/default.nix @@ -0,0 +1,28 @@ +{ lib, stdenvNoCC, fetchFromGitHub }: + +stdenvNoCC.mkDerivation rec { + pname = "zsh-z"; + version = "unstable-2021-02-15"; + + src = fetchFromGitHub { + owner = "agkozak"; + repo = pname; + rev = "595c883abec4682929ffe05eb2d088dd18e97557"; + sha256 = "sha256-HnwUWqzwavh/Qox+siOe5lwTp7PBdiYx+9M0NMNFx00="; + }; + + dontBuild = true; + + installPhase = '' + mkdir -p $out/share/zsh-z + cp _zshz zsh-z.plugin.zsh $out/share/zsh-z + ''; + + meta = with lib; { + description = "Jump quickly to directories that you have visited frequently in the past, or recently"; + homepage = "https://github.com/agkozak/zsh-z"; + license = licenses.mit; + platforms = platforms.unix; + maintainers = [ maintainers.evalexpr ]; + }; +} diff --git a/pkgs/tools/admin/credhub-cli/default.nix b/pkgs/tools/admin/credhub-cli/default.nix index 55af1679d7a..0c71850f849 100644 --- a/pkgs/tools/admin/credhub-cli/default.nix +++ b/pkgs/tools/admin/credhub-cli/default.nix @@ -1,4 +1,4 @@ -{ lib, buildGoModule, fetchFromGitHub }: +{ lib, buildGoModule, fetchFromGitHub, fetchpatch }: buildGoModule rec { pname = "credhub-cli"; @@ -11,6 +11,14 @@ buildGoModule rec { sha256 = "1j0i0b79ph2i52cj0qln8wvp6gwhl73akkn026h27vvmlw9sndc2"; }; + patches = [ + # Fix test with Go 1.15 + (fetchpatch { + url = "https://github.com/cloudfoundry-incubator/credhub-cli/commit/4bd1accd513dc5e163e155c4b428878ca0bcedbc.patch"; + sha256 = "180n3q3d19aw02q7xsn7dxck18jgndz5garj2mb056cwa7mmhw0j"; + }) + ]; + # these tests require network access that we're not going to give them postPatch = '' rm commands/api_test.go diff --git a/pkgs/tools/admin/lego/default.nix b/pkgs/tools/admin/lego/default.nix index a825908484c..4553242d663 100644 --- a/pkgs/tools/admin/lego/default.nix +++ b/pkgs/tools/admin/lego/default.nix @@ -2,16 +2,16 @@ buildGoModule rec { pname = "lego"; - version = "4.2.0"; + version = "4.3.1"; src = fetchFromGitHub { owner = "go-acme"; repo = pname; rev = "v${version}"; - sha256 = "sha256-S9I6b9+FngX0/W5t3EHG+H1ULsZKoQw1/S4HnSITYG0="; + sha256 = "0mmr7fcqgbmr0b1fc49p6wjn7axxayyj420fxhhdvkd4nv8fxh1q"; }; - vendorSha256 = "sha256-dVGSMPhAvN/kWgv3XHS+lOZdcbDNL44ELkv7fHAJWlI="; + vendorSha256 = "04d141kjzqcjiwv6sd0sbrgsr7a99dvblm19gwzczljkfgi60q8w"; doCheck = false; diff --git a/pkgs/tools/admin/rset/default.nix b/pkgs/tools/admin/rset/default.nix new file mode 100644 index 00000000000..f7c00fffb1c --- /dev/null +++ b/pkgs/tools/admin/rset/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, coreutils, openssh, gnutar }: + +stdenv.mkDerivation rec { + pname = "rset"; + version = "2.1"; + + src = fetchurl { + url = "https://scriptedconfiguration.org/code/${pname}-${version}.tar.gz"; + sha256 = "0916f96afl8kcn2hpj4qhg92g2j93ycp2sb94nsz3q44sqc6ddhb"; + }; + + patches = [ ./paths.patch ]; + + postPatch = '' + substituteInPlace rset.c \ + --replace @ssh@ ${openssh}/bin/ssh \ + --replace @miniquark@ $out/bin/miniquark \ + --replace @rinstall@ $out/bin/rinstall \ + --replace @rsub@ $out/bin/rsub + + substituteInPlace execute.c \ + --replace @ssh@ ${openssh}/bin/ssh \ + --replace @ssh-add@ ${openssh}/bin/ssh-add \ + --replace @tar@ ${gnutar}/bin/tar + + substituteInPlace rutils.c \ + --replace @install@ ${coreutils}/bin/install + ''; + + # these are to be run on the remote host, + # so we want to preserve the original shebang. + postFixup = '' + sed -i "1s@.*@#!/bin/sh@" $out/bin/rinstall + sed -i "1s@.*@#!/bin/sh@" $out/bin/rsub + ''; + + dontAddPrefix = true; + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + homepage = "https://scriptedconfiguration.org/"; + description = "Configure systems using any scripting language"; + changelog = "https://github.com/eradman/rset/raw/${version}/NEWS"; + license = licenses.isc; + platforms = platforms.unix; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/pkgs/tools/admin/rset/paths.patch b/pkgs/tools/admin/rset/paths.patch new file mode 100644 index 00000000000..af09b0902ed --- /dev/null +++ b/pkgs/tools/admin/rset/paths.patch @@ -0,0 +1,131 @@ +diff --git a/execute.c b/execute.c +index be06068..3468fa7 100644 +--- a/execute.c ++++ b/execute.c +@@ -242,7 +242,7 @@ verify_ssh_agent() { + char *output; + char *argv[32]; + +- append(argv, 0, "ssh-add", "-l", NULL); ++ append(argv, 0, "@ssh-add@", "-l", NULL); + output = cmd_pipe_stdout(argv, &error_code, &output_size); + free(output); + +@@ -282,7 +282,7 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha + } + + argc = 0; +- argc = append(argv, argc, "ssh", "-fN", "-R", port_forwarding, "-S", ++ argc = append(argv, argc, "@ssh@", "-fN", "-R", port_forwarding, "-S", + socket_path, "-M", NULL); + if (ssh_config) + (void) append(argv, argc, "-F", ssh_config, host_name, NULL); +@@ -292,12 +292,12 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha + return -1; + + snprintf(tmp_path, sizeof(tmp_path), "mkdir " REMOTE_TMP_PATH, http_port); +- append(argv, 0, "ssh", "-S", socket_path, host_name, tmp_path, NULL); ++ append(argv, 0, "@ssh@", "-S", socket_path, host_name, tmp_path, NULL); + if (run(argv) != 0) + return -1; + +- snprintf(cmd, PATH_MAX, "tar -cf - %s -C " REPLICATED_DIRECTORY " ./ | " +- "exec ssh -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH, ++ snprintf(cmd, PATH_MAX, "@tar@ -cf - %s -C " REPLICATED_DIRECTORY " ./ | " ++ "exec @ssh@ -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH, + array_to_str(route_label->export_paths), socket_path, host_name, + http_port); + if (system(cmd) != 0) { +@@ -326,7 +326,7 @@ ssh_command_pipe(char *host_name, char *socket_path, Label *host_label, int http + + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL); + + (void) append(argv, argc, host_name, cmd, NULL); + return cmd_pipe_stdin(argv, host_label->content, host_label->content_size); +@@ -344,7 +344,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_ + http_port); + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL); + (void) append(argv, argc, host_name, cmd, NULL); + cmd_pipe_stdin(argv, host_label->content, host_label->content_size); + +@@ -360,7 +360,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_ + + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-t", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-t", "-S", socket_path, NULL); + + (void) append(argv, argc, host_name, cmd, NULL); + return run(argv); +@@ -375,11 +375,11 @@ end_connection(char *socket_path, char *host_name, int http_port) { + return; + + snprintf(tmp_path, sizeof(tmp_path), REMOTE_TMP_PATH, http_port); +- append(argv, 0, "ssh", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL); ++ append(argv, 0, "@ssh@", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL); + if (run(argv) != 0) + warn("remote tmp dir"); + +- append(argv, 0, "ssh", "-q", "-S", socket_path, "-O", "exit", host_name, NULL); ++ append(argv, 0, "@ssh@", "-q", "-S", socket_path, "-O", "exit", host_name, NULL); + if (run(argv) != 0) + warn("exec ssh -O exit"); + } +diff --git a/rset.c b/rset.c +index 383fc82..9c20f65 100644 +--- a/rset.c ++++ b/rset.c +@@ -128,10 +128,8 @@ int main(int argc, char *argv[]) + hostnames[i] = argv[optind+i]; + hostnames[i] = NULL; + +- if ((rinstall_bin = findprog("rinstall")) == 0) +- not_found("rinstall"); +- if ((rsub_bin = findprog("rsub")) == 0) +- not_found("rsub"); ++ rinstall_bin = "@rinstall@"; ++ rsub_bin = "@rsub@"; + + /* all operations must be relative to the routes file */ + if (realpath(xdirname(routes_file), routes_realpath) == NULL) +@@ -159,10 +157,9 @@ int main(int argc, char *argv[]) + + /* Convert http server command line into a vector */ + inputstring = malloc(PATH_MAX); +- snprintf(inputstring, PATH_MAX, "miniquark -p %d -d " PUBLIC_DIRECTORY, http_port); ++ snprintf(inputstring, PATH_MAX, "@miniquark@ -p %d -d " PUBLIC_DIRECTORY, http_port); + str_to_array(http_srv_argv, inputstring, sizeof(http_srv_argv)); +- if ((httpd_bin = findprog(http_srv_argv[0])) == 0) +- not_found(http_srv_argv[0]); ++ httpd_bin = "@miniquark@"; + + /* start the web server */ + pipe(stdout_pipe); +@@ -397,7 +394,7 @@ handle_exit(int sig) { + printf("caught signal %d, terminating connection to '%s'\n", sig, + hostname); + /* clean up socket and SSH connection; leaving staging dir */ +- execlp("ssh", "ssh", "-S", socket_path, "-O", "exit", hostname, NULL); ++ execlp("@ssh@", "@ssh@", "-S", socket_path, "-O", "exit", hostname, NULL); + err(1, "ssh -O exit"); + } + } +diff --git a/rutils.c b/rutils.c +index 1e182d8..9aef76d 100644 +--- a/rutils.c ++++ b/rutils.c +@@ -77,7 +77,7 @@ install_if_new(const char *src, const char *dst) { + + pid = fork(); + if (pid == 0) { +- if (execl("/usr/bin/install", "/usr/bin/install", src, dst, NULL) != -1) ++ if (execl("@install@", "@install@", src, dst, NULL) != -1) + err(1, "%s", dst); + } + waitpid(pid, &status, 0); diff --git a/pkgs/tools/audio/yabridge/default.nix b/pkgs/tools/audio/yabridge/default.nix index c09045bdb6e..d8ddf3ee561 100644 --- a/pkgs/tools/audio/yabridge/default.nix +++ b/pkgs/tools/audio/yabridge/default.nix @@ -1,6 +1,8 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch +, substituteAll , meson , ninja , pkg-config @@ -77,6 +79,24 @@ in stdenv.mkDerivation rec { cp -R --no-preserve=mode,ownership ${vst3.src} vst3 )''; + patches = [ + # Fix printing wine version when using absolute path (remove patches in next release): + (fetchpatch { + url = "https://github.com/robbert-vdh/yabridge/commit/2aadf5256b3eafeb86efa8626247972dd33baa13.patch"; + sha256 = "sha256-Nq9TQJxa22vJLmf+USyPBkF8cKyEzb1Lp2Rx86pDxnY="; + }) + (fetchpatch { + url = "https://github.com/robbert-vdh/yabridge/commit/93df3fa1da6ffcc69a5b384ba04e3da7c5ef23ef.patch"; + sha256 = "sha256-//8Dxolqe6n+aFo4yVnnMR9kSq/iEFE0qZPvcIBehvI="; + }) + + # Hard code wine path so wine version is correct in logs + (substituteAll { + src = ./hardcode-wine.patch; + inherit wine; + }) + ]; + postPatch = '' patchShebangs . ''; @@ -117,6 +137,14 @@ in stdenv.mkDerivation rec { cp libyabridge-vst3.so "$out/lib" ''; + # Hard code wine path in wrapper scripts generated by winegcc + postFixup = '' + for exe in "$out"/bin/*.exe; do + substituteInPlace "$exe" \ + --replace 'WINELOADER="wine"' 'WINELOADER="${wine}/bin/wine"' + done + ''; + meta = with lib; { description = "Yet Another VST bridge, run Windows VST2 plugins under Linux"; homepage = "https://github.com/robbert-vdh/yabridge"; diff --git a/pkgs/tools/audio/yabridge/hardcode-wine.patch b/pkgs/tools/audio/yabridge/hardcode-wine.patch new file mode 100644 index 00000000000..2b6ce1f448f --- /dev/null +++ b/pkgs/tools/audio/yabridge/hardcode-wine.patch @@ -0,0 +1,13 @@ +diff --git a/src/plugin/utils.cpp b/src/plugin/utils.cpp +index 1ff05bc..0723456 100644 +--- a/src/plugin/utils.cpp ++++ b/src/plugin/utils.cpp +@@ -351,7 +351,7 @@ std::string get_wine_version() { + access(wineloader_path.c_str(), X_OK) == 0) { + wine_path = wineloader_path; + } else { +- wine_path = bp::search_path("wine").string(); ++ wine_path = "@wine@/bin/wine"; + } + + bp::ipstream output; diff --git a/pkgs/tools/audio/yabridgectl/default.nix b/pkgs/tools/audio/yabridgectl/default.nix index 4548b288b69..2cbaf3f4ad5 100644 --- a/pkgs/tools/audio/yabridgectl/default.nix +++ b/pkgs/tools/audio/yabridgectl/default.nix @@ -1,4 +1,9 @@ -{ lib, rustPlatform, yabridge }: +{ lib +, rustPlatform +, yabridge +, makeWrapper +, wine +}: rustPlatform.buildRustPackage rec { pname = "yabridgectl"; @@ -17,6 +22,13 @@ rustPlatform.buildRustPackage rec { patchFlags = [ "-p3" ]; + nativeBuildInputs = [ makeWrapper ]; + + postFixup = '' + wrapProgram "$out/bin/yabridgectl" \ + --prefix PATH : ${lib.makeBinPath [ wine ]} + ''; + meta = with lib; { description = "A small, optional utility to help set up and update yabridge for several directories at once"; homepage = "https://github.com/robbert-vdh/yabridge/tree/master/tools/yabridgectl"; diff --git a/pkgs/tools/graphics/agi/default.nix b/pkgs/tools/graphics/agi/default.nix index 5fb1881eff9..4cab99d69fa 100644 --- a/pkgs/tools/graphics/agi/default.nix +++ b/pkgs/tools/graphics/agi/default.nix @@ -14,11 +14,11 @@ stdenv.mkDerivation rec { pname = "agi"; - version = "1.1.0-dev-20210423"; + version = "1.1.0-dev-20210430"; src = fetchzip { url = "https://github.com/google/agi-dev-releases/releases/download/v${version}/agi-${version}-linux.zip"; - sha256 = "sha256-49ZKqG+CiQkdoBMLdYrN5fMnJH5TtXdUknQLQB2UG04="; + sha256 = "sha256-Sb2N3GPS+A55O39/kqua7M18O1F76zz6sNFghSFRBmk="; }; nativeBuildInputs = [ diff --git a/pkgs/tools/graphics/mangohud/combined.nix b/pkgs/tools/graphics/mangohud/combined.nix new file mode 100644 index 00000000000..4947cd66e3a --- /dev/null +++ b/pkgs/tools/graphics/mangohud/combined.nix @@ -0,0 +1,14 @@ +{ stdenv, pkgs, lib +, libXNVCtrl +}: +let + mangohud_64 = pkgs.callPackage ./default.nix { inherit libXNVCtrl; }; + mangohud_32 = pkgs.pkgsi686Linux.callPackage ./default.nix { inherit libXNVCtrl; }; +in +pkgs.buildEnv rec { + name = "mangohud-${mangohud_64.version}"; + + paths = [ mangohud_32 ] ++ lib.optionals stdenv.is64bit [ mangohud_64 ]; + + meta = mangohud_64.meta; +} diff --git a/pkgs/tools/graphics/mangohud/default.nix b/pkgs/tools/graphics/mangohud/default.nix new file mode 100644 index 00000000000..26260af50fe --- /dev/null +++ b/pkgs/tools/graphics/mangohud/default.nix @@ -0,0 +1,79 @@ +{ stdenv +, lib +, fetchFromGitHub +, fetchpatch +, meson +, ninja +, pkg-config +, python3Packages +, dbus +, glslang +, libglvnd +, libXNVCtrl +, mesa +, vulkan-headers +, vulkan-loader +, xorg +}: + + +stdenv.mkDerivation rec { + pname = "mangohud${lib.optionalString stdenv.is32bit "_32"}"; + version = "0.4.1"; + + src = fetchFromGitHub { + owner = "flightlessmango"; + repo = "MangoHud"; + rev = "v${version}"; + sha256 = "04v2ps8n15ph2smjgnssax5hq88bszw2kbcff37cnd5c8yysvfi6"; + fetchSubmodules = true; + }; + + patches = [ + (fetchpatch { + # FIXME obsolete in >=0.5.0 + url = "https://patch-diff.githubusercontent.com/raw/flightlessmango/MangoHud/pull/208.patch"; + sha256 = "1i6x6sr4az1zv0p6vpw99n947c7awgbbv087fghjlczhry676nmh"; + }) + ]; + + mesonFlags = [ + "-Dappend_libdir_mangohud=false" + "-Duse_system_vulkan=enabled" + "--libdir=lib${lib.optionalString stdenv.is32bit "32"}" + ]; + + buildInputs = [ + dbus + glslang + libglvnd + libXNVCtrl + mesa + python3Packages.Mako + vulkan-headers + vulkan-loader + xorg.libX11 + ]; + + nativeBuildInputs = [ + meson + ninja + pkg-config + python3Packages.Mako + python3Packages.python + ]; + + preConfigure = '' + mkdir -p "$out/share/vulkan/" + ln -sf "${vulkan-headers}/share/vulkan/registry/" $out/share/vulkan/ + ln -sf "${vulkan-headers}/include" $out + ''; + + meta = with lib; { + description = "A Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more"; + homepage = "https://github.com/flightlessmango/MangoHud"; + platforms = platforms.linux; + license = licenses.mit; + maintainers = with maintainers; [ zeratax ]; + }; +} diff --git a/pkgs/tools/graphics/pngquant/default.nix b/pkgs/tools/graphics/pngquant/default.nix index b3b1773faf1..7463e2a45e0 100644 --- a/pkgs/tools/graphics/pngquant/default.nix +++ b/pkgs/tools/graphics/pngquant/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "pngquant"; - version = "2.12.5"; + version = "2.14.1"; src = fetchFromGitHub { - owner = "pornel"; + owner = "kornelski"; repo = "pngquant"; rev = version; - sha256 = "0sq398iv5cacblz6pb4j2hn16cnszsbkahikdpfq84rb9bj0ya40"; + sha256 = "054hi33qp3jc7hv0141wi8drwdg24v5zfp8znwjmz4mcdls8vxbb"; fetchSubmodules = true; }; @@ -17,11 +17,14 @@ stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config ]; buildInputs = [ libpng zlib lcms2 ]; + doCheck = true; + meta = with lib; { homepage = "https://pngquant.org/"; description = "A tool to convert 24/32-bit RGBA PNGs to 8-bit palette with alpha channel preserved"; + changelog = "https://github.com/kornelski/pngquant/raw/${version}/CHANGELOG"; platforms = platforms.unix; - license = licenses.gpl3; + license = with licenses; [ gpl3Plus hpnd bsd2 ]; maintainers = [ maintainers.volth ]; }; } diff --git a/pkgs/tools/graphics/quirc/default.nix b/pkgs/tools/graphics/quirc/default.nix index 8ca8ecf2c89..dec2a1020c8 100644 --- a/pkgs/tools/graphics/quirc/default.nix +++ b/pkgs/tools/graphics/quirc/default.nix @@ -1,36 +1,40 @@ -{lib, stdenv, fetchgit, SDL_gfx, SDL, libjpeg, libpng, pkg-config}: -let - s = - rec { - date = "2016-08-16"; - version = "git-${date}"; - baseName = "quirc"; - name = "${baseName}-${version}"; - url = "https://github.com/dlbeer/quirc"; - rev = "5b262480091d5f84a67a4a56c728fc8b39844339"; - sha256 = "1w5qvjafn14s6jjs7kiwsqirlsqbgv0p152hrsq463pm34hp0lzy"; - }; -in +{ lib, stdenv, fetchFromGitHub +, SDL_gfx, SDL, libjpeg, libpng, pkg-config +}: + stdenv.mkDerivation { - inherit (s) name version; - nativeBuildInputs = [ pkg-config ]; - buildInputs = [ - SDL SDL_gfx libjpeg libpng - ]; - src = fetchgit { - inherit (s) url sha256 rev; + pname = "quirc"; + version = "2020-04-16"; + + src = fetchFromGitHub { + owner = "dlbeer"; + repo = "quirc"; + rev = "ed455904f35270888bc902b9e8c0c9b3184a8302"; + sha256 = "1kqqvcnxcaxdgls9sibw5pqjz3g1gys2v64i4kfqp8wfcgd9771q"; }; - NIX_CFLAGS_COMPILE="-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL"; + + nativeBuildInputs = [ pkg-config ]; + buildInputs = [ SDL SDL_gfx libjpeg libpng ]; + + makeFlags = [ "PREFIX=$(out)" ]; + NIX_CFLAGS_COMPILE = "-I${SDL.dev}/include/SDL -I${SDL_gfx}/include/SDL"; + configurePhase = '' + runHook preConfigure + + # don't try to change ownership sed -e 's/-[og] root//g' -i Makefile + + runHook postConfigure ''; preInstall = '' mkdir -p "$out"/{bin,lib,include} - find . -maxdepth 1 -type f -perm -0100 -exec cp '{}' "$out"/bin ';' + + # install all binaries + find -maxdepth 1 -type f -executable ! -name '*.so.*' | xargs cp -t "$out"/bin ''; - makeFlags = [ "PREFIX=$(out)" ]; + meta = { - inherit (s) version; description = "A small QR code decoding library"; license = lib.licenses.isc; maintainers = [lib.maintainers.raskin]; diff --git a/pkgs/tools/graphics/xcolor/default.nix b/pkgs/tools/graphics/xcolor/default.nix new file mode 100644 index 00000000000..f19a80357f3 --- /dev/null +++ b/pkgs/tools/graphics/xcolor/default.nix @@ -0,0 +1,26 @@ +{ lib, rustPlatform, fetchFromGitHub, pkg-config, libX11, libXcursor, libxcb, python3 }: + +rustPlatform.buildRustPackage rec { + pname = "xcolor"; + version = "unstable-2021-02-02"; + + src = fetchFromGitHub { + owner = "Soft"; + repo = pname; + rev = "0e99e67cd37000bf563aa1e89faae796ec25f163"; + sha256 = "sha256-rHqK05dN5lrvDNbRCWGghI7KJwWzNCuRDEThEeMzmio="; + }; + + cargoSha256 = "sha256-lHOT/P1Sh1b53EkPIQM3l9Tozdqh60qlUDdjthj32jM="; + + nativeBuildInputs = [ pkg-config python3 ]; + + buildInputs = [ libX11 libXcursor libxcb ]; + + meta = with lib; { + description = "Lightweight color picker for X11"; + homepage = "https://github.com/Soft/xcolor"; + maintainers = with lib.maintainers; [ fortuneteller2k ]; + license = licenses.mit; + }; +} diff --git a/pkgs/tools/inputmethods/kime/default.nix b/pkgs/tools/inputmethods/kime/default.nix index 35ed99b5a42..33df3f53e67 100644 --- a/pkgs/tools/inputmethods/kime/default.nix +++ b/pkgs/tools/inputmethods/kime/default.nix @@ -16,18 +16,18 @@ let in stdenv.mkDerivation rec { pname = "kime"; - version = "2.5.2"; + version = "2.5.3"; src = fetchFromGitHub { owner = "Riey"; repo = pname; rev = "v${version}"; - sha256 = "10zd4yrqxzxf4nj3b5bsblcmlbqssxqq9pac0misa1g61jdbszj8"; + sha256 = "1kjw22hy2x90dc7xfm252v1pdr9x13mpm92rcgfy8zbkiqq242bl"; }; cargoDeps = rustPlatform.fetchCargoTarball { inherit src; - sha256 = "1bimi7020m7v287bh7via7zm9m7y13d13kqpd772xmpdbwrj8nrl"; + sha256 = "05kb9vnifaw01qw5cmdh4wzcf50szb0y00085wx41m8h4f28hfbk"; }; # Replace autostart path diff --git a/pkgs/tools/misc/broot/default.nix b/pkgs/tools/misc/broot/default.nix index b89dbb2b907..0fa7841074a 100644 --- a/pkgs/tools/misc/broot/default.nix +++ b/pkgs/tools/misc/broot/default.nix @@ -4,7 +4,6 @@ , fetchCrate , installShellFiles , makeWrapper -, coreutils , libiconv , zlib , Security @@ -12,14 +11,14 @@ rustPlatform.buildRustPackage rec { pname = "broot"; - version = "1.3.0"; + version = "1.3.1"; src = fetchCrate { inherit pname version; - sha256 = "sha256-2FF/oB341PPGfSlXpLEs4mswjVk+3ty/jNsVJKu+fhs="; + sha256 = "sha256-Iz9pXvgPIGUnfbnvk5kYAqlrMlz3I2kLszPe8GwwHVk="; }; - cargoHash = "sha256-+UT9cz8OPA1jpFv7HafabxJ3NmLl57K1ODydfcV1FUM"; + cargoHash = "sha256-eECAaTUgqasuDhLSk8p/CWSQmV8yV30UoMy3GZCRbGE="; nativeBuildInputs = [ makeWrapper diff --git a/pkgs/tools/misc/fluent-bit/default.nix b/pkgs/tools/misc/fluent-bit/default.nix index 8b751237f6e..d51676f4a5a 100644 --- a/pkgs/tools/misc/fluent-bit/default.nix +++ b/pkgs/tools/misc/fluent-bit/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "fluent-bit"; - version = "1.7.3"; + version = "1.7.4"; src = fetchFromGitHub { owner = "fluent"; repo = "fluent-bit"; rev = "v${version}"; - sha256 = "sha256-a3AVem+VbYKUsxAzGNu/VPqDiqG99bmj9p1/iiG1ZFw="; + sha256 = "sha256-xOrEPZ+AUihVVaxrqCCeO6n3XFkVahCzHOuX947LRFs="; }; nativeBuildInputs = [ cmake flex bison ]; diff --git a/pkgs/tools/misc/grub/2.0x.nix b/pkgs/tools/misc/grub/2.0x.nix index 29ce5b23faa..20f25187285 100644 --- a/pkgs/tools/misc/grub/2.0x.nix +++ b/pkgs/tools/misc/grub/2.0x.nix @@ -1,6 +1,6 @@ { lib, stdenv, fetchgit, flex, bison, python3, autoconf, automake, gnulib, libtool , gettext, ncurses, libusb-compat-0_1, freetype, qemu, lvm2, unifont, pkg-config -, pkgsBuildBuild +, buildPackages , nixosTests , fuse # only needed for grub-mount , runtimeShell @@ -64,7 +64,8 @@ stdenv.mkDerivation rec { echo 'echo "Compile grub2 with { kbdcompSupport = true; } to enable support for this command."' >> util/grub-kbdcomp.in ''; - nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext ]; + depsBuildBuild = [ buildPackages.stdenv.cc ]; + nativeBuildInputs = [ bison flex python3 pkg-config autoconf automake gettext freetype ]; buildInputs = [ ncurses libusb-compat-0_1 freetype lvm2 fuse libtool ] ++ optional doCheck qemu ++ optional zfsSupport zfs; @@ -105,9 +106,18 @@ stdenv.mkDerivation rec { configureFlags = [ "--enable-grub-mount" # dep of os-prober - "BUILD_CC=${pkgsBuildBuild.stdenv.cc}/bin/cc" - ] - ++ optional zfsSupport "--enable-libzfs" + ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ + # grub doesn't do cross-compilation as usual and tries to use unprefixed + # tools to target the host. Provide toolchain information explicitly for + # cross builds. + # + # Ref: # https://github.com/buildroot/buildroot/blob/master/boot/grub2/grub2.mk#L108 + "TARGET_CC=${stdenv.cc.targetPrefix}cc" + "TARGET_NM=${stdenv.cc.targetPrefix}nm" + "TARGET_OBJCOPY=${stdenv.cc.targetPrefix}objcopy" + "TARGET_RANLIB=${stdenv.cc.targetPrefix}ranlib" + "TARGET_STRIP=${stdenv.cc.targetPrefix}strip" + ] ++ optional zfsSupport "--enable-libzfs" ++ optionals efiSupport [ "--with-platform=efi" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}" "--program-prefix=" ] ++ optionals xenSupport [ "--with-platform=xen" "--target=${efiSystemsBuild.${stdenv.hostPlatform.system}.target}"]; diff --git a/pkgs/tools/misc/handlr/default.nix b/pkgs/tools/misc/handlr/default.nix index baa718c1b1f..c8143ea330a 100644 --- a/pkgs/tools/misc/handlr/default.nix +++ b/pkgs/tools/misc/handlr/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "handlr"; - version = "0.6.3"; + version = "0.6.4"; src = fetchFromGitHub { owner = "chmln"; repo = pname; rev = "v${version}"; - sha256 = "sha256-OtU6sL2Bbbec0gHxk3bl5Inn+ZmNYiHgpSF0gjDuRSg="; + sha256 = "sha256-UYcJtBwbUDqDiRoj5PmO+urURfd7S7fSx2XhQRBrKTE="; }; - cargoSha256 = "sha256-bX7QWV1R+pLxvghpaV10LeROv4wBVfZhHyrPCIgqETA="; + cargoSha256 = "sha256-xDQV8wVlzItz0lzR1nVRPVsg7nSf/khUhevDlGgSO3g="; nativeBuildInputs = [ shared-mime-info ]; diff --git a/pkgs/tools/misc/krapslog/default.nix b/pkgs/tools/misc/krapslog/default.nix index 4574d6c3534..ba6f92cc0fc 100644 --- a/pkgs/tools/misc/krapslog/default.nix +++ b/pkgs/tools/misc/krapslog/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "krapslog"; - version = "0.1.2"; + version = "0.1.3"; src = fetchFromGitHub { owner = "acj"; repo = "krapslog-rs"; rev = version; - sha256 = "1yllvy3z3115aqxhnjn9rq2z67rgf2w53naygnl6ixpjhpafcr3k"; + sha256 = "sha256-BaR72djkvaMmdBqbykezLkY81Y7iajhNPcFGYq/qv7Y="; }; - cargoSha256 = "05gvl6yiyibcdscdf9a6k28xizdr5kfqbhynfbjny2hpqqjmnxzl"; + cargoSha256 = "sha256-rcLsqMegCos+v0OkdRvH9xoopE7R/njEUVteMY/6mj8="; meta = with lib; { description = "Visualize a log file with sparklines"; diff --git a/pkgs/tools/misc/librespeed-cli/default.nix b/pkgs/tools/misc/librespeed-cli/default.nix index d2396f0086c..b1ab29d8acb 100644 --- a/pkgs/tools/misc/librespeed-cli/default.nix +++ b/pkgs/tools/misc/librespeed-cli/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "librespeed-cli"; - version = "1.0.7"; + version = "1.0.8"; src = fetchFromGitHub { owner = "librespeed"; repo = "speedtest-cli"; rev = "v${version}"; - sha256 = "03bhxx33fy1cgp83anm51fm8v079v0az0d0p785dz98jg14vzibl"; + sha256 = "sha256-cbLuAOAGWmYj6xR2AjpwvRXrP3SXfHhjUp5MVLqC0WE="; }; - vendorSha256 = "1kccxmmzbkzbrxypcrz0j1zz51c0q1d5hh25lcpfbkm3498mj02c"; + vendorSha256 = "sha256-psZyyySpY06J+ji+9uHUtX7Ks1hzZC3zINszYP75NfQ="; # Tests have additonal requirements doCheck = false; diff --git a/pkgs/tools/misc/macchina/default.nix b/pkgs/tools/misc/macchina/default.nix index d975e02d5ac..42a83f91df6 100644 --- a/pkgs/tools/misc/macchina/default.nix +++ b/pkgs/tools/misc/macchina/default.nix @@ -2,16 +2,16 @@ rustPlatform.buildRustPackage rec { pname = "macchina"; - version = "0.6.9"; + version = "0.7.2"; src = fetchFromGitHub { owner = "Macchina-CLI"; repo = pname; rev = "v${version}"; - sha256 = "sha256-y23gpYDnYoiTJcNyWKslVenPTXcCrOvxq+0N9PjQN3g="; + sha256 = "sha256-ICiU0emo5lEs6996TwkauuBWb2+Yy6lL+/x7zQgO470="; }; - cargoSha256 = "sha256-jfLj8kLBG6AeeYo421JCl1bMqWwOGiwQgv7AEomtFcY="; + cargoSha256 = "sha256-OfOh0YXeLT/kBuR9SOV7pHa8Z4b6+JvtVwqqwd1hCJY="; nativeBuildInputs = [ installShellFiles ]; diff --git a/pkgs/tools/misc/neofetch/default.nix b/pkgs/tools/misc/neofetch/default.nix index d9287003084..68cebca4bc3 100644 --- a/pkgs/tools/misc/neofetch/default.nix +++ b/pkgs/tools/misc/neofetch/default.nix @@ -34,5 +34,6 @@ stdenvNoCC.mkDerivation rec { license = licenses.mit; platforms = platforms.all; maintainers = with maintainers; [ alibabzo konimex ]; + mainProgram = "neofetch"; }; } diff --git a/pkgs/tools/misc/piston-cli/default.nix b/pkgs/tools/misc/piston-cli/default.nix index 73e3ca8d689..97506c709df 100644 --- a/pkgs/tools/misc/piston-cli/default.nix +++ b/pkgs/tools/misc/piston-cli/default.nix @@ -2,11 +2,11 @@ python3Packages.buildPythonApplication rec { pname = "piston-cli"; - version = "1.2.2"; + version = "1.3.0"; src = python3Packages.fetchPypi { inherit pname version; - sha256 = "hhOistr5lHF6rIuMpudKwSuBQhaQDzTdelAOCjyVQZk="; + sha256 = "XzKXHZHYZRT3t4ZonM+Ngx1jIT1nmz4k34VSw29GFoM="; }; propagatedBuildInputs = with python3Packages; [ rich prompt_toolkit requests pygments ]; diff --git a/pkgs/tools/misc/rename/default.nix b/pkgs/tools/misc/rename/default.nix index a9f42d1139e..a8b5f4a54ac 100644 --- a/pkgs/tools/misc/rename/default.nix +++ b/pkgs/tools/misc/rename/default.nix @@ -1,19 +1,19 @@ { lib, fetchFromGitHub, perlPackages }: -perlPackages.buildPerlPackage { +perlPackages.buildPerlPackage rec { pname = "rename"; - version = "1.9"; + version = "1.11"; outputs = [ "out" ]; src = fetchFromGitHub { owner = "pstray"; repo = "rename"; - rev = "d46f1d0ced25dc5849acb5d5974a3e2e9d97d536"; - sha256 = "0qahs1cqfaci2hdf1xncrz4k0z5skkfr43apnm3kybs7za33apzw"; + rev = "v${version}"; + sha256 = "SK6wS3IxjCftuDiiZU27TFnn9GVd137zmzvGH88cNLI="; }; meta = with lib; { description = "Rename files according to a Perl rewrite expression"; homepage = "https://github.com/pstray/rename"; - maintainers = with maintainers; [ mkg ]; + maintainers = with maintainers; [ mkg cyplo ]; license = with licenses; [ gpl1Plus ]; }; } diff --git a/pkgs/tools/misc/starship/default.nix b/pkgs/tools/misc/starship/default.nix index 1e3eae78701..40913193163 100644 --- a/pkgs/tools/misc/starship/default.nix +++ b/pkgs/tools/misc/starship/default.nix @@ -11,13 +11,13 @@ rustPlatform.buildRustPackage rec { pname = "starship"; - version = "0.52.1"; + version = "0.53.0"; src = fetchFromGitHub { owner = "starship"; repo = pname; rev = "v${version}"; - sha256 = "sha256-BX+NUF7mgZyrloj3h9YcG2r6ZZWO20hXQYbBvaK34JQ="; + sha256 = "sha256-g4w14fktJB8TItgm3nSgG+lpdXdNTpX52J+FsIbU+YY="; }; nativeBuildInputs = [ installShellFiles ] ++ lib.optionals stdenv.isLinux [ pkg-config ]; @@ -32,7 +32,7 @@ rustPlatform.buildRustPackage rec { done ''; - cargoSha256 = "sha256-8xqbPkdIVfAkeG1WZFq56N0rcF+uh2FeMKzz4FgMFYs="; + cargoSha256 = "sha256-9wpr1gs9EehmFzCW2kKDx+LKoDUC27fmhjpcH/fIcyY="; preCheck = '' HOME=$TMPDIR diff --git a/pkgs/tools/misc/ytfzf/default.nix b/pkgs/tools/misc/ytfzf/default.nix index ba1658f3d1d..8c93d02c359 100644 --- a/pkgs/tools/misc/ytfzf/default.nix +++ b/pkgs/tools/misc/ytfzf/default.nix @@ -16,13 +16,13 @@ stdenv.mkDerivation rec { pname = "ytfzf"; - version = "1.1.4"; + version = "1.1.5"; src = fetchFromGitHub { owner = "pystardust"; repo = "ytfzf"; rev = "v${version}"; - sha256 = "sha256-zRzd+rZxT5IJoFJl9sutTdQC4eMDUCBld5bTGfQWtco="; + sha256 = "sha256-NkJjh/Ys0Ypm8NTy/ZrQ4hIAjP5VGrpU73wjAMsZnAc="; }; patches = [ diff --git a/pkgs/tools/misc/zoxide/default.nix b/pkgs/tools/misc/zoxide/default.nix index a454a73384b..30b9c496900 100644 --- a/pkgs/tools/misc/zoxide/default.nix +++ b/pkgs/tools/misc/zoxide/default.nix @@ -4,20 +4,23 @@ , rustPlatform , withFzf ? true , fzf +, installShellFiles , libiconv }: rustPlatform.buildRustPackage rec { pname = "zoxide"; - version = "0.6.0"; + version = "0.7.0"; src = fetchFromGitHub { owner = "ajeetdsouza"; repo = "zoxide"; rev = "v${version}"; - sha256 = "ZeGFsVBpEhKi4EIhpQlCuriFzmHAgLYw3qE/zqfyqgU="; + sha256 = "sha256-yunKyCjJ/vWUcsodweLmxv0+QJQI2i5u5VIzp2U+VyU="; }; + nativeBuildInputs = [ installShellFiles ]; + buildInputs = lib.optionals stdenv.isDarwin [ libiconv ]; postPatch = lib.optionalString withFzf '' @@ -25,11 +28,16 @@ rustPlatform.buildRustPackage rec { --replace '"fzf"' '"${fzf}/bin/fzf"' ''; - cargoSha256 = "Hzn01+OhdBrZD1woXN4Pwf/S72Deln1gyyBOWyDC6iM="; + cargoSha256 = "sha256-eoal6z4wX1pNdAJfdamJgOSFCvGWdbVlq1X+vD9lraE="; + + postInstall = '' + installManPage man/* + ''; meta = with lib; { description = "A fast cd command that learns your habits"; homepage = "https://github.com/ajeetdsouza/zoxide"; + changelog = "https://github.com/ajeetdsouza/zoxide/raw/v${version}/CHANGELOG.md"; license = with licenses; [ mit ]; maintainers = with maintainers; [ ysndr cole-h SuperSandro2000 ]; }; diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix index 5c7b26ced05..47894c1a532 100644 --- a/pkgs/tools/networking/babeld/default.nix +++ b/pkgs/tools/networking/babeld/default.nix @@ -1,33 +1,25 @@ -{ lib, stdenv, fetchurl, fetchpatch, nixosTests }: +{ lib, stdenv, fetchurl, nixosTests }: stdenv.mkDerivation rec { pname = "babeld"; - version = "1.9.2"; + version = "1.10"; src = fetchurl { - url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${pname}-${version}.tar.gz"; - sha256 = "01vzhrspnm4sy9ggaz9n3bfl5hy3qlynr218j3mdcddzm3h00kqm"; + url = "https://www.irif.fr/~jch/software/files/${pname}-${version}.tar.gz"; + sha256 = "1sld5bbig2pkcr4zrdpvfzifc6a3lc8i8kdzk5ryjh166844mxd5"; }; - patches = [ - (fetchpatch { - # Skip kernel_setup_interface when `skip-kernel-setup` is enabled. - url = "https://github.com/jech/babeld/commit/f9698a5616842467ad08a5f9ed3d6fcfa2dd2898.patch"; - sha256 = "00kj2jxsfq0pjk5wrkslyvkww57makxlwa4fd82g7g9hrgahpqwr"; - }) - ]; - preBuild = '' makeFlags="PREFIX=$out ETCDIR=$out/etc" ''; passthru.tests.babeld = nixosTests.babeld; - meta = { - homepage = "http://www.pps.univ-paris-diderot.fr/~jch/software/babel/"; + meta = with lib; { + homepage = "http://www.irif.fr/~jch/software/babel/"; description = "Loop-avoiding distance-vector routing protocol"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ fpletz ]; - platforms = with lib.platforms; linux; + license = licenses.mit; + maintainers = with maintainers; [ fpletz hexa ]; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/networking/grpcurl/default.nix b/pkgs/tools/networking/grpcurl/default.nix index 3f9d31b508b..ec181c17e9e 100644 --- a/pkgs/tools/networking/grpcurl/default.nix +++ b/pkgs/tools/networking/grpcurl/default.nix @@ -2,18 +2,18 @@ buildGoModule rec { pname = "grpcurl"; - version = "1.8.0"; + version = "1.8.1"; src = fetchFromGitHub { owner = "fullstorydev"; repo = "grpcurl"; rev = "v${version}"; - sha256 = "sha256-ZrL23eqA56BApwUtBwL5nSAd2LZbQxthyiFBnkJ5+Zg="; + sha256 = "sha256-BxmoIGhuAt/uhHLNdMiSrNVWAoxAAMKPJ/NsXjf2ynk="; }; subPackages = [ "cmd/grpcurl" ]; - vendorSha256 = "sha256-Tx00zRlzxCgyYdcYjzCxnFe8HyiitaKLcXJjYWhYSic="; + vendorSha256 = "sha256-EnstvJk2kZ1Ft5xY1dO14wnmT//2K72OnDMZqeaOeQI="; buildFlagsArray = [ "-ldflags=-s -w -X main.version=${version}" ]; diff --git a/pkgs/tools/networking/lldpd/default.nix b/pkgs/tools/networking/lldpd/default.nix index f34b43f3c32..f2641235a19 100644 --- a/pkgs/tools/networking/lldpd/default.nix +++ b/pkgs/tools/networking/lldpd/default.nix @@ -4,11 +4,11 @@ stdenv.mkDerivation rec { pname = "lldpd"; - version = "1.0.8"; + version = "1.0.10"; src = fetchurl { url = "https://media.luffy.cx/files/lldpd/${pname}-${version}.tar.gz"; - sha256 = "sha256-mNIA524w9iYsSkSTFIwYQIJ4mDKRRqV6NPjw+SjKPe8="; + sha256 = "sha256-RFstdgN+8+vQPUDh/B8p7wgQL6o6Cf6Ea5Unl8i8dyI="; }; configureFlags = [ diff --git a/pkgs/tools/nix/nix-output-monitor/default.nix b/pkgs/tools/nix/nix-output-monitor/default.nix index 46020233ff1..a9c83305df3 100644 --- a/pkgs/tools/nix/nix-output-monitor/default.nix +++ b/pkgs/tools/nix/nix-output-monitor/default.nix @@ -5,11 +5,11 @@ }: mkDerivation rec { pname = "nix-output-monitor"; - version = "1.0.3.0"; + version = "1.0.3.1"; src = fetchFromGitHub { owner = "maralorn"; repo = "nix-output-monitor"; - sha256 = "1gidg03cwz8ss370bgz4a2g9ldj1lap5ws7dmfg6vigpx8mxigpb"; + sha256 = "1kkf6cqq8aba8vmfcww30ah9j44bwakanyfdb6595vmaq5hrsq92"; rev = "v${version}"; }; isLibrary = true; diff --git a/pkgs/tools/package-management/cargo-deb/default.nix b/pkgs/tools/package-management/cargo-deb/default.nix index f171a150045..6a71189314d 100644 --- a/pkgs/tools/package-management/cargo-deb/default.nix +++ b/pkgs/tools/package-management/cargo-deb/default.nix @@ -8,18 +8,18 @@ rustPlatform.buildRustPackage rec { pname = "cargo-deb"; - version = "1.29.1"; + version = "1.29.2"; src = fetchFromGitHub { owner = "mmstick"; repo = pname; rev = "v${version}"; - sha256 = "sha256-oWivGy2azF9zpeZ0UAi7Bxm4iXFWAjcBG0pN7qtkSU8="; + sha256 = "sha256-2eOWhxKZ+YPj5oKTe5g7PyeakiSNnPz27dK150GAcVQ="; }; buildInputs = lib.optionals stdenv.isDarwin [ Security ]; - cargoSha256 = "0j9frvcmy9hydw73v0ffr0bjvq2ykylnpmiw700z344djpaaa08y"; + cargoSha256 = "sha256-QmchuY+4R7w0zMOdReH1m8idl9RI1hHE9VtbwT2K9YM="; preCheck = '' substituteInPlace tests/command.rs \ diff --git a/pkgs/tools/package-management/nix/default.nix b/pkgs/tools/package-management/nix/default.nix index 7eda5ae6f35..ac61a64180d 100644 --- a/pkgs/tools/package-management/nix/default.nix +++ b/pkgs/tools/package-management/nix/default.nix @@ -215,13 +215,13 @@ in rec { nixUnstable = lib.lowPrio (callPackage common rec { pname = "nix"; version = "2.4${suffix}"; - suffix = "pre20210326_dd77f71"; + suffix = "pre20210503_6d2553a"; src = fetchFromGitHub { owner = "NixOS"; repo = "nix"; - rev = "dd77f71afe6733e9790dd001125c423cb648b7ce"; - sha256 = "rVHzrsCtdiWjyLuHnDplG2mx+7dw5VyzZ9ReXxuCvHY="; + rev = "6d2553ae1496288554e871c530836428f405fd67"; + sha256 = "sha256-YeSeyOKhBAXHlkzo4mwYr8QIjIP9AgdpJ7YdhqOO2CA="; }; inherit storeDir stateDir confDir boehmgc; diff --git a/pkgs/tools/security/clevis/default.nix b/pkgs/tools/security/clevis/default.nix index 7f26dcabb7d..753fd8a6395 100644 --- a/pkgs/tools/security/clevis/default.nix +++ b/pkgs/tools/security/clevis/default.nix @@ -1,20 +1,34 @@ { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, asciidoc -, jansson, jose, cryptsetup, curl, libpwquality, luksmeta +, makeWrapper, jansson, jose, cryptsetup, curl, libpwquality, luksmeta +, coreutils, tpm2-tools }: stdenv.mkDerivation rec { pname = "clevis"; - version = "16"; + version = "18"; src = fetchFromGitHub { owner = "latchset"; repo = pname; rev = "v${version}"; - sha256 = "sha256-DWrxk+Nb2ptF5nCaXYvRY8hAFa/n+6OGdKWO+Sq61yk="; + sha256 = "sha256-m1UhyjD5ydSgCTBu6sECLlxFx0rnQxFnBA7frbdUqU8="; }; - nativeBuildInputs = [ meson ninja pkg-config asciidoc ]; - buildInputs = [ jansson jose cryptsetup curl libpwquality luksmeta ]; + postPatch = '' + for f in $(find src/ -type f); do + grep -q "/bin/cat" "$f" && substituteInPlace "$f" \ + --replace '/bin/cat' '${coreutils}/bin/cat' || true + done + ''; + + postInstall = '' + # We wrap the main clevis binary entrypoint but not the sub-binaries. + wrapProgram $out/bin/clevis \ + --prefix PATH ':' "${tpm2-tools}/bin:${jose}/bin:${placeholder "out"}/bin" + ''; + + nativeBuildInputs = [ meson ninja pkg-config asciidoc makeWrapper ]; + buildInputs = [ jansson jose cryptsetup curl libpwquality luksmeta tpm2-tools ]; outputs = [ "out" "man" ]; diff --git a/pkgs/tools/security/doppler/default.nix b/pkgs/tools/security/doppler/default.nix index b5fa405e93e..0f2dee26ffc 100644 --- a/pkgs/tools/security/doppler/default.nix +++ b/pkgs/tools/security/doppler/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "doppler"; - version = "3.23.2"; + version = "3.24.3"; src = fetchFromGitHub { owner = "dopplerhq"; repo = "cli"; rev = version; - sha256 = "sha256-qdBq1vjvvb55gyL4XuPDrPK58YLSSH5kLp1oP84vJsU="; + sha256 = "sha256-G7oyyvrn+19N0C0V5MBwls+dQNzHh+DJmMTmsln8rC4="; }; vendorSha256 = "sha256-UaR/xYGMI+C9aID85aPSfVzmTWXj4KcjfOJ6TTJ8KoY="; diff --git a/pkgs/tools/security/gopass/default.nix b/pkgs/tools/security/gopass/default.nix index be9fe521e9d..dea65ca7164 100644 --- a/pkgs/tools/security/gopass/default.nix +++ b/pkgs/tools/security/gopass/default.nix @@ -13,7 +13,7 @@ buildGoModule rec { pname = "gopass"; - version = "1.12.5"; + version = "1.12.6"; nativeBuildInputs = [ installShellFiles makeWrapper ]; @@ -21,10 +21,10 @@ buildGoModule rec { owner = "gopasspw"; repo = pname; rev = "v${version}"; - sha256 = "06qc68q9px2g19iz23nbc4ay5dwqhgh99d1jj5l2dhb3mgknh19n"; + sha256 = "17y9indpgqqx261bqvckfqq1q2zciahssaalaa5c5hb6bnw5ls52"; }; - vendorSha256 = "1jir1lb60p86fmk5sh92ywchqva59c31g1badlq9pjgd7jip5vnl"; + vendorSha256 = "106rn0bkvzf2fw21f6wpiya88ysj8sfc2zkkm47iqr23d2202i4b"; subPackages = [ "." ]; @@ -41,19 +41,18 @@ buildGoModule rec { ); postInstall = '' - HOME=$TMPDIR - for shell in bash fish zsh; do - $out/bin/gopass completion $shell > gopass.$shell - installShellCompletion gopass.$shell - done - go run helpers/man/main.go > gopass.1 installManPage gopass.1 + installShellCompletion --zsh --name _gopass zsh.completion + installShellCompletion --bash --name gopass.bash bash.completion + installShellCompletion --fish --name gopass.fish fish.completion '' + lib.optionalString passAlias '' ln -s $out/bin/gopass $out/bin/pass ''; postFixup = '' - wrapProgram $out/bin/gopass --prefix PATH : "${wrapperPath}" + wrapProgram $out/bin/gopass \ + --prefix PATH : "${wrapperPath}" \ + --set GOPASS_NO_REMINDER true ''; meta = with lib; { diff --git a/pkgs/tools/security/pass/extensions/import.nix b/pkgs/tools/security/pass/extensions/import.nix index be2492112c3..655bee41ba6 100644 --- a/pkgs/tools/security/pass/extensions/import.nix +++ b/pkgs/tools/security/pass/extensions/import.nix @@ -17,9 +17,14 @@ python3Packages.buildPythonApplication rec { sha256 = "sha256-nH2xAqWfMT+Brv3z9Aw6nbvYqArEZjpM28rKsRPihqA="; }; - # by default, tries to install scripts/pimport, which is a bash wrapper around "python -m pass_import ..." - # This is a better way to do the same, and takes advantage of the existing Nix python environments patches = [ + (fetchpatch { + name = "support-for-keepass-4.0.0.patch"; + url = "https://github.com/roddhjav/pass-import/commit/86cfb1bb13a271fefe1e70f24be18e15a83a04d8.patch"; + sha256 = "0mrlblqlmwl9gqs2id4rl4sivrcclsv6zyc6vjqi78kkqmnwzhxh"; + }) + # by default, tries to install scripts/pimport, which is a bash wrapper around "python -m pass_import ..." + # This is a better way to do the same, and takes advantage of the existing Nix python environments # from https://github.com/roddhjav/pass-import/pull/138 (fetchpatch { name = "pass-import-pr-138-pimport-entrypoint.patch"; diff --git a/pkgs/tools/security/prs/default.nix b/pkgs/tools/security/prs/default.nix index 42332e40cc3..6d97958ec78 100644 --- a/pkgs/tools/security/prs/default.nix +++ b/pkgs/tools/security/prs/default.nix @@ -13,16 +13,16 @@ rustPlatform.buildRustPackage rec { pname = "prs"; - version = "0.2.10"; + version = "0.2.11"; src = fetchFromGitLab { owner = "timvisee"; repo = "prs"; rev = "v${version}"; - sha256 = "sha256-czGyBdy4emw7bUV6Nn+k+fJm+JqR6o0TEEUuIbEsml4="; + sha256 = "sha256-jBHe3ZeB+GS+Ds8c6ySwoyyJfqoCWKSgIObg+z1TNmU="; }; - cargoSha256 = "sha256-jnBYuk7uvnbvT2OQ35DJk6WIUSqJiZCvsmpSIxw9X1U="; + cargoSha256 = "sha256-dhQuzzML817cDIsYuZElHZfq55AdZ20xeXTNm1nJPqk="; postPatch = '' # The GPGME backend is recommended diff --git a/pkgs/tools/security/rage/default.nix b/pkgs/tools/security/rage/default.nix index d248fb19a27..99e61dc2358 100644 --- a/pkgs/tools/security/rage/default.nix +++ b/pkgs/tools/security/rage/default.nix @@ -1,24 +1,25 @@ { lib, stdenv, rustPlatform, fetchFromGitHub, installShellFiles -, Foundation, Security }: +, Foundation, Security, libiconv }: rustPlatform.buildRustPackage rec { pname = "rage"; - version = "0.5.1"; + version = "0.6.0"; src = fetchFromGitHub { owner = "str4d"; repo = pname; rev = "v${version}"; - sha256 = "sha256-oYCARqG5YwKO0b73aEMLr/xzXl6xBEMCvE1HMCtMq20="; + sha256 = "1vag448zpjyplcjpf1ir81l8ip3yxm9vkrxffqr78zslb4k6hw2w"; }; - cargoSha256 = "sha256-vadXIdqfmol4thHIwpkQCn7HsXdxo0l+6CBm3QIJmeA="; + cargoSha256 = "06jfhq9vnkq5g5bw1zl2sxsih63yajcyk9zaizhzkdsbhydr4955"; nativeBuildInputs = [ installShellFiles ]; buildInputs = lib.optionals stdenv.isDarwin [ Foundation Security + libiconv ]; # cargo test has an x86-only dependency @@ -37,7 +38,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability"; homepage = "https://github.com/str4d/rage"; - changelog = "https://github.com/str4d/rage/releases/tag/v${version}"; + changelog = "https://github.com/str4d/rage/raw/v${version}/rage/CHANGELOG.md"; license = with licenses; [ asl20 mit ]; # either at your option maintainers = with maintainers; [ marsam ryantm ]; }; diff --git a/pkgs/tools/system/facter/default.nix b/pkgs/tools/system/facter/default.nix index 906ca618e46..d1d18809a5b 100644 --- a/pkgs/tools/system/facter/default.nix +++ b/pkgs/tools/system/facter/default.nix @@ -2,10 +2,10 @@ stdenv.mkDerivation rec { pname = "facter"; - version = "3.14.16"; + version = "3.14.17"; src = fetchFromGitHub { - sha256 = "sha256-VZIeyLJBlh5/r0EHinSiPiQyCNUBFBYjDZ6nTVnZBbE="; + sha256 = "sha256-RvsUt1DyN8Xr+Xtz84mbKlDwxLewgK6qklYVdQHu6q0="; rev = version; repo = pname; owner = "puppetlabs"; diff --git a/pkgs/tools/system/logcheck/default.nix b/pkgs/tools/system/logcheck/default.nix index 6fd66b40e15..dea241e11ac 100644 --- a/pkgs/tools/system/logcheck/default.nix +++ b/pkgs/tools/system/logcheck/default.nix @@ -2,12 +2,12 @@ stdenv.mkDerivation rec { pname = "logcheck"; - version = "1.3.22"; + version = "1.3.23"; _name = "logcheck_${version}"; src = fetchurl { url = "mirror://debian/pool/main/l/logcheck/${_name}.tar.xz"; - sha256 = "sha256-e7XeRNlFsexlVskK2OnLTmNV/ES2xWU+/+AElexV6E4="; + sha256 = "sha256-ohiLpUn/9EEsggdLJxiE/2bSXz/bKkGRboF85naFWyk="; }; prePatch = '' @@ -42,7 +42,7 @@ stdenv.mkDerivation rec { Logcheck was part of the Abacus Project of security tools, but this version has been rewritten. ''; homepage = "https://salsa.debian.org/debian/logcheck"; - license = licenses.gpl2; + license = licenses.gpl2Plus; maintainers = [ maintainers.bluescreen303 ]; }; } diff --git a/pkgs/tools/text/link-grammar/default.nix b/pkgs/tools/text/link-grammar/default.nix index b5cfdcbfc0c..3a6686dba5f 100644 --- a/pkgs/tools/text/link-grammar/default.nix +++ b/pkgs/tools/text/link-grammar/default.nix @@ -1,20 +1,36 @@ -{ lib, stdenv, fetchurl, pkg-config, python3, sqlite, libedit, zlib, runCommand, dieHook }: +{ lib +, stdenv +, fetchurl +, pkg-config +, python3 +, sqlite +, libedit +, runCommand +, dieHook +}: let link-grammar = stdenv.mkDerivation rec { - version = "5.8.1"; pname = "link-grammar"; + version = "5.9.1"; outputs = [ "bin" "out" "dev" "man" ]; src = fetchurl { url = "http://www.abisource.com/downloads/${pname}/${version}/${pname}-${version}.tar.gz"; - sha256 = "sha256-EcT/VR+lFpJX2sxXUIDGOwdceQ7awpmEqUZBoJk7UFs="; + sha256 = "sha256-4D/rqoIGlvR+q7Az8E1xPYSQQMJMRVeRM9HQIbjssLo="; }; - nativeBuildInputs = [ pkg-config python3 ]; - buildInputs = [ sqlite libedit zlib ]; + nativeBuildInputs = [ + pkg-config + python3 + ]; + + buildInputs = [ + sqlite + libedit + ]; configureFlags = [ "--disable-java-bindings" diff --git a/pkgs/tools/text/ripgrep/default.nix b/pkgs/tools/text/ripgrep/default.nix index 6417fb0f93b..61c24ae39e4 100644 --- a/pkgs/tools/text/ripgrep/default.nix +++ b/pkgs/tools/text/ripgrep/default.nix @@ -6,7 +6,7 @@ , pkg-config , Security , withPCRE2 ? true -, pcre2 ? null +, pcre2 }: rustPlatform.buildRustPackage rec { @@ -26,8 +26,8 @@ rustPlatform.buildRustPackage rec { nativeBuildInputs = [ asciidoctor installShellFiles ] ++ lib.optional withPCRE2 pkg-config; - buildInputs = (lib.optional withPCRE2 pcre2) - ++ (lib.optional stdenv.isDarwin Security); + buildInputs = lib.optional withPCRE2 pcre2 + ++ lib.optional stdenv.isDarwin Security; preFixup = '' installManPage $releaseDir/build/ripgrep-*/out/rg.1 diff --git a/pkgs/tools/typesetting/tex/texlive/bin.nix b/pkgs/tools/typesetting/tex/texlive/bin.nix index fb9b748b5d0..1c3d5929636 100644 --- a/pkgs/tools/typesetting/tex/texlive/bin.nix +++ b/pkgs/tools/typesetting/tex/texlive/bin.nix @@ -3,7 +3,7 @@ , zlib, libiconv, libpng, libX11 , freetype, gd, libXaw, icu, ghostscript, libXpm, libXmu, libXext , perl, perlPackages, python3Packages, pkg-config -, poppler, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr +, libpaper, graphite2, zziplib, harfbuzz, potrace, gmp, mpfr , brotli, cairo, pixman, xorg, clisp, biber, woff2, xxHash , makeWrapper, shortenPerlShebang }: @@ -14,24 +14,22 @@ let withSystemLibs = map (libname: "--with-system-${libname}"); - year = "2020"; + year = "2021"; version = year; # keep names simple for now common = { src = fetchurl { urls = [ - "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0406-source.tar.xz" - "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0406-source.tar.xz" + "http://ftp.math.utah.edu/pub/tex/historic/systems/texlive/${year}/texlive-${year}0325-source.tar.xz" + "ftp://tug.ctan.org/pub/tex/historic/systems/texlive/${year}/texlive-${year}0325-source.tar.xz" ]; - sha256 = "0y4h4j2qg714srhvf1hvn165w7sanr1j2vzrsgc23kxvrc43sbz3"; + sha256 = "0jsq1p66l46k2qq0gbqmx25flj2nprsz4wrd1ybn286p11kdkvvs"; }; prePatch = '' for i in texk/kpathsea/mktex*; do sed -i '/^mydir=/d' "$i" done - cp -pv texk/web2c/pdftexdir/pdftoepdf{-poppler0.86.0,}.cc - cp -pv texk/web2c/pdftexdir/pdftosrc{-poppler0.83.0,}.cc ''; configureFlags = [ @@ -43,9 +41,8 @@ let ] ++ withSystemLibs [ # see "from TL tree" vs. "Using installed" in configure output - "zziplib" "xpdf" "poppler" "mpfr" "gmp" + "zziplib" "mpfr" "gmp" "pixman" "potrace" "gd" "freetype2" "libpng" "libpaper" "zlib" - # beware: xpdf means to use stuff from poppler :-/ ]; # clean broken links to stuff not built @@ -73,7 +70,7 @@ core = stdenv.mkDerivation rec { nativeBuildInputs = [ pkg-config ]; buildInputs = [ - /*teckit*/ zziplib poppler mpfr gmp + /*teckit*/ zziplib mpfr gmp pixman gd freetype libpng libpaper zlib perl ]; @@ -82,7 +79,7 @@ core = stdenv.mkDerivation rec { preConfigure = '' rm -r libs/{cairo,freetype2,gd,gmp,graphite2,harfbuzz,icu,libpaper,libpng} \ - libs/{lua53,luajit,mpfr,pixman,poppler,xpdf,zlib,zziplib} + libs/{lua53,luajit,mpfr,pixman,zlib,zziplib} mkdir WorkDir cd WorkDir ''; @@ -178,7 +175,7 @@ core-big = stdenv.mkDerivation { #TODO: upmendex luajit = lib.optionalString withLuaJIT ",luajit"; in '' mkdir ./WorkDir && cd ./WorkDir - for path in libs/{teckit,lua53${luajit}} texk/web2c; do + for path in libs/{pplib,teckit,lua53${luajit}} texk/web2c; do ( if [[ "$path" =~ "libs/lua" ]]; then extraConfig="--enable-static --disable-shared" @@ -247,18 +244,17 @@ chktex = stdenv.mkDerivation { dvisvgm = stdenv.mkDerivation rec { pname = "texlive-dvisvgm.bin"; - version = "2.11"; - # TODO: dvisvgm was switched to build from upstream sources - # to address https://github.com/NixOS/nixpkgs/issues/104847 - # We might want to consider reverting that change in the future. + inherit version; - src = fetchurl { - url = "https://github.com/mgieseki/dvisvgm/releases/download/${version}/dvisvgm-${version}.tar.gz"; - sha256 = "12b6h0h8rc487yjh3sq9zsdabm9cs2vqcrb0znnfi8277f87zf3j"; - }; + inherit (common) src; + + preConfigure = "cd texk/dvisvgm"; + + configureFlags = common.configureFlags + ++ [ "--with-system-kpathsea" ]; nativeBuildInputs = [ pkg-config ]; - buildInputs = [ core/*kpathsea*/ brotli ghostscript zlib freetype woff2 potrace xxHash ]; + buildInputs = [ core brotli ghostscript zlib freetype woff2 potrace xxHash ]; enableParallelBuilding = true; }; diff --git a/pkgs/tools/typesetting/tex/texlive/default.nix b/pkgs/tools/typesetting/tex/texlive/default.nix index 52521a80809..4ba42cbce57 100644 --- a/pkgs/tools/typesetting/tex/texlive/default.nix +++ b/pkgs/tools/typesetting/tex/texlive/default.nix @@ -3,7 +3,7 @@ - current html: https://nixos.org/nixpkgs/manual/#sec-language-texlive */ { stdenv, lib, fetchurl, runCommand, writeText, buildEnv -, callPackage, ghostscriptX, harfbuzz, poppler_min +, callPackage, ghostscriptX, harfbuzz , makeWrapper, python3, ruby, perl , useFixedHashes ? true , recurseIntoAttrs @@ -11,7 +11,6 @@ let # various binaries (compiled) bin = callPackage ./bin.nix { - poppler = poppler_min; # otherwise depend on various X stuff ghostscript = ghostscriptX; harfbuzz = harfbuzz.override { withIcu = true; withGraphite2 = true; diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index eadd95870ca..887b1a0caaf 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -70,6 +70,7 @@ mapAliases ({ bazaarTools = throw "bazaar has been deprecated by breezy."; # added 2020-04-19 beegfs = throw "beegfs has been removed."; # added 2019-11-24 bluezFull = bluez; # Added 2019-12-03 + bpftool = bpftools; # Added 2021-05-03 brackets = throw "brackets has been removed, it was unmaintained and had open vulnerabilities"; # added 2021-01-24 bridge_utils = bridge-utils; # added 2015-02-20 bro = zeek; # added 2019-09-29 @@ -849,6 +850,8 @@ mapAliases ({ xbmcPlain = kodiPlain; # added 2018-04-25 xbmcPlugins = kodiPackages; # added 2018-04-25 kodiPlugins = kodiPackages; # added 2021-03-09; + xineLib = xine-lib; # added 2021-04-27 + xineUI = xine-ui; # added 2021-04-27 xmonad_log_applet_gnome3 = xmonad_log_applet; # added 2018-05-01 xmpppy = throw "xmpppy has been removed from nixpkgs as it is unmaintained and python2-only"; pyIRCt = throw "pyIRCt has been removed from nixpkgs as it is unmaintained and python2-only"; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 80373d50963..04effbffbd3 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -251,6 +251,8 @@ in eclipse-mat = callPackage ../development/tools/eclipse-mat { }; + frugal = callPackage ../development/tools/frugal { }; + glade = callPackage ../development/tools/glade { }; hobbes = callPackage ../development/tools/hobbes { }; @@ -573,6 +575,8 @@ in nix-gitignore = callPackage ../build-support/nix-gitignore { }; + numworks-epsilon = callPackage ../applications/science/math/numworks-epsilon { }; + ociTools = callPackage ../build-support/oci-tools { }; octant = callPackage ../applications/networking/cluster/octant { }; @@ -807,10 +811,12 @@ in xtrt = callPackage ../tools/archivers/xtrt { }; yabridge = callPackage ../tools/audio/yabridge { - wine = wineWowPackages.minimal; + wine = wineWowPackages.staging; }; - yabridgectl = callPackage ../tools/audio/yabridgectl { }; + yabridgectl = callPackage ../tools/audio/yabridgectl { + wine = wineWowPackages.staging; + }; ### APPLICATIONS/TERMINAL-EMULATORS @@ -1079,6 +1085,8 @@ in audiowaveform = callPackage ../tools/audio/audiowaveform { }; + authenticator = callPackage ../applications/misc/authenticator { }; + autoflake = callPackage ../development/tools/analysis/autoflake { }; autospotting = callPackage ../applications/misc/autospotting { }; @@ -1224,6 +1232,10 @@ in btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { }; + bucklespring = bucklespring-x11; + bucklespring-libinput = callPackage ../applications/audio/bucklespring { }; + bucklespring-x11 = callPackage ../applications/audio/bucklespring { legacy = true; }; + buildbot = with python3Packages; toPythonApplication buildbot; buildbot-ui = with python3Packages; toPythonApplication buildbot-ui; buildbot-full = with python3Packages; toPythonApplication buildbot-full; @@ -1256,6 +1268,8 @@ in cloud-sql-proxy = callPackage ../tools/misc/cloud-sql-proxy { }; + cloudsmith-cli = callPackage ../development/tools/cloudsmith-cli { }; + codeql = callPackage ../development/tools/analysis/codeql { }; container-linux-config-transpiler = callPackage ../development/tools/container-linux-config-transpiler { }; @@ -2196,9 +2210,7 @@ in cppclean = callPackage ../development/tools/cppclean {}; - credhub-cli = callPackage ../tools/admin/credhub-cli { - buildGoModule = buildGo114Module; - }; + credhub-cli = callPackage ../tools/admin/credhub-cli {}; crex = callPackage ../tools/misc/crex { }; @@ -2822,6 +2834,8 @@ in mididings = callPackage ../tools/audio/mididings { }; + miniscript = callPackage ../applications/blockchains/miniscript { }; + miniserve = callPackage ../tools/misc/miniserve { inherit (darwin.apple_sdk.frameworks) Security; }; @@ -6097,6 +6111,8 @@ in inherit (darwin.apple_sdk.frameworks) Security; }; + matrix-dendrite = callPackage ../servers/matrix-dendrite { }; + /* Python 3.8 is currently broken with matrix-synapse since `python38Packages.bleach` fails (https://github.com/NixOS/nixpkgs/issues/76093) */ matrix-synapse = callPackage ../servers/matrix-synapse { /*python3 = python38;*/ }; @@ -6180,6 +6196,8 @@ in multitail = callPackage ../tools/misc/multitail { }; + mx-puppet-discord = callPackage ../servers/mx-puppet-discord { }; + mxt-app = callPackage ../misc/mxt-app { }; naabu = callPackage ../tools/security/naabu { }; @@ -6566,6 +6584,10 @@ in mandoc = callPackage ../tools/misc/mandoc { }; + mangohud = callPackage ../tools/graphics/mangohud/combined.nix { + libXNVCtrl = linuxPackages.nvidia_x11.settings.libXNVCtrl; + }; + manix = callPackage ../tools/nix/manix { inherit (darwin.apple_sdk.frameworks) Security; }; @@ -7532,10 +7554,16 @@ in philter = callPackage ../tools/networking/philter { }; + phoc = callPackage ../applications/misc/phoc { + wlroots = wlroots_0_12; + }; + phodav = callPackage ../tools/networking/phodav { }; pim6sd = callPackage ../servers/pim6sd { }; + phosh = callPackage ../applications/window-managers/phosh { }; + pinentry = libsForQt5.callPackage ../tools/security/pinentry { libcap = if stdenv.isDarwin then null else libcap; }; @@ -8091,6 +8119,8 @@ in rrdtool = callPackage ../tools/misc/rrdtool { }; + rset = callPackage ../tools/admin/rset { }; + rshijack = callPackage ../tools/networking/rshijack { }; rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { }; @@ -8215,16 +8245,10 @@ in screen-message = callPackage ../tools/X11/screen-message { }; - screencloud = callPackage ../applications/graphics/screencloud { - quazip = quazip_qt4; - }; + screencloud = libsForQt5.callPackage ../applications/graphics/screencloud { }; screenkey = callPackage ../applications/video/screenkey { }; - quazip_qt4 = libsForQt5.quazip.override { - qtbase = qt4; - }; - scfbuild = python3.pkgs.callPackage ../tools/misc/scfbuild { }; scriptaculous = callPackage ../development/libraries/scriptaculous { }; @@ -9869,6 +9893,8 @@ in zsh-you-should-use = callPackage ../shells/zsh/zsh-you-should-use { }; + zsh-z = callPackage ../shells/zsh/zsh-z { }; + zssh = callPackage ../tools/networking/zssh { }; zstd = callPackage ../tools/compression/zstd { @@ -9908,6 +9934,8 @@ in nix-bash-completions = callPackage ../shells/bash/nix-bash-completions { }; + undistract-me = callPackage ../shells/bash/undistract-me { }; + dash = callPackage ../shells/dash { }; dasht = callPackage ../tools/misc/dasht { }; @@ -11422,6 +11450,7 @@ in cargo-release = callPackage ../tools/package-management/cargo-release { inherit (darwin.apple_sdk.frameworks) Security; }; + cargo-rr = callPackage ../development/tools/rust/cargo-rr { }; cargo-tarpaulin = callPackage ../development/tools/analysis/cargo-tarpaulin { }; cargo-update = callPackage ../tools/package-management/cargo-update { inherit (darwin.apple_sdk.frameworks) Security; @@ -11462,6 +11491,7 @@ in cargo-make = callPackage ../development/tools/rust/cargo-make { inherit (darwin.apple_sdk.frameworks) Security SystemConfiguration; }; + cargo-msrv = callPackage ../development/tools/rust/cargo-msrv { }; cargo-play = callPackage ../development/tools/rust/cargo-play { }; cargo-raze = callPackage ../development/tools/rust/cargo-raze { inherit (darwin.apple_sdk.frameworks) Security; @@ -11546,6 +11576,8 @@ in gputils = null; }; + seren = callPackage ../applications/networking/instant-messengers/seren { }; + serialdv = callPackage ../development/libraries/serialdv { }; serpent = callPackage ../development/compilers/serpent { }; @@ -11808,7 +11840,9 @@ in io = callPackage ../development/interpreters/io { }; - j = callPackage ../development/interpreters/j {}; + j = callPackage ../development/interpreters/j { + stdenv = clangStdenv; + }; janet = callPackage ../development/interpreters/janet {}; @@ -12540,7 +12574,7 @@ in libbpf = callPackage ../os-specific/linux/libbpf { }; - bpftool = callPackage ../os-specific/linux/bpftool { }; + bpftools = callPackage ../os-specific/linux/bpftools { }; bpm-tools = callPackage ../tools/audio/bpm-tools { }; @@ -14021,6 +14055,8 @@ in cimg = callPackage ../development/libraries/cimg { }; + cjose = callPackage ../development/libraries/cjose { }; + scmccid = callPackage ../development/libraries/scmccid { }; ccrtp = callPackage ../development/libraries/ccrtp { }; @@ -14064,6 +14100,8 @@ in cl = callPackage ../development/libraries/cl { }; + clanlib = callPackage ../development/libraries/clanlib { }; + classads = callPackage ../development/libraries/classads { }; clearsilver = callPackage ../development/libraries/clearsilver { }; @@ -15281,6 +15319,8 @@ in libacr38u = callPackage ../tools/security/libacr38u { }; + libadwaita = callPackage ../development/libraries/libadwaita { }; + libaec = callPackage ../development/libraries/libaec { }; libagar = callPackage ../development/libraries/libagar { }; @@ -18074,7 +18114,7 @@ in xed = callPackage ../development/libraries/xed { }; - xineLib = callPackage ../development/libraries/xine-lib { }; + xine-lib = callPackage ../development/libraries/xine-lib { }; xautolock = callPackage ../misc/screensavers/xautolock { }; @@ -18104,6 +18144,8 @@ in xlslib = callPackage ../development/libraries/xlslib { }; + xsimd = callPackage ../development/libraries/xsimd { }; + xvidcore = callPackage ../development/libraries/xvidcore { }; xxHash = callPackage ../development/libraries/xxHash {}; @@ -19386,6 +19428,8 @@ in thanos = callPackage ../servers/monitoring/thanos { }; + trafficserver = callPackage ../servers/http/trafficserver { }; + inherit (callPackages ../servers/http/tomcat { }) tomcat7 tomcat8 @@ -23552,7 +23596,7 @@ in googleearth = callPackage ../applications/misc/googleearth { }; - googleearth-pro = callPackage ../applications/misc/googleearth-pro { }; + googleearth-pro = libsForQt5.callPackage ../applications/misc/googleearth-pro { }; google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome2.GConf; }; @@ -23896,7 +23940,7 @@ in id3v2 = callPackage ../applications/audio/id3v2 { }; - ideamaker = callPackage ../applications/misc/ideamaker { }; + ideamaker = libsForQt5.callPackage ../applications/misc/ideamaker { }; ifenslave = callPackage ../os-specific/linux/ifenslave { }; @@ -24703,6 +24747,7 @@ in mopidy-mpd mopidy-mpris mopidy-musicbox-webclient + mopidy-podcast mopidy-scrobbler mopidy-somafm mopidy-soundcloud @@ -26606,7 +26651,7 @@ in gnvim = callPackage ../applications/editors/neovim/gnvim/wrapper.nix { }; - neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { pythonPackages = python3Packages; }; + neovim-remote = callPackage ../applications/editors/neovim/neovim-remote.nix { }; vis = callPackage ../applications/editors/vis { inherit (lua52Packages) lpeg; @@ -26724,6 +26769,8 @@ in }; vscode = callPackage ../applications/editors/vscode/vscode.nix { }; + vscode-fhs = vscode.fhs; + vscode-fhsWithPackages = vscode.fhsWithPackages; vscode-with-extensions = callPackage ../applications/editors/vscode/with-extensions.nix {}; @@ -26732,6 +26779,8 @@ in vscode-extensions = recurseIntoAttrs (callPackage ../misc/vscode-extensions {}); vscodium = callPackage ../applications/editors/vscode/vscodium.nix { }; + vscodium-fhs = vscodium.fhs; + vscodium-fhsWithPackages = vscodium.fhsWithPackages; code-server = callPackage ../servers/code-server { inherit (darwin.apple_sdk.frameworks) AppKit Cocoa Security; @@ -27138,7 +27187,7 @@ in xfractint = callPackage ../applications/graphics/xfractint {}; - xineUI = callPackage ../applications/video/xine-ui { }; + xine-ui = callPackage ../applications/video/xine-ui { }; xlsxgrep = callPackage ../applications/search/xlsxgrep { }; @@ -27969,6 +28018,8 @@ in megaglest = callPackage ../games/megaglest {}; + methane = callPackage ../games/methane { }; + mindustry = callPackage ../games/mindustry { }; mindustry-wayland = callPackage ../games/mindustry { glew = glew-egl; }; @@ -31232,5 +31283,7 @@ in lc3tools = callPackage ../development/tools/lc3tools {}; + xcolor = callPackage ../tools/graphics/xcolor { }; + zktree = callPackage ../applications/misc/zktree {}; } diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index e533d5aace1..2cd2965fc61 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -122,9 +122,7 @@ in rec { coqPackages_8_11 = mkCoqPackages coq_8_11; coqPackages_8_12 = mkCoqPackages coq_8_12; coqPackages_8_13 = mkCoqPackages coq_8_13; - coqPackages = recurseIntoAttrs (lib.mapDerivationAttrset lib.dontDistribute - coqPackages_8_11 - ); + coqPackages = recurseIntoAttrs coqPackages_8_11; coq = coqPackages.coq; } diff --git a/pkgs/top-level/ocaml-packages.nix b/pkgs/top-level/ocaml-packages.nix index 6ae5f43a63c..71da1aa5c0a 100644 --- a/pkgs/top-level/ocaml-packages.nix +++ b/pkgs/top-level/ocaml-packages.nix @@ -1076,6 +1076,8 @@ let ppx_deriving_yojson = callPackage ../development/ocaml-modules/ppx_deriving_yojson {}; + ppx_deriving_cmdliner = callPackage ../development/ocaml-modules/ppx_deriving_cmdliner {}; + ppx_gen_rec = callPackage ../development/ocaml-modules/ppx_gen_rec {}; ppx_import = callPackage ../development/ocaml-modules/ppx_import ( diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 9db246eae43..9dc9444e096 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -10673,6 +10673,16 @@ let sha256 = "0skm22b3gg1bfk0amklrprpva41m6mkrhqp0gi7z1nmcf9ypjh61"; }; + patches = [ + # Unfortunately, not every release is uploaded to CPAN so security fixes + # would need to be cherry-picked from releases + (fetchpatch { + name = "CVE-2021-22204.patch"; + url = "https://salsa.debian.org/perl-team/modules/packages/libimage-exiftool-perl/-/raw/0347501fda93cb8366d6451aedcf258b34fb4a2b/debian/patches/CVE-2021-22204.patch"; + sha256 = "1fxw32zcssillnv764wsd05lyswn8bbrc90q5cy9aknx0ncgsrxj"; + }) + ]; + nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; postInstall = lib.optionalString stdenv.isDarwin '' shortenPerlShebang $out/bin/exiftool diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index ec7afc633ea..330f93703e8 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -615,6 +615,8 @@ in { autograd = callPackage ../development/python-modules/autograd { }; + autoit-ripper = callPackage ../development/python-modules/autoit-ripper { }; + autologging = callPackage ../development/python-modules/autologging { }; automat = callPackage ../development/python-modules/automat { }; @@ -1359,6 +1361,8 @@ in { click-completion = callPackage ../development/python-modules/click-completion { }; + click-configfile = callPackage ../development/python-modules/click-configfile { }; + click-datetime = callPackage ../development/python-modules/click-datetime { }; click-default-group = callPackage ../development/python-modules/click-default-group { }; @@ -1371,6 +1375,8 @@ in { click-plugins = callPackage ../development/python-modules/click-plugins { }; + click-spinner = callPackage ../development/python-modules/click-spinner { }; + click-repl = callPackage ../development/python-modules/click-repl { }; click-threading = callPackage ../development/python-modules/click-threading { }; @@ -1405,6 +1411,8 @@ in { cloudscraper = callPackage ../development/python-modules/cloudscraper { }; + cloudsmith-api = callPackage ../development/python-modules/cloudsmith-api { }; + clustershell = callPackage ../development/python-modules/clustershell { }; cma = callPackage ../development/python-modules/cma { }; @@ -3557,6 +3565,8 @@ in { karton-asciimagic = callPackage ../development/python-modules/karton-asciimagic { }; + karton-autoit-ripper = callPackage ../development/python-modules/karton-autoit-ripper { }; + karton-classifier = callPackage ../development/python-modules/karton-classifier { }; karton-config-extractor = callPackage ../development/python-modules/karton-config-extractor { }; @@ -5067,7 +5077,7 @@ in { poolsense = callPackage ../development/python-modules/poolsense { }; poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 { - inherit (pkgs.qt5) qtbase; + inherit (pkgs.qt5) qtbase qmake; inherit (pkgs.libsForQt5) poppler; }; @@ -5855,6 +5865,8 @@ in { inherit (pkgs) lz4; }; + pyotgw = callPackage ../development/python-modules/pyotgw { }; + pyotp = callPackage ../development/python-modules/pyotp { }; pyowm = callPackage ../development/python-modules/pyowm { };