diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index c2ec7c3c149b..cb2ea80b3dd2 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -2445,6 +2445,12 @@ githubId = 8404455; name = "Diego Lelis"; }; + diogox = { + name = "Diogo Xavier"; + email = "13244408+diogox@users.noreply.github.com"; + github = "diogox"; + githubId = 13244408; + }; dipinhora = { email = "dipinhora+github@gmail.com"; github = "dipinhora"; @@ -4747,6 +4753,12 @@ githubId = 1102396; name = "Jussi Maki"; }; + joaquinito2051 = { + email = "joaquinito2051@gmail.com"; + github = "heroku-miraheze"; + githubId = 61781343; + name = "Joaquín Rufo Gutierrez"; + }; jobojeha = { email = "jobojeha@jeppener.de"; github = "jobojeha"; diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml index 7cfeeb6f1a69..dab4a261deb9 100644 --- a/nixos/doc/manual/release-notes/rl-2105.xml +++ b/nixos/doc/manual/release-notes/rl-2105.xml @@ -710,6 +710,11 @@ environment.systemPackages = [ now follows RFC 0042. + + + The yadm dotfile manager has been updated from 2.x to 3.x, which has new (XDG) default locations for some data/state files. Most yadm commands will fail and print a legacy path warning (which describes how to upgrade/migrate your repository). If you have scripts, daemons, scheduled jobs, shell profiles, etc. that invoke yadm, expect them to fail or misbehave until you perform this migration and prepare accordingly. + + @@ -1012,6 +1017,24 @@ environment.systemPackages = [ PostgreSQL 9.5 is scheduled EOL during the 21.05 life cycle and has been removed. + + + Xfce4 relies on + GIO/GVfs for userspace virtual filesystem access in applications + like thunar and + gigolo. + For that to work, the gvfs nixos service is enabled by default, + and it can be configured with the specific package that provides + GVfs. Until now Xfce4 was setting it to use a lighter version of + GVfs (without support for samba). To avoid conflicts with other + desktop environments this setting has been dropped. Users that + still want it should add the following to their system + configuration: + + = pkgs.gvfs.override { samba = null; }; + + + diff --git a/nixos/lib/testing-python.nix b/nixos/lib/testing-python.nix index c7e45f55ce12..cbe90ff4cbfc 100644 --- a/nixos/lib/testing-python.nix +++ b/nixos/lib/testing-python.nix @@ -55,7 +55,7 @@ rec { # Run an automated test suite in the given virtual network. # `driver' is the script that runs the network. - runTests = driver: + runTests = { driver, pos }: stdenv.mkDerivation { name = "vm-test-run-${driver.testName}"; @@ -69,6 +69,8 @@ rec { ''; passthru = driver.passthru; + + inherit pos; }; @@ -79,6 +81,11 @@ rec { # Skip linting (mainly intended for faster dev cycles) , skipLint ? false , passthru ? {} + , # For meta.position + pos ? # position used in error messages and for meta.position + (if t.meta.description or null != null + then builtins.unsafeGetAttrPos "description" t.meta + else builtins.unsafeGetAttrPos "testScript" t) , ... } @ t: let @@ -174,7 +181,7 @@ rec { driver = mkDriver null; driverInteractive = mkDriver pkgs.qemu; - test = passMeta (runTests driver); + test = passMeta (runTests { inherit driver pos; }); nodeNames = builtins.attrNames driver.nodes; invalidNodeNames = lib.filter diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix index 9bd8e4caa0e5..55ecb893b408 100644 --- a/nixos/modules/module-list.nix +++ b/nixos/modules/module-list.nix @@ -976,6 +976,7 @@ ./services/web-servers/shellinabox.nix ./services/web-servers/tomcat.nix ./services/web-servers/traefik.nix + ./services/web-servers/trafficserver.nix ./services/web-servers/ttyd.nix ./services/web-servers/uwsgi.nix ./services/web-servers/varnish/default.nix diff --git a/nixos/modules/services/databases/cassandra.nix b/nixos/modules/services/databases/cassandra.nix index d55a7db39150..820be5085de9 100644 --- a/nixos/modules/services/databases/cassandra.nix +++ b/nixos/modules/services/databases/cassandra.nix @@ -1,79 +1,108 @@ { config, lib, pkgs, ... }: -with lib; - let + inherit (lib) + concatStringsSep + flip + literalExample + optionalAttrs + optionals + recursiveUpdate + mkEnableOption + mkIf + mkOption + types + versionAtLeast + ; + cfg = config.services.cassandra; + defaultUser = "cassandra"; - cassandraConfig = flip recursiveUpdate cfg.extraConfig - ({ commitlog_sync = "batch"; - commitlog_sync_batch_window_in_ms = 2; - start_native_transport = cfg.allowClients; - cluster_name = cfg.clusterName; - partitioner = "org.apache.cassandra.dht.Murmur3Partitioner"; - endpoint_snitch = "SimpleSnitch"; - data_file_directories = [ "${cfg.homeDir}/data" ]; - commitlog_directory = "${cfg.homeDir}/commitlog"; - saved_caches_directory = "${cfg.homeDir}/saved_caches"; - } // (lib.optionalAttrs (cfg.seedAddresses != []) { - seed_provider = [{ - class_name = "org.apache.cassandra.locator.SimpleSeedProvider"; - parameters = [ { seeds = concatStringsSep "," cfg.seedAddresses; } ]; - }]; - }) // (lib.optionalAttrs (lib.versionAtLeast cfg.package.version "3") { - hints_directory = "${cfg.homeDir}/hints"; - }) - ); - cassandraConfigWithAddresses = cassandraConfig // - ( if cfg.listenAddress == null - then { listen_interface = cfg.listenInterface; } - else { listen_address = cfg.listenAddress; } - ) // ( - if cfg.rpcAddress == null - then { rpc_interface = cfg.rpcInterface; } - else { rpc_address = cfg.rpcAddress; } - ); - cassandraEtc = pkgs.stdenv.mkDerivation - { name = "cassandra-etc"; - cassandraYaml = builtins.toJSON cassandraConfigWithAddresses; - cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh"; - cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig; - passAsFile = [ "extraEnvSh" ]; - inherit (cfg) extraEnvSh; - buildCommand = '' - mkdir -p "$out" - echo "$cassandraYaml" > "$out/cassandra.yaml" - ln -s "$cassandraLogbackConfig" "$out/logback.xml" + cassandraConfig = flip recursiveUpdate cfg.extraConfig ( + { + commitlog_sync = "batch"; + commitlog_sync_batch_window_in_ms = 2; + start_native_transport = cfg.allowClients; + cluster_name = cfg.clusterName; + partitioner = "org.apache.cassandra.dht.Murmur3Partitioner"; + endpoint_snitch = "SimpleSnitch"; + data_file_directories = [ "${cfg.homeDir}/data" ]; + commitlog_directory = "${cfg.homeDir}/commitlog"; + saved_caches_directory = "${cfg.homeDir}/saved_caches"; + } // optionalAttrs (cfg.seedAddresses != [ ]) { + seed_provider = [ + { + class_name = "org.apache.cassandra.locator.SimpleSeedProvider"; + parameters = [{ seeds = concatStringsSep "," cfg.seedAddresses; }]; + } + ]; + } // optionalAttrs (versionAtLeast cfg.package.version "3") { + hints_directory = "${cfg.homeDir}/hints"; + } + ); - ( cat "$cassandraEnvPkg" - echo "# lines from services.cassandra.extraEnvSh: " - cat "$extraEnvShPath" - ) > "$out/cassandra-env.sh" + cassandraConfigWithAddresses = cassandraConfig // ( + if cfg.listenAddress == null + then { listen_interface = cfg.listenInterface; } + else { listen_address = cfg.listenAddress; } + ) // ( + if cfg.rpcAddress == null + then { rpc_interface = cfg.rpcInterface; } + else { rpc_address = cfg.rpcAddress; } + ); - # Delete default JMX Port, otherwise we can't set it using env variable - sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh" + cassandraEtc = pkgs.stdenv.mkDerivation { + name = "cassandra-etc"; - # Delete default password file - sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh" - ''; - }; - defaultJmxRolesFile = builtins.foldl' - (left: right: left + right) "" - (map (role: "${role.username} ${role.password}") cfg.jmxRoles); - fullJvmOptions = cfg.jvmOpts - ++ lib.optionals (cfg.jmxRoles != []) [ + cassandraYaml = builtins.toJSON cassandraConfigWithAddresses; + cassandraEnvPkg = "${cfg.package}/conf/cassandra-env.sh"; + cassandraLogbackConfig = pkgs.writeText "logback.xml" cfg.logbackConfig; + + passAsFile = [ "extraEnvSh" ]; + inherit (cfg) extraEnvSh; + + buildCommand = '' + mkdir -p "$out" + + echo "$cassandraYaml" > "$out/cassandra.yaml" + ln -s "$cassandraLogbackConfig" "$out/logback.xml" + + ( cat "$cassandraEnvPkg" + echo "# lines from services.cassandra.extraEnvSh: " + cat "$extraEnvShPath" + ) > "$out/cassandra-env.sh" + + # Delete default JMX Port, otherwise we can't set it using env variable + sed -i '/JMX_PORT="7199"/d' "$out/cassandra-env.sh" + + # Delete default password file + sed -i '/-Dcom.sun.management.jmxremote.password.file=\/etc\/cassandra\/jmxremote.password/d' "$out/cassandra-env.sh" + ''; + }; + + defaultJmxRolesFile = + builtins.foldl' + (left: right: left + right) "" + (map (role: "${role.username} ${role.password}") cfg.jmxRoles); + + fullJvmOptions = + cfg.jvmOpts + ++ optionals (cfg.jmxRoles != [ ]) [ "-Dcom.sun.management.jmxremote.authenticate=true" "-Dcom.sun.management.jmxremote.password.file=${cfg.jmxRolesFile}" - ] - ++ lib.optionals cfg.remoteJmx [ + ] ++ optionals cfg.remoteJmx [ "-Djava.rmi.server.hostname=${cfg.rpcAddress}" ]; -in { + +in +{ options.services.cassandra = { + enable = mkEnableOption '' Apache Cassandra – Scalable and highly available database. ''; + clusterName = mkOption { type = types.str; default = "Test Cluster"; @@ -83,16 +112,19 @@ in { another. All nodes in a cluster must have the same value. ''; }; + user = mkOption { type = types.str; default = defaultUser; description = "Run Apache Cassandra under this user."; }; + group = mkOption { type = types.str; default = defaultUser; description = "Run Apache Cassandra under this group."; }; + homeDir = mkOption { type = types.path; default = "/var/lib/cassandra"; @@ -100,6 +132,7 @@ in { Home directory for Apache Cassandra. ''; }; + package = mkOption { type = types.package; default = pkgs.cassandra; @@ -109,17 +142,19 @@ in { The Apache Cassandra package to use. ''; }; + jvmOpts = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; description = '' Populate the JVM_OPT environment variable. ''; }; + listenAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; - example = literalExample "null"; + example = null; description = '' Address or interface to bind to and tell other Cassandra nodes to connect to. You _must_ change this if you want multiple @@ -136,6 +171,7 @@ in { Setting listen_address to 0.0.0.0 is always wrong. ''; }; + listenInterface = mkOption { type = types.nullOr types.str; default = null; @@ -146,10 +182,11 @@ in { supported. ''; }; + rpcAddress = mkOption { type = types.nullOr types.str; default = "127.0.0.1"; - example = literalExample "null"; + example = null; description = '' The address or interface to bind the native transport server to. @@ -167,6 +204,7 @@ in { internet. Firewall it if needed. ''; }; + rpcInterface = mkOption { type = types.nullOr types.str; default = null; @@ -176,6 +214,7 @@ in { correspond to a single address, IP aliasing is not supported. ''; }; + logbackConfig = mkOption { type = types.lines; default = '' @@ -197,6 +236,7 @@ in { XML logback configuration for cassandra ''; }; + seedAddresses = mkOption { type = types.listOf types.str; default = [ "127.0.0.1" ]; @@ -207,6 +247,7 @@ in { Set to 127.0.0.1 for a single node cluster. ''; }; + allowClients = mkOption { type = types.bool; default = true; @@ -219,16 +260,19 @@ in { extraConfig. ''; }; + extraConfig = mkOption { type = types.attrs; - default = {}; + default = { }; example = - { commitlog_sync_batch_window_in_ms = 3; + { + commitlog_sync_batch_window_in_ms = 3; }; description = '' Extra options to be merged into cassandra.yaml as nix attribute set. ''; }; + extraEnvSh = mkOption { type = types.lines; default = ""; @@ -237,48 +281,53 @@ in { Extra shell lines to be appended onto cassandra-env.sh. ''; }; + fullRepairInterval = mkOption { type = types.nullOr types.str; default = "3w"; - example = literalExample "null"; + example = null; description = '' - Set the interval how often full repairs are run, i.e. - nodetool repair --full is executed. See - https://cassandra.apache.org/doc/latest/operating/repair.html - for more information. + Set the interval how often full repairs are run, i.e. + nodetool repair --full is executed. See + https://cassandra.apache.org/doc/latest/operating/repair.html + for more information. - Set to null to disable full repairs. - ''; + Set to null to disable full repairs. + ''; }; + fullRepairOptions = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; example = [ "--partitioner-range" ]; description = '' - Options passed through to the full repair command. - ''; + Options passed through to the full repair command. + ''; }; + incrementalRepairInterval = mkOption { type = types.nullOr types.str; default = "3d"; - example = literalExample "null"; + example = null; description = '' - Set the interval how often incremental repairs are run, i.e. - nodetool repair is executed. See - https://cassandra.apache.org/doc/latest/operating/repair.html - for more information. + Set the interval how often incremental repairs are run, i.e. + nodetool repair is executed. See + https://cassandra.apache.org/doc/latest/operating/repair.html + for more information. - Set to null to disable incremental repairs. - ''; + Set to null to disable incremental repairs. + ''; }; + incrementalRepairOptions = mkOption { type = types.listOf types.str; - default = []; + default = [ ]; example = [ "--partitioner-range" ]; description = '' - Options passed through to the incremental repair command. - ''; + Options passed through to the incremental repair command. + ''; }; + maxHeapSize = mkOption { type = types.nullOr types.str; default = null; @@ -299,6 +348,7 @@ in { expensive GC will be (usually). ''; }; + heapNewSize = mkOption { type = types.nullOr types.str; default = null; @@ -322,6 +372,7 @@ in { 100 MB per physical CPU core. ''; }; + mallocArenaMax = mkOption { type = types.nullOr types.int; default = null; @@ -330,6 +381,7 @@ in { Set this to control the amount of arenas per-thread in glibc. ''; }; + remoteJmx = mkOption { type = types.bool; default = false; @@ -341,6 +393,7 @@ in { See: https://wiki.apache.org/cassandra/JmxSecurity ''; }; + jmxPort = mkOption { type = types.int; default = 7199; @@ -351,8 +404,9 @@ in { Firewall it if needed. ''; }; + jmxRoles = mkOption { - default = []; + default = [ ]; description = '' Roles that are allowed to access the JMX (e.g. nodetool) BEWARE: The passwords will be stored world readable in the nix-store. @@ -375,11 +429,13 @@ in { }; }); }; + jmxRolesFile = mkOption { type = types.nullOr types.path; - default = if (lib.versionAtLeast cfg.package.version "3.11") - then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile - else null; + default = + if versionAtLeast cfg.package.version "3.11" + then pkgs.writeText "jmx-roles-file" defaultJmxRolesFile + else null; example = "/var/lib/cassandra/jmx.password"; description = '' Specify your own jmx roles file. @@ -391,102 +447,115 @@ in { }; config = mkIf cfg.enable { - assertions = - [ { assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null); - message = "You have to set either listenAddress or listenInterface"; - } - { assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null); - message = "You have to set either rpcAddress or rpcInterface"; - } - { assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null); - message = "If you set either of maxHeapSize or heapNewSize you have to set both"; - } - { assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null; - message = '' - If you want JMX available remotely you need to set a password using - jmxRoles or jmxRolesFile if - using Cassandra older than v3.11. - ''; - } - ]; + assertions = [ + { + assertion = (cfg.listenAddress == null) != (cfg.listenInterface == null); + message = "You have to set either listenAddress or listenInterface"; + } + { + assertion = (cfg.rpcAddress == null) != (cfg.rpcInterface == null); + message = "You have to set either rpcAddress or rpcInterface"; + } + { + assertion = (cfg.maxHeapSize == null) == (cfg.heapNewSize == null); + message = "If you set either of maxHeapSize or heapNewSize you have to set both"; + } + { + assertion = cfg.remoteJmx -> cfg.jmxRolesFile != null; + message = '' + If you want JMX available remotely you need to set a password using + jmxRoles or jmxRolesFile if + using Cassandra older than v3.11. + ''; + } + ]; users = mkIf (cfg.user == defaultUser) { - extraUsers.${defaultUser} = - { group = cfg.group; - home = cfg.homeDir; - createHome = true; - uid = config.ids.uids.cassandra; - description = "Cassandra service user"; - }; - extraGroups.${defaultUser}.gid = config.ids.gids.cassandra; + users.${defaultUser} = { + group = cfg.group; + home = cfg.homeDir; + createHome = true; + uid = config.ids.uids.cassandra; + description = "Cassandra service user"; + }; + groups.${defaultUser}.gid = config.ids.gids.cassandra; }; - systemd.services.cassandra = - { description = "Apache Cassandra service"; - after = [ "network.target" ]; - environment = - { CASSANDRA_CONF = "${cassandraEtc}"; - JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions; - MAX_HEAP_SIZE = toString cfg.maxHeapSize; - HEAP_NEWSIZE = toString cfg.heapNewSize; - MALLOC_ARENA_MAX = toString cfg.mallocArenaMax; - LOCAL_JMX = if cfg.remoteJmx then "no" else "yes"; - JMX_PORT = toString cfg.jmxPort; - }; - wantedBy = [ "multi-user.target" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = "${cfg.package}/bin/cassandra -f"; - SuccessExitStatus = 143; - }; + systemd.services.cassandra = { + description = "Apache Cassandra service"; + after = [ "network.target" ]; + environment = { + CASSANDRA_CONF = "${cassandraEtc}"; + JVM_OPTS = builtins.concatStringsSep " " fullJvmOptions; + MAX_HEAP_SIZE = toString cfg.maxHeapSize; + HEAP_NEWSIZE = toString cfg.heapNewSize; + MALLOC_ARENA_MAX = toString cfg.mallocArenaMax; + LOCAL_JMX = if cfg.remoteJmx then "no" else "yes"; + JMX_PORT = toString cfg.jmxPort; }; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = "${cfg.package}/bin/cassandra -f"; + SuccessExitStatus = 143; + }; + }; - systemd.services.cassandra-full-repair = - { description = "Perform a full repair on this Cassandra node"; - after = [ "cassandra.service" ]; - requires = [ "cassandra.service" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = - lib.concatStringsSep " " - ([ "${cfg.package}/bin/nodetool" "repair" "--full" - ] ++ cfg.fullRepairOptions); - }; + systemd.services.cassandra-full-repair = { + description = "Perform a full repair on this Cassandra node"; + after = [ "cassandra.service" ]; + requires = [ "cassandra.service" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = + concatStringsSep " " + ([ + "${cfg.package}/bin/nodetool" + "repair" + "--full" + ] ++ cfg.fullRepairOptions); }; + }; + systemd.timers.cassandra-full-repair = mkIf (cfg.fullRepairInterval != null) { description = "Schedule full repairs on Cassandra"; wantedBy = [ "timers.target" ]; - timerConfig = - { OnBootSec = cfg.fullRepairInterval; - OnUnitActiveSec = cfg.fullRepairInterval; - Persistent = true; - }; + timerConfig = { + OnBootSec = cfg.fullRepairInterval; + OnUnitActiveSec = cfg.fullRepairInterval; + Persistent = true; + }; }; - systemd.services.cassandra-incremental-repair = - { description = "Perform an incremental repair on this cassandra node."; - after = [ "cassandra.service" ]; - requires = [ "cassandra.service" ]; - serviceConfig = - { User = cfg.user; - Group = cfg.group; - ExecStart = - lib.concatStringsSep " " - ([ "${cfg.package}/bin/nodetool" "repair" - ] ++ cfg.incrementalRepairOptions); - }; + systemd.services.cassandra-incremental-repair = { + description = "Perform an incremental repair on this cassandra node."; + after = [ "cassandra.service" ]; + requires = [ "cassandra.service" ]; + serviceConfig = { + User = cfg.user; + Group = cfg.group; + ExecStart = + concatStringsSep " " + ([ + "${cfg.package}/bin/nodetool" + "repair" + ] ++ cfg.incrementalRepairOptions); }; + }; + systemd.timers.cassandra-incremental-repair = mkIf (cfg.incrementalRepairInterval != null) { description = "Schedule incremental repairs on Cassandra"; wantedBy = [ "timers.target" ]; - timerConfig = - { OnBootSec = cfg.incrementalRepairInterval; - OnUnitActiveSec = cfg.incrementalRepairInterval; - Persistent = true; - }; + timerConfig = { + OnBootSec = cfg.incrementalRepairInterval; + OnUnitActiveSec = cfg.incrementalRepairInterval; + Persistent = true; + }; }; }; + + meta.maintainers = with lib.maintainers; [ roberth ]; } diff --git a/nixos/modules/services/networking/babeld.nix b/nixos/modules/services/networking/babeld.nix index 97dca002a007..5e14283179ac 100644 --- a/nixos/modules/services/networking/babeld.nix +++ b/nixos/modules/services/networking/babeld.nix @@ -32,6 +32,8 @@ in { + meta.maintainers = with maintainers; [ hexa ]; + ###### interface options = { diff --git a/nixos/modules/services/web-servers/trafficserver.nix b/nixos/modules/services/web-servers/trafficserver.nix new file mode 100644 index 000000000000..db0e2ac0bd05 --- /dev/null +++ b/nixos/modules/services/web-servers/trafficserver.nix @@ -0,0 +1,318 @@ +{ config, lib, pkgs, ... }: + +with lib; + +let + cfg = config.services.trafficserver; + user = config.users.users.trafficserver.name; + group = config.users.groups.trafficserver.name; + + getManualUrl = name: "https://docs.trafficserver.apache.org/en/latest/admin-guide/files/${name}.en.html"; + getConfPath = name: "${pkgs.trafficserver}/etc/trafficserver/${name}"; + + yaml = pkgs.formats.yaml { }; + + fromYAML = f: + let + jsonFile = pkgs.runCommand "in.json" + { + nativeBuildInputs = [ pkgs.remarshal ]; + } '' + yaml2json < "${f}" > "$out" + ''; + in + builtins.fromJSON (builtins.readFile jsonFile); + + mkYamlConf = name: cfg: + if cfg != null then { + "trafficserver/${name}.yaml".source = yaml.generate "${name}.yaml" cfg; + } else { + "trafficserver/${name}.yaml".text = ""; + }; + + mkRecordLines = path: value: + if isAttrs value then + lib.mapAttrsToList (n: v: mkRecordLines (path ++ [ n ]) v) value + else if isInt value then + "CONFIG ${concatStringsSep "." path} INT ${toString value}" + else if isFloat value then + "CONFIG ${concatStringsSep "." path} FLOAT ${toString value}" + else + "CONFIG ${concatStringsSep "." path} STRING ${toString value}"; + + mkRecordsConfig = cfg: concatStringsSep "\n" (flatten (mkRecordLines [ ] cfg)); + mkPluginConfig = cfg: concatStringsSep "\n" (map (p: "${p.path} ${p.arg}") cfg); +in +{ + options.services.trafficserver = { + enable = mkEnableOption "Apache Traffic Server"; + + cache = mkOption { + type = types.lines; + default = ""; + example = "dest_domain=example.com suffix=js action=never-cache"; + description = '' + Caching rules that overrule the origin's caching policy. + + Consult the upstream + documentation for more details. + ''; + }; + + hosting = mkOption { + type = types.lines; + default = ""; + example = "domain=example.com volume=1"; + description = '' + Partition the cache according to origin server or domain + + Consult the + upstream documentation for more details. + ''; + }; + + ipAllow = mkOption { + type = types.nullOr yaml.type; + default = fromYAML (getConfPath "ip_allow.yaml"); + defaultText = "upstream defaults"; + example = literalExample { + ip_allow = [{ + apply = "in"; + ip_addrs = "127.0.0.1"; + action = "allow"; + methods = "ALL"; + }]; + }; + description = '' + Control client access to Traffic Server and Traffic Server connections + to upstream servers. + + Consult the upstream + documentation for more details. + ''; + }; + + logging = mkOption { + type = types.nullOr yaml.type; + default = fromYAML (getConfPath "logging.yaml"); + defaultText = "upstream defaults"; + example = literalExample { }; + description = '' + Configure logs. + + Consult the upstream + documentation for more details. + ''; + }; + + parent = mkOption { + type = types.lines; + default = ""; + example = '' + dest_domain=. method=get parent="p1.example:8080; p2.example:8080" round_robin=true + ''; + description = '' + Identify the parent proxies used in an cache hierarchy. + + Consult the upstream + documentation for more details. + ''; + }; + + plugins = mkOption { + default = [ ]; + + description = '' + Controls run-time loadable plugins available to Traffic Server, as + well as their configuration. + + Consult the upstream + documentation for more details. + ''; + + type = with types; + listOf (submodule { + options.path = mkOption { + type = str; + example = "xdebug.so"; + description = '' + Path to plugin. The path can either be absolute, or relative to + the plugin directory. + ''; + }; + options.arg = mkOption { + type = str; + default = ""; + example = "--header=ATS-My-Debug"; + description = "arguments to pass to the plugin"; + }; + }); + }; + + records = mkOption { + type = with types; + let valueType = (attrsOf (oneOf [ int float str valueType ])) // { + description = "Traffic Server records value"; + }; + in + valueType; + default = { }; + example = literalExample { proxy.config.proxy_name = "my_server"; }; + description = '' + List of configurable variables used by Traffic Server. + + Consult the + upstream documentation for more details. + ''; + }; + + remap = mkOption { + type = types.lines; + default = ""; + example = "map http://from.example http://origin.example"; + description = '' + URL remapping rules used by Traffic Server. + + Consult the + upstream documentation for more details. + ''; + }; + + splitDns = mkOption { + type = types.lines; + default = ""; + example = '' + dest_domain=internal.corp.example named="255.255.255.255:212 255.255.255.254" def_domain=corp.example search_list="corp.example corp1.example" + dest_domain=!internal.corp.example named=255.255.255.253 + ''; + description = '' + Specify the DNS server that Traffic Server should use under specific + conditions. + + Consult the + upstream documentation for more details. + ''; + }; + + sslMulticert = mkOption { + type = types.lines; + default = ""; + example = "dest_ip=* ssl_cert_name=default.pem"; + description = '' + Configure SSL server certificates to terminate the SSL sessions. + + Consult the + upstream documentation for more details. + ''; + }; + + sni = mkOption { + type = types.nullOr yaml.type; + default = null; + example = literalExample { + sni = [{ + fqdn = "no-http2.example.com"; + https = "off"; + }]; + }; + description = '' + Configure aspects of TLS connection handling for both inbound and + outbound connections. + + Consult the upstream + documentation for more details. + ''; + }; + + storage = mkOption { + type = types.lines; + default = "/var/cache/trafficserver 256M"; + example = "/dev/disk/by-id/XXXXX volume=1"; + description = '' + List all the storage that make up the Traffic Server cache. + + Consult the + upstream documentation for more details. + ''; + }; + + strategies = mkOption { + type = types.nullOr yaml.type; + default = null; + description = '' + Specify the next hop proxies used in an cache hierarchy and the + algorithms used to select the next proxy. + + Consult the + upstream documentation for more details. + ''; + }; + + volume = mkOption { + type = types.nullOr yaml.type; + default = ""; + example = "volume=1 scheme=http size=20%"; + description = '' + Manage cache space more efficiently and restrict disk usage by + creating cache volumes of different sizes. + + Consult the + upstream documentation for more details. + ''; + }; + }; + + config = mkIf cfg.enable { + environment.etc = { + "trafficserver/cache.config".text = cfg.cache; + "trafficserver/hosting.config".text = cfg.hosting; + "trafficserver/parent.config".text = cfg.parent; + "trafficserver/plugin.config".text = mkPluginConfig cfg.plugins; + "trafficserver/records.config".text = mkRecordsConfig cfg.records; + "trafficserver/remap.config".text = cfg.remap; + "trafficserver/splitdns.config".text = cfg.splitDns; + "trafficserver/ssl_multicert.config".text = cfg.sslMulticert; + "trafficserver/storage.config".text = cfg.storage; + "trafficserver/volume.config".text = cfg.volume; + } // (mkYamlConf "ip_allow" cfg.ipAllow) + // (mkYamlConf "logging" cfg.logging) + // (mkYamlConf "sni" cfg.sni) + // (mkYamlConf "strategies" cfg.strategies); + + environment.systemPackages = [ pkgs.trafficserver ]; + systemd.packages = [ pkgs.trafficserver ]; + + # Traffic Server does privilege handling independently of systemd, and + # therefore should be started as root + systemd.services.trafficserver = { + enable = true; + wantedBy = [ "multi-user.target" ]; + }; + + # These directories can't be created by systemd because: + # + # 1. Traffic Servers starts as root and switches to an unprivileged user + # afterwards. The runtime directories defined below are assumed to be + # owned by that user. + # 2. The bin/trafficserver script assumes these directories exist. + systemd.tmpfiles.rules = [ + "d '/run/trafficserver' - ${user} ${group} - -" + "d '/var/cache/trafficserver' - ${user} ${group} - -" + "d '/var/lib/trafficserver' - ${user} ${group} - -" + "d '/var/log/trafficserver' - ${user} ${group} - -" + ]; + + services.trafficserver = { + records.proxy.config.admin.user_id = user; + records.proxy.config.body_factory.template_sets_dir = + "${pkgs.trafficserver}/etc/trafficserver/body_factory"; + }; + + users.users.trafficserver = { + description = "Apache Traffic Server"; + isSystemUser = true; + inherit group; + }; + users.groups.trafficserver = { }; + }; +} diff --git a/nixos/modules/services/x11/desktop-managers/xfce.nix b/nixos/modules/services/x11/desktop-managers/xfce.nix index fc7f7bea4e44..7d2856939c80 100644 --- a/nixos/modules/services/x11/desktop-managers/xfce.nix +++ b/nixos/modules/services/x11/desktop-managers/xfce.nix @@ -151,7 +151,6 @@ in services.upower.enable = config.powerManagement.enable; services.gnome3.glib-networking.enable = true; services.gvfs.enable = true; - services.gvfs.package = pkgs.xfce.gvfs; services.tumbler.enable = true; services.system-config-printer.enable = (mkIf config.services.printing.enable (mkDefault true)); services.xserver.libinput.enable = mkDefault true; # used in xfce4-settings-manager diff --git a/nixos/tests/all-tests.nix b/nixos/tests/all-tests.nix index 4f42f53c1e1b..cef95fff4a37 100644 --- a/nixos/tests/all-tests.nix +++ b/nixos/tests/all-tests.nix @@ -414,6 +414,7 @@ in # traefik test relies on docker-containers trac = handleTest ./trac.nix {}; traefik = handleTestOn ["x86_64-linux"] ./traefik.nix {}; + trafficserver = handleTest ./trafficserver.nix {}; transmission = handleTest ./transmission.nix {}; trezord = handleTest ./trezord.nix {}; trickster = handleTest ./trickster.nix {}; diff --git a/nixos/tests/custom-ca.nix b/nixos/tests/custom-ca.nix index 67f7b3ff1f16..31909188d3a7 100644 --- a/nixos/tests/custom-ca.nix +++ b/nixos/tests/custom-ca.nix @@ -92,13 +92,19 @@ in { onlySSL = true; sslCertificate = "${example-good-cert}/server.crt"; sslCertificateKey = "${example-good-cert}/server.key"; - locations."/".extraConfig = "return 200 'It works!';"; + locations."/".extraConfig = '' + add_header Content-Type text/plain; + return 200 'It works!'; + ''; }; services.nginx.virtualHosts."bad.example.com" = { onlySSL = true; sslCertificate = "${example-bad-cert}/server.crt"; sslCertificateKey = "${example-bad-cert}/server.key"; - locations."/".extraConfig = "return 200 'It does not work!';"; + locations."/".extraConfig = '' + add_header Content-Type text/plain; + return 200 'It does not work!'; + ''; }; environment.systemPackages = with pkgs; diff --git a/nixos/tests/trafficserver.nix b/nixos/tests/trafficserver.nix new file mode 100644 index 000000000000..3979a1b4a482 --- /dev/null +++ b/nixos/tests/trafficserver.nix @@ -0,0 +1,176 @@ +# verifies: +# 1. Traffic Server is able to start +# 2. Traffic Server spawns traffic_crashlog upon startup +# 3. Traffic Server proxies HTTP requests according to URL remapping rules +# in 'services.trafficserver.remap' +# 4. Traffic Server applies per-map settings specified with the conf_remap +# plugin +# 5. Traffic Server caches HTTP responses +# 6. Traffic Server processes HTTP PUSH requests +# 7. Traffic Server can load the healthchecks plugin +# 8. Traffic Server logs HTTP traffic as configured +# +# uses: +# - bin/traffic_manager +# - bin/traffic_server +# - bin/traffic_crashlog +# - bin/traffic_cache_tool +# - bin/traffic_ctl +# - bin/traffic_logcat +# - bin/traffic_logstats +# - bin/tspush +import ./make-test-python.nix ({ pkgs, ... }: { + name = "trafficserver"; + meta = with pkgs.lib.maintainers; { + maintainers = [ midchildan ]; + }; + + nodes = { + ats = { pkgs, lib, config, ... }: let + user = config.users.users.trafficserver.name; + group = config.users.groups.trafficserver.name; + healthchecks = pkgs.writeText "healthchecks.conf" '' + /status /tmp/ats.status text/plain 200 500 + ''; + in { + services.trafficserver.enable = true; + + services.trafficserver.records = { + proxy.config.http.server_ports = "80 80:ipv6"; + proxy.config.hostdb.host_file.path = "/etc/hosts"; + proxy.config.log.max_space_mb_headroom = 0; + proxy.config.http.push_method_enabled = 1; + + # check that cache storage is usable before accepting traffic + proxy.config.http.wait_for_cache = 2; + }; + + services.trafficserver.plugins = [ + { path = "healthchecks.so"; arg = toString healthchecks; } + { path = "xdebug.so"; } + ]; + + services.trafficserver.remap = '' + map http://httpbin.test http://httpbin + map http://pristine-host-hdr.test http://httpbin \ + @plugin=conf_remap.so \ + @pparam=proxy.config.url_remap.pristine_host_hdr=1 + map http://ats/tspush http://httpbin/cache \ + @plugin=conf_remap.so \ + @pparam=proxy.config.http.cache.required_headers=0 + ''; + + services.trafficserver.storage = '' + /dev/vdb volume=1 + ''; + + networking.firewall.allowedTCPPorts = [ 80 ]; + virtualisation.emptyDiskImages = [ 256 ]; + services.udev.extraRules = '' + KERNEL=="vdb", OWNER="${user}", GROUP="${group}" + ''; + }; + + httpbin = { pkgs, lib, ... }: let + python = pkgs.python3.withPackages + (ps: with ps; [ httpbin gunicorn gevent ]); + in { + systemd.services.httpbin = { + enable = true; + after = [ "network.target" ]; + wantedBy = [ "multi-user.target" ]; + serviceConfig = { + ExecStart = "${python}/bin/gunicorn -b 0.0.0.0:80 httpbin:app -k gevent"; + }; + }; + + networking.firewall.allowedTCPPorts = [ 80 ]; + }; + + client = { pkgs, lib, ... }: { + environment.systemPackages = with pkgs; [ curl ]; + }; + }; + + testScript = { nodes, ... }: let + sampleFile = pkgs.writeText "sample.txt" '' + It's the season of White Album. + ''; + in '' + import json + import re + + ats.wait_for_unit("trafficserver") + ats.wait_for_open_port(80) + httpbin.wait_for_unit("httpbin") + httpbin.wait_for_open_port(80) + + with subtest("Traffic Server is running"): + out = ats.succeed("traffic_ctl server status") + assert out.strip() == "Proxy -- on" + + with subtest("traffic_crashlog is running"): + ats.succeed("pgrep -f traffic_crashlog") + + with subtest("basic remapping works"): + out = client.succeed("curl -vv -H 'Host: httpbin.test' http://ats/headers") + assert json.loads(out)["headers"]["Host"] == "httpbin" + + with subtest("conf_remap plugin works"): + out = client.succeed( + "curl -vv -H 'Host: pristine-host-hdr.test' http://ats/headers" + ) + assert json.loads(out)["headers"]["Host"] == "pristine-host-hdr.test" + + with subtest("caching works"): + out = client.succeed( + "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null" + ) + assert "X-Cache: miss" in out + + out = client.succeed( + "curl -vv -D - -H 'Host: httpbin.test' -H 'X-Debug: X-Cache' http://ats/cache/60 -o /dev/null" + ) + assert "X-Cache: hit-fresh" in out + + with subtest("pushing to cache works"): + url = "http://ats/tspush" + + ats.succeed(f"echo {url} > /tmp/urls.txt") + out = ats.succeed( + f"tspush -f '${sampleFile}' -u {url}" + ) + assert "HTTP/1.0 201 Created" in out, "cache push failed" + + out = ats.succeed( + "traffic_cache_tool --spans /etc/trafficserver/storage.config find --input /tmp/urls.txt" + ) + assert "Span: /dev/vdb" in out, "cache not stored on disk" + + out = client.succeed(f"curl {url}").strip() + expected = ( + open("${sampleFile}").read().strip() + ) + assert out == expected, "cache content mismatch" + + with subtest("healthcheck plugin works"): + out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'") + assert out.strip() == "500" + + ats.succeed("touch /tmp/ats.status") + + out = client.succeed("curl -vv http://ats/status -o /dev/null -w '%{http_code}'") + assert out.strip() == "200" + + with subtest("logging works"): + access_log_path = "/var/log/trafficserver/squid.blog" + ats.wait_for_file(access_log_path) + + out = ats.succeed(f"traffic_logcat {access_log_path}").split("\n")[0] + expected = "^\S+ \S+ \S+ TCP_MISS/200 \S+ GET http://httpbin/headers - DIRECT/httpbin application/json$" + assert re.fullmatch(expected, out) is not None, "no matching logs" + + out = json.loads(ats.succeed(f"traffic_logstats -jf {access_log_path}")) + assert out["total"]["error.total"]["req"] == "0", "unexpected log stat" + ''; +}) diff --git a/pkgs/applications/audio/bucklespring/default.nix b/pkgs/applications/audio/bucklespring/default.nix new file mode 100644 index 000000000000..8b1432c5ae80 --- /dev/null +++ b/pkgs/applications/audio/bucklespring/default.nix @@ -0,0 +1,63 @@ +{ lib +, stdenv +, fetchFromGitHub + +, legacy ? false +, libinput + +, pkg-config +, makeWrapper + +, openal +, alure +, libXtst +, libX11 +}: + +let + inherit (lib) optionals; +in +stdenv.mkDerivation rec { + pname = "bucklespring"; + version = "unstable-2021-01-21"; + + src = fetchFromGitHub { + owner = "zevv"; + repo = pname; + rev = "d63100c4561dd7c57efe6440c12fa8d9e9604145"; + sha256 = "114dib4npb7r1z2zd1fwsx71xbf9r6psxqd7n7590cwz1w3r51mz"; + }; + + nativeBuildInputs = [ pkg-config makeWrapper ]; + + buildInputs = [ openal alure ] + ++ optionals (legacy) [ libXtst libX11 ] + ++ optionals (!legacy) [ libinput ]; + + makeFlags = optionals (!legacy) [ "libinput=1" ]; + + installPhase = '' + runHook preInstall + + mkdir -p $out/share/wav + cp -r $src/wav $out/share/. + install -D ./buckle.desktop $out/share/applications/buckle.desktop + install -D ./buckle $out/bin/buckle + wrapProgram $out/bin/buckle --add-flags "-p $out/share/wav" + + runHook postInstall + ''; + + meta = with lib; { + description = "Nostalgia bucklespring keyboard sound"; + longDescription = '' + When built with libinput (wayland or bare console), + users need to be in the input group to use this: + users.users.alice.extraGroups = [ "input" ]; + ''; + homepage = "https://github.com/zevv/bucklespring"; + license = licenses.gpl2Only; + platforms = platforms.unix; + maintainers = [ maintainers.evils ]; + }; +} diff --git a/pkgs/applications/editors/bluej/default.nix b/pkgs/applications/editors/bluej/default.nix index 9b28de9440fc..a34d6983b2f4 100644 --- a/pkgs/applications/editors/bluej/default.nix +++ b/pkgs/applications/editors/bluej/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "bluej"; - version = "5.0.0"; + version = "5.0.1"; src = fetchurl { # We use the deb here. First instinct might be to go for the "generic" JAR # download, but that is actually a graphical installer that is much harder # to unpack than the deb. url = "https://www.bluej.org/download/files/BlueJ-linux-${builtins.replaceStrings ["."] [""] version}.deb"; - sha256 = "sha256-U81FIf67Qm/86+hA9iUCHt61dxiZsTkkequlVjft6/0="; + sha256 = "sha256-KhNhJ2xsw1g2yemwP6NQmJvk4cxZAQQNPEUBuLso5qM="; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/graphics/foxotron/default.nix b/pkgs/applications/graphics/foxotron/default.nix index 71adfe0d2dba..d8862525030e 100644 --- a/pkgs/applications/graphics/foxotron/default.nix +++ b/pkgs/applications/graphics/foxotron/default.nix @@ -25,14 +25,14 @@ stdenv.mkDerivation rec { pname = "foxotron"; - version = "2021-03-12"; + version = "2021-04-19"; src = fetchFromGitHub { owner = "Gargaj"; repo = "Foxotron"; rev = version; fetchSubmodules = true; - sha256 = "1finvbs3pbfyvm525blwgwl5jci2zjxb1923i0cm8rmf7wasaapb"; + sha256 = "sha256-YTCnWHXBNqvJmhRqRQRFCVvBcqbjKzcc3AKVXS0jvno="; }; nativeBuildInputs = [ cmake pkg-config makeWrapper ]; @@ -67,7 +67,7 @@ stdenv.mkDerivation rec { Revision 2021 3D Graphics Competition. ''; homepage = "https://github.com/Gargaj/Foxotron"; - license = licenses.publicDomain; + license = licenses.unlicense; maintainers = with maintainers; [ OPNA2608 ]; platforms = platforms.all; }; diff --git a/pkgs/applications/misc/dbeaver/default.nix b/pkgs/applications/misc/dbeaver/default.nix index fa5240b5333a..234ed7410f9c 100644 --- a/pkgs/applications/misc/dbeaver/default.nix +++ b/pkgs/applications/misc/dbeaver/default.nix @@ -2,7 +2,6 @@ , stdenv , copyDesktopItems , fetchFromGitHub -, fetchpatch , makeDesktopItem , makeWrapper , fontconfig @@ -19,18 +18,18 @@ stdenv.mkDerivation rec { pname = "dbeaver-ce"; - version = "21.0.3"; # When updating also update fetchedMavenDeps.sha256 + version = "21.0.4"; # When updating also update fetchedMavenDeps.sha256 src = fetchFromGitHub { owner = "dbeaver"; repo = "dbeaver"; rev = version; - sha256 = "sha256-ItM8t+gqE0ccuuimfEMUddykl+xt2eZIBd3MbpreRwA="; + sha256 = "sha256-jV7Pe4MsLQnIrkDnlI2SrPzSjiDHM59GbMy4G7oeQK8="; }; fetchedMavenDeps = stdenv.mkDerivation { name = "dbeaver-${version}-maven-deps"; - inherit src patches; + inherit src; buildInputs = [ maven @@ -51,18 +50,9 @@ stdenv.mkDerivation rec { dontFixup = true; outputHashAlgo = "sha256"; outputHashMode = "recursive"; - outputHash = "sha256-rsK/B39ogNu5nC41OfyAsLiwBz4gWyH+8Fj7E6+rOng="; + outputHash = "sha256-RspJTWVM0ZpAz4yDeKsG7wSHZ//bi3SSV5c0gbsqZKY="; }; - patches = [ - # Fix eclipse-color-theme URL (https://github.com/dbeaver/dbeaver/pull/12133) - # After April 15, 2021 eclipse-color-theme.github.com no longer redirects to eclipse-color-theme.github.io - (fetchpatch { - url = "https://github.com/dbeaver/dbeaver/commit/65d65e2c2c711cc87fddcec425a6915aa80f4ced.patch"; - sha256 = "sha256-pxOcRYkV/5o+tHcRhHDZ1TmZSHMnKBmkNTVAlIf9nUE="; - }) - ]; - nativeBuildInputs = [ copyDesktopItems makeWrapper diff --git a/pkgs/applications/misc/googleearth-pro/default.nix b/pkgs/applications/misc/googleearth-pro/default.nix index e5192c9a73e5..e7cfe04da6e8 100644 --- a/pkgs/applications/misc/googleearth-pro/default.nix +++ b/pkgs/applications/misc/googleearth-pro/default.nix @@ -1,41 +1,54 @@ -{ lib, stdenv, fetchurl, glibc, libGLU, libGL, freetype, glib, libSM, libICE, libXi, libXv -, libXrender, libXrandr, libXfixes, libXcursor, libXinerama, libXext, libX11, libXcomposite -, libxcb, sqlite, zlib, fontconfig, dpkg, libproxy, libxml2, gst_all_1, dbus, makeWrapper }: +{ lib +, stdenv +, mkDerivation +, fetchurl +, ffmpeg_3 +, freetype +, gdal_2 +, glib +, libGL +, libGLU +, libICE +, libSM +, libXi +, libXv +, libav_12 +, libXrender +, libXrandr +, libXfixes +, libXcursor +, libXinerama +, libXext +, libX11 +, libXcomposite + +, libxcb +, sqlite +, zlib +, fontconfig +, dpkg +, libproxy +, libxml2 +, gst_all_1 +, dbus +, makeWrapper + +, qtlocation +, qtwebkit +, qtx11extras +, qtsensors +, qtscript + +, xkeyboardconfig +, autoPatchelfHook +}: let arch = if stdenv.hostPlatform.system == "x86_64-linux" then "amd64" else throw "Unsupported system ${stdenv.hostPlatform.system} "; - fullPath = lib.makeLibraryPath [ - glibc - glib - stdenv.cc.cc - libSM - libICE - libXi - libXv - libGLU libGL - libXrender - libXrandr - libXfixes - libXcursor - libXinerama - libXcomposite - freetype - libXext - libX11 - libxcb - sqlite - zlib - fontconfig - libproxy - libxml2 - dbus - gst_all_1.gstreamer - gst_all_1.gst-plugins-base - ]; in -stdenv.mkDerivation rec { +mkDerivation rec { pname = "googleearth-pro"; version = "7.3.3.7786"; @@ -44,20 +57,56 @@ stdenv.mkDerivation rec { sha256 = "1s3cakwrgf702g33rh8qs657d8bl68wgg8k89rksgvswwpd2zbb3"; }; - nativeBuildInputs = [ dpkg makeWrapper ]; + nativeBuildInputs = [ dpkg makeWrapper autoPatchelfHook ]; + propagatedBuildInputs = [ xkeyboardconfig ]; + buildInputs = [ + dbus + ffmpeg_3 + fontconfig + freetype + gdal_2 + glib + gst_all_1.gst-plugins-base + gst_all_1.gstreamer + libGL + libGLU + libICE + libSM + libX11 + libXcomposite + libXcursor + libXext + libXfixes + libXi + libXinerama + libXrandr + libXrender + libXv + libav_12 + libproxy + libxcb + libxml2 + qtlocation + qtscript + qtsensors + qtwebkit + qtx11extras + sqlite + zlib + ]; doInstallCheck = true; dontBuild = true; - dontPatchELF = true; - unpackPhase = '' # deb file contains a setuid binary, so 'dpkg -x' doesn't work here dpkg --fsys-tarfile ${src} | tar --extract ''; installPhase ='' + runHook preInstall + mkdir $out mv usr/* $out/ rmdir usr @@ -66,20 +115,9 @@ stdenv.mkDerivation rec { # patch and link googleearth binary ln -s $out/opt/google/earth/pro/googleearth-bin $out/bin/googleearth-pro - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${fullPath}:\$ORIGIN" \ - $out/opt/google/earth/pro/googleearth-bin # patch and link gpsbabel binary ln -s $out/opt/google/earth/pro/gpsbabel $out/bin/gpsbabel - patchelf --interpreter "$(cat $NIX_CC/nix-support/dynamic-linker)" \ - --set-rpath "${fullPath}:\$ORIGIN" \ - $out/opt/google/earth/pro/gpsbabel - - # patch libraries - for a in $out/opt/google/earth/pro/*.so* ; do - patchelf --set-rpath "${fullPath}:\$ORIGIN" $a - done # Add desktop config file and icons mkdir -p $out/share/{applications,icons/hicolor/{16x16,22x22,24x24,32x32,48x48,64x64,128x128,256x256}/apps,pixmaps} @@ -89,23 +127,37 @@ stdenv.mkDerivation rec { ln -s $out/opt/google/earth/pro/product_logo_"$size".png $out/share/icons/hicolor/"$size"x"$size"/apps/google-earth-pro.png done ln -s $out/opt/google/earth/pro/product_logo_256.png $out/share/pixmaps/google-earth-pro.png + + runHook postInstall ''; + postInstall = '' + find "$out/opt/google/earth/pro" -name "*.so.*" | \ + egrep -v 'libssl*|libcrypto*|libicu*' | \ + xargs rm + find "$out/opt/google/earth/pro" -name "*.so" | \ + egrep -v 'libgoogle*|libauth*|libbase*|libcommon*|libcommon_gui*|libcommon_platform*|libcommon_webbrowser*|libcomponentframework*|libgeobase*|libgeobaseutils*|libge_net*|libgdata*|libgoogleapi*|libmath*|libmoduleframework*|libmaps*|libport*|libprintmodule*|libprofile*|librender*|libreporting*|libsgutil*|libspatial*|libxsltransform*|libbase*|libport*|libport*|libbase*|libcomponentframework*|libIGCore*|libIGUtils*|libaction*|libapiloader*|libapiloader*|libIGCore*|libIGUtils*|libIGMath*|libfusioncommon*|libge_exif*|libaction*|libfusioncommon*|libapiloader*|liblayer*|libapiloader*|libIGAttrs*|libIGCore*|libIGGfx*|libIGMath*|libIGSg*|libIGUtils*|libwmsbase*|libwebbrowser*|libevllpro*|libalchemyext*|libge_cache*|libflightsim*|libnpgeinprocessplugin*|libmeasure*|libviewsync*|libcapture*|libtheme*|libgps*|libgisingest*|libsearchmodule*|libinput_plugin*|libnavigate*|libspnav*|libsearch*|libLeap*' | \ + xargs rm + ''; + + autoPatchelfIgnoreMissingDeps=true; + installCheckPhase = '' $out/bin/gpsbabel -V > /dev/null ''; # wayland is not supported by Qt included in binary package, so make sure it uses xcb - fixupPhase = '' - wrapProgram $out/bin/googleearth-pro --set QT_QPA_PLATFORM xcb + postFixup = '' + wrapProgram $out/bin/googleearth-pro \ + --set QT_QPA_PLATFORM xcb \ + --set QT_XKB_CONFIG_ROOT "${xkeyboardconfig}/share/X11/xkb" ''; - meta = with lib; { description = "A world sphere viewer"; - homepage = "https://earth.google.com"; + homepage = "https://www.google.com/earth/"; license = licenses.unfree; - maintainers = with maintainers; [ friedelino ]; + maintainers = with maintainers; [ friedelino shamilton ]; platforms = platforms.linux; }; } diff --git a/pkgs/applications/misc/metadata-cleaner/default.nix b/pkgs/applications/misc/metadata-cleaner/default.nix index b1b77a53ea00..6807e056152c 100644 --- a/pkgs/applications/misc/metadata-cleaner/default.nix +++ b/pkgs/applications/misc/metadata-cleaner/default.nix @@ -17,7 +17,7 @@ python3.pkgs.buildPythonApplication rec { pname = "metadata-cleaner"; - version = "1.0.4"; + version = "1.0.5"; format = "other"; @@ -25,7 +25,7 @@ python3.pkgs.buildPythonApplication rec { owner = "rmnvgr"; repo = "metadata-cleaner"; rev = "v${version}"; - sha256 = "sha256-F/xh4dFX7W50kFzpWpGKyMUhxOlDO3WDXBzXVsDViY8="; + sha256 = "sha256-9s9i703Svql1Nn1M1sFp3FOtLGjuxXi6YR6nsUJCkeg="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix index 9ab5b94251bd..979216b3ccd5 100644 --- a/pkgs/applications/networking/cluster/tektoncd-cli/default.nix +++ b/pkgs/applications/networking/cluster/tektoncd-cli/default.nix @@ -2,13 +2,13 @@ buildGoModule rec { pname = "tektoncd-cli"; - version = "0.17.2"; + version = "0.18.0"; src = fetchFromGitHub { owner = "tektoncd"; repo = "cli"; rev = "v${version}"; - sha256 = "sha256-7VG9OFt1yVt4st8EM1aiRqLCHwjSqib28GoamoJHHnM="; + sha256 = "sha256-vZxpfVMUl1EZwCuLlwmSKWrz86aTjWYlAIwO4b9ACqk="; }; vendorSha256 = null; @@ -24,6 +24,8 @@ buildGoModule rec { excludedPackages = "\\(third_party\\|cmd/docs\\)"; preCheck = '' + # Some tests try to write to the home dir + export HOME="$TMPDIR" # Change the golden files to match our desired version sed -i "s/dev/${version}/" pkg/cmd/version/testdata/TestGetVersions-*.golden ''; diff --git a/pkgs/applications/networking/instant-messengers/slack/default.nix b/pkgs/applications/networking/instant-messengers/slack/default.nix index 1775e45d4e6e..6269e5c3a97f 100644 --- a/pkgs/applications/networking/instant-messengers/slack/default.nix +++ b/pkgs/applications/networking/instant-messengers/slack/default.nix @@ -42,11 +42,11 @@ let pname = "slack"; - x86_64-darwin-version = "4.14.0"; - x86_64-darwin-sha256 = "0kpjsnriav6rcddjkz0z9arxjd09i6bw2krnmf3dc31my64nmxs6"; + x86_64-darwin-version = "4.15.0"; + x86_64-darwin-sha256 = "12mfha0f7nciszsv7fb0zk4y10p63mh7kaw8gbk3q2fmyp8aij6l"; - x86_64-linux-version = "4.14.0"; - x86_64-linux-sha256 = "0xy9i8ssjba62ca7lfan58rhwx69wkapfd0jzkaj95qhqnv019fg"; + x86_64-linux-version = "4.15.0"; + x86_64-linux-sha256 = "1xzp7ql4i3n3fqfwk0400hkg4xn0pi66sy5jzqn68z33zzf7raii"; version = { x86_64-darwin = x86_64-darwin-version; diff --git a/pkgs/applications/science/logic/lean/default.nix b/pkgs/applications/science/logic/lean/default.nix index 3a0b13d7d09c..aa7fe5ab9147 100644 --- a/pkgs/applications/science/logic/lean/default.nix +++ b/pkgs/applications/science/logic/lean/default.nix @@ -2,13 +2,13 @@ stdenv.mkDerivation rec { pname = "lean"; - version = "3.29.0"; + version = "3.30.0"; src = fetchFromGitHub { owner = "leanprover-community"; repo = "lean"; rev = "v${version}"; - sha256 = "sha256-f2Gp76c+4R+ww52f1AyVZqixpei1WZPwr7pfgxMMb9Q="; + sha256 = "sha256-gJhbkl19iilNyfCt2TfPmghYA3yCjg6kS+yk/x/k14Y="; }; nativeBuildInputs = [ cmake ]; diff --git a/pkgs/applications/version-management/redmine/Gemfile.lock b/pkgs/applications/version-management/redmine/Gemfile.lock index d3afc9de341a..7f3fc0650cf4 100644 --- a/pkgs/applications/version-management/redmine/Gemfile.lock +++ b/pkgs/applications/version-management/redmine/Gemfile.lock @@ -70,28 +70,28 @@ GEM globalid (0.4.2) activesupport (>= 4.2.0) htmlentities (4.3.4) - i18n (1.8.9) + i18n (1.8.10) concurrent-ruby (~> 1.0) - loofah (2.9.0) + loofah (2.9.1) crass (~> 1.0.2) nokogiri (>= 1.5.9) mail (2.7.1) mini_mime (>= 0.1.1) - marcel (1.0.0) + marcel (1.0.1) method_source (1.0.0) mini_magick (4.11.0) mini_mime (1.0.3) - mini_portile2 (2.5.0) + mini_portile2 (2.5.1) minitest (5.14.4) mocha (1.12.0) mysql2 (0.5.3) net-ldap (0.17.0) nio4r (2.5.7) - nokogiri (1.11.2) + nokogiri (1.11.3) mini_portile2 (~> 2.5.0) racc (~> 1.4) parallel (1.20.1) - parser (3.0.0.0) + parser (3.0.1.0) ast (~> 2.4.1) pg (1.2.3) public_suffix (4.0.6) @@ -138,7 +138,7 @@ GEM regexp_parser (1.8.2) request_store (1.5.0) rack (>= 1.4) - rexml (3.2.4) + rexml (3.2.5) roadie (4.0.0) css_parser (~> 1.4) nokogiri (~> 1.8) @@ -151,7 +151,7 @@ GEM chunky_png (~> 1.0) rqrcode_core (~> 0.2) rqrcode_core (0.2.0) - rubocop (1.12.0) + rubocop (1.12.1) parallel (~> 1.10) parser (>= 3.0.0.0) rainbow (>= 2.2.2, < 4.0) diff --git a/pkgs/applications/version-management/redmine/default.nix b/pkgs/applications/version-management/redmine/default.nix index e0559a9c48f9..7eca72ac5f00 100644 --- a/pkgs/applications/version-management/redmine/default.nix +++ b/pkgs/applications/version-management/redmine/default.nix @@ -1,7 +1,7 @@ { lib, stdenv, fetchurl, bundlerEnv, ruby, makeWrapper }: let - version = "4.2.0"; + version = "4.2.1"; rubyEnv = bundlerEnv { name = "redmine-env-${version}"; @@ -16,7 +16,7 @@ in src = fetchurl { url = "https://www.redmine.org/releases/${pname}-${version}.tar.gz"; - sha256 = "1r87gy73dclnvcz55vziv6kbgyck0v8jlzx1wwkak8mgh32n8n19"; + sha256 = "1d217fhyvncpwahwlinr3vc20vn7jijaxxk1i56gw72z8b1hjhdd"; }; nativeBuildInputs = [ makeWrapper ]; diff --git a/pkgs/applications/version-management/redmine/gemset.nix b/pkgs/applications/version-management/redmine/gemset.nix index b545c9d6a3e2..2d045a5f2926 100644 --- a/pkgs/applications/version-management/redmine/gemset.nix +++ b/pkgs/applications/version-management/redmine/gemset.nix @@ -269,10 +269,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "08p6b13p99j1rrcrw1l3v0kb9mxbsvy6nk31r8h4rnszdgzpga32"; + sha256 = "0g2fnag935zn2ggm5cn6k4s4xvv53v2givj1j90szmvavlpya96a"; type = "gem"; }; - version = "1.8.9"; + version = "1.8.10"; }; loofah = { dependencies = ["crass" "nokogiri"]; @@ -280,10 +280,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0bzwvxvilx7w1p3pg028ks38925y9i0xm870lm7s12w7598hiyck"; + sha256 = "1w9mbii8515p28xd4k72f3ab2g6xiyq15497ys5r8jn6m355lgi7"; type = "gem"; }; - version = "2.9.0"; + version = "2.9.1"; }; mail = { dependencies = ["mini_mime"]; @@ -301,10 +301,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1vhp6lifwvqs2b0a276lj61n86c1l7d1xiswjj2w23f54gl51mpk"; + sha256 = "0bp001p687nsa4a8sp3q1iv8pfhs24w7s3avychjp64sdkg6jxq3"; type = "gem"; }; - version = "1.0.0"; + version = "1.0.1"; }; method_source = { groups = ["default"]; @@ -341,10 +341,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1hdbpmamx8js53yk3h8cqy12kgv6ca06k0c9n3pxh6b6cjfs19x7"; + sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2"; type = "gem"; }; - version = "2.5.0"; + version = "2.5.1"; }; minitest = { groups = ["default" "test"]; @@ -410,10 +410,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "0b51df8fwadak075cvi17w0nch6qz1r66564qp29qwfj67j9qp0p"; + sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0"; type = "gem"; }; - version = "1.11.2"; + version = "1.11.3"; }; parallel = { groups = ["default" "test"]; @@ -431,10 +431,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1jixakyzmy0j5c1rb0fjrrdhgnyryvrr6vgcybs14jfw09akv5ml"; + sha256 = "04ri489irbbx6sbkclpgri7j7p99v2qib5g2i70xx5fay12ilny8"; type = "gem"; }; - version = "3.0.0.0"; + version = "3.0.1.0"; }; pg = { groups = ["default"]; @@ -638,10 +638,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1mkvkcw9fhpaizrhca0pdgjcrbns48rlz4g6lavl5gjjq3rk2sq3"; + sha256 = "08ximcyfjy94pm1rhcx04ny1vx2sk0x4y185gzn86yfsbzwkng53"; type = "gem"; }; - version = "3.2.4"; + version = "3.2.5"; }; roadie = { dependencies = ["css_parser" "nokogiri"]; @@ -712,10 +712,10 @@ platforms = []; source = { remotes = ["https://rubygems.org"]; - sha256 = "1i3y0h6awywx4rdmjdan908jmnyk589pndbjypxkfbkqvjx514fw"; + sha256 = "0hi2c3a6alya9yx07nirnjzlc0mvmidnx67874njp6wf7d5xqqr9"; type = "gem"; }; - version = "1.12.0"; + version = "1.12.1"; }; rubocop-ast = { dependencies = ["parser"]; diff --git a/pkgs/applications/virtualization/cloud-hypervisor/default.nix b/pkgs/applications/virtualization/cloud-hypervisor/default.nix index 5a12be3afa6c..d04c0230c97f 100644 --- a/pkgs/applications/virtualization/cloud-hypervisor/default.nix +++ b/pkgs/applications/virtualization/cloud-hypervisor/default.nix @@ -2,19 +2,19 @@ rustPlatform.buildRustPackage rec { pname = "cloud-hypervisor"; - version = "0.14.1"; + version = "15.0"; src = fetchFromGitHub { owner = "cloud-hypervisor"; repo = pname; rev = "v${version}"; - sha256 = "0pnfg6dzpz8v40cwg3dmlj52x8pblavv7mkczar814dwbk01y7vr"; + sha256 = "14s80vs7j5fxzl2a6k44fjlbk8i13lln28i37xaa6yk1q3d9jwic"; }; nativeBuildInputs = [ pkg-config ]; buildInputs = [ openssl ] ++ lib.optional stdenv.isAarch64 dtc; - cargoSha256 = "0dbjds40znly11i0ssfv66w82ynxp00ixw1349m5ln9i9ms94sr4"; + cargoSha256 = "02q4k7j1hyibsiwsbqa5bd4vr3fs1vngnnhqa4kzvih73bkagvk7"; meta = with lib; { homepage = "https://github.com/cloud-hypervisor/cloud-hypervisor"; diff --git a/pkgs/desktops/xfce/applications/gigolo/default.nix b/pkgs/desktops/xfce/applications/gigolo/default.nix index b9ff011f3be1..4b7c258ca593 100644 --- a/pkgs/desktops/xfce/applications/gigolo/default.nix +++ b/pkgs/desktops/xfce/applications/gigolo/default.nix @@ -1,4 +1,4 @@ -{ lib, mkXfceDerivation, gtk3, gvfs, glib }: +{ lib, mkXfceDerivation, gtk3, glib }: mkXfceDerivation { category = "apps"; @@ -8,12 +8,7 @@ mkXfceDerivation { sha256 = "8UDb4H3zxRKx2y+MRsozQoR3es0fs5ooR/5wBIE11bY="; - buildInputs = [ gtk3 glib gvfs ]; - - postPatch = '' - # exo-csource has been dropped from exo - substituteInPlace src/Makefile.am --replace exo-csource xdt-csource - ''; + buildInputs = [ gtk3 glib ]; meta = { description = "A frontend to easily manage connections to remote filesystems"; diff --git a/pkgs/desktops/xfce/core/thunar/default.nix b/pkgs/desktops/xfce/core/thunar/default.nix index cc94683ddde4..e220e29f3edc 100644 --- a/pkgs/desktops/xfce/core/thunar/default.nix +++ b/pkgs/desktops/xfce/core/thunar/default.nix @@ -12,7 +12,6 @@ , libxslt , xfconf , gobject-introspection -, gvfs , makeWrapper , symlinkJoin , thunarPlugins ? [] @@ -35,7 +34,6 @@ let unwrapped = mkXfceDerivation { exo gdk-pixbuf gtk3 - gvfs libX11 libgudev libnotify diff --git a/pkgs/desktops/xfce/default.nix b/pkgs/desktops/xfce/default.nix index 12f487f1784c..1b7877cd79da 100644 --- a/pkgs/desktops/xfce/default.nix +++ b/pkgs/desktops/xfce/default.nix @@ -15,9 +15,6 @@ lib.makeScope pkgs.newScope (self: with self; { automakeAddFlags = pkgs.makeSetupHook { } ./automakeAddFlags.sh; - # Samba is a rather heavy dependency - gvfs = pkgs.gvfs.override { samba = null; }; - #### CORE exo = callPackage ./core/exo { }; diff --git a/pkgs/development/libraries/cjose/default.nix b/pkgs/development/libraries/cjose/default.nix new file mode 100644 index 000000000000..57b5c6c1b8bf --- /dev/null +++ b/pkgs/development/libraries/cjose/default.nix @@ -0,0 +1,40 @@ +{ lib +, stdenv +, fetchFromGitHub +, autoreconfHook +, pkg-config +, doxygen +, check +, jansson +, openssl +}: + +stdenv.mkDerivation rec { + pname = "cjose"; + version = "0.6.1"; + + src = fetchFromGitHub { + owner = "cisco"; + repo = "cjose"; + rev = version; + sha256 = "1msyjwmylb5c7jc16ryx3xb9cdwx682ihsm0ni766y6dfwx8bkhp"; + }; + + nativeBuildInputs = [ autoreconfHook pkg-config doxygen ]; + buildInputs = [ jansson openssl ]; + checkInputs = [ check ]; + + configureFlags = [ + "--with-jansson=${jansson}" + "--with-openssl=${openssl.dev}" + ]; + + meta = with lib; { + homepage = "https://github.com/cisco/cjose"; + changelog = "https://github.com/cisco/cjose/blob/${version}/CHANGELOG.md"; + description = "C library for Javascript Object Signing and Encryption"; + license = licenses.mit; + maintainers = with maintainers; [ midchildan ]; + platforms = platforms.all; + }; +} diff --git a/pkgs/development/python-modules/autoit-ripper/default.nix b/pkgs/development/python-modules/autoit-ripper/default.nix new file mode 100644 index 000000000000..2276241d25e9 --- /dev/null +++ b/pkgs/development/python-modules/autoit-ripper/default.nix @@ -0,0 +1,36 @@ +{ lib +, buildPythonPackage +, fetchPypi +, lief +, pythonOlder +}: + +buildPythonPackage rec { + pname = "autoit-ripper"; + version = "1.0.1"; + disabled = pythonOlder "3.6"; + + src = fetchPypi { + inherit pname version; + sha256 = "0mbsrfa72n7y1vkm9jhwhn1z3k45jxrlgx58ia1l2bp6chnnn2zy"; + }; + + propagatedBuildInputs = [ + lief + ]; + + postPatch = '' + substituteInPlace requirements.txt --replace "lief==0.10.1" "lief>=0.10.1" + ''; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "autoit_ripper" ]; + + meta = with lib; { + description = "Python module to extract AutoIt scripts embedded in PE binaries"; + homepage = "https://github.com/nazywam/AutoIt-Ripper"; + license = with licenses; [ mit ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/beancount_docverif/default.nix b/pkgs/development/python-modules/beancount_docverif/default.nix index 0067716b6265..44ebb5d94f01 100644 --- a/pkgs/development/python-modules/beancount_docverif/default.nix +++ b/pkgs/development/python-modules/beancount_docverif/default.nix @@ -1,4 +1,5 @@ { lib, buildPythonPackage, fetchPypi, isPy3k +, setuptools-scm , beancount , pytest, sh }: @@ -14,6 +15,10 @@ buildPythonPackage rec { sha256 = "1kjc0axrxpvm828lqq5m2ikq0ls8xksbmm7312zw867gdx56x5aj"; }; + nativeBuildInputs = [ + setuptools-scm + ]; + propagatedBuildInputs = [ beancount ]; diff --git a/pkgs/development/python-modules/graphene/default.nix b/pkgs/development/python-modules/graphene/default.nix index 2839fc337cd8..be2cc808eb0d 100644 --- a/pkgs/development/python-modules/graphene/default.nix +++ b/pkgs/development/python-modules/graphene/default.nix @@ -11,6 +11,7 @@ , pytest-mock , pytz , snapshottest +, fetchpatch }: buildPythonPackage rec { @@ -24,6 +25,13 @@ buildPythonPackage rec { sha256 = "sha256-bVCCLPnV5F8PqLMg3GwcpwpGldrxsU+WryL6gj6y338="; }; + # Allow later aniso8601 releases + # https://github.com/graphql-python/graphene/pull/1331 + patches = [ (fetchpatch { + url = "https://github.com/graphql-python/graphene/commit/26b16f75b125e35eeb2274b7be503ec29f2e8a45.patch"; + sha256 = "qm96pNOoxPieEy1CFZpa2Mx010pY3QU/vRyuL0qO3Tk="; + }) ]; + propagatedBuildInputs = [ aniso8601 graphql-core diff --git a/pkgs/development/python-modules/karton-autoit-ripper/default.nix b/pkgs/development/python-modules/karton-autoit-ripper/default.nix new file mode 100644 index 000000000000..d1f79f42a2ab --- /dev/null +++ b/pkgs/development/python-modules/karton-autoit-ripper/default.nix @@ -0,0 +1,46 @@ +{ lib +, autoit-ripper +, buildPythonPackage +, fetchFromGitHub +, karton-core +, malduck +, regex +}: + +buildPythonPackage rec { + pname = "karton-autoit-ripper"; + version = "1.0.0"; + + src = fetchFromGitHub { + owner = "CERT-Polska"; + repo = pname; + rev = "v${version}"; + sha256 = "0vdsxkbjcr0inpcfjh45gl72ipzklkhgs06fdpkyy9y0cfx3zq7z"; + }; + + propagatedBuildInputs = [ + autoit-ripper + karton-core + malduck + regex + ]; + + postPatch = '' + substituteInPlace requirements.txt \ + --replace "autoit-ripper==1.0.0" "autoit-ripper" \ + --replace "karton.core==4.0.4" "karton-core" \ + --replace "malduck==3.1.0" "malduck>=3.1.0" \ + --replace "regex==2020.2.20" "regex>=2020.2.20" + ''; + + # Project has no tests + doCheck = false; + pythonImportsCheck = [ "karton.autoit_ripper" ]; + + meta = with lib; { + description = "AutoIt script ripper for Karton framework"; + homepage = "https://github.com/CERT-Polska/karton-autoit-ripper"; + license = with licenses; [ bsd3 ]; + maintainers = with maintainers; [ fab ]; + }; +} diff --git a/pkgs/development/python-modules/poppler-qt5/default.nix b/pkgs/development/python-modules/poppler-qt5/default.nix index 345f092a80fa..94d86f7b7133 100644 --- a/pkgs/development/python-modules/poppler-qt5/default.nix +++ b/pkgs/development/python-modules/poppler-qt5/default.nix @@ -1,44 +1,64 @@ -{ buildPythonPackage, fetchPypi, lib, sip, qtbase, pyqt5, poppler, pkg-config, fetchpatch -, substituteAll +{ stdenv +, lib +, buildPythonPackage +, isPy3k +, fetchPypi +, pythonPackages +, sip_5 +, qtbase +, qmake +, pyqt5 +, pyqt-builder +, poppler +, pkg-config +, fetchpatch }: buildPythonPackage rec { pname = "python-poppler-qt5"; - version = "0.24.2"; + version = "21.1.0"; + + disabled = !isPy3k; src = fetchPypi { inherit pname version; - sha256 = "0l69llw1fzwz8y90q0qp9q5pifbrqjjbwii7di54dwghw5fc6w1r"; + sha256 = "0b82gm4i75q5v19kfbq0h4y0b2vcwr2213zkhxh6l0h45kdndmxd"; }; patches = [ - (substituteAll { - src = ./poppler-include-dir.patch; - poppler_include_dir = "${poppler.dev}/include/poppler"; - }) + # Fix for https://github.com/frescobaldi/python-poppler-qt5/issues/43 (from PR #45) (fetchpatch { - url = "https://github.com/wbsoft/python-poppler-qt5/commit/faf4d1308f89560b0d849671226e3080dfc72e79.patch"; - sha256 = "18krhh6wzsnpxzlzv02nginb1vralla8ai24zqk10nc4mj6fkj86"; + url = "https://github.com/frescobaldi/python-poppler-qt5/commit/40e71ad88173d02648bceb2438bc0567e60dacd5.patch"; + sha256 = "0c93d0k7b1n2s2njl8g92x6vw3z96da1fczah9qx07x08iw8dzi5"; }) ]; - setupPyBuildFlags = [ - "--pyqt-sip-dir ${pyqt5}/share/sip/PyQt5" - "--qt-include-dir ${qtbase.dev}/include" - ]; + buildInputs = [ qtbase.dev poppler pyqt-builder ]; + nativeBuildInputs = [ pkg-config qmake sip_5 ]; + propagatedBuildInputs = [ pyqt5.dev ]; - buildInputs = [ qtbase.dev poppler ]; - nativeBuildInputs = [ pkg-config ]; - propagatedBuildInputs = [ sip pyqt5.dev ]; + format = "pyproject"; + dontConfigure = true; + + postPatch = '' + cat <> pyproject.toml + sip-include-dirs = ["${pyqt5}/share/sip/PyQt5"] + + [tool.sip.bindings.Poppler-Qt5] + include-dirs = ["${poppler.dev}/include/poppler"] + tags = ["${sip_5.platform_tag}"] + EOF + ''; # no tests, just bindings for `poppler_qt5` doCheck = false; + pythonImportsCheck = [ "popplerqt5" ]; dontWrapQtApps = true; meta = with lib; { - homepage = "https://github.com/wbsoft/python-poppler-qt5"; - license = licenses.gpl2; - maintainers = with maintainers; [ ]; + homepage = "https://github.com/frescobaldi/python-poppler-qt5"; + license = licenses.lgpl21Plus; + maintainers = with maintainers; [ eduardosm ]; }; } diff --git a/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch b/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch deleted file mode 100644 index 7106c1d6352c..000000000000 --- a/pkgs/development/python-modules/poppler-qt5/poppler-include-dir.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/setup.py b/setup.py -index 59a75b0..0a73268 100644 ---- a/setup.py -+++ b/setup.py -@@ -169,6 +169,7 @@ class build_ext(build_ext_base): - 'Please specify via --pyqt-sip-flags=') - - self.include_dirs += (self.qt_include_dir, -+ '@poppler_include_dir@', - os.path.join(self.qt_include_dir, 'QtCore'), - os.path.join(self.qt_include_dir, 'QtGui'), - os.path.join(self.qt_include_dir, 'QtXml')) diff --git a/pkgs/development/tools/ecpdap/default.nix b/pkgs/development/tools/ecpdap/default.nix index dbb9a2405b0e..46b5945fb949 100644 --- a/pkgs/development/tools/ecpdap/default.nix +++ b/pkgs/development/tools/ecpdap/default.nix @@ -2,26 +2,26 @@ rustPlatform.buildRustPackage rec { pname = "ecpdap"; - version = "0.1.5"; + version = "0.1.6"; src = fetchFromGitHub { owner = "adamgreig"; repo = pname; rev = "v${version}"; - sha256 = "1z8w37i6wjz6cr453md54ip21y26605vrx4vpq5wwd11mfvc1jsg"; + sha256 = "1va96hxm22a2lfy141x1sv5f5g8f6mp965an4jsff9qzi55kfv2g"; }; - # The lock file was not up to date with cargo.toml for this release - # - # This patch is the lock file after running `cargo update` - cargoPatches = [ ./lock-update.patch ]; - - cargoSha256 = "08xcnvbxm508v03b3hmz71mpa3yd8lamvazxivp6qsv46ri163mn"; + cargoSha256 = "1dk6x2f36c546qr415kzmqr2r4550iwdmj4chrb46p3hr64jddhd"; nativeBuildInputs = [ pkg-config ]; buildInputs = [ libusb1 ]; + postInstall = '' + mkdir -p $out/etc/udev/rules.d + cp drivers/*.rules $out/etc/udev/rules.d + ''; + meta = with lib; { description = "A tool to program ECP5 FPGAs"; longDescription = '' diff --git a/pkgs/development/tools/ecpdap/lock-update.patch b/pkgs/development/tools/ecpdap/lock-update.patch deleted file mode 100644 index f57c1922ad14..000000000000 --- a/pkgs/development/tools/ecpdap/lock-update.patch +++ /dev/null @@ -1,345 +0,0 @@ -diff --git a/Cargo.lock b/Cargo.lock -index 91f7e0c..1610002 100644 ---- a/Cargo.lock -+++ b/Cargo.lock -@@ -26,9 +26,9 @@ dependencies = [ - - [[package]] - name = "anyhow" --version = "1.0.37" -+version = "1.0.40" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "ee67c11feeac938fae061b232e38e0b6d94f97a9df10e6271319325ac4c56a86" -+checksum = "28b2cd92db5cbd74e8e5028f7e27dd7aa3090e89e4f2a197cc7c8dfb69c7063b" - - [[package]] - name = "atty" -@@ -49,15 +49,9 @@ checksum = "cf1de2fe8c75bc145a2f577add951f8134889b4795d47466a54a5c846d691693" - - [[package]] - name = "cc" --version = "1.0.66" -+version = "1.0.67" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4c0496836a84f8d0495758516b8621a622beb77c0fed418570e50764093ced48" -- --[[package]] --name = "cfg-if" --version = "0.1.10" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4785bdd1c96b2a846b2bd7cc02e86b6b3dbf14e7e53446c4f54c92a361040822" -+checksum = "e3c69b077ad434294d3ce9f1f6143a2a4b89a8a2d54ef813d85003a4fd1137fd" - - [[package]] - name = "cfg-if" -@@ -82,9 +76,9 @@ dependencies = [ - - [[package]] - name = "console" --version = "0.14.0" -+version = "0.14.1" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "7cc80946b3480f421c2f17ed1cb841753a371c7c5104f51d507e13f532c856aa" -+checksum = "3993e6445baa160675931ec041a5e03ca84b9c6e32a056150d3aa2bdda0a1f45" - dependencies = [ - "encode_unicode", - "lazy_static", -@@ -101,14 +95,14 @@ version = "1.2.1" - source = "registry+https://github.com/rust-lang/crates.io-index" - checksum = "81156fece84ab6a9f2afdb109ce3ae577e42b1228441eded99bd77f627953b1a" - dependencies = [ -- "cfg-if 1.0.0", -+ "cfg-if", - ] - - [[package]] - name = "derivative" --version = "2.1.1" -+version = "2.2.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "cb582b60359da160a9477ee80f15c8d784c477e69c217ef2cdd4169c24ea380f" -+checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" - dependencies = [ - "proc-macro2", - "quote", -@@ -117,7 +111,7 @@ dependencies = [ - - [[package]] - name = "ecpdap" --version = "0.1.4" -+version = "0.1.5" - dependencies = [ - "anyhow", - "clap", -@@ -153,11 +147,11 @@ dependencies = [ - - [[package]] - name = "filetime" --version = "0.2.13" -+version = "0.2.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0c122a393ea57648015bf06fbd3d372378992e86b9ff5a7a497b076a28c79efe" -+checksum = "1d34cfa13a63ae058bfa601fe9e313bbdb3746427c1459185464ce0fcf62e1e8" - dependencies = [ -- "cfg-if 1.0.0", -+ "cfg-if", - "libc", - "redox_syscall", - "winapi", -@@ -165,9 +159,9 @@ dependencies = [ - - [[package]] - name = "hermit-abi" --version = "0.1.17" -+version = "0.1.18" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5aca5565f760fb5b220e499d72710ed156fdb74e631659e99377d9ebfbd13ae8" -+checksum = "322f4de77956e22ed0e5032c359a0f1273f1f7f0d79bfa3b8ffbc730d7fbcc5c" - dependencies = [ - "libc", - ] -@@ -206,9 +200,9 @@ dependencies = [ - - [[package]] - name = "jep106" --version = "0.2.4" -+version = "0.2.5" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "f57cd08ee4fbc8043949150a59e34ea5f2afeb172f875db9607689e48600c653" -+checksum = "939876d20519325db0883757e29e9858ee02919d0f03e43c74f69296caa314f4" - dependencies = [ - "serde", - ] -@@ -221,33 +215,35 @@ checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" - - [[package]] - name = "libc" --version = "0.2.81" -+version = "0.2.94" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1482821306169ec4d07f6aca392a4681f66c75c9918aa49641a2595db64053cb" -+checksum = "18794a8ad5b29321f790b55d93dfba91e125cb1a9edbd4f8e3150acc771c1a5e" - - [[package]] - name = "libflate" --version = "1.0.3" -+version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "389de7875e06476365974da3e7ff85d55f1972188ccd9f6020dd7c8156e17914" -+checksum = "6d87eae36b3f680f7f01645121b782798b56ef33c53f83d1c66ba3a22b60bfe3" - dependencies = [ - "adler32", - "crc32fast", - "libflate_lz77", -- "rle-decode-fast", - ] - - [[package]] - name = "libflate_lz77" --version = "1.0.0" -+version = "1.1.0" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3286f09f7d4926fc486334f28d8d2e6ebe4f7f9994494b6dab27ddfad2c9b11b" -+checksum = "39a734c0493409afcd49deee13c006a04e3586b9761a03543c6272c9c51f2f5a" -+dependencies = [ -+ "rle-decode-fast", -+] - - [[package]] - name = "libusb1-sys" --version = "0.4.3" -+version = "0.4.4" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "5e3b8385bdc8931a82a0865a3a7285e2c28e41287824dc92c7724b7759a0c685" -+checksum = "be241693102a24766d0b8526c8988771edac2842630d7e730f8e9fbc014f3703" - dependencies = [ - "cc", - "libc", -@@ -259,11 +255,11 @@ dependencies = [ - - [[package]] - name = "log" --version = "0.4.11" -+version = "0.4.14" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4fabed175da42fed1fa0746b0ea71f412aa9d35e76e95e59b192c64b9dc2bf8b" -+checksum = "51b9bbe6c47d51fc3e1a9b945965946b4c44142ab8792c50835a980d362c2710" - dependencies = [ -- "cfg-if 0.1.10", -+ "cfg-if", - ] - - [[package]] -@@ -327,9 +323,9 @@ dependencies = [ - - [[package]] - name = "proc-macro2" --version = "1.0.24" -+version = "1.0.26" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71" -+checksum = "a152013215dca273577e18d2bf00fa862b89b24169fb78c4c95aeb07992c9cec" - dependencies = [ - "unicode-xid", - ] -@@ -342,36 +338,38 @@ checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - - [[package]] - name = "quote" --version = "1.0.8" -+version = "1.0.9" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df" -+checksum = "c3d0b9745dc2debf507c8422de05d7226cc1f0644216dfdfead988f9b1ab32a7" - dependencies = [ - "proc-macro2", - ] - - [[package]] - name = "redox_syscall" --version = "0.1.57" -+version = "0.2.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "41cc0f7e4d5d4544e8861606a285bb08d3e70712ccc7d2b84d7c0ccfaf4b05ce" -+checksum = "8270314b5ccceb518e7e578952f0b72b88222d02e8f77f5ecf7abbb673539041" -+dependencies = [ -+ "bitflags", -+] - - [[package]] - name = "regex" --version = "1.4.2" -+version = "1.4.6" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "38cf2c13ed4745de91a5eb834e11c00bcc3709e773173b2ce4c56c9fbde04b9c" -+checksum = "2a26af418b574bd56588335b3a3659a65725d4e636eb1016c2f9e3b38c7cc759" - dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", -- "thread_local", - ] - - [[package]] - name = "regex-syntax" --version = "0.6.21" -+version = "0.6.23" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "3b181ba2dcf07aaccad5448e8ead58db5b742cf85dfe035e2227f137a539a189" -+checksum = "24d5f089152e60f62d28b835fbff2cd2e8dc0baf1ac13343bef92ab7eed84548" - - [[package]] - name = "rle-decode-fast" -@@ -391,18 +389,18 @@ dependencies = [ - - [[package]] - name = "serde" --version = "1.0.118" -+version = "1.0.125" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "06c64263859d87aa2eb554587e2d23183398d617427327cf2b3d0ed8c69e4800" -+checksum = "558dc50e1a5a5fa7112ca2ce4effcb321b0300c0d4ccf0776a9f60cd89031171" - dependencies = [ - "serde_derive", - ] - - [[package]] - name = "serde_derive" --version = "1.0.118" -+version = "1.0.125" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "c84d3526699cd55261af4b941e4e725444df67aa4f9e6a3564f18030d12672df" -+checksum = "b093b7a2bb58203b5da3056c05b4ec1fed827dcfdb37347a8841695263b3d06d" - dependencies = [ - "proc-macro2", - "quote", -@@ -431,9 +429,9 @@ checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - - [[package]] - name = "syn" --version = "1.0.57" -+version = "1.0.71" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4211ce9909eb971f111059df92c45640aad50a619cf55cd76476be803c4c68e6" -+checksum = "ad184cc9470f9117b2ac6817bfe297307418819ba40552f9b3846f05c33d5373" - dependencies = [ - "proc-macro2", - "quote", -@@ -442,13 +440,12 @@ dependencies = [ - - [[package]] - name = "tar" --version = "0.4.30" -+version = "0.4.33" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "489997b7557e9a43e192c527face4feacc78bfbe6eed67fd55c4c9e381cba290" -+checksum = "c0bcfbd6a598361fda270d82469fff3d65089dc33e175c9a131f7b4cd395f228" - dependencies = [ - "filetime", - "libc", -- "redox_syscall", - "xattr", - ] - -@@ -463,9 +460,9 @@ dependencies = [ - - [[package]] - name = "terminal_size" --version = "0.1.15" -+version = "0.1.16" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4bd2d183bd3fac5f5fe38ddbeb4dc9aec4a39a9d7d59e7491d900302da01cbe1" -+checksum = "86ca8ced750734db02076f44132d802af0b33b09942331f4459dde8636fd2406" - dependencies = [ - "libc", - "winapi", -@@ -482,33 +479,24 @@ dependencies = [ - - [[package]] - name = "thiserror" --version = "1.0.23" -+version = "1.0.24" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "76cc616c6abf8c8928e2fdcc0dbfab37175edd8fb49a4641066ad1364fdab146" -+checksum = "e0f4a65597094d4483ddaed134f409b2cb7c1beccf25201a9f73c719254fa98e" - dependencies = [ - "thiserror-impl", - ] - - [[package]] - name = "thiserror-impl" --version = "1.0.23" -+version = "1.0.24" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9be73a2caec27583d0046ef3796c3794f868a5bc813db689eed00c7631275cd1" -+checksum = "7765189610d8241a44529806d6fd1f2e0a08734313a35d5b3a556f92b381f3c0" - dependencies = [ - "proc-macro2", - "quote", - "syn", - ] - --[[package]] --name = "thread_local" --version = "1.0.1" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "d40c6d1b69745a6ec6fb1ca717914848da4b44ae29d9b3080cbee91d72a69b14" --dependencies = [ -- "lazy_static", --] -- - [[package]] - name = "toml" - version = "0.5.8" -@@ -532,9 +520,9 @@ checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564" - - [[package]] - name = "vcpkg" --version = "0.2.11" -+version = "0.2.12" - source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "b00bca6106a5e23f3eee943593759b7fcddb00554332e856d990c893966879fb" -+checksum = "cbdbff6266a24120518560b5dc983096efb98462e51d0d68169895b237be3e5d" - - [[package]] - name = "vec_map" diff --git a/pkgs/development/tools/frugal/default.nix b/pkgs/development/tools/frugal/default.nix new file mode 100644 index 000000000000..e76b62d45cb3 --- /dev/null +++ b/pkgs/development/tools/frugal/default.nix @@ -0,0 +1,24 @@ +{ lib, buildGoModule, fetchFromGitHub }: + +buildGoModule rec { + pname = "frugal"; + version = "3.14.3"; + + src = fetchFromGitHub { + owner = "Workiva"; + repo = pname; + rev = "v${version}"; + sha256 = "sha256-zns2XcydY4xxgF8FB6eje0pAt0DZnFOIAqXaSX0xoMg="; + }; + + subPackages = [ "." ]; + + vendorSha256 = "sha256-hyupBMRKuw77SJNIk3mEUixV0LV5mEmZx8M70qGmYJY="; + + meta = with lib; { + description = "Thrift improved"; + homepage = "https://github.com/Workiva/frugal"; + license = with licenses; [ asl20 ]; + maintainers = with maintainers; [ diogox ]; + }; +} diff --git a/pkgs/development/tools/rgp/default.nix b/pkgs/development/tools/rgp/default.nix index 3cfd608e2258..7b49a83b1ccf 100644 --- a/pkgs/development/tools/rgp/default.nix +++ b/pkgs/development/tools/rgp/default.nix @@ -19,15 +19,15 @@ }: let - buildNum = "2020-11-19-376"; + buildNum = "2021-03-31-696"; in stdenv.mkDerivation rec { pname = "rgp"; - version = "1.9"; + version = "1.10"; src = fetchurl { url = "https://gpuopen.com/download/radeon-developer-tool-suite/RadeonDeveloperToolSuite-${buildNum}.tgz"; - sha256 = "f71ibuMerd0SmXKSDjaTj7xtyy1dWzkZ5s0PlGtQ1+k="; + sha256 = "1GUV75KpYbeq7KkE86QqTfGnf/t3VEgviaAsbg/LWJI="; }; nativeBuildInputs = [ makeWrapper autoPatchelfHook ]; @@ -59,6 +59,9 @@ stdenv.mkDerivation rec { mkdir -p $out/opt/rgp $out/bin cp -r . $out/opt/rgp/ + chmod +x $out/opt/rgp/scripts/* + patchShebangs $out/opt/rgp/scripts + for prog in RadeonDeveloperPanel RadeonDeveloperService RadeonDeveloperServiceCLI RadeonGPUAnalyzer RadeonGPUProfiler rga rtda; do # makeWrapper is needed so that executables are started from the opt # directory, where qt.conf and other tools are diff --git a/pkgs/servers/dante/default.nix b/pkgs/servers/dante/default.nix index 99bde454659c..1ed03f0e3d5a 100644 --- a/pkgs/servers/dante/default.nix +++ b/pkgs/servers/dante/default.nix @@ -2,11 +2,11 @@ stdenv.mkDerivation rec { pname = "dante"; - version = "1.4.2"; + version = "1.4.3"; src = fetchurl { url = "https://www.inet.no/dante/files/${pname}-${version}.tar.gz"; - sha256 = "1bfafnm445afrmyxvvcl8ckq0p59yzykmr3y8qvryzrscd85g8ms"; + sha256 = "0pbahkj43rx7rmv2x40mf5p3g3x9d6i2sz7pzglarf54w5ghd2j1"; }; buildInputs = [ pam libkrb5 cyrus_sasl miniupnpc ]; diff --git a/pkgs/servers/http/trafficserver/default.nix b/pkgs/servers/http/trafficserver/default.nix new file mode 100644 index 000000000000..05eb9a17c8e8 --- /dev/null +++ b/pkgs/servers/http/trafficserver/default.nix @@ -0,0 +1,207 @@ +{ lib +, stdenv +, fetchurl +, fetchpatch +, makeWrapper +, nixosTests +, pkg-config +, file +, linuxHeaders +, openssl +, pcre +, perlPackages +, python3 +, xz +, zlib +# recommended dependencies +, withHwloc ? true +, hwloc +, withCurl ? true +, curl +, withCurses ? true +, ncurses +, withCap ? stdenv.isLinux +, libcap +, withUnwind ? stdenv.isLinux +, libunwind +# optional dependencies +, withBrotli ? false +, brotli +, withCjose ? false +, cjose +, withGeoIP ? false +, geoip +, withHiredis ? false +, hiredis +, withImageMagick ? false +, imagemagick +, withJansson ? false +, jansson +, withKyotoCabinet ? false +, kyotocabinet +, withLuaJIT ? false +, luajit +, withMaxmindDB ? false +, libmaxminddb +# optional features +, enableWCCP ? false +}: + +stdenv.mkDerivation rec { + pname = "trafficserver"; + version = "9.0.1"; + + src = fetchurl { + url = "mirror://apache/trafficserver/trafficserver-${version}.tar.bz2"; + sha256 = "1q164pvfmbqh3gzy3bqy96lwd0fdbhz78r06pd92p7rmkqwx005z"; + }; + + patches = [ + # Adds support for NixOS + # https://github.com/apache/trafficserver/pull/7697 + (fetchpatch { + url = "https://github.com/apache/trafficserver/commit/19d3af481cf74c91fbf713fc9d2f8b138ed5fbaf.diff"; + sha256 = "0z1ikgpp00rzrrcqh97931586yn9wbksgai9xlkcjd5cg8gq0150"; + }) + + # Fixes a bug in tspush which pushes incorrect contents to cache + # https://github.com/apache/trafficserver/pull/7696 + (fetchpatch { + url = "https://github.com/apache/trafficserver/commit/b08215272872f452787915cd3a8e0b0ea0b88385.diff"; + sha256 = "0axk8x1xvd8wvpgcxgyqqg7kgxyxwfgwmisq3xnk1da0cqv9cx9f"; + }) + ]; + + # NOTE: The upstream README indicates that flex is needed for some features, + # but it actually seems to be unnecessary as of this commit[1]. The detection + # logic for bison and flex is still present in the build script[2], but no + # other code seems to depend on it. This situation is susceptible to change + # though, so it's a good idea to inspect the build scripts periodically. + # + # [1]: https://github.com/apache/trafficserver/pull/5617 + # [2]: https://github.com/apache/trafficserver/blob/3fd2c60/configure.ac#L742-L788 + nativeBuildInputs = [ makeWrapper pkg-config file python3 ] + ++ (with perlPackages; [ perl ExtUtilsMakeMaker ]) + ++ lib.optionals stdenv.isLinux [ linuxHeaders ]; + + buildInputs = [ + openssl + pcre + perlPackages.perl + ] ++ lib.optional withBrotli brotli + ++ lib.optional withCap libcap + ++ lib.optional withCjose cjose + ++ lib.optional withCurl curl + ++ lib.optional withGeoIP geoip + ++ lib.optional withHiredis hiredis + ++ lib.optional withHwloc hwloc + ++ lib.optional withImageMagick imagemagick + ++ lib.optional withJansson jansson + ++ lib.optional withKyotoCabinet kyotocabinet + ++ lib.optional withCurses ncurses + ++ lib.optional withLuaJIT luajit + ++ lib.optional withUnwind libunwind + ++ lib.optional withMaxmindDB libmaxminddb; + + outputs = [ "out" "man" ]; + + postPatch = '' + patchShebangs \ + iocore/aio/test_AIO.sample \ + src/traffic_via/test_traffic_via \ + src/traffic_logstats/tests \ + tools/check-unused-dependencies + + substituteInPlace configure --replace '/usr/bin/file' '${file}/bin/file' + '' + lib.optionalString stdenv.isLinux '' + substituteInPlace configure \ + --replace '/usr/include/linux' '${linuxHeaders}/include/linux' + '' + lib.optionalString stdenv.isDarwin '' + # 'xcrun leaks' probably requires non-free XCode + substituteInPlace iocore/net/test_certlookup.cc \ + --replace 'xcrun leaks' 'true' + ''; + + configureFlags = [ + "--enable-layout=NixOS" + "--enable-experimental-plugins" + (lib.enableFeature enableWCCP "wccp") + + # the configure script can't auto-locate the following from buildInputs + "--with-lzma=${xz.dev}" + "--with-zlib=${zlib.dev}" + (lib.withFeatureAs withHiredis "hiredis" hiredis) + ]; + + installFlags = [ + "pkgsysconfdir=${placeholder "out"}/etc/trafficserver" + + # replace runtime directories with an install-time placeholder directory + "pkgcachedir=${placeholder "out"}/.install-trafficserver" + "pkglocalstatedir=${placeholder "out"}/.install-trafficserver" + "pkglogdir=${placeholder "out"}/.install-trafficserver" + "pkgruntimedir=${placeholder "out"}/.install-trafficserver" + ]; + + postInstall = '' + substituteInPlace rc/trafficserver.service --replace "syslog.target" "" + install -Dm644 rc/trafficserver.service $out/lib/systemd/system/trafficserver.service + + wrapProgram $out/bin/tspush \ + --set PERL5LIB '${with perlPackages; makePerlPath [ URI ]}' \ + --prefix PATH : "${lib.makeBinPath [ file ]}" + + find "$out" -name '*.la' -delete + + # ensure no files actually exist in this directory + rmdir $out/.install-trafficserver + ''; + + installCheckPhase = let + expected = '' + Via header is [uScMsEf p eC:t cCMp sF], Length is 22 + Via Header Details: + Request headers received from client :simple request (not conditional) + Result of Traffic Server cache lookup for URL :miss (a cache "MISS") + Response information received from origin server :error in response + Result of document write-to-cache: :no cache write performed + Proxy operation result :unknown + Error codes (if any) :connection to server failed + Tunnel info :no tunneling + Cache Type :cache + Cache Lookup Result :cache miss (url not in cache) + Parent proxy connection status :no parent proxy or unknown + Origin server connection status :connection open failed + ''; + in '' + runHook preInstallCheck + diff -Naur <($out/bin/traffic_via '[uScMsEf p eC:t cCMp sF]') - < $out/bin/mx-puppet-discord + #!/bin/sh + exec ${nodejs}/bin/node $out/lib/node_modules/mx-puppet-discord/build/index.js "\$@" + EOF + chmod +x $out/bin/mx-puppet-discord + ''; + + meta = with lib; { + description = "A discord puppeting bridge for matrix"; + license = licenses.asl20; + homepage = "https://github.com/matrix-discord/mx-puppet-discord"; + maintainers = with maintainers; [ expipiplus1 ]; + platforms = platforms.unix; + }; +} diff --git a/pkgs/servers/mx-puppet-discord/generate.sh b/pkgs/servers/mx-puppet-discord/generate.sh new file mode 100755 index 000000000000..851671a147a8 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/generate.sh @@ -0,0 +1,21 @@ +#!/usr/bin/env nix-shell +#! nix-shell -i bash -p nodePackages.node2nix + +# No official release +rev=c17384a6a12a42a528e0b1259f8073e8db89b8f4 +u=https://raw.githubusercontent.com/matrix-discord/mx-puppet-discord/$rev +# Download package.json and package-lock.json +curl -O $u/package.json +curl -O $u/package-lock.json + +node2nix \ + --nodejs-12 \ + --node-env ../../development/node-packages/node-env.nix \ + --input package.json \ + --lock package-lock.json \ + --output node-packages.nix \ + --composition node-composition.nix + +sed -i 's||../../..|' node-composition.nix + +rm -f package.json package-lock.json diff --git a/pkgs/servers/mx-puppet-discord/node-composition.nix b/pkgs/servers/mx-puppet-discord/node-composition.nix new file mode 100644 index 000000000000..777c9db52568 --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/node-composition.nix @@ -0,0 +1,17 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{pkgs ? import ../../.. { + inherit system; + }, system ? builtins.currentSystem, nodejs ? pkgs."nodejs-12_x"}: + +let + nodeEnv = import ../../development/node-packages/node-env.nix { + inherit (pkgs) stdenv lib python2 runCommand writeTextFile; + inherit pkgs nodejs; + libtool = if pkgs.stdenv.isDarwin then pkgs.darwin.cctools else null; + }; +in +import ./node-packages.nix { + inherit (pkgs) fetchurl nix-gitignore stdenv lib fetchgit; + inherit nodeEnv; +} diff --git a/pkgs/servers/mx-puppet-discord/node-packages.nix b/pkgs/servers/mx-puppet-discord/node-packages.nix new file mode 100644 index 000000000000..b3dc83bb343c --- /dev/null +++ b/pkgs/servers/mx-puppet-discord/node-packages.nix @@ -0,0 +1,3616 @@ +# This file has been generated by node2nix 1.9.0. Do not edit! + +{nodeEnv, fetchurl, fetchgit, nix-gitignore, stdenv, lib, globalBuildInputs ? []}: + +let + sources = { + "@babel/code-frame-7.0.0" = { + name = "_at_babel_slash_code-frame"; + packageName = "@babel/code-frame"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz"; + sha512 = "OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA=="; + }; + }; + "@babel/highlight-7.0.0" = { + name = "_at_babel_slash_highlight"; + packageName = "@babel/highlight"; + version = "7.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz"; + sha512 = "UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw=="; + }; + }; + "@dabh/diagnostics-2.0.2" = { + name = "_at_dabh_slash_diagnostics"; + packageName = "@dabh/diagnostics"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz"; + sha512 = "+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q=="; + }; + }; + "@discordjs/collection-0.1.6" = { + name = "_at_discordjs_slash_collection"; + packageName = "@discordjs/collection"; + version = "0.1.6"; + src = fetchurl { + url = "https://registry.npmjs.org/@discordjs/collection/-/collection-0.1.6.tgz"; + sha512 = "utRNxnd9kSS2qhyivo9lMlt5qgAUasH2gb7BEOn6p0efFh24gjGomHzWKMAPn2hEReOPQZCJaRKoURwRotKucQ=="; + }; + }; + "@discordjs/form-data-3.0.1" = { + name = "_at_discordjs_slash_form-data"; + packageName = "@discordjs/form-data"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@discordjs/form-data/-/form-data-3.0.1.tgz"; + sha512 = "ZfFsbgEXW71Rw/6EtBdrP5VxBJy4dthyC0tpQKGKmYFImlmmrykO14Za+BiIVduwjte0jXEBlhSKf0MWbFp9Eg=="; + }; + }; + "@sindresorhus/is-3.1.2" = { + name = "_at_sindresorhus_slash_is"; + packageName = "@sindresorhus/is"; + version = "3.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@sindresorhus/is/-/is-3.1.2.tgz"; + sha512 = "JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ=="; + }; + }; + "@sorunome/matrix-bot-sdk-0.5.8" = { + name = "_at_sorunome_slash_matrix-bot-sdk"; + packageName = "@sorunome/matrix-bot-sdk"; + version = "0.5.8"; + src = fetchurl { + url = "https://registry.npmjs.org/@sorunome/matrix-bot-sdk/-/matrix-bot-sdk-0.5.8.tgz"; + sha512 = "Uifu8saeD1fPrj6F8ZdYiCeADCluySbdi/nVKJy0NQOi6cA5p68ZaeydlCyl+YuFJoCjsDWBe+Szq9CgFd/SpA=="; + }; + }; + "@szmarczak/http-timer-4.0.5" = { + name = "_at_szmarczak_slash_http-timer"; + packageName = "@szmarczak/http-timer"; + version = "4.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-4.0.5.tgz"; + sha512 = "PyRA9sm1Yayuj5OIoJ1hGt2YISX45w9WcFbh6ddT0Z/0yaFxOtGLInr4jUfU1EAFVs0Yfyfev4RNwBlUaHdlDQ=="; + }; + }; + "@types/body-parser-1.19.0" = { + name = "_at_types_slash_body-parser"; + packageName = "@types/body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "W98JrE0j2K78swW4ukqMleo8R7h/pFETjM2DQ90MF6XK2i4LO4W3gQ71Lt4w3bfm2EvVSyWHplECvB5sK22yFQ=="; + }; + }; + "@types/cacheable-request-6.0.1" = { + name = "_at_types_slash_cacheable-request"; + packageName = "@types/cacheable-request"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/cacheable-request/-/cacheable-request-6.0.1.tgz"; + sha512 = "ykFq2zmBGOCbpIXtoVbz4SKY5QriWPh3AjyU4G74RYbtt5yOc5OfaY75ftjg7mikMOla1CTGpX3lLbuJh8DTrQ=="; + }; + }; + "@types/connect-3.4.34" = { + name = "_at_types_slash_connect"; + packageName = "@types/connect"; + version = "3.4.34"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/connect/-/connect-3.4.34.tgz"; + sha512 = "ePPA/JuI+X0vb+gSWlPKOY0NdNAie/rPUqX2GUPpbZwiKTkSPhjXWuee47E4MtE54QVzGCQMQkAL6JhV2E1+cQ=="; + }; + }; + "@types/express-4.17.11" = { + name = "_at_types_slash_express"; + packageName = "@types/express"; + version = "4.17.11"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express/-/express-4.17.11.tgz"; + sha512 = "no+R6rW60JEc59977wIxreQVsIEOAYwgCqldrA/vkpCnbD7MqTefO97lmoBe4WE0F156bC4uLSP1XHDOySnChg=="; + }; + }; + "@types/express-serve-static-core-4.17.18" = { + name = "_at_types_slash_express-serve-static-core"; + packageName = "@types/express-serve-static-core"; + version = "4.17.18"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.18.tgz"; + sha512 = "m4JTwx5RUBNZvky/JJ8swEJPKFd8si08pPF2PfizYjGZOKr/svUWPcoUmLow6MmPzhasphB7gSTINY67xn3JNA=="; + }; + }; + "@types/http-cache-semantics-4.0.0" = { + name = "_at_types_slash_http-cache-semantics"; + packageName = "@types/http-cache-semantics"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/http-cache-semantics/-/http-cache-semantics-4.0.0.tgz"; + sha512 = "c3Xy026kOF7QOTn00hbIllV1dLR9hG9NkSrLQgCVs8NF6sBU+VGWjD3wLPhmh1TYAc7ugCFsvHYMN4VcBN1U1A=="; + }; + }; + "@types/keyv-3.1.1" = { + name = "_at_types_slash_keyv"; + packageName = "@types/keyv"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/keyv/-/keyv-3.1.1.tgz"; + sha512 = "MPtoySlAZQ37VoLaPcTHCu1RWJ4llDkULYZIzOYxlhxBqYPB0RsRlmMU0R6tahtFe27mIdkHV+551ZWV4PLmVw=="; + }; + }; + "@types/mime-1.3.2" = { + name = "_at_types_slash_mime"; + packageName = "@types/mime"; + version = "1.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz"; + sha512 = "YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw=="; + }; + }; + "@types/node-14.6.3" = { + name = "_at_types_slash_node"; + packageName = "@types/node"; + version = "14.6.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/node/-/node-14.6.3.tgz"; + sha512 = "pC/hkcREG6YfDfui1FBmj8e20jFU5Exjw4NYDm8kEdrW+mOh0T1Zve8DWKnS7ZIZvgncrctcNCXF4Q2I+loyww=="; + }; + }; + "@types/prop-types-15.7.3" = { + name = "_at_types_slash_prop-types"; + packageName = "@types/prop-types"; + version = "15.7.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz"; + sha512 = "KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="; + }; + }; + "@types/qs-6.9.5" = { + name = "_at_types_slash_qs"; + packageName = "@types/qs"; + version = "6.9.5"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/qs/-/qs-6.9.5.tgz"; + sha512 = "/JHkVHtx/REVG0VVToGRGH2+23hsYLHdyG+GrvoUGlGAd0ErauXDyvHtRI/7H7mzLm+tBCKA7pfcpkQ1lf58iQ=="; + }; + }; + "@types/range-parser-1.2.3" = { + name = "_at_types_slash_range-parser"; + packageName = "@types/range-parser"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.3.tgz"; + sha512 = "ewFXqrQHlFsgc09MK5jP5iR7vumV/BYayNC6PgJO2LPe8vrnNFyjQjSppfEngITi0qvfKtzFvgKymGheFM9UOA=="; + }; + }; + "@types/react-17.0.0" = { + name = "_at_types_slash_react"; + packageName = "@types/react"; + version = "17.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/react/-/react-17.0.0.tgz"; + sha512 = "aj/L7RIMsRlWML3YB6KZiXB3fV2t41+5RBGYF8z+tAKU43Px8C3cYUZsDvf1/+Bm4FK21QWBrDutu8ZJ/70qOw=="; + }; + }; + "@types/responselike-1.0.0" = { + name = "_at_types_slash_responselike"; + packageName = "@types/responselike"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.0.tgz"; + sha512 = "85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA=="; + }; + }; + "@types/serve-static-1.13.9" = { + name = "_at_types_slash_serve-static"; + packageName = "@types/serve-static"; + version = "1.13.9"; + src = fetchurl { + url = "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.9.tgz"; + sha512 = "ZFqF6qa48XsPdjXV5Gsz0Zqmux2PerNd3a/ktL45mHpa19cuMi/cL8tcxdAx497yRh+QtYPuofjT9oWw9P7nkA=="; + }; + }; + "abbrev-1.1.1" = { + name = "abbrev"; + packageName = "abbrev"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"; + sha512 = "nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="; + }; + }; + "abort-controller-3.0.0" = { + name = "abort-controller"; + packageName = "abort-controller"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz"; + sha512 = "h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg=="; + }; + }; + "accepts-1.3.7" = { + name = "accepts"; + packageName = "accepts"; + version = "1.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"; + sha512 = "Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA=="; + }; + }; + "ansi-regex-2.1.1" = { + name = "ansi-regex"; + packageName = "ansi-regex"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"; + sha1 = "c3b33ab5ee360d86e0e628f0468ae7ef27d654df"; + }; + }; + "ansi-styles-3.2.1" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "3.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"; + sha512 = "VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="; + }; + }; + "ansi-styles-4.3.0" = { + name = "ansi-styles"; + packageName = "ansi-styles"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz"; + sha512 = "zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="; + }; + }; + "aproba-1.2.0" = { + name = "aproba"; + packageName = "aproba"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"; + sha512 = "Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="; + }; + }; + "are-we-there-yet-1.1.5" = { + name = "are-we-there-yet"; + packageName = "are-we-there-yet"; + version = "1.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz"; + sha512 = "5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w=="; + }; + }; + "argparse-1.0.10" = { + name = "argparse"; + packageName = "argparse"; + version = "1.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz"; + sha512 = "o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg=="; + }; + }; + "array-back-2.0.0" = { + name = "array-back"; + packageName = "array-back"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-2.0.0.tgz"; + sha512 = "eJv4pLLufP3g5kcZry0j6WXpIbzYw9GUB4mVJZno9wfwiBxbizTnHCw3VJb07cBihbFX48Y7oSrW9y+gt4glyw=="; + }; + }; + "array-back-3.1.0" = { + name = "array-back"; + packageName = "array-back"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz"; + sha512 = "TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q=="; + }; + }; + "array-flatten-1.1.1" = { + name = "array-flatten"; + packageName = "array-flatten"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz"; + sha1 = "9a5f699051b1e7073328f2a008968b64ea2955d2"; + }; + }; + "assert-options-0.7.0" = { + name = "assert-options"; + packageName = "assert-options"; + version = "0.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/assert-options/-/assert-options-0.7.0.tgz"; + sha512 = "7q9uNH/Dh8gFgpIIb9ja8PJEWA5AQy3xnBC8jtKs8K/gNVCr1K6kIvlm59HUyYgvM7oEDoLzGgPcGd9FqhtXEQ=="; + }; + }; + "async-3.2.0" = { + name = "async"; + packageName = "async"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/async/-/async-3.2.0.tgz"; + sha512 = "TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw=="; + }; + }; + "asynckit-0.4.0" = { + name = "asynckit"; + packageName = "asynckit"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"; + sha1 = "c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"; + }; + }; + "balanced-match-1.0.0" = { + name = "balanced-match"; + packageName = "balanced-match"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz"; + sha1 = "89b4d199ab2bee49de164ea02b89ce462d71b767"; + }; + }; + "base64-js-1.5.1" = { + name = "base64-js"; + packageName = "base64-js"; + version = "1.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz"; + sha512 = "AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="; + }; + }; + "basic-auth-2.0.1" = { + name = "basic-auth"; + packageName = "basic-auth"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz"; + sha512 = "NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg=="; + }; + }; + "better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72" = { + name = "better-discord.js"; + packageName = "better-discord.js"; + version = "12.5.1"; + src = fetchgit { + url = "https://github.com/Sorunome/better-discord.js.git"; + rev = "5e58e1e7510cf2192f3503ca146dd61a56a75c72"; + sha256 = "ab87453cc9db05b3bc691f27e92c5a4a6a14a528c98c7d313d6dd42f1741124a"; + }; + }; + "better-sqlite3-6.0.1" = { + name = "better-sqlite3"; + packageName = "better-sqlite3"; + version = "6.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-6.0.1.tgz"; + sha512 = "4aV1zEknM9g1a6B0mVBx1oIlmYioEJ8gSS3J6EpN1b1bKYEE+N5lmpmXHKNKTi0qjHziSd7XrXwHl1kpqvEcHQ=="; + }; + }; + "bindings-1.5.0" = { + name = "bindings"; + packageName = "bindings"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz"; + sha512 = "p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ=="; + }; + }; + "bintrees-1.0.1" = { + name = "bintrees"; + packageName = "bintrees"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/bintrees/-/bintrees-1.0.1.tgz"; + sha1 = "0e655c9b9c2435eaab68bf4027226d2b55a34524"; + }; + }; + "bl-4.0.3" = { + name = "bl"; + packageName = "bl"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz"; + sha512 = "fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg=="; + }; + }; + "blurhash-1.1.3" = { + name = "blurhash"; + packageName = "blurhash"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/blurhash/-/blurhash-1.1.3.tgz"; + sha512 = "yUhPJvXexbqbyijCIE/T2NCXcj9iNPhWmOKbPTuR/cm7Q5snXYIfnVnz6m7MWOXxODMz/Cr3UcVkRdHiuDVRDw=="; + }; + }; + "body-parser-1.19.0" = { + name = "body-parser"; + packageName = "body-parser"; + version = "1.19.0"; + src = fetchurl { + url = "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz"; + sha512 = "dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw=="; + }; + }; + "brace-expansion-1.1.11" = { + name = "brace-expansion"; + packageName = "brace-expansion"; + version = "1.1.11"; + src = fetchurl { + url = "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz"; + sha512 = "iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA=="; + }; + }; + "buffer-5.7.1" = { + name = "buffer"; + packageName = "buffer"; + version = "5.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz"; + sha512 = "EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="; + }; + }; + "buffer-writer-2.0.0" = { + name = "buffer-writer"; + packageName = "buffer-writer"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/buffer-writer/-/buffer-writer-2.0.0.tgz"; + sha512 = "a7ZpuTZU1TRtnwyCNW3I5dc0wWNC3VR9S++Ewyk2HHZdrO3CQJqSpd+95Us590V6AL7JqUAH2IwZ/398PmNFgw=="; + }; + }; + "builtin-modules-1.1.1" = { + name = "builtin-modules"; + packageName = "builtin-modules"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz"; + sha1 = "270f076c5a72c02f5b65a47df94c5fe3a278892f"; + }; + }; + "bytes-3.1.0" = { + name = "bytes"; + packageName = "bytes"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz"; + sha512 = "zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="; + }; + }; + "cacheable-lookup-5.0.3" = { + name = "cacheable-lookup"; + packageName = "cacheable-lookup"; + version = "5.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-lookup/-/cacheable-lookup-5.0.3.tgz"; + sha512 = "W+JBqF9SWe18A72XFzN/V/CULFzPm7sBXzzR6ekkE+3tLG72wFZrBiBZhrZuDoYexop4PHJVdFAKb/Nj9+tm9w=="; + }; + }; + "cacheable-request-7.0.1" = { + name = "cacheable-request"; + packageName = "cacheable-request"; + version = "7.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/cacheable-request/-/cacheable-request-7.0.1.tgz"; + sha512 = "lt0mJ6YAnsrBErpTMWeu5kl/tg9xMAWjavYTN6VQXM1A/teBITuNcccXsCxF0tDQQJf9DfAaX5O4e0zp0KlfZw=="; + }; + }; + "canvas-2.6.1" = { + name = "canvas"; + packageName = "canvas"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz"; + sha512 = "S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA=="; + }; + }; + "chalk-2.4.2" = { + name = "chalk"; + packageName = "chalk"; + version = "2.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz"; + sha512 = "Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ=="; + }; + }; + "chalk-4.1.0" = { + name = "chalk"; + packageName = "chalk"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz"; + sha512 = "qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A=="; + }; + }; + "chownr-1.1.4" = { + name = "chownr"; + packageName = "chownr"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz"; + sha512 = "jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="; + }; + }; + "clone-response-1.0.2" = { + name = "clone-response"; + packageName = "clone-response"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz"; + sha1 = "d1dc973920314df67fbeb94223b4ee350239e96b"; + }; + }; + "code-point-at-1.1.0" = { + name = "code-point-at"; + packageName = "code-point-at"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"; + sha1 = "0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77"; + }; + }; + "color-3.0.0" = { + name = "color"; + packageName = "color"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/color/-/color-3.0.0.tgz"; + sha512 = "jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w=="; + }; + }; + "color-convert-1.9.3" = { + name = "color-convert"; + packageName = "color-convert"; + version = "1.9.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"; + sha512 = "QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="; + }; + }; + "color-convert-2.0.1" = { + name = "color-convert"; + packageName = "color-convert"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz"; + sha512 = "RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="; + }; + }; + "color-name-1.1.3" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"; + sha1 = "a7d0558bd89c42f795dd42328f740831ca53bc25"; + }; + }; + "color-name-1.1.4" = { + name = "color-name"; + packageName = "color-name"; + version = "1.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz"; + sha512 = "dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="; + }; + }; + "color-string-1.5.4" = { + name = "color-string"; + packageName = "color-string"; + version = "1.5.4"; + src = fetchurl { + url = "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz"; + sha512 = "57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw=="; + }; + }; + "colors-1.4.0" = { + name = "colors"; + packageName = "colors"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz"; + sha512 = "a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="; + }; + }; + "colorspace-1.1.2" = { + name = "colorspace"; + packageName = "colorspace"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz"; + sha512 = "vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ=="; + }; + }; + "combined-stream-1.0.8" = { + name = "combined-stream"; + packageName = "combined-stream"; + version = "1.0.8"; + src = fetchurl { + url = "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"; + sha512 = "FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="; + }; + }; + "command-line-args-5.1.1" = { + name = "command-line-args"; + packageName = "command-line-args"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-args/-/command-line-args-5.1.1.tgz"; + sha512 = "hL/eG8lrll1Qy1ezvkant+trihbGnaKaeEjj6Scyr3DN+RC7iQ5Rz84IeLERfAWDGo0HBSNAakczwgCilDXnWg=="; + }; + }; + "command-line-usage-5.0.5" = { + name = "command-line-usage"; + packageName = "command-line-usage"; + version = "5.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/command-line-usage/-/command-line-usage-5.0.5.tgz"; + sha512 = "d8NrGylA5oCXSbGoKz05FkehDAzSmIm4K03S5VDh4d5lZAtTWfc3D1RuETtuQCn8129nYfJfDdF7P/lwcz1BlA=="; + }; + }; + "commander-2.20.0" = { + name = "commander"; + packageName = "commander"; + version = "2.20.0"; + src = fetchurl { + url = "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz"; + sha512 = "7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ=="; + }; + }; + "concat-map-0.0.1" = { + name = "concat-map"; + packageName = "concat-map"; + version = "0.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz"; + sha1 = "d8a96bd77fd68df7793a73036a3ba0d5405d477b"; + }; + }; + "console-control-strings-1.1.0" = { + name = "console-control-strings"; + packageName = "console-control-strings"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz"; + sha1 = "3d7cf4464db6446ea644bf4b39507f9851008e8e"; + }; + }; + "content-disposition-0.5.3" = { + name = "content-disposition"; + packageName = "content-disposition"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz"; + sha512 = "ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g=="; + }; + }; + "content-type-1.0.4" = { + name = "content-type"; + packageName = "content-type"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz"; + sha512 = "hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="; + }; + }; + "cookie-0.4.0" = { + name = "cookie"; + packageName = "cookie"; + version = "0.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz"; + sha512 = "+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="; + }; + }; + "cookie-signature-1.0.6" = { + name = "cookie-signature"; + packageName = "cookie-signature"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz"; + sha1 = "e303a882b342cc3ee8ca513a79999734dab3ae2c"; + }; + }; + "core-util-is-1.0.2" = { + name = "core-util-is"; + packageName = "core-util-is"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz"; + sha1 = "b5fd54220aa2bc5ab57aab7140c940754503c1a7"; + }; + }; + "csstype-3.0.5" = { + name = "csstype"; + packageName = "csstype"; + version = "3.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz"; + sha512 = "uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ=="; + }; + }; + "cycle-1.0.3" = { + name = "cycle"; + packageName = "cycle"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/cycle/-/cycle-1.0.3.tgz"; + sha1 = "21e80b2be8580f98b468f379430662b046c34ad2"; + }; + }; + "debug-2.6.9" = { + name = "debug"; + packageName = "debug"; + version = "2.6.9"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz"; + sha512 = "bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA=="; + }; + }; + "debug-3.2.7" = { + name = "debug"; + packageName = "debug"; + version = "3.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz"; + sha512 = "CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="; + }; + }; + "decompress-response-4.2.1" = { + name = "decompress-response"; + packageName = "decompress-response"; + version = "4.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz"; + sha512 = "jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw=="; + }; + }; + "decompress-response-6.0.0" = { + name = "decompress-response"; + packageName = "decompress-response"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/decompress-response/-/decompress-response-6.0.0.tgz"; + sha512 = "aW35yZM6Bb/4oJlZncMH2LCoZtJXTRxES17vE3hoRiowU2kWHaJKFkSBDnDR+cm9J+9QhXmREyIfv0pji9ejCQ=="; + }; + }; + "deep-extend-0.6.0" = { + name = "deep-extend"; + packageName = "deep-extend"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz"; + sha512 = "LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="; + }; + }; + "defer-to-connect-2.0.0" = { + name = "defer-to-connect"; + packageName = "defer-to-connect"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-2.0.0.tgz"; + sha512 = "bYL2d05vOSf1JEZNx5vSAtPuBMkX8K9EUutg7zlKvTqKXHt7RhWJFbmd7qakVuf13i+IkGmp6FwSsONOf6VYIg=="; + }; + }; + "delayed-stream-1.0.0" = { + name = "delayed-stream"; + packageName = "delayed-stream"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"; + sha1 = "df3ae199acadfb7d440aaae0b29e2272b24ec619"; + }; + }; + "delegates-1.0.0" = { + name = "delegates"; + packageName = "delegates"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"; + sha1 = "84c6e159b81904fdca59a0ef44cd870d31250f9a"; + }; + }; + "depd-1.1.2" = { + name = "depd"; + packageName = "depd"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz"; + sha1 = "9bcd52e14c097763e749b274c4346ed2e560b5a9"; + }; + }; + "depd-2.0.0" = { + name = "depd"; + packageName = "depd"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz"; + sha512 = "g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw=="; + }; + }; + "destroy-1.0.4" = { + name = "destroy"; + packageName = "destroy"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz"; + sha1 = "978857442c44749e4206613e37946205826abd80"; + }; + }; + "detect-libc-1.0.3" = { + name = "detect-libc"; + packageName = "detect-libc"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz"; + sha1 = "fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b"; + }; + }; + "diff-3.5.0" = { + name = "diff"; + packageName = "diff"; + version = "3.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz"; + sha512 = "A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA=="; + }; + }; + "discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085" = { + name = "discord-markdown"; + packageName = "discord-markdown"; + version = "2.3.1"; + src = fetchgit { + url = "git://github.com/Sorunome/discord-markdown.git"; + rev = "0f38420fdd41340d6eadd38cd5b71784ca954085"; + sha256 = "61a5ffd248b6d2784665fa710bfe4c39f241c75be07dbe53f5f48575a4df229c"; + }; + }; + "dom-serializer-1.2.0" = { + name = "dom-serializer"; + packageName = "dom-serializer"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.2.0.tgz"; + sha512 = "n6kZFH/KlCrqs/1GHMOd5i2fd/beQHuehKdWvNNffbGHTr/almdhuVvTVFb3V7fglz+nC50fFusu3lY33h12pA=="; + }; + }; + "domelementtype-2.1.0" = { + name = "domelementtype"; + packageName = "domelementtype"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz"; + sha512 = "LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w=="; + }; + }; + "domhandler-3.3.0" = { + name = "domhandler"; + packageName = "domhandler"; + version = "3.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-3.3.0.tgz"; + sha512 = "J1C5rIANUbuYK+FuFL98650rihynUOEzRLxW+90bKZRWB6A1X1Tf82GxR1qAWLyfNPRvjqfip3Q5tdYlmAa9lA=="; + }; + }; + "domhandler-4.0.0" = { + name = "domhandler"; + packageName = "domhandler"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/domhandler/-/domhandler-4.0.0.tgz"; + sha512 = "KPTbnGQ1JeEMQyO1iYXoagsI6so/C96HZiFyByU3T6iAzpXn8EGEvct6unm1ZGoed8ByO2oirxgwxBmqKF9haA=="; + }; + }; + "domutils-2.4.4" = { + name = "domutils"; + packageName = "domutils"; + version = "2.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/domutils/-/domutils-2.4.4.tgz"; + sha512 = "jBC0vOsECI4OMdD0GC9mGn7NXPLb+Qt6KW1YDQzeQYRUFKmNG8lh7mO5HiELfr+lLQE7loDVI4QcAxV80HS+RA=="; + }; + }; + "ee-first-1.1.1" = { + name = "ee-first"; + packageName = "ee-first"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz"; + sha1 = "590c61156b0ae2f4f0255732a158b266bc56b21d"; + }; + }; + "enabled-2.0.0" = { + name = "enabled"; + packageName = "enabled"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz"; + sha512 = "AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ=="; + }; + }; + "encodeurl-1.0.2" = { + name = "encodeurl"; + packageName = "encodeurl"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz"; + sha1 = "ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"; + }; + }; + "end-of-stream-1.4.4" = { + name = "end-of-stream"; + packageName = "end-of-stream"; + version = "1.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz"; + sha512 = "+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q=="; + }; + }; + "entities-1.1.2" = { + name = "entities"; + packageName = "entities"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-1.1.2.tgz"; + sha512 = "f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w=="; + }; + }; + "entities-2.1.0" = { + name = "entities"; + packageName = "entities"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz"; + sha512 = "hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w=="; + }; + }; + "escape-html-1.0.3" = { + name = "escape-html"; + packageName = "escape-html"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz"; + sha1 = "0258eae4d3d0c0974de1c169188ef0051d1d1988"; + }; + }; + "escape-string-regexp-1.0.5" = { + name = "escape-string-regexp"; + packageName = "escape-string-regexp"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"; + sha1 = "1b61c0562190a8dff6ae3bb2cf0200ca130b86d4"; + }; + }; + "esprima-4.0.1" = { + name = "esprima"; + packageName = "esprima"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz"; + sha512 = "eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A=="; + }; + }; + "esutils-2.0.2" = { + name = "esutils"; + packageName = "esutils"; + version = "2.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/esutils/-/esutils-2.0.2.tgz"; + sha1 = "0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b"; + }; + }; + "etag-1.8.1" = { + name = "etag"; + packageName = "etag"; + version = "1.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz"; + sha1 = "41ae2eeb65efa62268aebfea83ac7d79299b0887"; + }; + }; + "event-target-shim-5.0.1" = { + name = "event-target-shim"; + packageName = "event-target-shim"; + version = "5.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz"; + sha512 = "i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ=="; + }; + }; + "events-3.0.0" = { + name = "events"; + packageName = "events"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.0.0.tgz"; + sha512 = "Dc381HFWJzEOhQ+d8pkNon++bk9h6cdAoAj4iE6Q4y6xgTzySWXlKn05/TVNpjnfRqi/X0EpJEJohPjNI3zpVA=="; + }; + }; + "events-3.2.0" = { + name = "events"; + packageName = "events"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/events/-/events-3.2.0.tgz"; + sha512 = "/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg=="; + }; + }; + "expand-template-2.0.3" = { + name = "expand-template"; + packageName = "expand-template"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz"; + sha512 = "XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="; + }; + }; + "expire-set-1.0.0" = { + name = "expire-set"; + packageName = "expire-set"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/expire-set/-/expire-set-1.0.0.tgz"; + sha512 = "wOQlqatf2sJtOabNk3gEPbGvo/C8tIUhzT3rz08+i7X+u1NV+UNY4p3Lzq8DxrW57mBML1Fp5qNeYt70Qnndpg=="; + }; + }; + "express-4.17.1" = { + name = "express"; + packageName = "express"; + version = "4.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/express/-/express-4.17.1.tgz"; + sha512 = "mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g=="; + }; + }; + "extend-shallow-2.0.1" = { + name = "extend-shallow"; + packageName = "extend-shallow"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz"; + sha1 = "51af7d614ad9a9f610ea1bafbb989d6b1c56890f"; + }; + }; + "fast-safe-stringify-2.0.7" = { + name = "fast-safe-stringify"; + packageName = "fast-safe-stringify"; + version = "2.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz"; + sha512 = "Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA=="; + }; + }; + "fecha-2.3.3" = { + name = "fecha"; + packageName = "fecha"; + version = "2.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/fecha/-/fecha-2.3.3.tgz"; + sha512 = "lUGBnIamTAwk4znq5BcqsDaxSmZ9nDVJaij6NvRt/Tg4R69gERA+otPKbS86ROw9nxVMw2/mp1fnaiWqbs6Sdg=="; + }; + }; + "fecha-4.2.0" = { + name = "fecha"; + packageName = "fecha"; + version = "4.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz"; + sha512 = "aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg=="; + }; + }; + "file-stream-rotator-0.4.1" = { + name = "file-stream-rotator"; + packageName = "file-stream-rotator"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/file-stream-rotator/-/file-stream-rotator-0.4.1.tgz"; + sha512 = "W3aa3QJEc8BS2MmdVpQiYLKHj3ijpto1gMDlsgCRSKfIUe6MwkcpODGPQ3vZfb0XvCeCqlu9CBQTN7oQri2TZQ=="; + }; + }; + "file-type-12.4.2" = { + name = "file-type"; + packageName = "file-type"; + version = "12.4.2"; + src = fetchurl { + url = "https://registry.npmjs.org/file-type/-/file-type-12.4.2.tgz"; + sha512 = "UssQP5ZgIOKelfsaB5CuGAL+Y+q7EmONuiwF3N5HAH0t27rvrttgi6Ra9k/+DVaY9UF6+ybxu5pOXLUdA8N7Vg=="; + }; + }; + "file-uri-to-path-1.0.0" = { + name = "file-uri-to-path"; + packageName = "file-uri-to-path"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz"; + sha512 = "0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw=="; + }; + }; + "finalhandler-1.1.2" = { + name = "finalhandler"; + packageName = "finalhandler"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz"; + sha512 = "aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA=="; + }; + }; + "find-replace-3.0.0" = { + name = "find-replace"; + packageName = "find-replace"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz"; + sha512 = "6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ=="; + }; + }; + "fn.name-1.1.0" = { + name = "fn.name"; + packageName = "fn.name"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz"; + sha512 = "GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw=="; + }; + }; + "forwarded-0.1.2" = { + name = "forwarded"; + packageName = "forwarded"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz"; + sha1 = "98c23dab1175657b8c0573e8ceccd91b0ff18c84"; + }; + }; + "fresh-0.5.2" = { + name = "fresh"; + packageName = "fresh"; + version = "0.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz"; + sha1 = "3d8cadd90d976569fa835ab1f8e4b23a105605a7"; + }; + }; + "fs-constants-1.0.0" = { + name = "fs-constants"; + packageName = "fs-constants"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz"; + sha512 = "y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="; + }; + }; + "fs-minipass-1.2.7" = { + name = "fs-minipass"; + packageName = "fs-minipass"; + version = "1.2.7"; + src = fetchurl { + url = "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz"; + sha512 = "GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA=="; + }; + }; + "fs.realpath-1.0.0" = { + name = "fs.realpath"; + packageName = "fs.realpath"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz"; + sha1 = "1504ad2523158caa40db4a2787cb01411994ea4f"; + }; + }; + "gauge-2.7.4" = { + name = "gauge"; + packageName = "gauge"; + version = "2.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"; + sha1 = "2c03405c7538c39d7eb37b317022e325fb018bf7"; + }; + }; + "get-stream-5.2.0" = { + name = "get-stream"; + packageName = "get-stream"; + version = "5.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz"; + sha512 = "nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="; + }; + }; + "github-from-package-0.0.0" = { + name = "github-from-package"; + packageName = "github-from-package"; + version = "0.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz"; + sha1 = "97fb5d96bfde8973313f20e8288ef9a167fa64ce"; + }; + }; + "glob-7.1.4" = { + name = "glob"; + packageName = "glob"; + version = "7.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz"; + sha512 = "hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A=="; + }; + }; + "glob-to-regexp-0.4.1" = { + name = "glob-to-regexp"; + packageName = "glob-to-regexp"; + version = "0.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz"; + sha512 = "lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw=="; + }; + }; + "got-11.6.0" = { + name = "got"; + packageName = "got"; + version = "11.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/got/-/got-11.6.0.tgz"; + sha512 = "ErhWb4IUjQzJ3vGs3+RR12NWlBDDkRciFpAkQ1LPUxi6OnwhGj07gQxjPsyIk69s7qMihwKrKquV6VQq7JNYLA=="; + }; + }; + "graceful-fs-4.2.4" = { + name = "graceful-fs"; + packageName = "graceful-fs"; + version = "4.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz"; + sha512 = "WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="; + }; + }; + "has-flag-3.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz"; + sha1 = "b5d454dc2199ae225699f3467e5a07f3b955bafd"; + }; + }; + "has-flag-4.0.0" = { + name = "has-flag"; + packageName = "has-flag"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz"; + sha512 = "EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="; + }; + }; + "has-unicode-2.0.1" = { + name = "has-unicode"; + packageName = "has-unicode"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"; + sha1 = "e0e6fe6a28cf51138855e086d1691e771de2a8b9"; + }; + }; + "hash.js-1.1.7" = { + name = "hash.js"; + packageName = "hash.js"; + version = "1.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz"; + sha512 = "taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA=="; + }; + }; + "hasha-5.2.2" = { + name = "hasha"; + packageName = "hasha"; + version = "5.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/hasha/-/hasha-5.2.2.tgz"; + sha512 = "Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ=="; + }; + }; + "he-1.2.0" = { + name = "he"; + packageName = "he"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/he/-/he-1.2.0.tgz"; + sha512 = "F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw=="; + }; + }; + "highlight.js-10.4.1" = { + name = "highlight.js"; + packageName = "highlight.js"; + version = "10.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/highlight.js/-/highlight.js-10.4.1.tgz"; + sha512 = "yR5lWvNz7c85OhVAEAeFhVCc/GV4C30Fjzc/rCP0aCWzc1UUOPUk55dK/qdwTZHBvMZo+eZ2jpk62ndX/xMFlg=="; + }; + }; + "htmlencode-0.0.4" = { + name = "htmlencode"; + packageName = "htmlencode"; + version = "0.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlencode/-/htmlencode-0.0.4.tgz"; + sha1 = "f7e2d6afbe18a87a78e63ba3308e753766740e3f"; + }; + }; + "htmlparser2-4.1.0" = { + name = "htmlparser2"; + packageName = "htmlparser2"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/htmlparser2/-/htmlparser2-4.1.0.tgz"; + sha512 = "4zDq1a1zhE4gQso/c5LP1OtrhYTncXNSpvJYtWJBtXAETPlMfi3IFNjGuQbYLuVY4ZR0QMqRVvo4Pdy9KLyP8Q=="; + }; + }; + "http-cache-semantics-4.1.0" = { + name = "http-cache-semantics"; + packageName = "http-cache-semantics"; + version = "4.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz"; + sha512 = "carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ=="; + }; + }; + "http-errors-1.7.2" = { + name = "http-errors"; + packageName = "http-errors"; + version = "1.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz"; + sha512 = "uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg=="; + }; + }; + "http2-wrapper-1.0.0-beta.5.2" = { + name = "http2-wrapper"; + packageName = "http2-wrapper"; + version = "1.0.0-beta.5.2"; + src = fetchurl { + url = "https://registry.npmjs.org/http2-wrapper/-/http2-wrapper-1.0.0-beta.5.2.tgz"; + sha512 = "xYz9goEyBnC8XwXDTuC/MZ6t+MrKVQZOk4s7+PaDkwIsQd8IwqvM+0M6bA/2lvG8GHXcPdf+MejTUeO2LCPCeQ=="; + }; + }; + "iconv-lite-0.4.24" = { + name = "iconv-lite"; + packageName = "iconv-lite"; + version = "0.4.24"; + src = fetchurl { + url = "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz"; + sha512 = "v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA=="; + }; + }; + "ieee754-1.2.1" = { + name = "ieee754"; + packageName = "ieee754"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz"; + sha512 = "dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="; + }; + }; + "ignore-walk-3.0.3" = { + name = "ignore-walk"; + packageName = "ignore-walk"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz"; + sha512 = "m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw=="; + }; + }; + "inflight-1.0.6" = { + name = "inflight"; + packageName = "inflight"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz"; + sha1 = "49bd6331d7d02d0c09bc910a1075ba8165b56df9"; + }; + }; + "inherits-2.0.3" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz"; + sha1 = "633c2c83e3da42a502f52466022480f4208261de"; + }; + }; + "inherits-2.0.4" = { + name = "inherits"; + packageName = "inherits"; + version = "2.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz"; + sha512 = "k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="; + }; + }; + "ini-1.3.8" = { + name = "ini"; + packageName = "ini"; + version = "1.3.8"; + src = fetchurl { + url = "https://registry.npmjs.org/ini/-/ini-1.3.8.tgz"; + sha512 = "JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew=="; + }; + }; + "integer-3.0.1" = { + name = "integer"; + packageName = "integer"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/integer/-/integer-3.0.1.tgz"; + sha512 = "OqtER6W2GIJTIcnT5o2B/pWGgvurnVOYs4OZCgay40QEIbMTnNq4R0KSaIw1TZyFtPWjm5aNM+pBBMTfc3exmw=="; + }; + }; + "ipaddr.js-1.9.1" = { + name = "ipaddr.js"; + packageName = "ipaddr.js"; + version = "1.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz"; + sha512 = "0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="; + }; + }; + "is-arrayish-0.3.2" = { + name = "is-arrayish"; + packageName = "is-arrayish"; + version = "0.3.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz"; + sha512 = "eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ=="; + }; + }; + "is-extendable-0.1.1" = { + name = "is-extendable"; + packageName = "is-extendable"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz"; + sha1 = "62b110e289a471418e3ec36a617d472e301dfc89"; + }; + }; + "is-fullwidth-code-point-1.0.0" = { + name = "is-fullwidth-code-point"; + packageName = "is-fullwidth-code-point"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"; + sha1 = "ef9e31386f031a7f0d643af82fde50c457ef00cb"; + }; + }; + "is-promise-2.2.2" = { + name = "is-promise"; + packageName = "is-promise"; + version = "2.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz"; + sha512 = "+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ=="; + }; + }; + "is-stream-2.0.0" = { + name = "is-stream"; + packageName = "is-stream"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz"; + sha512 = "XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw=="; + }; + }; + "isarray-1.0.0" = { + name = "isarray"; + packageName = "isarray"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz"; + sha1 = "bb935d48582cba168c06834957a54a3e07124f11"; + }; + }; + "js-tokens-4.0.0" = { + name = "js-tokens"; + packageName = "js-tokens"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz"; + sha512 = "RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="; + }; + }; + "js-yaml-3.13.1" = { + name = "js-yaml"; + packageName = "js-yaml"; + version = "3.13.1"; + src = fetchurl { + url = "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz"; + sha512 = "YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw=="; + }; + }; + "json-buffer-3.0.1" = { + name = "json-buffer"; + packageName = "json-buffer"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz"; + sha512 = "4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="; + }; + }; + "keyv-4.0.1" = { + name = "keyv"; + packageName = "keyv"; + version = "4.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/keyv/-/keyv-4.0.1.tgz"; + sha512 = "xz6Jv6oNkbhrFCvCP7HQa8AaII8y8LRpoSm661NOKLr4uHuBwhX4epXrPQgF3+xdJnN4Esm5X0xwY4bOlALOtw=="; + }; + }; + "kuler-2.0.0" = { + name = "kuler"; + packageName = "kuler"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz"; + sha512 = "Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A=="; + }; + }; + "linkify-it-2.2.0" = { + name = "linkify-it"; + packageName = "linkify-it"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/linkify-it/-/linkify-it-2.2.0.tgz"; + sha512 = "GnAl/knGn+i1U/wjBz3akz2stz+HrHLsxMwHQGofCDfPvlf+gDKN58UtfmUquTY4/MXeE2x7k19KQmeoZi94Iw=="; + }; + }; + "lodash-4.17.20" = { + name = "lodash"; + packageName = "lodash"; + version = "4.17.20"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz"; + sha512 = "PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="; + }; + }; + "lodash.camelcase-4.3.0" = { + name = "lodash.camelcase"; + packageName = "lodash.camelcase"; + version = "4.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz"; + sha1 = "b28aa6288a2b9fc651035c7711f65ab6190331a6"; + }; + }; + "lodash.padend-4.6.1" = { + name = "lodash.padend"; + packageName = "lodash.padend"; + version = "4.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz"; + sha1 = "53ccba047d06e158d311f45da625f4e49e6f166e"; + }; + }; + "lodash.toarray-4.4.0" = { + name = "lodash.toarray"; + packageName = "lodash.toarray"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz"; + sha1 = "24c4bfcd6b2fba38bfd0594db1179d8e9b656561"; + }; + }; + "logform-1.10.0" = { + name = "logform"; + packageName = "logform"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/logform/-/logform-1.10.0.tgz"; + sha512 = "em5ojIhU18fIMOw/333mD+ZLE2fis0EzXl1ZwHx4iQzmpQi6odNiY/t+ITNr33JZhT9/KEaH+UPIipr6a9EjWg=="; + }; + }; + "logform-2.2.0" = { + name = "logform"; + packageName = "logform"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz"; + sha512 = "N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg=="; + }; + }; + "lowdb-1.0.0" = { + name = "lowdb"; + packageName = "lowdb"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lowdb/-/lowdb-1.0.0.tgz"; + sha512 = "2+x8esE/Wb9SQ1F9IHaYWfsC9FIecLOPrK4g17FGEayjUWH172H6nwicRovGvSE2CPZouc2MCIqCI7h9d+GftQ=="; + }; + }; + "lowercase-keys-2.0.0" = { + name = "lowercase-keys"; + packageName = "lowercase-keys"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz"; + sha512 = "tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA=="; + }; + }; + "lru-cache-6.0.0" = { + name = "lru-cache"; + packageName = "lru-cache"; + version = "6.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz"; + sha512 = "Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA=="; + }; + }; + "markdown-it-9.1.0" = { + name = "markdown-it"; + packageName = "markdown-it"; + version = "9.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/markdown-it/-/markdown-it-9.1.0.tgz"; + sha512 = "xHKG4C8iPriyfu/jc2hsCC045fKrMQ0VexX2F1FGYiRxDxqMB2aAhF8WauJ3fltn2kb90moGBkiiEdooGIg55w=="; + }; + }; + "matrix-discord-parser-0.1.7" = { + name = "matrix-discord-parser"; + packageName = "matrix-discord-parser"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/matrix-discord-parser/-/matrix-discord-parser-0.1.7.tgz"; + sha512 = "zL1L52Wsc80IaVPXGVMjfumpN+PJ6zAuXJ6EKf8HTjPvPx4J03ybHHUrDPw455WxaJp00SmuDq+wZZyOZTvIeQ=="; + }; + }; + "mdurl-1.0.1" = { + name = "mdurl"; + packageName = "mdurl"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mdurl/-/mdurl-1.0.1.tgz"; + sha1 = "fe85b2ec75a59037f2adfec100fd6c601761152e"; + }; + }; + "media-typer-0.3.0" = { + name = "media-typer"; + packageName = "media-typer"; + version = "0.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz"; + sha1 = "8710d7af0aa626f8fffa1ce00168545263255748"; + }; + }; + "merge-descriptors-1.0.1" = { + name = "merge-descriptors"; + packageName = "merge-descriptors"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"; + sha1 = "b00aaa556dd8b44568150ec9d1b953f3f90cbb61"; + }; + }; + "methods-1.1.2" = { + name = "methods"; + packageName = "methods"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz"; + sha1 = "5529a4d67654134edcc5266656835b0f851afcee"; + }; + }; + "mime-1.6.0" = { + name = "mime"; + packageName = "mime"; + version = "1.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz"; + sha512 = "x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="; + }; + }; + "mime-2.5.0" = { + name = "mime"; + packageName = "mime"; + version = "2.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz"; + sha512 = "ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag=="; + }; + }; + "mime-db-1.43.0" = { + name = "mime-db"; + packageName = "mime-db"; + version = "1.43.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-db/-/mime-db-1.43.0.tgz"; + sha512 = "+5dsGEEovYbT8UY9yD7eE4XTc4UwJ1jBYlgaQQF38ENsKR3wj/8q8RFZrF9WIZpB2V1ArTVFUva8sAul1NzRzQ=="; + }; + }; + "mime-types-2.1.26" = { + name = "mime-types"; + packageName = "mime-types"; + version = "2.1.26"; + src = fetchurl { + url = "https://registry.npmjs.org/mime-types/-/mime-types-2.1.26.tgz"; + sha512 = "01paPWYgLrkqAyrlDorC1uDwl2p3qZT7yl806vW7DvDoxwXi46jsjFbg+WdwotBIk6/MbEhO/dh5aZ5sNj/dWQ=="; + }; + }; + "mimic-response-1.0.1" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz"; + sha512 = "j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ=="; + }; + }; + "mimic-response-2.1.0" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "2.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz"; + sha512 = "wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="; + }; + }; + "mimic-response-3.1.0" = { + name = "mimic-response"; + packageName = "mimic-response"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/mimic-response/-/mimic-response-3.1.0.tgz"; + sha512 = "z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ=="; + }; + }; + "minimalistic-assert-1.0.1" = { + name = "minimalistic-assert"; + packageName = "minimalistic-assert"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz"; + sha512 = "UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A=="; + }; + }; + "minimatch-3.0.4" = { + name = "minimatch"; + packageName = "minimatch"; + version = "3.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz"; + sha512 = "yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA=="; + }; + }; + "minimist-1.2.5" = { + name = "minimist"; + packageName = "minimist"; + version = "1.2.5"; + src = fetchurl { + url = "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz"; + sha512 = "FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="; + }; + }; + "minipass-2.9.0" = { + name = "minipass"; + packageName = "minipass"; + version = "2.9.0"; + src = fetchurl { + url = "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz"; + sha512 = "wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg=="; + }; + }; + "minizlib-1.3.3" = { + name = "minizlib"; + packageName = "minizlib"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz"; + sha512 = "6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q=="; + }; + }; + "mkdirp-0.5.5" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "0.5.5"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz"; + sha512 = "NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ=="; + }; + }; + "mkdirp-1.0.4" = { + name = "mkdirp"; + packageName = "mkdirp"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz"; + sha512 = "vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="; + }; + }; + "mkdirp-classic-0.5.3" = { + name = "mkdirp-classic"; + packageName = "mkdirp-classic"; + version = "0.5.3"; + src = fetchurl { + url = "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz"; + sha512 = "gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="; + }; + }; + "moment-2.29.1" = { + name = "moment"; + packageName = "moment"; + version = "2.29.1"; + src = fetchurl { + url = "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz"; + sha512 = "kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="; + }; + }; + "morgan-1.10.0" = { + name = "morgan"; + packageName = "morgan"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz"; + sha512 = "AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ=="; + }; + }; + "ms-2.0.0" = { + name = "ms"; + packageName = "ms"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz"; + sha1 = "5608aeadfc00be6c2901df5f9861788de0d597c8"; + }; + }; + "ms-2.1.1" = { + name = "ms"; + packageName = "ms"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz"; + sha512 = "tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="; + }; + }; + "ms-2.1.3" = { + name = "ms"; + packageName = "ms"; + version = "2.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz"; + sha512 = "6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="; + }; + }; + "mx-puppet-bridge-0.1.4" = { + name = "mx-puppet-bridge"; + packageName = "mx-puppet-bridge"; + version = "0.1.4"; + src = fetchurl { + url = "https://registry.npmjs.org/mx-puppet-bridge/-/mx-puppet-bridge-0.1.4.tgz"; + sha512 = "Jg4hszVqQv1n35Mvb5HcfK4VafjB0LaCEay8ylgiu/M2oIPE0fadFNdQpkwssXmShDzSeth/xga3HgP8G6O5Fg=="; + }; + }; + "nan-2.14.2" = { + name = "nan"; + packageName = "nan"; + version = "2.14.2"; + src = fetchurl { + url = "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz"; + sha512 = "M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ=="; + }; + }; + "napi-build-utils-1.0.2" = { + name = "napi-build-utils"; + packageName = "napi-build-utils"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz"; + sha512 = "ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="; + }; + }; + "needle-2.6.0" = { + name = "needle"; + packageName = "needle"; + version = "2.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/needle/-/needle-2.6.0.tgz"; + sha512 = "KKYdza4heMsEfSWD7VPUIz3zX2XDwOyX2d+geb4vrERZMT5RMU6ujjaD+I5Yr54uZxQ2w6XRTAhHBbSCyovZBg=="; + }; + }; + "negotiator-0.6.2" = { + name = "negotiator"; + packageName = "negotiator"; + version = "0.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz"; + sha512 = "hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="; + }; + }; + "node-abi-2.19.3" = { + name = "node-abi"; + packageName = "node-abi"; + version = "2.19.3"; + src = fetchurl { + url = "https://registry.npmjs.org/node-abi/-/node-abi-2.19.3.tgz"; + sha512 = "9xZrlyfvKhWme2EXFKQhZRp1yNWT/uI1luYPr3sFl+H4keYY4xR+1jO7mvTTijIsHf1M+QDe9uWuKeEpLInIlg=="; + }; + }; + "node-emoji-1.10.0" = { + name = "node-emoji"; + packageName = "node-emoji"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz"; + sha512 = "Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw=="; + }; + }; + "node-fetch-2.6.1" = { + name = "node-fetch"; + packageName = "node-fetch"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz"; + sha512 = "V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="; + }; + }; + "node-html-parser-1.4.9" = { + name = "node-html-parser"; + packageName = "node-html-parser"; + version = "1.4.9"; + src = fetchurl { + url = "https://registry.npmjs.org/node-html-parser/-/node-html-parser-1.4.9.tgz"; + sha512 = "UVcirFD1Bn0O+TSmloHeHqZZCxHjvtIeGdVdGMhyZ8/PWlEiZaZ5iJzR189yKZr8p0FXN58BUeC7RHRkf/KYGw=="; + }; + }; + "node-pre-gyp-0.11.0" = { + name = "node-pre-gyp"; + packageName = "node-pre-gyp"; + version = "0.11.0"; + src = fetchurl { + url = "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz"; + sha512 = "TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q=="; + }; + }; + "noop-logger-0.1.1" = { + name = "noop-logger"; + packageName = "noop-logger"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz"; + sha1 = "94a2b1633c4f1317553007d8966fd0e841b6a4c2"; + }; + }; + "nopt-4.0.3" = { + name = "nopt"; + packageName = "nopt"; + version = "4.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz"; + sha512 = "CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg=="; + }; + }; + "normalize-url-4.5.0" = { + name = "normalize-url"; + packageName = "normalize-url"; + version = "4.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz"; + sha512 = "2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ=="; + }; + }; + "normalize-version-1.0.5" = { + name = "normalize-version"; + packageName = "normalize-version"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/normalize-version/-/normalize-version-1.0.5.tgz"; + sha1 = "a6a2b9002dc6fa2e5f15ec2f0b2c0284fb499712"; + }; + }; + "npm-bundled-1.1.1" = { + name = "npm-bundled"; + packageName = "npm-bundled"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz"; + sha512 = "gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA=="; + }; + }; + "npm-normalize-package-bin-1.0.1" = { + name = "npm-normalize-package-bin"; + packageName = "npm-normalize-package-bin"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz"; + sha512 = "EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA=="; + }; + }; + "npm-packlist-1.4.8" = { + name = "npm-packlist"; + packageName = "npm-packlist"; + version = "1.4.8"; + src = fetchurl { + url = "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz"; + sha512 = "5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A=="; + }; + }; + "npmlog-4.1.2" = { + name = "npmlog"; + packageName = "npmlog"; + version = "4.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"; + sha512 = "2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="; + }; + }; + "number-is-nan-1.0.1" = { + name = "number-is-nan"; + packageName = "number-is-nan"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"; + sha1 = "097b602b53422a522c1afb8790318336941a011d"; + }; + }; + "object-assign-4.1.1" = { + name = "object-assign"; + packageName = "object-assign"; + version = "4.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz"; + sha1 = "2109adc7965887cfc05cbbd442cac8bfbb360863"; + }; + }; + "object-hash-1.3.1" = { + name = "object-hash"; + packageName = "object-hash"; + version = "1.3.1"; + src = fetchurl { + url = "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz"; + sha512 = "OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="; + }; + }; + "on-finished-2.3.0" = { + name = "on-finished"; + packageName = "on-finished"; + version = "2.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz"; + sha1 = "20f1336481b083cd75337992a16971aa2d906947"; + }; + }; + "on-headers-1.0.2" = { + name = "on-headers"; + packageName = "on-headers"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz"; + sha512 = "pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA=="; + }; + }; + "once-1.4.0" = { + name = "once"; + packageName = "once"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/once/-/once-1.4.0.tgz"; + sha1 = "583b1aa775961d4b113ac17d9c50baef9dd76bd1"; + }; + }; + "one-time-1.0.0" = { + name = "one-time"; + packageName = "one-time"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz"; + sha512 = "5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g=="; + }; + }; + "os-homedir-1.0.2" = { + name = "os-homedir"; + packageName = "os-homedir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"; + sha1 = "ffbc4988336e0e833de0c168c7ef152121aa7fb3"; + }; + }; + "os-tmpdir-1.0.2" = { + name = "os-tmpdir"; + packageName = "os-tmpdir"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"; + sha1 = "bbe67406c79aa85c5cfec766fe5734555dfa1274"; + }; + }; + "osenv-0.1.5" = { + name = "osenv"; + packageName = "osenv"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"; + sha512 = "0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="; + }; + }; + "p-cancelable-2.0.0" = { + name = "p-cancelable"; + packageName = "p-cancelable"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/p-cancelable/-/p-cancelable-2.0.0.tgz"; + sha512 = "wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg=="; + }; + }; + "packet-reader-1.0.0" = { + name = "packet-reader"; + packageName = "packet-reader"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/packet-reader/-/packet-reader-1.0.0.tgz"; + sha512 = "HAKu/fG3HpHFO0AA8WE8q2g+gBJaZ9MG7fcKk+IJPLTGAD6Psw4443l+9DGRbOIh3/aXr7Phy0TjilYivJo5XQ=="; + }; + }; + "parse-srcset-1.0.2" = { + name = "parse-srcset"; + packageName = "parse-srcset"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/parse-srcset/-/parse-srcset-1.0.2.tgz"; + sha1 = "f2bd221f6cc970a938d88556abc589caaaa2bde1"; + }; + }; + "parseurl-1.3.3" = { + name = "parseurl"; + packageName = "parseurl"; + version = "1.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz"; + sha512 = "CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="; + }; + }; + "path-0.12.7" = { + name = "path"; + packageName = "path"; + version = "0.12.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path/-/path-0.12.7.tgz"; + sha1 = "d4dc2a506c4ce2197eb481ebfcd5b36c0140b10f"; + }; + }; + "path-is-absolute-1.0.1" = { + name = "path-is-absolute"; + packageName = "path-is-absolute"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz"; + sha1 = "174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"; + }; + }; + "path-parse-1.0.6" = { + name = "path-parse"; + packageName = "path-parse"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"; + sha512 = "GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="; + }; + }; + "path-to-regexp-0.1.7" = { + name = "path-to-regexp"; + packageName = "path-to-regexp"; + version = "0.1.7"; + src = fetchurl { + url = "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz"; + sha1 = "df604178005f522f15eb4490e7247a1bfaa67f8c"; + }; + }; + "pg-8.5.1" = { + name = "pg"; + packageName = "pg"; + version = "8.5.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg/-/pg-8.5.1.tgz"; + sha512 = "9wm3yX9lCfjvA98ybCyw2pADUivyNWT/yIP4ZcDVpMN0og70BUWYEGXPCTAQdGTAqnytfRADb7NERrY1qxhIqw=="; + }; + }; + "pg-connection-string-2.4.0" = { + name = "pg-connection-string"; + packageName = "pg-connection-string"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-connection-string/-/pg-connection-string-2.4.0.tgz"; + sha512 = "3iBXuv7XKvxeMrIgym7njT+HlZkwZqqGX4Bu9cci8xHZNT+Um1gWKqCsAzcC0d95rcKMU5WBg6YRUcHyV0HZKQ=="; + }; + }; + "pg-int8-1.0.1" = { + name = "pg-int8"; + packageName = "pg-int8"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-int8/-/pg-int8-1.0.1.tgz"; + sha512 = "WCtabS6t3c8SkpDBUlb1kjOs7l66xsGdKpIPZsg4wR+B3+u9UAum2odSsF9tnvxg80h4ZxLWMy4pRjOsFIqQpw=="; + }; + }; + "pg-minify-1.6.2" = { + name = "pg-minify"; + packageName = "pg-minify"; + version = "1.6.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-minify/-/pg-minify-1.6.2.tgz"; + sha512 = "1KdmFGGTP6jplJoI8MfvRlfvMiyBivMRP7/ffh4a11RUFJ7kC2J0ZHlipoKiH/1hz+DVgceon9U2qbaHpPeyPg=="; + }; + }; + "pg-pool-3.2.2" = { + name = "pg-pool"; + packageName = "pg-pool"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-pool/-/pg-pool-3.2.2.tgz"; + sha512 = "ORJoFxAlmmros8igi608iVEbQNNZlp89diFVx6yV5v+ehmpMY9sK6QgpmgoXbmkNaBAx8cOOZh9g80kJv1ooyA=="; + }; + }; + "pg-promise-10.9.1" = { + name = "pg-promise"; + packageName = "pg-promise"; + version = "10.9.1"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-promise/-/pg-promise-10.9.1.tgz"; + sha512 = "Om5sYmsm2NWXP+D0Soappb4fuidER9qNLcnVo9nBPFqwPfpnBZZPzzLaVvwBXs//+kJ9L4bBTXm2iWNAp39e2A=="; + }; + }; + "pg-protocol-1.4.0" = { + name = "pg-protocol"; + packageName = "pg-protocol"; + version = "1.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-protocol/-/pg-protocol-1.4.0.tgz"; + sha512 = "El+aXWcwG/8wuFICMQjM5ZSAm6OWiJicFdNYo+VY3QP+8vI4SvLIWVe51PppTzMhikUJR+PsyIFKqfdXPz/yxA=="; + }; + }; + "pg-types-2.2.0" = { + name = "pg-types"; + packageName = "pg-types"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pg-types/-/pg-types-2.2.0.tgz"; + sha512 = "qTAAlrEsl8s4OiEQY69wDvcMIdQN6wdz5ojQiOy6YRMuynxenON0O5oCpJI6lshc6scgAY8qvJ2On/p+CXY0GA=="; + }; + }; + "pgpass-1.0.4" = { + name = "pgpass"; + packageName = "pgpass"; + version = "1.0.4"; + src = fetchurl { + url = "https://registry.npmjs.org/pgpass/-/pgpass-1.0.4.tgz"; + sha512 = "YmuA56alyBq7M59vxVBfPJrGSozru8QAdoNlWuW3cz8l+UX3cWge0vTvjKhsSHSJpo3Bom8/Mm6hf0TR5GY0+w=="; + }; + }; + "pify-3.0.0" = { + name = "pify"; + packageName = "pify"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz"; + sha1 = "e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176"; + }; + }; + "postcss-7.0.35" = { + name = "postcss"; + packageName = "postcss"; + version = "7.0.35"; + src = fetchurl { + url = "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz"; + sha512 = "3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg=="; + }; + }; + "postgres-array-2.0.0" = { + name = "postgres-array"; + packageName = "postgres-array"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-array/-/postgres-array-2.0.0.tgz"; + sha512 = "VpZrUqU5A69eQyW2c5CA1jtLecCsN2U/bD6VilrFDWq5+5UIEVO7nazS3TEcHf1zuPYO/sqGvUvW62g86RXZuA=="; + }; + }; + "postgres-bytea-1.0.0" = { + name = "postgres-bytea"; + packageName = "postgres-bytea"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-bytea/-/postgres-bytea-1.0.0.tgz"; + sha1 = "027b533c0aa890e26d172d47cf9ccecc521acd35"; + }; + }; + "postgres-date-1.0.7" = { + name = "postgres-date"; + packageName = "postgres-date"; + version = "1.0.7"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-date/-/postgres-date-1.0.7.tgz"; + sha512 = "suDmjLVQg78nMK2UZ454hAG+OAW+HQPZ6n++TNDUX+L0+uUlLywnoxJKDou51Zm+zTCjrCl0Nq6J9C5hP9vK/Q=="; + }; + }; + "postgres-interval-1.2.0" = { + name = "postgres-interval"; + packageName = "postgres-interval"; + version = "1.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/postgres-interval/-/postgres-interval-1.2.0.tgz"; + sha512 = "9ZhXKM/rw350N1ovuWHbGxnGh/SNJ4cnxHiM0rxE4VN41wsg8P8zWn9hv/buK00RP4WvlOyr/RBDiptyxVbkZQ=="; + }; + }; + "prebuild-install-5.3.6" = { + name = "prebuild-install"; + packageName = "prebuild-install"; + version = "5.3.6"; + src = fetchurl { + url = "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.6.tgz"; + sha512 = "s8Aai8++QQGi4sSbs/M1Qku62PFK49Jm1CbgXklGz4nmHveDq0wzJkg7Na5QbnO1uNH8K7iqx2EQ/mV0MZEmOg=="; + }; + }; + "prism-media-1.2.3" = { + name = "prism-media"; + packageName = "prism-media"; + version = "1.2.3"; + src = fetchurl { + url = "https://registry.npmjs.org/prism-media/-/prism-media-1.2.3.tgz"; + sha512 = "fSrR66n0l6roW9Rx4rSLMyTPTjRTiXy5RVqDOurACQ6si1rKHHKDU5gwBJoCsIV0R3o9gi+K50akl/qyw1C74A=="; + }; + }; + "process-0.11.10" = { + name = "process"; + packageName = "process"; + version = "0.11.10"; + src = fetchurl { + url = "https://registry.npmjs.org/process/-/process-0.11.10.tgz"; + sha1 = "7332300e840161bda3e69a1d1d91a7d4bc16f182"; + }; + }; + "process-nextick-args-2.0.1" = { + name = "process-nextick-args"; + packageName = "process-nextick-args"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz"; + sha512 = "3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="; + }; + }; + "prom-client-13.0.0" = { + name = "prom-client"; + packageName = "prom-client"; + version = "13.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/prom-client/-/prom-client-13.0.0.tgz"; + sha512 = "M7ZNjIO6x+2R/vjSD13yjJPjpoZA8eEwH2Bp2Re0/PvzozD7azikv+SaBtZes4Q1ca/xHjZ4RSCuTag3YZLg1A=="; + }; + }; + "proxy-addr-2.0.6" = { + name = "proxy-addr"; + packageName = "proxy-addr"; + version = "2.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz"; + sha512 = "dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw=="; + }; + }; + "pump-3.0.0" = { + name = "pump"; + packageName = "pump"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz"; + sha512 = "LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww=="; + }; + }; + "qs-6.7.0" = { + name = "qs"; + packageName = "qs"; + version = "6.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz"; + sha512 = "VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="; + }; + }; + "quick-lru-5.1.1" = { + name = "quick-lru"; + packageName = "quick-lru"; + version = "5.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/quick-lru/-/quick-lru-5.1.1.tgz"; + sha512 = "WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA=="; + }; + }; + "range-parser-1.2.1" = { + name = "range-parser"; + packageName = "range-parser"; + version = "1.2.1"; + src = fetchurl { + url = "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz"; + sha512 = "Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="; + }; + }; + "raw-body-2.4.0" = { + name = "raw-body"; + packageName = "raw-body"; + version = "2.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz"; + sha512 = "4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q=="; + }; + }; + "rc-1.2.8" = { + name = "rc"; + packageName = "rc"; + version = "1.2.8"; + src = fetchurl { + url = "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz"; + sha512 = "y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw=="; + }; + }; + "readable-stream-2.3.7" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "2.3.7"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"; + sha512 = "Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw=="; + }; + }; + "readable-stream-3.6.0" = { + name = "readable-stream"; + packageName = "readable-stream"; + version = "3.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz"; + sha512 = "BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA=="; + }; + }; + "reduce-flatten-1.0.1" = { + name = "reduce-flatten"; + packageName = "reduce-flatten"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-1.0.1.tgz"; + sha1 = "258c78efd153ddf93cb561237f61184f3696e327"; + }; + }; + "resolve-1.11.1" = { + name = "resolve"; + packageName = "resolve"; + version = "1.11.1"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve/-/resolve-1.11.1.tgz"; + sha512 = "vIpgF6wfuJOZI7KKKSP+HmiKggadPQAdsp5HiC1mvqnfp0gF1vdwgBWZIdrVft9pgqoMFQN+R7BSWZiBxx+BBw=="; + }; + }; + "resolve-alpn-1.0.0" = { + name = "resolve-alpn"; + packageName = "resolve-alpn"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/resolve-alpn/-/resolve-alpn-1.0.0.tgz"; + sha512 = "rTuiIEqFmGxne4IovivKSDzld2lWW9QCjqv80SYjPgf+gS35eaCAjaP54CCwGAwBtnCsvNLYtqxe1Nw+i6JEmA=="; + }; + }; + "responselike-2.0.0" = { + name = "responselike"; + packageName = "responselike"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/responselike/-/responselike-2.0.0.tgz"; + sha512 = "xH48u3FTB9VsZw7R+vvgaKeLKzT6jOogbQhEe/jewwnZgzPcnyWui2Av6JpoYZF/91uueC+lqhWqeURw5/qhCw=="; + }; + }; + "rimraf-2.7.1" = { + name = "rimraf"; + packageName = "rimraf"; + version = "2.7.1"; + src = fetchurl { + url = "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz"; + sha512 = "uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w=="; + }; + }; + "safe-buffer-5.1.2" = { + name = "safe-buffer"; + packageName = "safe-buffer"; + version = "5.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz"; + sha512 = "Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="; + }; + }; + "safer-buffer-2.1.2" = { + name = "safer-buffer"; + packageName = "safer-buffer"; + version = "2.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz"; + sha512 = "YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="; + }; + }; + "sanitize-html-1.27.5" = { + name = "sanitize-html"; + packageName = "sanitize-html"; + version = "1.27.5"; + src = fetchurl { + url = "https://registry.npmjs.org/sanitize-html/-/sanitize-html-1.27.5.tgz"; + sha512 = "M4M5iXDAUEcZKLXkmk90zSYWEtk5NH3JmojQxKxV371fnMh+x9t1rqdmXaGoyEHw3z/X/8vnFhKjGL5xFGOJ3A=="; + }; + }; + "sax-1.2.4" = { + name = "sax"; + packageName = "sax"; + version = "1.2.4"; + src = fetchurl { + url = "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz"; + sha512 = "NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw=="; + }; + }; + "semver-5.7.0" = { + name = "semver"; + packageName = "semver"; + version = "5.7.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-5.7.0.tgz"; + sha512 = "Ya52jSX2u7QKghxeoFGpLwCtGlt7j0oY9DYb5apt9nPlJ42ID+ulTXESnt/qAQcoSERyZ5sl3LDIOw0nAn/5DA=="; + }; + }; + "semver-6.3.0" = { + name = "semver"; + packageName = "semver"; + version = "6.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz"; + sha512 = "b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="; + }; + }; + "semver-closest-0.1.2" = { + name = "semver-closest"; + packageName = "semver-closest"; + version = "0.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/semver-closest/-/semver-closest-0.1.2.tgz"; + sha512 = "Q6qk0bPNlK5zG62mWFC8L0Qc6OJX76XRWxiPgZyrh98IZTL3HPErgUlPfCyrAPsHVpU+YP4lf5Mz+LzpId91Og=="; + }; + }; + "send-0.17.1" = { + name = "send"; + packageName = "send"; + version = "0.17.1"; + src = fetchurl { + url = "https://registry.npmjs.org/send/-/send-0.17.1.tgz"; + sha512 = "BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg=="; + }; + }; + "serve-static-1.14.1" = { + name = "serve-static"; + packageName = "serve-static"; + version = "1.14.1"; + src = fetchurl { + url = "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz"; + sha512 = "JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg=="; + }; + }; + "set-blocking-2.0.0" = { + name = "set-blocking"; + packageName = "set-blocking"; + version = "2.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"; + sha1 = "045f9782d011ae9a6803ddd382b24392b3d890f7"; + }; + }; + "setimmediate-1.0.5" = { + name = "setimmediate"; + packageName = "setimmediate"; + version = "1.0.5"; + src = fetchurl { + url = "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz"; + sha1 = "290cbb232e306942d7d7ea9b83732ab7856f8285"; + }; + }; + "setprototypeof-1.1.1" = { + name = "setprototypeof"; + packageName = "setprototypeof"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz"; + sha512 = "JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="; + }; + }; + "signal-exit-3.0.3" = { + name = "signal-exit"; + packageName = "signal-exit"; + version = "3.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"; + sha512 = "VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="; + }; + }; + "simple-concat-1.0.1" = { + name = "simple-concat"; + packageName = "simple-concat"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz"; + sha512 = "cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="; + }; + }; + "simple-get-3.1.0" = { + name = "simple-get"; + packageName = "simple-get"; + version = "3.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz"; + sha512 = "bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA=="; + }; + }; + "simple-markdown-0.7.2" = { + name = "simple-markdown"; + packageName = "simple-markdown"; + version = "0.7.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-markdown/-/simple-markdown-0.7.2.tgz"; + sha512 = "XfCvqqzMyzRj4L7eIxJgGaQ2Gaxr20GhTFMB+1yuY8q3xffjzmOg4Q5tC0kcaJPV42NNUHCQDaRK6jzi3/RhrA=="; + }; + }; + "simple-swizzle-0.2.2" = { + name = "simple-swizzle"; + packageName = "simple-swizzle"; + version = "0.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz"; + sha1 = "a4da6b635ffcccca33f70d17cb92592de95e557a"; + }; + }; + "source-map-0.6.1" = { + name = "source-map"; + packageName = "source-map"; + version = "0.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz"; + sha512 = "UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="; + }; + }; + "spex-3.2.0" = { + name = "spex"; + packageName = "spex"; + version = "3.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/spex/-/spex-3.2.0.tgz"; + sha512 = "9srjJM7NaymrpwMHvSmpDeIK5GoRMX/Tq0E8aOlDPS54dDnDUIp30DrP9SphMPEETDLzEM9+4qo+KipmbtPecg=="; + }; + }; + "split2-3.2.2" = { + name = "split2"; + packageName = "split2"; + version = "3.2.2"; + src = fetchurl { + url = "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz"; + sha512 = "9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg=="; + }; + }; + "sprintf-js-1.0.3" = { + name = "sprintf-js"; + packageName = "sprintf-js"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz"; + sha1 = "04e6926f662895354f3dd015203633b857297e2c"; + }; + }; + "stack-trace-0.0.10" = { + name = "stack-trace"; + packageName = "stack-trace"; + version = "0.0.10"; + src = fetchurl { + url = "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz"; + sha1 = "547c70b347e8d32b4e108ea1a2a159e5fdde19c0"; + }; + }; + "statuses-1.5.0" = { + name = "statuses"; + packageName = "statuses"; + version = "1.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"; + sha1 = "161c7dac177659fd9811f43771fa99381478628c"; + }; + }; + "steno-0.4.4" = { + name = "steno"; + packageName = "steno"; + version = "0.4.4"; + src = fetchurl { + url = "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz"; + sha1 = "071105bdfc286e6615c0403c27e9d7b5dcb855cb"; + }; + }; + "string-width-1.0.2" = { + name = "string-width"; + packageName = "string-width"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"; + sha1 = "118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3"; + }; + }; + "string_decoder-1.1.1" = { + name = "string_decoder"; + packageName = "string_decoder"; + version = "1.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz"; + sha512 = "n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg=="; + }; + }; + "strip-ansi-3.0.1" = { + name = "strip-ansi"; + packageName = "strip-ansi"; + version = "3.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"; + sha1 = "6a385fb8853d952d5ff05d0e8aaf94278dc63dcf"; + }; + }; + "strip-json-comments-2.0.1" = { + name = "strip-json-comments"; + packageName = "strip-json-comments"; + version = "2.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz"; + sha1 = "3c531942e908c2697c0ec344858c286c7ca0a60a"; + }; + }; + "supports-color-5.5.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "5.5.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz"; + sha512 = "QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow=="; + }; + }; + "supports-color-6.1.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "6.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz"; + sha512 = "qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ=="; + }; + }; + "supports-color-7.2.0" = { + name = "supports-color"; + packageName = "supports-color"; + version = "7.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz"; + sha512 = "qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="; + }; + }; + "table-layout-0.4.5" = { + name = "table-layout"; + packageName = "table-layout"; + version = "0.4.5"; + src = fetchurl { + url = "https://registry.npmjs.org/table-layout/-/table-layout-0.4.5.tgz"; + sha512 = "zTvf0mcggrGeTe/2jJ6ECkJHAQPIYEwDoqsiqBjI24mvRmQbInK5jq33fyypaCBxX08hMkfmdOqj6haT33EqWw=="; + }; + }; + "tar-4.4.10" = { + name = "tar"; + packageName = "tar"; + version = "4.4.10"; + src = fetchurl { + url = "https://registry.npmjs.org/tar/-/tar-4.4.10.tgz"; + sha512 = "g2SVs5QIxvo6OLp0GudTqEf05maawKUxXru104iaayWA09551tFCTI8f1Asb4lPfkBr91k07iL4c11XO3/b0tA=="; + }; + }; + "tar-fs-2.1.1" = { + name = "tar-fs"; + packageName = "tar-fs"; + version = "2.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.1.tgz"; + sha512 = "V0r2Y9scmbDRLCNex/+hYzvp/zyYjvFbHPNgVTKfQvVrb6guiE/fxP+XblDNR011utopbkex2nM4dHNV6GDsng=="; + }; + }; + "tar-stream-2.2.0" = { + name = "tar-stream"; + packageName = "tar-stream"; + version = "2.2.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz"; + sha512 = "ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ=="; + }; + }; + "tdigest-0.1.1" = { + name = "tdigest"; + packageName = "tdigest"; + version = "0.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/tdigest/-/tdigest-0.1.1.tgz"; + sha1 = "2e3cb2c39ea449e55d1e6cd91117accca4588021"; + }; + }; + "text-hex-1.0.0" = { + name = "text-hex"; + packageName = "text-hex"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz"; + sha512 = "uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg=="; + }; + }; + "toidentifier-1.0.0" = { + name = "toidentifier"; + packageName = "toidentifier"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz"; + sha512 = "yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="; + }; + }; + "triple-beam-1.3.0" = { + name = "triple-beam"; + packageName = "triple-beam"; + version = "1.3.0"; + src = fetchurl { + url = "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz"; + sha512 = "XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw=="; + }; + }; + "tslib-1.10.0" = { + name = "tslib"; + packageName = "tslib"; + version = "1.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz"; + sha512 = "qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="; + }; + }; + "tslint-5.18.0" = { + name = "tslint"; + packageName = "tslint"; + version = "5.18.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz"; + sha512 = "Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w=="; + }; + }; + "tsutils-2.29.0" = { + name = "tsutils"; + packageName = "tsutils"; + version = "2.29.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz"; + sha512 = "g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA=="; + }; + }; + "tunnel-agent-0.6.0" = { + name = "tunnel-agent"; + packageName = "tunnel-agent"; + version = "0.6.0"; + src = fetchurl { + url = "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"; + sha1 = "27a5dea06b36b04a0a9966774b290868f0fc40fd"; + }; + }; + "tweetnacl-1.0.3" = { + name = "tweetnacl"; + packageName = "tweetnacl"; + version = "1.0.3"; + src = fetchurl { + url = "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz"; + sha512 = "6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw=="; + }; + }; + "type-fest-0.8.1" = { + name = "type-fest"; + packageName = "type-fest"; + version = "0.8.1"; + src = fetchurl { + url = "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz"; + sha512 = "4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="; + }; + }; + "type-is-1.6.18" = { + name = "type-is"; + packageName = "type-is"; + version = "1.6.18"; + src = fetchurl { + url = "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz"; + sha512 = "TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g=="; + }; + }; + "typescript-3.7.4" = { + name = "typescript"; + packageName = "typescript"; + version = "3.7.4"; + src = fetchurl { + url = "https://registry.npmjs.org/typescript/-/typescript-3.7.4.tgz"; + sha512 = "A25xv5XCtarLwXpcDNZzCGvW2D1S3/bACratYBx2sax8PefsFhlYmkQicKHvpYflFS8if4zne5zT5kpJ7pzuvw=="; + }; + }; + "typical-2.6.1" = { + name = "typical"; + packageName = "typical"; + version = "2.6.1"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-2.6.1.tgz"; + sha1 = "5c080e5d661cbbe38259d2e70a3c7253e873881d"; + }; + }; + "typical-4.0.0" = { + name = "typical"; + packageName = "typical"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz"; + sha512 = "VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw=="; + }; + }; + "uc.micro-1.0.6" = { + name = "uc.micro"; + packageName = "uc.micro"; + version = "1.0.6"; + src = fetchurl { + url = "https://registry.npmjs.org/uc.micro/-/uc.micro-1.0.6.tgz"; + sha512 = "8Y75pvTYkLJW2hWQHXxoqRgV7qb9B+9vFEtidML+7koHUFapnVJAZ6cKs+Qjz5Aw3aZWHMC6u0wJE3At+nSGwA=="; + }; + }; + "unescape-1.0.1" = { + name = "unescape"; + packageName = "unescape"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/unescape/-/unescape-1.0.1.tgz"; + sha512 = "O0+af1Gs50lyH1nUu3ZyYS1cRh01Q/kUKatTOkSs7jukXE6/NebucDVxyiDsA9AQ4JC1V1jUH9EO8JX2nMDgGQ=="; + }; + }; + "unescape-html-1.1.0" = { + name = "unescape-html"; + packageName = "unescape-html"; + version = "1.1.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unescape-html/-/unescape-html-1.1.0.tgz"; + sha512 = "O9/yBNqIkArjS597iHez5hAaAdn7b8/230SX8IncgXAX5tWI9XlEQYaz6Qbou0Sloa9n6lx9G5s6hg5qhJyzGg=="; + }; + }; + "unpipe-1.0.0" = { + name = "unpipe"; + packageName = "unpipe"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz"; + sha1 = "b2bf4ee8514aae6165b4817829d21b2ef49904ec"; + }; + }; + "useragent-generator-1.1.1-amkt-22079-finish.0" = { + name = "useragent-generator"; + packageName = "useragent-generator"; + version = "1.1.1-amkt-22079-finish.0"; + src = fetchurl { + url = "https://registry.npmjs.org/useragent-generator/-/useragent-generator-1.1.1-amkt-22079-finish.0.tgz"; + sha512 = "jUVHvx1t3bVjx2dI9fG4iKzjO5WA6qtjWaR/PitNvd6zQMJNlFYehNwRUaAAKkhBCkw1T0U9e2oG9Sg3wSmc6Q=="; + }; + }; + "util-0.10.4" = { + name = "util"; + packageName = "util"; + version = "0.10.4"; + src = fetchurl { + url = "https://registry.npmjs.org/util/-/util-0.10.4.tgz"; + sha512 = "0Pm9hTQ3se5ll1XihRic3FDIku70C+iHUdT/W926rSgHV5QgXsYbKZN8MSC3tJtSkhuROzvsQjAaFENRXr+19A=="; + }; + }; + "util-deprecate-1.0.2" = { + name = "util-deprecate"; + packageName = "util-deprecate"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz"; + sha1 = "450d4dc9fa70de732762fbd2d4a28981419a0ccf"; + }; + }; + "utils-merge-1.0.1" = { + name = "utils-merge"; + packageName = "utils-merge"; + version = "1.0.1"; + src = fetchurl { + url = "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz"; + sha1 = "9f95710f50a267947b2ccc124741c1028427e713"; + }; + }; + "uuid-3.4.0" = { + name = "uuid"; + packageName = "uuid"; + version = "3.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"; + sha512 = "HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="; + }; + }; + "vary-1.1.2" = { + name = "vary"; + packageName = "vary"; + version = "1.1.2"; + src = fetchurl { + url = "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz"; + sha1 = "2299f02c6ded30d4a5961b0b9f74524a18f634fc"; + }; + }; + "which-pm-runs-1.0.0" = { + name = "which-pm-runs"; + packageName = "which-pm-runs"; + version = "1.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz"; + sha1 = "670b3afbc552e0b55df6b7780ca74615f23ad1cb"; + }; + }; + "wide-align-1.1.3" = { + name = "wide-align"; + packageName = "wide-align"; + version = "1.1.3"; + src = fetchurl { + url = "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"; + sha512 = "QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="; + }; + }; + "winston-3.3.3" = { + name = "winston"; + packageName = "winston"; + version = "3.3.3"; + src = fetchurl { + url = "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz"; + sha512 = "oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw=="; + }; + }; + "winston-compat-0.1.5" = { + name = "winston-compat"; + packageName = "winston-compat"; + version = "0.1.5"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-compat/-/winston-compat-0.1.5.tgz"; + sha512 = "EPvPcHT604AV3Ji6d3+vX8ENKIml9VSxMRnPQ+cuK/FX6f3hvPP2hxyoeeCOCFvDrJEujalfcKWlWPvAnFyS9g=="; + }; + }; + "winston-daily-rotate-file-3.10.0" = { + name = "winston-daily-rotate-file"; + packageName = "winston-daily-rotate-file"; + version = "3.10.0"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-daily-rotate-file/-/winston-daily-rotate-file-3.10.0.tgz"; + sha512 = "KO8CfbI2CvdR3PaFApEH02GPXiwJ+vbkF1mCkTlvRIoXFI8EFlf1ACcuaahXTEiDEKCii6cNe95gsL4ZkbnphA=="; + }; + }; + "winston-transport-4.4.0" = { + name = "winston-transport"; + packageName = "winston-transport"; + version = "4.4.0"; + src = fetchurl { + url = "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz"; + sha512 = "Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw=="; + }; + }; + "wordwrapjs-3.0.0" = { + name = "wordwrapjs"; + packageName = "wordwrapjs"; + version = "3.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-3.0.0.tgz"; + sha512 = "mO8XtqyPvykVCsrwj5MlOVWvSnCdT+C+QVbm6blradR7JExAhbkZ7hZ9A+9NUtwzSqrlUo9a67ws0EiILrvRpw=="; + }; + }; + "wrappy-1.0.2" = { + name = "wrappy"; + packageName = "wrappy"; + version = "1.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz"; + sha1 = "b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"; + }; + }; + "ws-7.4.1" = { + name = "ws"; + packageName = "ws"; + version = "7.4.1"; + src = fetchurl { + url = "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz"; + sha512 = "pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ=="; + }; + }; + "xtend-4.0.2" = { + name = "xtend"; + packageName = "xtend"; + version = "4.0.2"; + src = fetchurl { + url = "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz"; + sha512 = "LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ=="; + }; + }; + "yallist-3.1.1" = { + name = "yallist"; + packageName = "yallist"; + version = "3.1.1"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz"; + sha512 = "a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="; + }; + }; + "yallist-4.0.0" = { + name = "yallist"; + packageName = "yallist"; + version = "4.0.0"; + src = fetchurl { + url = "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz"; + sha512 = "3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="; + }; + }; + }; + args = { + name = "mx-puppet-discord"; + packageName = "mx-puppet-discord"; + version = "0.0.0"; + src = ./.; + dependencies = [ + sources."@babel/code-frame-7.0.0" + sources."@babel/highlight-7.0.0" + sources."@dabh/diagnostics-2.0.2" + sources."@discordjs/collection-0.1.6" + sources."@discordjs/form-data-3.0.1" + sources."@sindresorhus/is-3.1.2" + (sources."@sorunome/matrix-bot-sdk-0.5.8" // { + dependencies = [ + sources."ansi-styles-4.3.0" + sources."chalk-4.1.0" + sources."color-convert-2.0.1" + sources."color-name-1.1.4" + sources."has-flag-4.0.0" + sources."mkdirp-1.0.4" + sources."supports-color-7.2.0" + ]; + }) + sources."@szmarczak/http-timer-4.0.5" + sources."@types/body-parser-1.19.0" + sources."@types/cacheable-request-6.0.1" + sources."@types/connect-3.4.34" + sources."@types/express-4.17.11" + sources."@types/express-serve-static-core-4.17.18" + sources."@types/http-cache-semantics-4.0.0" + sources."@types/keyv-3.1.1" + sources."@types/node-14.6.3" + sources."@types/prop-types-15.7.3" + sources."@types/qs-6.9.5" + sources."@types/range-parser-1.2.3" + sources."@types/react-17.0.0" + sources."@types/responselike-1.0.0" + (sources."@types/serve-static-1.13.9" // { + dependencies = [ + sources."@types/mime-1.3.2" + ]; + }) + sources."abbrev-1.1.1" + sources."abort-controller-3.0.0" + sources."accepts-1.3.7" + sources."ansi-regex-2.1.1" + sources."ansi-styles-3.2.1" + sources."aproba-1.2.0" + sources."are-we-there-yet-1.1.5" + sources."argparse-1.0.10" + sources."array-back-3.1.0" + sources."array-flatten-1.1.1" + sources."assert-options-0.7.0" + sources."async-3.2.0" + sources."asynckit-0.4.0" + sources."balanced-match-1.0.0" + sources."base64-js-1.5.1" + sources."basic-auth-2.0.1" + sources."better-discord.js-git+https://github.com/Sorunome/better-discord.js.git#5e58e1e7510cf2192f3503ca146dd61a56a75c72" + sources."better-sqlite3-6.0.1" + sources."bindings-1.5.0" + sources."bintrees-1.0.1" + (sources."bl-4.0.3" // { + dependencies = [ + sources."inherits-2.0.4" + sources."readable-stream-3.6.0" + ]; + }) + sources."blurhash-1.1.3" + sources."body-parser-1.19.0" + sources."brace-expansion-1.1.11" + sources."buffer-5.7.1" + sources."buffer-writer-2.0.0" + sources."builtin-modules-1.1.1" + sources."bytes-3.1.0" + sources."cacheable-lookup-5.0.3" + sources."cacheable-request-7.0.1" + sources."canvas-2.6.1" + sources."chalk-2.4.2" + sources."chownr-1.1.4" + sources."clone-response-1.0.2" + sources."code-point-at-1.1.0" + sources."color-3.0.0" + sources."color-convert-1.9.3" + sources."color-name-1.1.3" + sources."color-string-1.5.4" + sources."colors-1.4.0" + sources."colorspace-1.1.2" + sources."combined-stream-1.0.8" + sources."command-line-args-5.1.1" + (sources."command-line-usage-5.0.5" // { + dependencies = [ + sources."array-back-2.0.0" + sources."typical-2.6.1" + ]; + }) + sources."commander-2.20.0" + sources."concat-map-0.0.1" + sources."console-control-strings-1.1.0" + sources."content-disposition-0.5.3" + sources."content-type-1.0.4" + sources."cookie-0.4.0" + sources."cookie-signature-1.0.6" + sources."core-util-is-1.0.2" + sources."csstype-3.0.5" + sources."cycle-1.0.3" + sources."debug-2.6.9" + (sources."decompress-response-6.0.0" // { + dependencies = [ + sources."mimic-response-3.1.0" + ]; + }) + sources."deep-extend-0.6.0" + sources."defer-to-connect-2.0.0" + sources."delayed-stream-1.0.0" + sources."delegates-1.0.0" + sources."depd-1.1.2" + sources."destroy-1.0.4" + sources."detect-libc-1.0.3" + sources."diff-3.5.0" + sources."discord-markdown-git://github.com/Sorunome/discord-markdown.git#0f38420fdd41340d6eadd38cd5b71784ca954085" + (sources."dom-serializer-1.2.0" // { + dependencies = [ + sources."domhandler-4.0.0" + ]; + }) + sources."domelementtype-2.1.0" + sources."domhandler-3.3.0" + (sources."domutils-2.4.4" // { + dependencies = [ + sources."domhandler-4.0.0" + ]; + }) + sources."ee-first-1.1.1" + sources."enabled-2.0.0" + sources."encodeurl-1.0.2" + sources."end-of-stream-1.4.4" + sources."entities-2.1.0" + sources."escape-html-1.0.3" + sources."escape-string-regexp-1.0.5" + sources."esprima-4.0.1" + sources."esutils-2.0.2" + sources."etag-1.8.1" + sources."event-target-shim-5.0.1" + sources."events-3.0.0" + sources."expand-template-2.0.3" + sources."expire-set-1.0.0" + sources."express-4.17.1" + sources."extend-shallow-2.0.1" + sources."fast-safe-stringify-2.0.7" + sources."fecha-4.2.0" + sources."file-stream-rotator-0.4.1" + sources."file-type-12.4.2" + sources."file-uri-to-path-1.0.0" + sources."finalhandler-1.1.2" + sources."find-replace-3.0.0" + sources."fn.name-1.1.0" + sources."forwarded-0.1.2" + sources."fresh-0.5.2" + sources."fs-constants-1.0.0" + sources."fs-minipass-1.2.7" + sources."fs.realpath-1.0.0" + sources."gauge-2.7.4" + sources."get-stream-5.2.0" + sources."github-from-package-0.0.0" + sources."glob-7.1.4" + sources."glob-to-regexp-0.4.1" + sources."got-11.6.0" + sources."graceful-fs-4.2.4" + sources."has-flag-3.0.0" + sources."has-unicode-2.0.1" + sources."hash.js-1.1.7" + sources."hasha-5.2.2" + sources."he-1.2.0" + sources."highlight.js-10.4.1" + sources."htmlencode-0.0.4" + sources."htmlparser2-4.1.0" + sources."http-cache-semantics-4.1.0" + sources."http-errors-1.7.2" + sources."http2-wrapper-1.0.0-beta.5.2" + sources."iconv-lite-0.4.24" + sources."ieee754-1.2.1" + sources."ignore-walk-3.0.3" + sources."inflight-1.0.6" + sources."inherits-2.0.3" + sources."ini-1.3.8" + sources."integer-3.0.1" + sources."ipaddr.js-1.9.1" + sources."is-arrayish-0.3.2" + sources."is-extendable-0.1.1" + sources."is-fullwidth-code-point-1.0.0" + sources."is-promise-2.2.2" + sources."is-stream-2.0.0" + sources."isarray-1.0.0" + sources."js-tokens-4.0.0" + sources."js-yaml-3.13.1" + sources."json-buffer-3.0.1" + sources."keyv-4.0.1" + sources."kuler-2.0.0" + sources."linkify-it-2.2.0" + sources."lodash-4.17.20" + sources."lodash.camelcase-4.3.0" + sources."lodash.padend-4.6.1" + sources."lodash.toarray-4.4.0" + (sources."logform-2.2.0" // { + dependencies = [ + sources."ms-2.1.3" + ]; + }) + sources."lowdb-1.0.0" + sources."lowercase-keys-2.0.0" + sources."lru-cache-6.0.0" + (sources."markdown-it-9.1.0" // { + dependencies = [ + sources."entities-1.1.2" + ]; + }) + sources."matrix-discord-parser-0.1.7" + sources."mdurl-1.0.1" + sources."media-typer-0.3.0" + sources."merge-descriptors-1.0.1" + sources."methods-1.1.2" + sources."mime-2.5.0" + sources."mime-db-1.43.0" + sources."mime-types-2.1.26" + sources."mimic-response-1.0.1" + sources."minimalistic-assert-1.0.1" + sources."minimatch-3.0.4" + sources."minimist-1.2.5" + (sources."minipass-2.9.0" // { + dependencies = [ + sources."yallist-3.1.1" + ]; + }) + sources."minizlib-1.3.3" + sources."mkdirp-0.5.5" + sources."mkdirp-classic-0.5.3" + sources."moment-2.29.1" + (sources."morgan-1.10.0" // { + dependencies = [ + sources."depd-2.0.0" + ]; + }) + sources."ms-2.0.0" + (sources."mx-puppet-bridge-0.1.4" // { + dependencies = [ + sources."events-3.2.0" + ]; + }) + sources."nan-2.14.2" + sources."napi-build-utils-1.0.2" + (sources."needle-2.6.0" // { + dependencies = [ + sources."debug-3.2.7" + sources."ms-2.1.3" + ]; + }) + sources."negotiator-0.6.2" + sources."node-abi-2.19.3" + sources."node-emoji-1.10.0" + sources."node-fetch-2.6.1" + sources."node-html-parser-1.4.9" + sources."node-pre-gyp-0.11.0" + sources."noop-logger-0.1.1" + sources."nopt-4.0.3" + sources."normalize-url-4.5.0" + sources."normalize-version-1.0.5" + sources."npm-bundled-1.1.1" + sources."npm-normalize-package-bin-1.0.1" + sources."npm-packlist-1.4.8" + sources."npmlog-4.1.2" + sources."number-is-nan-1.0.1" + sources."object-assign-4.1.1" + sources."object-hash-1.3.1" + sources."on-finished-2.3.0" + sources."on-headers-1.0.2" + sources."once-1.4.0" + sources."one-time-1.0.0" + sources."os-homedir-1.0.2" + sources."os-tmpdir-1.0.2" + sources."osenv-0.1.5" + sources."p-cancelable-2.0.0" + sources."packet-reader-1.0.0" + sources."parse-srcset-1.0.2" + sources."parseurl-1.3.3" + sources."path-0.12.7" + sources."path-is-absolute-1.0.1" + sources."path-parse-1.0.6" + sources."path-to-regexp-0.1.7" + sources."pg-8.5.1" + sources."pg-connection-string-2.4.0" + sources."pg-int8-1.0.1" + sources."pg-minify-1.6.2" + sources."pg-pool-3.2.2" + sources."pg-promise-10.9.1" + sources."pg-protocol-1.4.0" + sources."pg-types-2.2.0" + sources."pgpass-1.0.4" + sources."pify-3.0.0" + (sources."postcss-7.0.35" // { + dependencies = [ + sources."supports-color-6.1.0" + ]; + }) + sources."postgres-array-2.0.0" + sources."postgres-bytea-1.0.0" + sources."postgres-date-1.0.7" + sources."postgres-interval-1.2.0" + sources."prebuild-install-5.3.6" + sources."prism-media-1.2.3" + sources."process-0.11.10" + sources."process-nextick-args-2.0.1" + sources."prom-client-13.0.0" + sources."proxy-addr-2.0.6" + sources."pump-3.0.0" + sources."qs-6.7.0" + sources."quick-lru-5.1.1" + sources."range-parser-1.2.1" + sources."raw-body-2.4.0" + sources."rc-1.2.8" + sources."readable-stream-2.3.7" + sources."reduce-flatten-1.0.1" + sources."resolve-1.11.1" + sources."resolve-alpn-1.0.0" + sources."responselike-2.0.0" + sources."rimraf-2.7.1" + sources."safe-buffer-5.1.2" + sources."safer-buffer-2.1.2" + sources."sanitize-html-1.27.5" + sources."sax-1.2.4" + sources."semver-5.7.0" + sources."semver-closest-0.1.2" + (sources."send-0.17.1" // { + dependencies = [ + sources."mime-1.6.0" + sources."ms-2.1.1" + ]; + }) + sources."serve-static-1.14.1" + sources."set-blocking-2.0.0" + sources."setimmediate-1.0.5" + sources."setprototypeof-1.1.1" + sources."signal-exit-3.0.3" + sources."simple-concat-1.0.1" + (sources."simple-get-3.1.0" // { + dependencies = [ + sources."decompress-response-4.2.1" + sources."mimic-response-2.1.0" + ]; + }) + sources."simple-markdown-0.7.2" + sources."simple-swizzle-0.2.2" + sources."source-map-0.6.1" + sources."spex-3.2.0" + (sources."split2-3.2.2" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + sources."sprintf-js-1.0.3" + sources."stack-trace-0.0.10" + sources."statuses-1.5.0" + sources."steno-0.4.4" + sources."string-width-1.0.2" + sources."string_decoder-1.1.1" + sources."strip-ansi-3.0.1" + sources."strip-json-comments-2.0.1" + sources."supports-color-5.5.0" + (sources."table-layout-0.4.5" // { + dependencies = [ + sources."array-back-2.0.0" + sources."typical-2.6.1" + ]; + }) + (sources."tar-4.4.10" // { + dependencies = [ + sources."yallist-3.1.1" + ]; + }) + sources."tar-fs-2.1.1" + (sources."tar-stream-2.2.0" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + sources."tdigest-0.1.1" + sources."text-hex-1.0.0" + sources."toidentifier-1.0.0" + sources."triple-beam-1.3.0" + sources."tslib-1.10.0" + sources."tslint-5.18.0" + sources."tsutils-2.29.0" + sources."tunnel-agent-0.6.0" + sources."tweetnacl-1.0.3" + sources."type-fest-0.8.1" + sources."type-is-1.6.18" + sources."typescript-3.7.4" + sources."typical-4.0.0" + sources."uc.micro-1.0.6" + sources."unescape-1.0.1" + sources."unescape-html-1.1.0" + sources."unpipe-1.0.0" + sources."useragent-generator-1.1.1-amkt-22079-finish.0" + sources."util-0.10.4" + sources."util-deprecate-1.0.2" + sources."utils-merge-1.0.1" + sources."uuid-3.4.0" + sources."vary-1.1.2" + sources."which-pm-runs-1.0.0" + sources."wide-align-1.1.3" + (sources."winston-3.3.3" // { + dependencies = [ + sources."readable-stream-3.6.0" + ]; + }) + (sources."winston-compat-0.1.5" // { + dependencies = [ + sources."fecha-2.3.3" + sources."logform-1.10.0" + sources."ms-2.1.3" + ]; + }) + (sources."winston-daily-rotate-file-3.10.0" // { + dependencies = [ + sources."semver-6.3.0" + ]; + }) + sources."winston-transport-4.4.0" + (sources."wordwrapjs-3.0.0" // { + dependencies = [ + sources."typical-2.6.1" + ]; + }) + sources."wrappy-1.0.2" + sources."ws-7.4.1" + sources."xtend-4.0.2" + sources."yallist-4.0.0" + ]; + buildInputs = globalBuildInputs; + meta = { + description = ""; + }; + production = true; + bypassCache = true; + reconstructLock = false; + }; +in +{ + args = args; + sources = sources; + tarball = nodeEnv.buildNodeSourceDist args; + package = nodeEnv.buildNodePackage args; + shell = nodeEnv.buildNodeShell args; + nodeDependencies = nodeEnv.buildNodeDependencies (lib.overrideExisting args { + src = stdenv.mkDerivation { + name = args.name + "-package-json"; + src = nix-gitignore.gitignoreSourcePure [ + "*" + "!package.json" + "!package-lock.json" + ] args.src; + dontBuild = true; + installPhase = "mkdir -p $out; cp -r ./* $out;"; + }; + }); +} diff --git a/pkgs/servers/nosql/cassandra/generic.nix b/pkgs/servers/nosql/cassandra/generic.nix index ca2001817a34..cab21080a043 100644 --- a/pkgs/servers/nosql/cassandra/generic.nix +++ b/pkgs/servers/nosql/cassandra/generic.nix @@ -1,22 +1,34 @@ -{ lib, stdenv, fetchurl, python, makeWrapper, gawk, bash, getopt, procps -, which, jre, coreutils, nixosTests -# generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11 +{ lib +, stdenv +, fetchurl +, python +, makeWrapper +, gawk +, bash +, getopt +, procps +, which +, jre +, coreutils +, nixosTests + # generation is the attribute version suffix such as 3_11 in pkgs.cassandra_3_11 , generation -, version, sha256 -, extraMeta ? {} +, version +, sha256 +, extraMeta ? { } , ... }: let libPath = lib.makeLibraryPath [ stdenv.cc.cc ]; - binPath = with lib; makeBinPath ([ + binPath = lib.makeBinPath [ bash getopt gawk which jre procps - ]); + ]; in stdenv.mkDerivation rec { @@ -90,13 +102,14 @@ stdenv.mkDerivation rec { wrapProgram $out/bin/cqlsh --prefix PATH : ${python}/bin runHook postInstall - ''; + ''; passthru = { tests = let test = nixosTests."cassandra_${generation}"; - in { + in + { nixos = assert test.testPackage.version == version; test; diff --git a/pkgs/tools/admin/rset/default.nix b/pkgs/tools/admin/rset/default.nix new file mode 100644 index 000000000000..f7c00fffb1cc --- /dev/null +++ b/pkgs/tools/admin/rset/default.nix @@ -0,0 +1,48 @@ +{ lib, stdenv, fetchurl, coreutils, openssh, gnutar }: + +stdenv.mkDerivation rec { + pname = "rset"; + version = "2.1"; + + src = fetchurl { + url = "https://scriptedconfiguration.org/code/${pname}-${version}.tar.gz"; + sha256 = "0916f96afl8kcn2hpj4qhg92g2j93ycp2sb94nsz3q44sqc6ddhb"; + }; + + patches = [ ./paths.patch ]; + + postPatch = '' + substituteInPlace rset.c \ + --replace @ssh@ ${openssh}/bin/ssh \ + --replace @miniquark@ $out/bin/miniquark \ + --replace @rinstall@ $out/bin/rinstall \ + --replace @rsub@ $out/bin/rsub + + substituteInPlace execute.c \ + --replace @ssh@ ${openssh}/bin/ssh \ + --replace @ssh-add@ ${openssh}/bin/ssh-add \ + --replace @tar@ ${gnutar}/bin/tar + + substituteInPlace rutils.c \ + --replace @install@ ${coreutils}/bin/install + ''; + + # these are to be run on the remote host, + # so we want to preserve the original shebang. + postFixup = '' + sed -i "1s@.*@#!/bin/sh@" $out/bin/rinstall + sed -i "1s@.*@#!/bin/sh@" $out/bin/rsub + ''; + + dontAddPrefix = true; + installFlags = [ "PREFIX=$(out)" ]; + + meta = with lib; { + homepage = "https://scriptedconfiguration.org/"; + description = "Configure systems using any scripting language"; + changelog = "https://github.com/eradman/rset/raw/${version}/NEWS"; + license = licenses.isc; + platforms = platforms.unix; + maintainers = with maintainers; [ cstrahan ]; + }; +} diff --git a/pkgs/tools/admin/rset/paths.patch b/pkgs/tools/admin/rset/paths.patch new file mode 100644 index 000000000000..af09b0902ed0 --- /dev/null +++ b/pkgs/tools/admin/rset/paths.patch @@ -0,0 +1,131 @@ +diff --git a/execute.c b/execute.c +index be06068..3468fa7 100644 +--- a/execute.c ++++ b/execute.c +@@ -242,7 +242,7 @@ verify_ssh_agent() { + char *output; + char *argv[32]; + +- append(argv, 0, "ssh-add", "-l", NULL); ++ append(argv, 0, "@ssh-add@", "-l", NULL); + output = cmd_pipe_stdout(argv, &error_code, &output_size); + free(output); + +@@ -282,7 +282,7 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha + } + + argc = 0; +- argc = append(argv, argc, "ssh", "-fN", "-R", port_forwarding, "-S", ++ argc = append(argv, argc, "@ssh@", "-fN", "-R", port_forwarding, "-S", + socket_path, "-M", NULL); + if (ssh_config) + (void) append(argv, argc, "-F", ssh_config, host_name, NULL); +@@ -292,12 +292,12 @@ start_connection(char *socket_path, Label *route_label, int http_port, const cha + return -1; + + snprintf(tmp_path, sizeof(tmp_path), "mkdir " REMOTE_TMP_PATH, http_port); +- append(argv, 0, "ssh", "-S", socket_path, host_name, tmp_path, NULL); ++ append(argv, 0, "@ssh@", "-S", socket_path, host_name, tmp_path, NULL); + if (run(argv) != 0) + return -1; + +- snprintf(cmd, PATH_MAX, "tar -cf - %s -C " REPLICATED_DIRECTORY " ./ | " +- "exec ssh -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH, ++ snprintf(cmd, PATH_MAX, "@tar@ -cf - %s -C " REPLICATED_DIRECTORY " ./ | " ++ "exec @ssh@ -q -S %s %s tar -xf - -C " REMOTE_TMP_PATH, + array_to_str(route_label->export_paths), socket_path, host_name, + http_port); + if (system(cmd) != 0) { +@@ -326,7 +326,7 @@ ssh_command_pipe(char *host_name, char *socket_path, Label *host_label, int http + + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL); + + (void) append(argv, argc, host_name, cmd, NULL); + return cmd_pipe_stdin(argv, host_label->content, host_label->content_size); +@@ -344,7 +344,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_ + http_port); + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-T", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-T", "-S", socket_path, NULL); + (void) append(argv, argc, host_name, cmd, NULL); + cmd_pipe_stdin(argv, host_label->content, host_label->content_size); + +@@ -360,7 +360,7 @@ ssh_command_tty(char *host_name, char *socket_path, Label *host_label, int http_ + + /* construct ssh command */ + argc = 0; +- argc = append(argv, argc, "ssh", "-t", "-S", socket_path, NULL); ++ argc = append(argv, argc, "@ssh@", "-t", "-S", socket_path, NULL); + + (void) append(argv, argc, host_name, cmd, NULL); + return run(argv); +@@ -375,11 +375,11 @@ end_connection(char *socket_path, char *host_name, int http_port) { + return; + + snprintf(tmp_path, sizeof(tmp_path), REMOTE_TMP_PATH, http_port); +- append(argv, 0, "ssh", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL); ++ append(argv, 0, "@ssh@", "-S", socket_path, host_name, "rm", "-rf", tmp_path , NULL); + if (run(argv) != 0) + warn("remote tmp dir"); + +- append(argv, 0, "ssh", "-q", "-S", socket_path, "-O", "exit", host_name, NULL); ++ append(argv, 0, "@ssh@", "-q", "-S", socket_path, "-O", "exit", host_name, NULL); + if (run(argv) != 0) + warn("exec ssh -O exit"); + } +diff --git a/rset.c b/rset.c +index 383fc82..9c20f65 100644 +--- a/rset.c ++++ b/rset.c +@@ -128,10 +128,8 @@ int main(int argc, char *argv[]) + hostnames[i] = argv[optind+i]; + hostnames[i] = NULL; + +- if ((rinstall_bin = findprog("rinstall")) == 0) +- not_found("rinstall"); +- if ((rsub_bin = findprog("rsub")) == 0) +- not_found("rsub"); ++ rinstall_bin = "@rinstall@"; ++ rsub_bin = "@rsub@"; + + /* all operations must be relative to the routes file */ + if (realpath(xdirname(routes_file), routes_realpath) == NULL) +@@ -159,10 +157,9 @@ int main(int argc, char *argv[]) + + /* Convert http server command line into a vector */ + inputstring = malloc(PATH_MAX); +- snprintf(inputstring, PATH_MAX, "miniquark -p %d -d " PUBLIC_DIRECTORY, http_port); ++ snprintf(inputstring, PATH_MAX, "@miniquark@ -p %d -d " PUBLIC_DIRECTORY, http_port); + str_to_array(http_srv_argv, inputstring, sizeof(http_srv_argv)); +- if ((httpd_bin = findprog(http_srv_argv[0])) == 0) +- not_found(http_srv_argv[0]); ++ httpd_bin = "@miniquark@"; + + /* start the web server */ + pipe(stdout_pipe); +@@ -397,7 +394,7 @@ handle_exit(int sig) { + printf("caught signal %d, terminating connection to '%s'\n", sig, + hostname); + /* clean up socket and SSH connection; leaving staging dir */ +- execlp("ssh", "ssh", "-S", socket_path, "-O", "exit", hostname, NULL); ++ execlp("@ssh@", "@ssh@", "-S", socket_path, "-O", "exit", hostname, NULL); + err(1, "ssh -O exit"); + } + } +diff --git a/rutils.c b/rutils.c +index 1e182d8..9aef76d 100644 +--- a/rutils.c ++++ b/rutils.c +@@ -77,7 +77,7 @@ install_if_new(const char *src, const char *dst) { + + pid = fork(); + if (pid == 0) { +- if (execl("/usr/bin/install", "/usr/bin/install", src, dst, NULL) != -1) ++ if (execl("@install@", "@install@", src, dst, NULL) != -1) + err(1, "%s", dst); + } + waitpid(pid, &status, 0); diff --git a/pkgs/tools/misc/librespeed-cli/default.nix b/pkgs/tools/misc/librespeed-cli/default.nix index d2396f0086c4..b1ab29d8acb3 100644 --- a/pkgs/tools/misc/librespeed-cli/default.nix +++ b/pkgs/tools/misc/librespeed-cli/default.nix @@ -5,16 +5,16 @@ buildGoModule rec { pname = "librespeed-cli"; - version = "1.0.7"; + version = "1.0.8"; src = fetchFromGitHub { owner = "librespeed"; repo = "speedtest-cli"; rev = "v${version}"; - sha256 = "03bhxx33fy1cgp83anm51fm8v079v0az0d0p785dz98jg14vzibl"; + sha256 = "sha256-cbLuAOAGWmYj6xR2AjpwvRXrP3SXfHhjUp5MVLqC0WE="; }; - vendorSha256 = "1kccxmmzbkzbrxypcrz0j1zz51c0q1d5hh25lcpfbkm3498mj02c"; + vendorSha256 = "sha256-psZyyySpY06J+ji+9uHUtX7Ks1hzZC3zINszYP75NfQ="; # Tests have additonal requirements doCheck = false; diff --git a/pkgs/tools/networking/babeld/default.nix b/pkgs/tools/networking/babeld/default.nix index 5c7b26ced05d..47894c1a5329 100644 --- a/pkgs/tools/networking/babeld/default.nix +++ b/pkgs/tools/networking/babeld/default.nix @@ -1,33 +1,25 @@ -{ lib, stdenv, fetchurl, fetchpatch, nixosTests }: +{ lib, stdenv, fetchurl, nixosTests }: stdenv.mkDerivation rec { pname = "babeld"; - version = "1.9.2"; + version = "1.10"; src = fetchurl { - url = "http://www.pps.univ-paris-diderot.fr/~jch/software/files/${pname}-${version}.tar.gz"; - sha256 = "01vzhrspnm4sy9ggaz9n3bfl5hy3qlynr218j3mdcddzm3h00kqm"; + url = "https://www.irif.fr/~jch/software/files/${pname}-${version}.tar.gz"; + sha256 = "1sld5bbig2pkcr4zrdpvfzifc6a3lc8i8kdzk5ryjh166844mxd5"; }; - patches = [ - (fetchpatch { - # Skip kernel_setup_interface when `skip-kernel-setup` is enabled. - url = "https://github.com/jech/babeld/commit/f9698a5616842467ad08a5f9ed3d6fcfa2dd2898.patch"; - sha256 = "00kj2jxsfq0pjk5wrkslyvkww57makxlwa4fd82g7g9hrgahpqwr"; - }) - ]; - preBuild = '' makeFlags="PREFIX=$out ETCDIR=$out/etc" ''; passthru.tests.babeld = nixosTests.babeld; - meta = { - homepage = "http://www.pps.univ-paris-diderot.fr/~jch/software/babel/"; + meta = with lib; { + homepage = "http://www.irif.fr/~jch/software/babel/"; description = "Loop-avoiding distance-vector routing protocol"; - license = lib.licenses.mit; - maintainers = with lib.maintainers; [ fpletz ]; - platforms = with lib.platforms; linux; + license = licenses.mit; + maintainers = with maintainers; [ fpletz hexa ]; + platforms = platforms.linux; }; } diff --git a/pkgs/tools/security/rage/default.nix b/pkgs/tools/security/rage/default.nix index d248fb19a276..99e61dc23581 100644 --- a/pkgs/tools/security/rage/default.nix +++ b/pkgs/tools/security/rage/default.nix @@ -1,24 +1,25 @@ { lib, stdenv, rustPlatform, fetchFromGitHub, installShellFiles -, Foundation, Security }: +, Foundation, Security, libiconv }: rustPlatform.buildRustPackage rec { pname = "rage"; - version = "0.5.1"; + version = "0.6.0"; src = fetchFromGitHub { owner = "str4d"; repo = pname; rev = "v${version}"; - sha256 = "sha256-oYCARqG5YwKO0b73aEMLr/xzXl6xBEMCvE1HMCtMq20="; + sha256 = "1vag448zpjyplcjpf1ir81l8ip3yxm9vkrxffqr78zslb4k6hw2w"; }; - cargoSha256 = "sha256-vadXIdqfmol4thHIwpkQCn7HsXdxo0l+6CBm3QIJmeA="; + cargoSha256 = "06jfhq9vnkq5g5bw1zl2sxsih63yajcyk9zaizhzkdsbhydr4955"; nativeBuildInputs = [ installShellFiles ]; buildInputs = lib.optionals stdenv.isDarwin [ Foundation Security + libiconv ]; # cargo test has an x86-only dependency @@ -37,7 +38,7 @@ rustPlatform.buildRustPackage rec { meta = with lib; { description = "A simple, secure and modern encryption tool with small explicit keys, no config options, and UNIX-style composability"; homepage = "https://github.com/str4d/rage"; - changelog = "https://github.com/str4d/rage/releases/tag/v${version}"; + changelog = "https://github.com/str4d/rage/raw/v${version}/rage/CHANGELOG.md"; license = with licenses; [ asl20 mit ]; # either at your option maintainers = with maintainers; [ marsam ryantm ]; }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 40cebf44339b..571bac877e19 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -251,6 +251,8 @@ in eclipse-mat = callPackage ../development/tools/eclipse-mat { }; + frugal = callPackage ../development/tools/frugal { }; + glade = callPackage ../development/tools/glade { }; hobbes = callPackage ../development/tools/hobbes { }; @@ -1228,6 +1230,10 @@ in btrfs-heatmap = callPackage ../tools/filesystems/btrfs-heatmap { }; + bucklespring = bucklespring-x11; + bucklespring-libinput = callPackage ../applications/audio/bucklespring { }; + bucklespring-x11 = callPackage ../applications/audio/bucklespring { legacy = true; }; + buildbot = with python3Packages; toPythonApplication buildbot; buildbot-ui = with python3Packages; toPythonApplication buildbot-ui; buildbot-full = with python3Packages; toPythonApplication buildbot-full; @@ -6175,6 +6181,8 @@ in multitail = callPackage ../tools/misc/multitail { }; + mx-puppet-discord = callPackage ../servers/mx-puppet-discord { }; + mxt-app = callPackage ../misc/mxt-app { }; naabu = callPackage ../tools/security/naabu { }; @@ -8096,6 +8104,8 @@ in rrdtool = callPackage ../tools/misc/rrdtool { }; + rset = callPackage ../tools/admin/rset { }; + rshijack = callPackage ../tools/networking/rshijack { }; rsibreak = libsForQt5.callPackage ../applications/misc/rsibreak { }; @@ -14048,6 +14058,8 @@ in cimg = callPackage ../development/libraries/cimg { }; + cjose = callPackage ../development/libraries/cjose { }; + scmccid = callPackage ../development/libraries/scmccid { }; ccrtp = callPackage ../development/libraries/ccrtp { }; @@ -19420,6 +19432,8 @@ in thanos = callPackage ../servers/monitoring/thanos { }; + trafficserver = callPackage ../servers/http/trafficserver { }; + inherit (callPackages ../servers/http/tomcat { }) tomcat7 tomcat8 @@ -23584,7 +23598,7 @@ in googleearth = callPackage ../applications/misc/googleearth { }; - googleearth-pro = callPackage ../applications/misc/googleearth-pro { }; + googleearth-pro = libsForQt5.callPackage ../applications/misc/googleearth-pro { }; google-chrome = callPackage ../applications/networking/browsers/google-chrome { gconf = gnome2.GConf; }; diff --git a/pkgs/top-level/coq-packages.nix b/pkgs/top-level/coq-packages.nix index e533d5aace15..2cd2965fc612 100644 --- a/pkgs/top-level/coq-packages.nix +++ b/pkgs/top-level/coq-packages.nix @@ -122,9 +122,7 @@ in rec { coqPackages_8_11 = mkCoqPackages coq_8_11; coqPackages_8_12 = mkCoqPackages coq_8_12; coqPackages_8_13 = mkCoqPackages coq_8_13; - coqPackages = recurseIntoAttrs (lib.mapDerivationAttrset lib.dontDistribute - coqPackages_8_11 - ); + coqPackages = recurseIntoAttrs coqPackages_8_11; coq = coqPackages.coq; } diff --git a/pkgs/top-level/perl-packages.nix b/pkgs/top-level/perl-packages.nix index 9db246eae432..9dc9444e0964 100644 --- a/pkgs/top-level/perl-packages.nix +++ b/pkgs/top-level/perl-packages.nix @@ -10673,6 +10673,16 @@ let sha256 = "0skm22b3gg1bfk0amklrprpva41m6mkrhqp0gi7z1nmcf9ypjh61"; }; + patches = [ + # Unfortunately, not every release is uploaded to CPAN so security fixes + # would need to be cherry-picked from releases + (fetchpatch { + name = "CVE-2021-22204.patch"; + url = "https://salsa.debian.org/perl-team/modules/packages/libimage-exiftool-perl/-/raw/0347501fda93cb8366d6451aedcf258b34fb4a2b/debian/patches/CVE-2021-22204.patch"; + sha256 = "1fxw32zcssillnv764wsd05lyswn8bbrc90q5cy9aknx0ncgsrxj"; + }) + ]; + nativeBuildInputs = lib.optional stdenv.isDarwin shortenPerlShebang; postInstall = lib.optionalString stdenv.isDarwin '' shortenPerlShebang $out/bin/exiftool diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index f5ccde1bc9d9..7f8429c58d62 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -615,6 +615,8 @@ in { autograd = callPackage ../development/python-modules/autograd { }; + autoit-ripper = callPackage ../development/python-modules/autoit-ripper { }; + autologging = callPackage ../development/python-modules/autologging { }; automat = callPackage ../development/python-modules/automat { }; @@ -3565,6 +3567,8 @@ in { karton-asciimagic = callPackage ../development/python-modules/karton-asciimagic { }; + karton-autoit-ripper = callPackage ../development/python-modules/karton-autoit-ripper { }; + karton-classifier = callPackage ../development/python-modules/karton-classifier { }; karton-config-extractor = callPackage ../development/python-modules/karton-config-extractor { }; @@ -5077,7 +5081,7 @@ in { poolsense = callPackage ../development/python-modules/poolsense { }; poppler-qt5 = callPackage ../development/python-modules/poppler-qt5 { - inherit (pkgs.qt5) qtbase; + inherit (pkgs.qt5) qtbase qmake; inherit (pkgs.libsForQt5) poppler; };