diff --git a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
index aa444626f2c5..5291bd0bd5d4 100644
--- a/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
+++ b/nixos/doc/manual/from_md/release-notes/rl-2111.section.xml
@@ -1549,6 +1549,25 @@ Superuser created successfully.
release notes for changes and upgrade instructions.
+
+
+ The systemd.network module has gained
+ support for the FooOverUDP link type.
+
+
+
+
+ The networking module has a new
+ networking.fooOverUDP option to configure
+ Foo-over-UDP encapsulations.
+
+
+
+
+ networking.sits now supports Foo-over-UDP
+ encapsulation.
+
+
diff --git a/nixos/doc/manual/release-notes/rl-2111.section.md b/nixos/doc/manual/release-notes/rl-2111.section.md
index d462c8918115..90d7c6eff3ff 100644
--- a/nixos/doc/manual/release-notes/rl-2111.section.md
+++ b/nixos/doc/manual/release-notes/rl-2111.section.md
@@ -447,3 +447,9 @@ In addition to numerous new and upgraded packages, this release has the followin
- Three new options, [xdg.mime.addedAssociations](#opt-xdg.mime.addedAssociations), [xdg.mime.defaultApplications](#opt-xdg.mime.defaultApplications), and [xdg.mime.removedAssociations](#opt-xdg.mime.removedAssociations) have been added to the [xdg.mime](#opt-xdg.mime.enable) module to allow the configuration of `/etc/xdg/mimeapps.list`.
- Kopia was upgraded from 0.8.x to 0.9.x. Please read the [upstream release notes](https://github.com/kopia/kopia/releases/tag/v0.9.0) for changes and upgrade instructions.
+
+- The `systemd.network` module has gained support for the FooOverUDP link type.
+
+- The `networking` module has a new `networking.fooOverUDP` option to configure Foo-over-UDP encapsulations.
+
+- `networking.sits` now supports Foo-over-UDP encapsulation.
diff --git a/nixos/modules/system/boot/networkd.nix b/nixos/modules/system/boot/networkd.nix
index 51e105bf6276..662dfe2db989 100644
--- a/nixos/modules/system/boot/networkd.nix
+++ b/nixos/modules/system/boot/networkd.nix
@@ -250,6 +250,16 @@ let
(assertRange "ERSPANIndex" 1 1048575)
];
+ sectionFooOverUDP = checkUnitConfig "FooOverUDP" [
+ (assertOnlyFields [
+ "Port"
+ "Encapsulation"
+ "Protocol"
+ ])
+ (assertPort "Port")
+ (assertValueOneOf "Encapsulation" ["FooOverUDP" "GenericUDPEncapsulation"])
+ ];
+
sectionPeer = checkUnitConfig "Peer" [
(assertOnlyFields [
"Name"
@@ -919,6 +929,18 @@ let
'';
};
+ fooOverUDPConfig = mkOption {
+ default = { };
+ example = { Port = 9001; };
+ type = types.addCheck (types.attrsOf unitOption) check.netdev.sectionFooOverUDP;
+ description = ''
+ Each attribute in this set specifies an option in the
+ [FooOverUDP] section of the unit. See
+ systemd.netdev
+ 5 for details.
+ '';
+ };
+
peerConfig = mkOption {
default = {};
example = { Name = "veth2"; };
@@ -1449,6 +1471,10 @@ let
[Tunnel]
${attrsToSection def.tunnelConfig}
''
+ + optionalString (def.fooOverUDPConfig != { }) ''
+ [FooOverUDP]
+ ${attrsToSection def.fooOverUDPConfig}
+ ''
+ optionalString (def.peerConfig != { }) ''
[Peer]
${attrsToSection def.peerConfig}
diff --git a/nixos/modules/tasks/network-interfaces-scripted.nix b/nixos/modules/tasks/network-interfaces-scripted.nix
index 79624ec7072c..e8e2de090b32 100644
--- a/nixos/modules/tasks/network-interfaces-scripted.nix
+++ b/nixos/modules/tasks/network-interfaces-scripted.nix
@@ -466,6 +466,39 @@ let
'';
});
+ createFouEncapsulation = n: v: nameValuePair "${n}-fou-encap"
+ (let
+ # if we have a device to bind to we can wait for its addresses to be
+ # configured, otherwise external sequencing is required.
+ deps = optionals (v.local != null && v.local.dev != null)
+ (deviceDependency v.local.dev ++ [ "network-addresses-${v.local.dev}.service" ]);
+ fouSpec = "port ${toString v.port} ${
+ if v.protocol != null then "ipproto ${toString v.protocol}" else "gue"
+ } ${
+ optionalString (v.local != null) "local ${escapeShellArg v.local.address} ${
+ optionalString (v.local.dev != null) "dev ${escapeShellArg v.local.dev}"
+ }"
+ }";
+ in
+ { description = "FOU endpoint ${n}";
+ wantedBy = [ "network-setup.service" (subsystemDevice n) ];
+ bindsTo = deps;
+ partOf = [ "network-setup.service" ];
+ after = [ "network-pre.target" ] ++ deps;
+ before = [ "network-setup.service" ];
+ serviceConfig.Type = "oneshot";
+ serviceConfig.RemainAfterExit = true;
+ path = [ pkgs.iproute2 ];
+ script = ''
+ # always remove previous incarnation since show can't filter
+ ip fou del ${fouSpec} >/dev/null 2>&1 || true
+ ip fou add ${fouSpec}
+ '';
+ postStop = ''
+ ip fou del ${fouSpec} || true
+ '';
+ });
+
createSitDevice = n: v: nameValuePair "${n}-netdev"
(let
deps = deviceDependency v.dev;
@@ -486,7 +519,12 @@ let
${optionalString (v.remote != null) "remote \"${v.remote}\""} \
${optionalString (v.local != null) "local \"${v.local}\""} \
${optionalString (v.ttl != null) "ttl ${toString v.ttl}"} \
- ${optionalString (v.dev != null) "dev \"${v.dev}\""}
+ ${optionalString (v.dev != null) "dev \"${v.dev}\""} \
+ ${optionalString (v.encapsulation != null)
+ "encap ${v.encapsulation.type} encap-dport ${toString v.encapsulation.port} ${
+ optionalString (v.encapsulation.sourcePort != null)
+ "encap-sport ${toString v.encapsulation.sourcePort}"
+ }"}
ip link set "${n}" up
'';
postStop = ''
@@ -530,6 +568,7 @@ let
// mapAttrs' createVswitchDevice cfg.vswitches
// mapAttrs' createBondDevice cfg.bonds
// mapAttrs' createMacvlanDevice cfg.macvlans
+ // mapAttrs' createFouEncapsulation cfg.fooOverUDP
// mapAttrs' createSitDevice cfg.sits
// mapAttrs' createVlanDevice cfg.vlans
// {
diff --git a/nixos/modules/tasks/network-interfaces-systemd.nix b/nixos/modules/tasks/network-interfaces-systemd.nix
index 225f9dc67fcc..ccfd7fd4132b 100644
--- a/nixos/modules/tasks/network-interfaces-systemd.nix
+++ b/nixos/modules/tasks/network-interfaces-systemd.nix
@@ -47,6 +47,9 @@ in
} ] ++ flip mapAttrsToList cfg.bridges (n: { rstp, ... }: {
assertion = !rstp;
message = "networking.bridges.${n}.rstp is not supported by networkd.";
+ }) ++ flip mapAttrsToList cfg.fooOverUDP (n: { local, ... }: {
+ assertion = local == null;
+ message = "networking.fooOverUDP.${n}.local is not supported by networkd.";
});
networking.dhcpcd.enable = mkDefault false;
@@ -194,6 +197,23 @@ in
macvlan = [ name ];
} ]);
})))
+ (mkMerge (flip mapAttrsToList cfg.fooOverUDP (name: fou: {
+ netdevs."40-${name}" = {
+ netdevConfig = {
+ Name = name;
+ Kind = "fou";
+ };
+ # unfortunately networkd cannot encode dependencies of netdevs on addresses/routes,
+ # so we cannot specify Local=, Peer=, PeerPort=. this looks like a missing feature
+ # in networkd.
+ fooOverUDPConfig = {
+ Port = fou.port;
+ Encapsulation = if fou.protocol != null then "FooOverUDP" else "GenericUDPEncapsulation";
+ } // (optionalAttrs (fou.protocol != null) {
+ Protocol = fou.protocol;
+ });
+ };
+ })))
(mkMerge (flip mapAttrsToList cfg.sits (name: sit: {
netdevs."40-${name}" = {
netdevConfig = {
@@ -207,7 +227,17 @@ in
Local = sit.local;
}) // (optionalAttrs (sit.ttl != null) {
TTL = sit.ttl;
- });
+ }) // (optionalAttrs (sit.encapsulation != null) (
+ {
+ FooOverUDP = true;
+ Encapsulation =
+ if sit.encapsulation.type == "fou"
+ then "FooOverUDP"
+ else "GenericUDPEncapsulation";
+ FOUDestinationPort = sit.encapsulation.port;
+ } // (optionalAttrs (sit.encapsulation.sourcePort != null) {
+ FOUSourcePort = sit.encapsulation.sourcePort;
+ })));
};
networks = mkIf (sit.dev != null) {
"40-${sit.dev}" = (mkMerge [ (genericNetwork (mkOverride 999)) {
diff --git a/nixos/modules/tasks/network-interfaces.nix b/nixos/modules/tasks/network-interfaces.nix
index 313b0fac7dab..4e20ec118464 100644
--- a/nixos/modules/tasks/network-interfaces.nix
+++ b/nixos/modules/tasks/network-interfaces.nix
@@ -10,6 +10,8 @@ let
hasVirtuals = any (i: i.virtual) interfaces;
hasSits = cfg.sits != { };
hasBonds = cfg.bonds != { };
+ hasFous = cfg.fooOverUDP != { }
+ || filterAttrs (_: s: s.encapsulation != null) cfg.sits != { };
slaves = concatMap (i: i.interfaces) (attrValues cfg.bonds)
++ concatMap (i: i.interfaces) (attrValues cfg.bridges)
@@ -823,6 +825,71 @@ in
});
};
+ networking.fooOverUDP = mkOption {
+ default = { };
+ example =
+ {
+ primary = { port = 9001; local = { address = "192.0.2.1"; dev = "eth0"; }; };
+ backup = { port = 9002; };
+ };
+ description = ''
+ This option allows you to configure Foo Over UDP and Generic UDP Encapsulation
+ endpoints. See ip-fou
+ 8 for details.
+ '';
+ type = with types; attrsOf (submodule {
+ options = {
+ port = mkOption {
+ type = port;
+ description = ''
+ Local port of the encapsulation UDP socket.
+ '';
+ };
+
+ protocol = mkOption {
+ type = nullOr (ints.between 1 255);
+ default = null;
+ description = ''
+ Protocol number of the encapsulated packets. Specifying null
+ (the default) creates a GUE endpoint, specifying a protocol number will create
+ a FOU endpoint.
+ '';
+ };
+
+ local = mkOption {
+ type = nullOr (submodule {
+ options = {
+ address = mkOption {
+ type = types.str;
+ description = ''
+ Local address to bind to. The address must be available when the FOU
+ endpoint is created, using the scripted network setup this can be achieved
+ either by setting dev or adding dependency information to
+ systemd.services.<name>-fou-encap; it isn't supported
+ when using networkd.
+ '';
+ };
+
+ dev = mkOption {
+ type = nullOr str;
+ default = null;
+ example = "eth0";
+ description = ''
+ Network device to bind to.
+ '';
+ };
+ };
+ });
+ default = null;
+ example = { address = "203.0.113.22"; };
+ description = ''
+ Local address (and optionally device) to bind to using the given port.
+ '';
+ };
+ };
+ });
+ };
+
networking.sits = mkOption {
default = { };
example = literalExpression ''
@@ -882,6 +949,44 @@ in
'';
};
+ encapsulation = with types; mkOption {
+ type = nullOr (submodule {
+ options = {
+ type = mkOption {
+ type = enum [ "fou" "gue" ];
+ description = ''
+ Selects encapsulation type. See
+ ip-link
+ 8 for details.
+ '';
+ };
+
+ port = mkOption {
+ type = port;
+ example = 9001;
+ description = ''
+ Destination port for encapsulated packets.
+ '';
+ };
+
+ sourcePort = mkOption {
+ type = nullOr types.port;
+ default = null;
+ example = 9002;
+ description = ''
+ Source port for encapsulated packets. Will be chosen automatically by
+ the kernel if unset.
+ '';
+ };
+ };
+ });
+ default = null;
+ example = { type = "fou"; port = 9001; };
+ description = ''
+ Configures encapsulation in UDP packets.
+ '';
+ };
+
};
});
@@ -1116,7 +1221,8 @@ in
boot.kernelModules = [ ]
++ optional hasVirtuals "tun"
++ optional hasSits "sit"
- ++ optional hasBonds "bonding";
+ ++ optional hasBonds "bonding"
+ ++ optional hasFous "fou";
boot.extraModprobeConfig =
# This setting is intentional as it prevents default bond devices
diff --git a/nixos/tests/networking.nix b/nixos/tests/networking.nix
index 8b947ddf0cf4..647c8942b37d 100644
--- a/nixos/tests/networking.nix
+++ b/nixos/tests/networking.nix
@@ -380,12 +380,57 @@ let
router.wait_until_succeeds("ping -c 1 192.168.1.3")
'';
};
+ fou = {
+ name = "foo-over-udp";
+ nodes.machine = { ... }: {
+ virtualisation.vlans = [ 1 ];
+ networking = {
+ useNetworkd = networkd;
+ useDHCP = false;
+ interfaces.eth1.ipv4.addresses = mkOverride 0
+ [ { address = "192.168.1.1"; prefixLength = 24; } ];
+ fooOverUDP = {
+ fou1 = { port = 9001; };
+ fou2 = { port = 9002; protocol = 41; };
+ fou3 = mkIf (!networkd)
+ { port = 9003; local.address = "192.168.1.1"; };
+ fou4 = mkIf (!networkd)
+ { port = 9004; local = { address = "192.168.1.1"; dev = "eth1"; }; };
+ };
+ };
+ systemd.services = {
+ fou3-fou-encap.after = optional (!networkd) "network-addresses-eth1.service";
+ };
+ };
+ testScript = { ... }:
+ ''
+ import json
+
+ machine.wait_for_unit("network.target")
+ fous = json.loads(machine.succeed("ip -json fou show"))
+ assert {"port": 9001, "gue": None, "family": "inet"} in fous, "fou1 exists"
+ assert {"port": 9002, "ipproto": 41, "family": "inet"} in fous, "fou2 exists"
+ '' + optionalString (!networkd) ''
+ assert {
+ "port": 9003,
+ "gue": None,
+ "family": "inet",
+ "local": "192.168.1.1",
+ } in fous, "fou3 exists"
+ assert {
+ "port": 9004,
+ "gue": None,
+ "family": "inet",
+ "local": "192.168.1.1",
+ "dev": "eth1",
+ } in fous, "fou4 exists"
+ '';
+ };
sit = let
node = { address4, remote, address6 }: { pkgs, ... }: with pkgs.lib; {
virtualisation.vlans = [ 1 ];
networking = {
useNetworkd = networkd;
- firewall.enable = false;
useDHCP = false;
sits.sit = {
inherit remote;
@@ -400,8 +445,30 @@ let
};
in {
name = "Sit";
- nodes.client1 = node { address4 = "192.168.1.1"; remote = "192.168.1.2"; address6 = "fc00::1"; };
- nodes.client2 = node { address4 = "192.168.1.2"; remote = "192.168.1.1"; address6 = "fc00::2"; };
+ # note on firewalling: the two nodes are explicitly asymmetric.
+ # client1 sends SIT packets in UDP, but accepts only proto-41 incoming.
+ # client2 does the reverse, sending in proto-41 and accepting only UDP incoming.
+ # that way we'll notice when either SIT itself or FOU breaks.
+ nodes.client1 = args@{ pkgs, ... }:
+ mkMerge [
+ (node { address4 = "192.168.1.1"; remote = "192.168.1.2"; address6 = "fc00::1"; } args)
+ {
+ networking = {
+ firewall.extraCommands = "iptables -A INPUT -p 41 -j ACCEPT";
+ sits.sit.encapsulation = { type = "fou"; port = 9001; };
+ };
+ }
+ ];
+ nodes.client2 = args@{ pkgs, ... }:
+ mkMerge [
+ (node { address4 = "192.168.1.2"; remote = "192.168.1.1"; address6 = "fc00::2"; } args)
+ {
+ networking = {
+ firewall.allowedUDPPorts = [ 9001 ];
+ fooOverUDP.fou1 = { port = 9001; protocol = 41; };
+ };
+ }
+ ];
testScript = { ... }:
''
start_all()
diff --git a/pkgs/applications/misc/zettlr/default.nix b/pkgs/applications/misc/zettlr/default.nix
index 77ff11b98622..f8dbc9c65e4f 100644
--- a/pkgs/applications/misc/zettlr/default.nix
+++ b/pkgs/applications/misc/zettlr/default.nix
@@ -10,11 +10,11 @@
# Based on https://gist.github.com/msteen/96cb7df66a359b827497c5269ccbbf94 and joplin-desktop nixpkgs.
let
pname = "zettlr";
- version = "1.8.9";
+ version = "2.0.0";
name = "${pname}-${version}";
src = fetchurl {
url = "https://github.com/Zettlr/Zettlr/releases/download/v${version}/Zettlr-${version}-x86_64.appimage";
- sha256 = "sha256-1cU9HdPXrJ4ibSjOitO8iJfMIaGub/jjlb2lssYFfcU=";
+ sha256 = "sha256-MIFgNUuuneIIkPRVRarbx6UMoB/3sdJtKvbacUnwHX8=";
};
appimageContents = appimageTools.extractType2 {
inherit name src;
diff --git a/pkgs/applications/networking/cluster/kn/default.nix b/pkgs/applications/networking/cluster/kn/default.nix
new file mode 100644
index 000000000000..a41c3c0ad35b
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kn/default.nix
@@ -0,0 +1,44 @@
+{ lib, buildGoModule, fetchFromGitHub, installShellFiles }:
+
+buildGoModule rec {
+ pname = "kn";
+ version = "0.26.0";
+
+ src = fetchFromGitHub {
+ owner = "knative";
+ repo = "client";
+ rev = "v${version}";
+ sha256 = "sha256-hquxv1BluR535WvMtJlVyP7JuARDNGDjPAbdSSj2juo=";
+ };
+
+ vendorSha256 = null;
+
+ subPackages = [ "cmd/kn" ];
+
+ nativeBuildInputs = [ installShellFiles ];
+
+ ldflags = [
+ "-X knative.dev/client/pkg/kn/commands/version.Version=v${version}"
+ "-X knative.dev/client/pkg/kn/commands/version.VersionEventing=v${version}"
+ "-X knative.dev/client/pkg/kn/commands/version.VersionServing=v${version}"
+ ];
+
+ postInstall = ''
+ installShellCompletion --cmd kn \
+ --bash <($out/bin/kn completion bash) \
+ --zsh <($out/bin/kn completion zsh)
+ '';
+
+ doInstallCheck = true;
+ installCheckPhase = ''
+ $out/bin/kn version | grep ${version} > /dev/null
+ '';
+
+ meta = with lib; {
+ description = "The Knative client kn is your door to the Knative world. It allows you to create Knative resources interactively from the command line or from within scripts";
+ homepage = "https://github.com/knative/client";
+ changelog = "https://github.com/knative/client/releases/tag/v${version}";
+ license = licenses.asl20;
+ maintainers = with maintainers; [ bryanasdev000 ];
+ };
+}
diff --git a/pkgs/development/embedded/fpga/trellis/default.nix b/pkgs/development/embedded/fpga/trellis/default.nix
index 4d3859a77df8..8c44e34e3ed1 100644
--- a/pkgs/development/embedded/fpga/trellis/default.nix
+++ b/pkgs/development/embedded/fpga/trellis/default.nix
@@ -31,6 +31,8 @@ in stdenv.mkDerivation rec {
nativeBuildInputs = [ cmake python3 ];
cmakeFlags = [
"-DCURRENT_GIT_VERSION=${realVersion}"
+ # TODO: should this be in stdenv instead?
+ "-DCMAKE_INSTALL_DATADIR=${placeholder "out"}/share"
];
preConfigure = ''
@@ -39,6 +41,12 @@ in stdenv.mkDerivation rec {
cd libtrellis
'';
+ doInstallCheck = true;
+
+ installCheckPhase = ''
+ $out/bin/ecppack $out/share/trellis/misc/basecfgs/empty_lfe5u-85f.config /tmp/test.bin
+ '';
+
meta = with lib; {
description = "Documentation and bitstream tools for Lattice ECP5 FPGAs";
longDescription = ''
@@ -49,7 +57,7 @@ in stdenv.mkDerivation rec {
'';
homepage = "https://github.com/YosysHQ/prjtrellis";
license = licenses.isc;
- maintainers = with maintainers; [ q3k thoughtpolice emily ];
+ maintainers = with maintainers; [ q3k thoughtpolice emily rowanG077 ];
platforms = platforms.all;
};
}
diff --git a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
index 846d6a045a99..e9b6bdf83c78 100644
--- a/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
+++ b/pkgs/development/interpreters/bqn/dzaima-bqn/default.nix
@@ -8,31 +8,34 @@
stdenv.mkDerivation rec {
pname = "dbqn" + lib.optionalString buildNativeImage "-native";
- version = "0.pre+unstable=2021-10-05";
+ version = "0.pre+date=2021-10-08";
src = fetchFromGitHub {
owner = "dzaima";
repo = "BQN";
- rev = "c31ceef52bbf380e747723f5ffd09c5f006b21c5";
- sha256 = "1nzqgwpjawcky85mfrz5izs9lfb3aqlm96dc8syrxhgg20xrziwx";
+ rev = "0001109a1c5a420421b368c79d34b1e93bfe606e";
+ hash = "sha256-riHHclTLkrVbtzmcz9ungAIc7kaoFHS77+SNatsfNhc=";
};
nativeBuildInputs = [
- makeWrapper
jdk
+ makeWrapper
];
dontConfigure = true;
+ postPatch = ''
+ patchShebangs --build ./build8
+ '';
+
buildPhase = ''
runHook preBuild
- patchShebangs --build ./build8
./build8
'' + lib.optionalString buildNativeImage ''
native-image --report-unsupported-elements-at-runtime \
- -H:CLibraryPath=${lib.getLib jdk}/lib \
- -J-Dfile.encoding=UTF-8 -jar BQN.jar dbqn
+ -H:CLibraryPath=${lib.getLib jdk}/lib -J-Dfile.encoding=UTF-8 \
+ -jar BQN.jar dbqn
'' + ''
runHook postBuild
'';
diff --git a/pkgs/development/interpreters/dzaima-apl/default.nix b/pkgs/development/interpreters/dzaima-apl/default.nix
index 80458e1398ac..d061a6cb9cdf 100644
--- a/pkgs/development/interpreters/dzaima-apl/default.nix
+++ b/pkgs/development/interpreters/dzaima-apl/default.nix
@@ -8,32 +8,34 @@
stdenv.mkDerivation rec {
pname = "dapl" + lib.optionalString buildNativeImage "-native";
- version = "0.2.0+unstable=2021-06-30";
+ version = "0.2.0+date=2021-10-16";
src = fetchFromGitHub {
owner = "dzaima";
repo = "APL";
- rev = "28b3667beb23c6472266bb2b6eb701708fa421c6";
- hash = "sha256-2kM9XDMclxJNOZngwLvoDQG23UZQQ6ePK/j215UumCg=";
+ rev = "5eb0a4205e27afa6122096a25008474eec562dc0";
+ hash = "sha256-UdumMytqT909JRpNqzhYPuKPw644m/vRUsEbIVF2a7U=";
};
nativeBuildInputs = [
- makeWrapper
jdk
+ makeWrapper
];
dontConfigure = true;
+ postPatch = ''
+ patchShebangs --build ./build
+ '';
+
buildPhase = ''
runHook preBuild
- patchShebangs --build ./build
- substituteInPlace ./build \
- --replace "javac" "javac -encoding utf8"
./build
'' + lib.optionalString buildNativeImage ''
native-image --report-unsupported-elements-at-runtime \
- -H:CLibraryPath=${lib.getLib jdk}/lib -jar APL.jar dapl
+ -H:CLibraryPath=${lib.getLib jdk}/lib -J-Dfile.encoding=UTF-8 \
+ -jar APL.jar dapl
'' + ''
runHook postBuild
'';
diff --git a/pkgs/development/tools/database/sqlfluff/default.nix b/pkgs/development/tools/database/sqlfluff/default.nix
index 40c4e459a2ee..095c2e10b573 100644
--- a/pkgs/development/tools/database/sqlfluff/default.nix
+++ b/pkgs/development/tools/database/sqlfluff/default.nix
@@ -5,14 +5,14 @@
python3.pkgs.buildPythonApplication rec {
pname = "sqlfluff";
- version = "0.6.8";
+ version = "0.7.0";
disabled = python3.pythonOlder "3.6";
src = fetchFromGitHub {
owner = pname;
repo = pname;
rev = version;
- sha256 = "sha256-Aistr85doKEOD0/uTS/7iRzYggb+hC3njVi4mWt8ndM=";
+ sha256 = "sha256-Cqbo1L3z3bTDIXZ90GXdAulTpGhWLoTc/kYRNghZ/SE=";
};
propagatedBuildInputs = with python3.pkgs; [
@@ -39,10 +39,9 @@ python3.pkgs.buildPythonApplication rec {
];
disabledTestPaths = [
- # dbt is not available yet
- "test/core/templaters/dbt_test.py"
# Don't run the plugin related tests
"test/core/plugin_test.py"
+ "plugins/sqlfluff-templater-dbt"
"plugins/sqlfluff-plugin-example/test/rules/rule_test_cases_test.py"
];
diff --git a/pkgs/tools/admin/pulumi/data.nix b/pkgs/tools/admin/pulumi/data.nix
index 43ef985c41cc..39ee5a67a5d6 100644
--- a/pkgs/tools/admin/pulumi/data.nix
+++ b/pkgs/tools/admin/pulumi/data.nix
@@ -9,8 +9,8 @@
sha256 = "02s759rm633h4v5a1s3jxwvkahfjrbkz561spijrp3mihrws3xhb";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.0-linux-amd64.tar.gz";
- sha256 = "0ainrb9i14wcq64pg99kb0s41bpmczp1h4sz85kj1a4ic0yrfq14";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-linux-amd64.tar.gz";
+ sha256 = "0k67bsqiqalqrifd6r7nm6c2g4ckrfhh7a7nfgfmpvqs7cxx1kfm";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-linux-amd64.tar.gz";
@@ -21,8 +21,8 @@
sha256 = "1lmy0dmpspzflc9z8p4w1cz47lbqnbkq8dng3v40lpbs75pnprvs";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.21.0-linux-amd64.tar.gz";
- sha256 = "1w7ppcqkhh9k9iw10f4d93glmphyvachrkj6p8b6i93n0k78rxv7";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-linux-amd64.tar.gz";
+ sha256 = "0jl4ic18kf0qcys5mhp6ar4p1bj6ndhi11b51dvzdj5lb39dv43q";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-linux-amd64.tar.gz";
@@ -37,12 +37,12 @@
sha256 = "1h5159y7xlslnijs8lpi4vqgvj2px6whxk9m17p9n7wiyqbmd5na";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.23.0-linux-amd64.tar.gz";
- sha256 = "0kxwx1lk54kdfw49s719g4vwr2iv6fzr82cxi5siykzpf9gfk7bd";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-linux-amd64.tar.gz";
+ sha256 = "0rmzb3wn5hmx8z8ly85spizinp6ja861k05fhw7l63zhqr8pnls2";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-linux-amd64.tar.gz";
- sha256 = "02g59jaifyjfcx185ir79d8lqic38dgaa9cb8dpi3xhvv32z0b0q";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-amd64.tar.gz";
+ sha256 = "1ixmsxawp0qbyjs37c74gcvj2icpbda6znl17yp9bhiyvnrdvxn7";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-linux-amd64.tar.gz";
@@ -81,8 +81,8 @@
sha256 = "0bp7ki3slszmy1vh4a5d4y4fhbvafrazj1cjf081xv91gi99xxz6";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.22.0-linux-amd64.tar.gz";
- sha256 = "0ga794vwdggscl9lf57dg7cii91j4px0wyha4r43rhn0gbp1zk8y";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-linux-amd64.tar.gz";
+ sha256 = "1dznd4c8kpy6mwwb170nfl1m2dmrp6f4jalmk3bdfqscm4xhvk3q";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-linux-amd64.tar.gz";
@@ -107,8 +107,8 @@
sha256 = "1lisk9wr5p866x2hxvlz7nhz0xybhag7wgqk23x0lariln9z5na6";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.0-darwin-amd64.tar.gz";
- sha256 = "0n5kgmcy4hsg4s4q7jd34z9hz6vcqs64j680jzsxw902cgrj5y9p";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-darwin-amd64.tar.gz";
+ sha256 = "103syjj8vla8lygyl5h7ilwm9kl6vxzyn6fdrkz0xcvlhqm1xr30";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-darwin-amd64.tar.gz";
@@ -119,8 +119,8 @@
sha256 = "1j7z5dbqzsdq1q8ks9g5pwzyc3ml6avhhp6xj94dzdhskl6pd8w5";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.21.0-darwin-amd64.tar.gz";
- sha256 = "0sjh5wws6k90w2y5f5bm22c4qxamr658mww3zx11qakdygraijly";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-darwin-amd64.tar.gz";
+ sha256 = "15c5rh0ix7zxn128kangd5x2x1n61xv9d443a7cbriibwvdkvv0j";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-darwin-amd64.tar.gz";
@@ -135,12 +135,12 @@
sha256 = "0r2ykjwam5m2mfiibhq993s8n5pzmks837cwb57jwgwx8lc3ra4x";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.23.0-darwin-amd64.tar.gz";
- sha256 = "0vpkwlihq6pj554qd3csgf25id2q0pjx4mwkpfj74y08lv6d3v83";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-darwin-amd64.tar.gz";
+ sha256 = "06lfimnlns1bfvks0kv5rjcnz6dvdk38npigyigsk9vqs0idcfi3";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-darwin-amd64.tar.gz";
- sha256 = "0gd3xnl31892qp8ilz9lc1zdps77nf07jgvh0k37mink8f0ppy2z";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-amd64.tar.gz";
+ sha256 = "1dy4n03xvirg6fihiid786d88qlkyqkvk4fq6ggnxc92620x7342";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-darwin-amd64.tar.gz";
@@ -179,8 +179,8 @@
sha256 = "1i73sxh6vf6adg6as1q1mab3fcjm7ma7gixj2b0y0d2a5d78lhpa";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.22.0-darwin-amd64.tar.gz";
- sha256 = "19w0m6rxf0i996s9hdjym4f1k0jwf8hrlsr0m9x23xzz5r2simar";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-darwin-amd64.tar.gz";
+ sha256 = "1jxrz82cadmqkd1d26bj5r3bphvzz5z20shjai351hlh9aa3bv2h";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-darwin-amd64.tar.gz";
@@ -205,8 +205,8 @@
sha256 = "041lmx5d1c8ls48mv56jchvk714rqw7jywywdgm6d6ipq7h5d67k";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.0-linux-arm64.tar.gz";
- sha256 = "06hq79r35bcm7yn8qdvdiy19wsqq3ihbrmjakw2vf6xdglrxxxwr";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-linux-arm64.tar.gz";
+ sha256 = "0rijbqaw584b5c0kihrs80cv46s06yv3a68yz1dwa8sl7adi7n9p";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-linux-arm64.tar.gz";
@@ -217,8 +217,8 @@
sha256 = "0mddv37k87wiygh6x9bnxpcr721qbmbqf6l5zk3xl61n56j8qyb1";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.21.0-linux-arm64.tar.gz";
- sha256 = "1zlkij96vr3vf071gwdqcwfxlkfvcnkj4q220l3gxzliix0zvfi4";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-linux-arm64.tar.gz";
+ sha256 = "19aiksm4d4jxs9gw7rdr77ag58fy1v7gkk6r730imgq0d8vsacm1";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-linux-arm64.tar.gz";
@@ -233,12 +233,12 @@
sha256 = "1sc8rf930cz6nkyhqn6p0h7450iqzdsrlw2smhp8yyjjvcjmsksf";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.23.0-linux-arm64.tar.gz";
- sha256 = "0j8dgbfdscp29zj0vd3ial1g87n72jj07afj5lxzgsh8jay1iz2r";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-linux-arm64.tar.gz";
+ sha256 = "1bvzazdis423vb1r30q15q1irh07kgymv5ikzmvrygf4hm3aph06";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-linux-arm64.tar.gz";
- sha256 = "0y7wysd4j1dp73hrbydzj2bfvpgv8vxiza5m6dbg7nl66w9ng0rc";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-linux-arm64.tar.gz";
+ sha256 = "12iv8vjnal2ym70rxmdnvi02x6md7fxi8jbzhzfw526pzqs1dc47";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-linux-arm64.tar.gz";
@@ -274,8 +274,8 @@
sha256 = "0mwpbvv62k8fg07447wwfigs4li4n78fswpzwi4alsjrkqlmw9dj";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.22.0-linux-arm64.tar.gz";
- sha256 = "0kp13hk57apvqmsn1zw1k7r395wdk1308m0kwx4hmcjy6dzifjsq";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-linux-arm64.tar.gz";
+ sha256 = "1b8fi56wkk753w6ip1nkrksyk8qd5ypdbaq668pk60l3jb0c9mad";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-linux-arm64.tar.gz";
@@ -300,8 +300,8 @@
sha256 = "06qc42gb2w2qjy2mz5shh082607395jq0js34wlqq61jgjzpca5l";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.0-darwin-arm64.tar.gz";
- sha256 = "0nwqrg5in05vvj7ln7gi50vp3bnhkwar8fifpi87b134hl50q935";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-kubernetes-v3.8.1-darwin-arm64.tar.gz";
+ sha256 = "1wqkm32lkwff5gwn7dbznzx5rcbcysj2mx4ip77whba59ikfchsj";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-github-v4.5.0-darwin-arm64.tar.gz";
@@ -312,8 +312,8 @@
sha256 = "0fj1ai1kv8xgmsvfbmy5gsinxag70rx9a9gkifqgcpn3r9mj48ks";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.21.0-darwin-arm64.tar.gz";
- sha256 = "0nj8gin7ys63v235x8nywmx0vv2bdcqdmmp7z3lxlxp2hk4nm84g";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-azure-v4.22.0-darwin-arm64.tar.gz";
+ sha256 = "09v28dgrs5a4w8qn4v4zwrn7n7cn2475a2jh9qz3g2ljaj0086fd";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-linode-v3.4.0-darwin-arm64.tar.gz";
@@ -328,12 +328,12 @@
sha256 = "1c3pchbnk6dsnxsl02ypq7s4mmkxdgxszdhql1klpx5js7i1lv8k";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.23.0-darwin-arm64.tar.gz";
- sha256 = "08gcvlfy7kmcx02nf3n4chf6g5lasr2g8gr20gndk0rvihqiwhjz";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-aws-v4.24.1-darwin-arm64.tar.gz";
+ sha256 = "0fafl5zpnzkncvi52qw6f4898yia8p0whvr41m3g8cxcp6nyr0ij";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.2.0-darwin-arm64.tar.gz";
- sha256 = "0waf4apw5bzn276s34yaxvm3xyk5333l3zcz2j52c56wkadzxvpg";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-random-v4.3.1-darwin-arm64.tar.gz";
+ sha256 = "0jrihnwfh5wvc95nipqv7ak77kq9xj0pk5hlapv9w2ls5pwykv0r";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-consul-v3.3.0-darwin-arm64.tar.gz";
@@ -369,8 +369,8 @@
sha256 = "1hzhlxbwji4p8apx4rnqllsgf1k11w49rplz0syzmzb2fxpkif75";
}
{
- url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.22.0-darwin-arm64.tar.gz";
- sha256 = "038nk93mq59d8ynp1ggmhvmgnilrgqzcbg4hapb9pk7hpbwb269c";
+ url = "https://api.pulumi.com/releases/plugins/pulumi-resource-gcp-v5.24.0-darwin-arm64.tar.gz";
+ sha256 = "0nh8305b6qlqr63xaacxs3v804dhrwdz179xlzdgzf9550zdqb39";
}
{
url = "https://api.pulumi.com/releases/plugins/pulumi-resource-mysql-v3.0.0-darwin-arm64.tar.gz";
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 5beb270aaea7..7356c3dbcace 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -25827,6 +25827,8 @@ with pkgs;
kmymoney = libsForQt5.callPackage ../applications/office/kmymoney { };
+ kn = callPackage ../applications/networking/cluster/kn { };
+
kodestudio = callPackage ../applications/editors/kodestudio { };
kondo = callPackage ../applications/misc/kondo { };