diff options
34 files changed, 944 insertions, 155 deletions
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index f25f11f57aec..bda18bd0a5aa 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -5640,6 +5640,12 @@ email = "markus@wotringer.de"; name = "Markus Wotringer"; }; + marijanp = { + name = "Marijan Petričević"; + email = "marijan.petricevic94@gmail.com"; + github = "marijanp"; + githubId = 13599169; + }; marius851000 = { email = "mariusdavid@laposte.net"; name = "Marius David"; @@ -8649,6 +8655,12 @@ githubId = 36899624; name = "squalus"; }; + srapenne = { + email = "solene@perso.pw"; + github = "rapenne-s"; + githubId = 248016; + name = "Solène Rapenne"; + }; srghma = { email = "srghma@gmail.com"; github = "srghma"; diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index c7a8f6b2f7c3..7586ae41bbb0 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -876,6 +876,7 @@ ./services/web-apps/gotify-server.nix ./services/web-apps/grocy.nix ./services/web-apps/hedgedoc.nix + ./services/web-apps/hledger-web.nix ./services/web-apps/icingaweb2/icingaweb2.nix ./services/web-apps/icingaweb2/module-monitoring.nix ./services/web-apps/ihatemoney diff --git a/nixos/modules/services/web-apps/hledger-web.nix b/nixos/modules/services/web-apps/hledger-web.nix new file mode 100644 index 000000000000..43fc4daa177f --- /dev/null +++ b/nixos/modules/services/web-apps/hledger-web.nix @@ -0,0 +1,77 @@ +{ lib, pkgs, config, ... }: +with lib; +let + cfg = config.services.hledger-web; +in { + options.services.hledger-web = { + + enable = mkEnableOption "hledger-web service"; + + serveApi = mkEnableOption "Serve only the JSON web API, without the web UI."; + + host = mkOption { + type = types.str; + default = "127.0.0.1"; + description = '' + Address to listen on. + ''; + }; + + port = mkOption { + type = types.port; + default = 5000; + example = "80"; + description = '' + Port to listen on. + ''; + }; + + capabilities = mkOption { + type = types.commas; + default = "view"; + description = '' + Enable the view, add, and/or manage capabilities. E.g. view,add + ''; + }; + + journalFile = mkOption { + type = types.path; + example = "/home/hledger/.hledger.journal"; + description = '' + Input journal file. + ''; + }; + + baseUrl = mkOption { + type = with types; nullOr str; + default = null; + example = "https://example.org"; + description = '' + Base URL, when sharing over a network. + ''; + }; + }; + + config = mkIf cfg.enable { + systemd.services.hledger-web = { + description = "hledger-web - web-app for the hledger accounting tool."; + documentation = [ https://hledger.org/hledger-web.html ]; + wantedBy = [ "multi-user.target" ]; + after = [ "networking.target" ]; + serviceConfig = { + ExecStart = '' + ${pkgs.hledger-web}/bin/hledger-web \ + --host=${cfg.host} \ + --port=${toString cfg.port} \ + --file=${cfg.journalFile} \ + "--capabilities=${cfg.capabilities}" \ + ${optionalString (cfg.baseUrl != null) "--base-url=${cfg.baseUrl}"} \ + ${optionalString (cfg.serveApi) "--serve-api"} + ''; + Restart = "always"; + }; + }; + }; + + meta.maintainers = with lib.maintainers; [ marijanp ]; +} diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 05fd5c4822a7..d267ddeb4cf4 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -155,6 +155,7 @@ in # not on other platforms. hibernate = handleTestOn ["x86_64-linux"] ./hibernate.nix {}; hitch = handleTest ./hitch {}; + hledger-web = handleTest ./hledger-web.nix {}; hocker-fetchdocker = handleTest ./hocker-fetchdocker {}; home-assistant = handleTest ./home-assistant.nix {}; hostname = handleTest ./hostname.nix {}; diff --git a/nixos/tests/hledger-web.nix b/nixos/tests/hledger-web.nix new file mode 100644 index 000000000000..378d819437db --- /dev/null +++ b/nixos/tests/hledger-web.nix @@ -0,0 +1,53 @@ +import ./make-test-python.nix ({ pkgs, lib, ... }: +let + journal = pkgs.writeText "test.journal" '' + 2010/01/10 Loan + assets:cash 500$ + income:loan -500$ + 2010/01/10 NixOS Foundation donation + expenses:donation 250$ + assets:cash -250$ + ''; +in +rec { + name = "hledger-web"; + meta.maintainers = with lib.maintainers; [ marijanp ]; + + nodes = { + server = { config, pkgs, ... }: rec { + services.hledger-web = { + host = "127.0.0.1"; + port = 5000; + enable = true; + journalFile = journal; + }; + networking.firewall.allowedTCPPorts = [ services.hledger-web.port ]; + }; + apiserver = { config, pkgs, ... }: rec { + services.hledger-web = { + host = "127.0.0.1"; + port = 5000; + enable = true; + serveApi = true; + journalFile = journal; + }; + networking.firewall.allowedTCPPorts = [ services.hledger-web.port ]; + }; + }; + + testScript = '' + start_all() + + server.wait_for_unit("hledger-web.service") + server.wait_for_open_port(5000) + with subtest("Check if web UI is accessible"): + page = server.succeed("curl -L http://127.0.0.1:5000") + assert "test.journal" in page + + apiserver.wait_for_unit("hledger-web.service") + apiserver.wait_for_open_port(5000) + with subtest("Check if the JSON API is served"): + transactions = apiserver.succeed("curl -L http://127.0.0.1:5000/transactions") + assert "NixOS Foundation donation" in transactions + ''; +}) diff --git a/pkgs/applications/editors/texmacs/default.nix b/pkgs/applications/editors/texmacs/default.nix index 6046a3aa313d..dd5e5e61b29c 100644 --- a/pkgs/applications/editors/texmacs/default.nix +++ b/pkgs/applications/editors/texmacs/default.nix @@ -1,4 +1,4 @@ -{ lib, mkDerivation, callPackage, fetchFromGitHub, +{ lib, mkDerivation, callPackage, fetchurl, guile_1_8, qtbase, xmodmap, which, freetype, libjpeg, sqlite, @@ -16,19 +16,17 @@ let pname = "TeXmacs"; - version = "1.99.15"; + version = "1.99.18"; common = callPackage ./common.nix { inherit tex extraFonts chineseFonts japaneseFonts koreanFonts; }; in mkDerivation { - name = "${pname}-${version}"; + inherit pname version; - src = fetchFromGitHub { - owner = "texmacs"; - repo = "texmacs"; - rev = "v${version}"; - sha256 = "04585hdh98fvyhj4wsxf69xal2wvfa6lg76gad8pr6ww9abi5105"; + src = fetchurl { + url = "https://www.texmacs.org/Download/ftp/tmftp/source/TeXmacs-${version}-src.tar.gz"; + sha256 = "0il3fwgw20421aj90wg8kyhkwk6lbgb3bb2g5qamh5lk90yj725i"; }; nativeBuildInputs = [ cmake pkg-config ]; diff --git a/pkgs/applications/networking/browsers/chromium/update.py b/pkgs/applications/networking/browsers/chromium/update.py index 314d000e08a2..ec656ef8527f 100755 --- a/pkgs/applications/networking/browsers/chromium/update.py +++ b/pkgs/applications/networking/browsers/chromium/update.py @@ -13,6 +13,7 @@ import sys from codecs import iterdecode from collections import OrderedDict from datetime import datetime +from distutils.version import LooseVersion from os.path import abspath, dirname from urllib.request import urlopen @@ -122,7 +123,7 @@ def print_updates(channels_old, channels_new): for channel_name in channels_old: version_old = channels_old[channel_name]["version"] version_new = channels_new[channel_name]["version"] - if version_old < version_new: + if LooseVersion(version_old) < LooseVersion(version_new): attr_name = channel_name_to_attr_name(channel_name) print(f'- {attr_name}: {version_old} -> {version_new}') diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.json b/pkgs/applications/networking/browsers/chromium/upstream-info.json index b095353c6322..88736efe6ef2 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.json +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.json @@ -31,9 +31,9 @@ } }, "dev": { - "version": "89.0.4389.9", - "sha256": "12jiy5p1cbrs0gc3kd86walcnh038lzs5gnb9vif45f7kxn3c9pm", - "sha256bin64": "1wmidvf5gfm1xkpaj07gsvyk1r8b6jbcv46w5vclydlc1r6wh81s", + "version": "89.0.4389.23", + "sha256": "1d5pv4bhskh4l8x5ygccxwiryf05mwr1qzq1dzn6q82damr6dpq5", + "sha256bin64": "0d8ikwck7zmwgqni1f1xb44p773dqq096qnj0yg941457b0yg5hs", "deps": { "gn": { "version": "2021-01-07", diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix index 39a58454955c..9b0a9078ee5a 100644 --- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix +++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix @@ -91,19 +91,19 @@ let fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ]; # Upstream source - version = "10.0.8"; + version = "10.0.9"; lang = "en-US"; srcs = { x86_64-linux = fetchurl { url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz"; - sha256 = "23sp9vMbXg/c4o9wm+G0bW4KaP7lCUMpSQNK/5mSmeo="; + sha256 = "Dtlfm/memHSxir5XkUGkJICGEM+tPs//ET4PdVM1HPM="; }; i686-linux = fetchurl { url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz"; - sha256 = "vliiyw8KSCiZ2ycCvqOPEW3qSDH9wXwIygU1RYAqA6g="; + sha256 = "GZywFEX/5Br+Zu1w6pegoNOTrSIVQNE2LINsa3Vdlxs="; }; }; in diff --git a/pkgs/applications/science/logic/isabelle/default.nix b/pkgs/applications/science/logic/isabelle/default.nix index 6c22c949483f..a0f81a543f18 100644 --- a/pkgs/applications/science/logic/isabelle/default.nix +++ b/pkgs/applications/science/logic/isabelle/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchurl, perl, nettools, java, polyml, z3, rlwrap }: +{ lib, stdenv, fetchurl, perl, perlPackages, makeWrapper, nettools, java, polyml, z3, rlwrap }: # nettools needed for hostname stdenv.mkDerivation rec { @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { sha256 = "1bibabhlsvf6qsjjkgxcpq3cvl1z7r8yfcgqbhbvsiv69n3gyfk3"; }; - buildInputs = [ perl polyml z3 ] + buildInputs = [ perl polyml z3 makeWrapper ] ++ lib.optionals (!stdenv.isDarwin) [ nettools java ]; sourceRoot = dirname; @@ -64,6 +64,8 @@ stdenv.mkDerivation rec { mv $TMP/$dirname $out cd $out/$dirname bin/isabelle install $out/bin + + wrapProgram $out/$dirname/src/HOL/Tools/ATP/scripts/remote_atp --set PERL5LIB ${perlPackages.makeFullPerlPath [ perlPackages.LWP ]} ''; meta = with lib; { 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 3fb8b2f35e8d..7f2163e67d66 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 = "2.15.9"; + version = "2.16.1"; src = fetchPypi { inherit pname version; - sha256 = "0sg9ci9q1v3975855vi491ass72ladp3bjj2mvg77yxj13g3qqsx"; + sha256 = "00xh3q3gmi88qcl0a61pw532iyw4xcls5h336cjzld70ps2r89g4"; }; nativeBuildInputs = [ installShellFiles pbr ]; diff --git a/pkgs/development/libraries/SDL_mixer/default.nix b/pkgs/development/libraries/SDL_mixer/default.nix index 7f5e38f39b8d..291e9790e442 100644 --- a/pkgs/development/libraries/SDL_mixer/default.nix +++ b/pkgs/development/libraries/SDL_mixer/default.nix @@ -1,4 +1,8 @@ -{ stdenv, lib, fetchurl, SDL, libogg, libvorbis, smpeg, enableNativeMidi ? false, fluidsynth ? null }: +{ stdenv, lib, fetchurl +, SDL, libogg, libvorbis, smpeg, libmikmod +, fluidsynth +, enableNativeMidi ? false +}: stdenv.mkDerivation rec { pname = "SDL_mixer"; @@ -9,9 +13,9 @@ stdenv.mkDerivation rec { sha256 = "0alrhqgm40p4c92s26mimg9cm1y7rzr6m0p49687jxd9g6130i0n"; }; - buildInputs = [ SDL libogg libvorbis fluidsynth smpeg ]; + buildInputs = [ SDL libogg libvorbis fluidsynth smpeg libmikmod ]; - configureFlags = [ "--disable-music-ogg-shared" ] + configureFlags = [ "--disable-music-ogg-shared" "--disable-music-mod-shared" ] ++ lib.optional enableNativeMidi " --enable-music-native-midi-gpl" ++ lib.optionals stdenv.isDarwin [ "--disable-sdltest" "--disable-smpegtest" ]; diff --git a/pkgs/development/libraries/simdjson/default.nix b/pkgs/development/libraries/simdjson/default.nix index e41d08c7cd38..448270183a5f 100644 --- a/pkgs/development/libraries/simdjson/default.nix +++ b/pkgs/development/libraries/simdjson/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "simdjson"; - version = "0.8.0"; + version = "0.8.1"; src = fetchFromGitHub { owner = "simdjson"; repo = "simdjson"; rev = "v${version}"; - sha256 = "0lpb8la74xwd78d5mgwnzx4fy632jbmh0ip19v0dydwm0kagm0a3"; + sha256 = "1x5f8b5s67kf9sjx04rp81q0f3dlnqfngn3h0lrfnphipald5fji"; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/development/python-modules/avion/default.nix b/pkgs/development/python-modules/avion/default.nix new file mode 100644 index 000000000000..a456c110ff42 --- /dev/null +++ b/pkgs/development/python-modules/avion/default.nix @@ -0,0 +1,37 @@ +{ lib +, bluepy +, buildPythonPackage +, csrmesh +, fetchPypi +, pycryptodome +, requests +}: + +buildPythonPackage rec { + pname = "avion"; + version = "0.10"; + + src = fetchPypi { + inherit pname version; + sha256 = "0zgv45086b97ngyqxdp41wxb7hpn9g7alygc21j9y3dib700vzdz"; + }; + + propagatedBuildInputs = [ + bluepy + csrmesh + pycryptodome + requests + ]; + + # Project has no test + doCheck = false; + # bluepy/uuids.json is not found + # pythonImportsCheck = [ "avion" ]; + + meta = with lib; { + description = "Python API for controlling Avi-on Bluetooth dimmers"; + homepage = "https://github.com/mjg59/python-avion"; + license = with licenses; [ gpl3Plus ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/bluepy-devices/default.nix b/pkgs/development/python-modules/bluepy-devices/default.nix new file mode 100644 index 000000000000..c1baeedcb5e4 --- /dev/null +++ b/pkgs/development/python-modules/bluepy-devices/default.nix @@ -0,0 +1,29 @@ +{ lib +, bluepy +, buildPythonPackage +, fetchPypi +}: + +buildPythonPackage rec { + pname = "bluepy-devices"; + version = "0.2.1"; + + src = fetchPypi { + pname = "bluepy_devices"; + inherit version; + sha256 = "02zzzivxq2vifgs65m2rm8pqlsbzsbc419c032irzvfxjx539mr8"; + }; + + propagatedBuildInputs = [ bluepy ]; + + # Project has no test + doCheck = false; + pythonImportsCheck = [ "bluepy_devices" ]; + + meta = with lib; { + description = "Python BTLE Device Interface for bluepy"; + homepage = "https://github.com/bimbar/bluepy_devices"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/csrmesh/default.nix b/pkgs/development/python-modules/csrmesh/default.nix new file mode 100644 index 000000000000..142756341567 --- /dev/null +++ b/pkgs/development/python-modules/csrmesh/default.nix @@ -0,0 +1,32 @@ +{ lib +, bluepy +, buildPythonPackage +, fetchPypi +, pycryptodomex +}: + +buildPythonPackage rec { + pname = "csrmesh"; + version = "0.10.0"; + + src = fetchPypi { + inherit pname version; + sha256 = "03lzam54ypcfvqvikh3gsrivvlidmz1ifdq15xv8c5i3n5b178ag"; + }; + + propagatedBuildInputs = [ + bluepy + pycryptodomex + ]; + + # Project has no test + doCheck = false; + pythonImportsCheck = [ "csrmesh" ]; + + meta = with lib; { + description = "Python implementation of the CSRMesh bridge protocol"; + homepage = "https://github.com/nkaminski/csrmesh"; + license = with licenses; [ lgpl3Only ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/pyiqvia/default.nix b/pkgs/development/python-modules/pyiqvia/default.nix index 762e39fe4b14..f231f98df85d 100644 --- a/pkgs/development/python-modules/pyiqvia/default.nix +++ b/pkgs/development/python-modules/pyiqvia/default.nix @@ -3,7 +3,7 @@ , aiohttp , aresponses , fetchFromGitHub -, poetry +, poetry-core , pytest-aiohttp , pytest-asyncio , pytestCheckHook @@ -12,7 +12,7 @@ buildPythonPackage rec { pname = "pyiqvia"; - version = "0.3.1"; + version = "0.3.2"; format = "pyproject"; disabled = pythonOlder "3.6"; @@ -21,10 +21,10 @@ buildPythonPackage rec { owner = "bachya"; repo = pname; rev = version; - sha256 = "1yjsbq4p040a35n8g2l0wgnv83wkjirv4rj73s2mjzn3cxf395bz"; + sha256 = "089lah23939m523jmjkaw2li0fikp2nswxznfvzwnr6wjpp3m9as"; }; - nativeBuildInputs = [ poetry ]; + nativeBuildInputs = [ poetry-core ]; propagatedBuildInputs = [ aiohttp ]; diff --git a/pkgs/development/tools/py-spy/default.nix b/pkgs/development/tools/py-spy/default.nix index a9634ec53c72..7a93d5ecbe03 100644 --- a/pkgs/development/tools/py-spy/default.nix +++ b/pkgs/development/tools/py-spy/default.nix @@ -2,13 +2,13 @@ rustPlatform.buildRustPackage rec { pname = "py-spy"; - version = "0.3.3"; + version = "0.3.4"; src = fetchFromGitHub { owner = "benfred"; repo = "py-spy"; rev = "v${version}"; - sha256 = "1w9nwsmazafr78ghif6njdcqjisr0f1jb6cm1w4ngvigx5qlrbkv"; + sha256 = "sha256-7282DGLNHpKorNTHvpMLmqF2DrEVMIiQIzf5nTuJ7lc="; }; NIX_CFLAGS_COMPILE = "-L${libunwind}/lib"; @@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec { checkInputs = [ python3 ]; - cargoSha256 = "0hrzmpwd2k4l8gjbry8ddrkv9q9qh8ag096md4q0fyn5bgnxhkah"; + cargoSha256 = "sha256-qVnOuLNMAy+6MP+dh6vLiSXvwQBAwyzRnHzCP60BdWk="; meta = with lib; { description = "Sampling profiler for Python programs"; diff --git a/pkgs/development/tools/rust/cargo-limit/cargo-Add-Cargo.lock.patch b/pkgs/development/tools/rust/cargo-limit/cargo-Add-Cargo.lock.patch new file mode 100644 index 000000000000..e374e5964bc5 --- /dev/null +++ b/pkgs/development/tools/rust/cargo-limit/cargo-Add-Cargo.lock.patch @@ -0,0 +1,288 @@ +diff --git a/Cargo.lock b/Cargo.lock +new file mode 100644 +index 0000000..6c45593 +--- /dev/null ++++ b/Cargo.lock +@@ -0,0 +1,279 @@ ++# This file is automatically @generated by Cargo. ++# It is not intended for manual editing. ++[[package]] ++name = "anyhow" ++version = "1.0.38" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "afddf7f520a80dbf76e6f50a35bca42a2331ef227a28b3b6dc5c2e2338d114b1" ++ ++[[package]] ++name = "atty" ++version = "0.2.14" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" ++dependencies = [ ++ "hermit-abi", ++ "libc", ++ "winapi", ++] ++ ++[[package]] ++name = "bitflags" ++version = "1.2.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" ++ ++[[package]] ++name = "cargo-limit" ++version = "0.0.4" ++dependencies = [ ++ "anyhow", ++ "atty", ++ "cargo_metadata", ++ "const_format", ++ "ctrlc", ++ "either", ++ "itertools", ++ "libc", ++ "serde_json", ++] ++ ++[[package]] ++name = "cargo-platform" ++version = "0.1.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "0226944a63d1bf35a3b5f948dd7c59e263db83695c9e8bffc4037de02e30f1d7" ++dependencies = [ ++ "serde", ++] ++ ++[[package]] ++name = "cargo_metadata" ++version = "0.12.3" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7714a157da7991e23d90686b9524b9e12e0407a108647f52e9328f4b3d51ac7f" ++dependencies = [ ++ "cargo-platform", ++ "semver", ++ "semver-parser", ++ "serde", ++ "serde_json", ++] ++ ++[[package]] ++name = "cc" ++version = "1.0.66" ++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" ++ ++[[package]] ++name = "const_format" ++version = "0.2.13" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "c0412fd9e3c921f868af82a0097da41c250087e513786858b9e6b6055f8ed300" ++dependencies = [ ++ "const_format_proc_macros", ++] ++ ++[[package]] ++name = "const_format_proc_macros" ++version = "0.2.8" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "8df496e1bbc93814d728a8036ff054cd95830afe9cf2275c9326688c02eff936" ++dependencies = [ ++ "proc-macro2", ++ "quote", ++ "unicode-xid", ++] ++ ++[[package]] ++name = "ctrlc" ++version = "3.1.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "b57a92e9749e10f25a171adcebfafe72991d45e7ec2dcb853e8f83d9dafaeb08" ++dependencies = [ ++ "nix", ++ "winapi", ++] ++ ++[[package]] ++name = "either" ++version = "1.6.1" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "e78d4f1cc4ae33bbfc157ed5d5a5ef3bc29227303d595861deb238fcec4e9457" ++ ++[[package]] ++name = "hermit-abi" ++version = "0.1.18" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" ++dependencies = [ ++ "libc", ++] ++ ++[[package]] ++name = "itertools" ++version = "0.9.0" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "284f18f85651fe11e8a991b2adb42cb078325c996ed026d994719efcfca1d54b" ++dependencies = [ ++ "either", ++] ++ ++[[package]] ++name = "itoa" ++version = "0.4.7" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "dd25036021b0de88a0aff6b850051563c6516d0bf53f8638938edbb9de732736" ++ ++[[package]] ++name = "libc" ++version = "0.2.83" ++source = "registry+https://github.com/rust-lang/crates.io-index" ++checksum = "7eb0c4e9c72ee9d69 |