diff --git a/.github/workflows/wait-ofborg.yml b/.github/workflows/wait-ofborg.yml
new file mode 100644
index 000000000000..35c58b2e9120
--- /dev/null
+++ b/.github/workflows/wait-ofborg.yml
@@ -0,0 +1,31 @@
+name: "Wait for ofborg"
+on:
+ pull_request:
+jobs:
+ tests:
+ runs-on: ubuntu-latest
+ steps:
+ - name: Wait for ofborg CI
+ run: |
+ # wait for ~30min...
+ # ..in future a better fix would be to make ofborg mark CI as pending right away.
+ for i in $(seq 360); do
+ res=$(curl --silent \
+ -H "Accept: application/vnd.github.antiope-preview+json" \
+ -H "Authorization: token ${GITHUB_TOKEN}" \
+ "https://api.github.com/repos/NixOS/nixpkgs/commits/${COMMIT}/check-runs" | \
+ jq ".check_runs | map(.app) | map(.id) | contains([${OFBORG_APP_ID}])")
+ if [[ "$res" == "true" ]]; then
+ exit 0
+ fi
+ sleep 5
+ echo "."
+ done
+ echo "Timeout!"
+ exit 1
+ # ofborg is not checking forks.
+ if: github.repository_owner == 'NixOS'
+ env:
+ GITHUB_TOKEN: ${{ github.token }}
+ COMMIT: ${{ github.event.pull_request.head.sha }}
+ OFBORG_APP_ID: 20500
diff --git a/flake.nix b/flake.nix
index e37621c6fc1c..e7c04417ac81 100644
--- a/flake.nix
+++ b/flake.nix
@@ -12,23 +12,30 @@
lib = import ./lib;
- systems = [ "x86_64-linux" "i686-linux" "x86_64-darwin" "aarch64-linux" ];
+ systems = [
+ "x86_64-linux"
+ "i686-linux"
+ "x86_64-darwin"
+ "aarch64-linux"
+ "armv6l-linux"
+ "armv7l-linux"
+ ];
forAllSystems = f: lib.genAttrs systems (system: f system);
in
{
- lib = lib // {
+ lib = lib.extend (final: prev: {
nixosSystem = { modules, ... } @ args:
import ./nixos/lib/eval-config.nix (args // {
modules = modules ++
[ { system.nixos.versionSuffix =
- ".${lib.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
- system.nixos.revision = lib.mkIf (self ? rev) self.rev;
+ ".${final.substring 0 8 (self.lastModifiedDate or self.lastModified)}.${self.shortRev or "dirty"}";
+ system.nixos.revision = final.mkIf (self ? rev) self.rev;
}
];
});
- };
+ });
checks.x86_64-linux.tarball = jobs.tarball;
diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix
index b9c93d878156..3185a8f77e23 100644
--- a/maintainers/maintainer-list.nix
+++ b/maintainers/maintainer-list.nix
@@ -543,6 +543,12 @@
githubId = 750786;
name = "Justin Wood";
};
+ anna328p = {
+ email = "anna328p@gmail.com";
+ github = "anna328p";
+ githubId = 9790772;
+ name = "Anna";
+ };
anmonteiro = {
email = "anmonteiro@gmail.com";
github = "anmonteiro";
@@ -673,6 +679,12 @@
githubId = 3965744;
name = "Arthur Lee";
};
+ arturcygan = {
+ email = "arczicygan@gmail.com";
+ github = "arcz";
+ githubId = 4679721;
+ name = "Artur Cygan";
+ };
artuuge = {
email = "artuuge@gmail.com";
github = "artuuge";
@@ -1109,6 +1121,12 @@
githubId = 3465841;
name = "Boris Sukholitko";
};
+ bouk = {
+ name = "Bouke van der Bijl";
+ email = "i@bou.ke";
+ github = "bouk";
+ githubId = 97820;
+ };
bradediger = {
email = "brad@bradediger.com";
github = "bradediger";
@@ -1406,6 +1424,16 @@
githubId = 30435868;
name = "Okina Matara";
};
+ Chili-Man = {
+ email = "dr.elhombrechile@gmail.com";
+ name = "Diego Rodriguez";
+ github = "Chili-Man";
+ githubId = 631802;
+ keys = [{
+ longkeyid = "rsa4096/0xE0EBAD78F0190BD9";
+ fingerprint = "099E 3F97 FA08 3D47 8C75 EBEC E0EB AD78 F019 0BD9";
+ }];
+ };
chkno = {
email = "chuck@intelligence.org";
github = "chkno";
@@ -2052,12 +2080,6 @@
githubId = 1316469;
name = "Naomi Morse";
};
- dkudriavtsev = {
- email = "dkudriavtsev@gmail.com";
- github = "dkudriavtsev";
- githubId = 9790772;
- name = "Dmitry Kudriavtsev";
- };
dmalikov = {
email = "malikov.d.y@gmail.com";
github = "dmalikov";
@@ -6160,6 +6182,12 @@
githubId = 20792;
name = "Sebastian Galkin";
};
+ parasrah = {
+ email = "nixos@parasrah.com";
+ github = "parasrah";
+ githubId = 14935550;
+ name = "Brad Pfannmuller";
+ };
pashashocky = {
email = "pashashocky@gmail.com";
github = "pashashocky";
@@ -6334,6 +6362,12 @@
githubId = 119460;
name = "Perry Barnoy";
};
+ pjjw = {
+ email = "peter@shortbus.org";
+ github = "pjjw";
+ githubId = 638;
+ name = "Peter Woodman";
+ };
pjones = {
email = "pjones@devalot.com";
github = "pjones";
@@ -6828,6 +6862,12 @@
githubId = 2507744;
name = "Roland Koebler";
};
+ rizary = {
+ email = "andika@numtide.com";
+ github = "Rizary";
+ githubId = 7221768;
+ name = "Andika Demas Riyandi";
+ };
rkrzr = {
email = "ops+nixpkgs@channable.com";
github = "rkrzr";
diff --git a/nixos/doc/manual/release-notes/rl-2009.xml b/nixos/doc/manual/release-notes/rl-2009.xml
index 97b94c5756a7..7da1f5023780 100644
--- a/nixos/doc/manual/release-notes/rl-2009.xml
+++ b/nixos/doc/manual/release-notes/rl-2009.xml
@@ -525,12 +525,37 @@ systemd.services.nginx.serviceConfig.ReadWritePaths = [ "/var/www" ];
automatically if stateVersion is 20.09 or higher.
+
+
+ udpt experienced a complete rewrite from C++ to rust. The configuration format changed from ini to toml.
+ The new configuration documentation can be found at
+ the official website and example
+ configuration is packaged in ${udpt}/share/udpt/udpt.toml.
+
+
We now have a unified option interface
to be used for every display-manager in NixOS.
+
+
+ The bitcoind module has changed to multi-instance, using submodules.
+ Therefore, it is now mandatory to name each instance, e.g.:
+
+services.bitcoind = {
+ enable = true;
+};
+
+ requires a name now:
+
+services.bitcoind."example-mainnet" = {
+ enable = true;
+};
+
+
+
diff --git a/nixos/lib/make-disk-image.nix b/nixos/lib/make-disk-image.nix
index a72bdedb16fc..4806fe9dbac7 100644
--- a/nixos/lib/make-disk-image.nix
+++ b/nixos/lib/make-disk-image.nix
@@ -5,21 +5,32 @@
config
, # The size of the disk, in megabytes.
- diskSize
+ # if "auto" size is calculated based on the contents copied to it and
+ # additionalSpace is taken into account.
+ diskSize ? "auto"
- # The files and directories to be placed in the target file system.
+, # additional disk space to be added to the image if diskSize "auto"
+ # is used
+ additionalSpace ? "512M"
+
+, # size of the boot partition, is only used if partitionTableType is
+ # either "efi" or "hybrid"
+ bootSize ? "256M"
+
+, # The files and directories to be placed in the target file system.
# This is a list of attribute sets {source, target} where `source'
# is the file system object (regular file or directory) to be
# grafted in the file system at path `target'.
-, contents ? []
+ contents ? []
, # Type of partition table to use; either "legacy", "efi", or "none".
# For "efi" images, the GPT partition table is used and a mandatory ESP
# partition of reasonable size is created in addition to the root partition.
- # If `installBootLoader` is true, GRUB will be installed in EFI mode.
# For "legacy", the msdos partition table is used and a single large root
- # partition is created. If `installBootLoader` is true, GRUB will be
- # installed in legacy mode.
+ # partition is created.
+ # For "hybrid", the GPT partition table is used and a mandatory ESP
+ # partition of reasonable size is created in addition to the root partition.
+ # Also a legacy MBR will be present.
# For "none", no partition table is created. Enabling `installBootLoader`
# most likely fails as GRUB will probably refuse to install.
partitionTableType ? "legacy"
@@ -43,7 +54,7 @@
format ? "raw"
}:
-assert partitionTableType == "legacy" || partitionTableType == "efi" || partitionTableType == "none";
+assert partitionTableType == "legacy" || partitionTableType == "efi" || partitionTableType == "hybrid" || partitionTableType == "none";
# We use -E offset=X below, which is only supported by e2fsprogs
assert partitionTableType != "none" -> fsType == "ext4";
@@ -65,6 +76,7 @@ let format' = format; in let
rootPartition = { # switch-case
legacy = "1";
efi = "2";
+ hybrid = "3";
}.${partitionTableType};
partitionDiskScript = { # switch-case
@@ -76,9 +88,18 @@ let format' = format; in let
efi = ''
parted --script $diskImage -- \
mklabel gpt \
- mkpart ESP fat32 8MiB 256MiB \
+ mkpart ESP fat32 8MiB ${bootSize} \
set 1 boot on \
- mkpart primary ext4 256MiB -1
+ mkpart primary ext4 ${bootSize} -1
+ '';
+ hybrid = ''
+ parted --script $diskImage -- \
+ mklabel gpt \
+ mkpart ESP fat32 8MiB ${bootSize} \
+ set 1 boot on \
+ mkpart no-fs 0 1024KiB \
+ set 2 bios_grub on \
+ mkpart primary ext4 ${bootSize} -1
'';
none = "";
}.${partitionTableType};
@@ -129,19 +150,6 @@ let format' = format; in let
}
mkdir $out
- diskImage=nixos.raw
- truncate -s ${toString diskSize}M $diskImage
-
- ${partitionDiskScript}
-
- ${if partitionTableType != "none" then ''
- # Get start & length of the root partition in sectors to $START and $SECTORS.
- eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
-
- mkfs.${fsType} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
- '' else ''
- mkfs.${fsType} -F -L ${label} $diskImage
- ''}
root="$PWD/root"
mkdir -p $root
@@ -186,6 +194,31 @@ let format' = format; in let
nixos-install --root $root --no-bootloader --no-root-passwd \
--system ${config.system.build.toplevel} --channel ${channelSources} --substituters ""
+ diskImage=nixos.raw
+
+ ${if diskSize == "auto" then ''
+ ${if partitionTableType == "efi" || partitionTableType == "hybrid" then ''
+ additionalSpace=$(( ($(numfmt --from=iec '${additionalSpace}') + $(numfmt --from=iec '${bootSize}')) / 1000 ))
+ '' else ''
+ additionalSpace=$(( $(numfmt --from=iec '${additionalSpace}') / 1000 ))
+ ''}
+ diskSize=$(( $(set -- $(du -d0 $root); echo "$1") + $additionalSpace ))
+ truncate -s "$diskSize"K $diskImage
+ '' else ''
+ truncate -s ${toString diskSize}M $diskImage
+ ''}
+
+ ${partitionDiskScript}
+
+ ${if partitionTableType != "none" then ''
+ # Get start & length of the root partition in sectors to $START and $SECTORS.
+ eval $(partx $diskImage -o START,SECTORS --nr ${rootPartition} --pairs)
+
+ mkfs.${fsType} -F -L ${label} $diskImage -E offset=$(sectorsToBytes $START) $(sectorsToKilobytes $SECTORS)K
+ '' else ''
+ mkfs.${fsType} -F -L ${label} $diskImage
+ ''}
+
echo "copying staging root to image..."
cptofs -p ${optionalString (partitionTableType != "none") "-P ${rootPartition}"} -t ${fsType} -i $diskImage $root/* /
'';
@@ -219,7 +252,7 @@ in pkgs.vmTools.runInLinuxVM (
# Create the ESP and mount it. Unlike e2fsprogs, mkfs.vfat doesn't support an
# '-E offset=X' option, so we can't do this outside the VM.
- ${optionalString (partitionTableType == "efi") ''
+ ${optionalString (partitionTableType == "efi" || partitionTableType == "hybrid") ''
mkdir -p /mnt/boot
mkfs.vfat -n ESP /dev/vda1
mount /dev/vda1 /mnt/boot
diff --git a/nixos/modules/hardware/video/uvcvideo/default.nix b/nixos/modules/hardware/video/uvcvideo/default.nix
index 7e3e94fdf2bd..cf6aa052abb0 100644
--- a/nixos/modules/hardware/video/uvcvideo/default.nix
+++ b/nixos/modules/hardware/video/uvcvideo/default.nix
@@ -26,7 +26,7 @@ in
Whether to enable uvcvideo dynamic controls.
Note that enabling this brings the uvcdynctrl tool
- into your environement and register all dynamic controls from
+ into your environment and register all dynamic controls from
specified packages to the uvcvideo driver.
'';
};
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index 2681a9d3a9e8..585cef9b42ec 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -814,6 +814,7 @@
./services/security/torsocks.nix
./services/security/usbguard.nix
./services/security/vault.nix
+ ./services/security/yubikey-agent.nix
./services/system/cloud-init.nix
./services/system/dbus.nix
./services/system/earlyoom.nix
@@ -885,6 +886,7 @@
./services/web-servers/meguca.nix
./services/web-servers/mighttpd2.nix
./services/web-servers/minio.nix
+ ./services/web-servers/molly-brown.nix
./services/web-servers/nginx/default.nix
./services/web-servers/nginx/gitweb.nix
./services/web-servers/phpfpm/default.nix
diff --git a/nixos/modules/programs/gnupg.nix b/nixos/modules/programs/gnupg.nix
index 7a3cb588ee71..ce8799b21d69 100644
--- a/nixos/modules/programs/gnupg.nix
+++ b/nixos/modules/programs/gnupg.nix
@@ -70,6 +70,7 @@ in
agent.pinentryFlavor = mkOption {
type = types.nullOr (types.enum pkgs.pinentry.flavors);
example = "gnome3";
+ default = defaultPinentryFlavor;
description = ''
Which pinentry interface to use. If not null, the path to the
pinentry binary will be passed to gpg-agent via commandline and
@@ -91,8 +92,6 @@ in
};
config = mkIf cfg.agent.enable {
- programs.gnupg.agent.pinentryFlavor = mkDefault defaultPinentryFlavor;
-
# This overrides the systemd user unit shipped with the gnupg package
systemd.user.services.gpg-agent = mkIf (cfg.agent.pinentryFlavor != null) {
serviceConfig.ExecStart = [ "" ''
diff --git a/nixos/modules/security/pam.nix b/nixos/modules/security/pam.nix
index 688344852aeb..565c15dec24b 100644
--- a/nixos/modules/security/pam.nix
+++ b/nixos/modules/security/pam.nix
@@ -36,6 +36,17 @@ let
'';
};
+ p11Auth = mkOption {
+ default = config.security.pam.p11.enable;
+ type = types.bool;
+ description = ''
+ If set, keys listed in
+ ~/.ssh/authorized_keys and
+ ~/.eid/authorized_certificates
+ can be used to log in with the associated PKCS#11 tokens.
+ '';
+ };
+
u2fAuth = mkOption {
default = config.security.pam.u2f.enable;
type = types.bool;
@@ -352,6 +363,8 @@ let
"auth sufficient ${pkgs.pam_ssh_agent_auth}/libexec/pam_ssh_agent_auth.so file=~/.ssh/authorized_keys:~/.ssh/authorized_keys2:/etc/ssh/authorized_keys.d/%u"}
${optionalString cfg.fprintAuth
"auth sufficient ${pkgs.fprintd}/lib/security/pam_fprintd.so"}
+ ${let p11 = config.security.pam.p11; in optionalString cfg.p11Auth
+ "auth ${p11.control} ${pkgs.pam_p11}/lib/security/pam_p11.so ${pkgs.opensc}/lib/opensc-pkcs11.so"}
${let u2f = config.security.pam.u2f; in optionalString cfg.u2fAuth
"auth ${u2f.control} ${pkgs.pam_u2f}/lib/security/pam_u2f.so ${optionalString u2f.debug "debug"} ${optionalString (u2f.authFile != null) "authfile=${u2f.authFile}"} ${optionalString u2f.interactive "interactive"} ${optionalString u2f.cue "cue"}"}
${optionalString cfg.usbAuth
@@ -566,6 +579,39 @@ in
security.pam.enableOTPW = mkEnableOption "the OTPW (one-time password) PAM module";
+ security.pam.p11 = {
+ enable = mkOption {
+ default = false;
+ type = types.bool;
+ description = ''
+ Enables P11 PAM (pam_p11) module.
+
+ If set, users can log in with SSH keys and PKCS#11 tokens.
+
+ More information can be found here.
+ '';
+ };
+
+ control = mkOption {
+ default = "sufficient";
+ type = types.enum [ "required" "requisite" "sufficient" "optional" ];
+ description = ''
+ This option sets pam "control".
+ If you want to have multi factor authentication, use "required".
+ If you want to use the PKCS#11 device instead of the regular password,
+ use "sufficient".
+
+ Read
+
+ pam.conf
+ 5
+
+ for better understanding of this option.
+ '';
+ };
+ };
+
security.pam.u2f = {
enable = mkOption {
default = false;
@@ -747,6 +793,7 @@ in
++ optionals config.krb5.enable [pam_krb5 pam_ccreds]
++ optionals config.security.pam.enableOTPW [ pkgs.otpw ]
++ optionals config.security.pam.oath.enable [ pkgs.oathToolkit ]
+ ++ optionals config.security.pam.p11.enable [ pkgs.pam_p11 ]
++ optionals config.security.pam.u2f.enable [ pkgs.pam_u2f ];
boot.supportedFilesystems = optionals config.security.pam.enableEcryptfs [ "ecryptfs" ];
diff --git a/nixos/modules/services/audio/roon-server.nix b/nixos/modules/services/audio/roon-server.nix
index 6aed485638cc..eceb65044c5b 100644
--- a/nixos/modules/services/audio/roon-server.nix
+++ b/nixos/modules/services/audio/roon-server.nix
@@ -45,14 +45,14 @@ in {
environment.ROON_DATAROOT = "/var/lib/${name}";
serviceConfig = {
- ExecStart = "${pkgs.roon-server}/opt/start.sh";
+ ExecStart = "${pkgs.roon-server}/start.sh";
LimitNOFILE = 8192;
User = cfg.user;
Group = cfg.group;
StateDirectory = name;
};
};
-
+
networking.firewall = mkIf cfg.openFirewall {
allowedTCPPortRanges = [
{ from = 9100; to = 9200; }
@@ -60,7 +60,7 @@ in {
allowedUDPPorts = [ 9003 ];
};
-
+
users.groups.${cfg.group} = {};
users.users.${cfg.user} =
if cfg.user == "roon-server" then {
diff --git a/nixos/modules/services/desktops/flatpak.nix b/nixos/modules/services/desktops/flatpak.nix
index 7fb0024f37dc..7da92cc9f264 100644
--- a/nixos/modules/services/desktops/flatpak.nix
+++ b/nixos/modules/services/desktops/flatpak.nix
@@ -42,6 +42,7 @@ in {
# It has been possible since https://github.com/flatpak/flatpak/releases/tag/1.3.2
# to build a SELinux policy module.
+ # TODO: use sysusers.d
users.users.flatpak = {
description = "Flatpak system helper";
group = "flatpak";
diff --git a/nixos/modules/services/desktops/malcontent.nix b/nixos/modules/services/desktops/malcontent.nix
index 5d6912595b52..1fbeb17e6aeb 100644
--- a/nixos/modules/services/desktops/malcontent.nix
+++ b/nixos/modules/services/desktops/malcontent.nix
@@ -28,7 +28,10 @@ with lib;
malcontent-ui
];
- services.dbus.packages = [ pkgs.malcontent ];
+ services.dbus.packages = [
+ # D-Bus services are in `out`, not the default `bin` output that would be picked up by `makeDbusConf`.
+ pkgs.malcontent.out
+ ];
services.accounts-daemon.enable = true;
diff --git a/nixos/modules/services/misc/mautrix-telegram.nix b/nixos/modules/services/misc/mautrix-telegram.nix
index 78a42fbb574b..c5e8a5b85ec2 100644
--- a/nixos/modules/services/misc/mautrix-telegram.nix
+++ b/nixos/modules/services/misc/mautrix-telegram.nix
@@ -125,7 +125,7 @@ in {
if [ ! -f '${registrationFile}' ]; then
${pkgs.mautrix-telegram}/bin/mautrix-telegram \
--generate-registration \
- --base-config='${pkgs.mautrix-telegram}/example-config.yaml' \
+ --base-config='${pkgs.mautrix-telegram}/${pkgs.mautrix-telegram.pythonModule.sitePackages}/mautrix_telegram/example-config.yaml' \
--config='${settingsFile}' \
--registration='${registrationFile}'
fi
diff --git a/nixos/modules/services/monitoring/do-agent.nix b/nixos/modules/services/monitoring/do-agent.nix
index 2d3fe2f79768..4dfb6236727b 100644
--- a/nixos/modules/services/monitoring/do-agent.nix
+++ b/nixos/modules/services/monitoring/do-agent.nix
@@ -4,6 +4,7 @@ with lib;
let
cfg = config.services.do-agent;
+
in
{
options.services.do-agent = {
@@ -11,23 +12,13 @@ in
};
config = mkIf cfg.enable {
- environment.systemPackages = [ pkgs.do-agent ];
+ systemd.packages = [ pkgs.do-agent ];
systemd.services.do-agent = {
- description = "DigitalOcean Droplet Metrics Agent";
wantedBy = [ "multi-user.target" ];
- after = [ "network-online.target" ];
- wants = [ "network-online.target" ];
serviceConfig = {
- ExecStart = "${pkgs.do-agent}/bin/do-agent --syslog";
- Restart = "always";
- OOMScoreAdjust = -900;
- SyslogIdentifier = "DigitalOceanAgent";
- PrivateTmp = "yes";
- ProtectSystem = "full";
- ProtectHome = "yes";
- NoNewPrivileges = "yes";
- DynamicUser = "yes";
+ ExecStart = [ "" "${pkgs.do-agent}/bin/do-agent --syslog" ];
+ DynamicUser = true;
};
};
};
diff --git a/nixos/modules/services/networking/bitcoind.nix b/nixos/modules/services/networking/bitcoind.nix
index 4e00a8865474..38537ad2de72 100644
--- a/nixos/modules/services/networking/bitcoind.nix
+++ b/nixos/modules/services/networking/bitcoind.nix
@@ -3,31 +3,8 @@
with lib;
let
- cfg = config.services.bitcoind;
- pidFile = "${cfg.dataDir}/bitcoind.pid";
- configFile = pkgs.writeText "bitcoin.conf" ''
- ${optionalString cfg.testnet "testnet=1"}
- ${optionalString (cfg.dbCache != null) "dbcache=${toString cfg.dbCache}"}
- ${optionalString (cfg.prune != null) "prune=${toString cfg.prune}"}
- # Connection options
- ${optionalString (cfg.port != null) "port=${toString cfg.port}"}
-
- # RPC server options
- ${optionalString (cfg.rpc.port != null) "rpcport=${toString cfg.rpc.port}"}
- ${concatMapStringsSep "\n"
- (rpcUser: "rpcauth=${rpcUser.name}:${rpcUser.passwordHMAC}")
- (attrValues cfg.rpc.users)
- }
-
- # Extra config options (from bitcoind nixos service)
- ${cfg.extraConfig}
- '';
- cmdlineOptions = escapeShellArgs [
- "-conf=${cfg.configFile}"
- "-datadir=${cfg.dataDir}"
- "-pid=${pidFile}"
- ];
+ eachBitcoind = config.services.bitcoind;
rpcUserOpts = { name, ... }: {
options = {
@@ -39,11 +16,14 @@ let
'';
};
passwordHMAC = mkOption {
- type = with types; uniq (strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
+ type = types.uniq (types.strMatching "[0-9a-f]+\\$[0-9a-f]{64}");
example = "f7efda5c189b999524f151318c0c86$d5b51b3beffbc02b724e5d095828e0bc8b2456e9ac8757ae3211a5d9b16a22ae";
description = ''
Password HMAC-SHA-256 for JSON-RPC connections. Must be a string of the
format <SALT-HEX>$<HMAC-HEX>.
+
+ Tool (Python script) for HMAC generation is available here:
+
'';
};
};
@@ -51,10 +31,10 @@ let
name = mkDefault name;
};
};
-in {
- options = {
- services.bitcoind = {
+ bitcoindOpts = { config, lib, name, ...}: {
+ options = {
+
enable = mkEnableOption "Bitcoin daemon";
package = mkOption {
@@ -63,12 +43,14 @@ in {
defaultText = "pkgs.bitcoind";
description = "The package providing bitcoin binaries.";
};
+
configFile = mkOption {
- type = types.path;
- default = configFile;
- example = "/etc/bitcoind.conf";
+ type = types.nullOr types.path;
+ default = null;
+ example = "/var/lib/${name}/bitcoin.conf";
description = "The configuration file path to supply bitcoind.";
};
+
extraConfig = mkOption {
type = types.lines;
default = "";
@@ -79,20 +61,22 @@ in {
'';
description = "Additional configurations to be appended to bitcoin.conf.";
};
+
dataDir = mkOption {
type = types.path;
- default = "/var/lib/bitcoind";
+ default = "/var/lib/bitcoind-${name}";
description = "The data directory for bitcoind.";
};
user = mkOption {
type = types.str;
- default = "bitcoin";
+ default = "bitcoind-${name}";
description = "The user as which to run bitcoind.";
};
+
group = mkOption {
type = types.str;
- default = cfg.user;
+ default = config.user;
description = "The group as which to run bitcoind.";
};
@@ -110,29 +94,36 @@ in {
bob.passwordHMAC = "b2dd077cb54591a2f3139e69a897ac$4e71f08d48b4347cf8eff3815c0e25ae2e9a4340474079f55705f40574f4ec99";
}
'';
- type = with types; loaOf (submodule rpcUserOpts);
- description = ''
- RPC user information for JSON-RPC connnections.
- '';
+ type = types.attrsOf (types.submodule rpcUserOpts);
+ description = "RPC user information for JSON-RPC connnections.";
};
};
+ pidFile = mkOption {
+ type = types.path;
+ default = "${config.dataDir}/bitcoind.pid";
+ description = "Location of bitcoind pid file.";
+ };
+
testnet = mkOption {
type = types.bool;
default = false;
- description = "Whether to use the test chain.";
+ description = "Whether to use the testnet instead of mainnet.";
};
+
port = mkOption {
type = types.nullOr types.port;
default = null;
description = "Override the default port on which to listen for connections.";
};
+
dbCache = mkOption {
type = types.nullOr (types.ints.between 4 16384);
default = null;
example = 4000;
- description = "Override the default database cache size in megabytes.";
+ description = "Override the default database cache size in MiB.";
};
+
prune = mkOption {
type = types.nullOr (types.coercedTo
(types.enum [ "disable" "manual" ])
@@ -149,45 +140,122 @@ in {
and -rescan. Warning: Reverting this setting requires re-downloading
the entire blockchain. ("disable" = disable pruning blocks, "manual"
= allow manual pruning via RPC, >=550 = automatically prune block files
- to stay under the specified target size in MiB)
+ to stay under the specified target size in MiB).
+ '';
+ };
+
+ extraCmdlineOptions = mkOption {
+ type = types.listOf types.str;
+ default = [];
+ description = ''
+ Extra command line options to pass to bitcoind.
+ Run bitcoind --help to list all available options.
'';
};
};
};
+in
+{
- config = mkIf cfg.enable {
- environment.systemPackages = [ cfg.package ];
- systemd.tmpfiles.rules = [
- "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
- "L '${cfg.dataDir}/bitcoin.conf' - - - - '${cfg.configFile}'"
- ];
- systemd.services.bitcoind = {
- description = "Bitcoin daemon";
- after = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- User = cfg.user;
- Group = cfg.group;
- ExecStart = "${cfg.package}/bin/bitcoind ${cmdlineOptions}";
- Restart = "on-failure";
-
- # Hardening measures
- PrivateTmp = "true";
- ProtectSystem = "full";
- NoNewPrivileges = "true";
- PrivateDevices = "true";
- MemoryDenyWriteExecute = "true";
- };
+ options = {
+ services.bitcoind = mkOption {
+ type = types.attrsOf (types.submodule bitcoindOpts);
+ default = {};
+ description = "Specification of one or more bitcoind instances.";
};
- users.users.${cfg.user} = {
+ };
+
+ config = mkIf (eachBitcoind != {}) {
+
+ assertions = flatten (mapAttrsToList (bitcoindName: cfg: [
+ {
+ assertion = (cfg.prune != null) -> (builtins.elem cfg.prune [ "disable" "manual" 0 1 ] || (builtins.isInt cfg.prune && cfg.prune >= 550));
+ message = ''
+ If set, services.bitcoind.${bitcoindName}.prune has to be "disable", "manual", 0 , 1 or >= 550.
+ '';
+ }
+ {
+ assertion = (cfg.rpc.users != {}) -> (cfg.configFile == null);
+ message = ''
+ You cannot set both services.bitcoind.${bitcoindName}.rpc.users and services.bitcoind.${bitcoindName}.configFile
+ as they are exclusive. RPC user setting would have no effect if custom configFile would be used.
+ '';
+ }
+ ]) eachBitcoind);
+
+ environment.systemPackages = flatten (mapAttrsToList (bitcoindName: cfg: [
+ cfg.package
+ ]) eachBitcoind);
+
+ systemd.services = mapAttrs' (bitcoindName: cfg: (
+ nameValuePair "bitcoind-${bitcoindName}" (
+ let
+ configFile = pkgs.writeText "bitcoin.conf" ''
+ # If Testnet is enabled, we need to add [test] section
+ # otherwise, some options (e.g.: custom RPC port) will not work
+ ${optionalString cfg.testnet "[test]"}
+ # RPC users
+ ${concatMapStringsSep "\n"
+ (rpcUser: "rpcauth=${rpcUser.name}:${rpcUser.passwordHMAC}")
+ (attrValues cfg.rpc.users)
+ }
+ # Extra config options (from bitcoind nixos service)
+ ${cfg.extraConfig}
+ '';
+ in {
+ description = "Bitcoin daemon";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ User = cfg.user;
+ Group = cfg.group;
+ ExecStart = ''
+ ${cfg.package}/bin/bitcoind \
+ ${if (cfg.configFile != null) then
+ "-conf=${cfg.configFile}"
+ else
+ "-conf=${configFile}"
+ } \
+ -datadir=${cfg.dataDir} \
+ -pid=${cfg.pidFile} \
+ ${optionalString cfg.testnet "-testnet"}\
+ ${optionalString (cfg.port != null) "-port=${toString cfg.port}"}\
+ ${optionalString (cfg.prune != null) "-prune=${toString cfg.prune}"}\
+ ${optionalString (cfg.dbCache != null) "-dbcache=${toString cfg.dbCache}"}\
+ ${optionalString (cfg.rpc.port != null) "-rpcport=${toString cfg.rpc.port}"}\
+ ${toString cfg.extraCmdlineOptions}
+ '';
+ Restart = "on-failure";
+
+ # Hardening measures
+ PrivateTmp = "true";
+ ProtectSystem = "full";
+ NoNewPrivileges = "true";
+ PrivateDevices = "true";
+ MemoryDenyWriteExecute = "true";
+ };
+ }
+ ))) eachBitcoind;
+
+ systemd.tmpfiles.rules = flatten (mapAttrsToList (bitcoindName: cfg: [
+ "d '${cfg.dataDir}' 0770 '${cfg.user}' '${cfg.group}' - -"
+ ]) eachBitcoind);
+
+ users.users = mapAttrs' (bitcoindName: cfg: (
+ nameValuePair "bitcoind-${bitcoindName}" {
name = cfg.user;
group = cfg.group;
description = "Bitcoin daemon user";
home = cfg.dataDir;
isSystemUser = true;
- };
- users.groups.${cfg.group} = {
- name = cfg.group;
- };
+ })) eachBitcoind;
+
+ users.groups = mapAttrs' (bitcoindName: cfg: (
+ nameValuePair "${cfg.group}" { }
+ )) eachBitcoind;
+
};
+
+ meta.maintainers = with maintainers; [ maintainers."1000101" ];
+
}
diff --git a/nixos/modules/services/networking/dhcpd.nix b/nixos/modules/services/networking/dhcpd.nix
index 67f7d8118870..8966deac76cb 100644
--- a/nixos/modules/services/networking/dhcpd.nix
+++ b/nixos/modules/services/networking/dhcpd.nix
@@ -11,7 +11,7 @@ let
''
default-lease-time 600;
max-lease-time 7200;
- authoritative;
+ ${optionalString (!cfg.authoritative) "not "}authoritative;
ddns-update-style interim;
log-facility local1; # see dhcpd.nix
@@ -176,6 +176,16 @@ let
'';
};
+ authoritative = mkOption {
+ type = types.bool;
+ default = true;
+ description = ''
+ Whether the DHCP server shall send DHCPNAK messages to misconfigured
+ clients. If this is not done, clients may be unable to get a correct
+ IP address after changing subnets until their old lease has expired.
+ '';
+ };
+
};
in
diff --git a/nixos/modules/services/networking/skydns.nix b/nixos/modules/services/networking/skydns.nix
index e79d6de92644..ea466de93275 100644
--- a/nixos/modules/services/networking/skydns.nix
+++ b/nixos/modules/services/networking/skydns.nix
@@ -64,7 +64,7 @@ in {
extraConfig = mkOption {
default = {};
type = types.attrsOf types.str;
- description = "Skydns attribute set of extra config options passed as environemnt variables.";
+ description = "Skydns attribute set of extra config options passed as environment variables.";
};
};
diff --git a/nixos/modules/services/networking/wpa_supplicant.nix b/nixos/modules/services/networking/wpa_supplicant.nix
index a7dea95056a0..08a17d20ed7f 100644
--- a/nixos/modules/services/networking/wpa_supplicant.nix
+++ b/nixos/modules/services/networking/wpa_supplicant.nix
@@ -4,7 +4,7 @@ with lib;
let
cfg = config.networking.wireless;
- configFile = if cfg.networks != {} then pkgs.writeText "wpa_supplicant.conf" ''
+ configFile = if cfg.networks != {} || cfg.extraConfig != "" || cfg.userControlled.enable then pkgs.writeText "wpa_supplicant.conf" ''
${optionalString cfg.userControlled.enable ''
ctrl_interface=DIR=/run/wpa_supplicant GROUP=${cfg.userControlled.group}
update_config=1''}
diff --git a/nixos/modules/services/networking/yggdrasil.nix b/nixos/modules/services/networking/yggdrasil.nix
index 0fe9a200a1b6..a71c635c9f6e 100644
--- a/nixos/modules/services/networking/yggdrasil.nix
+++ b/nixos/modules/services/networking/yggdrasil.nix
@@ -195,5 +195,8 @@ in {
# Make yggdrasilctl available on the command line.
environment.systemPackages = [ cfg.package ];
});
- meta.maintainers = with lib.maintainers; [ gazally ehmry ];
+ meta = {
+ doc = ./yggdrasil.xml;
+ maintainers = with lib.maintainers; [ gazally ehmry ];
+ };
}
diff --git a/nixos/modules/services/networking/yggdrasil.xml b/nixos/modules/services/networking/yggdrasil.xml
new file mode 100644
index 000000000000..c012cd4a9294
--- /dev/null
+++ b/nixos/modules/services/networking/yggdrasil.xml
@@ -0,0 +1,157 @@
+
+
+ Yggdrasil
+
+ Source:
+ modules/services/networking/yggdrasil/default.nix
+
+
+ Upstream documentation:
+
+
+
+Yggdrasil is an early-stage implementation of a fully end-to-end encrypted,
+self-arranging IPv6 network.
+
+
+ Configuration
+
+ Simple ephemeral node
+
+An annotated example of a simple configuration:
+
+{
+ services.yggdrasil = {
+ enable = true;
+ persistentKeys = false;
+ # The NixOS module will generate new keys and a new IPv6 address each time
+ # it is started if persistentKeys is not enabled.
+
+ config = {
+ Peers = [
+ # Yggdrasil will automatically connect and "peer" with other nodes it
+ # discovers via link-local multicast annoucements. Unless this is the
+ # case (it probably isn't) a node needs peers within the existing
+ # network that it can tunnel to.
+ "tcp://1.2.3.4:1024"
+ "tcp://1.2.3.5:1024"
+ # Public peers can be found at
+ # https://github.com/yggdrasil-network/public-peers
+ ];
+ };
+ };
+}
+
+
+
+
+ Persistent node with prefix
+
+A node with a fixed address that announces a prefix:
+
+let
+ address = "210:5217:69c0:9afc:1b95:b9f:8718:c3d2";
+ prefix = "310:5217:69c0:9afc";
+ # taken from the output of "yggdrasilctl getself".
+in {
+
+ services.yggdrasil = {
+ enable = true;
+ persistentKeys = true; # Maintain a fixed public key and IPv6 address.
+ config = {
+ Peers = [ "tcp://1.2.3.4:1024" "tcp://1.2.3.5:1024" ];
+ NodeInfo = {
+ # This information is visible to the network.
+ name = config.networking.hostName;
+ location = "The North Pole";
+ };
+ };
+ };
+
+ boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+ # Forward traffic under the prefix.
+
+ networking.interfaces.${eth0}.ipv6.addresses = [{
+ # Set a 300::/8 address on the local physical device.
+ address = prefix + "::1";
+ prefixLength = 64;
+ }];
+
+ services.radvd = {
+ # Annouce the 300::/8 prefix to eth0.
+ enable = true;
+ config = ''
+ interface eth0
+ {
+ AdvSendAdvert on;
+ AdvDefaultLifetime 0;
+ prefix ${prefix}::/64 {
+ AdvOnLink on;
+ AdvAutonomous on;
+ };
+ route 200::/8 {};
+ };
+ '';
+ };
+}
+
+
+
+
+ Yggdrasil attached Container
+
+A NixOS container attached to the Yggdrasil network via a node running on the
+host:
+
+let
+ yggPrefix64 = "310:5217:69c0:9afc";
+ # Again, taken from the output of "yggdrasilctl getself".
+in
+{
+ boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+ # Enable IPv6 forwarding.
+
+ networking = {
+ bridges.br0.interfaces = [ ];
+ # A bridge only to containers…
+
+ interfaces.br0 = {
+ # … configured with a prefix address.
+ ipv6.addresses = [{
+ address = "${yggPrefix64}::1";
+ prefixLength = 64;
+ }];
+ };
+ };
+
+ containers.foo = {
+ autoStart = true;
+ privateNetwork = true;
+ hostBridge = "br0";
+ # Attach the container to the bridge only.
+ config = { config, pkgs, ... }: {
+ networking.interfaces.eth0.ipv6 = {
+ addresses = [{
+ # Configure a prefix address.
+ address = "${yggPrefix64}::2";
+ prefixLength = 64;
+ }];
+ routes = [{
+ # Configure the prefix route.
+ address = "200::";
+ prefixLength = 7;
+ via = "${yggPrefix64}::1";
+ }];
+ };
+
+ services.httpd.enable = true;
+ networking.firewall.allowedTCPPorts = [ 80 ];
+ };
+ };
+
+}
+
+
+
+
+
diff --git a/nixos/modules/services/security/yubikey-agent.nix b/nixos/modules/services/security/yubikey-agent.nix
new file mode 100644
index 000000000000..2972c64a3641
--- /dev/null
+++ b/nixos/modules/services/security/yubikey-agent.nix
@@ -0,0 +1,60 @@
+# Global configuration for yubikey-agent.
+
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.yubikey-agent;
+
+ # reuse the pinentryFlavor option from the gnupg module
+ pinentryFlavor = config.programs.gnupg.agent.pinentryFlavor;
+in
+{
+ ###### interface
+
+ meta.maintainers = with maintainers; [ philandstuff rawkode ];
+
+ options = {
+
+ services.yubikey-agent = {
+ enable = mkOption {
+ type = types.bool;
+ default = false;
+ description = ''
+ Whether to start yubikey-agent when you log in. Also sets
+ SSH_AUTH_SOCK to point at yubikey-agent.
+
+ Note that yubikey-agent will use whatever pinentry is
+ specified in programs.gnupg.agent.pinentryFlavor.
+ '';
+ };
+
+ package = mkOption {
+ type = types.package;
+ default = pkgs.yubikey-agent;
+ defaultText = "pkgs.yubikey-agent";
+ description = ''
+ The package used for the yubikey-agent daemon.
+ '';
+ };
+ };
+ };
+
+ config = mkIf cfg.enable {
+ environment.systemPackages = [ cfg.package ];
+ systemd.packages = [ cfg.package ];
+
+ # This overrides the systemd user unit shipped with the
+ # yubikey-agent package
+ systemd.user.services.yubikey-agent = mkIf (pinentryFlavor != null) {
+ path = [ pkgs.pinentry.${pinentryFlavor} ];
+ };
+
+ environment.extraInit = ''
+ if [ -z "$SSH_AUTH_SOCK" -a -n "$XDG_RUNTIME_DIR" ]; then
+ export SSH_AUTH_SOCK="$XDG_RUNTIME_DIR/yubikey-agent/yubikey-agent.sock"
+ fi
+ '';
+ };
+}
diff --git a/nixos/modules/services/web-servers/molly-brown.nix b/nixos/modules/services/web-servers/molly-brown.nix
new file mode 100644
index 000000000000..e9052a184b2d
--- /dev/null
+++ b/nixos/modules/services/web-servers/molly-brown.nix
@@ -0,0 +1,117 @@
+{ config, lib, pkgs, ... }:
+
+with lib;
+
+let
+ cfg = config.services.molly-brown;
+
+ settingsType = with types;
+ attrsOf (oneOf [
+ int
+ str
+ (listOf str)
+ (attrsOf (oneOf [ int str (listOf str) (attrsOf str) ]))
+ ]) // {
+ description = "primitive expression convertable to TOML";
+ };
+
+ configFile = pkgs.runCommand "molly-brown.toml" {
+ buildInputs = [ pkgs.remarshal ];
+ preferLocalBuild = true;
+ passAsFile = [ "settings" ];
+ settings = builtins.toJSON cfg.settings;
+ } "remarshal -if json -of toml < $settingsPath > $out";
+in {
+
+ options.services.molly-brown = {
+
+ enable = mkEnableOption "Molly-Brown Gemini server";
+
+ port = mkOption {
+ default = 1965;
+ type = types.port;
+ description = ''
+ TCP port for molly-brown to bind to.
+ '';
+ };
+
+ hostName = mkOption {
+ type = types.str;
+ example = literalExample "config.networking.hostName";
+ default = config.networking.hostName;
+ description = ''
+ The hostname to respond to requests for. Requests for URLs with
+ other hosts will result in a status 53 (PROXY REQUEST REFUSED)
+ response.
+ '';
+ };
+
+ certPath = mkOption {
+ type = types.path;
+ example = "/var/lib/acme/example.com/cert.pem";
+ description = ''
+ Path to TLS certificate. An ACME certificate and key may be
+ shared with an HTTP server, but only if molly-brown has
+ permissions allowing it to read such keys.
+
+ As an example:
+
+ security.acme.certs."example.com".allowKeysForGroup = true;
+ systemd.services.molly-brown.serviceConfig.SupplementaryGroups =
+ [ config.security.acme.certs."example.com".group ];
+
+ '';
+ };
+
+ keyPath = mkOption {
+ type = types.path;
+ example = "/var/lib/acme/example.com/key.pem";
+ description = "Path to TLS key. See .";
+ };
+
+ docBase = mkOption {
+ type = types.path;
+ example = "/var/lib/molly-brown";
+ description = "Base directory for Gemini content.";
+ };
+
+ settings = mkOption {
+ type = settingsType;
+ default = { };
+ description = ''
+ molly-brown configuration. Refer to
+
+ for details on supported values.
+ '';
+ };
+
+ };
+
+ config = mkIf cfg.enable {
+
+ services.molly-brown.settings = let logDir = "/var/log/molly-brown";
+ in {
+ Port = cfg.port;
+ Hostname = cfg.hostName;
+ CertPath = cfg.certPath;
+ KeyPath = cfg.keyPath;
+ DocBase = cfg.docBase;
+ AccessLog = "${logDir}/access.log";
+ ErrorLog = "${logDir}/error.log";
+ };
+
+ systemd.services.molly-brown = {
+ description = "Molly Brown gemini server";
+ after = [ "network.target" ];
+ wantedBy = [ "multi-user.target" ];
+ serviceConfig = {
+ DynamicUser = true;
+ LogsDirectory = "molly-brown";
+ ExecStart = "${pkgs.molly-brown}/bin/molly-brown -c ${configFile}";
+ Restart = "always";
+ };
+ };
+
+ };
+
+}
diff --git a/nixos/modules/tasks/lvm.nix b/nixos/modules/tasks/lvm.nix
index b8f7a01e44ed..2c3cc4c5467d 100644
--- a/nixos/modules/tasks/lvm.nix
+++ b/nixos/modules/tasks/lvm.nix
@@ -22,7 +22,7 @@ in {
config = mkMerge [
(mkIf (!config.boot.isContainer) {
- environment.etc."tmpfiles.d/lvm2.conf".source = "${cfg.package}/lib/tmpfiles.d/lvm2.conf";
+ systemd.tmpfiles.packages = [ cfg.package.out ];
environment.systemPackages = [ cfg.package ];
systemd.packages = [ cfg.package ];
diff --git a/nixos/release.nix b/nixos/release.nix
index cf16986b2136..1f5c15812695 100644
--- a/nixos/release.nix
+++ b/nixos/release.nix
@@ -310,6 +310,11 @@ in rec {
services.xserver.desktopManager.gnome3.enable = true;
});
+ pantheon = makeClosure ({ ... }:
+ { services.xserver.enable = true;
+ services.xserver.desktopManager.pantheon.enable = true;
+ });
+
# Linux/Apache/PostgreSQL/PHP stack.
lapp = makeClosure ({ pkgs, ... }:
{ services.httpd.enable = true;
diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix
index 7f3bb9bcc819..12f3ee303311 100644
--- a/nixos/tests/all-tests.nix
+++ b/nixos/tests/all-tests.nix
@@ -32,6 +32,7 @@ in
beanstalkd = handleTest ./beanstalkd.nix {};
bees = handleTest ./bees.nix {};
bind = handleTest ./bind.nix {};
+ bitcoind = handleTest ./bitcoind.nix {};
bittorrent = handleTest ./bittorrent.nix {};
blockbook-frontend = handleTest ./blockbook-frontend.nix {};
buildkite-agents = handleTest ./buildkite-agents.nix {};
@@ -319,6 +320,7 @@ in
sudo = handleTest ./sudo.nix {};
switchTest = handleTest ./switch-test.nix {};
sympa = handleTest ./sympa.nix {};
+ syncthing = handleTest ./syncthing.nix {};
syncthing-init = handleTest ./syncthing-init.nix {};
syncthing-relay = handleTest ./syncthing-relay.nix {};
systemd = handleTest ./systemd.nix {};
diff --git a/nixos/tests/bitcoind.nix b/nixos/tests/bitcoind.nix
new file mode 100644
index 000000000000..95c6a5b91bce
--- /dev/null
+++ b/nixos/tests/bitcoind.nix
@@ -0,0 +1,46 @@
+import ./make-test-python.nix ({ pkgs, ... }: {
+ name = "bitcoind";
+ meta = with pkgs.stdenv.lib; {
+ maintainers = with maintainers; [ maintainers."1000101" ];
+ };
+
+ machine = { ... }: {
+ services.bitcoind."mainnet" = {
+ enable = true;
+ rpc = {
+ port = 8332;
+ users.rpc.passwordHMAC = "acc2374e5f9ba9e62a5204d3686616cf$53abdba5e67a9005be6a27ca03a93ce09e58854bc2b871523a0d239a72968033";
+ users.rpc2.passwordHMAC = "1495e4a3ad108187576c68f7f9b5ddc5$accce0881c74aa01bb8960ff3bdbd39f607fd33178147679e055a4ac35f53225";
+ };
+ };
+ services.bitcoind."testnet" = {
+ enable = true;
+ configFile = "/test.blank";
+ testnet = true;
+ rpc = {
+ port = 18332;
+ };
+ extraCmdlineOptions = [ "-rpcuser=rpc" "-rpcpassword=rpc" "-rpcauth=rpc2:1495e4a3ad108187576c68f7f9b5ddc5$accce0881c74aa01bb8960ff3bdbd39f607fd33178147679e055a4ac35f53225" ];
+ };
+ };
+
+ testScript = ''
+ start_all()
+
+ machine.wait_for_unit("bitcoind-mainnet.service")
+ machine.wait_for_unit("bitcoind-testnet.service")
+
+ machine.wait_until_succeeds(
+ 'curl --user rpc:rpc --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:8332 | grep \'"chain":"main"\' '
+ )
+ machine.wait_until_succeeds(
+ 'curl --user rpc2:rpc2 --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:8332 | grep \'"chain":"main"\' '
+ )
+ machine.wait_until_succeeds(
+ 'curl --user rpc:rpc --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:18332 | grep \'"chain":"test"\' '
+ )
+ machine.wait_until_succeeds(
+ 'curl --user rpc2:rpc2 --data-binary \'{"jsonrpc": "1.0", "id":"curltest", "method": "getblockchaininfo", "params": [] }\' -H \'content-type: text/plain;\' localhost:18332 | grep \'"chain":"test"\' '
+ )
+ '';
+})
diff --git a/nixos/tests/installed-tests/default.nix b/nixos/tests/installed-tests/default.nix
index b6bdfea22770..889a00d4b568 100644
--- a/nixos/tests/installed-tests/default.nix
+++ b/nixos/tests/installed-tests/default.nix
@@ -50,6 +50,12 @@ let
environment.systemPackages = with pkgs; [ gnome-desktop-testing ];
+ # The installed tests need to be added to the test VM’s closure.
+ # Otherwise, their dependencies might not actually be registered
+ # as valid paths in the VM’s Nix store database,
+ # and `nix-store --query` commands run as part of the tests
+ # (for example when building Flatpak runtimes) will fail.
+ environment.variables.TESTED_PACKAGE_INSTALLED_TESTS = "${tested.installedTests}/share";
};
testScript =
diff --git a/nixos/tests/installed-tests/flatpak.nix b/nixos/tests/installed-tests/flatpak.nix
index 091c99326629..8aeeaca90f61 100644
--- a/nixos/tests/installed-tests/flatpak.nix
+++ b/nixos/tests/installed-tests/flatpak.nix
@@ -5,14 +5,11 @@ makeInstalledTest {
withX11 = true;
testConfig = {
- services.xserver.desktopManager.gnome3.enable = true; # TODO: figure out minimal environment where the tests work
- # common/x11.nix enables the auto display manager (lightdm)
- services.xserver.displayManager.gdm.enable = false;
- services.gnome3.core-utilities.enable = false;
+ xdg.portal.enable = true;
services.flatpak.enable = true;
- environment.systemPackages = with pkgs; [ gnupg ostree python2 ];
+ environment.systemPackages = with pkgs; [ gnupg ostree python3 ];
virtualisation.memorySize = 2047;
- virtualisation.diskSize = 1024;
+ virtualisation.diskSize = 3072;
};
testRunnerFlags = "--timeout 3600";
diff --git a/nixos/tests/installed-tests/ostree.nix b/nixos/tests/installed-tests/ostree.nix
index eef7cace54cc..90e09ad4ddf4 100644
--- a/nixos/tests/installed-tests/ostree.nix
+++ b/nixos/tests/installed-tests/ostree.nix
@@ -3,21 +3,10 @@
makeInstalledTest {
tested = pkgs.ostree;
- # TODO: Wrap/patch the tests directly in the package
testConfig = {
environment.systemPackages = with pkgs; [
- (python3.withPackages (p: with p; [ pyyaml ]))
gnupg
ostree
];
-
- # for GJS tests
- environment.variables.GI_TYPELIB_PATH = lib.makeSearchPath "lib/girepository-1.0" (with pkgs; [
- gtk3
- pango.out
- ostree
- gdk-pixbuf
- atk
- ]);
};
}
diff --git a/nixos/tests/installer.nix b/nixos/tests/installer.nix
index 22132073142f..02b839fee3f5 100644
--- a/nixos/tests/installer.nix
+++ b/nixos/tests/installer.nix
@@ -562,7 +562,7 @@ in {
"sleep 1",
"lvcreate --size 1G --name swap MyVolGroup",
"sleep 1",
- "lvcreate --size 2G --name nixos MyVolGroup",
+ "lvcreate --size 3G --name nixos MyVolGroup",
"sleep 1",
"mkswap -f /dev/MyVolGroup/swap -L swap",
"swapon -L swap",
diff --git a/nixos/tests/molly-brown.nix b/nixos/tests/molly-brown.nix
new file mode 100644
index 000000000000..09ce42726ca9
--- /dev/null
+++ b/nixos/tests/molly-brown.nix
@@ -0,0 +1,71 @@
+import ./make-test-python.nix ({ pkgs, ... }:
+
+ let testString = "NixOS Gemini test successful";
+ in {
+
+ name = "molly-brown";
+ meta = with pkgs.stdenv.lib.maintainers; { maintainers = [ ehmry ]; };
+
+ nodes = {
+
+ geminiServer = { config, pkgs, ... }:
+ let
+ inherit (config.networking) hostName;
+ cfg = config.services.molly-brown;
+ in {
+
+ environment.systemPackages = [
+ (pkgs.writeScriptBin "test-gemini" ''
+ #!${pkgs.python3}/bin/python
+
+ import socket
+ import ssl
+ import tempfile
+ import textwrap
+ import urllib.parse
+
+ url = "gemini://geminiServer/init.gmi"
+ parsed_url = urllib.parse.urlparse(url)
+
+ s = socket.create_connection((parsed_url.netloc, 1965))
+ context = ssl.SSLContext()
+ context.check_hostname = False
+ context.verify_mode = ssl.CERT_NONE
+ s = context.wrap_socket(s, server_hostname=parsed_url.netloc)
+ s.sendall((url + "\r\n").encode("UTF-8"))
+ fp = s.makefile("rb")
+ print(fp.readline().strip())
+ print(fp.readline().strip())
+ print(fp.readline().strip())
+ '')
+ ];
+
+ networking.firewall.allowedTCPPorts = [ cfg.settings.Port ];
+
+ services.molly-brown = {
+ enable = true;
+ docBase = "/tmp/docs";
+ certPath = "/tmp/cert.pem";
+ keyPath = "/tmp/key.pem";
+ };
+
+ systemd.services.molly-brown.preStart = ''
+ ${pkgs.openssl}/bin/openssl genrsa -out "/tmp/key.pem"
+ ${pkgs.openssl}/bin/openssl req -new \
+ -subj "/CN=${config.networking.hostName}" \
+ -key "/tmp/key.pem" -out /tmp/request.pem
+ ${pkgs.openssl}/bin/openssl x509 -req -days 3650 \
+ -in /tmp/request.pem -signkey "/tmp/key.pem" -out "/tmp/cert.pem"
+
+ mkdir -p "${cfg.settings.DocBase}"
+ echo "${testString}" > "${cfg.settings.DocBase}/test.gmi"
+ '';
+ };
+ };
+ testScript = ''
+ geminiServer.wait_for_unit("molly-brown")
+ geminiServer.wait_for_open_port(1965)
+ geminiServer.succeed("test-gemini")
+ '';
+
+ })
diff --git a/nixos/tests/mongodb.nix b/nixos/tests/mongodb.nix
index a637ec4bfc00..453fb569e8c4 100644
--- a/nixos/tests/mongodb.nix
+++ b/nixos/tests/mongodb.nix
@@ -15,7 +15,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
node.wait_for_open_port(27017)
assert "hello" in node.succeed(
- "mongo ${testQuery}"
+ "${pkg}/bin/mongo ${testQuery}"
)
node.execute(
@@ -36,6 +36,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
mongodb-3_4
mongodb-3_6
mongodb-4_0
+ mongodb-4_2
];
};
};
@@ -46,6 +47,7 @@ import ./make-test-python.nix ({ pkgs, ... }:
+ runMongoDBTest pkgs.mongodb-3_4
+ runMongoDBTest pkgs.mongodb-3_6
+ runMongoDBTest pkgs.mongodb-4_0
+ + runMongoDBTest pkgs.mongodb-4_2
+ ''
node.shutdown()
'';
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index ebebbf90eb1a..83d4f6465b68 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -32,14 +32,14 @@ let
services.dhcpd4 = {
enable = true;
interfaces = map (n: "eth${toString n}") vlanIfs;
- extraConfig = ''
- '' + flip concatMapStrings vlanIfs (n: ''
+ extraConfig = flip concatMapStrings vlanIfs (n: ''
subnet 192.168.${toString n}.0 netmask 255.255.255.0 {
option routers 192.168.${toString n}.1;
+ range 192.168.${toString n}.2 192.168.${toString n}.254;
}
'')
;
- machines = lib.flip map vlanIfs (vlan:
+ machines = flip map vlanIfs (vlan:
{
hostName = "client${toString vlan}";
ethernetAddress = qemu-flags.qemuNicMac vlan 1;
diff --git a/nixos/tests/syncthing.nix b/nixos/tests/syncthing.nix
new file mode 100644
index 000000000000..9e2a8e01e3fb
--- /dev/null
+++ b/nixos/tests/syncthing.nix
@@ -0,0 +1,65 @@
+import ./make-test-python.nix ({ lib, pkgs, ... }: {
+ name = "syncthing";
+ meta.maintainers = with pkgs.stdenv.lib.maintainers; [ chkno ];
+
+ nodes = rec {
+ a = {
+ environment.systemPackages = with pkgs; [ curl libxml2 syncthing ];
+ services.syncthing = {
+ enable = true;
+ openDefaultPorts = true;
+ };
+ };
+ b = a;
+ };
+
+ testScript = ''
+ import json
+ import shlex
+
+ confdir = "/var/lib/syncthing/.config/syncthing"
+
+
+ def addPeer(host, name, deviceID):
+ APIKey = host.succeed(
+ "xmllint --xpath 'string(configuration/gui/apikey)' %s/config.xml" % confdir
+ ).strip()
+ oldConf = host.succeed(
+ "curl -Ss -H 'X-API-Key: %s' 127.0.0.1:8384/rest/system/config" % APIKey
+ )
+ conf = json.loads(oldConf)
+ conf["devices"].append({"deviceID": deviceID, "id": name})
+ conf["folders"].append(
+ {
+ "devices": [{"deviceID": deviceID}],
+ "id": "foo",
+ "path": "/var/lib/syncthing/foo",
+ "rescanIntervalS": 1,
+ }
+ )
+ newConf = json.dumps(conf)
+ host.succeed(
+ "curl -Ss -H 'X-API-Key: %s' 127.0.0.1:8384/rest/system/config -d %s"
+ % (APIKey, shlex.quote(newConf))
+ )
+
+
+ start_all()
+ a.wait_for_unit("syncthing.service")
+ b.wait_for_unit("syncthing.service")
+ a.wait_for_open_port(22000)
+ b.wait_for_open_port(22000)
+
+ aDeviceID = a.succeed("syncthing -home=%s -device-id" % confdir).strip()
+ bDeviceID = b.succeed("syncthing -home=%s -device-id" % confdir).strip()
+ addPeer(a, "b", bDeviceID)
+ addPeer(b, "a", aDeviceID)
+
+ a.wait_for_file("/var/lib/syncthing/foo")
+ b.wait_for_file("/var/lib/syncthing/foo")
+ a.succeed("echo a2b > /var/lib/syncthing/foo/a2b")
+ b.succeed("echo b2a > /var/lib/syncthing/foo/b2a")
+ a.wait_for_file("/var/lib/syncthing/foo/b2a")
+ b.wait_for_file("/var/lib/syncthing/foo/a2b")
+ '';
+})
diff --git a/nixos/tests/yggdrasil.nix b/nixos/tests/yggdrasil.nix
index 9ceb79747339..1d7541308b48 100644
--- a/nixos/tests/yggdrasil.nix
+++ b/nixos/tests/yggdrasil.nix
@@ -7,6 +7,7 @@ let
SigningPrivateKey = "fe3add8da35316c05f6d90d3ca79bd2801e6ccab6d37e5339fef4152589398abe2c43349083bc1e998e4ec4535b4c6a8f44ca9a5a8e07336561267253b2be5f4";
};
bobIp6 = "201:ebbd:bde9:f138:c302:4afa:1fb6:a19a";
+ bobPrefix = "301:ebbd:bde9:f138";
bobConfig = {
InterfacePeers = {
eth1 = [ "tcp://192.168.1.200:12345" ];
@@ -18,6 +19,7 @@ let
SigningPublicKey = "de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
SigningPrivateKey = "2a6c21550f3fca0331df50668ffab66b6dce8237bcd5728e571e8033b363e247de111da0ec781e45bf6c63ecb45a78c24d7d4655abfaeea83b26c36eb5c0fd5b";
};
+ danIp6 = bobPrefix + "::2";
in import ./make-test-python.nix ({ pkgs, ...} : {
name = "yggdrasil";
@@ -69,6 +71,41 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
text = builtins.toJSON bobConfig;
});
};
+
+ boot.kernel.sysctl."net.ipv6.conf.all.forwarding" = 1;
+
+ networking = {
+ bridges.br0.interfaces = [ ];
+ interfaces.br0 = {
+ ipv6.addresses = [{
+ address = bobPrefix + "::1";
+ prefixLength = 64;
+ }];
+ };
+ };
+
+ # dan is a node inside a container running on bob's host.
+ containers.dan = {
+ autoStart = true;
+ privateNetwork = true;
+ hostBridge = "br0";
+ config = { config, pkgs, ... }: {
+ networking.interfaces.eth0.ipv6 = {
+ addresses = [{
+ address = bobPrefix + "::2";
+ prefixLength = 64;
+ }];
+ routes = [{
+ address = "200::";
+ prefixLength = 7;
+ via = bobPrefix + "::1";
+ }];
+ };
+ services.httpd.enable = true;
+ services.httpd.adminAddr = "foo@example.org";
+ networking.firewall.allowedTCPPorts = [ 80 ];
+ };
+ };
};
# Carol only does local peering. Carol's yggdrasil config is all Nix.
@@ -100,7 +137,7 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
bob.start()
carol.start()
- bob.wait_for_unit("yggdrasil.service")
+ bob.wait_for_unit("default.target")
carol.wait_for_unit("yggdrasil.service")
ip_addr_show = "ip -o -6 addr show dev ygg0 scope global"
@@ -117,10 +154,13 @@ in import ./make-test-python.nix ({ pkgs, ...} : {
carol.succeed("ping -c 1 ${aliceIp6}")
carol.succeed("ping -c 1 ${bobIp6}")
+ carol.succeed("ping -c 1 ${bobPrefix}::1")
+ carol.succeed("ping -c 8 ${danIp6}")
carol.fail("journalctl -u dhcpcd | grep ygg0")
alice.wait_for_unit("httpd.service")
carol.succeed("curl --fail -g http://[${aliceIp6}]")
+ carol.succeed("curl --fail -g http://[${danIp6}]")
'';
})
diff --git a/pkgs/applications/audio/audacity/default.nix b/pkgs/applications/audio/audacity/default.nix
index 18f2b4f67cdb..58f25d46e0bc 100644
--- a/pkgs/applications/audio/audacity/default.nix
+++ b/pkgs/applications/audio/audacity/default.nix
@@ -1,28 +1,21 @@
-{ stdenv, fetchzip, wxGTK30, pkgconfig, file, gettext,
+{ stdenv, fetchzip, wxGTK31, pkgconfig, file, gettext,
libvorbis, libmad, libjack2, lv2, lilv, serd, sord, sratom, suil, alsaLib, libsndfile, soxr, flac, lame,
expat, libid3tag, ffmpeg_3, soundtouch, /*, portaudio - given up fighting their portaudio.patch */
- autoconf, automake, libtool
+ pcre, vamp-plugin-sdk, portmidi, twolame, git,
+ cmake, libtool
}:
with stdenv.lib;
stdenv.mkDerivation rec {
- version = "2.4.1";
+ version = "2.4.2";
pname = "audacity";
src = fetchzip {
url = "https://github.com/audacity/audacity/archive/Audacity-${version}.tar.gz";
- sha256 = "1xk0piv72d2xd3p7igr916fhcbrm76fhjr418k1rlqdzzg1hfljn";
+ sha256 = "0lklcvqkxrr2gkb9gh3422iadzl2rv9v0a8s76rwq43lj2im7546";
};
- preConfigure = /* we prefer system-wide libs */ ''
- autoreconf -vi # use system libraries
-
- # we will get a (possibly harmless) warning during configure without this
- substituteInPlace configure \
- --replace /usr/bin/file ${file}/bin/file
- '';
-
configureFlags = [
"--with-libsamplerate"
];
@@ -43,11 +36,12 @@ stdenv.mkDerivation rec {
"-lswscale"
];
- nativeBuildInputs = [ pkgconfig autoconf automake libtool ];
+ nativeBuildInputs = [ pkgconfig cmake libtool git ];
buildInputs = [
- file gettext wxGTK30 expat alsaLib
- libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil wxGTK30.gtk
+ file gettext wxGTK31 expat alsaLib
+ libsndfile soxr libid3tag libjack2 lv2 lilv serd sord sratom suil wxGTK31.gtk
ffmpeg_3 libmad lame libvorbis flac soundtouch
+ pcre vamp-plugin-sdk portmidi twolame
]; #ToDo: detach sbsms
enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/mixxx/default.nix b/pkgs/applications/audio/mixxx/default.nix
index 84e445e8538c..576dd4d97b35 100644
--- a/pkgs/applications/audio/mixxx/default.nix
+++ b/pkgs/applications/audio/mixxx/default.nix
@@ -52,7 +52,7 @@ mkDerivation rec {
homepage = "https://mixxx.org";
description = "Digital DJ mixing software";
license = licenses.gpl2Plus;
- maintainers = [ maintainers.aszlig maintainers.goibhniu maintainers.bfortz ];
+ maintainers = [ maintainers.goibhniu maintainers.bfortz ];
platforms = platforms.linux;
};
}
diff --git a/pkgs/applications/audio/mopidy/youtube.nix b/pkgs/applications/audio/mopidy/youtube.nix
index ac16c182a50e..a115812b86a6 100644
--- a/pkgs/applications/audio/mopidy/youtube.nix
+++ b/pkgs/applications/audio/mopidy/youtube.nix
@@ -2,12 +2,12 @@
python3Packages.buildPythonApplication rec {
pname = "mopidy-youtube";
- version = "3.0";
+ version = "3.1";
src = python3Packages.fetchPypi {
inherit version;
pname = "Mopidy-YouTube";
- sha256 = "0x1q9rfnjx65n6hi8s5rw5ff4xv55h63zy52fwm8aksdnzppr7gd";
+ sha256 = "1bn3nxianbal9f81z9wf2cxi893hndvrz2zdqvh1zpxrhs0cr038";
};
patchPhase = "sed s/bs4/beautifulsoup4/ -i setup.cfg";
diff --git a/pkgs/applications/audio/openmpt123/default.nix b/pkgs/applications/audio/openmpt123/default.nix
index 6fec4df060d9..15d38a1eea77 100644
--- a/pkgs/applications/audio/openmpt123/default.nix
+++ b/pkgs/applications/audio/openmpt123/default.nix
@@ -2,14 +2,14 @@
, usePulseAudio ? config.pulseaudio or false, libpulseaudio }:
let
- version = "0.5.0";
+ version = "0.5.1";
in stdenv.mkDerivation {
pname = "openmpt123";
inherit version;
src = fetchurl {
url = "https://lib.openmpt.org/files/libopenmpt/src/libopenmpt-${version}+release.autotools.tar.gz";
- sha256 = "0zl3djy9z7cpqk8g8pxrzmmikxsskb0y5qdabg6c683j7x5abjs3";
+ sha256 = "1vpalfsrkbx4vyrh1qy564lr91jwdxlbjivv5gzf8zcywxasf0xa";
};
enableParallelBuilding = true;
diff --git a/pkgs/applications/audio/qmmp/default.nix b/pkgs/applications/audio/qmmp/default.nix
index 7b4d823006de..84ff9f787d53 100644
--- a/pkgs/applications/audio/qmmp/default.nix
+++ b/pkgs/applications/audio/qmmp/default.nix
@@ -29,11 +29,11 @@
# handle that.
mkDerivation rec {
- name = "qmmp-1.4.0";
+ name = "qmmp-1.4.1";
src = fetchurl {
url = "http://qmmp.ylsoftware.com/files/${name}.tar.bz2";
- sha256 = "13rhnk55d44svksl13w23w2qkfpkq4mc0jy5mi89nzqkzshwvfd8";
+ sha256 = "0p18r2ri75vbyjzfa7bcl1dm372m6jvn9zj2p5ia2rh1g77fbm9a";
};
nativeBuildInputs = [ cmake pkgconfig ];
diff --git a/pkgs/applications/audio/sooperlooper/default.nix b/pkgs/applications/audio/sooperlooper/default.nix
index e7a43ad8a595..f1c76bf0d33c 100644
--- a/pkgs/applications/audio/sooperlooper/default.nix
+++ b/pkgs/applications/audio/sooperlooper/default.nix
@@ -20,13 +20,13 @@
stdenv.mkDerivation rec {
pname = "sooperlooper";
- version = "unstable-2019-09-30";
+ version = "1.7.4";
src = fetchFromGitHub {
owner = "essej";
repo = "sooperlooper";
- rev = "4d1da14176e16b0f56b727bb1e6c2e8957515625";
- sha256 = "1gsgqa7hdymzw2al1ymzv0f33y161dyhh3fmy88lpjwv3bfchamg";
+ rev = "v${builtins.replaceStrings [ "." ] [ "_" ] version}";
+ sha256 = "1jng9bkb7iikad0dy1fkiq9wjjdhh1xi1p0cp2lvnz1dsc4yk6iw";
};
autoreconfPhase = ''
@@ -51,6 +51,8 @@ stdenv.mkDerivation rec {
fftw
];
+ enableParallelBuilding = true;
+
meta = with stdenv.lib; {
description = "A live looping sampler capable of immediate loop recording, overdubbing, multiplying, reversing and more";
longDescription = ''
diff --git a/pkgs/applications/audio/spotify-tui/default.nix b/pkgs/applications/audio/spotify-tui/default.nix
index 693de28bf472..16c8623bd7bd 100644
--- a/pkgs/applications/audio/spotify-tui/default.nix
+++ b/pkgs/applications/audio/spotify-tui/default.nix
@@ -2,16 +2,16 @@
rustPlatform.buildRustPackage rec {
pname = "spotify-tui";
- version = "0.20.0";
+ version = "0.21.0";
src = fetchFromGitHub {
owner = "Rigellute";
repo = "spotify-tui";
rev = "v${version}";
- sha256 = "1gdsk620md5nv1r05jysmfhpbcidh15wzyiklkazsb6cppm6qsiy";
+ sha256 = "0pvgq8r1bb7bdxm50hxl0n7ajplpzp1gnf6j55dn6xwck0syml9y";
};
- cargoSha256 = "0irfdmik6nrpfs9yzva5q351cfyf1cijxa2a08prwdccrivdk98a";
+ cargoSha256 = "07v1qm5ky99j2lwbl00g80z0f8hfrpwgyqsm8fnda6y9s3vzzdgz";
nativeBuildInputs = stdenv.lib.optionals stdenv.isLinux [ pkgconfig python3 ];
buildInputs = [ ]
diff --git a/pkgs/applications/audio/sublime-music/default.nix b/pkgs/applications/audio/sublime-music/default.nix
new file mode 100644
index 000000000000..515a653d6bc9
--- /dev/null
+++ b/pkgs/applications/audio/sublime-music/default.nix
@@ -0,0 +1,60 @@
+{ lib, python3Packages, gobject-introspection, gtk3, pango, wrapGAppsHook
+
+, chromecastSupport ? false
+, serverSupport ? false
+, keyringSupport ? true
+, notifySupport ? true, libnotify
+, networkSupport ? true, networkmanager
+}:
+
+python3Packages.buildPythonApplication rec {
+ pname = "sublime-music";
+ version = "0.11.0";
+
+ src = python3Packages.fetchPypi {
+ inherit pname version;
+ sha256 = "1rnjc8pjfaq67mq10gy939g77azc80lxf77s9nsaxds4q5j1yrl2";
+ };
+
+ nativeBuildInputs = [
+ gobject-introspection
+ python3Packages.setuptools
+ wrapGAppsHook
+ ];
+
+ buildInputs = [
+ gtk3
+ pango
+ ]
+ ++ lib.optional notifySupport libnotify
+ ++ lib.optional networkSupport networkmanager
+ ;
+
+ propagatedBuildInputs = with python3Packages; [
+ dataclasses-json
+ deepdiff
+ fuzzywuzzy
+ mpv
+ peewee
+ pygobject3
+ python-Levenshtein
+ python-dateutil
+ requests
+ semver
+ ]
+ ++ lib.optional chromecastSupport PyChromecast
+ ++ lib.optional keyringSupport keyring
+ ++ lib.optional serverSupport bottle
+ ;
+
+ # hook for gobject-introspection doesn't like strictDeps
+ # https://github.com/NixOS/nixpkgs/issues/56943
+ strictDeps = false;
+
+ meta = with lib; {
+ description = "GTK3 Subsonic/Airsonic client";
+ homepage = "https://sublimemusic.app/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ albakham ];
+ };
+}
diff --git a/pkgs/applications/blockchains/go-ethereum.nix b/pkgs/applications/blockchains/go-ethereum.nix
index a042e75ccb3a..421acfef6ba1 100644
--- a/pkgs/applications/blockchains/go-ethereum.nix
+++ b/pkgs/applications/blockchains/go-ethereum.nix
@@ -2,13 +2,13 @@
buildGoModule rec {
pname = "go-ethereum";
- version = "1.9.17";
+ version = "1.9.18";
src = fetchFromGitHub {
owner = "ethereum";
repo = pname;
rev = "v${version}";
- sha256 = "175cy5cqkdhvh3kv2d0madybbz2sdbgxhm8xfb3ydbaf2hzihxmx";
+ sha256 = "0nkzwmrzk0m9662cr18h5i54v07mw8v3fh0csvqx8n50z5fcvb7b";
};
usb = fetchFromGitHub {
@@ -18,7 +18,7 @@ buildGoModule rec {
sha256 = "0asd5fz2rhzkjmd8wjgmla5qmqyz4jaa6qf0n2ycia16jsck6wc2";
};
- vendorSha256 = "0w2214fllw93xbrlxayhl014aqbjsc8zz7mpik7w5b26m60hn5kr";
+ vendorSha256 = "13wh6r9zi5qw72xkbzy3mcgn7lv9l981x4lniypjbnkwhq2dj5iz";
overrideModAttrs = (_: {
postBuild = ''
diff --git a/pkgs/applications/editors/emacs/default.nix b/pkgs/applications/editors/emacs/default.nix
index 570dc28c684f..b88aa00d42d4 100644
--- a/pkgs/applications/editors/emacs/default.nix
+++ b/pkgs/applications/editors/emacs/default.nix
@@ -2,6 +2,8 @@
, Xaw3d, libXcursor, pkgconfig, gettext, libXft, dbus, libpng, libjpeg, libungif
, libtiff, librsvg, gconf, libxml2, imagemagick, gnutls, libselinux
, alsaLib, cairo, acl, gpm, AppKit, GSS, ImageIO, m17n_lib, libotf
+, jansson, harfbuzz
+, libgccjit, targetPlatform, binutils, binutils-unwrapped, makeWrapper # native-comp params
, systemd ? null
, withX ? !stdenv.isDarwin
, withNS ? stdenv.isDarwin
@@ -11,6 +13,7 @@
, withCsrc ? true
, srcRepo ? false, autoconf ? null, automake ? null, texinfo ? null
, siteStart ? ./site-start.el
+, nativeComp ? false
, toolkit ? (
if withGTK2 then "gtk2"
else if withGTK3 then "gtk3"
@@ -28,10 +31,13 @@ assert withGTK3 -> !withGTK2 && gtk3-x11 != null;
assert withXwidgets -> withGTK3 && webkitgtk != null;
-stdenv.mkDerivation rec {
- name = "emacs-${version}${versionModifier}";
+let
version = "26.3";
versionModifier = "";
+ name = "emacs-${version}${versionModifier}";
+
+in stdenv.mkDerivation {
+ inherit name version;
src = fetchurl {
url = "mirror://gnu/emacs/${name}.tar.xz";
@@ -50,29 +56,50 @@ stdenv.mkDerivation rec {
})
];
- postPatch = lib.optionalString srcRepo ''
- rm -fr .git
- '';
+ postPatch = lib.concatStringsSep "\n" [
+ (lib.optionalString srcRepo ''
+ rm -fr .git
+ '')
+
+ # Make native compilation work both inside and outside of nix build
+ (lib.optionalString nativeComp (let
+ libPath = lib.concatStringsSep ":" [
+ "${lib.getLib libgccjit}/lib/gcc/${targetPlatform.config}/${libgccjit.version}"
+ "${lib.getLib stdenv.cc.cc}/lib"
+ "${lib.getLib stdenv.glibc}/lib"
+ ];
+ in ''
+ substituteInPlace lisp/emacs-lisp/comp.el --replace \
+ "(defcustom comp-async-env-modifier-form nil" \
+ "(defcustom comp-async-env-modifier-form '((setenv \"LIBRARY_PATH\" (string-join (seq-filter (lambda (v) (null (eq v nil))) (list (getenv \"LIBRARY_PATH\") \"${libPath}\")) \":\")))"
+
+ ''))
+
+ ""
+ ];
CFLAGS = "-DMAC_OS_X_VERSION_MAX_ALLOWED=101200";
- nativeBuildInputs = [ pkgconfig ]
+ LIBRARY_PATH = if nativeComp then "${lib.getLib stdenv.cc.libc}/lib" else "";
+
+ nativeBuildInputs = [ pkgconfig makeWrapper ]
++ lib.optionals srcRepo [ autoconf automake texinfo ]
++ lib.optional (withX && (withGTK3 || withXwidgets)) wrapGAppsHook;
buildInputs =
- [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext ]
+ [ ncurses gconf libxml2 gnutls alsaLib acl gpm gettext jansson harfbuzz.dev ]
++ lib.optionals stdenv.isLinux [ dbus libselinux systemd ]
++ lib.optionals withX
[ xlibsWrapper libXaw Xaw3d libXpm libpng libjpeg libungif libtiff libXft
- gconf ]
+ gconf cairo ]
++ lib.optionals (withX || withNS) [ imagemagick librsvg ]
++ lib.optionals (stdenv.isLinux && withX) [ m17n_lib libotf ]
++ lib.optional (withX && withGTK2) gtk2-x11
++ lib.optionals (withX && withGTK3) [ gtk3-x11 gsettings-desktop-schemas ]
- ++ lib.optional (stdenv.isDarwin && withX) cairo
++ lib.optionals (withX && withXwidgets) [ webkitgtk glib-networking ]
- ++ lib.optionals withNS [ AppKit GSS ImageIO ];
+ ++ lib.optionals withNS [ AppKit GSS ImageIO ]
+ ++ lib.optionals nativeComp [ libgccjit ]
+ ;
hardeningDisable = [ "format" ];
@@ -88,7 +115,9 @@ stdenv.mkDerivation rec {
then [ "--with-x-toolkit=${toolkit}" "--with-xft" ]
else [ "--with-x=no" "--with-xpm=no" "--with-jpeg=no" "--with-png=no"
"--with-gif=no" "--with-tiff=no" ])
- ++ lib.optional withXwidgets "--with-xwidgets";
+ ++ lib.optional withXwidgets "--with-xwidgets"
+ ++ lib.optional nativeComp "--with-nativecomp"
+ ;
preConfigure = lib.optionalString srcRepo ''
./autogen.sh
@@ -106,13 +135,16 @@ stdenv.mkDerivation rec {
postInstall = ''
mkdir -p $out/share/emacs/site-lisp
cp ${siteStart} $out/share/emacs/site-lisp/site-start.el
+
$out/bin/emacs --batch -f batch-byte-compile $out/share/emacs/site-lisp/site-start.el
+ siteVersionDir=`ls $out/share/emacs | grep -v site-lisp | head -n 1`
+
rm -rf $out/var
- rm -rf $out/share/emacs/${version}/site-lisp
+ rm -rf $siteVersionDir
'' + lib.optionalString withCsrc ''
for srcdir in src lisp lwlib ; do
- dstdir=$out/share/emacs/${version}/$srcdir
+ dstdir=$siteVersionDir/$srcdir
mkdir -p $dstdir
find $srcdir -name "*.[chm]" -exec cp {} $dstdir \;
cp $srcdir/TAGS $dstdir
@@ -123,16 +155,24 @@ stdenv.mkDerivation rec {
mv nextstep/Emacs.app $out/Applications
'';
- postFixup =
- let libPath = lib.makeLibraryPath [
- libXcursor
- ];
- in lib.optionalString (stdenv.isLinux && withX && toolkit == "lucid") ''
+ postFixup = lib.concatStringsSep "\n" [
+
+ (lib.optionalString (stdenv.isLinux && withX && toolkit == "lucid") ''
patchelf --set-rpath \
- "$(patchelf --print-rpath "$out/bin/emacs"):${libPath}" \
+ "$(patchelf --print-rpath "$out/bin/emacs"):${lib.makeLibraryPath [ libXcursor ]}" \
"$out/bin/emacs"
patchelf --add-needed "libXcursor.so.1" "$out/bin/emacs"
- '';
+ '')
+
+ (lib.optionalString nativeComp ''
+ wrapProgram $out/bin/emacs-* --prefix PATH : "${lib.makeBinPath [ binutils binutils-unwrapped ]}"
+ '')
+
+ ];
+
+ passthru = {
+ inherit nativeComp;
+ };
meta = with stdenv.lib; {
description = "The extensible, customizable GNU text editor";
diff --git a/pkgs/applications/editors/vscode/vscode.nix b/pkgs/applications/editors/vscode/vscode.nix
index 968cc69d92db..285b3a8a1806 100644
--- a/pkgs/applications/editors/vscode/vscode.nix
+++ b/pkgs/applications/editors/vscode/vscode.nix
@@ -11,8 +11,8 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "1c8gi2001p2f0zc165cqwwf9f8ls34fgg040qn9l08za7djb9hyv";
- x86_64-darwin = "06n17s3qa2jkmg5qx3zvshz6rvdx33dhxn65j0x5mi62dv93gjgg";
+ x86_64-linux = "162qwjmm439zplcyjhbb961ircqpdfw13h9ybnik1q128f4650ky";
+ x86_64-darwin = "1kmg1h1gnx9kdnigjzpqd6rlzv7bz01h29ldla2srfr2q6nr0r9v";
}.${system};
in
callPackage ./generic.nix rec {
@@ -21,7 +21,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.46.1";
+ version = "1.47.3";
pname = "vscode";
executableName = "code" + lib.optionalString isInsiders "-insiders";
diff --git a/pkgs/applications/editors/vscode/vscodium.nix b/pkgs/applications/editors/vscode/vscodium.nix
index cc0c73b73e9f..149eb5cf8610 100644
--- a/pkgs/applications/editors/vscode/vscodium.nix
+++ b/pkgs/applications/editors/vscode/vscodium.nix
@@ -11,8 +11,8 @@ let
archive_fmt = if system == "x86_64-darwin" then "zip" else "tar.gz";
sha256 = {
- x86_64-linux = "0l9sg2d0657k9dacy7k2jn8z07z50v8d1czgy4bkzbrj9vz7c6a7";
- x86_64-darwin = "0mnq0ykahwfrgs28rdy1jl366qyclipsr3apnmhym1xsylk0mpfx";
+ x86_64-linux = "01wzdwb6laa0kwgwwvqri06ckdixg1w4fwcx400vhg3mby4n9wvl";
+ x86_64-darwin = "1byh1x839w4r88yv0k7jpvxvida1xpf7pvnsp6vnawvqpbmdwlw0";
}.${system};
sourceRoot = {
@@ -27,7 +27,7 @@ in
# Please backport all compatible updates to the stable release.
# This is important for the extension ecosystem.
- version = "1.46.1";
+ version = "1.47.3";
pname = "vscodium";
executableName = "codium";
diff --git a/pkgs/applications/graphics/drawio/default.nix b/pkgs/applications/graphics/drawio/default.nix
index 69764daedebe..22a58e81c97b 100644
--- a/pkgs/applications/graphics/drawio/default.nix
+++ b/pkgs/applications/graphics/drawio/default.nix
@@ -11,11 +11,11 @@
stdenv.mkDerivation rec {
pname = "drawio";
- version = "13.4.5";
+ version = "13.5.1";
src = fetchurl {
url = "https://github.com/jgraph/drawio-desktop/releases/download/v${version}/draw.io-x86_64-${version}.rpm";
- sha256 = "1vp5krgj0xzhkiidj658ij6j10d2p97l1nifx0nrqysblcz2km3g";
+ sha256 = "00ggm867c5005qfm35qf8a94d87ln91irb1ir6012am2k5bn8c8p";
};
nativeBuildInputs = [
@@ -88,6 +88,7 @@ stdenv.mkDerivation rec {
description = "A desktop application for creating diagrams";
homepage = "https://about.draw.io/";
license = licenses.asl20;
+ changelog = "https://github.com/jgraph/drawio-desktop/releases/tag/v${version}";
maintainers = with maintainers; [ danieldk ];
platforms = [ "x86_64-linux" ];
};
diff --git a/pkgs/applications/graphics/renderdoc/default.nix b/pkgs/applications/graphics/renderdoc/default.nix
index 2683206c8e4c..5f39116e85fb 100644
--- a/pkgs/applications/graphics/renderdoc/default.nix
+++ b/pkgs/applications/graphics/renderdoc/default.nix
@@ -13,14 +13,14 @@ let
pythonPackages = python3Packages;
in
mkDerivation rec {
- version = "1.8";
+ version = "1.9";
pname = "renderdoc";
src = fetchFromGitHub {
owner = "baldurk";
repo = "renderdoc";
rev = "v${version}";
- sha256 = "177j893abplj8wd8j4ava58m1mr7qq8fsffsq0w4hf5xgl5w8fq8";
+ sha256 = "18nparkd435hdbm924jfdvmym7f3xd2fcy96jr4lrkl5rhj2sf85";
};
buildInputs = [
diff --git a/pkgs/applications/misc/clight/default.nix b/pkgs/applications/misc/clight/default.nix
index ed8767419d4d..2502459af106 100644
--- a/pkgs/applications/misc/clight/default.nix
+++ b/pkgs/applications/misc/clight/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "clight";
- version = "4.0";
+ version = "4.1";
src = fetchFromGitHub {
owner = "FedeDP";
repo = "Clight";
rev = version;
- sha256 = "101fp9kwmfmfffpdvv41wf96kdjw0b16xk49g43w32a5wlr74zrq";
+ sha256 = "1j7va217g1k8lxl3lly13js8myf0shjc6knalq8q6lakc6j1mkxx";
};
# bash-completion.pc completionsdir=${bash-completion.out}
diff --git a/pkgs/applications/misc/ddgr/default.nix b/pkgs/applications/misc/ddgr/default.nix
index 82730842baca..1cac8811103d 100644
--- a/pkgs/applications/misc/ddgr/default.nix
+++ b/pkgs/applications/misc/ddgr/default.nix
@@ -1,14 +1,14 @@
{ stdenv, fetchFromGitHub, python3, installShellFiles }:
stdenv.mkDerivation rec {
- version = "1.8.1";
+ version = "1.9";
pname = "ddgr";
src = fetchFromGitHub {
owner = "jarun";
repo = "ddgr";
rev = "v${version}";
- sha256 = "0668wzh1gqin0xscy3fly9hz370n2ny175f3kya9bsld0x0jkd5p";
+ sha256 = "0qbdq7k0mmvkjp6qzz88n7vf29liqn6y5w4y39ldqdc8hzw5sld7";
};
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/misc/dunst/default.nix b/pkgs/applications/misc/dunst/default.nix
index 7da2ae421d7a..a906669e7c6b 100644
--- a/pkgs/applications/misc/dunst/default.nix
+++ b/pkgs/applications/misc/dunst/default.nix
@@ -6,13 +6,13 @@
stdenv.mkDerivation rec {
pname = "dunst";
- version = "1.4.1";
+ version = "1.5.0";
src = fetchFromGitHub {
owner = "dunst-project";
repo = "dunst";
rev = "v${version}";
- sha256 = "0xjj1f2jr1ja5grj6wrx5jjz1sx5fpqnvkw7nqi4452j3nc4p4l2";
+ sha256 = "0irwkqcgwkqaylcpvqgh25gn2ysbdm2kydipxfzcq1ddj9ns6f9c";
};
nativeBuildInputs = [ perl pkgconfig which systemd makeWrapper ];
diff --git a/pkgs/applications/misc/girara/default.nix b/pkgs/applications/misc/girara/default.nix
index 45bca7d3fbf5..def70d7df3c6 100644
--- a/pkgs/applications/misc/girara/default.nix
+++ b/pkgs/applications/misc/girara/default.nix
@@ -3,13 +3,13 @@
stdenv.mkDerivation rec {
pname = "girara";
- version = "0.3.4";
+ version = "0.3.5";
outputs = [ "out" "dev" ];
src = fetchurl {
url = "https://git.pwmt.org/pwmt/${pname}/-/archive/${version}/${pname}-${version}.tar.gz";
- sha256 = "08zdsr4zwi49facsl5596l0g1xqqv2jk3sqk841gkxwawcggim44";
+ sha256 = "1n3i960b458172mc3pkq7m9dn5qxry6fms3c3k06v27cjp5whsyf";
};
nativeBuildInputs = [ meson ninja pkgconfig gettext check dbus xvfb_run ];
diff --git a/pkgs/applications/misc/hugo/default.nix b/pkgs/applications/misc/hugo/default.nix
index d80526d66fe7..3f0f8946c29a 100644
--- a/pkgs/applications/misc/hugo/default.nix
+++ b/pkgs/applications/misc/hugo/default.nix
@@ -1,16 +1,14 @@
-{ stdenv, buildGoModule, fetchFromGitHub, libsass }:
+{ stdenv, buildGoModule, fetchFromGitHub }:
buildGoModule rec {
pname = "hugo";
- version = "0.73.0";
-
- buildInputs = [ libsass ];
+ version = "0.74.3";
src = fetchFromGitHub {
owner = "gohugoio";
repo = pname;
rev = "v${version}";
- sha256 = "0qhv8kdv5k1xfk6106lxvsz7f92k7w6wk05ngz7qxbkb6zkcnshw";
+ sha256 = "0rikr4yrjvmrv8smvr8jdbcjqwf61y369wn875iywrj63pyr74r9";
};
golibsass = fetchFromGitHub {
@@ -27,7 +25,7 @@ buildGoModule rec {
'';
});
- vendorSha256 = "07dkmrldsxw59v6r4avj1gr4hsaxybhb14qv61hc777qix2kq9v1";
+ vendorSha256 = "031k8bvca1pb1naw922vg5h95gnwp76dii1cjcs0b1qj93isdibk";
buildFlags = [ "-tags" "extended" ];
diff --git a/pkgs/applications/misc/pdfsam-basic/default.nix b/pkgs/applications/misc/pdfsam-basic/default.nix
index dcf4a0a621ba..22add00c84d8 100644
--- a/pkgs/applications/misc/pdfsam-basic/default.nix
+++ b/pkgs/applications/misc/pdfsam-basic/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "pdfsam-basic";
- version = "4.1.3";
+ version = "4.1.4";
src = fetchurl {
url = "https://github.com/torakiki/pdfsam/releases/download/v${version}/pdfsam_${version}-1_amd64.deb";
- sha256 = "1rhv6mf6pr9aaa8516i3b7v6h622qb1p8c4jsy3j0s5wrdry5l9l";
+ sha256 = "1gw3cmc8c1xxc55bm71v1dz9x9560lbhx9nkwprarhxlmn0m0zzp";
};
unpackPhase = ''
diff --git a/pkgs/applications/misc/synergy/default.nix b/pkgs/applications/misc/synergy/default.nix
index bb922f3ca5b2..5c1cce192163 100644
--- a/pkgs/applications/misc/synergy/default.nix
+++ b/pkgs/applications/misc/synergy/default.nix
@@ -75,7 +75,7 @@ stdenv.mkDerivation rec {
description = "Share one mouse and keyboard between multiple computers";
homepage = "http://synergy-project.org/";
license = licenses.gpl2;
- maintainers = with maintainers; [ aszlig enzime ];
+ maintainers = with maintainers; [ enzime ];
platforms = platforms.all;
};
}
diff --git a/pkgs/applications/misc/tut/default.nix b/pkgs/applications/misc/tut/default.nix
index dbe5b971edd5..d65e894417e6 100644
--- a/pkgs/applications/misc/tut/default.nix
+++ b/pkgs/applications/misc/tut/default.nix
@@ -2,7 +2,7 @@
buildGoPackage rec {
pname = "tut";
- version = "0.0.13";
+ version = "0.0.14";
goPackagePath = "github.com/RasmusLindroth/tut";
goDeps = ./deps.nix;
@@ -11,7 +11,7 @@ buildGoPackage rec {
owner = "RasmusLindroth";
repo = pname;
rev = version;
- sha256 = "085qiv9q2hzv1v6qmbddra23acsmmkbwmjqc3cp81gfgl893z7sm";
+ sha256 = "1l7lc6cjx97v9zhc0b6lfzqjmyv1i3qj83drkck36if3mc60vvwi";
};
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/Sylk/default.nix b/pkgs/applications/networking/Sylk/default.nix
index f6a88f26e9a2..3f2e4ca99be6 100644
--- a/pkgs/applications/networking/Sylk/default.nix
+++ b/pkgs/applications/networking/Sylk/default.nix
@@ -2,7 +2,7 @@
let
pname = "Sylk";
- version = "2.7.2";
+ version = "2.8.0";
in
appimageTools.wrapType2 rec {
@@ -10,7 +10,7 @@ appimageTools.wrapType2 rec {
src = fetchurl {
url = "http://download.ag-projects.com/Sylk/Sylk-${version}-x86_64.AppImage";
- sha256 = "1hz41jan8hw56ahpaajlb1yy5zjkyxrclzmqhklm5x59b76pd0zx";
+ hash = "sha256:09j1kijs31yk3iw2lj7szv1nwkqiqydj3zkkmr49qlib1qj717wh";
};
profile = ''
diff --git a/pkgs/applications/networking/browsers/chromium/browser.nix b/pkgs/applications/networking/browsers/chromium/browser.nix
index 7c0609730c24..51e3fb032f2b 100644
--- a/pkgs/applications/networking/browsers/chromium/browser.nix
+++ b/pkgs/applications/networking/browsers/chromium/browser.nix
@@ -90,5 +90,6 @@ mkChromiumDerivation (base: rec {
platforms = platforms.linux;
hydraPlatforms = if channel == "stable" then ["aarch64-linux" "x86_64-linux"] else [];
timeout = 172800; # 48 hours
+ broken = channel == "dev"; # Requires LLVM 11
};
})
diff --git a/pkgs/applications/networking/browsers/chromium/default.nix b/pkgs/applications/networking/browsers/chromium/default.nix
index d9a1398d0909..c74b7e25090d 100644
--- a/pkgs/applications/networking/browsers/chromium/default.nix
+++ b/pkgs/applications/networking/browsers/chromium/default.nix
@@ -44,7 +44,7 @@ let
sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
};
});
- } // lib.optionalAttrs (channel == "dev") {
+ } // lib.optionalAttrs (channel == "beta") {
gnChromium = gn.overrideAttrs (oldAttrs: {
version = "2020-05-19";
src = fetchgit {
@@ -53,6 +53,15 @@ let
sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
};
});
+ } // lib.optionalAttrs (channel == "dev") {
+ gnChromium = gn.overrideAttrs (oldAttrs: {
+ version = "2020-07-20";
+ src = fetchgit {
+ url = "https://gn.googlesource.com/gn";
+ rev = "3028c6a426a4aaf6da91c4ebafe716ae370225fe";
+ sha256 = "0h3wf4152zdvrbb0jbj49q6814lfl3rcy5mj8b2pl9s0ahvkbc6q";
+ };
+ });
});
browser = callPackage ./browser.nix { inherit channel enableWideVine; };
diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
index 874e45307ebf..81cc31aacc8f 100644
--- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix
@@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
beta = {
- sha256 = "0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp";
- sha256bin64 = "017ix9a74f2gzlg6in0x6fqgiw8bpk0rypr6wsqqkslywprypjd0";
- version = "84.0.4147.89";
+ sha256 = "06cl77yi7cb6r7n8mn38d61zmgwxi690qxrkd56hg2773hn06wq5";
+ sha256bin64 = "0a6c44qb0n2hdc42p5xqybnbhgdxd51lyygkqz42fmym6id65v88";
+ version = "85.0.4183.39";
};
dev = {
- sha256 = "1dbbr7s8vbhxd0sk4k2yqp630zp1r4gzkkd2a86pzlzq2mjhsk8a";
- sha256bin64 = "0bphfwi6nkj9nzrjjaffiv27xfblgdikyifsbjl6vv2pawkh335q";
- version = "85.0.4183.15";
+ sha256 = "1l2d3gk7si1djxn3901fjgykv7nzc8g970m3fb9pjflfrr8f17v6";
+ sha256bin64 = "0flsmy5blrc9gs6cikag7mdlvgkm6mzm745kcq0shfmhanvlkykn";
+ version = "86.0.4209.2";
};
stable = {
- sha256 = "0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp";
- sha256bin64 = "1hzhgvs2ykqsncpnbnhzh09sw1vlsdfjhs06z5gc80l47brdi3wz";
- version = "84.0.4147.89";
+ sha256 = "1b6cqnwx76pp4y5hvz3qm8lm1ayaxr5578k76164acr35bmypx6a";
+ sha256bin64 = "0znxq5ncyvyysx3p8xikzg8jm8jr51k478y29m985x6c5p5a4zyw";
+ version = "84.0.4147.105";
};
}
diff --git a/pkgs/applications/networking/browsers/firefox/common.nix b/pkgs/applications/networking/browsers/firefox/common.nix
index a68a97b6bb12..4ecdec77ddbb 100644
--- a/pkgs/applications/networking/browsers/firefox/common.nix
+++ b/pkgs/applications/networking/browsers/firefox/common.nix
@@ -51,7 +51,7 @@
# https://github.com/NixOS/nixpkgs/issues/31843#issuecomment-346372756 we
# have permission to use the official firefox branding.
#
-# Fur purposes of documentation the statement of @sylvestre:
+# For purposes of documentation the statement of @sylvestre:
# > As the person who did part of the work described in the LWN article
# > and release manager working for Mozilla, I can confirm the statement
# > that I made in
diff --git a/pkgs/applications/networking/browsers/firefox/wrapper.nix b/pkgs/applications/networking/browsers/firefox/wrapper.nix
index 40393f85b1ad..424c45d305e8 100644
--- a/pkgs/applications/networking/browsers/firefox/wrapper.nix
+++ b/pkgs/applications/networking/browsers/firefox/wrapper.nix
@@ -27,6 +27,7 @@ let
, nameSuffix ? ""
, icon ? browserName
, extraNativeMessagingHosts ? []
+ , pkcs11Modules ? []
, forceWayland ? false
, useGlvnd ? true
, cfg ? config.${browserName} or {}
@@ -74,7 +75,8 @@ let
++ lib.optionals (cfg.enableQuakeLive or false)
(with xorg; [ stdenv.cc libX11 libXxf86dga libXxf86vm libXext libXt alsaLib zlib ])
++ lib.optional (enableAdobeFlash && (cfg.enableAdobeFlashDRM or false)) hal-flash
- ++ lib.optional (config.pulseaudio or true) libpulseaudio;
+ ++ lib.optional (config.pulseaudio or true) libpulseaudio
+ ++ pkcs11Modules;
gtk_modules = [ libcanberra-gtk2 ];
in stdenv.mkDerivation {
@@ -154,6 +156,11 @@ let
ln -sLt $out/lib/mozilla/native-messaging-hosts $ext/lib/mozilla/native-messaging-hosts/*
done
+ mkdir -p $out/lib/mozilla/pkcs11-modules
+ for ext in ${toString pkcs11Modules}; do
+ ln -sLt $out/lib/mozilla/pkcs11-modules $ext/lib/mozilla/pkcs11-modules/*
+ done
+
# For manpages, in case the program supplies them
mkdir -p $out/nix-support
echo ${browser} > $out/nix-support/propagated-user-env-packages
diff --git a/pkgs/applications/networking/browsers/qutebrowser/default.nix b/pkgs/applications/networking/browsers/qutebrowser/default.nix
index f65ae2f46956..5af14805bd85 100644
--- a/pkgs/applications/networking/browsers/qutebrowser/default.nix
+++ b/pkgs/applications/networking/browsers/qutebrowser/default.nix
@@ -2,8 +2,9 @@
, mkDerivationWith, wrapQtAppsHook, wrapGAppsHook, qtbase, glib-networking
, asciidoc, docbook_xml_dtd_45, docbook_xsl, libxml2
, libxslt, gst_all_1 ? null
-, withPdfReader ? true
-, withMediaPlayback ? true
+, withPdfReader ? true
+, withMediaPlayback ? true
+, backend ? "webengine"
}:
assert withMediaPlayback -> gst_all_1 != null;
@@ -19,6 +20,14 @@ let
stripRoot = false;
};
+ backendPackage =
+ if backend == "webengine" then python3Packages.pyqtwebengine else
+ if backend == "webkit" then python3Packages.pyqt5_with_qtwebkit else
+ throw ''
+ Unknown qutebrowser backend "${backend}".
+ Valid choices are qtwebengine (recommended) or qtwebkit.
+ '';
+
in mkDerivationWith python3Packages.buildPythonApplication rec {
pname = "qutebrowser";
version = "1.13.0";
@@ -46,16 +55,14 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
];
propagatedBuildInputs = with python3Packages; [
- pyyaml pyqt5 pyqtwebengine jinja2 pygments
+ pyyaml backendPackage jinja2 pygments
pypeg2 cssutils pyopengl attrs setuptools
# scripts and userscripts libs
tldextract beautifulsoup4
pyreadability pykeepass stem
];
- patches = [
- ./fix-restart.patch
- ];
+ patches = [ ./fix-restart.patch ];
dontWrapGApps = true;
dontWrapQtApps = true;
@@ -101,7 +108,8 @@ in mkDerivationWith python3Packages.buildPythonApplication rec {
postFixup = ''
wrapProgram $out/bin/qutebrowser \
"''${gappsWrapperArgs[@]}" \
- "''${qtWrapperArgs[@]}"
+ "''${qtWrapperArgs[@]}" \
+ --add-flags '--backend ${backend}'
'';
meta = with stdenv.lib; {
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 1b4fa5ef595a..4b8a1238c010 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -46,7 +46,8 @@
# Hardening
, graphene-hardened-malloc
-, useHardenedMalloc ? graphene-hardened-malloc != null && builtins.elem stdenv.system graphene-hardened-malloc.meta.platforms
+# crashes with intel driver
+, useHardenedMalloc ? false
# Whether to disable multiprocess support to work around crashing tabs
# TODO: fix the underlying problem instead of this terrible work-around
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
index a5bea6cf34a9..567a75a31aba 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/common.nix
@@ -4,7 +4,7 @@
, bzip2, flac, speex, libopus
, libevent, expat, libjpeg, snappy
, libpng, libcap
-, xdg_utils, yasm, minizip, libwebp
+, xdg_utils, yasm, nasm, minizip, libwebp
, libusb1, pciutils, nss, re2, zlib
, python2Packages, perl, pkgconfig
@@ -13,10 +13,12 @@
, bison, gperf
, glib, gtk3, dbus-glib
, glibc
+, xorg
, libXScrnSaver, libXcursor, libXtst, libGLU, libGL
, protobuf, speechd, libXdamage, cups
, ffmpeg_3, libxslt, libxml2, at-spi2-core
, jre
+, pipewire_0_2
# optional dependencies
, libgcrypt ? null # gnomeSupport || cupsSupport
@@ -74,7 +76,7 @@ let
in attrs: concatStringsSep " " (attrValues (mapAttrs toFlag attrs));
gnSystemLibraries = [
- "flac" "libwebp" "libxslt" "yasm" "opus" "snappy" "libpng"
+ "flac" "libwebp" "libxslt" "opus" "snappy" "libpng"
# "zlib" # version 77 reports unresolved dependency on //third_party/zlib:zlib_config
# "libjpeg" # fails with multiple undefined references to chromium_jpeg_*
# "re2" # fails with linker errors
@@ -91,9 +93,10 @@ let
bzip2 flac speex opusWithCustomModes
libevent expat libjpeg snappy
libpng libcap
- xdg_utils yasm minizip libwebp
+ xdg_utils minizip libwebp
libusb1 re2 zlib
ffmpeg_3 libxslt libxml2
+ nasm
# harfbuzz # in versions over 63 harfbuzz and freetype are being built together
# so we can't build with one from system and other from source
];
@@ -128,8 +131,9 @@ let
nativeBuildInputs = [
ninja which python2Packages.python perl pkgconfig
python2Packages.ply python2Packages.jinja2 nodejs
- gnutar
- ] ++ optional (versionAtLeast version "83") python2Packages.setuptools;
+ gnutar python2Packages.setuptools
+ (xorg.xcbproto.override { python = python2Packages.python; })
+ ];
buildInputs = defaultDependencies ++ [
nspr nss systemd
@@ -139,6 +143,7 @@ let
libXScrnSaver libXcursor libXtst libGLU libGL
pciutils protobuf speechd libXdamage at-spi2-core
jre
+ pipewire_0_2
] ++ optional useVaapi libva
++ optional gnomeKeyringSupport libgnome-keyring3
++ optionals gnomeSupport [ gnome.GConf libgcrypt ]
@@ -161,13 +166,10 @@ let
#
# ++ optionals (channel == "dev") [ ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" ) ]
# ++ optional (versionRange "68" "72") ( githubPatch "" "0000000000000000000000000000000000000000000000000000000000000000" )
- ] ++ optionals (useVaapi) ([ # Fixes for the VA-API build:
+ ] ++ optionals (useVaapi) [ # Improvements for the VA-API build:
./patches/enable-vdpau-support-for-nvidia.patch # https://aur.archlinux.org/cgit/aur.git/tree/vdpau-support.patch?h=chromium-vaapi
./patches/enable-video-acceleration-on-linux.patch # Can be controlled at runtime (i.e. without rebuilding Chromium)
- ] ++ optionals (versionRange "81" "82") [
- (githubPatch "5b2ff215473e0526b5b24aeff4ad90d369b21c75" "0n00vh8wfpn2ay5fqsxcsx0zadnv7mihm72bcvnrfzh75nzbg902")
- (githubPatch "98e343ab369e4262511b5fce547728e3e5eefba8" "00wwp653jk0k0yvix00vr7ymgck9dj7fxjwx4nc67ynn84dh6064")
- ]);
+ ];
postPatch = ''
# We want to be able to specify where the sandbox is via CHROME_DEVEL_SANDBOX
@@ -187,6 +189,11 @@ let
'/usr/share/locale/' \
'${glibc}/share/locale/'
+ substituteInPlace ui/gfx/x/BUILD.gn \
+ --replace \
+ '/usr/share/xcb' \
+ '${xorg.xcbproto}/share/xcb/'
+
sed -i -e 's@"\(#!\)\?.*xdg-@"\1${xdg_utils}/bin/xdg-@' \
chrome/browser/shell_integration_linux.cc
@@ -239,7 +246,6 @@ let
'';
gnFlags = mkGnFlags ({
- linux_use_bundled_binutils = false;
use_lld = false;
use_gold = true;
gold_path = "${stdenv.cc}/bin";
@@ -257,6 +263,8 @@ let
# added later in the wrapped -wv build or downloaded from Google.
enable_widevine = true;
use_cups = cupsSupport;
+ # Provides the enable-webrtc-pipewire-capturer flag to support Wayland screen capture.
+ rtc_use_pipewire = true;
treat_warnings_as_errors = false;
is_clang = stdenv.cc.isClang;
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
index 4b6c33221827..9051fc55feb4 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/default.nix
@@ -1,7 +1,8 @@
{ newScope, config, stdenv, llvmPackages_9, llvmPackages_10
-, makeWrapper, ed
+, makeWrapper, ed, gnugrep
, glib, gtk3, gnome3, gsettings-desktop-schemas, gn, fetchgit
, libva ? null
+, pipewire_0_2
, gcc, nspr, nss, runCommand
, lib
@@ -23,9 +24,7 @@
}:
let
- llvmPackages = if channel != "stable"
- then llvmPackages_10
- else llvmPackages_9;
+ llvmPackages = llvmPackages_10;
stdenv = llvmPackages.stdenv;
callPackage = newScope chromium;
@@ -38,8 +37,6 @@ let
mkChromiumDerivation = callPackage ./common.nix ({
inherit gnome gnomeSupport gnomeKeyringSupport proprietaryCodecs cupsSupport pulseSupport useOzone;
inherit ungoogled;
- gnChromium = gn;
- } // lib.optionalAttrs (channel != "stable") {
# TODO: Remove after we can update gn for the stable channel (backward incompatible changes):
gnChromium = gn.overrideAttrs (oldAttrs: {
version = "2020-03-23";
@@ -49,6 +46,15 @@ let
sha256 = "00y2d35wvqmx9glaqhfb62wdgbfpwr77v0934nnvh9ks71vnsjqy";
};
});
+ } // lib.optionalAttrs (channel == "dev") {
+ gnChromium = gn.overrideAttrs (oldAttrs: {
+ version = "2020-05-19";
+ src = fetchgit {
+ url = "https://gn.googlesource.com/gn";
+ rev = "d0a6f072070988e7b038496c4e7d6c562b649732";
+ sha256 = "0197msabskgfbxvhzq73gc3wlr3n9cr4bzrhy5z5irbvy05lxk17";
+ };
+ });
});
browser = callPackage ./browser.nix { inherit channel enableWideVine; };
@@ -140,7 +146,7 @@ let
(!enableVaapi)
"--add-flags --disable-accelerated-video-decode --add-flags --disable-accelerated-video-encode";
in stdenv.mkDerivation {
- name = "chromium${suffix}-${version}";
+ name = "ungoogled-chromium${suffix}-${version}";
inherit version;
buildInputs = [
@@ -158,7 +164,7 @@ in stdenv.mkDerivation {
buildCommand = let
browserBinary = "${chromiumWV}/libexec/chromium/chromium";
getWrapperFlags = plugin: "$(< \"${plugin}/nix-support/wrapper-flags\")";
- libPath = stdenv.lib.makeLibraryPath [ libva ];
+ libPath = stdenv.lib.makeLibraryPath [ libva pipewire_0_2 ];
in with stdenv.lib; ''
mkdir -p "$out/bin"
@@ -185,7 +191,7 @@ in stdenv.mkDerivation {
'' + ''
# libredirect causes chromium to deadlock on startup
- export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
+ export LD_PRELOAD="\$(echo -n "\$LD_PRELOAD" | tr ':' '\n' | ${gnugrep}/bin/grep -v /lib/libredirect\\\\.so$ | tr '\n' ':')"
export XDG_DATA_DIRS=$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH\''${XDG_DATA_DIRS:+:}\$XDG_DATA_DIRS
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
index b5372d1a2556..8d879de7bfd8 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/patches/enable-vdpau-support-for-nvidia.patch
@@ -31,15 +31,6 @@
// TODO(crbug.com/912295): Enable a better BufferAllocationMode for IMPORT
// |output_mode_| as well.
if (output_mode_ == VideoDecodeAccelerator::Config::OutputMode::IMPORT)
-@@ -1105,7 +1113,7 @@ VaapiVideoDecodeAccelerator::DecideBufferAllocationMode() {
- // depends on the bitstream and sometimes it's not enough to cover the amount
- // of frames needed by the client pipeline (see b/133733739).
- // TODO(crbug.com/911754): Enable for VP9 Profile 2.
-- if (IsGeminiLakeOrLater() &&
-+ if (false && IsGeminiLakeOrLater() &&
- (profile_ == VP9PROFILE_PROFILE0 || profile_ == VP8PROFILE_ANY)) {
- // Add one to the reference frames for the one being currently egressed, and
- // an extra allocation for both |client_| and |decoder_|, see
--- a/media/gpu/vaapi/vaapi_video_decode_accelerator.h
+++ b/media/gpu/vaapi/vaapi_video_decode_accelerator.h
@@ -204,6 +204,7 @@ class MEDIA_GPU_EXPORT VaapiVideoDecodeAccelerator
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
index 663d8e7f6b67..54da49b9e301 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/plugins.nix
@@ -44,11 +44,11 @@ let
flash = stdenv.mkDerivation rec {
pname = "flashplayer-ppapi";
- version = "32.0.0.371";
+ version = "32.0.0.403";
src = fetchzip {
url = "https://fpdownload.adobe.com/pub/flashplayer/pdc/${version}/flash_player_ppapi_linux.x86_64.tar.gz";
- sha256 = "1nks2wx74b21hv0l7bnrzkxn7c6p6r8zgwbqvy3cqpi8famyr5v9";
+ sha256 = "1xirngiqypylgm8f3ddvny2ghqxgj8i98bm1carcj2vryw53wwal";
stripRoot = false;
};
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
index c393f7fe28ec..109e410d5eef 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/ungoogled-src.nix
@@ -1,6 +1,6 @@
{
- "81.0.4044.138" = {
- rev = "81.0.4044.138-1";
- sha256 = "1qa5lw2psaqxr2zklaldx4sm6by4gsw3mfrp01ijc4kkp9jmvg7r";
+ "84.0.4147.89" = {
+ rev = "84.0.4147.89-1";
+ sha256 = "1bqvcq3dj6615198j7cz3ylyyic5zpis06capvl6ybl1na3ainb0";
};
}
diff --git a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
index defb58822a03..874e45307ebf 100644
--- a/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
+++ b/pkgs/applications/networking/browsers/ungoogled-chromium/upstream-info.nix
@@ -1,18 +1,18 @@
# This file is autogenerated from update.sh in the same directory.
{
beta = {
- sha256 = "0z9p4v5mkinf7hbdagh4bz6ymqjxg3df3wjpvm201ilzzngmjqz1";
- sha256bin64 = "1srvlirhnynh0q2a17p8z13p7r54z0cchh1d1h07hqljnwmsf8qj";
- version = "83.0.4103.34";
+ sha256 = "0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp";
+ sha256bin64 = "017ix9a74f2gzlg6in0x6fqgiw8bpk0rypr6wsqqkslywprypjd0";
+ version = "84.0.4147.89";
};
dev = {
- sha256 = "178fc112bsbrgj2hss78y8rhnz8hl85fr33gawk9fz88zk5qz7xd";
- sha256bin64 = "06qra245l2bbgxc3k04aabkgq1qnzybnrjhrjb25vriv31ji36b1";
- version = "84.0.4128.3";
+ sha256 = "1dbbr7s8vbhxd0sk4k2yqp630zp1r4gzkkd2a86pzlzq2mjhsk8a";
+ sha256bin64 = "0bphfwi6nkj9nzrjjaffiv27xfblgdikyifsbjl6vv2pawkh335q";
+ version = "85.0.4183.15";
};
stable = {
- sha256 = "19kpzmqmld0m0nflx13w9flxfal19msnxhzl3lip1jqih65z4y7l";
- sha256bin64 = "0sl4wv7npc3rhi7jgn679hi7j5ykzwpx5dahy78h87yfg4fx84wx";
- version = "81.0.4044.138";
+ sha256 = "0yf6j0459qzr677zsa2apmfz0x0ndlscvwj1a5v40nqjijchv5qp";
+ sha256bin64 = "1hzhgvs2ykqsncpnbnhzh09sw1vlsdfjhs06z5gc80l47brdi3wz";
+ version = "84.0.4147.89";
};
}
diff --git a/pkgs/applications/networking/cluster/argo/default.nix b/pkgs/applications/networking/cluster/argo/default.nix
index 29c7fc4b3aa1..e2c7436a8ac1 100644
--- a/pkgs/applications/networking/cluster/argo/default.nix
+++ b/pkgs/applications/networking/cluster/argo/default.nix
@@ -19,13 +19,13 @@ let
in
buildGoModule rec {
pname = "argo";
- version = "2.9.3";
+ version = "2.9.4";
src = fetchFromGitHub {
owner = "argoproj";
repo = "argo";
rev = "v${version}";
- sha256 = "1nflzcp8h4kc4986ah2ixws1rpndz1z225jqwfbiyr3yky3him4n";
+ sha256 = "156102xqwmsq3g9jammfib0ri22a0nzk96zrv5774gidjvy2xb55";
};
vendorSha256 = "1vqmzz76lcwwnw89n4lyg4jjf7wbdgn9sdzwsgrjwkj8ax7d48cv";
diff --git a/pkgs/applications/networking/cluster/kube3d/default.nix b/pkgs/applications/networking/cluster/kube3d/default.nix
index c6ae0629d7c6..a65ac2ec98b5 100644
--- a/pkgs/applications/networking/cluster/kube3d/default.nix
+++ b/pkgs/applications/networking/cluster/kube3d/default.nix
@@ -1,24 +1,33 @@
-{ stdenv, buildGoModule, fetchFromGitHub }:
+{ stdenv, buildGoModule, fetchFromGitHub, installShellFiles }:
buildGoModule rec {
pname = "kube3d";
- version = "1.7.0";
- k3sVersion = "1.17.3-k3s1";
+ version = "3.0.0";
+ k3sVersion = "1.18.6-k3s1";
goPackagePath = "github.com/rancher/k3d";
+ excludedPackages = ''tools'';
src = fetchFromGitHub {
owner = "rancher";
repo = "k3d";
rev = "v${version}";
- sha256 = "0aij2l7zmg4cxbw7pwf7ddc64di25hpjvbmp1madhz9q28rwfa9w";
+ sha256 = "1p4rqzi67cr8vf1ih7zqxkpssqq0vy4pb5crvkxbbf5ad5mwrjri";
};
buildFlagsArray = ''
-ldflags=
-w -s
- -X github.com/rancher/k3d/version.Version=${version}
- -X github.com/rancher/k3d/version.K3sVersion=v${k3sVersion}
+ -X github.com/rancher/k3d/v3/version.Version=v${version}
+ -X github.com/rancher/k3d/v3/version.K3sVersion=v${k3sVersion}
+ '';
+
+ nativeBuildInputs = [ installShellFiles ];
+ postInstall = ''
+ for shell in bash zsh; do
+ $out/bin/k3d completion $shell > k3d.$shell
+ installShellCompletion k3d.$shell
+ done
'';
vendorSha256 = null;
diff --git a/pkgs/applications/networking/cluster/luigi/default.nix b/pkgs/applications/networking/cluster/luigi/default.nix
index c6e2b7d85598..f69082bff3a7 100644
--- a/pkgs/applications/networking/cluster/luigi/default.nix
+++ b/pkgs/applications/networking/cluster/luigi/default.nix
@@ -2,11 +2,11 @@
python3Packages.buildPythonApplication rec {
pname = "luigi";
- version = "3.0.0";
+ version = "3.0.1";
src = python3Packages.fetchPypi {
inherit pname version;
- sha256 = "1km9fnq4pf0iqqcmz94idm0zb3l92zinz0bn6ip86xqhchafd4vf";
+ sha256 = "02c480f5pjgqsvqnkaw7f6n4nhdspmhq5w7lw8sgg2v3jghg8n7i";
};
propagatedBuildInputs = with python3Packages; [ dateutil tornado_4 python-daemon boto3 ];
diff --git a/pkgs/applications/networking/cluster/terraform-compliance/default.nix b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
new file mode 100644
index 000000000000..e906f035fda2
--- /dev/null
+++ b/pkgs/applications/networking/cluster/terraform-compliance/default.nix
@@ -0,0 +1,56 @@
+{ lib
+, GitPython
+, buildPythonApplication
+, emoji
+, fetchFromGitHub
+, filetype
+, ipython
+, junit-xml
+, lxml
+, mock
+, netaddr
+, pytestCheckHook
+, python3Packages
+, radish-bdd
+, semver
+}:
+
+buildPythonApplication rec {
+ pname = "terraform-compliance";
+ version = "1.2.11";
+
+ # No tests in Pypi package
+ src = fetchFromGitHub {
+ owner = "eerkunt";
+ repo = pname;
+ rev = version;
+ sha256 = "161mszmxqp3wypnda48ama2mmq8yjilkxahwc1mxjwzy1n19sn7v";
+ };
+
+ checkInputs = [ pytestCheckHook ];
+
+ disabledTests = [
+ "test_which_success"
+ "test_readable_plan_file_is_not_json"
+ ];
+
+ propagatedBuildInputs = [
+ GitPython
+ emoji
+ filetype
+ ipython
+ junit-xml
+ lxml
+ mock
+ netaddr
+ radish-bdd
+ semver
+ ];
+
+ meta = with lib; {
+ description = "BDD test framework for terraform";
+ homepage = https://github.com/eerkunt/terraform-compliance;
+ license = licenses.mit;
+ maintainers = with maintainers; [ kalbasit ];
+ };
+}
diff --git a/pkgs/applications/networking/cluster/terraform/default.nix b/pkgs/applications/networking/cluster/terraform/default.nix
index 34c4d3022155..74aa881c999c 100644
--- a/pkgs/applications/networking/cluster/terraform/default.nix
+++ b/pkgs/applications/networking/cluster/terraform/default.nix
@@ -48,6 +48,7 @@ let
kalbasit
marsam
babariviere
+ Chili-Man
];
};
} // attrs');
@@ -118,8 +119,8 @@ in rec {
terraform_0_11-full = terraform_0_11.full;
terraform_0_12 = pluggable (generic {
- version = "0.12.28";
- sha256 = "05ymr6vc0sqh1sia0qawhz0mag8jdrq157mbj9bkdpsnlyv209p3";
+ version = "0.12.29";
+ sha256 = "18i7vkvnvfybwzhww8d84cyh93xfbwswcnwfrgvcny1qwm8rsaj8";
patches = [
./provider-path.patch
(fetchpatch {
@@ -131,8 +132,8 @@ in rec {
});
terraform_0_13 = pluggable (generic {
- version = "0.13.0-beta3";
- sha256 = "199rrw0kjp9qwa8llwmihgnqrgs4vr0zrbik5w5bfkrldyqp2ynb";
+ version = "0.13.0-rc1";
+ sha256 = "1lja2s9viz5ja40qmlf49p6hk3rwdz6q0rw3ff1894b464zbsnk2";
patches = [ ./provider-path.patch ];
passthru = { inherit plugins; };
});
diff --git a/pkgs/applications/networking/feedreaders/newsflash/cargo.lock.patch b/pkgs/applications/networking/feedreaders/newsflash/cargo.lock.patch
deleted file mode 100644
index 496eaaad3559..000000000000
--- a/pkgs/applications/networking/feedreaders/newsflash/cargo.lock.patch
+++ /dev/null
@@ -1,3374 +0,0 @@
-diff --git a/Cargo.lock b/Cargo.lock
-new file mode 100644
-index 0000000..fe8727a
---- /dev/null
-+++ b/Cargo.lock
-@@ -0,0 +1,3368 @@
-+# This file is automatically @generated by Cargo.
-+# It is not intended for manual editing.
-+[[package]]
-+name = "addr2line"
-+version = "0.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1b6a2d3371669ab3ca9797670853d61402b03d0b4b9ebf33d677dfa720203072"
-+dependencies = [
-+ "gimli",
-+]
-+
-+[[package]]
-+name = "adler"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e"
-+
-+[[package]]
-+name = "adler32"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "567b077b825e468cc974f0020d4082ee6e03132512f207ef1a02fd5d00d1f32d"
-+
-+[[package]]
-+name = "aes-soft"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4925647ee64e5056cf231608957ce7c81e12d6d6e316b9ce1404778cc1d35fa7"
-+dependencies = [
-+ "block-cipher",
-+ "byteorder",
-+ "opaque-debug 0.2.3",
-+]
-+
-+[[package]]
-+name = "aho-corasick"
-+version = "0.7.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "043164d8ba5c4c3035fec9bbee8647c0261d788f3474306f93bb65901cae0e86"
-+dependencies = [
-+ "memchr",
-+]
-+
-+[[package]]
-+name = "arc-swap"
-+version = "0.4.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4d25d88fd6b8041580a654f9d0c581a047baee2b3efee13275f2fc392fc75034"
-+
-+[[package]]
-+name = "arrayref"
-+version = "0.3.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544"
-+
-+[[package]]
-+name = "arrayvec"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cff77d8686867eceff3105329d4698d96c2391c176d5d03adc90c7389162b5b8"
-+
-+[[package]]
-+name = "article_scraper"
-+version = "1.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eed0c4b3fc148ecd8a241340da1d0b73befa0ee887b4492eafe7c9602935d47c"
-+dependencies = [
-+ "base64 0.12.3",
-+ "chrono",
-+ "encoding_rs",
-+ "failure",
-+ "image",
-+ "libxml",
-+ "log",
-+ "parking_lot 0.10.2",
-+ "regex",
-+ "reqwest",
-+ "tokio",
-+ "url",
-+]
-+
-+[[package]]
-+name = "async-trait"
-+version = "0.1.36"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a265e3abeffdce30b2e26b7a11b222fe37c6067404001b434101457d0385eb92"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "atk"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "444daefa55f229af145ea58d77efd23725024ee1f6f3102743709aa6b18c663e"
-+dependencies = [
-+ "atk-sys",
-+ "bitflags",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "atk-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e552c1776737a4c80110d06b36d099f47c727335f9aaa5d942a72b6863a8ec6f"
-+dependencies = [
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "atty"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8"
-+dependencies = [
-+ "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 = "backtrace"
-+version = "0.3.50"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "46254cf2fdcdf1badb5934448c1bcbe046a56537b3987d96c51a7afc5d03f293"
-+dependencies = [
-+ "addr2line",
-+ "cfg-if",
-+ "libc",
-+ "miniz_oxide 0.4.0",
-+ "object",
-+ "rustc-demangle",
-+]
-+
-+[[package]]
-+name = "base64"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b41b7ea54a0c9d92199de89e20e58d49f02f8e699814ef3fdf266f6f748d15c7"
-+
-+[[package]]
-+name = "base64"
-+version = "0.12.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff"
-+
-+[[package]]
-+name = "bitflags"
-+version = "1.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693"
-+
-+[[package]]
-+name = "blake2b_simd"
-+version = "0.5.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d8fb2d74254a3a0b5cac33ac9f8ed0e44aa50378d9dbb2e5d83bd21ed1dc2c8a"
-+dependencies = [
-+ "arrayref",
-+ "arrayvec",
-+ "constant_time_eq",
-+]
-+
-+[[package]]
-+name = "block-buffer"
-+version = "0.5.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d70f2a8c3126a2aec089e0aebcd945607e1155bfb5b89682eddf43c3ce386718"
-+dependencies = [
-+ "block-padding",
-+ "byte-tools 0.2.0",
-+ "generic-array 0.11.1",
-+]
-+
-+[[package]]
-+name = "block-buffer"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4"
-+dependencies = [
-+ "generic-array 0.14.3",
-+]
-+
-+[[package]]
-+name = "block-cipher"
-+version = "0.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fa136449e765dc7faa244561ccae839c394048667929af599b5d931ebe7b7f10"
-+dependencies = [
-+ "generic-array 0.14.3",
-+]
-+
-+[[package]]
-+name = "block-modes"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc7143fa8aadf0a3d8140f3f558063dcfc1b3205e5e837ad59485140f1575ae8"
-+dependencies = [
-+ "block-cipher",
-+ "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",
-+]
-+
-+[[package]]
-+name = "bumpalo"
-+version = "3.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2e8c087f005730276d1096a652e92a8bacee2e2472bcc9715a74d2bec38b5820"
-+
-+[[package]]
-+name = "byte-tools"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "560c32574a12a89ecd91f5e742165893f86e3ab98d21f8ea548658eb9eef5f40"
-+
-+[[package]]
-+name = "byte-tools"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e3b5ca7a04898ad4bcd41c90c5285445ff5b791899bb1b0abdd2a2aa791211d7"
-+
-+[[package]]
-+name = "bytemuck"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "37fa13df2292ecb479ec23aa06f4507928bef07839be9ef15281411076629431"
-+
-+[[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",
-+ "iovec",
-+]
-+
-+[[package]]
-+name = "bytes"
-+version = "0.5.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0e4cec68f03f32e44924783795810fa50a7035d8c8ebe78580ad7e6c703fba38"
-+
-+[[package]]
-+name = "cairo-rs"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "157049ba9618aa3a61c39d5d785102c04d3b1f40632a706c621a9aedc21e6084"
-+dependencies = [
-+ "bitflags",
-+ "cairo-sys-rs",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "cairo-sys-rs"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ff65ba02cac715be836f63429ab00a767d48336efc5497c5637afb53b4f14d63"
-+dependencies = [
-+ "glib-sys",
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "cc"
-+version = "1.0.58"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f9a06fb2e53271d7c279ec1efea6ab691c35a2ae67ec0d91d7acec0caf13b518"
-+
-+[[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",
-+ "num-traits",
-+ "time",
-+]
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ddfc5b9aa5d4507acaf872de71051dfd0e309860e88966e1051e462a077aac4f"
-+dependencies = [
-+ "bitflags",
-+]
-+
-+[[package]]
-+name = "cloudabi"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4344512281c643ae7638bbabc3af17a11307803ec8f0fcad9fae512a8bf36467"
-+dependencies = [
-+ "bitflags",
-+]
-+
-+[[package]]
-+name = "color-backtrace"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5356ae4e07c994a2763226a8a991e5829ded78ac23f8ac88b3f3e69970db5163"
-+dependencies = [
-+ "atty",
-+ "backtrace",
-+ "termcolor",
-+]
-+
-+[[package]]
-+name = "color_quant"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0dbbb57365263e881e805dc77d94697c9118fd94d8da011240555aa7b23445bd"
-+
-+[[package]]
-+name = "constant_time_eq"
-+version = "0.1.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc"
-+
-+[[package]]
-+name = "core-foundation"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "57d24c7a13c43e870e37c1556b74555437870a04514f7685f5b354e090567171"
-+dependencies = [
-+ "core-foundation-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "core-foundation-sys"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b3a71ab494c0b5b860bdc8407ae08978052417070c2ced38573a9157ad75b8ac"
-+
-+[[package]]
-+name = "cpuid-bool"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8aebca1129a03dc6dc2b127edd729435bbc4a37e1d5f4d7513165089ceb02634"
-+
-+[[package]]
-+name = "crc-any"
-+version = "2.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c3784befdf9469f4d51c69ef0b774f6a99de6bcc655285f746f16e0dd63d9007"
-+dependencies = [
-+ "debug-helper",
-+]
-+
-+[[package]]
-+name = "crc32fast"
-+version = "1.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ba125de2af0df55319f41944744ad91c71113bf74a4646efff39afe1f6842db1"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "crossbeam-deque"
-+version = "0.7.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9f02af974daeee82218205558e51ec8768b48cf524bd01d550abe5573a608285"
-+dependencies = [
-+ "crossbeam-epoch",
-+ "crossbeam-utils",
-+ "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",
-+ "cfg-if",
-+ "crossbeam-utils",
-+ "lazy_static",
-+ "maybe-uninit",
-+ "memoffset",
-+ "scopeguard",
-+]
-+
-+[[package]]
-+name = "crossbeam-queue"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "774ba60a54c213d409d5353bda12d49cd68d14e45036a285234c8d6f91f92570"
-+dependencies = [
-+ "cfg-if",
-+ "crossbeam-utils",
-+ "maybe-uninit",
-+]
-+
-+[[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",
-+ "cfg-if",
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "crypto-mac"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab"
-+dependencies = [
-+ "generic-array 0.14.3",
-+ "subtle",
-+]
-+
-+[[package]]
-+name = "debug-helper"
-+version = "0.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "176e6bb9f0e859d6f44fbcb4bbe63375d28b289175a46de1c0e79e788cb045a5"
-+
-+[[package]]
-+name = "deflate"
-+version = "0.8.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "73770f8e1fe7d64df17ca66ad28994a0a623ea497fa69486e14984e715c5d174"
-+dependencies = [
-+ "adler32",
-+ "byteorder",
-+]
-+
-+[[package]]
-+name = "des"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4e6f17f2850a27f147a228d342a95bf3c613934464d77d531fe8d5151ccd9362"
-+dependencies = [
-+ "block-cipher",
-+ "byteorder",
-+ "opaque-debug 0.2.3",
-+]
-+
-+[[package]]
-+name = "diesel"
-+version = "1.4.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3e2de9deab977a153492a1468d1b1c0662c1cf39e5ea87d0c060ecd59ef18d8c"
-+dependencies = [
-+ "byteorder",
-+ "chrono",
-+ "diesel_derives",
-+ "libsqlite3-sys",
-+ "r2d2",
-+]
-+
-+[[package]]
-+name = "diesel_derives"
-+version = "1.4.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "45f5098f628d02a7a0f68ddba586fb61e80edec3bdc1be3b921f4ceec60858d3"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "diesel_migrations"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bf3cde8413353dc7f5d72fa8ce0b99a560a359d2c5ef1e5817ca731cd9008f4c"
-+dependencies = [
-+ "migrations_internals",
-+ "migrations_macros",
-+]
-+
-+[[package]]
-+name = "digest"
-+version = "0.7.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03b072242a8cbaf9c145665af9d250c59af3b958f83ed6824e13533cf76d5b90"
-+dependencies = [
-+ "generic-array 0.9.0",
-+]
-+
-+[[package]]
-+name = "digest"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066"
-+dependencies = [
-+ "generic-array 0.14.3",
-+]
-+
-+[[package]]
-+name = "dirs"
-+version = "2.0.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13aea89a5c93364a98e9b37b2fa237effbb694d5cfe01c5b70941f7eb087d5e3"
-+dependencies = [
-+ "cfg-if",
-+ "dirs-sys",
-+]
-+
-+[[package]]
-+name = "dirs"
-+version = "3.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "142995ed02755914747cc6ca76fc7e4583cd18578746716d0508ea6ed558b9ff"
-+dependencies = [
-+ "dirs-sys",
-+]
-+
-+[[package]]
-+name = "dirs-sys"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8e93d7f5705de3e49895a2b5e0b8855a1c27f080192ae9c32a6432d50741a57a"
-+dependencies = [
-+ "libc",
-+ "redox_users",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "dotenv"
-+version = "0.15.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "77c90badedccf4105eca100756a0b1289e191f6fcbdadd3cee1d2f614f97da8f"
-+
-+[[package]]
-+name = "dtoa"
-+version = "0.4.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "134951f4028bdadb9b84baf4232681efbf277da25144b9b0ad65df75946c422b"
-+
-+[[package]]
-+name = "either"
-+version = "1.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb1f6b1ce1c140482ea30ddd3335fc0024ac7ee112895426e0a629a6c20adfe3"
-+
-+[[package]]
-+name = "encoding_rs"
-+version = "0.8.23"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e8ac63f94732332f44fe654443c46f6375d1939684c17b0afb6cb56b0456e171"
-+dependencies = [
-+ "cfg-if",
-+]
-+
-+[[package]]
-+name = "entities"
-+version = "1.0.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5320ae4c3782150d900b79807611a59a99fc9a1d61d686faafc24b93fc8d7ca"
-+
-+[[package]]
-+name = "escaper"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "39da344028c2227132b2dfa7c186e2104ecc153467583d00ed9c398f9ff693b0"
-+dependencies = [
-+ "entities",
-+]
-+
-+[[package]]
-+name = "failure"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d32e9bd16cc02eae7db7ef620b392808b89f6a5e16bb3497d159c6b92a0f4f86"
-+dependencies = [
-+ "backtrace",
-+ "failure_derive",
-+]
-+
-+[[package]]
-+name = "failure_derive"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa4da3c766cd7a0db8242e326e9e4e081edd567072893ed320008189715366a4"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "synstructure",
-+]
-+
-+[[package]]
-+name = "feed-rs"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "04f46079ca09a708b97ee7efca048bf55714c74765271f6bd8fcd656963751cb"
-+dependencies = [
-+ "chrono",
-+ "lazy_static",
-+ "mime",
-+ "regex",
-+ "serde",
-+ "serde_json",
-+ "siphasher 0.3.3",
-+ "uuid",
-+ "xml-rs",
-+]
-+
-+[[package]]
-+name = "feedbin_api"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d98fb4cc166a04aaee30fbf159830533ab1c0aecebd519b2ef72713d85e4dfb2"
-+dependencies = [
-+ "chrono",
-+ "failure",
-+ "reqwest",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "tokio",
-+ "url",
-+]
-+
-+[[package]]
-+name = "feedly_api"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "806369761536af622d4fd2995012138aa1db1eec9423fa0235767aa1b8a6143c"
-+dependencies = [
-+ "chrono",
-+ "failure",
-+ "log",
-+ "percent-encoding",
-+ "reqwest",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "tokio",
-+ "url",
-+]
-+
-+[[package]]
-+name = "fever_api"
-+version = "0.2.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e7eaf741803c002bfded1ea3b0134233e83201958c7175f5cf4aa5a71e6edc47"
-+dependencies = [
-+ "failure",
-+ "log",
-+ "md5",
-+ "reqwest",
-+ "serde",
-+ "serde_json",
-+ "url",
-+]
-+
-+[[package]]
-+name = "flate2"
-+version = "1.0.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "68c90b0fc46cf89d227cc78b40e494ff81287a92dd07631e5af0d06fe3cf885e"
-+dependencies = [
-+ "cfg-if",
-+ "crc32fast",
-+ "libc",
-+ "miniz_oxide 0.4.0",
-+]
-+
-+[[package]]
-+name = "fnv"
-+version = "1.0.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1"
-+
-+[[package]]
-+name = "foreign-types"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
-+dependencies = [
-+ "foreign-types-shared",
-+]
-+
-+[[package]]
-+name = "foreign-types-shared"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
-+
-+[[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",
-+ "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 = "futf"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7c9c1ce3fa9336301af935ab852c437817d14cd33690446569392e65170aac3b"
-+dependencies = [
-+ "mac",
-+ "new_debug_unreachable",
-+]
-+
-+[[package]]
-+name = "futures"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e05b85ec287aac0dc34db7d4a569323df697f9c55b99b15d6b4ef8cde49f613"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-executor",
-+ "futures-io",
-+ "futures-sink",
-+ "futures-task",
-+ "futures-util",
-+]
-+
-+[[package]]
-+name = "futures-channel"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f366ad74c28cca6ba456d95e6422883cfb4b252a83bed929c83abfdbbf2967d5"
-+dependencies = [
-+ "futures-core",
-+ "futures-sink",
-+]
-+
-+[[package]]
-+name = "futures-core"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "59f5fff90fd5d971f936ad674802482ba441b6f09ba5e15fd8b39145582ca399"
-+
-+[[package]]
-+name = "futures-executor"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "10d6bb888be1153d3abeb9006b11b02cf5e9b209fda28693c31ae1e4e012e314"
-+dependencies = [
-+ "futures-core",
-+ "futures-task",
-+ "futures-util",
-+ "num_cpus",
-+]
-+
-+[[package]]
-+name = "futures-io"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "de27142b013a8e869c14957e6d2edeef89e97c289e69d042ee3a49acd8b51789"
-+
-+[[package]]
-+name = "futures-macro"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d0b5a30a4328ab5473878237c447333c093297bded83a4983d10f4deea240d39"
-+dependencies = [
-+ "proc-macro-hack",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[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",
-+]
-+
-+[[package]]
-+name = "futures-util"
-+version = "0.3.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8764574ff08b701a084482c3c7031349104b07ac897393010494beaa18ce32c6"
-+dependencies = [
-+ "futures-channel",
-+ "futures-core",
-+ "futures-io",
-+ "futures-macro",
-+ "futures-sink",
-+ "futures-task",
-+ "memchr",
-+ "pin-project",
-+ "pin-utils",
-+ "proc-macro-hack",
-+ "proc-macro-nested",
-+ "slab",
-+]
-+
-+[[package]]
-+name = "gdk"
-+version = "0.12.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fbe5e8772fc0865c52460cdd7a59d7d47700f44d9809d1dd00eecceb769a7589"
-+dependencies = [
-+ "bitflags",
-+ "cairo-rs",
-+ "cairo-sys-rs",
-+ "gdk-pixbuf",
-+ "gdk-sys",
-+ "gio",
-+ "gio-sys",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pango",
-+]
-+
-+[[package]]
-+name = "gdk-pixbuf"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e248220c46b329b097d4b158d2717f8c688f16dd76d0399ace82b3e98062bdd7"
-+dependencies = [
-+ "gdk-pixbuf-sys",
-+ "gio",
-+ "gio-sys",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "gdk-pixbuf-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d8991b060a9e9161bafd09bf4a202e6fd404f5b4dd1a08d53a1e84256fb34ab0"
-+dependencies = [
-+ "gio-sys",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "gdk-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6adf679e91d1bff0c06860287f80403e7db54c2d2424dce0a470023b56c88fbb"
-+dependencies = [
-+ "cairo-sys-rs",
-+ "gdk-pixbuf-sys",
-+ "gio-sys",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pango-sys",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "generic-array"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ef25c5683767570c2bbd7deba372926a55eaae9982d7726ee2a1050239d45b9d"
-+dependencies = [
-+ "typenum",
-+]
-+
-+[[package]]
-+name = "generic-array"
-+version = "0.11.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8107dafa78c80c848b71b60133954b4a58609a3a1a5f9af037ecc7f67280f369"
-+dependencies = [
-+ "typenum",
-+]
-+
-+[[package]]
-+name = "generic-array"
-+version = "0.14.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60fb4bb6bba52f78a471264d9a3b7d026cc0af47b22cd2cffbc0b787ca003e63"
-+dependencies = [
-+ "typenum",
-+ "version_check",
-+]
-+
-+[[package]]
-+name = "getrandom"
-+version = "0.1.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7abc8dd8451921606d809ba32e95b6111925cd2906060d2dcc29c070220503eb"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "wasi",
-+]
-+
-+[[package]]
-+name = "gettext-rs"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "df454a42d8a718280c78666efe0707c120873736961ae91ead898f17ac66ce7c"
-+dependencies = [
-+ "gettext-sys",
-+ "locale_config",
-+]
-+
-+[[package]]
-+name = "gettext-sys"
-+version = "0.19.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e034c4ba5bb796730a6cc5eb0d654c16885006a7c3d6c6603581ed809434f153"
-+dependencies = [
-+ "cc",
-+]
-+
-+[[package]]
-+name = "gif"
-+version = "0.10.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "471d90201b3b223f3451cd4ad53e34295f16a1df17b1edf3736d47761c3981af"
-+dependencies = [
-+ "color_quant",
-+ "lzw",
-+]
-+
-+[[package]]
-+name = "gimli"
-+version = "0.22.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
-+
-+[[package]]
-+name = "gio"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0cd10f9415cce39b53f8024bf39a21f84f8157afa52da53837b102e585a296a5"
-+dependencies = [
-+ "bitflags",
-+ "futures-channel",
-+ "futures-core",
-+ "futures-io",
-+ "futures-util",
-+ "gio-sys",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "lazy_static",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "gio-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fad225242b9eae7ec8a063bb86974aca56885014672375e5775dc0ea3533911"
-+dependencies = [
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "glib"
-+version = "0.9.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "40fb573a09841b6386ddf15fd4bc6655b4f5b106ca962f57ecaecde32a0061c0"
-+dependencies = [
-+ "bitflags",
-+ "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",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "gobject-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "31d1a804f62034eccf370006ccaef3708a71c31d561fee88564abe71177553d9"
-+dependencies = [
-+ "glib-sys",
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "gtk"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "87e1e8d70290239c668594002d1b174fcc7d7ef5d26670ee141490ede8facf8f"
-+dependencies = [
-+ "atk",
-+ "bitflags",
-+ "cairo-rs",
-+ "cairo-sys-rs",
-+ "cc",
-+ "gdk",
-+ "gdk-pixbuf",
-+ "gdk-pixbuf-sys",
-+ "gdk-sys",
-+ "gio",
-+ "gio-sys",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gtk-sys",
-+ "lazy_static",
-+ "libc",
-+ "pango",
-+ "pango-sys",
-+]
-+
-+[[package]]
-+name = "gtk-sys"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "53def660c7b48b00b510c81ef2d2fbd3c570f1527081d8d7947f471513e1a4c1"
-+dependencies = [
-+ "atk-sys",
-+ "cairo-sys-rs",
-+ "gdk-pixbuf-sys",
-+ "gdk-sys",
-+ "gio-sys",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pango-sys",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "h2"
-+version = "0.2.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "993f9e0baeed60001cf565546b0d3dbe6a6ad23f2bd31644a133c641eccf6d53"
-+dependencies = [
-+ "bytes 0.5.6",
-+ "fnv",
-+ "futures-core",
-+ "futures-sink",
-+ "futures-util",
-+ "http",
-+ "indexmap",
-+ "slab",
-+ "tokio",
-+ "tokio-util",
-+ "tracing",
-+]
-+
-+[[package]]
-+name = "hashbrown"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "34f595585f103464d8d2f6e9864682d74c1601fed5e07d62b1c9058dba8246fb"
-+dependencies = [
-+ "autocfg 1.0.0",
-+]
-+
-+[[package]]
-+name = "hermit-abi"
-+version = "0.1.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3deed196b6e7f9e44a2ae8d94225d80302d81208b1bb673fd21fe634645c85a9"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "hmac"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840"
-+dependencies = [
-+ "crypto-mac",
-+ "digest 0.9.0",
-+]
-+
-+[[package]]
-+name = "html5ever"
-+version = "0.24.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "025483b0a1e4577bb28578318c886ee5f817dda6eb62473269349044406644cb"
-+dependencies = [
-+ "log",
-+ "mac",
-+ "markup5ever",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "http"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "28d569972648b2c512421b5f2a405ad6ac9666547189d0c5477a3f200f3e02f9"
-+dependencies = [
-+ "bytes 0.5.6",
-+ "fnv",
-+ "itoa",
-+]
-+
-+[[package]]
-+name = "http-body"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "13d5ff830006f7646652e057693569bfe0d51760c0085a071769d142a205111b"
-+dependencies = [
-+ "bytes 0.5.6",
-+ "http",
-+]
-+
-+[[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",
-+]
-+
-+[[package]]
-+name = "hyper"
-+version = "0.13.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3e68a8dd9716185d9e64ea473ea6ef63529252e3e27623295a0378a19665d5eb"
-+dependencies = [
-+ "bytes 0.5.6",
-+ "futures-channel",
-+ "futures-core",
-+ "futures-util",
-+ "h2",
-+ "http",
-+ "http-body",
-+ "httparse",
-+ "itoa",
-+ "pin-project",
-+ "socket2",
-+ "time",
-+ "tokio",
-+ "tower-service",
-+ "tracing",
-+ "want",
-+]
-+
-+[[package]]
-+name = "hyper-tls"
-+version = "0.4.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d979acc56dcb5b8dddba3917601745e877576475aa046df3226eabdecef78eed"
-+dependencies = [
-+ "bytes 0.5.6",
-+ "hyper",
-+ "native-tls",
-+ "tokio",
-+ "tokio-tls",
-+]
-+
-+[[package]]
-+name = "idna"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02e2673c30ee86b5b96a9cb52ad15718aa1f966f5ab9ad54a8b95d5ca33120a9"
-+dependencies = [
-+ "matches",
-+ "unicode-bidi",
-+ "unicode-normalization",
-+]
-+
-+[[package]]
-+name = "image"
-+version = "0.23.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a2397fc43bd5648b7117aabb3c5e62d0e62c194826ec77b0b4d0c41e62744635"
-+dependencies = [
-+ "bytemuck",
-+ "byteorder",
-+ "gif",
-+ "jpeg-decoder",
-+ "num-iter",
-+ "num-rational",
-+ "num-traits",
-+ "png",
-+ "scoped_threadpool",
-+ "tiff",
-+]
-+
-+[[package]]
-+name = "indexmap"
-+version = "1.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5b88cd59ee5f71fea89a62248fc8f387d44400cefe05ef548466d61ced9029a7"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "hashbrown",
-+]
-+
-+[[package]]
-+name = "instant"
-+version = "0.1.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5b141fdc7836c525d4d594027d318c84161ca17aaf8113ab1f81ab93ae897485"
-+
-+[[package]]
-+name = "iovec"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b2b3ea6ff95e175473f8ffe6a7eb7c00d054240321b84c57051175fe3c1e075e"
-+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.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc6f3ad7b9d11a0c00842ff8de1b60ee58661048eb8049ed33c73594f359d7e6"
-+
-+[[package]]
-+name = "javascriptcore-rs"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2104be353e5c19d587e25f36ecb6d59504b5573ad84b96b06650b0cc99d02784"
-+dependencies = [
-+ "glib",
-+ "javascriptcore-rs-sys",
-+]
-+
-+[[package]]
-+name = "javascriptcore-rs-sys"
-+version = "0.2.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f46ada8a08dcd75a10afae872fbfb51275df4a8ae0d46b8cc7c708f08dd2998"
-+dependencies = [
-+ "libc",
-+]
-+
-+[[package]]
-+name = "jpeg-decoder"
-+version = "0.1.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cc797adac5f083b8ff0ca6f6294a999393d76e197c36488e2ef732c4715f6fa3"
-+dependencies = [
-+ "byteorder",
-+ "rayon",
-+]
-+
-+[[package]]
-+name = "js-sys"
-+version = "0.3.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "52732a3d3ad72c58ad2dc70624f9c17b46ecd0943b9a4f1ee37c4c18c5d983e2"
-+dependencies = [
-+ "wasm-bindgen",
-+]
-+
-+[[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",
-+ "winapi-build",
-+]
-+
-+[[package]]
-+name = "lazy_static"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646"
-+
-+[[package]]
-+name = "libc"
-+version = "0.2.73"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bd7d4bd64732af4bf3a67f367c27df8520ad7e230c5817b8ff485864d80242b9"
-+
-+[[package]]
-+name = "libhandy"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2aa9f5620e4143358bcd645fe7d7d27b974ed9148cbdd490bc811813899afa07"
-+dependencies = [
-+ "bitflags",
-+ "gdk",
-+ "gdk-sys",
-+ "gio",
-+ "gio-sys",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gtk",
-+ "gtk-sys",
-+ "lazy_static",
-+ "libc",
-+ "libhandy-sys",
-+ "pango",
-+]
-+
-+[[package]]
-+name = "libhandy-sys"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d707af842e918719b71af0ac6cf31d1843f6e8a4d1e9c733b998d8d482e60446"
-+dependencies = [
-+ "gdk",
-+ "gdk-sys",
-+ "gio",
-+ "gio-sys",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gtk-sys",
-+ "libc",
-+ "pango-sys",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "libsqlite3-sys"
-+version = "0.18.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e704a02bcaecd4a08b93a23f6be59d0bd79cd161e0963e9499165a0a35df7bd"
-+dependencies = [
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "libxml"
-+version = "0.2.14"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "56aa7ca31a98e8689fbb0647add450b1523e554c7c7c60d4ee51df32bb2c9566"
-+dependencies = [
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "linked-hash-map"
-+version = "0.5.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a"
-+
-+[[package]]
-+name = "locale_config"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "73ac19ebe45489e5d53b4346d8b90bb3dd03275c5fdf2ce22a982516d86b535c"
-+dependencies = [
-+ "lazy_static",
-+ "regex",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "lock_api"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c4da24a77a3d8a6d4862d95f72e6fdb9c09a643ecdb402d754004a557f2bec75"
-+dependencies = [
-+ "scopeguard",
-+]
-+
-+[[package]]
-+name = "lock_api"
-+version = "0.4.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "28247cc5a5be2f05fbcd76dd0cf2c7d3b5400cb978a28042abcd4fa0b3f8261c"
-+dependencies = [
-+ "scopeguard",
-+]
-+
-+[[package]]
-+name = "log"
-+version = "0.4.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b"
-+dependencies = [
-+ "cfg-if",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "log-mdc"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a94d21414c1f4a51209ad204c1776a3d0765002c76c6abcb602a6f09f1e881c7"
-+
-+[[package]]
-+name = "log4rs"
-+version = "0.12.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f4d8e6e1d5f89acca713132acc6034f30bad09b961d1338161bdb71c08f6e4fa"
-+dependencies = [
-+ "arc-swap",
-+ "chrono",
-+ "flate2",
-+ "fnv",
-+ "humantime",
-+ "libc",
-+ "log",
-+ "log-mdc",
-+ "parking_lot 0.10.2",
-+ "serde",
-+ "serde-value",
-+ "serde_derive",
-+ "serde_json",
-+ "serde_yaml",
-+ "thread-id",
-+ "typemap",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "lzw"
-+version = "0.10.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7d947cbb889ed21c2a84be6ffbaebf5b4e0f4340638cba0444907e38b56be084"
-+
-+[[package]]
-+name = "mac"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c41e0c4fef86961ac6d6f8a82609f55f31b05e4fce149ac5710e439df7619ba4"
-+
-+[[package]]
-+name = "magic-crypt"
-+version = "3.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6ccb417db1f1736b5e40a73be0076a3506db2b107b198819c91321f6805e3b8f"
-+dependencies = [
-+ "aes-soft",
-+ "base64 0.12.3",
-+ "block-modes",
-+ "crc-any",
-+ "des",
-+ "digest 0.7.6",
-+ "digest 0.9.0",
-+ "md-5",
-+ "sha2",
-+ "tiger-digest",
-+]
-+
-+[[package]]
-+name = "markup5ever"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "65381d9d47506b8592b97c4efd936afcf673b09b059f2bef39c7211ee78b9d03"
-+dependencies = [
-+ "log",
-+ "phf",
-+ "phf_codegen",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "string_cache",
-+ "string_cache_codegen",
-+ "tendril",
-+]
-+
-+[[package]]
-+name = "matches"
-+version = "0.1.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7ffc5c5338469d4d3ea17d269fa8ea3512ad247247c30bd2df69e68309ed0a08"
-+
-+[[package]]
-+name = "maybe-uninit"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "60302e4db3a61da70c0cb7991976248362f30319e88850c487b9b95bbf059e00"
-+
-+[[package]]
-+name = "md-5"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7b5a279bb9607f9f53c22d496eade00d138d1bdcccd07d74650387cf94942a15"
-+dependencies = [
-+ "block-buffer 0.9.0",
-+ "digest 0.9.0",
-+ "opaque-debug 0.3.0",
-+]
-+
-+[[package]]
-+name = "md5"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "490cc448043f947bae3cbee9c203358d62dbee0db12107a74be5c30ccfd09771"
-+
-+[[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",
-+]
-+
-+[[package]]
-+name = "migrations_internals"
-+version = "1.4.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2b4fc84e4af020b837029e017966f86a1c2d5e83e64b589963d5047525995860"
-+dependencies = [
-+ "diesel",
-+]
-+
-+[[package]]
-+name = "migrations_macros"
-+version = "1.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9753f12909fd8d923f75ae5c3258cae1ed3c8ec052e1b38c93c21a6d157f789c"
-+dependencies = [
-+ "migrations_internals",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "mime"
-+version = "0.3.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2a60c7ce501c71e03a9c9c0d35b861413ae925bd979cc7a4e30d060069aaac8d"
-+
-+[[package]]
-+name = "mime_guess"
-+version = "2.0.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2684d4c2e97d99848d30b324b00c8fcc7e5c897b7cbb5819b09e7c90e8baf212"
-+dependencies = [
-+ "mime",
-+ "unicase",
-+]
-+
-+[[package]]
-+name = "miniflux_api"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "02199d30989a6e0346bbbfcbeb3aa1ee5cbc22f99021e6b469c9343307950793"
-+dependencies = [
-+ "base64 0.12.3",
-+ "dotenv",
-+ "failure",
-+ "log",
-+ "reqwest",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "tokio",
-+ "url",
-+]
-+
-+[[package]]
-+name = "miniz_oxide"
-+version = "0.3.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "791daaae1ed6889560f8c4359194f56648355540573244a5448a83ba1ecc7435"
-+dependencies = [
-+ "adler32",
-+]
-+
-+[[package]]
-+name = "miniz_oxide"
-+version = "0.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be0f75932c1f6cfae3c04000e40114adf955636e19040f9c0a2c380702aa1c7f"
-+dependencies = [
-+ "adler",
-+]
-+
-+[[package]]
-+name = "mio"
-+version = "0.6.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fce347092656428bc8eaf6201042cb551b8d67855af7374542a92a0fbfcac430"
-+dependencies = [
-+ "cfg-if",
-+ "fuchsia-zircon",
-+ "fuchsia-zircon-sys",
-+ "iovec",
-+ "kernel32-sys",
-+ "libc",
-+ "log",
-+ "miow",
-+ "net2",
-+ "slab",
-+ "winapi 0.2.8",
-+]
-+
-+[[package]]
-+name = "miow"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8c1f2f3b1cf331de6896aabf6e9d55dca90356cc9960cca7eaaf408a355ae919"
-+dependencies = [
-+ "kernel32-sys",
-+ "net2",
-+ "winapi 0.2.8",
-+ "ws2_32-sys",
-+]
-+
-+[[package]]
-+name = "native-tls"
-+version = "0.2.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2b0d88c06fe90d5ee94048ba40409ef1d9315d86f6f38c2efdaad4fb50c58b2d"
-+dependencies = [
-+ "lazy_static",
-+ "libc",
-+ "log",
-+ "openssl",
-+ "openssl-probe",
-+ "openssl-sys",
-+ "schannel",
-+ "security-framework",
-+ "security-framework-sys",
-+ "tempfile",
-+]
-+
-+[[package]]
-+name = "net2"
-+version = "0.2.34"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2ba7c918ac76704fb42afcbbb43891e72731f3dcca3bef2a19786297baf14af7"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "new_debug_unreachable"
-+version = "1.0.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e4a24736216ec316047a1fc4252e27dabb04218aa4a3f37c6e7ddbf1f9782b54"
-+
-+[[package]]
-+name = "news-flash"
-+version = "1.0.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "61d283e47ad39a7958eb2ff9b6aa7a7a7496a8d2e907fc3abbe50d80bfab8fa1"
-+dependencies = [
-+ "article_scraper",
-+ "async-trait",
-+ "base64 0.12.3",
-+ "bitflags",
-+ "chrono",
-+ "diesel",
-+ "diesel_migrations",
-+ "escaper",
-+ "failure",
-+ "feed-rs",
-+ "feedbin_api",
-+ "feedly_api",
-+ "fever_api",
-+ "futures",
-+ "hmac",
-+ "image",
-+ "itertools",
-+ "lazy_static",
-+ "libxml",
-+ "log",
-+ "magic-crypt",
-+ "mime_guess",
-+ "miniflux_api",
-+ "obfstr",
-+ "parking_lot 0.10.2",
-+ "rayon",
-+ "readability-fork",
-+ "regex",
-+ "reqwest",
-+ "rust-embed",
-+ "serde",
-+ "serde_derive",
-+ "serde_json",
-+ "sha-1",
-+ "sxd-document",
-+ "tokio",
-+ "url",
-+]
-+
-+[[package]]
-+name = "news_flash_gtk"
-+version = "0.0.0"
-+dependencies = [
-+ "cairo-rs",
-+ "chrono",
-+ "color-backtrace",
-+ "dirs 3.0.1",
-+ "failure",
-+ "feedly_api",
-+ "futures",
-+ "futures-util",
-+ "gdk",
-+ "gdk-pixbuf",
-+ "gettext-rs",
-+ "gio",
-+ "glib",
-+ "gtk",
-+ "lazy_static",
-+ "libhandy",
-+ "log",
-+ "log4rs",
-+ "news-flash",
-+ "num_cpus",
-+ "open",
-+ "pango",
-+ "parking_lot 0.11.0",
-+ "regex",
-+ "reqwest",
-+ "rust-embed",
-+ "serde",
-+ "serde_json",
-+ "tokio",
-+ "url",
-+ "webkit2gtk",
-+]
-+
-+[[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",
-+ "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",
-+ "num-integer",
-+ "num-traits",
-+]
-+
-+[[package]]
-+name = "num-rational"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a5b4d7360f362cfb50dde8143501e6940b22f644be75a4cc90b2d81968908138"
-+dependencies = [
-+ "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",
-+]
-+
-+[[package]]
-+name = "num_cpus"
-+version = "1.13.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05499f3756671c15885fee9034446956fff3f243d6077b91e5767df161f766b3"
-+dependencies = [
-+ "hermit-abi",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "obfstr"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4fde677a726bbf8effc101af04b80e7c9464f5dc50fe28bc40c3d530facb899f"
-+dependencies = [
-+ "obfstr-impl",
-+]
-+
-+[[package]]
-+name = "obfstr-impl"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d975ff8aca17dea6a5db9f740bc50f8741e9bf16d01d2f501dfc93ddd67e65e4"
-+dependencies = [
-+ "rand 0.6.5",
-+]
-+
-+[[package]]
-+name = "object"
-+version = "0.20.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1ab52be62400ca80aa00285d25253d7f7c437b7375c4de678f5405d3afe82ca5"
-+
-+[[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 = "opaque-debug"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5"
-+
-+[[package]]
-+name = "open"
-+version = "1.4.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7c283bf0114efea9e42f1a60edea9859e8c47528eae09d01df4b29c1e489cc48"
-+dependencies = [
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "openssl"
-+version = "0.10.30"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8d575eff3665419f9b83678ff2815858ad9d11567e082f5ac1814baba4e2bcb4"
-+dependencies = [
-+ "bitflags",
-+ "cfg-if",
-+ "foreign-types",
-+ "lazy_static",
-+ "libc",
-+ "openssl-sys",
-+]
-+
-+[[package]]
-+name = "openssl-probe"
-+version = "0.1.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "77af24da69f9d9341038eba93a073b1fdaaa1b788221b00a69bce9e762cb32de"
-+
-+[[package]]
-+name = "openssl-sys"
-+version = "0.9.58"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a842db4709b604f0fe5d1170ae3565899be2ad3d9cbc72dedc789ac0511f78de"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "cc",
-+ "libc",
-+ "pkg-config",
-+ "vcpkg",
-+]
-+
-+[[package]]
-+name = "ordered-float"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3741934be594d77de1c8461ebcbbe866f585ea616a9753aa78f2bdc69f0e4579"
-+dependencies = [
-+ "num-traits",
-+]
-+
-+[[package]]
-+name = "pango"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1e9c6b728f1be8edb5f9f981420b651d5ea30bdb9de89f1f1262d0084a020577"
-+dependencies = [
-+ "bitflags",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "lazy_static",
-+ "libc",
-+ "pango-sys",
-+]
-+
-+[[package]]
-+name = "pango-sys"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "86b93d84907b3cf0819bff8f13598ba72843bee579d5ebc2502e4b0367b4be7d"
-+dependencies = [
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "parking_lot"
-+version = "0.10.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d3a704eb390aafdc107b0e392f56a82b668e3a71366993b5340f5833fd62505e"
-+dependencies = [
-+ "lock_api 0.3.4",
-+ "parking_lot_core 0.7.2",
-+]
-+
-+[[package]]
-+name = "parking_lot"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a4893845fa2ca272e647da5d0e46660a314ead9c2fdd9a883aabc32e481a8733"
-+dependencies = [
-+ "instant",
-+ "lock_api 0.4.1",
-+ "parking_lot_core 0.8.0",
-+]
-+
-+[[package]]
-+name = "parking_lot_core"
-+version = "0.7.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d58c7c768d4ba344e3e8d72518ac13e259d7c7ade24167003b8488e10b6740a3"
-+dependencies = [
-+ "cfg-if",
-+ "cloudabi 0.0.3",
-+ "libc",
-+ "redox_syscall",
-+ "smallvec",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "parking_lot_core"
-+version = "0.8.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c361aa727dd08437f2f1447be8b59a33b0edd15e0fcee698f935613d9efbca9b"
-+dependencies = [
-+ "cfg-if",
-+ "cloudabi 0.1.0",
-+ "instant",
-+ "libc",
-+ "redox_syscall",
-+ "smallvec",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "percent-encoding"
-+version = "2.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d4fd5641d01c8f18a23da7b6fe29298ff4b55afcccdf78973b24cf3175fee32e"
-+
-+[[package]]
-+name = "peresil"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f658886ed52e196e850cfbbfddab9eaa7f6d90dd0929e264c31e5cec07e09e57"
-+
-+[[package]]
-+name = "phf"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b3da44b85f8e8dfaec21adae67f95d93244b2ecf6ad2a692320598dcc8e6dd18"
-+dependencies = [
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_codegen"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b03e85129e324ad4166b06b2c7491ae27fe3ec353af72e72cd1654c7225d517e"
-+dependencies = [
-+ "phf_generator",
-+ "phf_shared",
-+]
-+
-+[[package]]
-+name = "phf_generator"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09364cc93c159b8b06b1f4dd8a4398984503483891b0c26b867cf431fb132662"
-+dependencies = [
-+ "phf_shared",
-+ "rand 0.6.5",
-+]
-+
-+[[package]]
-+name = "phf_shared"
-+version = "0.7.24"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "234f71a15de2288bcb7e3b6515828d22af7ec8598ee6d24c3b526fa0a80b67a0"
-+dependencies = [
-+ "siphasher 0.2.3",
-+]
-+
-+[[package]]
-+name = "pin-project"
-+version = "0.4.22"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "12e3a6cdbfe94a5e4572812a0201f8c0ed98c1c452c7b8563ce2276988ef9c17"
-+dependencies = [
-+ "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",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "pin-project-lite"
-+version = "0.1.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "282adbf10f2698a7a77f8e983a74b2d18176c19a7fd32a45446139ae7b02b715"
-+
-+[[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 = "png"
-+version = "0.16.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dfe7f9f1c730833200b134370e1d5098964231af8450bce9b78ee3ab5278b970"
-+dependencies = [
-+ "bitflags",
-+ "crc32fast",
-+ "deflate",
-+ "miniz_oxide 0.3.7",
-+]
-+
-+[[package]]
-+name = "ppv-lite86"
-+version = "0.2.8"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "237a5ed80e274dbc66f86bd59c1e25edc039660be53194b5fe0a482e0f2612ea"
-+
-+[[package]]
-+name = "precomputed-hash"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "925383efa346730478fb4838dbe9137d2a47675ad789c546d150a6e1dd4ab31c"
-+
-+[[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 = "1.0.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "04f5f085b5d71e2188cb8271e5da0161ad52c3f227a661a3c135fdf28e258b12"
-+dependencies = [
-+ "unicode-xid",
-+]
-+
-+[[package]]
-+name = "quick-error"
-+version = "1.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0"
-+
-+[[package]]
-+name = "quote"
-+version = "1.0.7"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "aa563d17ecb180e500da1cfd2b028310ac758de548efdd203e18f283af693f37"
-+dependencies = [
-+ "proc-macro2",
-+]
-+
-+[[package]]
-+name = "r2d2"
-+version = "0.8.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "545c5bc2b880973c9c10e4067418407a0ccaa3091781d1671d46eb35107cb26f"
-+dependencies = [
-+ "log",
-+ "parking_lot 0.11.0",
-+ "scheduled-thread-pool",
-+]
-+
-+[[package]]
-+name = "rand"
-+version = "0.6.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6d71dacdc3c88c1fde3885a3be3fbab9f35724e6ce99467f7d9c5026132184ca"
-+dependencies = [
-+ "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",
-+ "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",
-+ "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",
-+ "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",
-+]
-+
-+[[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",
-+]
-+
-+[[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",
-+]
-+
-+[[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",
-+]
-+
-+[[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",
-+]
-+
-+[[package]]
-+name = "rand_jitter"
-+version = "0.1.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1166d5c91dc97b88d1decc3285bb0a99ed84b05cfd0bc2341bdf2d43fc41e39b"
-+dependencies = [
-+ "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",
-+ "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",
-+ "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",
-+]
-+
-+[[package]]
-+name = "rayon"
-+version = "1.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "62f02856753d04e03e26929f820d0a0a337ebe71f849801eea335d464b349080"
-+dependencies = [
-+ "autocfg 1.0.0",
-+ "crossbeam-deque",
-+ "either",
-+ "rayon-core",
-+]
-+
-+[[package]]
-+name = "rayon-core"
-+version = "1.7.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e92e15d89083484e11353891f1af602cc661426deb9564c298b270c726973280"
-+dependencies = [
-+ "crossbeam-deque",
-+ "crossbeam-queue",
-+ "crossbeam-utils",
-+ "lazy_static",
-+ "num_cpus",
-+]
-+
-+[[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",
-+]
-+
-+[[package]]
-+name = "readability-fork"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f6ec2b0bd9b8bbab0eb27f1235e17e201ad31a2669bafe19e60924e11a113f42"
-+dependencies = [
-+ "html5ever",
-+ "lazy_static",
-+ "regex",
-+ "reqwest",
-+ "url",
-+]
-+
-+[[package]]
-+name = "redox_syscall"
-+version = "0.1.57"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce"
-+
-+[[package]]
-+name = "redox_users"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "09b23093265f8d200fa7b4c2c76297f47e681c655f6f1285a8780d6a022f7431"
-+dependencies = [
-+ "getrandom",
-+ "redox_syscall",
-+ "rust-argon2",
-+]
-+
-+[[package]]
-+name = "regex"
-+version = "1.3.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9c3780fcf44b193bc4d09f36d2a3c87b251da4a046c87795a0d35f4f927ad8e6"
-+dependencies = [
-+ "aho-corasick",
-+ "memchr",
-+ "regex-syntax",
-+ "thread_local",
-+]
-+
-+[[package]]
-+name = "regex-syntax"
-+version = "0.6.18"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "26412eb97c6b088a6997e05f69403a802a92d520de2f8e63c2b65f9e0f47c4e8"
-+
-+[[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",
-+]
-+
-+[[package]]
-+name = "reqwest"
-+version = "0.10.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3b82c9238b305f26f53443e3a4bc8528d64b8d0bee408ec949eb7bf5635ec680"
-+dependencies = [
-+ "base64 0.12.3",
-+ "bytes 0.5.6",
-+ "encoding_rs",
-+ "futures-core",
-+ "futures-util",
-+ "http",
-+ "http-body",
-+ "hyper",
-+ "hyper-tls",
-+ "js-sys",
-+ "lazy_static",
-+ "log",
-+ "mime",
-+ "mime_guess",
-+ "native-tls",
-+ "percent-encoding",
-+ "pin-project-lite",
-+ "serde",
-+ "serde_json",
-+ "serde_urlencoded",
-+ "tokio",
-+ "tokio-socks",
-+ "tokio-tls",
-+ "url",
-+ "wasm-bindgen",
-+ "wasm-bindgen-futures",
-+ "web-sys",
-+ "winreg",
-+]
-+
-+[[package]]
-+name = "rust-argon2"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2bc8af4bda8e1ff4932523b94d3dd20ee30a87232323eda55903ffd71d2fb017"
-+dependencies = [
-+ "base64 0.11.0",
-+ "blake2b_simd",
-+ "constant_time_eq",
-+ "crossbeam-utils",
-+]
-+
-+[[package]]
-+name = "rust-embed"
-+version = "5.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "213acf1bc5a6dfcd70b62db1e9a7d06325c0e73439c312fcb8599d456d9686ee"
-+dependencies = [
-+ "rust-embed-impl",
-+ "rust-embed-utils",
-+ "walkdir",
-+]
-+
-+[[package]]
-+name = "rust-embed-impl"
-+version = "5.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7903c2cf599db8f310b392332f38367ca4acc84420fa1aee3536299f433c10d5"
-+dependencies = [
-+ "quote",
-+ "rust-embed-utils",
-+ "shellexpand",
-+ "syn",
-+ "walkdir",
-+]
-+
-+[[package]]
-+name = "rust-embed-utils"
-+version = "5.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "97655158074ccb2d2cfb1ccb4c956ef0f4054e43a2c1e71146d4991e6961e105"
-+dependencies = [
-+ "walkdir",
-+]
-+
-+[[package]]
-+name = "rustc-demangle"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "4c691c0e608126e00913e33f0ccf3727d5fc84573623b8d65b2df340b5201783"
-+
-+[[package]]
-+name = "ryu"
-+version = "1.0.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "71d301d4193d031abdd79ff7e3dd721168a9572ef3fe51a1517aba235bd8f86e"
-+
-+[[package]]
-+name = "same-file"
-+version = "1.0.6"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502"
-+dependencies = [
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "schannel"
-+version = "0.1.19"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8f05ba609c234e60bee0d547fe94a4c7e9da733d1c962cf6e59efa4cd9c8bc75"
-+dependencies = [
-+ "lazy_static",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "scheduled-thread-pool"
-+version = "0.2.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "dc6f74fd1204073fa02d5d5d68bec8021be4c38690b61264b2fdb48083d0e7d7"
-+dependencies = [
-+ "parking_lot 0.11.0",
-+]
-+
-+[[package]]
-+name = "scoped_threadpool"
-+version = "0.1.9"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1d51f5df5af43ab3f1360b429fa5e0152ac5ce8c0bd6485cae490332e96846a8"
-+
-+[[package]]
-+name = "scopeguard"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd"
-+
-+[[package]]
-+name = "security-framework"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "64808902d7d99f78eaddd2b4e2509713babc3dc3c85ad6f4c447680f3c01e535"
-+dependencies = [
-+ "bitflags",
-+ "core-foundation",
-+ "core-foundation-sys",
-+ "libc",
-+ "security-framework-sys",
-+]
-+
-+[[package]]
-+name = "security-framework-sys"
-+version = "0.4.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "17bf11d99252f512695eb468de5516e5cf75455521e69dfe343f3b74e4748405"
-+dependencies = [
-+ "core-foundation-sys",
-+ "libc",
-+]
-+
-+[[package]]
-+name = "serde"
-+version = "1.0.114"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5317f7588f0a5078ee60ef675ef96735a1442132dc645eb1d12c018620ed8cd3"
-+dependencies = [
-+ "serde_derive",
-+]
-+
-+[[package]]
-+name = "serde-value"
-+version = "0.6.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "5a65a7291a8a568adcae4c10a677ebcedbc6c9cec91c054dee2ce40b0e3290eb"
-+dependencies = [
-+ "ordered-float",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "serde_derive"
-+version = "1.0.114"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2a0be94b04690fbaed37cddffc5c134bf537c8e3329d53e982fe04c374978f8e"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "serde_json"
-+version = "1.0.56"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3433e879a558dde8b5e8feb2a04899cf34fdde1fafb894687e52105fc1162ac3"
-+dependencies = [
-+ "itoa",
-+ "ryu",
-+ "serde",
-+]
-+
-+[[package]]
-+name = "serde_urlencoded"
-+version = "0.6.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9ec5d77e2d4c73717816afac02670d5c4f534ea95ed430442cad02e7a6e32c97"
-+dependencies = [
-+ "dtoa",
-+ "itoa",
-+ "serde",
-+ "url",
-+]
-+
-+[[package]]
-+name = "serde_yaml"
-+version = "0.8.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ae3e2dd40a7cdc18ca80db804b7f461a39bb721160a85c9a1fa30134bf3c02a5"
-+dependencies = [
-+ "dtoa",
-+ "linked-hash-map",
-+ "serde",
-+ "yaml-rust",
-+]
-+
-+[[package]]
-+name = "sha-1"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "170a36ea86c864a3f16dd2687712dd6646f7019f301e57537c7f4dc9f5916770"
-+dependencies = [
-+ "block-buffer 0.9.0",
-+ "cfg-if",
-+ "cpuid-bool",
-+ "digest 0.9.0",
-+ "opaque-debug 0.3.0",
-+]
-+
-+[[package]]
-+name = "sha2"
-+version = "0.9.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "2933378ddfeda7ea26f48c555bdad8bb446bf8a3d17832dc83e380d444cfb8c1"
-+dependencies = [
-+ "block-buffer 0.9.0",
-+ "cfg-if",
-+ "cpuid-bool",
-+ "digest 0.9.0",
-+ "opaque-debug 0.3.0",
-+]
-+
-+[[package]]
-+name = "shellexpand"
-+version = "2.0.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9a2b22262a9aaf9464d356f656fea420634f78c881c5eebd5ef5e66d8b9bc603"
-+dependencies = [
-+ "dirs 2.0.2",
-+]
-+
-+[[package]]
-+name = "siphasher"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0b8de496cf83d4ed58b6be86c3a275b8602f6ffe98d3024a869e124147a9a3ac"
-+
-+[[package]]
-+name = "siphasher"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fa8f3741c7372e75519bd9346068370c9cdaabcc1f9599cbcf2a2719352286b7"
-+
-+[[package]]
-+name = "slab"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c111b5bd5695e56cffe5129854aa230b39c93a305372fdbb2668ca2394eea9f8"
-+
-+[[package]]
-+name = "smallvec"
-+version = "1.4.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3757cb9d89161a2f24e1cf78efa0c1fcff485d18e3f55e0aa3480824ddaa0f3f"
-+
-+[[package]]
-+name = "socket2"
-+version = "0.3.12"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "03088793f677dce356f3ccc2edb1b314ad191ab702a5de3faf49304f7e104918"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "redox_syscall",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "soup-sys"
-+version = "0.9.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "48a2f246b51c81d4baa1ce611240c2f6e0323ae75f3b6cc9d2d2911e0567962c"
-+dependencies = [
-+ "bitflags",
-+ "gio-sys",
-+ "glib-sys",
-+ "gobject-sys",
-+ "libc",
-+ "pkg-config",
-+]
-+
-+[[package]]
-+name = "string_cache"
-+version = "0.7.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "89c058a82f9fd69b1becf8c274f412281038877c553182f1d02eb027045a2d67"
-+dependencies = [
-+ "lazy_static",
-+ "new_debug_unreachable",
-+ "phf_shared",
-+ "precomputed-hash",
-+ "serde",
-+ "string_cache_codegen",
-+ "string_cache_shared",
-+]
-+
-+[[package]]
-+name = "string_cache_codegen"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f0f45ed1b65bf9a4bf2f7b7dc59212d1926e9eaf00fa998988e420fd124467c6"
-+dependencies = [
-+ "phf_generator",
-+ "phf_shared",
-+ "proc-macro2",
-+ "quote",
-+ "string_cache_shared",
-+]
-+
-+[[package]]
-+name = "string_cache_shared"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b1884d1bc09741d466d9b14e6d37ac89d6909cbcac41dd9ae982d4d063bbedfc"
-+
-+[[package]]
-+name = "subtle"
-+version = "2.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "502d53007c02d7605a05df1c1a73ee436952781653da5d0bf57ad608f66932c1"
-+
-+[[package]]
-+name = "sxd-document"
-+version = "0.3.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "94d82f37be9faf1b10a82c4bd492b74f698e40082f0f40de38ab275f31d42078"
-+dependencies = [
-+ "peresil",
-+ "typed-arena",
-+]
-+
-+[[package]]
-+name = "syn"
-+version = "1.0.35"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "fb7f4c519df8c117855e19dd8cc851e89eb746fe7a73f0157e0d95fdec5369b0"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "unicode-xid",
-+]
-+
-+[[package]]
-+name = "synstructure"
-+version = "0.12.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b834f2d66f734cb897113e34aaff2f1ab4719ca946f9a7358dba8f8064148701"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "unicode-xid",
-+]
-+
-+[[package]]
-+name = "tempfile"
-+version = "3.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7a6e24d9338a0a5be79593e2fa15a648add6138caa803e2d5bc782c371732ca9"
-+dependencies = [
-+ "cfg-if",
-+ "libc",
-+ "rand 0.7.3",
-+ "redox_syscall",
-+ "remove_dir_all",
-+ "winapi 0.3.9",
-+]
-+
-+[[package]]
-+name = "tendril"
-+version = "0.4.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "707feda9f2582d5d680d733e38755547a3e8fb471e7ba11452ecfd9ce93a5d3b"
-+dependencies = [
-+ "futf",
-+ "mac",
-+ "utf-8",
-+]
-+
-+[[package]]
-+name = "termcolor"
-+version = "1.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bb6bfa289a4d7c5766392812c0a1f4c1ba45afa1ad47803c11e1f407d846d75f"
-+dependencies = [
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "thiserror"
-+version = "1.0.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7dfdd070ccd8ccb78f4ad66bf1982dc37f620ef696c6b5028fe2ed83dd3d0d08"
-+dependencies = [
-+ "thiserror-impl",
-+]
-+
-+[[package]]
-+name = "thiserror-impl"
-+version = "1.0.20"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "bd80fc12f73063ac132ac92aceea36734f04a1d93c1240c6944e23a3b8841793"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "thread-id"
-+version = "3.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c7fbf4c9d56b320106cd64fd024dadfa0be7cb4706725fc44a7d7ce952d820c1"
-+dependencies = [
-+ "libc",
-+ "redox_syscall",
-+ "winapi 0.3.9",
-+]
-+
-+[[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 = "tiff"
-+version = "0.5.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "3f3b8a87c4da944c3f27e5943289171ac71a6150a79ff6bacfff06d159dfff2f"
-+dependencies = [
-+ "byteorder",
-+ "lzw",
-+ "miniz_oxide 0.3.7",
-+]
-+
-+[[package]]
-+name = "tiger-digest"
-+version = "0.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "68067e91b4b9bb2e1ce3dc55077c984bbe2fa2be65308264dab403c165257545"
-+dependencies = [
-+ "block-buffer 0.5.1",
-+ "byte-tools 0.2.0",
-+ "digest 0.7.6",
-+]
-+
-+[[package]]
-+name = "time"
-+version = "0.1.43"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "ca8a50ef2360fbd1eeb0ecd46795a87a19024eb4b53c5dc916ca1fd95fe62438"
-+dependencies = [
-+ "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.2.21"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "d099fa27b9702bed751524694adbe393e18b36b204da91eb1cbbbbb4a5ee2d58"
-+dependencies = [
-+ "bytes 0.5.6",
-+ "fnv",
-+ "futures-core",
-+ "iovec",
-+ "lazy_static",
-+ "memchr",
-+ "mio",
-+ "pin-project-lite",
-+ "slab",
-+ "tokio-macros",
-+]
-+
-+[[package]]
-+name = "tokio-macros"
-+version = "0.2.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f0c3acc6aa564495a0f2e1d59fab677cd7f81a19994cfc7f3ad0e64301560389"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+]
-+
-+[[package]]
-+name = "tokio-socks"
-+version = "0.2.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1997788a0e25e09300e44680ba1ef9d44d6f634a883641f80109e8b59c928daf"
-+dependencies = [
-+ "bytes 0.4.12",
-+ "either",
-+ "futures",
-+ "thiserror",
-+ "tokio",
-+]
-+
-+[[package]]
-+name = "tokio-tls"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9a70f4fcd7b3b24fb194f837560168208f669ca8cb70d0c4b862944452396343"
-+dependencies = [
-+ "native-tls",
-+ "tokio",
-+]
-+
-+[[package]]
-+name = "tokio-util"
-+version = "0.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "be8242891f2b6cbef26a2d7e8605133c2c554cd35b3e4948ea892d6d68436499"
-+dependencies = [
-+ "bytes 0.5.6",
-+ "futures-core",
-+ "futures-sink",
-+ "log",
-+ "pin-project-lite",
-+ "tokio",
-+]
-+
-+[[package]]
-+name = "tower-service"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "e987b6bf443f4b5b3b6f38704195592cca41c5bb7aedd3c3693c7081f8289860"
-+
-+[[package]]
-+name = "tracing"
-+version = "0.1.16"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "c2e2a2de6b0d5cbb13fc21193a2296888eaab62b6044479aafb3c54c01c29fcd"
-+dependencies = [
-+ "cfg-if",
-+ "log",
-+ "tracing-core",
-+]
-+
-+[[package]]
-+name = "tracing-core"
-+version = "0.1.11"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "94ae75f0d28ae10786f3b1895c55fe72e79928fd5ccdebb5438c75e93fec178f"
-+dependencies = [
-+ "lazy_static",
-+]
-+
-+[[package]]
-+name = "traitobject"
-+version = "0.1.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "efd1f82c56340fdf16f2a953d7bda4f8fdffba13d93b00844c25572110b26079"
-+
-+[[package]]
-+name = "try-lock"
-+version = "0.2.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "59547bce71d9c38b83d9c0e92b6066c4253371f15005def0c30d9657f50c7642"
-+
-+[[package]]
-+name = "typed-arena"
-+version = "1.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "a9b2228007eba4120145f785df0f6c92ea538f5a3635a612ecf4e334c8c1446d"
-+
-+[[package]]
-+name = "typemap"
-+version = "0.3.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "653be63c80a3296da5551e1bfd2cca35227e13cdd08c6668903ae2f4f77aa1f6"
-+dependencies = [
-+ "unsafe-any",
-+]
-+
-+[[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",
-+]
-+
-+[[package]]
-+name = "unicode-bidi"
-+version = "0.3.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "49f2bd0c6468a8230e1db229cff8029217cf623c767ea5d60bfbd42729ea54d5"
-+dependencies = [
-+ "matches",
-+]
-+
-+[[package]]
-+name = "unicode-normalization"
-+version = "0.1.13"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6fb19cf769fa8c6a80a162df694621ebeb4dafb606470b2b2fce0be40a98a977"
-+dependencies = [
-+ "tinyvec",
-+]
-+
-+[[package]]
-+name = "unicode-xid"
-+version = "0.2.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"
-+
-+[[package]]
-+name = "unsafe-any"
-+version = "0.4.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f30360d7979f5e9c6e6cea48af192ea8fab4afb3cf72597154b8f08935bc9c7f"
-+dependencies = [
-+ "traitobject",
-+]
-+
-+[[package]]
-+name = "url"
-+version = "2.1.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "829d4a8476c35c9bf0bbce5a3b23f4106f79728039b726d292bb93bc106787cb"
-+dependencies = [
-+ "idna",
-+ "matches",
-+ "percent-encoding",
-+]
-+
-+[[package]]
-+name = "utf-8"
-+version = "0.7.5"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "05e42f7c18b8f902290b009cde6d651262f956c98bc51bca4cd1d511c9cd85c7"
-+
-+[[package]]
-+name = "uuid"
-+version = "0.8.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "9fde2f6a4bea1d6e007c4ad38c6839fa71cbb63b6dbf5b595aa38dc9b1093c11"
-+dependencies = [
-+ "rand 0.7.3",
-+]
-+
-+[[package]]
-+name = "vcpkg"
-+version = "0.2.10"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "6454029bf181f092ad1b853286f23e2c507d8e8194d01d92da4a55c274a5508c"
-+
-+[[package]]
-+name = "version_check"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b5a972e5669d67ba988ce3dc826706fb0a8b01471c088cb0b6110b805cc36aed"
-+
-+[[package]]
-+name = "walkdir"
-+version = "2.3.1"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "777182bc735b6424e1a57516d35ed72cb8019d85c8c9bf536dccb3445c1a2f7d"
-+dependencies = [
-+ "same-file",
-+ "winapi 0.3.9",
-+ "winapi-util",
-+]
-+
-+[[package]]
-+name = "want"
-+version = "0.3.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0"
-+dependencies = [
-+ "log",
-+ "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 = "wasm-bindgen"
-+version = "0.2.65"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "f3edbcc9536ab7eababcc6d2374a0b7bfe13a2b6d562c5e07f370456b1a8f33d"
-+dependencies = [
-+ "cfg-if",
-+ "serde",
-+ "serde_json",
-+ "wasm-bindgen-macro",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-backend"
-+version = "0.2.65"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "89ed2fb8c84bfad20ea66b26a3743f3e7ba8735a69fe7d95118c33ec8fc1244d"
-+dependencies = [
-+ "bumpalo",
-+ "lazy_static",
-+ "log",
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-futures"
-+version = "0.4.15"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "41ad6e4e8b2b7f8c90b6e09a9b590ea15cb0d1dbe28502b5a405cd95d1981671"
-+dependencies = [
-+ "cfg-if",
-+ "js-sys",
-+ "wasm-bindgen",
-+ "web-sys",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro"
-+version = "0.2.65"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "eb071268b031a64d92fc6cf691715ca5a40950694d8f683c5bb43db7c730929e"
-+dependencies = [
-+ "quote",
-+ "wasm-bindgen-macro-support",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-macro-support"
-+version = "0.2.65"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "cf592c807080719d1ff2f245a687cbadb3ed28b2077ed7084b47aba8b691f2c6"
-+dependencies = [
-+ "proc-macro2",
-+ "quote",
-+ "syn",
-+ "wasm-bindgen-backend",
-+ "wasm-bindgen-shared",
-+]
-+
-+[[package]]
-+name = "wasm-bindgen-shared"
-+version = "0.2.65"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "72b6c0220ded549d63860c78c38f3bcc558d1ca3f4efa74942c536ddbbb55e87"
-+
-+[[package]]
-+name = "web-sys"
-+version = "0.3.42"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "8be2398f326b7ba09815d0b403095f34dd708579220d099caae89be0b32137b2"
-+dependencies = [
-+ "js-sys",
-+ "wasm-bindgen",
-+]
-+
-+[[package]]
-+name = "webkit2gtk"
-+version = "0.9.2"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "af1de552309714f28c3242b0084f6cdcab4a8d19de849505202c49e7cfdf57a9"
-+dependencies = [
-+ "bitflags",
-+ "cairo-rs",
-+ "gdk",
-+ "gdk-sys",
-+ "gio",
-+ "gio-sys",
-+ "glib",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gtk",
-+ "gtk-sys",
-+ "javascriptcore-rs",
-+ "libc",
-+ "webkit2gtk-sys",
-+]
-+
-+[[package]]
-+name = "webkit2gtk-sys"
-+version = "0.11.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "7ed60661b81f0cc92f3c2043d83262e3a1ac253b08a616550a9fc008ae28c185"
-+dependencies = [
-+ "atk-sys",
-+ "bitflags",
-+ "cairo-sys-rs",
-+ "gdk-pixbuf-sys",
-+ "gdk-sys",
-+ "gio-sys",
-+ "glib-sys",
-+ "gobject-sys",
-+ "gtk-sys",
-+ "javascriptcore-rs-sys",
-+ "libc",
-+ "pango-sys",
-+ "pkg-config",
-+ "soup-sys",
-+]
-+
-+[[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",
-+ "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",
-+]
-+
-+[[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 = "winreg"
-+version = "0.7.0"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "0120db82e8a1e0b9fb3345a539c478767c0048d842860994d96113d5b667bd69"
-+dependencies = [
-+ "winapi 0.3.9",
-+]
-+
-+[[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",
-+ "winapi-build",
-+]
-+
-+[[package]]
-+name = "xml-rs"
-+version = "0.8.3"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "b07db065a5cf61a7e4ba64f29e67db906fb1787316516c4e6e5ff0fea1efcd8a"
-+
-+[[package]]
-+name = "yaml-rust"
-+version = "0.4.4"
-+source = "registry+https://github.com/rust-lang/crates.io-index"
-+checksum = "39f0c922f1a334134dc2f7a8b67dc5d25f0735263feec974345ff706bcf20b0d"
-+dependencies = [
-+ "linked-hash-map",
-+]
diff --git a/pkgs/applications/networking/feedreaders/newsflash/default.nix b/pkgs/applications/networking/feedreaders/newsflash/default.nix
index 3023ca28bfe3..92af28c9c93b 100644
--- a/pkgs/applications/networking/feedreaders/newsflash/default.nix
+++ b/pkgs/applications/networking/feedreaders/newsflash/default.nix
@@ -1,37 +1,34 @@
{ lib
, rustPlatform
, fetchFromGitLab
-, gdk-pixbuf
-, glib
, meson
, ninja
, pkg-config
, wrapGAppsHook
-, gsettings-desktop-schemas
+, gdk-pixbuf
+, glib
, gtk3
, libhandy
-, librsvg
, openssl
, sqlite
, webkitgtk
+, glib-networking
+, librsvg
+, gst_all_1
}:
rustPlatform.buildRustPackage rec {
pname = "newsflash";
- version = "1.0.1";
+ version = "1.0.2";
src = fetchFromGitLab {
owner = "news-flash";
repo = "news_flash_gtk";
rev = version;
- sha256 = "1y2jj3z08m29s6ggl8q270mqnvdwibs0f2kxybqhi8mya5pyw902";
+ sha256 = "17a8fd5rhs56qrqlfj9ckv45hwfcjhdb8j4cxlnvy7s770s225gd";
};
- cargoPatches = [
- ./cargo.lock.patch
- ];
-
- cargoSha256 = "0z3nhzpyckga112wn32zzwwlpqdgi6n53n8nwgggixvpbnh98112";
+ cargoSha256 = "1p0m7la59fn9r2rr26q9mfd1nvyvxb630qiwj96x91p77xv1i30i";
patches = [
./no-post-install.patch
@@ -43,25 +40,37 @@ rustPlatform.buildRustPackage rec {
'';
nativeBuildInputs = [
- gdk-pixbuf # provides setup hook to fix "Unrecognized image file format"
- glib # provides glib-compile-resources to compile gresources
meson
ninja
pkg-config
wrapGAppsHook
+
+ # Provides setup hook to fix "Unrecognized image file format"
+ gdk-pixbuf
+
+ # Provides glib-compile-resources to compile gresources
+ glib
];
buildInputs = [
- gdk-pixbuf
- glib
- gsettings-desktop-schemas # used to get system default font in src/article_view/mod.rs
gtk3
libhandy
- librsvg # used by gdk-pixbuf & wrapGAppsHook setup hooks to fix "Unrecognized image file format"
openssl
sqlite
webkitgtk
- ];
+
+ # TLS support for loading external content in webkitgtk WebView
+ glib-networking
+
+ # SVG support for gdk-pixbuf
+ librsvg
+ ] ++ (with gst_all_1; [
+ # Audio & video & support for webkitgtk WebView
+ gstreamer
+ gst-plugins-base
+ gst-plugins-good
+ gst-plugins-bad
+ ]);
# Unset default rust phases to use meson & ninja instead
configurePhase = null;
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
index 0a0983af0000..074dcc0fdb7c 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-package.json
@@ -1,8 +1,8 @@
{
"name": "element-desktop",
- "productName": "Element (Riot)",
+ "productName": "Element",
"main": "src/electron-main.js",
- "version": "1.7.1",
+ "version": "1.7.2",
"description": "A feature-rich client for Matrix.org",
"author": "Element",
"repository": {
@@ -42,13 +42,14 @@
"electron-builder-squirrel-windows": "^22.7.0",
"electron-devtools-installer": "^2.2.4",
"electron-notarize": "^0.2.0",
- "eslint": "^5.8.0",
+ "eslint": "7.3.1",
"eslint-config-google": "^0.7.1",
+ "eslint-config-matrix-org": "^0.1.2",
"eslint-plugin-babel": "^4.1.2",
"find-npm-prefix": "^1.0.2",
"fs-extra": "^8.1.0",
"glob": "^7.1.6",
- "matrix-js-sdk": "7.1.0",
+ "matrix-js-sdk": "8.0.0",
"mkdirp": "^1.0.3",
"needle": "^2.5.0",
"node-pre-gyp": "^0.15.0",
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
index d46c1445ec3d..f9596f3a098c 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop-yarndeps.nix
@@ -25,6 +25,54 @@
sha1 = "bc0782f6d69f7b7d49531219699b988f669a8f9d";
};
}
+ {
+ name = "_babel_code_frame___code_frame_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_code_frame___code_frame_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.10.4.tgz";
+ sha1 = "168da1a36e90da68ae8d49c0f1b48c7c6249213a";
+ };
+ }
+ {
+ name = "_babel_generator___generator_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_generator___generator_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/generator/-/generator-7.10.5.tgz";
+ sha1 = "1b903554bc8c583ee8d25f1e8969732e6b829a69";
+ };
+ }
+ {
+ name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_function_name___helper_function_name_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.10.4.tgz";
+ sha1 = "d2d3b20c59ad8c47112fa7d2a94bc09d5ef82f1a";
+ };
+ }
+ {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_get_function_arity___helper_get_function_arity_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.10.4.tgz";
+ sha1 = "98c1cbea0e2332f33f9a4661b8ce1505b2c19ba2";
+ };
+ }
+ {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_split_export_declaration___helper_split_export_declaration_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.10.4.tgz";
+ sha1 = "2c70576eaa3b5609b24cb99db2888cc3fc4251d1";
+ };
+ }
+ {
+ name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_helper_validator_identifier___helper_validator_identifier_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz";
+ sha1 = "a78c7a7251e01f616512d31b10adcf52ada5e0d2";
+ };
+ }
{
name = "_babel_highlight___highlight_7.5.0.tgz";
path = fetchurl {
@@ -33,6 +81,22 @@
sha1 = "56d11312bd9248fa619591d02472be6e8cb32540";
};
}
+ {
+ name = "_babel_highlight___highlight_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_highlight___highlight_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.10.4.tgz";
+ sha1 = "7d1bdfd65753538fabe6c38596cdb76d9ac60143";
+ };
+ }
+ {
+ name = "_babel_parser___parser_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_parser___parser_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/parser/-/parser-7.10.5.tgz";
+ sha1 = "e7c6bf5a7deff957cec9f04b551e2762909d826b";
+ };
+ }
{
name = "_babel_runtime___runtime_7.9.2.tgz";
path = fetchurl {
@@ -41,6 +105,30 @@
sha1 = "d90df0583a3a252f09aaa619665367bae518db06";
};
}
+ {
+ name = "_babel_template___template_7.10.4.tgz";
+ path = fetchurl {
+ name = "_babel_template___template_7.10.4.tgz";
+ url = "https://registry.yarnpkg.com/@babel/template/-/template-7.10.4.tgz";
+ sha1 = "3251996c4200ebc71d1a8fc405fba940f36ba278";
+ };
+ }
+ {
+ name = "_babel_traverse___traverse_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_traverse___traverse_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.10.5.tgz";
+ sha1 = "77ce464f5b258be265af618d8fddf0536f20b564";
+ };
+ }
+ {
+ name = "_babel_types___types_7.10.5.tgz";
+ path = fetchurl {
+ name = "_babel_types___types_7.10.5.tgz";
+ url = "https://registry.yarnpkg.com/@babel/types/-/types-7.10.5.tgz";
+ sha1 = "d88ae7e2fde86bfbfe851d4d81afa70a997b5d15";
+ };
+ }
{
name = "_develar_schema_utils___schema_utils_2.6.5.tgz";
path = fetchurl {
@@ -89,6 +177,14 @@
sha1 = "b14efa8852b7768d898906613c23f688713e02cd";
};
}
+ {
+ name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ path = fetchurl {
+ name = "_types_eslint_visitor_keys___eslint_visitor_keys_1.0.0.tgz";
+ url = "https://registry.yarnpkg.com/@types/eslint-visitor-keys/-/eslint-visitor-keys-1.0.0.tgz";
+ sha1 = "1ee30d79544ca84d68d4b3cdb0af4f205663dd2d";
+ };
+ }
{
name = "_types_fs_extra___fs_extra_9.0.1.tgz";
path = fetchurl {
@@ -97,6 +193,22 @@
sha1 = "91c8fc4c51f6d5dbe44c2ca9ab09310bd00c7918";
};
}
+ {
+ name = "_types_json_schema___json_schema_7.0.5.tgz";
+ path = fetchurl {
+ name = "_types_json_schema___json_schema_7.0.5.tgz";
+ url = "https://registry.yarnpkg.com/@types/json-schema/-/json-schema-7.0.5.tgz";
+ sha1 = "dcce4430e64b443ba8945f0290fb564ad5bac6dd";
+ };
+ }
+ {
+ name = "_types_json5___json5_0.0.29.tgz";
+ path = fetchurl {
+ name = "_types_json5___json5_0.0.29.tgz";
+ url = "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz";
+ sha1 = "ee28707ae94e11d2b827bcbe5270bcea7f3e71ee";
+ };
+ }
{
name = "_types_node___node_13.7.1.tgz";
path = fetchurl {
@@ -129,6 +241,54 @@
sha1 = "947e9a6561483bdee9adffc983e91a6902af8b79";
};
}
+ {
+ name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_eslint_plugin___eslint_plugin_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-3.7.0.tgz";
+ sha1 = "0f91aa3c83d019591719e597fbdb73a59595a263";
+ };
+ }
+ {
+ name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_experimental_utils___experimental_utils_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/experimental-utils/-/experimental-utils-3.7.0.tgz";
+ sha1 = "0ee21f6c48b2b30c63211da23827725078d5169a";
+ };
+ }
+ {
+ name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_parser___parser_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-3.7.0.tgz";
+ sha1 = "3e9cd9df9ea644536feb6e5acdb8279ecff96ce9";
+ };
+ }
+ {
+ name = "_typescript_eslint_types___types_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_types___types_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-3.7.0.tgz";
+ sha1 = "09897fab0cb95479c01166b10b2c03c224821077";
+ };
+ }
+ {
+ name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_typescript_estree___typescript_estree_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-3.7.0.tgz";
+ sha1 = "66872e6da120caa4b64e6b4ca5c8702afc74738d";
+ };
+ }
+ {
+ name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+ path = fetchurl {
+ name = "_typescript_eslint_visitor_keys___visitor_keys_3.7.0.tgz";
+ url = "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-3.7.0.tgz";
+ sha1 = "ac0417d382a136e4571a0b0dcfe52088cb628177";
+ };
+ }
{
name = "JSONStream___JSONStream_1.3.5.tgz";
path = fetchurl {
@@ -146,19 +306,19 @@
};
}
{
- name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
+ name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
path = fetchurl {
- name = "acorn_jsx___acorn_jsx_5.1.0.tgz";
- url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.1.0.tgz";
- sha1 = "294adb71b57398b0680015f0a38c563ee1db5384";
+ name = "acorn_jsx___acorn_jsx_5.2.0.tgz";
+ url = "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.2.0.tgz";
+ sha1 = "4c66069173d6fdd68ed85239fc256226182b2ebe";
};
}
{
- name = "acorn___acorn_6.4.1.tgz";
+ name = "acorn___acorn_7.3.1.tgz";
path = fetchurl {
- name = "acorn___acorn_6.4.1.tgz";
- url = "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz";
- sha1 = "531e58ba3f51b9dacb9a6646ca4debf5b14ca474";
+ name = "acorn___acorn_7.3.1.tgz";
+ url = "https://registry.yarnpkg.com/acorn/-/acorn-7.3.1.tgz";
+ sha1 = "85010754db53c3fbaf3b9ea3e083aa5c5d147ffd";
};
}
{
@@ -193,6 +353,14 @@
sha1 = "ef916e271c64ac12171fd8384eaae6b2345854da";
};
}
+ {
+ name = "ajv___ajv_6.12.3.tgz";
+ path = fetchurl {
+ name = "ajv___ajv_6.12.3.tgz";
+ url = "https://registry.yarnpkg.com/ajv/-/ajv-6.12.3.tgz";
+ sha1 = "18c5af38a111ddeb4f2697bd78d68abc1cabd706";
+ };
+ }
{
name = "ajv___ajv_6.10.2.tgz";
path = fetchurl {
@@ -234,11 +402,19 @@
};
}
{
- name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
+ name = "ansi_colors___ansi_colors_4.1.1.tgz";
path = fetchurl {
- name = "ansi_escapes___ansi_escapes_3.2.0.tgz";
- url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz";
- sha1 = "8780b98ff9dbf5638152d1f1fe5c1d7b4442976b";
+ name = "ansi_colors___ansi_colors_4.1.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz";
+ sha1 = "cbb9ae256bf750af1eab344f229aa27fe94ba348";
+ };
+ }
+ {
+ name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+ path = fetchurl {
+ name = "ansi_escapes___ansi_escapes_4.3.1.tgz";
+ url = "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-4.3.1.tgz";
+ sha1 = "a5c47cc43181f1f38ffd7076837700d395522a61";
};
}
{
@@ -385,6 +561,30 @@
sha1 = "bcd6791ea5ae09725e17e5ad988134cd40b3d911";
};
}
+ {
+ name = "array_includes___array_includes_3.1.1.tgz";
+ path = fetchurl {
+ name = "array_includes___array_includes_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.1.tgz";
+ sha1 = "cdd67e6852bdf9c1215460786732255ed2459348";
+ };
+ }
+ {
+ name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+ path = fetchurl {
+ name = "array.prototype.flat___array.prototype.flat_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.3.tgz";
+ sha1 = "0de82b426b0318dbfdb940089e38b043d37f6c7b";
+ };
+ }
+ {
+ name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+ path = fetchurl {
+ name = "array.prototype.flatmap___array.prototype.flatmap_1.2.3.tgz";
+ url = "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.2.3.tgz";
+ sha1 = "1c13f84a178566042dd63de4414440db9222e443";
+ };
+ }
{
name = "asap___asap_2.0.6.tgz";
path = fetchurl {
@@ -489,6 +689,14 @@
sha1 = "24390e6ad61386b0a747265754d2a17219de862c";
};
}
+ {
+ name = "babel_eslint___babel_eslint_10.1.0.tgz";
+ path = fetchurl {
+ name = "babel_eslint___babel_eslint_10.1.0.tgz";
+ url = "https://registry.yarnpkg.com/babel-eslint/-/babel-eslint-10.1.0.tgz";
+ sha1 = "6968e568a910b78fb3779cdd8b6ac2f479943232";
+ };
+ }
{
name = "balanced_match___balanced_match_1.0.0.tgz";
path = fetchurl {
@@ -858,11 +1066,11 @@
};
}
{
- name = "cli_cursor___cli_cursor_2.1.0.tgz";
+ name = "cli_cursor___cli_cursor_3.1.0.tgz";
path = fetchurl {
- name = "cli_cursor___cli_cursor_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz";
- sha1 = "b35dac376479facc3e94747d41d0d0f5238ffcb5";
+ name = "cli_cursor___cli_cursor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-3.1.0.tgz";
+ sha1 = "264305a7ae490d1d03bf0c9ba7c925d1753af307";
};
}
{
@@ -874,11 +1082,11 @@
};
}
{
- name = "cli_width___cli_width_2.2.0.tgz";
+ name = "cli_width___cli_width_3.0.0.tgz";
path = fetchurl {
- name = "cli_width___cli_width_2.2.0.tgz";
- url = "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.0.tgz";
- sha1 = "ff19ede8a9a5e579324147b0c11f0fbcbabed639";
+ name = "cli_width___cli_width_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/cli-width/-/cli-width-3.0.0.tgz";
+ sha1 = "a2f48437a2caa9a22436e794bf071ec9e61cedf6";
};
}
{
@@ -1065,6 +1273,14 @@
sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e";
};
}
+ {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ path = fetchurl {
+ name = "contains_path___contains_path_0.1.0.tgz";
+ url = "https://registry.yarnpkg.com/contains-path/-/contains-path-0.1.0.tgz";
+ sha1 = "fe8cf184ff6670b6baef01a9d4861a5cbec4120a";
+ };
+ }
{
name = "content_type___content_type_1.0.4.tgz";
path = fetchurl {
@@ -1129,6 +1345,14 @@
sha1 = "4a5ec7c64dfae22c3a14124dbacdee846d80cbc4";
};
}
+ {
+ name = "cross_spawn___cross_spawn_7.0.3.tgz";
+ path = fetchurl {
+ name = "cross_spawn___cross_spawn_7.0.3.tgz";
+ url = "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz";
+ sha1 = "f73a85b9d5d41d045551c177e2882d4ac85728a6";
+ };
+ }
{
name = "cross_unzip___cross_unzip_0.0.2.tgz";
path = fetchurl {
@@ -1185,6 +1409,14 @@
sha1 = "5bb5a0672628b64149566ba16819e61518c67261";
};
}
+ {
+ name = "debug___debug_2.6.9.tgz";
+ path = fetchurl {
+ name = "debug___debug_2.6.9.tgz";
+ url = "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz";
+ sha1 = "5d128515df134ff327e90a4c93f4e077a536341f";
+ };
+ }
{
name = "debug___debug_3.2.6.tgz";
path = fetchurl {
@@ -1345,6 +1577,22 @@
sha1 = "ead7e7c046cbdc52d29d302a4455f6668cdf7d45";
};
}
+ {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_1.5.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-1.5.0.tgz";
+ sha1 = "379dce730f6166f76cefa4e6707a159b02c5a6fa";
+ };
+ }
+ {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ path = fetchurl {
+ name = "doctrine___doctrine_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/doctrine/-/doctrine-2.1.0.tgz";
+ sha1 = "5cd01fc101621b42c4cd7f5d1a66243716d3f39d";
+ };
+ }
{
name = "doctrine___doctrine_3.0.0.tgz";
path = fetchurl {
@@ -1529,6 +1777,14 @@
sha1 = "5ae64a5f45057baf3626ec14da0ca5e4b2431eb0";
};
}
+ {
+ name = "enquirer___enquirer_2.3.6.tgz";
+ path = fetchurl {
+ name = "enquirer___enquirer_2.3.6.tgz";
+ url = "https://registry.yarnpkg.com/enquirer/-/enquirer-2.3.6.tgz";
+ sha1 = "2a7fe5dd634a1e4125a975ec994ff5456dc3734d";
+ };
+ }
{
name = "env_paths___env_paths_1.0.0.tgz";
path = fetchurl {
@@ -1569,6 +1825,14 @@
sha1 = "b4ac40648107fdcdcfae242f428bea8a14d4f1bf";
};
}
+ {
+ name = "es_abstract___es_abstract_1.17.6.tgz";
+ path = fetchurl {
+ name = "es_abstract___es_abstract_1.17.6.tgz";
+ url = "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.6.tgz";
+ sha1 = "9142071707857b2cacc7b89ecb670316c3e2d52a";
+ };
+ }
{
name = "es_abstract___es_abstract_1.16.3.tgz";
path = fetchurl {
@@ -1625,6 +1889,22 @@
sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4";
};
}
+ {
+ name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_esnext___eslint_config_esnext_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-esnext/-/eslint-config-esnext-4.1.0.tgz";
+ sha1 = "8695b858fcf40d28c1aedca181f700528c7b60c6";
+ };
+ }
+ {
+ name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_google___eslint_config_google_0.14.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-google/-/eslint-config-google-0.14.0.tgz";
+ sha1 = "4f5f8759ba6e11b424294a219dbfa18c508bcc1a";
+ };
+ }
{
name = "eslint_config_google___eslint_config_google_0.7.1.tgz";
path = fetchurl {
@@ -1633,6 +1913,54 @@
sha1 = "5598f8498e9e078420f34b80495b8d959f651fb2";
};
}
+ {
+ name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+ path = fetchurl {
+ name = "eslint_config_matrix_org___eslint_config_matrix_org_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-matrix-org/-/eslint-config-matrix-org-0.1.2.tgz";
+ sha1 = "b5d7e193e4f3fc5041905967b53c5ddd6924c793";
+ };
+ }
+ {
+ name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_node___eslint_config_node_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-node/-/eslint-config-node-4.1.0.tgz";
+ sha1 = "fc1f13946d83766d6b83b0e67699e2071a56f417";
+ };
+ }
+ {
+ name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_react_native___eslint_config_react_native_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-react-native/-/eslint-config-react-native-4.1.0.tgz";
+ sha1 = "63e9401c7fac146804785f609e7df8f15b3e04eb";
+ };
+ }
+ {
+ name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_config_recommended___eslint_config_recommended_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-config-recommended/-/eslint-config-recommended-4.1.0.tgz";
+ sha1 = "1adff90e0716d439be471d192977f233de171a46";
+ };
+ }
+ {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+ path = fetchurl {
+ name = "eslint_import_resolver_node___eslint_import_resolver_node_0.3.4.tgz";
+ url = "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.4.tgz";
+ sha1 = "85ffa81942c25012d8231096ddf679c03042c717";
+ };
+ }
+ {
+ name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+ path = fetchurl {
+ name = "eslint_module_utils___eslint_module_utils_2.6.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.6.0.tgz";
+ sha1 = "579ebd094f56af7797d19c9866c9c9486629bfa6";
+ };
+ }
{
name = "eslint_plugin_babel___eslint_plugin_babel_4.1.2.tgz";
path = fetchurl {
@@ -1642,11 +1970,59 @@
};
}
{
- name = "eslint_scope___eslint_scope_4.0.3.tgz";
+ name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
path = fetchurl {
- name = "eslint_scope___eslint_scope_4.0.3.tgz";
- url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz";
- sha1 = "ca03833310f6889a3264781aa82e63eb9cfe7848";
+ name = "eslint_plugin_babel___eslint_plugin_babel_5.3.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-babel/-/eslint-plugin-babel-5.3.1.tgz";
+ sha1 = "75a2413ffbf17e7be57458301c60291f2cfbf560";
+ };
+ }
+ {
+ name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_import___eslint_plugin_import_2.22.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.22.0.tgz";
+ sha1 = "92f7736fe1fde3e2de77623c838dd992ff5ffb7e";
+ };
+ }
+ {
+ name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react_native_globals___eslint_plugin_react_native_globals_0.1.2.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react-native-globals/-/eslint-plugin-react-native-globals-0.1.2.tgz";
+ sha1 = "ee1348bc2ceb912303ce6bdbd22e2f045ea86ea2";
+ };
+ }
+ {
+ name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react_native___eslint_plugin_react_native_3.8.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react-native/-/eslint-plugin-react-native-3.8.1.tgz";
+ sha1 = "92811e37191ecb0d29c0f0a0c9e5c943ee573821";
+ };
+ }
+ {
+ name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+ path = fetchurl {
+ name = "eslint_plugin_react___eslint_plugin_react_7.20.3.tgz";
+ url = "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.20.3.tgz";
+ sha1 = "0590525e7eb83890ce71f73c2cf836284ad8c2f1";
+ };
+ }
+ {
+ name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+ path = fetchurl {
+ name = "eslint_rule_composer___eslint_rule_composer_0.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-rule-composer/-/eslint-rule-composer-0.3.0.tgz";
+ sha1 = "79320c927b0c5c0d3d3d2b76c8b4a488f25bbaf9";
+ };
+ }
+ {
+ name = "eslint_scope___eslint_scope_5.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_scope___eslint_scope_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.0.tgz";
+ sha1 = "d0f971dfe59c69e0cada684b23d49dbf82600ce5";
};
}
{
@@ -1657,6 +2033,14 @@
sha1 = "74fec7c54d0776b6f67e0251040b5806564e981f";
};
}
+ {
+ name = "eslint_utils___eslint_utils_2.1.0.tgz";
+ path = fetchurl {
+ name = "eslint_utils___eslint_utils_2.1.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz";
+ sha1 = "d2de5e03424e707dc10c74068ddedae708741b27";
+ };
+ }
{
name = "eslint_visitor_keys___eslint_visitor_keys_1.1.0.tgz";
path = fetchurl {
@@ -1666,19 +2050,43 @@
};
}
{
- name = "eslint___eslint_5.16.0.tgz";
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
path = fetchurl {
- name = "eslint___eslint_5.16.0.tgz";
- url = "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz";
- sha1 = "a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea";
+ name = "eslint_visitor_keys___eslint_visitor_keys_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz";
+ sha1 = "30ebd1ef7c2fdff01c3a4f151044af25fab0523e";
};
}
{
- name = "espree___espree_5.0.1.tgz";
+ name = "eslint___eslint_7.3.1.tgz";
path = fetchurl {
- name = "espree___espree_5.0.1.tgz";
- url = "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz";
- sha1 = "5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a";
+ name = "eslint___eslint_7.3.1.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-7.3.1.tgz";
+ sha1 = "76392bd7e44468d046149ba128d1566c59acbe19";
+ };
+ }
+ {
+ name = "eslint___eslint_6.8.0.tgz";
+ path = fetchurl {
+ name = "eslint___eslint_6.8.0.tgz";
+ url = "https://registry.yarnpkg.com/eslint/-/eslint-6.8.0.tgz";
+ sha1 = "62262d6729739f9275723824302fb227c8c93ffb";
+ };
+ }
+ {
+ name = "espree___espree_6.2.1.tgz";
+ path = fetchurl {
+ name = "espree___espree_6.2.1.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-6.2.1.tgz";
+ sha1 = "77fc72e1fd744a2052c20f38a5b575832e82734a";
+ };
+ }
+ {
+ name = "espree___espree_7.2.0.tgz";
+ path = fetchurl {
+ name = "espree___espree_7.2.0.tgz";
+ url = "https://registry.yarnpkg.com/espree/-/espree-7.2.0.tgz";
+ sha1 = "1c263d5b513dbad0ac30c4991b93ac354e948d69";
};
}
{
@@ -1697,6 +2105,14 @@
sha1 = "406c51658b1f5991a5f9b62b1dc25b00e3e5c708";
};
}
+ {
+ name = "esquery___esquery_1.3.1.tgz";
+ path = fetchurl {
+ name = "esquery___esquery_1.3.1.tgz";
+ url = "https://registry.yarnpkg.com/esquery/-/esquery-1.3.1.tgz";
+ sha1 = "b78b5828aa8e214e29fb74c4d5b752e1c033da57";
+ };
+ }
{
name = "esrecurse___esrecurse_4.2.1.tgz";
path = fetchurl {
@@ -1713,6 +2129,14 @@
sha1 = "398ad3f3c5a24948be7725e83d11a7de28cdbd1d";
};
}
+ {
+ name = "estraverse___estraverse_5.1.0.tgz";
+ path = fetchurl {
+ name = "estraverse___estraverse_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/estraverse/-/estraverse-5.1.0.tgz";
+ sha1 = "374309d39fd935ae500e7b92e8a6b4c720e59642";
+ };
+ }
{
name = "esutils___esutils_2.0.3.tgz";
path = fetchurl {
@@ -1818,11 +2242,11 @@
};
}
{
- name = "figures___figures_2.0.0.tgz";
+ name = "figures___figures_3.2.0.tgz";
path = fetchurl {
- name = "figures___figures_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/figures/-/figures-2.0.0.tgz";
- sha1 = "3ab1a2d2a62c8bfb431a0c94cb797a2fce27c962";
+ name = "figures___figures_3.2.0.tgz";
+ url = "https://registry.yarnpkg.com/figures/-/figures-3.2.0.tgz";
+ sha1 = "625c18bd293c604dc4a8ddb2febf0c88341746af";
};
}
{
@@ -2089,6 +2513,14 @@
sha1 = "5eff8e3e684d569ae4cb2b1282604e8ba62149fa";
};
}
+ {
+ name = "glob_parent___glob_parent_5.1.1.tgz";
+ path = fetchurl {
+ name = "glob_parent___glob_parent_5.1.1.tgz";
+ url = "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.1.tgz";
+ sha1 = "b6c1ef417c4e5663ea498f1c45afac6916bbc229";
+ };
+ }
{
name = "glob___glob_7.1.6.tgz";
path = fetchurl {
@@ -2129,6 +2561,14 @@
sha1 = "ab8795338868a0babd8525758018c2a7eb95c42e";
};
}
+ {
+ name = "globals___globals_12.4.0.tgz";
+ path = fetchurl {
+ name = "globals___globals_12.4.0.tgz";
+ url = "https://registry.yarnpkg.com/globals/-/globals-12.4.0.tgz";
+ sha1 = "a18813576a41b00a24a97e7f815918c2e19925f8";
+ };
+ }
{
name = "got___got_6.7.1.tgz";
path = fetchurl {
@@ -2418,11 +2858,19 @@
};
}
{
- name = "inquirer___inquirer_6.5.2.tgz";
+ name = "inquirer___inquirer_7.3.2.tgz";
path = fetchurl {
- name = "inquirer___inquirer_6.5.2.tgz";
- url = "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz";
- sha1 = "ad50942375d036d327ff528c08bd5fab089928ca";
+ name = "inquirer___inquirer_7.3.2.tgz";
+ url = "https://registry.yarnpkg.com/inquirer/-/inquirer-7.3.2.tgz";
+ sha1 = "25245d2e32dc9f33dbe26eeaada231daa66e9c7c";
+ };
+ }
+ {
+ name = "internal_slot___internal_slot_1.0.2.tgz";
+ path = fetchurl {
+ name = "internal_slot___internal_slot_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.2.tgz";
+ sha1 = "9c2e9fb3cd8e5e4256c6f45fe310067fcfa378a3";
};
}
{
@@ -2489,6 +2937,14 @@
sha1 = "1e1adf219e1eeb684d691f9d6a05ff0d30a24d75";
};
}
+ {
+ name = "is_callable___is_callable_1.2.0.tgz";
+ path = fetchurl {
+ name = "is_callable___is_callable_1.2.0.tgz";
+ url = "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.0.tgz";
+ sha1 = "83336560b54a38e35e3a2df7afd0454d691468bb";
+ };
+ }
{
name = "is_ci___is_ci_1.2.1.tgz";
path = fetchurl {
@@ -2521,6 +2977,14 @@
sha1 = "9aa20eb6aeebbff77fbd33e74ca01b33581d3a16";
};
}
+ {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ path = fetchurl {
+ name = "is_extglob___is_extglob_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz";
+ sha1 = "a88c02535791f02ed37c76a1b9ea9773c833f8c2";
+ };
+ }
{
name = "is_fullwidth_code_point___is_fullwidth_code_point_1.0.0.tgz";
path = fetchurl {
@@ -2553,6 +3017,14 @@
sha1 = "12cfb98b65b57dd3d193a3121f5f6e2f437602b5";
};
}
+ {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ path = fetchurl {
+ name = "is_glob___is_glob_4.0.1.tgz";
+ url = "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz";
+ sha1 = "7567dbe9f2f5e2467bc77ab83c4a29482407a5dc";
+ };
+ }
{
name = "is_installed_globally___is_installed_globally_0.1.0.tgz";
path = fetchurl {
@@ -2617,14 +3089,6 @@
sha1 = "f5220fc82a3e233757291dddc9c5877f2a1f3017";
};
}
- {
- name = "is_promise___is_promise_2.1.0.tgz";
- path = fetchurl {
- name = "is_promise___is_promise_2.1.0.tgz";
- url = "https://registry.yarnpkg.com/is-promise/-/is-promise-2.1.0.tgz";
- sha1 = "79a2a9ece7f096e80f36d2b2f3bc16c1ff4bf3fa";
- };
- }
{
name = "is_redirect___is_redirect_1.0.0.tgz";
path = fetchurl {
@@ -2641,6 +3105,14 @@
sha1 = "5517489b547091b0930e095654ced25ee97e9491";
};
}
+ {
+ name = "is_regex___is_regex_1.1.0.tgz";
+ path = fetchurl {
+ name = "is_regex___is_regex_1.1.0.tgz";
+ url = "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.0.tgz";
+ sha1 = "ece38e389e490df0dc21caea2bd596f987f767ff";
+ };
+ }
{
name = "is_retry_allowed___is_retry_allowed_1.2.0.tgz";
path = fetchurl {
@@ -2657,6 +3129,14 @@
sha1 = "12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44";
};
}
+ {
+ name = "is_string___is_string_1.0.5.tgz";
+ path = fetchurl {
+ name = "is_string___is_string_1.0.5.tgz";
+ url = "https://registry.yarnpkg.com/is-string/-/is-string-1.0.5.tgz";
+ sha1 = "40493ed198ef3ff477b8c7f92f644ec82a5cd3a6";
+ };
+ }
{
name = "is_symbol___is_symbol_1.0.3.tgz";
path = fetchurl {
@@ -2777,6 +3257,14 @@
sha1 = "a5e654c2e5a2deb5f201d96cefbca80c0ef2f513";
};
}
+ {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ path = fetchurl {
+ name = "jsesc___jsesc_2.5.2.tgz";
+ url = "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz";
+ sha1 = "80564d2e483dacf6e8ef209650a67df3f0c283a4";
+ };
+ }
{
name = "json_buffer___json_buffer_3.0.0.tgz";
path = fetchurl {
@@ -2825,6 +3313,14 @@
sha1 = "1296a2d58fd45f19a0f6ce01d65701e2c735b6eb";
};
}
+ {
+ name = "json5___json5_1.0.1.tgz";
+ path = fetchurl {
+ name = "json5___json5_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz";
+ sha1 = "779fb0018604fa854eacbf6252180d83543e3dbe";
+ };
+ }
{
name = "json5___json5_2.1.3.tgz";
path = fetchurl {
@@ -2873,6 +3369,14 @@
sha1 = "313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2";
};
}
+ {
+ name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+ path = fetchurl {
+ name = "jsx_ast_utils___jsx_ast_utils_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-2.4.1.tgz";
+ sha1 = "1114a4c1209481db06c690c2b4f488cc665f657e";
+ };
+ }
{
name = "keyv___keyv_3.1.0.tgz";
path = fetchurl {
@@ -2945,6 +3449,14 @@
sha1 = "3b09924edf9f083c0490fdd4c0bc4421e04764ee";
};
}
+ {
+ name = "levn___levn_0.4.1.tgz";
+ path = fetchurl {
+ name = "levn___levn_0.4.1.tgz";
+ url = "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz";
+ sha1 = "ae4562c007473b932a6200d403268dd2fffc6ade";
+ };
+ }
{
name = "libcipm___libcipm_4.0.7.tgz";
path = fetchurl {
@@ -3169,6 +3681,14 @@
sha1 = "3cd4574a00b67bae373a94b748772640507b7aac";
};
}
+ {
+ name = "lodash___lodash_4.17.15.tgz";
+ path = fetchurl {
+ name = "lodash___lodash_4.17.15.tgz";
+ url = "https://registry.yarnpkg.com/lodash/-/lodash-4.17.15.tgz";
+ sha1 = "b447f6670a0455bbfeedd11392eff330ea097548";
+ };
+ }
{
name = "lodash___lodash_4.17.19.tgz";
path = fetchurl {
@@ -3185,6 +3705,14 @@
sha1 = "0ee6300cc058db6b3551fa1c4bf73b83bb771312";
};
}
+ {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ path = fetchurl {
+ name = "loose_envify___loose_envify_1.4.0.tgz";
+ url = "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz";
+ sha1 = "71ee51fa7be4caec1a63839f7e682d8132d30caf";
+ };
+ }
{
name = "lowercase_keys___lowercase_keys_1.0.1.tgz";
path = fetchurl {
@@ -3250,11 +3778,11 @@
};
}
{
- name = "matrix_js_sdk___matrix_js_sdk_7.1.0.tgz";
+ name = "matrix_js_sdk___matrix_js_sdk_8.0.0.tgz";
path = fetchurl {
- name = "matrix_js_sdk___matrix_js_sdk_7.1.0.tgz";
- url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-7.1.0.tgz";
- sha1 = "b3e3304e890df45c827706831748935168ee839f";
+ name = "matrix_js_sdk___matrix_js_sdk_8.0.0.tgz";
+ url = "https://registry.yarnpkg.com/matrix-js-sdk/-/matrix-js-sdk-8.0.0.tgz";
+ sha1 = "78efb071ed1f6430553a9d6937d7bcfbae24cce8";
};
}
{
@@ -3465,14 +3993,6 @@
sha1 = "d09d1f357b443f493382a8eb3ccd183872ae6009";
};
}
- {
- name = "mute_stream___mute_stream_0.0.7.tgz";
- path = fetchurl {
- name = "mute_stream___mute_stream_0.0.7.tgz";
- url = "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz";
- sha1 = "3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab";
- };
- }
{
name = "mute_stream___mute_stream_0.0.8.tgz";
path = fetchurl {
@@ -3769,6 +4289,30 @@
sha1 = "1c47f272df277f3b1daf061677d9c82e2322c60e";
};
}
+ {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ path = fetchurl {
+ name = "object.assign___object.assign_4.1.0.tgz";
+ url = "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.0.tgz";
+ sha1 = "968bf1100d7956bb3ca086f006f846b3bc4008da";
+ };
+ }
+ {
+ name = "object.entries___object.entries_1.1.2.tgz";
+ path = fetchurl {
+ name = "object.entries___object.entries_1.1.2.tgz";
+ url = "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.2.tgz";
+ sha1 = "bc73f00acb6b6bb16c203434b10f9a7e797d3add";
+ };
+ }
+ {
+ name = "object.fromentries___object.fromentries_2.0.2.tgz";
+ path = fetchurl {
+ name = "object.fromentries___object.fromentries_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.2.tgz";
+ sha1 = "4a09c9b9bb3843dd0f89acdb517a794d4f355ac9";
+ };
+ }
{
name = "object.getownpropertydescriptors___object.getownpropertydescriptors_2.0.3.tgz";
path = fetchurl {
@@ -3777,6 +4321,14 @@
sha1 = "8758c846f5b407adab0f236e0986f14b051caa16";
};
}
+ {
+ name = "object.values___object.values_1.1.1.tgz";
+ path = fetchurl {
+ name = "object.values___object.values_1.1.1.tgz";
+ url = "https://registry.yarnpkg.com/object.values/-/object.values-1.1.1.tgz";
+ sha1 = "68a99ecde356b7e9295a3c5e0ce31dc8c953de5e";
+ };
+ }
{
name = "once___once_1.4.0.tgz";
path = fetchurl {
@@ -3786,11 +4338,11 @@
};
}
{
- name = "onetime___onetime_2.0.1.tgz";
+ name = "onetime___onetime_5.1.0.tgz";
path = fetchurl {
- name = "onetime___onetime_2.0.1.tgz";
- url = "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz";
- sha1 = "067428230fd67443b2794b22bba528b6867962d4";
+ name = "onetime___onetime_5.1.0.tgz";
+ url = "https://registry.yarnpkg.com/onetime/-/onetime-5.1.0.tgz";
+ sha1 = "fff0f3c91617fe62bb50189636e99ac8a6df7be5";
};
}
{
@@ -3809,6 +4361,14 @@
sha1 = "84fa1d036fe9d3c7e21d99884b601167ec8fb495";
};
}
+ {
+ name = "optionator___optionator_0.9.1.tgz";
+ path = fetchurl {
+ name = "optionator___optionator_0.9.1.tgz";
+ url = "https://registry.yarnpkg.com/optionator/-/optionator-0.9.1.tgz";
+ sha1 = "4f236a6373dae0566a6d43e1326674f50c291499";
+ };
+ }
{
name = "os_homedir___os_homedir_1.0.2.tgz";
path = fetchurl {
@@ -4065,6 +4625,14 @@
sha1 = "411cadb574c5a140d3a4b1910d40d80cc9f40b40";
};
}
+ {
+ name = "path_key___path_key_3.1.1.tgz";
+ path = fetchurl {
+ name = "path_key___path_key_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz";
+ sha1 = "581f6ade658cbba65a0d3380de7753295054f375";
+ };
+ }
{
name = "path_parse___path_parse_1.0.6.tgz";
path = fetchurl {
@@ -4121,6 +4689,14 @@
sha1 = "8f47dcec5011b477b67db03c243bc1f3085e8854";
};
}
+ {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ path = fetchurl {
+ name = "pkg_dir___pkg_dir_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz";
+ sha1 = "f6d5d1109e19d63edf428e0bd57e12777615334b";
+ };
+ }
{
name = "pkg_up___pkg_up_2.0.0.tgz";
path = fetchurl {
@@ -4145,6 +4721,14 @@
sha1 = "99ca7d725965fb655814eaf65f38f12bbdbf555f";
};
}
+ {
+ name = "prelude_ls___prelude_ls_1.2.1.tgz";
+ path = fetchurl {
+ name = "prelude_ls___prelude_ls_1.2.1.tgz";
+ url = "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz";
+ sha1 = "debc6489d7a6e6b0e7611888cec880337d316396";
+ };
+ }
{
name = "prelude_ls___prelude_ls_1.1.2.tgz";
path = fetchurl {
@@ -4217,6 +4801,14 @@
sha1 = "26a5d6ee8c7dee4cb12208305acfb93ba382a9ee";
};
}
+ {
+ name = "prop_types___prop_types_15.7.2.tgz";
+ path = fetchurl {
+ name = "prop_types___prop_types_15.7.2.tgz";
+ url = "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz";
+ sha1 = "52c41e75b8c87e72b9d9360e0206b99dcbffa6c5";
+ };
+ }
{
name = "proto_list___proto_list_1.2.4.tgz";
path = fetchurl {
@@ -4353,6 +4945,14 @@
sha1 = "cd924bf5200a075b83c188cd6b9e211b7fc0d3ed";
};
}
+ {
+ name = "react_is___react_is_16.13.1.tgz";
+ path = fetchurl {
+ name = "react_is___react_is_16.13.1.tgz";
+ url = "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz";
+ sha1 = "789729a4dc36de2999dc156dd6c1d9c18cea56a4";
+ };
+ }
{
name = "read_chunk___read_chunk_1.0.1.tgz";
path = fetchurl {
@@ -4489,6 +5089,14 @@
sha1 = "6b30724e306a27833eeb171b66ac8890ba37e41c";
};
}
+ {
+ name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+ path = fetchurl {
+ name = "regexp.prototype.flags___regexp.prototype.flags_1.3.0.tgz";
+ url = "https://registry.yarnpkg.com/regexp.prototype.flags/-/regexp.prototype.flags-1.3.0.tgz";
+ sha1 = "7aba89b3c13a64509dabcf3ca8d9fbb9bdf5cb75";
+ };
+ }
{
name = "regexpp___regexpp_2.0.1.tgz";
path = fetchurl {
@@ -4497,6 +5105,14 @@
sha1 = "8d19d31cf632482b589049f8281f93dbcba4d07f";
};
}
+ {
+ name = "regexpp___regexpp_3.1.0.tgz";
+ path = fetchurl {
+ name = "regexpp___regexpp_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz";
+ sha1 = "206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2";
+ };
+ }
{
name = "registry_auth_token___registry_auth_token_3.4.0.tgz";
path = fetchurl {
@@ -4577,6 +5193,14 @@
sha1 = "be0aa4c06acd53083505abb35f4d66932ab35d16";
};
}
+ {
+ name = "resolve___resolve_1.17.0.tgz";
+ path = fetchurl {
+ name = "resolve___resolve_1.17.0.tgz";
+ url = "https://registry.yarnpkg.com/resolve/-/resolve-1.17.0.tgz";
+ sha1 = "b25941b54968231cc2d1bb76a79cb7f2c0bf8444";
+ };
+ }
{
name = "responselike___responselike_1.0.2.tgz";
path = fetchurl {
@@ -4586,11 +5210,11 @@
};
}
{
- name = "restore_cursor___restore_cursor_2.0.0.tgz";
+ name = "restore_cursor___restore_cursor_3.1.0.tgz";
path = fetchurl {
- name = "restore_cursor___restore_cursor_2.0.0.tgz";
- url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz";
- sha1 = "9f7ee287f82fd326d4fd162923d62129eee0dfaf";
+ name = "restore_cursor___restore_cursor_3.1.0.tgz";
+ url = "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-3.1.0.tgz";
+ sha1 = "39f67c54b3a7a58cea5236d95cf0034239631f7e";
};
}
{
@@ -4634,11 +5258,11 @@
};
}
{
- name = "run_async___run_async_2.3.0.tgz";
+ name = "run_async___run_async_2.4.1.tgz";
path = fetchurl {
- name = "run_async___run_async_2.3.0.tgz";
- url = "https://registry.yarnpkg.com/run-async/-/run-async-2.3.0.tgz";
- sha1 = "0371ab4ae0bdd720d4166d7dfda64ff7a445a6c0";
+ name = "run_async___run_async_2.4.1.tgz";
+ url = "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz";
+ sha1 = "8440eccf99ea3e70bd409d49aab88e10c189a455";
};
}
{
@@ -4650,11 +5274,11 @@
};
}
{
- name = "rxjs___rxjs_6.5.3.tgz";
+ name = "rxjs___rxjs_6.6.0.tgz";
path = fetchurl {
- name = "rxjs___rxjs_6.5.3.tgz";
- url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.5.3.tgz";
- sha1 = "510e26317f4db91a7eb1de77d9dd9ba0a4899a3a";
+ name = "rxjs___rxjs_6.6.0.tgz";
+ url = "https://registry.yarnpkg.com/rxjs/-/rxjs-6.6.0.tgz";
+ sha1 = "af2901eedf02e3a83ffa7f886240ff9018bbec84";
};
}
{
@@ -4769,6 +5393,14 @@
sha1 = "44aac65b695b03398968c39f363fee5deafdf1ea";
};
}
+ {
+ name = "shebang_command___shebang_command_2.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_command___shebang_command_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz";
+ sha1 = "ccd0af4f8835fbdc265b82461aaf0c36663f34ea";
+ };
+ }
{
name = "shebang_regex___shebang_regex_1.0.0.tgz";
path = fetchurl {
@@ -4777,6 +5409,22 @@
sha1 = "da42f49740c0b42db2ca9728571cb190c98efea3";
};
}
+ {
+ name = "shebang_regex___shebang_regex_3.0.0.tgz";
+ path = fetchurl {
+ name = "shebang_regex___shebang_regex_3.0.0.tgz";
+ url = "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz";
+ sha1 = "ae16f1644d873ecad843b0307b143362d4c42172";
+ };
+ }
+ {
+ name = "side_channel___side_channel_1.0.2.tgz";
+ path = fetchurl {
+ name = "side_channel___side_channel_1.0.2.tgz";
+ url = "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.2.tgz";
+ sha1 = "df5d1abadb4e4bf4af1cd8852bf132d2f7876947";
+ };
+ }
{
name = "signal_exit___signal_exit_3.0.2.tgz";
path = fetchurl {
@@ -4849,6 +5497,14 @@
sha1 = "a98b62f86dcaf4f67399648c085291ab9e8fed61";
};
}
+ {
+ name = "source_map___source_map_0.5.7.tgz";
+ path = fetchurl {
+ name = "source_map___source_map_0.5.7.tgz";
+ url = "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz";
+ sha1 = "8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc";
+ };
+ }
{
name = "source_map___source_map_0.6.1.tgz";
path = fetchurl {
@@ -5009,6 +5665,22 @@
sha1 = "952182c46cc7b2c313d1596e623992bd163b72b5";
};
}
+ {
+ name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+ path = fetchurl {
+ name = "string.prototype.matchall___string.prototype.matchall_4.0.2.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.2.tgz";
+ sha1 = "48bb510326fb9fdeb6a33ceaa81a6ea04ef7648e";
+ };
+ }
+ {
+ name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimend___string.prototype.trimend_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.1.tgz";
+ sha1 = "85812a6b847ac002270f5808146064c995fb6913";
+ };
+ }
{
name = "string.prototype.trimleft___string.prototype.trimleft_2.1.0.tgz";
path = fetchurl {
@@ -5025,6 +5697,14 @@
sha1 = "669d164be9df9b6f7559fa8e89945b168a5a6c58";
};
}
+ {
+ name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+ path = fetchurl {
+ name = "string.prototype.trimstart___string.prototype.trimstart_1.0.1.tgz";
+ url = "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz";
+ sha1 = "14af6d9f34b053f7cfc89b72f8f2ee14b9039a54";
+ };
+ }
{
name = "string_decoder___string_decoder_1.3.0.tgz";
path = fetchurl {
@@ -5105,6 +5785,14 @@
sha1 = "bb43ff5598a6eb05d89b59fcd129c983313606bf";
};
}
+ {
+ name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+ path = fetchurl {
+ name = "strip_json_comments___strip_json_comments_3.1.1.tgz";
+ url = "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz";
+ sha1 = "31f1281b3832630434831c310c01cccda8cbe006";
+ };
+ }
{
name = "strip_json_comments___strip_json_comments_2.0.1.tgz";
path = fetchurl {
@@ -5257,6 +5945,14 @@
sha1 = "6d34335889768d21b2bcda0aa277ced3b1bfadf9";
};
}
+ {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ path = fetchurl {
+ name = "to_fast_properties___to_fast_properties_2.0.0.tgz";
+ url = "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz";
+ sha1 = "dc5e698cbd079265bc73e0377681a4e4e83f616e";
+ };
+ }
{
name = "to_readable_stream___to_readable_stream_1.0.0.tgz";
path = fetchurl {
@@ -5281,6 +5977,22 @@
sha1 = "405923909592d56f78a5818434b0b78489ca5f2b";
};
}
+ {
+ name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+ path = fetchurl {
+ name = "tsconfig_paths___tsconfig_paths_3.9.0.tgz";
+ url = "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.9.0.tgz";
+ sha1 = "098547a6c4448807e8fcb8eae081064ee9a3c90b";
+ };
+ }
+ {
+ name = "tslib___tslib_1.13.0.tgz";
+ path = fetchurl {
+ name = "tslib___tslib_1.13.0.tgz";
+ url = "https://registry.yarnpkg.com/tslib/-/tslib-1.13.0.tgz";
+ sha1 = "c881e13cc7015894ed914862d276436fa9a47043";
+ };
+ }
{
name = "tslib___tslib_1.10.0.tgz";
path = fetchurl {
@@ -5289,6 +6001,14 @@
sha1 = "c3c19f95973fb0a62973fb09d90d961ee43e5c8a";
};
}
+ {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ path = fetchurl {
+ name = "tsutils___tsutils_3.17.1.tgz";
+ url = "https://registry.yarnpkg.com/tsutils/-/tsutils-3.17.1.tgz";
+ sha1 = "ed719917f11ca0dee586272b2ac49e015a2dd759";
+ };
+ }
{
name = "tunnel_agent___tunnel_agent_0.6.0.tgz";
path = fetchurl {
@@ -5305,6 +6025,14 @@
sha1 = "5ae68177f192d4456269d108afa93ff8743f4f64";
};
}
+ {
+ name = "type_check___type_check_0.4.0.tgz";
+ path = fetchurl {
+ name = "type_check___type_check_0.4.0.tgz";
+ url = "https://registry.yarnpkg.com/type-check/-/type-check-0.4.0.tgz";
+ sha1 = "07b8203bfa7056c0657050e3ccd2c37730bab8f1";
+ };
+ }
{
name = "type_check___type_check_0.3.2.tgz";
path = fetchurl {
@@ -5313,6 +6041,14 @@
sha1 = "5884cab512cf1d355e3fb784f30804b2b520db72";
};
}
+ {
+ name = "type_fest___type_fest_0.11.0.tgz";
+ path = fetchurl {
+ name = "type_fest___type_fest_0.11.0.tgz";
+ url = "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz";
+ sha1 = "97abf0872310fed88a5c466b25681576145e33f1";
+ };
+ }
{
name = "type_fest___type_fest_0.8.1.tgz";
path = fetchurl {
@@ -5337,6 +6073,14 @@
sha1 = "867ac74e3864187b1d3d47d996a78ec5c8830777";
};
}
+ {
+ name = "typescript___typescript_3.9.7.tgz";
+ path = fetchurl {
+ name = "typescript___typescript_3.9.7.tgz";
+ url = "https://registry.yarnpkg.com/typescript/-/typescript-3.9.7.tgz";
+ sha1 = "98d600a5ebdc38f40cb277522f12dc800e9e25fa";
+ };
+ }
{
name = "uid_number___uid_number_0.0.6.tgz";
path = fetchurl {
@@ -5537,6 +6281,14 @@
sha1 = "b23e4358afa8a202fe7a100af1f5f883f02007ee";
};
}
+ {
+ name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+ path = fetchurl {
+ name = "v8_compile_cache___v8_compile_cache_2.1.1.tgz";
+ url = "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.1.1.tgz";
+ sha1 = "54bc3cdd43317bca91e35dcaf305b1a7237de745";
+ };
+ }
{
name = "validate_npm_package_license___validate_npm_package_license_3.0.4.tgz";
path = fetchurl {
@@ -5585,6 +6337,14 @@
sha1 = "a45043d54f5805316da8d62f9f50918d3da70b0a";
};
}
+ {
+ name = "which___which_2.0.2.tgz";
+ path = fetchurl {
+ name = "which___which_2.0.2.tgz";
+ url = "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz";
+ sha1 = "7c6a8dd0a636a0327e10b59c9286eee93f3f51b1";
+ };
+ }
{
name = "wide_align___wide_align_1.1.3.tgz";
path = fetchurl {
diff --git a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
index 9faaba117007..4bcde89fefea 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-desktop.nix
@@ -8,12 +8,12 @@
let
executableName = "element-desktop";
- version = "1.7.1";
+ version = "1.7.2";
src = fetchFromGitHub {
owner = "vector-im";
repo = "riot-desktop";
rev = "v${version}";
- sha256 = "0sl45mxgp0sngxnba8ilsghzgv6cv36ggah1k2204ggzby13blg6";
+ sha256 = "1b3ckmqbhbkfghlkckb3ixr4i2pzdisz6pi929q5qj91f3ihxv4x";
};
electron = electron_9;
diff --git a/pkgs/applications/networking/instant-messengers/element/element-web.nix b/pkgs/applications/networking/instant-messengers/element/element-web.nix
index 9284af07fe1a..aa9541071af6 100644
--- a/pkgs/applications/networking/instant-messengers/element/element-web.nix
+++ b/pkgs/applications/networking/instant-messengers/element/element-web.nix
@@ -12,11 +12,11 @@ let
in stdenv.mkDerivation rec {
pname = "element-web";
- version = "1.7.1";
+ version = "1.7.2";
src = fetchurl {
url = "https://github.com/vector-im/riot-web/releases/download/v${version}/riot-v${version}.tar.gz";
- sha256 = "1axmf5h0k709kbpgh3ldsf6f8k9n2q623pk4j0nrshlxa9ighsay";
+ sha256 = "0wjr5pd25c31f2w48amqvfmd720ih8hfr1rzd8mljvqb1fbakry3";
};
installPhase = ''
diff --git a/pkgs/applications/networking/instant-messengers/gajim/default.nix b/pkgs/applications/networking/instant-messengers/gajim/default.nix
index b2be635728d7..930d288c365f 100644
--- a/pkgs/applications/networking/instant-messengers/gajim/default.nix
+++ b/pkgs/applications/networking/instant-messengers/gajim/default.nix
@@ -62,7 +62,7 @@ python3.pkgs.buildPythonApplication rec {
homepage = "http://gajim.org/";
description = "Jabber client written in PyGTK";
license = lib.licenses.gpl3Plus;
- maintainers = with lib.maintainers; [ raskin aszlig abbradar ];
+ maintainers = with lib.maintainers; [ raskin abbradar ];
downloadPage = "http://gajim.org/downloads.php";
updateWalker = true;
platforms = lib.platforms.linux;
diff --git a/pkgs/applications/networking/instant-messengers/rambox/default.nix b/pkgs/applications/networking/instant-messengers/rambox/default.nix
index d94749bdc4c3..6bf3efa53640 100644
--- a/pkgs/applications/networking/instant-messengers/rambox/default.nix
+++ b/pkgs/applications/networking/instant-messengers/rambox/default.nix
@@ -35,8 +35,10 @@ in stdenv.mkDerivation rec {
--replace Exec=/opt/Rambox/rambox Exec=rambox
'';
- postFixup = ''
- wrapProgram $out/opt/Rambox/rambox --prefix PATH : ${xdg_utils}/bin
+ preFixup = ''
+ gappsWrapperArgs+=(
+ --prefix PATH : ${xdg_utils}/bin
+ )
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/networking/instant-messengers/ripcord/default.nix b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
index f003bbec222f..9055b51d9756 100755
--- a/pkgs/applications/networking/instant-messengers/ripcord/default.nix
+++ b/pkgs/applications/networking/instant-messengers/ripcord/default.nix
@@ -5,12 +5,12 @@
mkDerivation rec {
pname = "ripcord";
- version = "0.4.25";
+ version = "0.4.26";
src = let
appimage = fetchurl {
url = "https://cancel.fm/dl/Ripcord-${version}-x86_64.AppImage";
- sha256 = "17s4fxqirmzdw0sn9s9zyk90gr00ivsmz4s6i6knsq354zhy5fda";
+ sha256 = "0i9l21gyqga27ainzqp6icn8vbc22v1knq01pglgg1lg3p504ikq";
name = "${pname}-${version}.AppImage";
};
in appimageTools.extract {
@@ -51,7 +51,8 @@ mkDerivation rec {
--run "cd $out" \
--set FONTCONFIG_FILE "${fontsConf}" \
--prefix LD_LIBRARY_PATH ":" "${xorg.libXcursor}/lib" \
- --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb"
+ --prefix QT_XKB_CONFIG_ROOT ":" "${xorg.xkeyboardconfig}/share/X11/xkb" \
+ --set RIPCORD_ALLOW_UPDATES 0
runHook postInstall
'';
diff --git a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
index 5f5e0f9e9bfe..3f5b0811a0f3 100644
--- a/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
+++ b/pkgs/applications/networking/instant-messengers/telegram/tdesktop/default.nix
@@ -19,12 +19,12 @@ with lib;
mkDerivation rec {
pname = "telegram-desktop";
- version = "2.1.13";
+ version = "2.2.0";
# Telegram-Desktop with submodules
src = fetchurl {
url = "https://github.com/telegramdesktop/tdesktop/releases/download/v${version}/tdesktop-${version}-full.tar.gz";
- sha256 = "0mq3f7faxn1hfkhv5n37y5iajjnm38s2in631046m0q7c4w3lrfi";
+ sha256 = "1chikb02df4qqnickcmx96lcx481b14kmksjsp7h94g0d223ypq0";
};
postPatch = ''
diff --git a/pkgs/applications/networking/mailreaders/notmuch/default.nix b/pkgs/applications/networking/mailreaders/notmuch/default.nix
index 26f47dba4617..57849b46fcbd 100644
--- a/pkgs/applications/networking/mailreaders/notmuch/default.nix
+++ b/pkgs/applications/networking/mailreaders/notmuch/default.nix
@@ -12,7 +12,7 @@
with stdenv.lib;
stdenv.mkDerivation rec {
- version = "0.29.3";
+ version = "0.30";
pname = "notmuch";
passthru = {
@@ -22,7 +22,7 @@ stdenv.mkDerivation rec {
src = fetchurl {
url = "https://notmuchmail.org/releases/${pname}-${version}.tar.xz";
- sha256 = "0dfwa38vgnxk9cvvpza66szjgp8lir6iz6yy0cry9593lywh9xym";
+ sha256 = "1ylnj12f7xr18v3ckb1nwc2aw2rj3ghqnj5f4rzccr8xw5pslfsy";
};
nativeBuildInputs = [
diff --git a/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch b/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch
deleted file mode 100644
index e2d617bcc7ca..000000000000
--- a/pkgs/applications/networking/remote/wayvnc/add-missing-librt.patch
+++ /dev/null
@@ -1,20 +0,0 @@
-diff --git a/meson.build b/meson.build
-index cc6fa03..7c2b280 100644
---- a/meson.build
-+++ b/meson.build
-@@ -24,6 +24,7 @@ add_project_arguments(c_args, language: 'c')
- cc = meson.get_compiler('c')
-
- libm = cc.find_library('m', required: false)
-+librt = cc.find_library('rt', required: false)
-
- pixman = dependency('pixman-1')
- libuv = dependency('libuv')
-@@ -65,6 +66,7 @@ sources = [
-
- dependencies = [
- libm,
-+ librt,
- pixman,
- libuv,
- egl,
diff --git a/pkgs/applications/networking/remote/wayvnc/default.nix b/pkgs/applications/networking/remote/wayvnc/default.nix
index 4ca6ae952580..32373e22b762 100644
--- a/pkgs/applications/networking/remote/wayvnc/default.nix
+++ b/pkgs/applications/networking/remote/wayvnc/default.nix
@@ -1,27 +1,20 @@
{ stdenv, fetchFromGitHub, meson, pkg-config, ninja
-, pixman, libuv, libGL, libxkbcommon, wayland, neatvnc, libdrm, libX11
+, pixman, libxkbcommon, wayland, neatvnc, libdrm, libX11, aml
}:
stdenv.mkDerivation rec {
pname = "wayvnc";
- version = "0.1.2";
+ version = "0.2.0";
src = fetchFromGitHub {
owner = "any1";
repo = pname;
rev = "v${version}";
- sha256 = "0aa12fkbwhzs0g2pqw1b27l33nn5dpbcvsf1z8h88kwsf9xdvb2r";
+ sha256 = "1ddcf8hrxhx4rcwvbjwa5j3ygiwca2dpw26wl37pb0q0jr81wylv";
};
- patches = [ ./add-missing-librt.patch ];
-
- postPatch = ''
- substituteInPlace meson.build \
- --replace "version: '0.1.0'" "version: '${version}'"
- '';
-
- nativeBuildInputs = [ meson pkg-config ninja ];
- buildInputs = [ pixman libuv libGL libxkbcommon wayland neatvnc libdrm libX11 ];
+ nativeBuildInputs = [ meson pkg-config ninja wayland ];
+ buildInputs = [ pixman libxkbcommon wayland neatvnc libdrm libX11 aml ];
meta = with stdenv.lib; {
description = "A VNC server for wlroots based Wayland compositors";
diff --git a/pkgs/applications/office/softmaker/generic.nix b/pkgs/applications/office/softmaker/generic.nix
index 82ac2b58f68a..c7803fa3d1d2 100644
--- a/pkgs/applications/office/softmaker/generic.nix
+++ b/pkgs/applications/office/softmaker/generic.nix
@@ -17,8 +17,11 @@ let
inherit makeDesktopItem pname suiteName;
};
shortEdition = builtins.substring 2 2 edition;
-in stdenv.mkDerivation rec {
- inherit pname version edition shortEdition src;
+in stdenv.mkDerivation {
+ inherit pname src;
+
+ version = "${edition}.${version}";
+
nativeBuildInputs = [
autoPatchelfHook
makeWrapper
diff --git a/pkgs/applications/science/biology/hmmer/default.nix b/pkgs/applications/science/biology/hmmer/default.nix
index 3786b62f7477..6ee7cd609c42 100644
--- a/pkgs/applications/science/biology/hmmer/default.nix
+++ b/pkgs/applications/science/biology/hmmer/default.nix
@@ -1,12 +1,12 @@
{ stdenv, fetchurl }:
stdenv.mkDerivation rec {
- version = "3.3";
+ version = "3.3.1";
pname = "hmmer";
src = fetchurl {
url = "http://eddylab.org/software/hmmer/${pname}-${version}.tar.gz";
- sha256 = "0v3kcgkr6jihq0xmpgn2xd5q7wiwvj6yswa905k2c0v7mx0bz1h1";
+ sha256 = "1mcvr74w6ffd5z0p8v3jss473mbgard9lz5whjnk95c661lnmrlc";
};
meta = with stdenv.lib; {
@@ -20,6 +20,6 @@ stdenv.mkDerivation rec {
homepage = "http://hmmer.org/";
license = licenses.gpl3;
maintainers = [ maintainers.iimog ];
- platforms = [ "x86_64-linux" "i686-linux" ];
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/science/biology/itsx/default.nix b/pkgs/applications/science/biology/itsx/default.nix
index ac534a4ec3cd..6f66cfc9cc37 100644
--- a/pkgs/applications/science/biology/itsx/default.nix
+++ b/pkgs/applications/science/biology/itsx/default.nix
@@ -29,6 +29,6 @@ stdenv.mkDerivation rec {
homepage = "https://microbiology.se/software/itsx/";
license = licenses.gpl3;
maintainers = [ maintainers.bzizou ];
- platforms = [ "x86_64-linux" "i686-linux" ];
+ platforms = platforms.unix;
};
}
diff --git a/pkgs/applications/science/electronics/kicad/default.nix b/pkgs/applications/science/electronics/kicad/default.nix
index a99f1b2d8d7a..a8340a2c22c4 100644
--- a/pkgs/applications/science/electronics/kicad/default.nix
+++ b/pkgs/applications/science/electronics/kicad/default.nix
@@ -1,4 +1,5 @@
-{ lib, stdenv, gnome3, pkgs, wxGTK30, wxGTK31
+{ lib, stdenv, gnome3, wxGTK30, wxGTK31
+, makeWrapper
, gsettings-desktop-schemas, hicolor-icon-theme
, callPackage, callPackages
, librsvg, cups
@@ -8,7 +9,7 @@
, oceSupport ? false, opencascade
, withOCCT ? true, opencascade-occt
, ngspiceSupport ? true, libngspice
-, scriptingSupport ? true, swig, python3
+, scriptingSupport ? false, swig, python3
, debug ? false, valgrind
, with3d ? true
, withI18n ? true
@@ -31,9 +32,8 @@ let
# but brings high DPI support?
else wxGTK31.override { withGtk2 = false; };
- pythonPackages = python.pkgs;
python = python3;
- wxPython = pythonPackages.wxPython_4_0;
+ wxPython = python.pkgs.wxPython_4_0;
in
stdenv.mkDerivation rec {
@@ -55,10 +55,11 @@ stdenv.mkDerivation rec {
dontFixup = true;
pythonPath = optionals (scriptingSupport)
- [ wxPython pythonPackages.six ];
+ [ wxPython python.pkgs.six ];
- nativeBuildInputs = optionals (scriptingSupport)
- [ pythonPackages.wrapPython ];
+ nativeBuildInputs = [ makeWrapper ]
+ ++ optionals (scriptingSupport)
+ [ python.pkgs.wrapPython ];
# wrapGAppsHook added the equivalent to ${base}/share
# though i noticed no difference without it
diff --git a/pkgs/applications/science/electronics/kicad/versions.nix b/pkgs/applications/science/electronics/kicad/versions.nix
index 4a9ed0cb86dc..7299e8ee907b 100644
--- a/pkgs/applications/science/electronics/kicad/versions.nix
+++ b/pkgs/applications/science/electronics/kicad/versions.nix
@@ -27,23 +27,23 @@
};
"kicad-unstable" = {
kicadVersion = {
- version = "2020-05-14";
+ version = "2020-07-21";
src = {
- rev = "3b8465359135e9f6dea4b0a5fcb62377753fe890";
- sha256 = "18xsg2s0pxx176rnblygq1f8xpmryw59lcjzm897gifz0sj0nhvx";
+ rev = "9a801d8b72f24e297a7d9d6e8cee2eef6cab2988";
+ sha256 = "0yilmmng7y3rz1bxw2b0s0aqs8hdqr7ach2r45bx8v1f4bih4ka9";
};
};
libVersion = {
- version = "2020-05-14";
+ version = "2020-07-21";
libSources = {
- i18n.rev = "c4460d0d8e1075691d43dc928ffc332fa1282592";
- i18n.sha256 = "1gkrbfyfzsr5q7sahhlyhgfpfwm6b83lzf0q1v854gwxdfabvi0y";
- symbols.rev = "614b5f6256fbae82c2bba399086506bbe435bd94";
- symbols.sha256 = "10ix3wdcl832r4ha5q8phpx8j97gzngb41nczdli1qkhjmiw9y8r";
- templates.rev = "7db8d4d0ea0711f1961d117853547fb3edbc3857";
- templates.sha256 = "1hppcsrkn4dk6ggby6ckh0q65qxkywrbyxa4lwpaf7pxjyv498xg";
- footprints.rev = "240804c6c89b66af808379e1fc94ea6011433cbe";
- footprints.sha256 = "1jh71004lrn7bl384zfmbqqdbs28gjb6diwn6hyb587jpivdnl3g";
+ i18n.rev = "a311975d139caf8be9848dd613a9800570adc245";
+ i18n.sha256 = "1bkn2hhwcg8xdpn9yfm9nnqsg02c1nizhpxd4yhpxgifhh4psz1g";
+ symbols.rev = "18572c4c118fe8ef779edf3131eebf2c33c6fa46";
+ symbols.sha256 = "0hqx0aznzrnlbdkpsnl8mbs9bdgiv029d6zjh10nyjzcw27q3hxz";
+ templates.rev = "ae16953b81055855bcede4a33305413599d86a15";
+ templates.sha256 = "1pkv90p3liy3bj4nklxsvpzh9m56p0k5ldr22armvgqfaqaadx9v";
+ footprints.rev = "4835f80b4a52256aa7a3eb650e6e0fef33a77d0d";
+ footprints.sha256 = "00rc6phxmkry35i0xzry14axvh2akvvkly45s3xxi06vaydaw7i5";
packages3d.rev = "9b560cf94a35b692ca516d37bdaf392ce10e549d";
packages3d.sha256 = "0b9jglf77fy0n0r8xs4yqkv6zvipyfvp0z5dnqlzp32csy5aqpi1";
};
diff --git a/pkgs/applications/science/electronics/magic-vlsi/default.nix b/pkgs/applications/science/electronics/magic-vlsi/default.nix
index 62b830547e53..96849c300298 100644
--- a/pkgs/applications/science/electronics/magic-vlsi/default.nix
+++ b/pkgs/applications/science/electronics/magic-vlsi/default.nix
@@ -31,6 +31,6 @@ stdenv.mkDerivation {
description = "VLSI layout tool written in Tcl";
homepage = "http://opencircuitdesign.com/magic/";
license = licenses.mit;
- maintainers = [ maintainers.dkudriavtsev ];
+ maintainers = [ maintainers.anna328p ];
};
}
diff --git a/pkgs/applications/science/logic/drat-trim/default.nix b/pkgs/applications/science/logic/drat-trim/default.nix
index 4099236e6280..81e20df33424 100644
--- a/pkgs/applications/science/logic/drat-trim/default.nix
+++ b/pkgs/applications/science/logic/drat-trim/default.nix
@@ -1,13 +1,14 @@
{ stdenv, fetchFromGitHub }:
stdenv.mkDerivation {
- name = "drat-trim-2017-08-31";
+ pname = "drat-trim-unstable";
+ version = "2020-06-05";
src = fetchFromGitHub {
owner = "marijnheule";
repo = "drat-trim";
- rev = "37ac8f874826ffa3500a00698910e137498defac";
- sha256 = "1m9q47dfnvdli1z3kb1jvvbm0dgaw725k1aw6h9w00bggqb91bqh";
+ rev = "9afad0f7156a1e9c6ce19dce5d72cf1cb9a3ef27";
+ sha256 = "1zq585igfaknwqbvv2cji744016zxadbvr0ifr5l6yq13m0vvn3b";
};
postPatch = ''
@@ -15,7 +16,7 @@ stdenv.mkDerivation {
'';
installPhase = ''
- install -Dt $out/bin drat-trim
+ install -Dt $out/bin drat-trim lrat-check
'';
meta = with stdenv.lib; {
@@ -31,6 +32,10 @@ stdenv.mkDerivation {
annual SAT Competition in recent years, in order to check
competing SAT solvers' work when they claim that a SAT instance
is unsatisfiable.
+
+ This package also contains the related tool LRAT-check, which checks a
+ proof format called LRAT which extends DRAT with hint statements to speed
+ up the checking process.
'';
homepage = "https://www.cs.utexas.edu/~marijn/drat-trim/";
license = licenses.mit;
diff --git a/pkgs/applications/science/logic/sad/default.nix b/pkgs/applications/science/logic/sad/default.nix
index f1066abf6931..77613a135710 100644
--- a/pkgs/applications/science/logic/sad/default.nix
+++ b/pkgs/applications/science/logic/sad/default.nix
@@ -35,5 +35,6 @@ stdenv.mkDerivation {
maintainers = [ stdenv.lib.maintainers.schmitthenner ];
homepage = "http://nevidal.org/sad.en.html";
platforms = stdenv.lib.platforms.linux;
+ broken = true; # ghc-8.4.4 is gone from Nixpkgs
};
}
diff --git a/pkgs/applications/science/machine-learning/finalfrontier/default.nix b/pkgs/applications/science/machine-learning/finalfrontier/default.nix
new file mode 100644
index 000000000000..8a4d5acede0f
--- /dev/null
+++ b/pkgs/applications/science/machine-learning/finalfrontier/default.nix
@@ -0,0 +1,52 @@
+{ lib
+, stdenv
+, rustPlatform
+, fetchFromGitHub
+, installShellFiles
+, pkg-config
+, libiconv
+, openssl
+, Security
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "finalfrontier";
+ version = "0.9.4";
+
+ src = fetchFromGitHub {
+ owner = "finalfusion";
+ repo = pname;
+ rev = version;
+ sha256 = "1lvwv238p8hrl4sc5pmnvaargl2dd25p44gxl3kibq5ng03afd0n";
+ };
+
+ cargoSha256 = "1ibn22v24brdlrar6j7fryiwimbbw7byak265hrw7a5agf1799x0";
+
+ nativeBuildInputs = [
+ installShellFiles
+ pkg-config
+ ];
+
+ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [
+ libiconv
+ Security
+ ];
+
+ postInstall = ''
+ installManPage man/*.1
+
+ # Install shell completions
+ for shell in bash fish zsh; do
+ $out/bin/finalfrontier completions $shell > finalfrontier.$shell
+ done
+ installShellCompletion finalfrontier.{bash,fish,zsh}
+ '';
+
+ meta = with stdenv.lib; {
+ description = "Utility for training word and subword embeddings";
+ homepage = "https://github.com/finalfusion/finalfrontier/";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ danieldk ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/applications/science/math/geogebra/default.nix b/pkgs/applications/science/math/geogebra/default.nix
index 1dd92267a837..5cebef83a4a9 100644
--- a/pkgs/applications/science/math/geogebra/default.nix
+++ b/pkgs/applications/science/math/geogebra/default.nix
@@ -2,7 +2,7 @@
stdenv.mkDerivation rec {
pname = "geogebra";
- version = "5-0-574-0";
+ version = "5-0-593-0";
preferLocalBuild = true;
@@ -11,7 +11,7 @@ stdenv.mkDerivation rec {
"https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
"http://web.archive.org/https://download.geogebra.org/installers/5.0/GeoGebra-Linux-Portable-${version}.tar.bz2"
];
- sha256 = "0jbci4spqkf33yb079lsnsc684y4mdf1p8lm9r0037av8jlsrgrc";
+ sha256 = "d84c27a3299e6df08881733d22215a18decedcba4c2d97a9e5424c39cd57db35";
};
srcIcon = fetchurl {
diff --git a/pkgs/applications/version-management/git-and-tools/gh/default.nix b/pkgs/applications/version-management/git-and-tools/gh/default.nix
index 27daf1a30aac..65c49e332283 100644
--- a/pkgs/applications/version-management/git-and-tools/gh/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/gh/default.nix
@@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gh";
- version = "0.11.0";
+ version = "0.11.1";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
- sha256 = "13nq7rvxwl9cld9gng7rm534yqrr2ii0bqyzqwlkpzh9m61m3ra2";
+ sha256 = "0l1d75smvly2k6s3j55n674ld6i5hd8yn6lfhg8vvkvhxx2jjvb9";
};
- vendorSha256 = "1xvrxdxhyj5nz5plypc5mniw5dl17w1wxcrs77w24hisn90jphgd";
+ vendorSha256 = "1xq1n583p0a3j78afprm2hk5f1hchdrx4vvphml95rv9786vjbcc";
nativeBuildInputs = [ installShellFiles ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix b/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
index e4c57be2357c..5a7e5bd32afb 100644
--- a/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-filter-repo/default.nix
@@ -2,11 +2,11 @@
stdenv.mkDerivation rec {
pname = "git-filter-repo";
- version = "2.27.1";
+ version = "2.28.0";
src = fetchurl {
url = "https://github.com/newren/git-filter-repo/releases/download/v${version}/${pname}-${version}.tar.xz";
- sha256 = "07r32n31ryflgz1ds3dz5s3ixv7li3scxwavy9mzbzdhq6bbzl28";
+ sha256 = "0sa6h6k1mnhx8p8w5d88gx7cqbnxaazfj1dv47c107fk70hqvvpx";
};
buildInputs = [ pythonPackages.python ];
diff --git a/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix b/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
index 8894c4f0f7ad..5de7fddbc0c6 100644
--- a/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
+++ b/pkgs/applications/version-management/git-and-tools/git-workspace/default.nix
@@ -2,22 +2,24 @@
, fetchFromGitHub
, rustPlatform
, Security
+, pkgconfig, openssl
}:
rustPlatform.buildRustPackage rec {
pname = "git-workspace";
- version = "0.6.0";
+ version = "0.7.0";
src = fetchFromGitHub {
owner = "orf";
repo = pname;
rev = "v${version}";
- sha256 = "0n025bnisg724d9pjcindxagj1ry63sxr0pplpkh2f2qffzm78pi";
+ sha256 = "1ckfk221ag6yhbqxfz432wpgbhddgzgdsaxhl1ymw90pwpnz717y";
};
- cargoSha256 = "0ikyp6pdlw2c1gr1n1snjbdmblm0fs5swx5awy36jskii99q6kr1";
+ cargoSha256 = "0zkns037vgy96ybmn80px515ivz6yhj5br5mwbvxgl73va92wd9v";
- buildInputs = with stdenv; lib.optional isDarwin Security;
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ] ++ stdenv.lib.optional stdenv.isDarwin Security;
meta = with stdenv.lib; {
description = "Sync personal and work git repositories from multiple providers";
diff --git a/pkgs/applications/video/makemkv/default.nix b/pkgs/applications/video/makemkv/default.nix
index 56247b278260..d3cb12924c26 100644
--- a/pkgs/applications/video/makemkv/default.nix
+++ b/pkgs/applications/video/makemkv/default.nix
@@ -3,21 +3,21 @@
}:
let
- version = "1.15.1";
+ version = "1.15.2";
# Using two URLs as the first one will break as soon as a new version is released
src_bin = fetchurl {
urls = [
"http://www.makemkv.com/download/makemkv-bin-${version}.tar.gz"
"http://www.makemkv.com/download/old/makemkv-bin-${version}.tar.gz"
];
- sha256 = "0c9661sdlld8b1g2pk8lbn3gz7cikh9bjqss11ffkriwii1x9fw0";
+ sha256 = "1dbips0qllbwhak44c50nlwn8n3kx8i6773cal5zl3dv4v2nf6ql";
};
src_oss = fetchurl {
urls = [
"http://www.makemkv.com/download/makemkv-oss-${version}.tar.gz"
"http://www.makemkv.com/download/old/makemkv-oss-${version}.tar.gz"
];
- sha256 = "0rm1zykqagy2g8hb7pjrc6akdsym8pgdnx66hnna161jbah3sssy";
+ sha256 = "1wnhzlz5fw6qwh82hjcpimg60xb3a9a54zb6gcjhqr9zdly2zphy";
};
in mkDerivation {
pname = "makemkv";
@@ -55,6 +55,6 @@ in mkDerivation {
license = licenses.unfree;
homepage = "http://makemkv.com";
platforms = [ "x86_64-linux" ];
- maintainers = [ maintainers.titanous ];
+ maintainers = with maintainers; [ danieldk titanous ];
};
}
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch b/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
new file mode 100644
index 000000000000..7a7378faa58b
--- /dev/null
+++ b/pkgs/applications/virtualization/cloud-hypervisor/cargo-lock-vendor-fix.patch
@@ -0,0 +1,53 @@
+diff --git a/Cargo.lock b/Cargo.lock
+index e566ed25..a661a963 100644
+--- a/Cargo.lock
++++ b/Cargo.lock
+@@ -689,7 +689,7 @@ dependencies = [
+ "serde",
+ "serde_derive",
+ "serde_json",
+- "vfio-bindings 0.2.0 (git+https://github.com/rust-vmm/vfio-bindings)",
++ "vfio-bindings",
+ "vfio-ioctls",
+ "vm-allocator",
+ "vm-device",
+@@ -1346,17 +1346,12 @@ checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191"
+ [[package]]
+ name = "vfio-bindings"
+ version = "0.2.0"
+-source = "git+https://github.com/rust-vmm/vfio-bindings#f08cbcbf4041c981441d9c036c49ebad5098ed1c"
++source = "registry+https://github.com/rust-lang/crates.io-index"
++checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
+ dependencies = [
+ "vmm-sys-util",
+ ]
+
+-[[package]]
+-name = "vfio-bindings"
+-version = "0.2.0"
+-source = "registry+https://github.com/rust-lang/crates.io-index"
+-checksum = "4a21f546f2bda37f5a8cfb138c87f95b8e34d2d78d6a7a92ba3785f4e08604a7"
+-
+ [[package]]
+ name = "vfio-ioctls"
+ version = "0.1.0"
+@@ -1366,7 +1361,7 @@ dependencies = [
+ "kvm-bindings",
+ "kvm-ioctls",
+ "log 0.4.8",
+- "vfio-bindings 0.2.0 (registry+https://github.com/rust-lang/crates.io-index)",
++ "vfio-bindings",
+ "vm-memory",
+ "vmm-sys-util",
+ ]
+diff --git a/pci/Cargo.toml b/pci/Cargo.toml
+index 9c6955c7..4ecf8e6b 100644
+--- a/pci/Cargo.toml
++++ b/pci/Cargo.toml
+@@ -23,5 +23,5 @@ vm-memory = "0.2.1"
+ vm-migration = { path = "../vm-migration" }
+
+ [dependencies.vfio-bindings]
+-git = "https://github.com/rust-vmm/vfio-bindings"
++version = "0.2.0"
+ features = ["fam-wrappers"]
diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
new file mode 100644
index 000000000000..59c97c4a8dea
--- /dev/null
+++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix
@@ -0,0 +1,28 @@
+{ lib, fetchFromGitHub, rustPlatform, pkgconfig, openssl }:
+
+rustPlatform.buildRustPackage rec {
+ pname = "cloud-hypervisor";
+ version = "0.8.0";
+
+ src = fetchFromGitHub {
+ owner = "cloud-hypervisor";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "h2aWWjycTm84TS89/vhqnAvwOqeeSDtvvCt+Is6I0eI=";
+ };
+
+ nativeBuildInputs = [ pkgconfig ];
+ buildInputs = [ openssl ];
+
+ cargoPatches = [ ./cargo-lock-vendor-fix.patch ];
+ cargoSha256 = "fOIB+qVDqAAgQPW3bK2NfST24GzYJeRXgaMFXyNPcPQ=";
+
+ meta = with lib; {
+ homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor";
+ description = "Open source Virtual Machine Monitor (VMM) that runs on top of KVM";
+ changelog = "https://github.com/cloud-hypervisor/cloud-hypervisor/releases/tag/v${version}";
+ license = with licenses; [ asl20 bsd3 ];
+ maintainers = with maintainers; [ offline ];
+ platforms = [ "x86_64-linux" ];
+ };
+}
diff --git a/pkgs/applications/virtualization/conmon/default.nix b/pkgs/applications/virtualization/conmon/default.nix
index 83261c057a49..675d713f4b4c 100644
--- a/pkgs/applications/virtualization/conmon/default.nix
+++ b/pkgs/applications/virtualization/conmon/default.nix
@@ -9,13 +9,13 @@
stdenv.mkDerivation rec {
pname = "conmon";
- version = "2.0.19";
+ version = "2.0.20";
src = fetchFromGitHub {
owner = "containers";
repo = pname;
rev = "v${version}";
- sha256 = "005sz8aimbfm12d99q79yvsqczxbvbbgc725pavcbly3k1qva207";
+ sha256 = "1f09wx5k98fa55r73y5v0sgf2lha675xhk40piyf0b7zqknl6lya";
};
nativeBuildInputs = [ pkg-config ];
diff --git a/pkgs/applications/virtualization/docker-slim/default.nix b/pkgs/applications/virtualization/docker-slim/default.nix
index 996d52bacab2..6e5ba4abf378 100644
--- a/pkgs/applications/virtualization/docker-slim/default.nix
+++ b/pkgs/applications/virtualization/docker-slim/default.nix
@@ -6,7 +6,7 @@
buildGoPackage rec {
pname = "docker-slim";
- version = "1.29.0";
+ version = "1.30.0";
goPackagePath = "github.com/docker-slim/docker-slim";
@@ -14,7 +14,7 @@ buildGoPackage rec {
owner = "docker-slim";
repo = "docker-slim";
rev = version;
- sha256 = "0qfjmwqxgghp9pqj4s2z71cmn8mi1l6655z6nbhh72yqaxh5a6ia";
+ sha256 = "10w5v0qqj8yqd81hpz65pq1lx0j9pl112s7hl6y9p3i3f0m0931f";
};
subPackages = [ "cmd/docker-slim" "cmd/docker-slim-sensor" ];
@@ -41,10 +41,5 @@ buildGoPackage rec {
homepage = "https://dockersl.im/";
license = licenses.asl20;
maintainers = with maintainers; [ filalex77 marsam mbrgm ];
- # internal/app/sensor/monitors/ptrace/monitor.go:151:16: undefined:
- # system.CallNumber
- # internal/app/sensor/monitors/ptrace/monitor.go:161:15: undefined:
- # system.CallReturnValue
- badPlatforms = [ "aarch64-linux" ];
};
}
diff --git a/pkgs/applications/virtualization/hercules/default.nix b/pkgs/applications/virtualization/hercules/default.nix
index 901e2f0b6ec0..8746e66668ff 100644
--- a/pkgs/applications/virtualization/hercules/default.nix
+++ b/pkgs/applications/virtualization/hercules/default.nix
@@ -13,6 +13,6 @@ stdenv.mkDerivation rec {
description = "IBM mainframe emulator";
homepage = "http://www.hercules-390.eu";
license = licenses.qpl;
- maintainers = [ maintainers.dkudriavtsev ];
+ maintainers = [ maintainers.anna328p ];
};
}
diff --git a/pkgs/applications/virtualization/podman/default.nix b/pkgs/applications/virtualization/podman/default.nix
index 5c8321a3c9ce..bae218d1cad7 100644
--- a/pkgs/applications/virtualization/podman/default.nix
+++ b/pkgs/applications/virtualization/podman/default.nix
@@ -16,13 +16,13 @@
buildGoModule rec {
pname = "podman";
- version = "2.0.2";
+ version = "2.0.3";
src = fetchFromGitHub {
owner = "containers";
repo = "podman";
rev = "v${version}";
- sha256 = "12iqj71xjszbjbbz5f2dk5chcvfrrq0n737ki7xxkjcw38k2cnqz";
+ sha256 = "1jqdv3kij2q97qn4niqxxgfva9ajr4wjgx40qk5yhs01d3g0qgmd";
};
vendorSha256 = null;
diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix
index c5dcc2fafc68..ada0d9691098 100644
--- a/pkgs/applications/virtualization/qemu/default.nix
+++ b/pkgs/applications/virtualization/qemu/default.nix
@@ -133,15 +133,18 @@ stdenv.mkDerivation rec {
dontWrapGApps = true;
postFixup = ''
- # copy qemu-ga (guest agent) to separate output
- mkdir -p $ga/bin
- cp $out/bin/qemu-ga $ga/bin/
- '' + optionalString gtkSupport ''
- # wrap GTK Binaries
- for f in $out/bin/qemu-system-*; do
- wrapGApp $f
- done
- '';
+ # the .desktop is both invalid and pointless
+ rm $out/share/applications/qemu.desktop
+
+ # copy qemu-ga (guest agent) to separate output
+ mkdir -p $ga/bin
+ cp $out/bin/qemu-ga $ga/bin/
+ '' + optionalString gtkSupport ''
+ # wrap GTK Binaries
+ for f in $out/bin/qemu-system-*; do
+ wrapGApp $f
+ done
+ '';
# Add a ‘qemu-kvm’ wrapper for compatibility/convenience.
postInstall = ''
diff --git a/pkgs/applications/virtualization/singularity/default.nix b/pkgs/applications/virtualization/singularity/default.nix
index f6a1a3bc6a91..8cec24534d43 100644
--- a/pkgs/applications/virtualization/singularity/default.nix
+++ b/pkgs/applications/virtualization/singularity/default.nix
@@ -1,13 +1,16 @@
{stdenv
, removeReferencesTo
, lib
-, fetchFromGitHub
+, fetchurl
, utillinux
+, gpgme
, openssl
+, libuuid
, coreutils
, go
, which
, makeWrapper
+, cryptsetup
, squashfsTools
, buildGoPackage}:
@@ -15,24 +18,22 @@ with lib;
buildGoPackage rec {
pname = "singularity";
- version = "3.2.1";
+ version = "3.6.1";
- src = fetchFromGitHub {
- owner = "sylabs";
- repo = "singularity";
- rev = "v${version}";
- sha256 = "14lhxwy21s7q081x7kbnvkjsbxgsg2f181qlzmlxcn6n7gfav3kj";
+ src = fetchurl {
+ url = "https://github.com/hpcng/singularity/releases/download/v${version}/singularity-${version}.tar.gz";
+ sha256 = "070jj6kbiw23sd2p4xhvmyb8gd83imwgisdf18ahkwp7dq85db3c";
};
goPackagePath = "github.com/sylabs/singularity";
goDeps = ./deps.nix;
- buildInputs = [ openssl utillinux ];
- nativeBuildInputs = [ removeReferencesTo which makeWrapper ];
+ buildInputs = [ gpgme openssl libuuid ];
+ nativeBuildInputs = [ removeReferencesTo utillinux which makeWrapper cryptsetup ];
propagatedBuildInputs = [ coreutils squashfsTools ];
- prePatch = ''
- substituteInPlace internal/pkg/build/copy/copy.go \
+ postPatch = ''
+ substituteInPlace internal/pkg/build/files/copy.go \
--replace /bin/cp ${coreutils}/bin/cp
'';
@@ -46,24 +47,28 @@ buildGoPackage rec {
# Don't install SUID binaries
sed -i 's/-m 4755/-m 755/g' builddir/Makefile
-
'';
buildPhase = ''
+ runHook preBuild
make -C builddir
+ runHook postBuild
'';
installPhase = ''
+ runHook preInstall
make -C builddir install LOCALSTATEDIR=$out/var
chmod 755 $out/libexec/singularity/bin/starter-suid
- wrapProgram $out/bin/singularity --prefix PATH : ${stdenv.lib.makeBinPath propagatedBuildInputs}
+
+ # Explicitly configure paths in the config file
+ sed -i 's|^# mksquashfs path =.*$|mksquashfs path = ${stdenv.lib.makeBinPath [squashfsTools]}/mksquashfs|' $out/etc/singularity/singularity.conf
+ sed -i 's|^# cryptsetup path =.*$|cryptsetup path = ${stdenv.lib.makeBinPath [cryptsetup]}/cryptsetup|' $out/etc/singularity/singularity.conf
+
+ runHook postInstall
'';
postFixup = ''
find $out/libexec/ -type f -executable -exec remove-references-to -t ${go} '{}' + || true
-
- # These etc scripts shouldn't have their paths patched
- cp etc/actions/* $out/etc/singularity/actions/
'';
meta = with stdenv.lib; {
diff --git a/pkgs/applications/window-managers/i3/lock-color.nix b/pkgs/applications/window-managers/i3/lock-color.nix
index c5e203ab1a58..a64e5ea33693 100644
--- a/pkgs/applications/window-managers/i3/lock-color.nix
+++ b/pkgs/applications/window-managers/i3/lock-color.nix
@@ -4,14 +4,14 @@
}:
stdenv.mkDerivation rec {
- version = "2.12.c.4";
+ version = "2.12.c.5";
pname = "i3lock-color";
src = fetchFromGitHub {
owner = "PandorasFox";
repo = "i3lock-color";
rev = version;
- sha256 = "1jbk7kd49vgmakbldwwnbsp484fwh1pbzg8k8qvbq4dzbzf3q5hs";
+ sha256 = "10h50a6p9ivqjz8hd5pn9l03vz6y9dxdx68bprqssfzdkzqnzaiv";
};
nativeBuildInputs = [ autoreconfHook pkgconfig ];
diff --git a/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch b/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
index 219d6dcbe207..ed22ed99b078 100644
--- a/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
+++ b/pkgs/applications/window-managers/qtile/0001-Substitution-vars-for-absolute-paths.patch
@@ -1,25 +1,8 @@
-diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py
-index 1e8f5c04..e860d43a 100644
---- a/libqtile/pangocffi.py
-+++ b/libqtile/pangocffi.py
-@@ -58,9 +58,9 @@ except ImportError:
- else:
- raise ImportError("No module named libqtile._ffi_pango, be sure to run `python ./libqtile/ffi_build.py`")
-
--gobject = ffi.dlopen('libgobject-2.0.so.0')
--pango = ffi.dlopen('libpango-1.0.so.0')
--pangocairo = ffi.dlopen('libpangocairo-1.0.so.0')
-+gobject = ffi.dlopen('@glib@/lib/libgobject-2.0.so.0')
-+pango = ffi.dlopen('@pango@/lib/libpango-1.0.so.0')
-+pangocairo = ffi.dlopen('@pango@/lib/libpangocairo-1.0.so.0')
-
-
- def CairoContext(cairo_t):
-diff --git a/libqtile/xcursors.py b/libqtile/xcursors.py
-index f1133555..3e61204a 100644
---- a/libqtile/xcursors.py
-+++ b/libqtile/xcursors.py
-@@ -112,7 +112,7 @@ class Cursors(dict):
+diff --git a/libqtile/backend/x11/xcursors.py b/libqtile/backend/x11/xcursors.py
+index 24454b83..ef37875c 100644
+--- a/libqtile/backend/x11/xcursors.py
++++ b/libqtile/backend/x11/xcursors.py
+@@ -107,7 +107,7 @@ class Cursors(dict):
def _setup_xcursor_binding(self):
try:
@@ -28,3 +11,21 @@ index f1133555..3e61204a 100644
except OSError:
logger.warning("xcb-cursor not found, fallback to font pointer")
return False
+diff --git a/libqtile/pangocffi.py b/libqtile/pangocffi.py
+index dbae27ed..54c2c35f 100644
+--- a/libqtile/pangocffi.py
++++ b/libqtile/pangocffi.py
+@@ -52,10 +52,9 @@ try:
+ except ImportError:
+ raise ImportError("No module named libqtile._ffi_pango, be sure to run `./scripts/ffibuild`")
+
+-gobject = ffi.dlopen('libgobject-2.0.so.0')
+-pango = ffi.dlopen('libpango-1.0.so.0')
+-pangocairo = ffi.dlopen('libpangocairo-1.0.so.0')
+-
++gobject = ffi.dlopen('@glib@/lib/libgobject-2.0.so.0')
++pango = ffi.dlopen('@pango@/lib/libpango-1.0.so.0')
++pangocairo = ffi.dlopen('@pango@/lib/libpangocairo-1.0.so.0')
+
+ def patch_cairo_context(cairo_t):
+ def create_layout():
diff --git a/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch b/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
index a01f14062f1d..1eaa5b84174c 100644
--- a/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
+++ b/pkgs/applications/window-managers/qtile/0002-Restore-PATH-and-PYTHONPATH.patch
@@ -1,5 +1,5 @@
diff --git a/bin/qshell b/bin/qshell
-index 2ba7e61c..0ac2a2ef 100755
+index 5c652b7a..2d169eb2 100755
--- a/bin/qshell
+++ b/bin/qshell
@@ -28,5 +28,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -10,7 +10,7 @@ index 2ba7e61c..0ac2a2ef 100755
from libqtile.scripts import qshell
qshell.main()
diff --git a/bin/qtile b/bin/qtile
-index 3e82814d..335b5cea 100755
+index ebc8fab5..08a965ef 100755
--- a/bin/qtile
+++ b/bin/qtile
@@ -29,5 +29,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -20,8 +20,19 @@ index 3e82814d..335b5cea 100755
+ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
from libqtile.scripts import qtile
qtile.main()
+diff --git a/bin/qtile-cmd b/bin/qtile-cmd
+index a2136ee6..3d37a6d9 100755
+--- a/bin/qtile-cmd
++++ b/bin/qtile-cmd
+@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
+ sys.path.insert(0, base_dir)
+
+ if __name__ == '__main__':
++ __import__("importlib").import_module("libqtile.utils").restore_os_environment()
+ from libqtile.scripts import qtile_cmd
+ qtile_cmd.main()
diff --git a/bin/qtile-run b/bin/qtile-run
-index e4b121be..1c203bc9 100755
+index ac4cb1fd..74c589cb 100755
--- a/bin/qtile-run
+++ b/bin/qtile-run
@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -32,7 +43,7 @@ index e4b121be..1c203bc9 100755
from libqtile.scripts import qtile_run
qtile_run.main()
diff --git a/bin/qtile-top b/bin/qtile-top
-index 5316e0e7..272c6430 100755
+index a6251f27..0d524b1d 100755
--- a/bin/qtile-top
+++ b/bin/qtile-top
@@ -8,5 +8,6 @@ base_dir = os.path.abspath(os.path.join(this_dir, ".."))
@@ -43,14 +54,13 @@ index 5316e0e7..272c6430 100755
from libqtile.scripts import qtile_top
qtile_top.main()
diff --git a/libqtile/utils.py b/libqtile/utils.py
-index 550ed02677e..1358a66f3df 100644
+index 2628c898..05117be7 100644
--- a/libqtile/utils.py
+++ b/libqtile/utils.py
-@@ -272,3 +272,11 @@ def safe_import(module_names, class_name, globals_, fallback=None):
- logger.debug("%s", traceback.format_exc())
- if fallback:
- globals_[class_name] = fallback(module_path, class_name, error)
-+
+@@ -270,3 +270,10 @@ def guess_terminal():
+ return terminal
+
+ logger.error('Default terminal has not been found.')
+
+def restore_os_environment():
+ pythonpath = os.environ.pop("QTILE_SAVED_PYTHONPATH", "")
@@ -58,3 +68,4 @@ index 550ed02677e..1358a66f3df 100644
+ path = os.environ.pop("QTILE_SAVED_PATH", None)
+ if path:
+ os.environ["PATH"] = path
+
diff --git a/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch b/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
index 87fd19773794..c04d8a83c1a2 100644
--- a/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
+++ b/pkgs/applications/window-managers/qtile/0003-Restart-executable.patch
@@ -1,8 +1,8 @@
-diff --git a/libqtile/manager.py b/libqtile/manager.py
-index fc198e9bae7..860b97d8db1 100644
---- a/libqtile/manager.py
-+++ b/libqtile/manager.py
-@@ -1402,7 +1402,7 @@ class Qtile(command.CommandObject):
+diff --git a/libqtile/core/manager.py b/libqtile/core/manager.py
+index c22eeb6a..2ffe4eab 100644
+--- a/libqtile/core/manager.py
++++ b/libqtile/core/manager.py
+@@ -278,7 +278,7 @@ class Qtile(CommandObject):
logger.error("Unable to pickle qtile state")
argv = [s for s in argv if not s.startswith('--with-state')]
argv.append('--with-state=' + buf.getvalue().decode())
@@ -10,4 +10,4 @@ index fc198e9bae7..860b97d8db1 100644
+ self._restart = (os.environ.get("QTILE_WRAPPER", "@out@/bin/qtile"), argv[1:])
self.stop()
- def cmd_spawn(self, cmd):
+ async def finalize(self):
diff --git a/pkgs/applications/window-managers/qtile/default.nix b/pkgs/applications/window-managers/qtile/default.nix
index eb56e9c16390..eccf5c163a8e 100644
--- a/pkgs/applications/window-managers/qtile/default.nix
+++ b/pkgs/applications/window-managers/qtile/default.nix
@@ -7,13 +7,13 @@ in
python37Packages.buildPythonApplication rec {
name = "qtile-${version}";
- version = "0.13.0";
+ version = "0.16.0";
src = fetchFromGitHub {
owner = "qtile";
repo = "qtile";
rev = "v${version}";
- sha256 = "1lyclnn8hs6wl4w9v5b4hh2q0pvmsn7cyibpskhbpw0cgv7bvi90";
+ sha256 = "1klv1k9847nyx71sfrhqyl1k51k2w8phqnp2bns4dvbqii7q125l";
};
patches = [
@@ -23,16 +23,18 @@ python37Packages.buildPythonApplication rec {
];
postPatch = ''
- substituteInPlace libqtile/manager.py --subst-var-by out $out
+ substituteInPlace libqtile/core/manager.py --subst-var-by out $out
substituteInPlace libqtile/pangocffi.py --subst-var-by glib ${glib.out}
substituteInPlace libqtile/pangocffi.py --subst-var-by pango ${pango.out}
- substituteInPlace libqtile/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
+ substituteInPlace libqtile/backend/x11/xcursors.py --subst-var-by xcb-cursor ${xcbutilcursor.out}
'';
+ SETUPTOOLS_SCM_PRETEND_VERSION = version;
+
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ glib libxcb cairo pango python37Packages.xcffib ];
- pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools ];
+ pythonPath = with python37Packages; [ xcffib cairocffi-xcffib setuptools setuptools_scm ];
postInstall = ''
wrapProgram $out/bin/qtile \
@@ -41,7 +43,7 @@ python37Packages.buildPythonApplication rec {
--run 'export QTILE_SAVED_PATH=$PATH'
'';
- doCheck = false; # Requires X server.
+ doCheck = false; # Requires X server #TODO this can be worked out with the existing NixOS testing infrastructure.
meta = with stdenv.lib; {
homepage = "http://www.qtile.org/";
diff --git a/pkgs/build-support/emacs/generic.nix b/pkgs/build-support/emacs/generic.nix
index 6fa27f098392..956787ad59e4 100644
--- a/pkgs/build-support/emacs/generic.nix
+++ b/pkgs/build-support/emacs/generic.nix
@@ -56,6 +56,16 @@ stdenv.mkDerivation ({
meta = defaultMeta // meta;
}
+// lib.optionalAttrs (emacs.nativeComp or false) {
+
+ LIBRARY_PATH = "${lib.getLib stdenv.cc.libc}/lib";
+
+ postInstall = ''
+ find $out/share/emacs -type f -name '*.el' -print0 | xargs -0 -n 1 -I {} -P $NIX_BUILD_CORES sh -c "emacs --batch -f batch-native-compile {} || true"
+ '';
+
+}
+
// removeAttrs args [ "buildInputs" "packageRequires"
"meta"
])
diff --git a/pkgs/build-support/singularity-tools/default.nix b/pkgs/build-support/singularity-tools/default.nix
index 54749e416ea3..f1d4808e3cce 100644
--- a/pkgs/build-support/singularity-tools/default.nix
+++ b/pkgs/build-support/singularity-tools/default.nix
@@ -97,6 +97,7 @@ rec {
cd ..
mkdir -p /var/singularity/mnt/{container,final,overlay,session,source}
echo "root:x:0:0:System administrator:/root:/bin/sh" > /etc/passwd
+ echo > /etc/resolv.conf
TMPDIR=$(pwd -P) singularity build $out ./img
'');
diff --git a/pkgs/build-support/writers/default.nix b/pkgs/build-support/writers/default.nix
index af492d80db01..4673b4e6cd87 100644
--- a/pkgs/build-support/writers/default.nix
+++ b/pkgs/build-support/writers/default.nix
@@ -22,7 +22,30 @@ rec {
inherit interpreter;
contentPath = content;
}) ''
- echo "#! $interpreter" > $out
+ # On darwin a script cannot be used as an interpreter in a shebang but
+ # there doesn't seem to be a limit to the size of shebang and multiple
+ # arguments to the interpreter are allowed.
+ if [[ -n "${toString pkgs.stdenvNoCC.isDarwin}" ]] && isScript $interpreter
+ then
+ wrapperInterpreterLine=$(head -1 "$interpreter" | tail -c+3)
+ # Get first word from the line (note: xargs echo remove leading spaces)
+ wrapperInterpreter=$(echo "$wrapperInterpreterLine" | xargs echo | cut -d " " -f1)
+
+ if isScript $wrapperInterpreter
+ then
+ echo "error: passed interpreter ($interpreter) is a script which has another script ($wrapperInterpreter) as an interpreter, which is not supported."
+ exit 1
+ fi
+
+ # This should work as long as wrapperInterpreter is a shell, which is
+ # the case for programs wrapped with makeWrapper, like
+ # python3.withPackages etc.
+ interpreterLine="$wrapperInterpreterLine $interpreter"
+ else
+ interpreterLine=$interpreter
+ fi
+
+ echo "#! $interpreterLine" > $out
cat "$contentPath" >> $out
${optionalString (check != "") ''
${check} $out
@@ -227,6 +250,24 @@ rec {
writePerlBin = name:
writePerl "/bin/${name}";
+ # makePythonWriter takes python and compatible pythonPackages and produces python script writer,
+ # which validates the script with flake8 at build time. If any libraries are specified,
+ # python.withPackages is used as interpreter, otherwise the "bare" python is used.
+ makePythonWriter = python: pythonPackages: name: { libraries ? [], flakeIgnore ? [] }:
+ let
+ ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
+ in
+ makeScriptWriter {
+ interpreter =
+ if libraries == []
+ then "${python}/bin/python"
+ else "${python.withPackages (ps: libraries)}/bin/python"
+ ;
+ check = writeDash "python2check.sh" ''
+ exec ${pythonPackages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
+ '';
+ } name;
+
# writePython2 takes a name an attributeset with libraries and some python2 sourcecode and
# returns an executable
#
@@ -239,17 +280,7 @@ rec {
#
# print Test.a
# ''
- writePython2 = name: { libraries ? [], flakeIgnore ? [] }:
- let
- py = pkgs.python2.withPackages (ps: libraries);
- ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
- in
- makeScriptWriter {
- interpreter = "${py}/bin/python";
- check = writeDash "python2check.sh" ''
- exec ${pkgs.python2Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
- '';
- } name;
+ writePython2 = makePythonWriter pkgs.python2 pkgs.python2Packages;
# writePython2Bin takes the same arguments as writePython2 but outputs a directory (like writeScriptBin)
writePython2Bin = name:
@@ -267,17 +298,7 @@ rec {
# """)
# print(y[0]['test'])
# ''
- writePython3 = name: { libraries ? [], flakeIgnore ? [] }:
- let
- py = pkgs.python3.withPackages (ps: libraries);
- ignoreAttribute = optionalString (flakeIgnore != []) "--ignore ${concatMapStringsSep "," escapeShellArg flakeIgnore}";
- in
- makeScriptWriter {
- interpreter = "${py}/bin/python";
- check = writeDash "python3check.sh" ''
- exec ${pkgs.python3Packages.flake8}/bin/flake8 --show-source ${ignoreAttribute} "$1"
- '';
- } name;
+ writePython3 = makePythonWriter pkgs.python3 pkgs.python3Packages;
# writePython3Bin takes the same arguments as writePython3 but outputs a directory (like writeScriptBin)
writePython3Bin = name:
diff --git a/pkgs/build-support/writers/test.nix b/pkgs/build-support/writers/test.nix
index 3cd0a080ae8f..d284bda43d05 100644
--- a/pkgs/build-support/writers/test.nix
+++ b/pkgs/build-support/writers/test.nix
@@ -152,6 +152,14 @@ let
""")
print(y[0]['test'])
'';
+
+ python2NoLibs = writePython2 "test_python2_no_libs" {} ''
+ print("success")
+ '';
+
+ python3NoLibs = writePython3 "test_python3_no_libs" {} ''
+ print("success")
+ '';
};
diff --git a/pkgs/data/fonts/redhat-official/default.nix b/pkgs/data/fonts/redhat-official/default.nix
index 44eea3774ffc..37ca9db9fa0b 100644
--- a/pkgs/data/fonts/redhat-official/default.nix
+++ b/pkgs/data/fonts/redhat-official/default.nix
@@ -1,16 +1,21 @@
-{ lib, fetchzip }:
-
-let version = "2.2.0"; in
-fetchzip {
+{ lib, fetchFromGitHub }:
+let
+ version = "2.3.2";
+in
+fetchFromGitHub {
name = "redhat-official-${version}";
- url = "https://github.com/RedHatOfficial/RedHatFont/archive/${version}.zip";
+
+ owner = "RedHatOfficial";
+ repo = "RedHatFont";
+ rev = version;
postFetch = ''
- mkdir -p $out/share/fonts/opentype
- unzip -j $downloadedFile \*.otf -d $out/share/fonts/opentype
+ tar xf $downloadedFile --strip=1
+ install -m444 -Dt $out/share/fonts/opentype OTF/*.otf
+ install -m444 -Dt $out/share/fonts/truetype TTF/*.ttf
'';
- sha256 = "0yb6shgq6jrv3kq9faky66qpdbv4g580c3jl942844grwyngymyj";
+ sha256 = "1afvxmgif61hb17g8inmxvq30vkzwh30mydlqpf0zgvaaz8qdwmv";
meta = with lib; {
homepage = "https://github.com/RedHatOfficial/RedHatFont";
diff --git a/pkgs/data/misc/hackage/default.nix b/pkgs/data/misc/hackage/default.nix
index 5027371035ff..c7528db49f11 100644
--- a/pkgs/data/misc/hackage/default.nix
+++ b/pkgs/data/misc/hackage/default.nix
@@ -1,6 +1,6 @@
{ fetchurl }:
fetchurl {
- url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/ccbc2765586cc6f71894919f1f096714ca6ae453.tar.gz";
- sha256 = "001crq0myhn0bvyrbl10i8hski6z2a0hg9ij4plbjgvl5cldkzji";
+ url = "https://github.com/commercialhaskell/all-cabal-hashes/archive/8af27e77a015d06c7a8fe49a430fd5334a93ebf7.tar.gz";
+ sha256 = "1w5cfcvliy1ly8iq42l76ai5wgfnrwxf6hw5kq6p913qhhrcn5wr";
}
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
index 7bd31f587f67..336820b7938e 100644
--- a/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "gnome-shell-arc-menu";
- version = "43";
+ version = "47";
src = fetchFromGitLab {
- owner = "LinxGem33";
+ owner = "arcmenu-team";
repo = "Arc-Menu";
rev = "v${version}-Stable";
- sha256 = "1rspl89bxqy0wla8cj0h1d29gp38xg1vmvhc1qg7bl46ank4yp5q";
+ sha256 = "1hhjxdm1sm9pddhkkxx532hqqiv9ghvqgn9xszg1jwhj29380fv6";
};
patches = [
diff --git a/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch b/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
index 7f6b8489ea8b..5d8584f52a6a 100644
--- a/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
+++ b/pkgs/desktops/gnome-3/extensions/arc-menu/fix_gmenu.patch
@@ -1,12 +1,11 @@
--- a/extension.js
+++ b/extension.js
-@@ -29,6 +29,8 @@
- * https://github.com/The-Panacea-Projects/Gnomenu
- */
-
-+
-+imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
-
- // Import Libraries
- const Main = imports.ui.main;
+@@ -23,6 +23,8 @@
+ const Me = imports.misc.extensionUtils.getCurrentExtension();
+
++imports.gi.GIRepository.Repository.prepend_search_path('@gmenu_path@');
++
+ const {GLib, Gio, St} = imports.gi;
+ const Constants = Me.imports.constants;
+ const Controller = Me.imports.controller;
diff --git a/pkgs/desktops/mate/atril/default.nix b/pkgs/desktops/mate/atril/default.nix
index e71ca81142a7..12c89ee1b111 100644
--- a/pkgs/desktops/mate/atril/default.nix
+++ b/pkgs/desktops/mate/atril/default.nix
@@ -1,4 +1,25 @@
-{ stdenv, fetchurl, pkgconfig, gettext, gtk3, glib, libxml2, libsecret, poppler, itstool, hicolor-icon-theme, texlive, mate, wrapGAppsHook }:
+{ stdenv
+, fetchurl
+, pkgconfig
+, gettext
+, gtk3
+, glib
+, libxml2
+, libsecret
+, poppler
+, itstool
+, hicolor-icon-theme
+, texlive
+, mate
+, wrapGAppsHook
+, enableEpub ? true, webkitgtk
+, enableDjvu ? true, djvulibre
+, enablePostScript ? true, libspectre
+, enableXps ? true, libgxps
+, enableImages ? false
+}:
+
+with stdenv.lib;
stdenv.mkDerivation rec {
pname = "atril";
@@ -26,7 +47,19 @@ stdenv.mkDerivation rec {
mate.mate-desktop
hicolor-icon-theme
texlive.bin.core # for synctex, used by the pdf back-end
- ];
+ ]
+ ++ optionals enableDjvu [ djvulibre ]
+ ++ optionals enableEpub [ webkitgtk ]
+ ++ optionals enablePostScript [ libspectre ]
+ ++ optionals enableXps [ libgxps ]
+ ;
+
+ configureFlags = [ ]
+ ++ optionals (enableDjvu) [ "--enable-djvu" ]
+ ++ optionals (enableEpub) [ "--enable-epub" ]
+ ++ optionals (enablePostScript) [ "--enable-ps" ]
+ ++ optionals (enableXps) [ "--enable-xps" ]
+ ++ optionals (enableImages) [ "--enable-pixbuf" ];
NIX_CFLAGS_COMPILE = "-I${glib.dev}/include/gio-unix-2.0";
diff --git a/pkgs/desktops/pantheon/apps/elementary-files/default.nix b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
index 346971d4fb41..6ada1a340d17 100644
--- a/pkgs/desktops/pantheon/apps/elementary-files/default.nix
+++ b/pkgs/desktops/pantheon/apps/elementary-files/default.nix
@@ -30,7 +30,7 @@
stdenv.mkDerivation rec {
pname = "elementary-files";
- version = "4.4.3";
+ version = "4.4.4";
repoName = "files";
@@ -40,7 +40,7 @@ stdenv.mkDerivation rec {
owner = "elementary";
repo = repoName;
rev = version;
- sha256 = "14i5icgpsy78mr7w6cav38p7shfk784b6nlxz9y72rbcxky036yc";
+ sha256 = "1hsh9kg30l90r2aqrrap1nfmgjf0la8mfd8h4xm6d7acailcnhmb";
};
passthru = {
diff --git a/pkgs/desktops/pantheon/desktop/gala/default.nix b/pkgs/desktops/pantheon/desktop/gala/default.nix
index 624a1bde61d8..4519a2287f7f 100644
--- a/pkgs/desktops/pantheon/desktop/gala/default.nix
+++ b/pkgs/desktops/pantheon/desktop/gala/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, fetchpatch
, pantheon
, pkgconfig
, meson
@@ -69,6 +70,13 @@ stdenv.mkDerivation rec {
];
patches = [
+ # https://github.com/elementary/gala/pull/869
+ # build failure in vala 0.48.7
+ # https://github.com/elementary/gala/pull/869#issuecomment-657147695
+ (fetchpatch {
+ url = "https://github.com/elementary/gala/commit/85d290c75eaa147b704ad34e6c67498071707ee8.patch";
+ sha256 = "19jkvmxidf453qfrxkvi35igxzfz2cm8srwkabvyn9wyd1yhiw0l";
+ })
./plugins-dir.patch
./use-new-notifications-default.patch
];
diff --git a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
index 14c87036ec8c..e93135258210 100644
--- a/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
+++ b/pkgs/desktops/pantheon/desktop/wingpanel-indicators/session/default.nix
@@ -1,5 +1,6 @@
{ stdenv
, fetchFromGitHub
+, fetchpatch
, pantheon
, pkgconfig
, meson
@@ -23,6 +24,19 @@ stdenv.mkDerivation rec {
sha256 = "02inp8xdxfx8qxjdf2nazw46ahp1gv3skd922ma6kgx5w4wxh5l8";
};
+ patches = [
+ # build failure in vala 0.48.7
+ # https://github.com/elementary/gala/pull/869#issuecomment-657147695
+ (fetchpatch {
+ url = "https://github.com/elementary/wingpanel-indicator-session/commit/ead6971c708eed8b844bd9acd7eed2ab8a97e803.patch";
+ sha256 = "1v7w7zdia82d38ycr5zhckaxgf7gr15hsv05cv5khlki8frryn2x";
+ })
+ (fetchpatch {
+ url = "https://github.com/elementary/wingpanel-indicator-session/commit/85347e676054635ac878fc542bd057398ca70d3e.patch";
+ sha256 = "1vw4zx0qbhxmfzqhdcmwdp4fxvij7n3f5lwcplf5v3k9qsr3wm0n";
+ })
+ ];
+
passthru = {
updateScript = pantheon.updateScript {
attrPath = "pantheon.${pname}";
diff --git a/pkgs/development/compilers/binaryen/default.nix b/pkgs/development/compilers/binaryen/default.nix
index 651c88704da3..e9dc939b5edf 100644
--- a/pkgs/development/compilers/binaryen/default.nix
+++ b/pkgs/development/compilers/binaryen/default.nix
@@ -1,11 +1,11 @@
{ stdenv, cmake, python3, fetchFromGitHub, emscriptenRev ? null, substituteAll }:
let
- defaultVersion = "94";
+ defaultVersion = "95";
# Map from git revs to SHA256 hashes
sha256s = {
- version_94 = "1wk20fhyppb2ljni7ifqnsx9kl1kcl6c0svc0qljf0bs6rvr9qdm";
+ version_95 = "1w4js9bm5qv5aws8bzz4f0n3ni2l7h4fidkq9v5bldf0zxncy8m3";
"1.39.1" = "0ygm9m5322h4vfpf3j63q32qxk2l26yk62hh7dkb49j51zwl1y3y";
};
in
diff --git a/pkgs/development/compilers/bluespec/default.nix b/pkgs/development/compilers/bluespec/default.nix
index 49737b48c575..09e76d63235c 100644
--- a/pkgs/development/compilers/bluespec/default.nix
+++ b/pkgs/development/compilers/bluespec/default.nix
@@ -6,7 +6,6 @@
, fontconfig
, gmp
, gperf
-, haskell
, libX11
, libpoly
, perl
@@ -14,16 +13,14 @@
, verilog
, xorg
, zlib
+, ghc
}:
let
# yices wants a libgmp.a and fails otherwise
gmpStatic = gmp.override { withStatic = true; };
- # Compiling PreludeBSV fails with more recent GHC versions
- # > imperative statement (not BVI context)
- # https://github.com/B-Lang-org/bsc/issues/20#issuecomment-583724030
- ghcWithPackages = haskell.packages.ghc844.ghc.withPackages (g: (with g; [old-time regex-compat syb]));
+ ghcWithPackages = ghc.withPackages (g: (with g; [old-time regex-compat syb]));
in stdenv.mkDerivation rec {
pname = "bluespec";
version = "unstable-2020.02.09";
diff --git a/pkgs/development/compilers/flutter/default.nix b/pkgs/development/compilers/flutter/default.nix
index afc8fbd7f499..c58457b71a41 100644
--- a/pkgs/development/compilers/flutter/default.nix
+++ b/pkgs/development/compilers/flutter/default.nix
@@ -6,26 +6,28 @@ let
let files = builtins.attrNames (builtins.readDir dir);
in map (f: dir + ("/" + f)) files;
in {
- stable = mkFlutter {
+ stable = mkFlutter rec {
pname = "flutter";
channel = "stable";
- version = "1.12.13+hotfix.9";
- sha256Hash = "1ql3zvmmk5zk47y30lajxaam04q6vr373dayq15jv4vpc0fzif1y";
+ version = "1.17.5";
+ filename = "flutter_linux_${version}-${channel}.tar.xz";
+ sha256Hash = "0kapja3nh7dfhjbn2np02wghijrjnpzsv4hz10fj54hs8hdx19di";
patches = getPatches ./patches/stable;
};
- beta = mkFlutter {
+ beta = mkFlutter rec {
pname = "flutter-beta";
channel = "beta";
- version = "1.15.17";
- sha256Hash = "0iil6y6y477dhjgzx54ab5m9nj0jg4xl8x4zzd9iwh8m756r7qsd";
+ version = "1.20.0-7.2.pre";
+ filename = "flutter_linux_${version}-${channel}.tar.xz";
+ sha256Hash = "0w89ig5vi4spa95mf08r4vvwni7bzzdlyhvr9sy1a35qmf7j9s6f";
patches = getPatches ./patches/beta;
};
dev = mkFlutter rec {
pname = "flutter-dev";
channel = "dev";
- version = "1.17.0-dev.5.0";
+ version = "1.21.0-1.0.pre";
filename = "flutter_linux_${version}-${channel}.tar.xz";
- sha256Hash = "0ks2jf2bd42y2jsc91p33r57q7j3m94d8ihkmlxzwi53x1mwp0pk";
+ sha256Hash = "14rx89jp6ivk3ai7iwbznkr5q445ndh8fppzbxg520kq10s2208r";
patches = getPatches ./patches/beta;
};
}
diff --git a/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch b/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
index 42c09c805cb5..cd01577cc10f 100644
--- a/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
+++ b/pkgs/development/compilers/flutter/patches/beta/disable-auto-update.patch
@@ -1,24 +1,24 @@
-diff --git a/bin/flutter b/bin/flutter
-index e0c18e235..2c3fb7ddd 100755
---- a/bin/flutter
-+++ b/bin/flutter
-@@ -185,8 +185,6 @@ fi
- # FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
- # FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
+diff --git a/bin/internal/shared.sh b/bin/internal/shared.sh
+index 702bd9ed5..4d4dc94c6 100755
+--- a/bin/internal/shared.sh
++++ b/bin/internal/shared.sh
+@@ -204,8 +204,6 @@ function shared::execute() {
+ # FLUTTER_TOOL_ARGS="--enable-asserts $FLUTTER_TOOL_ARGS"
+ # FLUTTER_TOOL_ARGS="$FLUTTER_TOOL_ARGS --observe=65432"
--(upgrade_flutter) 3< "$PROG_NAME"
+- upgrade_flutter 7< "$PROG_NAME"
-
- # FLUTTER_TOOL_ARGS isn't quoted below, because it is meant to be considered as
- # separate space-separated args.
- "$DART" --packages="$FLUTTER_TOOLS_DIR/.packages" $FLUTTER_TOOL_ARGS "$SNAPSHOT_PATH" "$@"
+ BIN_NAME="$(basename "$PROG_NAME")"
+ case "$BIN_NAME" in
+ flutter*)
diff --git a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-index 99455ae64..f5b0cb59c 100644
+index 21be933e1..2ea73c4c0 100644
--- a/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
+++ b/packages/flutter_tools/lib/src/runner/flutter_command_runner.dart
-@@ -301,13 +301,6 @@ class FlutterCommandRunner extends CommandRunner {
+@@ -294,13 +294,6 @@ class FlutterCommandRunner extends CommandRunner {
+ globals.flutterUsage.suppressAnalytics = true;
}
- _checkFlutterCopy();
- try {
- await globals.flutterVersion.ensureVersionFile();
- } on FileSystemException catch (e) {
diff --git a/pkgs/development/compilers/flutter/patches/beta/move-cache.patch b/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
index 4672d4c625d0..64950d4476ef 100644
--- a/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
+++ b/pkgs/development/compilers/flutter/patches/beta/move-cache.patch
@@ -1,5 +1,5 @@
diff --git a/dev/devicelab/lib/framework/runner.dart b/dev/devicelab/lib/framework/runner.dart
-index 8e511eefd..fbc7d6ac3 100644
+index 8e511eefd..fef3cca8b 100644
--- a/dev/devicelab/lib/framework/runner.dart
+++ b/dev/devicelab/lib/framework/runner.dart
@@ -126,7 +126,7 @@ Future cleanupSystem() async {
@@ -12,31 +12,31 @@ index 8e511eefd..fbc7d6ac3 100644
if (!Platform.isWindows) {
await exec(
diff --git a/packages/flutter_tools/lib/src/asset.dart b/packages/flutter_tools/lib/src/asset.dart
-index 79b06949f..9040ba0a8 100644
+index c680de599..480abfb77 100644
--- a/packages/flutter_tools/lib/src/asset.dart
+++ b/packages/flutter_tools/lib/src/asset.dart
-@@ -6,6 +6,7 @@ import 'dart:async';
-
+@@ -8,6 +8,7 @@ import 'package:meta/meta.dart';
+ import 'package:package_config/package_config.dart';
import 'package:yaml/yaml.dart';
+import 'base/common.dart';
import 'base/context.dart';
import 'base/file_system.dart';
import 'base/utils.dart';
-@@ -325,7 +326,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
- for (final Map font in family['fonts']) {
+@@ -392,7 +393,7 @@ List<_Asset> _getMaterialAssets(String fontSet) {
+ for (final Map font in (family['fonts'] as List).cast