diff --git a/nixos/doc/manual/release-notes/rl-2105.xml b/nixos/doc/manual/release-notes/rl-2105.xml
index 0666b4300eca..2f87869fbe34 100644
--- a/nixos/doc/manual/release-notes/rl-2105.xml
+++ b/nixos/doc/manual/release-notes/rl-2105.xml
@@ -788,6 +788,15 @@ self: super:
and use Maturin as their build tool.
+
+
+ Kubernetes has deprecated docker as container runtime.
+ As a consequence, the Kubernetes module now has support for configuration of custom remote container runtimes and enables containerd by default.
+ Note that containerd is more strict regarding container image OCI-compliance.
+ As an example, images with CMD or ENTRYPOINT defined as strings (not lists) will fail on containerd, while working fine on docker.
+ Please test your setup and container images with containerd prior to upgrading.
+
+
diff --git a/nixos/modules/module-list.nix b/nixos/modules/module-list.nix
index f91c21ad5cbb..9bb81d085c95 100644
--- a/nixos/modules/module-list.nix
+++ b/nixos/modules/module-list.nix
@@ -1053,6 +1053,7 @@
./testing/service-runner.nix
./virtualisation/anbox.nix
./virtualisation/container-config.nix
+ ./virtualisation/containerd.nix
./virtualisation/containers.nix
./virtualisation/nixos-containers.nix
./virtualisation/oci-containers.nix
diff --git a/nixos/modules/services/cluster/kubernetes/addons/dns.nix b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
index f12e866930da..24d86628b211 100644
--- a/nixos/modules/services/cluster/kubernetes/addons/dns.nix
+++ b/nixos/modules/services/cluster/kubernetes/addons/dns.nix
@@ -3,7 +3,7 @@
with lib;
let
- version = "1.6.4";
+ version = "1.7.1";
cfg = config.services.kubernetes.addons.dns;
ports = {
dns = 10053;
@@ -55,9 +55,9 @@ in {
type = types.attrs;
default = {
imageName = "coredns/coredns";
- imageDigest = "sha256:493ee88e1a92abebac67cbd4b5658b4730e0f33512461442d8d9214ea6734a9b";
+ imageDigest = "sha256:4a6e0769130686518325b21b0c1d0688b54e7c79244d48e1b15634e98e40c6ef";
finalImageTag = version;
- sha256 = "0fm9zdjavpf5hni8g7fkdd3csjbhd7n7py7llxjc66sbii087028";
+ sha256 = "02r440xcdsgi137k5lmmvp0z5w5fmk8g9mysq5pnysq1wl8sj6mw";
};
};
};
@@ -156,7 +156,6 @@ in {
health :${toString ports.health}
kubernetes ${cfg.clusterDomain} in-addr.arpa ip6.arpa {
pods insecure
- upstream
fallthrough in-addr.arpa ip6.arpa
}
prometheus :${toString ports.metrics}
diff --git a/nixos/modules/services/cluster/kubernetes/apiserver.nix b/nixos/modules/services/cluster/kubernetes/apiserver.nix
index 95bdb4c0d14e..a5b132154766 100644
--- a/nixos/modules/services/cluster/kubernetes/apiserver.nix
+++ b/nixos/modules/services/cluster/kubernetes/apiserver.nix
@@ -238,14 +238,40 @@ in
type = int;
};
+ apiAudiences = mkOption {
+ description = ''
+ Kubernetes apiserver ServiceAccount issuer.
+ '';
+ default = "api,https://kubernetes.default.svc";
+ type = str;
+ };
+
+ serviceAccountIssuer = mkOption {
+ description = ''
+ Kubernetes apiserver ServiceAccount issuer.
+ '';
+ default = "https://kubernetes.default.svc";
+ type = str;
+ };
+
+ serviceAccountSigningKeyFile = mkOption {
+ description = ''
+ Path to the file that contains the current private key of the service
+ account token issuer. The issuer will sign issued ID tokens with this
+ private key.
+ '';
+ type = path;
+ };
+
serviceAccountKeyFile = mkOption {
description = ''
- Kubernetes apiserver PEM-encoded x509 RSA private or public key file,
- used to verify ServiceAccount tokens. By default tls private key file
- is used.
+ File containing PEM-encoded x509 RSA or ECDSA private or public keys,
+ used to verify ServiceAccount tokens. The specified file can contain
+ multiple keys, and the flag can be specified multiple times with
+ different files. If unspecified, --tls-private-key-file is used.
+ Must be specified when --service-account-signing-key is provided
'';
- default = null;
- type = nullOr path;
+ type = path;
};
serviceClusterIpRange = mkOption {
@@ -357,8 +383,10 @@ in
${optionalString (cfg.runtimeConfig != "")
"--runtime-config=${cfg.runtimeConfig}"} \
--secure-port=${toString cfg.securePort} \
- ${optionalString (cfg.serviceAccountKeyFile!=null)
- "--service-account-key-file=${cfg.serviceAccountKeyFile}"} \
+ --api-audiences=${toString cfg.apiAudiences} \
+ --service-account-issuer=${toString cfg.serviceAccountIssuer} \
+ --service-account-signing-key-file=${cfg.serviceAccountSigningKeyFile} \
+ --service-account-key-file=${cfg.serviceAccountKeyFile} \
--service-cluster-ip-range=${cfg.serviceClusterIpRange} \
--storage-backend=${cfg.storageBackend} \
${optionalString (cfg.tlsCertFile != null)
diff --git a/nixos/modules/services/cluster/kubernetes/default.nix b/nixos/modules/services/cluster/kubernetes/default.nix
index 3a11a6513a49..19edc338bba1 100644
--- a/nixos/modules/services/cluster/kubernetes/default.nix
+++ b/nixos/modules/services/cluster/kubernetes/default.nix
@@ -5,6 +5,29 @@ with lib;
let
cfg = config.services.kubernetes;
+ defaultContainerdConfigFile = pkgs.writeText "containerd.toml" ''
+ version = 2
+ root = "/var/lib/containerd/daemon"
+ state = "/var/run/containerd/daemon"
+ oom_score = 0
+
+ [grpc]
+ address = "/var/run/containerd/containerd.sock"
+
+ [plugins."io.containerd.grpc.v1.cri"]
+ sandbox_image = "pause:latest"
+
+ [plugins."io.containerd.grpc.v1.cri".cni]
+ bin_dir = "/opt/cni/bin"
+ max_conf_num = 0
+
+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes.runc]
+ runtime_type = "io.containerd.runc.v2"
+
+ [plugins."io.containerd.grpc.v1.cri".containerd.runtimes."io.containerd.runc.v2".options]
+ SystemdCgroup = true
+ '';
+
mkKubeConfig = name: conf: pkgs.writeText "${name}-kubeconfig" (builtins.toJSON {
apiVersion = "v1";
kind = "Config";
@@ -222,14 +245,9 @@ in {
})
(mkIf cfg.kubelet.enable {
- virtualisation.docker = {
+ virtualisation.containerd = {
enable = mkDefault true;
-
- # kubernetes needs access to logs
- logDriver = mkDefault "json-file";
-
- # iptables must be disabled for kubernetes
- extraOptions = "--iptables=false --ip-masq=false";
+ configFile = mkDefault defaultContainerdConfigFile;
};
})
@@ -269,7 +287,6 @@ in {
users.users.kubernetes = {
uid = config.ids.uids.kubernetes;
description = "Kubernetes user";
- extraGroups = [ "docker" ];
group = "kubernetes";
home = cfg.dataDir;
createHome = true;
diff --git a/nixos/modules/services/cluster/kubernetes/flannel.nix b/nixos/modules/services/cluster/kubernetes/flannel.nix
index 548ffed1ddb5..3f55719027f0 100644
--- a/nixos/modules/services/cluster/kubernetes/flannel.nix
+++ b/nixos/modules/services/cluster/kubernetes/flannel.nix
@@ -8,16 +8,6 @@ let
# we want flannel to use kubernetes itself as configuration backend, not direct etcd
storageBackend = "kubernetes";
-
- # needed for flannel to pass options to docker
- mkDockerOpts = pkgs.runCommand "mk-docker-opts" {
- buildInputs = [ pkgs.makeWrapper ];
- } ''
- mkdir -p $out
-
- # bashInteractive needed for `compgen`
- makeWrapper ${pkgs.bashInteractive}/bin/bash $out/mk-docker-opts --add-flags "${pkgs.kubernetes}/bin/mk-docker-opts.sh"
- '';
in
{
###### interface
@@ -43,43 +33,17 @@ in
cniVersion = "0.3.1";
delegate = {
isDefaultGateway = true;
- bridge = "docker0";
+ bridge = "mynet";
};
}];
};
- systemd.services.mk-docker-opts = {
- description = "Pre-Docker Actions";
- path = with pkgs; [ gawk gnugrep ];
- script = ''
- ${mkDockerOpts}/mk-docker-opts -d /run/flannel/docker
- systemctl restart docker
- '';
- serviceConfig.Type = "oneshot";
- };
-
- systemd.paths.flannel-subnet-env = {
- wantedBy = [ "flannel.service" ];
- pathConfig = {
- PathModified = "/run/flannel/subnet.env";
- Unit = "mk-docker-opts.service";
- };
- };
-
- systemd.services.docker = {
- environment.DOCKER_OPTS = "-b none";
- serviceConfig.EnvironmentFile = "-/run/flannel/docker";
- };
-
- # read environment variables generated by mk-docker-opts
- virtualisation.docker.extraOptions = "$DOCKER_OPTS";
-
networking = {
firewall.allowedUDPPorts = [
8285 # flannel udp
8472 # flannel vxlan
];
- dhcpcd.denyInterfaces = [ "docker*" "flannel*" ];
+ dhcpcd.denyInterfaces = [ "mynet*" "flannel*" ];
};
services.kubernetes.pki.certs = {
diff --git a/nixos/modules/services/cluster/kubernetes/kubelet.nix b/nixos/modules/services/cluster/kubernetes/kubelet.nix
index 479027f1b270..ef6da26a024c 100644
--- a/nixos/modules/services/cluster/kubernetes/kubelet.nix
+++ b/nixos/modules/services/cluster/kubernetes/kubelet.nix
@@ -23,7 +23,7 @@ let
name = "pause";
tag = "latest";
contents = top.package.pause;
- config.Cmd = "/bin/pause";
+ config.Cmd = ["/bin/pause"];
};
kubeconfig = top.lib.mkKubeConfig "kubelet" cfg.kubeconfig;
@@ -125,6 +125,18 @@ in
};
};
+ containerRuntime = mkOption {
+ description = "Which container runtime type to use";
+ type = enum ["docker" "remote"];
+ default = "remote";
+ };
+
+ containerRuntimeEndpoint = mkOption {
+ description = "Endpoint at which to find the container runtime api interface/socket";
+ type = str;
+ default = "unix:///var/run/containerd/containerd.sock";
+ };
+
enable = mkEnableOption "Kubernetes kubelet.";
extraOpts = mkOption {
@@ -235,16 +247,24 @@ in
###### implementation
config = mkMerge [
(mkIf cfg.enable {
+
+ environment.etc."cni/net.d".source = cniConfig;
+
services.kubernetes.kubelet.seedDockerImages = [infraContainer];
+ boot.kernel.sysctl = {
+ "net.bridge.bridge-nf-call-iptables" = 1;
+ "net.ipv4.ip_forward" = 1;
+ "net.bridge.bridge-nf-call-ip6tables" = 1;
+ };
+
systemd.services.kubelet = {
description = "Kubernetes Kubelet Service";
wantedBy = [ "kubernetes.target" ];
- after = [ "network.target" "docker.service" "kube-apiserver.service" ];
+ after = [ "containerd.service" "network.target" "kube-apiserver.service" ];
path = with pkgs; [
gitMinimal
openssh
- docker
util-linux
iproute
ethtool
@@ -254,8 +274,12 @@ in
] ++ lib.optional config.boot.zfs.enabled config.boot.zfs.package ++ top.path;
preStart = ''
${concatMapStrings (img: ''
- echo "Seeding docker image: ${img}"
- docker load <${img}
+ echo "Seeding container image: ${img}"
+ ${if (lib.hasSuffix "gz" img) then
+ ''${pkgs.gzip}/bin/zcat "${img}" | ${pkgs.containerd}/bin/ctr -n k8s.io image import -''
+ else
+ ''${pkgs.coreutils}/bin/cat "${img}" | ${pkgs.containerd}/bin/ctr -n k8s.io image import -''
+ }
'') cfg.seedDockerImages}
rm /opt/cni/bin/* || true
@@ -306,6 +330,9 @@ in
${optionalString (cfg.tlsKeyFile != null)
"--tls-private-key-file=${cfg.tlsKeyFile}"} \
${optionalString (cfg.verbosity != null) "--v=${toString cfg.verbosity}"} \
+ --container-runtime=${cfg.containerRuntime} \
+ --container-runtime-endpoint=${cfg.containerRuntimeEndpoint} \
+ --cgroup-driver=systemd \
${cfg.extraOpts}
'';
WorkingDirectory = top.dataDir;
@@ -315,7 +342,7 @@ in
# Allways include cni plugins
services.kubernetes.kubelet.cni.packages = [pkgs.cni-plugins];
- boot.kernelModules = ["br_netfilter"];
+ boot.kernelModules = ["br_netfilter" "overlay"];
services.kubernetes.kubelet.hostname = with config.networking;
mkDefault (hostName + optionalString (domain != null) ".${domain}");
diff --git a/nixos/modules/services/cluster/kubernetes/pki.nix b/nixos/modules/services/cluster/kubernetes/pki.nix
index 933ae481e968..8de6a3ba0d80 100644
--- a/nixos/modules/services/cluster/kubernetes/pki.nix
+++ b/nixos/modules/services/cluster/kubernetes/pki.nix
@@ -361,6 +361,7 @@ in
tlsCertFile = mkDefault cert;
tlsKeyFile = mkDefault key;
serviceAccountKeyFile = mkDefault cfg.certs.serviceAccount.cert;
+ serviceAccountSigningKeyFile = mkDefault cfg.certs.serviceAccount.key;
kubeletClientCaFile = mkDefault caCert;
kubeletClientCertFile = mkDefault cfg.certs.apiserverKubeletClient.cert;
kubeletClientKeyFile = mkDefault cfg.certs.apiserverKubeletClient.key;
diff --git a/nixos/modules/services/networking/flannel.nix b/nixos/modules/services/networking/flannel.nix
index 4c040112d28d..32a7eb3ed69e 100644
--- a/nixos/modules/services/networking/flannel.nix
+++ b/nixos/modules/services/networking/flannel.nix
@@ -162,10 +162,7 @@ in {
NODE_NAME = cfg.nodeName;
};
path = [ pkgs.iptables ];
- preStart = ''
- mkdir -p /run/flannel
- touch /run/flannel/docker
- '' + optionalString (cfg.storageBackend == "etcd") ''
+ preStart = optionalString (cfg.storageBackend == "etcd") ''
echo "setting network configuration"
until ${pkgs.etcdctl}/bin/etcdctl set /coreos.com/network/config '${builtins.toJSON networkConfig}'
do
@@ -177,6 +174,7 @@ in {
ExecStart = "${cfg.package}/bin/flannel";
Restart = "always";
RestartSec = "10s";
+ RuntimeDirectory = "flannel";
};
};
diff --git a/nixos/modules/virtualisation/containerd.nix b/nixos/modules/virtualisation/containerd.nix
new file mode 100644
index 000000000000..194276d16958
--- /dev/null
+++ b/nixos/modules/virtualisation/containerd.nix
@@ -0,0 +1,60 @@
+{ pkgs, lib, config, ... }:
+let
+ cfg = config.virtualisation.containerd;
+ containerdConfigChecked = pkgs.runCommand "containerd-config-checked.toml" { nativeBuildInputs = [pkgs.containerd]; } ''
+ containerd -c ${cfg.configFile} config dump >/dev/null
+ ln -s ${cfg.configFile} $out
+ '';
+in
+{
+
+ options.virtualisation.containerd = with lib.types; {
+ enable = lib.mkEnableOption "containerd container runtime";
+
+ configFile = lib.mkOption {
+ default = null;
+ description = "path to containerd config file";
+ type = nullOr path;
+ };
+
+ args = lib.mkOption {
+ default = {};
+ description = "extra args to append to the containerd cmdline";
+ type = attrsOf str;
+ };
+ };
+
+ config = lib.mkIf cfg.enable {
+ virtualisation.containerd.args.config = lib.mkIf (cfg.configFile != null) (toString containerdConfigChecked);
+
+ environment.systemPackages = [pkgs.containerd];
+
+ systemd.services.containerd = {
+ description = "containerd - container runtime";
+ wantedBy = [ "multi-user.target" ];
+ after = [ "network.target" ];
+ path = with pkgs; [
+ containerd
+ runc
+ iptables
+ ];
+ serviceConfig = {
+ ExecStart = ''${pkgs.containerd}/bin/containerd ${lib.concatStringsSep " " (lib.cli.toGNUCommandLine {} cfg.args)}'';
+ Delegate = "yes";
+ KillMode = "process";
+ Type = "notify";
+ Restart = "always";
+ RestartSec = "5";
+ StartLimitBurst = "8";
+ StartLimitIntervalSec = "120s";
+
+ # "limits" defined below are adopted from upstream: https://github.com/containerd/containerd/blob/master/containerd.service
+ LimitNPROC = "infinity";
+ LimitCORE = "infinity";
+ LimitNOFILE = "infinity";
+ TasksMax = "infinity";
+ OOMScoreAdjust = "-999";
+ };
+ };
+ };
+}
diff --git a/nixos/tests/kubernetes/dns.nix b/nixos/tests/kubernetes/dns.nix
index 890499a0fb8a..b6cd811c5aef 100644
--- a/nixos/tests/kubernetes/dns.nix
+++ b/nixos/tests/kubernetes/dns.nix
@@ -34,7 +34,7 @@ let
name = "redis";
tag = "latest";
contents = [ pkgs.redis pkgs.bind.host ];
- config.Entrypoint = "/bin/redis-server";
+ config.Entrypoint = ["/bin/redis-server"];
};
probePod = pkgs.writeText "probe-pod.json" (builtins.toJSON {
@@ -55,12 +55,11 @@ let
name = "probe";
tag = "latest";
contents = [ pkgs.bind.host pkgs.busybox ];
- config.Entrypoint = "/bin/tail";
+ config.Entrypoint = ["/bin/tail"];
};
- extraConfiguration = { config, pkgs, ... }: {
+ extraConfiguration = { config, pkgs, lib, ... }: {
environment.systemPackages = [ pkgs.bind.host ];
- # virtualisation.docker.extraOptions = "--dns=${config.services.kubernetes.addons.dns.clusterIp}";
services.dnsmasq.enable = true;
services.dnsmasq.servers = [
"/cluster.local/${config.services.kubernetes.addons.dns.clusterIp}#53"
@@ -77,7 +76,7 @@ let
# prepare machine1 for test
machine1.wait_until_succeeds("kubectl get node machine1.${domain} | grep -w Ready")
machine1.wait_until_succeeds(
- "docker load < ${redisImage}"
+ "${pkgs.gzip}/bin/zcat ${redisImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
)
machine1.wait_until_succeeds(
"kubectl create -f ${redisPod}"
@@ -86,7 +85,7 @@ let
"kubectl create -f ${redisService}"
)
machine1.wait_until_succeeds(
- "docker load < ${probeImage}"
+ "${pkgs.gzip}/bin/zcat ${probeImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
)
machine1.wait_until_succeeds(
"kubectl create -f ${probePod}"
@@ -118,7 +117,7 @@ let
# prepare machines for test
machine1.wait_until_succeeds("kubectl get node machine2.${domain} | grep -w Ready")
machine2.wait_until_succeeds(
- "docker load < ${redisImage}"
+ "${pkgs.gzip}/bin/zcat ${redisImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
)
machine1.wait_until_succeeds(
"kubectl create -f ${redisPod}"
@@ -127,7 +126,7 @@ let
"kubectl create -f ${redisService}"
)
machine2.wait_until_succeeds(
- "docker load < ${probeImage}"
+ "${pkgs.gzip}/bin/zcat ${probeImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
)
machine1.wait_until_succeeds(
"kubectl create -f ${probePod}"
diff --git a/nixos/tests/kubernetes/rbac.nix b/nixos/tests/kubernetes/rbac.nix
index c922da515d91..3fc8ed0fbe38 100644
--- a/nixos/tests/kubernetes/rbac.nix
+++ b/nixos/tests/kubernetes/rbac.nix
@@ -85,7 +85,7 @@ let
name = "kubectl";
tag = "latest";
contents = [ kubectl pkgs.busybox kubectlPod2 ];
- config.Entrypoint = "/bin/sh";
+ config.Entrypoint = ["/bin/sh"];
};
base = {
@@ -97,7 +97,7 @@ let
machine1.wait_until_succeeds("kubectl get node machine1.my.zyx | grep -w Ready")
machine1.wait_until_succeeds(
- "docker load < ${kubectlImage}"
+ "${pkgs.gzip}/bin/zcat ${kubectlImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
)
machine1.wait_until_succeeds(
@@ -134,7 +134,7 @@ let
machine1.wait_until_succeeds("kubectl get node machine2.my.zyx | grep -w Ready")
machine2.wait_until_succeeds(
- "docker load < ${kubectlImage}"
+ "${pkgs.gzip}/bin/zcat ${kubectlImage} | ${pkgs.containerd}/bin/ctr -n k8s.io image import -"
)
machine1.wait_until_succeeds(
diff --git a/pkgs/applications/blockchains/particl/particl-core.nix b/pkgs/applications/blockchains/particl/particl-core.nix
index feced9eecb01..99bc49e8db33 100644
--- a/pkgs/applications/blockchains/particl/particl-core.nix
+++ b/pkgs/applications/blockchains/particl/particl-core.nix
@@ -17,11 +17,11 @@ with lib;
stdenv.mkDerivation rec {
pname = "particl-core";
- version = "0.19.2.3";
+ version = "0.19.2.5";
src = fetchurl {
url = "https://github.com/particl/particl-core/archive/v${version}.tar.gz";
- sha256 = "sha256-nAsQvYWUejSu/4MMIwZhlV5Gjza/Da4jcp6/01lppvg=";
+ sha256 = "sha256-uI4T8h6RvCikk8h/sZmGlj3Uj3Xhu0vDn/fPb6rLcSg=";
};
nativeBuildInputs = [ pkg-config autoreconfHook ];
diff --git a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
index 6517203eeebe..9264bbb15607 100644
--- a/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
+++ b/pkgs/applications/networking/browsers/tor-browser-bundle-bin/default.nix
@@ -33,9 +33,6 @@
, gmp
-# Pluggable transport dependencies
-, python27
-
# Wrapper runtime
, coreutils
, glibcLocales
@@ -91,19 +88,19 @@ let
fteLibPath = makeLibraryPath [ stdenv.cc.cc gmp ];
# Upstream source
- version = "10.0.12";
+ version = "10.0.13";
lang = "en-US";
srcs = {
x86_64-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux64-${version}_${lang}.tar.xz";
- sha256 = "0i5g997kgn7n6ji7pxbyvkx33nqfi2s1val680fp5hh1zz31yvfv";
+ sha256 = "sha256-KxJKS/ymbkAg8LjMFz3BDSupPk5cNB1pFz9fFyRTndk=";
};
i686-linux = fetchurl {
url = "https://dist.torproject.org/torbrowser/${version}/tor-browser-linux32-${version}_${lang}.tar.xz";
- sha256 = "16915fvvq3d16v1bzclnb52sa6yyaalihk3gv93jcnph9vsz8ags";
+ sha256 = "sha256-4glc2qP6AdHtWc8zW+varG30rlAXpeFyKjqDPsmiVfI=";
};
};
in
diff --git a/pkgs/applications/networking/cluster/kubernetes/default.nix b/pkgs/applications/networking/cluster/kubernetes/default.nix
index d4ec9cf5ef30..c218e1b492bd 100644
--- a/pkgs/applications/networking/cluster/kubernetes/default.nix
+++ b/pkgs/applications/networking/cluster/kubernetes/default.nix
@@ -20,19 +20,21 @@
stdenv.mkDerivation rec {
pname = "kubernetes";
- version = "1.19.5";
+ version = "1.20.4";
src = fetchFromGitHub {
owner = "kubernetes";
repo = "kubernetes";
rev = "v${version}";
- sha256 = "15bv620fj4x731f2z2a9dcdss18rk379kc40g49bpqsdn42jjx2z";
+ sha256 = "0nni351ya688dphdkpyq94p3wjw2kigg85kmalwdpv5wpz1abl5g";
};
nativeBuildInputs = [ removeReferencesTo makeWrapper which go rsync installShellFiles ];
outputs = [ "out" "man" "pause" ];
+ patches = [ ./fixup-addonmanager-lib-path.patch ];
+
postPatch = ''
# go env breaks the sandbox
substituteInPlace "hack/lib/golang.sh" \
@@ -53,7 +55,7 @@ stdenv.mkDerivation rec {
postBuild = ''
./hack/update-generated-docs.sh
- (cd build/pause && cc pause.c -o pause)
+ (cd build/pause/linux && cc pause.c -o pause)
'';
installPhase = ''
@@ -61,14 +63,19 @@ stdenv.mkDerivation rec {
install -D _output/local/go/bin/''${p##*/} -t $out/bin
done
- install -D build/pause/pause -t $pause/bin
+ install -D build/pause/linux/pause -t $pause/bin
installManPage docs/man/man1/*.[1-9]
- cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons
+ # Unfortunately, kube-addons-main.sh only looks for the lib file in either the current working dir
+ # or in /opt. We have to patch this for now.
+ substitute cluster/addons/addon-manager/kube-addons-main.sh $out/bin/kube-addons \
+ --subst-var out
+
+ chmod +x $out/bin/kube-addons
patchShebangs $out/bin/kube-addons
wrapProgram $out/bin/kube-addons --set "KUBECTL_BIN" "$out/bin/kubectl"
- cp ${./mk-docker-opts.sh} $out/bin/mk-docker-opts.sh
+ cp cluster/addons/addon-manager/kube-addons.sh $out/bin/kube-addons-lib.sh
for tool in kubeadm kubectl; do
installShellCompletion --cmd $tool \
diff --git a/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch b/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
new file mode 100644
index 000000000000..ef2904bdcfe7
--- /dev/null
+++ b/pkgs/applications/networking/cluster/kubernetes/fixup-addonmanager-lib-path.patch
@@ -0,0 +1,23 @@
+diff --git a/cluster/addons/addon-manager/kube-addons-main.sh b/cluster/addons/addon-manager/kube-addons-main.sh
+index 849973470d1..e4fef30eaea 100755
+--- a/cluster/addons/addon-manager/kube-addons-main.sh
++++ b/cluster/addons/addon-manager/kube-addons-main.sh
+@@ -17,17 +17,7 @@
+ # Import required functions. The addon manager is installed to /opt in
+ # production use (see the Dockerfile)
+ # Disabling shellcheck following files as the full path would be required.
+-if [ -f "kube-addons.sh" ]; then
+- # shellcheck disable=SC1091
+- source "kube-addons.sh"
+-elif [ -f "/opt/kube-addons.sh" ]; then
+- # shellcheck disable=SC1091
+- source "/opt/kube-addons.sh"
+-else
+- # If the required source is missing, we have to fail.
+- log ERR "== Could not find kube-addons.sh (not in working directory or /opt) at $(date -Is) =="
+- exit 1
+-fi
++source "@out@/bin/kube-addons-lib.sh"
+
+ # The business logic for whether a given object should be created
+ # was already enforced by salt, and /etc/kubernetes/addons is the
diff --git a/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh b/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
deleted file mode 100755
index 22a459f51349..000000000000
--- a/pkgs/applications/networking/cluster/kubernetes/mk-docker-opts.sh
+++ /dev/null
@@ -1,113 +0,0 @@
-#!/usr/bin/env bash
-
-# Copyright 2014 The Kubernetes Authors.
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-
-# Generate Docker daemon options based on flannel env file.
-
-# exit on any error
-set -e
-
-usage() {
- echo "$0 [-f FLANNEL-ENV-FILE] [-d DOCKER-ENV-FILE] [-i] [-c] [-m] [-k COMBINED-KEY]
-
-Generate Docker daemon options based on flannel env file
-OPTIONS:
- -f Path to flannel env file. Defaults to /run/flannel/subnet.env
- -d Path to Docker env file to write to. Defaults to /run/docker_opts.env
- -i Output each Docker option as individual var. e.g. DOCKER_OPT_MTU=1500
- -c Output combined Docker options into DOCKER_OPTS var
- -k Set the combined options key to this value (default DOCKER_OPTS=)
- -m Do not output --ip-masq (useful for older Docker version)
-" >/dev/stderr
- exit 1
-}
-
-flannel_env="/run/flannel/subnet.env"
-docker_env="/run/docker_opts.env"
-combined_opts_key="DOCKER_OPTS"
-indiv_opts=false
-combined_opts=false
-ipmasq=true
-val=""
-
-while getopts "f:d:icmk:" opt; do
- case $opt in
- f)
- flannel_env=$OPTARG
- ;;
- d)
- docker_env=$OPTARG
- ;;
- i)
- indiv_opts=true
- ;;
- c)
- combined_opts=true
- ;;
- m)
- ipmasq=false
- ;;
- k)
- combined_opts_key=$OPTARG
- ;;
- \?)
- usage
- ;;
- esac
-done
-
-if [[ $indiv_opts = false ]] && [[ $combined_opts = false ]]; then
- indiv_opts=true
- combined_opts=true
-fi
-
-if [[ -f "${flannel_env}" ]]; then
- source "${flannel_env}"
-fi
-
-if [[ -n "$FLANNEL_SUBNET" ]]; then
- # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
- DOCKER_OPT_BIP="--bip=$FLANNEL_SUBNET"
-fi
-
-if [[ -n "$FLANNEL_MTU" ]]; then
- # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
- DOCKER_OPT_MTU="--mtu=$FLANNEL_MTU"
-fi
-
-if [[ "$FLANNEL_IPMASQ" = true ]] && [[ $ipmasq = true ]]; then
- # shellcheck disable=SC2034 # Variable name referenced in OPT_LOOP below
- DOCKER_OPT_IPMASQ="--ip-masq=false"
-fi
-
-eval docker_opts="\$${combined_opts_key}"
-docker_opts+=" "
-
-echo -n "" >"${docker_env}"
-
-# OPT_LOOP
-for opt in $(compgen -v DOCKER_OPT_); do
- eval val=\$"${opt}"
-
- if [[ "$indiv_opts" = true ]]; then
- echo "$opt=\"$val\"" >>"${docker_env}"
- fi
-
- docker_opts+="$val "
-done
-
-if [[ "$combined_opts" = true ]]; then
- echo "${combined_opts_key}=\"${docker_opts}\"" >>"${docker_env}"
-fi
diff --git a/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch b/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
new file mode 100644
index 000000000000..364f7653efa3
--- /dev/null
+++ b/pkgs/applications/networking/cluster/ssm-agent/0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
@@ -0,0 +1,44 @@
+From bea6307ec2a77d90d59c13940381d73ec0f05b70 Mon Sep 17 00:00:00 2001
+From: Graham Christensen
+Date: Mon, 1 Mar 2021 10:57:44 -0500
+Subject: [PATCH] Disable NIC tests that fail in the Nix sandbox.
+
+---
+ agent/managedInstances/fingerprint/fingerprint_integ_test.go | 2 ++
+ agent/ssm/service_test.go | 1 +
+ 2 files changed, 3 insertions(+)
+
+diff --git a/agent/managedInstances/fingerprint/fingerprint_integ_test.go b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+index a1f969ff..631ea1f5 100644
+--- a/agent/managedInstances/fingerprint/fingerprint_integ_test.go
++++ b/agent/managedInstances/fingerprint/fingerprint_integ_test.go
+@@ -28,12 +28,14 @@ func TestHostnameInfo(t *testing.T) {
+ }
+
+ func TestPrimaryIpInfo(t *testing.T) {
++ t.Skip("The Nix build sandbox has no non-loopback IPs, causing this test to fail.");
+ ip, err := primaryIpInfo()
+ assert.NoError(t, err, "expected no error fetching the primary ip")
+ assert.NotEmpty(t, ip, "expected to fetch primary ip")
+ }
+
+ func TestMacAddrInfo(t *testing.T) {
++ t.Skip("The Nix build sandbox has no non-loopback interfaces, causing this test to fail.");
+ mac, err := macAddrInfo()
+ assert.NoError(t, err, "expected no error fetching the mac addr")
+ assert.NotEmpty(t, mac, "expected to fetch mac address")
+diff --git a/agent/ssm/service_test.go b/agent/ssm/service_test.go
+index f4b34f83..d8216dba 100644
+--- a/agent/ssm/service_test.go
++++ b/agent/ssm/service_test.go
+@@ -85,6 +85,7 @@ func (suite *SsmServiceTestSuite) TestUpdateEmptyInstanceInformation() {
+ // Test function for update instance information
+ // This function update the agent name, agent statuc, and agent version.
+ func (suite *SsmServiceTestSuite) TestUpdateInstanceInformation() {
++ suite.T().Skip("The Nix build sandbox has no interfaces for IP and MAC address reports.");
+ // Give mock value to test UpdateInstanceInformation, assert the error is nil, assert the log.Debug function get called.
+ response, err := suite.sdkService.UpdateInstanceInformation(suite.logMock, "2.2.3.2", "active", "Amazon-ssm-agent")
+ assert.Nil(suite.T(), err, "Err should be nil")
+--
+2.29.2
+
diff --git a/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch b/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
new file mode 100644
index 000000000000..234e510d3d17
--- /dev/null
+++ b/pkgs/applications/networking/cluster/ssm-agent/0002-version-gen-don-t-use-unnecessary-constants.patch
@@ -0,0 +1,46 @@
+From 473e3f8544915a35b3a45c548743978b34e5310e Mon Sep 17 00:00:00 2001
+From: Cole Helbling
+Date: Tue, 2 Mar 2021 00:24:00 -0800
+Subject: [PATCH] version-gen: don't use unnecessary constants
+
+This prevents the tool from being built with Nix, because this project
+doesn't use Go modules (or something; I'm not really familiar with Go,
+much less Go + Nix).
+---
+ agent/version/versiongenerator/version-gen.go | 6 ++----
+ 1 file changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/agent/version/versiongenerator/version-gen.go b/agent/version/versiongenerator/version-gen.go
+index d710effc..55c9a001 100644
+--- a/agent/version/versiongenerator/version-gen.go
++++ b/agent/version/versiongenerator/version-gen.go
+@@ -22,8 +22,6 @@ import (
+ "path/filepath"
+ "strings"
+ "text/template"
+-
+- "github.com/aws/amazon-ssm-agent/agent/appconfig"
+ )
+
+ const versiongoTemplate = `// This is an autogenerated file and should not be edited.
+@@ -59,7 +57,7 @@ func main() {
+ versionStr := strings.TrimSpace(string(versionContent))
+
+ fmt.Printf("Agent Version: %v", versionStr)
+- if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), appconfig.ReadWriteAccess); err != nil {
++ if err := ioutil.WriteFile(filepath.Join("VERSION"), []byte(versionStr), 0600); err != nil {
+ log.Fatalf("Error writing to VERSION file. %v", err)
+ }
+
+@@ -108,7 +106,7 @@ func main() {
+
+ releaseNoteOutFile := strings.Join(releaseNoteLines, "\n")
+
+- if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), appconfig.ReadWriteAccess); err != nil {
++ if err = ioutil.WriteFile(filepath.Join(releaseNotesFile), []byte(releaseNoteOutFile), 0600); err != nil {
+ log.Fatalf("Error writing to RELEASENOTES.md file. %v", err)
+ }
+
+--
+2.30.0
+
diff --git a/pkgs/applications/networking/cluster/ssm-agent/default.nix b/pkgs/applications/networking/cluster/ssm-agent/default.nix
index b042f8ff15f3..3aa583f3ae39 100644
--- a/pkgs/applications/networking/cluster/ssm-agent/default.nix
+++ b/pkgs/applications/networking/cluster/ssm-agent/default.nix
@@ -1,63 +1,110 @@
-{ lib, fetchFromGitHub, buildGoPackage, bash, makeWrapper }:
+{ lib
+, writeShellScriptBin
+, buildGoPackage
+, makeWrapper
+, fetchFromGitHub
+, coreutils
+, nettools
+, dmidecode
+, util-linux
+, bashInteractive
+}:
+let
+ # Tests use lsb_release, so we mock it (the SSM agent used to not
+ # read from our /etc/os-release file, but now it does) because in
+ # reality, it won't (shouldn't) be used when active on a system with
+ # /etc/os-release. If it is, we fake the only two fields it cares about.
+ fake-lsb-release = writeShellScriptBin "lsb_release" ''
+ . /etc/os-release || true
+
+ case "$1" in
+ -i) echo "''${NAME:-unknown}";;
+ -r) echo "''${VERSION:-unknown}";;
+ esac
+ '';
+in
buildGoPackage rec {
- pname = "amazon-ssm-agent";
- version = "2.3.1319.0";
+ pname = "amazon-ssm-agent";
+ version = "3.0.755.0";
goPackagePath = "github.com/aws/${pname}";
- subPackages = [
- "agent"
- "agent/framework/processor/executer/outofproc/worker"
- "agent/framework/processor/executer/outofproc/worker"
- "agent/framework/processor/executer/outofproc/sessionworker"
- "agent/session/logging"
- "agent/cli-main"
- ];
nativeBuildInputs = [ makeWrapper ];
src = fetchFromGitHub {
- rev = version;
- owner = "aws";
- repo = pname;
- sha256 = "1yiyhj7ckqa32b1rnbwn7zx89rsj00m5imn1xlpsw002ywxsxbnv";
+ rev = version;
+ owner = "aws";
+ repo = "amazon-ssm-agent";
+ hash = "sha256-yVQJL1MJ1JlAndlrXfEbNLQihlbLhSoQXTKzJMRzhao=";
};
+ patches = [
+ # Some tests use networking, so we skip them.
+ ./0001-Disable-NIC-tests-that-fail-in-the-Nix-sandbox.patch
+
+ # They used constants from another package that I couldn't figure
+ # out how to resolve, so hardcoded the constants.
+ ./0002-version-gen-don-t-use-unnecessary-constants.patch
+ ];
+
+ preConfigure = ''
+ rm -r ./Tools/src/goreportcard
+ printf "#!/bin/sh\ntrue" > ./Tools/src/checkstyle.sh
+
+ substituteInPlace agent/platform/platform_unix.go \
+ --replace "/usr/bin/uname" "${coreutils}/bin/uname" \
+ --replace '"/bin", "hostname"' '"${nettools}/bin/hostname"' \
+ --replace '"lsb_release"' '"${fake-lsb-release}/bin/lsb_release"'
+
+ substituteInPlace agent/managedInstances/fingerprint/hardwareInfo_unix.go \
+ --replace /usr/sbin/dmidecode ${dmidecode}/bin/dmidecode
+
+ substituteInPlace agent/session/shell/shell_unix.go \
+ --replace '"script"' '"${util-linux}/bin/script"'
+
+ echo "${version}" > VERSION
+ '';
+
preBuild = ''
- mv go/src/${goPackagePath}/vendor strange-vendor
- mv strange-vendor/src go/src/${goPackagePath}/vendor
+ cp -r go/src/${goPackagePath}/vendor/src go
- cd go/src/${goPackagePath}
- echo ${version} > VERSION
+ pushd go/src/${goPackagePath}
- substituteInPlace agent/plugins/inventory/gatherers/application/dataProvider.go \
- --replace '"github.com/aws/amazon-ssm-agent/agent/plugins/configurepackage/localpackages"' ""
+ # Note: if this step fails, please patch the code to fix it! Please only skip
+ # tests if it is not feasible for the test to pass in a sandbox.
+ make quick-integtest
- go run agent/version/versiongenerator/version-gen.go
- substituteInPlace agent/appconfig/constants_unix.go \
- --replace /usr/bin/ssm-document-worker $bin/bin/ssm-document-worker \
- --replace /usr/bin/ssm-session-worker $bin/bin/ssm-session-worker \
- --replace /usr/bin/ssm-session-logger $bin/bin/ssm-session-logger
- cd -
+ make pre-release
+ make pre-build
+
+ popd
'';
postBuild = ''
- mv go/bin/agent go/bin/amazon-ssm-agent
- mv go/bin/worker go/bin/ssm-document-worker
- mv go/bin/sessionworker go/bin/ssm-session-worker
- mv go/bin/logging go/bin/ssm-session-logger
- mv go/bin/cli-main go/bin/ssm-cli
+ pushd go/bin
+
+ rm integration-cli versiongenerator generator
+
+ mv core amazon-ssm-agent
+ mv agent ssm-agent-worker
+ mv cli-main ssm-cli
+ mv worker ssm-document-worker
+ mv logging ssm-session-logger
+ mv sessionworker ssm-session-worker
+
+ popd
'';
- postInstall = ''
- wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bash}/bin
+ postFixup = ''
+ wrapProgram $out/bin/amazon-ssm-agent --prefix PATH : ${bashInteractive}/bin
'';
meta = with lib; {
description = "Agent to enable remote management of your Amazon EC2 instance configuration";
- homepage = "https://github.com/aws/amazon-ssm-agent";
- license = licenses.asl20;
- platforms = platforms.unix;
+ homepage = "https://github.com/aws/amazon-ssm-agent";
+ license = licenses.asl20;
+ platforms = platforms.unix;
maintainers = with maintainers; [ copumpkin manveru ];
};
}
diff --git a/pkgs/applications/networking/instant-messengers/mirage/default.nix b/pkgs/applications/networking/instant-messengers/mirage/default.nix
index 3b6b9bfc6f91..42ea1c52fa9b 100644
--- a/pkgs/applications/networking/instant-messengers/mirage/default.nix
+++ b/pkgs/applications/networking/instant-messengers/mirage/default.nix
@@ -1,6 +1,6 @@
{ lib, stdenv, mkDerivation, fetchFromGitHub
, qmake, pkg-config, olm, wrapQtAppsHook
-, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qttools, qtgraphicaleffects
+, qtbase, qtquickcontrols2, qtkeychain, qtmultimedia, qtgraphicaleffects
, python3Packages, pyotherside, libXScrnSaver
}:
diff --git a/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch b/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
new file mode 100644
index 000000000000..3fdb8f768e9d
--- /dev/null
+++ b/pkgs/applications/science/math/sage/patches/eclib-20210223-test-formatting.patch
@@ -0,0 +1,131 @@
+diff --git a/src/sage/libs/eclib/interface.py b/src/sage/libs/eclib/interface.py
+index e898456720..6b98c12328 100644
+--- a/src/sage/libs/eclib/interface.py
++++ b/src/sage/libs/eclib/interface.py
+@@ -758,78 +758,78 @@ class mwrank_MordellWeil(SageObject):
+
+ sage: EQ = mwrank_MordellWeil(E, verbose=True)
+ sage: EQ.search(1)
+- P1 = [0:1:0] is torsion point, order 1
+- P1 = [-3:0:1] is generator number 1
+- saturating up to 20...Checking 2-saturation
++ P1 = [0:1:0] is torsion point, order 1
++ P1 = [-3:0:1] is generator number 1
++ saturating up to 20...Checking 2-saturation...
+ Points have successfully been 2-saturated (max q used = 7)
+- Checking 3-saturation
++ Checking 3-saturation...
+ Points have successfully been 3-saturated (max q used = 7)
+- Checking 5-saturation
++ Checking 5-saturation...
+ Points have successfully been 5-saturated (max q used = 23)
+- Checking 7-saturation
++ Checking 7-saturation...
+ Points have successfully been 7-saturated (max q used = 41)
+- Checking 11-saturation
++ Checking 11-saturation...
+ Points have successfully been 11-saturated (max q used = 17)
+- Checking 13-saturation
++ Checking 13-saturation...
+ Points have successfully been 13-saturated (max q used = 43)
+- Checking 17-saturation
++ Checking 17-saturation...
+ Points have successfully been 17-saturated (max q used = 31)
+- Checking 19-saturation
++ Checking 19-saturation...
+ Points have successfully been 19-saturated (max q used = 37)
+ done
+- P2 = [-2:3:1] is generator number 2
+- saturating up to 20...Checking 2-saturation
++ P2 = [-2:3:1] is generator number 2
++ saturating up to 20...Checking 2-saturation...
+ possible kernel vector = [1,1]
+ This point may be in 2E(Q): [14:-52:1]
+ ...and it is!
+ Replacing old generator #1 with new generator [1:-1:1]
+ Points have successfully been 2-saturated (max q used = 7)
+ Index gain = 2^1
+- Checking 3-saturation
++ Checking 3-saturation...
+ Points have successfully been 3-saturated (max q used = 13)
+- Checking 5-saturation
++ Checking 5-saturation...
+ Points have successfully been 5-saturated (max q used = 67)
+- Checking 7-saturation
++ Checking 7-saturation...
+ Points have successfully been 7-saturated (max q used = 53)
+- Checking 11-saturation
++ Checking 11-saturation...
+ Points have successfully been 11-saturated (max q used = 73)
+- Checking 13-saturation
++ Checking 13-saturation...
+ Points have successfully been 13-saturated (max q used = 103)
+- Checking 17-saturation
++ Checking 17-saturation...
+ Points have successfully been 17-saturated (max q used = 113)
+- Checking 19-saturation
++ Checking 19-saturation...
+ Points have successfully been 19-saturated (max q used = 47)
+ done (index = 2).
+ Gained index 2, new generators = [ [1:-1:1] [-2:3:1] ]
+- P3 = [-14:25:8] is generator number 3
+- saturating up to 20...Checking 2-saturation
++ P3 = [-14:25:8] is generator number 3
++ saturating up to 20...Checking 2-saturation...
+ Points have successfully been 2-saturated (max q used = 11)
+- Checking 3-saturation
++ Checking 3-saturation...
+ Points have successfully been 3-saturated (max q used = 13)
+- Checking 5-saturation
++ Checking 5-saturation...
+ Points have successfully been 5-saturated (max q used = 71)
+- Checking 7-saturation
++ Checking 7-saturation...
+ Points have successfully been 7-saturated (max q used = 101)
+- Checking 11-saturation
++ Checking 11-saturation...
+ Points have successfully been 11-saturated (max q used = 127)
+- Checking 13-saturation
++ Checking 13-saturation...
+ Points have successfully been 13-saturated (max q used = 151)
+- Checking 17-saturation
++ Checking 17-saturation...
+ Points have successfully been 17-saturated (max q used = 139)
+- Checking 19-saturation
++ Checking 19-saturation...
+ Points have successfully been 19-saturated (max q used = 179)
+ done (index = 1).
+- P4 = [-1:3:1] = -1*P1 + -1*P2 + -1*P3 (mod torsion)
+- P4 = [0:2:1] = 2*P1 + 0*P2 + 1*P3 (mod torsion)
+- P4 = [2:13:8] = -3*P1 + 1*P2 + -1*P3 (mod torsion)
+- P4 = [1:0:1] = -1*P1 + 0*P2 + 0*P3 (mod torsion)
+- P4 = [2:0:1] = -1*P1 + 1*P2 + 0*P3 (mod torsion)
+- P4 = [18:7:8] = -2*P1 + -1*P2 + -1*P3 (mod torsion)
+- P4 = [3:3:1] = 1*P1 + 0*P2 + 1*P3 (mod torsion)
+- P4 = [4:6:1] = 0*P1 + -1*P2 + -1*P3 (mod torsion)
+- P4 = [36:69:64] = 1*P1 + -2*P2 + 0*P3 (mod torsion)
+- P4 = [68:-25:64] = -2*P1 + -1*P2 + -2*P3 (mod torsion)
+- P4 = [12:35:27] = 1*P1 + -1*P2 + -1*P3 (mod torsion)
++ P4 = [-1:3:1] = -1*P1 + -1*P2 + -1*P3 (mod torsion)
++ P4 = [0:2:1] = 2*P1 + 0*P2 + 1*P3 (mod torsion)
++ P4 = [2:13:8] = -3*P1 + 1*P2 + -1*P3 (mod torsion)
++ P4 = [1:0:1] = -1*P1 + 0*P2 + 0*P3 (mod torsion)
++ P4 = [2:0:1] = -1*P1 + 1*P2 + 0*P3 (mod torsion)
++ P4 = [18:7:8] = -2*P1 + -1*P2 + -1*P3 (mod torsion)
++ P4 = [3:3:1] = 1*P1 + 0*P2 + 1*P3 (mod torsion)
++ P4 = [4:6:1] = 0*P1 + -1*P2 + -1*P3 (mod torsion)
++ P4 = [36:69:64] = 1*P1 + -2*P2 + 0*P3 (mod torsion)
++ P4 = [68:-25:64] = -2*P1 + -1*P2 + -2*P3 (mod torsion)
++ P4 = [12:35:27] = 1*P1 + -1*P2 + -1*P3 (mod torsion)
+ sage: EQ
+ Subgroup of Mordell-Weil group: [[1:-1:1], [-2:3:1], [-14:25:8]]
+
+@@ -1076,7 +1076,7 @@ class mwrank_MordellWeil(SageObject):
+ sage: EQ.search(1)
+ P1 = [0:1:0] is torsion point, order 1
+ P1 = [-3:0:1] is generator number 1
+- saturating up to 20...Checking 2-saturation
++ saturating up to 20...Checking 2-saturation...
+ ...
+ P4 = [12:35:27] = 1*P1 + -1*P2 + -1*P3 (mod torsion)
+ sage: EQ
diff --git a/pkgs/applications/science/math/sage/sage-src.nix b/pkgs/applications/science/math/sage/sage-src.nix
index ff8e53d4172c..99a163eb0b8e 100644
--- a/pkgs/applications/science/math/sage/sage-src.nix
+++ b/pkgs/applications/science/math/sage/sage-src.nix
@@ -112,6 +112,9 @@ stdenv.mkDerivation rec {
# workaround until we use sage's fork of threejs, which contains a "version" file
./patches/dont-grep-threejs-version-from-minified-js.patch
+
+ # updated eclib output has punctuation changes and tidier whitespace
+ ./patches/eclib-20210223-test-formatting.patch
];
patches = nixPatches ++ bugfixPatches ++ packageUpgradePatches;
diff --git a/pkgs/applications/video/kodi/default.nix b/pkgs/applications/video/kodi/default.nix
index 8c61a9f9655b..0dca33303c56 100644
--- a/pkgs/applications/video/kodi/default.nix
+++ b/pkgs/applications/video/kodi/default.nix
@@ -1,4 +1,4 @@
-{ stdenv, lib, fetchurl, fetchFromGitHub, autoconf, automake, libtool, makeWrapper, linuxHeaders
+{ stdenv, lib, fetchFromGitHub, autoconf, automake, libtool, makeWrapper
, pkg-config, cmake, gnumake, yasm, python3Packages
, libgcrypt, libgpgerror, libunistring
, boost, avahi, lame
@@ -57,41 +57,15 @@ let
sha256 = "097dg6a7v4ia85jx1pmlpwzdpqcqxlrmniqd005q73zvgj67zc2p";
};
- cmakeProto = fetchurl {
- url = "https://raw.githubusercontent.com/pramsey/libght/ca9b1121c352ea10170636e170040e1af015bad1/cmake/modules/CheckPrototypeExists.cmake";
- sha256 = "1zai82gm5x55n3xvdv7mns3ja6a2k81x9zz0nk42j6s2yb0fkjxh";
- };
-
- cmakeProtoPatch = ''
- # get rid of windows headers as they will otherwise be found first
- rm -rf msvc
-
- cp ${cmakeProto} cmake/${cmakeProto.name}
- # we need to enable support for C++ for check_prototype_exists to do its thing
- substituteInPlace CMakeLists.txt --replace 'LANGUAGES C' 'LANGUAGES C CXX'
- if [ -f cmake/CheckHeadersSTDC.cmake ]; then
- sed -i cmake/CheckHeadersSTDC.cmake \
- -e '7iinclude(CheckPrototypeExists)'
- fi
- '';
-
- kodiDependency = { name, version, rev, sha256, ... } @attrs:
- let
- attrs' = builtins.removeAttrs attrs ["name" "version" "rev" "sha256"];
- in stdenv.mkDerivation ({
- name = "kodi-${lib.toLower name}-${version}";
- src = fetchFromGitHub {
- owner = "xbmc";
- repo = name;
- inherit rev sha256;
- };
- } // attrs');
-
- ffmpeg = kodiDependency rec {
- name = "FFmpeg";
+ ffmpeg = stdenv.mkDerivation rec {
+ pname = "kodi-ffmpeg";
version = "4.3.1";
- rev = "${version}-${rel}-Beta1";
- sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
+ src = fetchFromGitHub {
+ owner = "xbmc";
+ repo = "FFmpeg";
+ rev = "${version}-${rel}-Beta1";
+ sha256 = "1c5rwlxn6xj501iw7masdv2p6wb9rkmd299lmlkx97sw1kvxvg2w";
+ };
preConfigure = ''
cp ${kodi_src}/tools/depends/target/ffmpeg/{CMakeLists.txt,*.cmake} .
sed -i 's/ --cpu=''${CPU}//' CMakeLists.txt
@@ -110,47 +84,25 @@ let
# We can build these externally but FindLibDvd.cmake forces us to build it
# them, so we currently just use them for the src.
- libdvdcss = kodiDependency rec {
- name = "libdvdcss";
- version = "1.4.2";
- rev = "${version}-${rel}-Beta-5";
- sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
- buildInputs = [ linuxHeaders ];
- nativeBuildInputs = [ cmake pkg-config ];
- postPatch = ''
- rm -rf msvc
-
- substituteInPlace config.h.cm \
- --replace '#cmakedefine O_BINARY "''${O_BINARY}"' '#define O_BINARY 0'
- '';
- cmakeFlags = [
- "-DBUILD_SHARED_LIBS=1"
- "-DHAVE_LINUX_DVD_STRUCT=1"
- ];
+ libdvdcss = fetchFromGitHub {
+ owner = "xbmc";
+ repo = "libdvdcss";
+ rev = "1.4.2-${rel}-Beta-5";
+ sha256 = "0j41ydzx0imaix069s3z07xqw9q95k7llh06fc27dcn6f7b8ydyl";
};
- libdvdnav = kodiDependency rec {
- name = "libdvdnav";
- version = "6.0.0";
- rev = "${version}-${rel}-Alpha-3";
- sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
- buildInputs = [ libdvdcss libdvdread ];
- nativeBuildInputs = [ cmake pkg-config ];
- postPatch = cmakeProtoPatch;
- postInstall = ''
- mv $out/lib/liblibdvdnav.so $out/lib/libdvdnav.so
- '';
+ libdvdnav = fetchFromGitHub {
+ owner = "xbmc";
+ repo = "libdvdnav";
+ rev = "6.0.0-${rel}-Alpha-3";
+ sha256 = "0qwlf4lgahxqxk1r2pzl866mi03pbp7l1fc0rk522sc0ak2s9jhb";
};
- libdvdread = kodiDependency rec {
- name = "libdvdread";
- version = "6.0.0";
- rev = "${version}-${rel}-Alpha-3";
- sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
- buildInputs = [ libdvdcss ];
- nativeBuildInputs = [ cmake pkg-config ];
- configureFlags = [ "--with-libdvdcss" ];
- postPatch = cmakeProtoPatch;
+ libdvdread = fetchFromGitHub {
+ owner = "xbmc";
+ repo = "libdvdread";
+ rev = "6.0.0-${rel}-Alpha-3";
+ sha256 = "1xxn01mhkdnp10cqdr357wx77vyzfb5glqpqyg8m0skyi75aii59";
};
kodi_platforms =
@@ -184,7 +136,6 @@ in stdenv.mkDerivation {
bluez giflib glib harfbuzz lcms2 libpthreadstubs
ffmpeg flatbuffers fmt fstrcmp rapidjson
lirc
- # libdvdcss libdvdnav libdvdread
]
++ lib.optional x11Support [
libX11 xorgproto libXt libXmu libXext.dev libXdmcp
@@ -231,9 +182,9 @@ in stdenv.mkDerivation {
cmakeFlags = [
"-DAPP_RENDER_SYSTEM=${if useGbm then "gles" else "gl"}"
- "-Dlibdvdcss_URL=${libdvdcss.src}"
- "-Dlibdvdnav_URL=${libdvdnav.src}"
- "-Dlibdvdread_URL=${libdvdread.src}"
+ "-Dlibdvdcss_URL=${libdvdcss}"
+ "-Dlibdvdnav_URL=${libdvdnav}"
+ "-Dlibdvdread_URL=${libdvdread}"
"-DGIT_VERSION=${kodiReleaseDate}"
"-DENABLE_EVENTCLIENTS=ON"
"-DENABLE_INTERNAL_CROSSGUID=OFF"
@@ -270,7 +221,7 @@ in stdenv.mkDerivation {
postInstall = ''
for p in $(ls $out/bin/) ; do
wrapProgram $out/bin/$p \
- --prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo)}" \
+ --prefix PATH ":" "${lib.makeBinPath ([ python3Packages.python glxinfo ] ++ lib.optional x11Support xdpyinfo ++ lib.optional sambaSupport samba)}" \
--prefix LD_LIBRARY_PATH ":" "${lib.makeLibraryPath
([ curl systemd libmad libvdpau libcec libcec_platform libass ]
++ lib.optional nfsSupport libnfs
diff --git a/pkgs/applications/video/natron/default.nix b/pkgs/applications/video/natron/default.nix
index a455869ebf91..bbbcf3d76876 100644
--- a/pkgs/applications/video/natron/default.nix
+++ b/pkgs/applications/video/natron/default.nix
@@ -1,14 +1,14 @@
{ lib, stdenv, fetchurl, qt4, pkg-config, boost, expat, cairo, python2Packages,
cmake, flex, bison, pango, librsvg, librevenge, libxml2, libcdr, libzip,
poppler, imagemagick, openexr, ffmpeg_3, opencolorio, openimageio,
- qmake4Hook, libpng, libGL, lndir }:
+ qmake4Hook, libpng, libGL, lndir, libraw, openjpeg, libwebp, fetchFromGitHub }:
let
- minorVersion = "2.1";
- version = "${minorVersion}.9";
+ minorVersion = "2.3";
+ version = "${minorVersion}.15";
OpenColorIO-Configs = fetchurl {
- url = "https://github.com/MrKepzie/OpenColorIO-Configs/archive/Natron-v${minorVersion}.tar.gz";
- sha256 = "9eec5a02ca80c9cd8e751013cb347ea982fdddd592a4a9215cce462e332dac51";
+ url = "https://github.com/NatronGitHub/OpenColorIO-Configs/archive/Natron-v${minorVersion}.tar.gz";
+ sha256 = "AZK9J+RnMyxOYcAQOAQZj5QciPQ999m6jrtBt5rdpkA=";
};
seexpr = stdenv.mkDerivation rec {
version = "1.0.1";
@@ -20,14 +20,15 @@ let
nativeBuildInputs = [ cmake ];
buildInputs = [ libpng flex bison ];
};
- buildPlugin = { pluginName, sha256, nativeBuildInputs ? [], buildInputs ? [], preConfigure ? "" }:
+ buildPlugin = { pluginName, sha256, nativeBuildInputs ? [], buildInputs ? [], preConfigure ? "", postPatch ? "" }:
stdenv.mkDerivation {
- name = "openfx-${pluginName}-${version}";
+ pname = "openfx-${pluginName}";
+ version = version;
src = fetchurl {
- url = "https://github.com/MrKepzie/Natron/releases/download/${version}/openfx-${pluginName}-${version}.tar.xz";
+ url = "https://github.com/NatronGitHub/openfx-${pluginName}/releases/download/Natron-${version}/openfx-${pluginName}-Natron-${version}.tar.xz";
inherit sha256;
};
- inherit nativeBuildInputs buildInputs;
+ inherit nativeBuildInputs buildInputs postPatch;
preConfigure = ''
makeFlagsArray+=("CONFIG=release")
makeFlagsArray+=("PLUGINPATH=$out/Plugins/OFX/Natron")
@@ -42,14 +43,19 @@ let
url = "https://raw.githubusercontent.com/lvandeve/lodepng/a70c086077c0eaecbae3845e4da4424de5f43361/lodepng.h";
sha256 = "14drdikd0vws3wwpyqq7zzm5z3kg98svv4q4w0hr45q6zh6hs0bq";
};
+ cimgversion = "89b9d062ec472df3d33989e6d5d2a8b50ba0775c";
CImgh = fetchurl {
- url = "https://raw.githubusercontent.com/dtschump/CImg/572c12d82b2f59ece21be8f52645c38f1dd407e6/CImg.h";
- sha256 = "0n4qfxj8j6rmj4svf68gg2pzg8d1pb74bnphidnf8i2paj6lwniz";
+ url = "https://raw.githubusercontent.com/dtschump/CImg/${cimgversion}/CImg.h";
+ sha256 = "sha256-NbYpZDNj2oZ+wqoEkRwwCjiujdr+iGOLA0Pa0Ynso6U=";
+ };
+ inpainth = fetchurl {
+ url = "https://raw.githubusercontent.com/dtschump/CImg/${cimgversion}/plugins/inpaint.h";
+ sha256 = "sha256-cd28a3VOs5002GkthHkbIUrxZfKuGhqIYO4Oxe/2HIQ=";
};
plugins = map buildPlugin [
({
pluginName = "arena";
- sha256 = "0qba13vn9qdfax7nqlz1ps27zspr5kh795jp1xvbmwjzjzjpkqkf";
+ sha256 = "tUb6myG03mRieUAfgRZfv5Ap+cLvbpNrLMYCGTiAq8c=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
pango librsvg librevenge libcdr opencolorio libxml2 libzip
@@ -65,32 +71,37 @@ let
})
({
pluginName = "io";
- sha256 = "0s196i9fkgr9iw92c94mxgs1lkxbhynkf83vmsgrldflmf0xjky7";
+ sha256 = "OQg6a5wNy9TFFySjmgd1subvXRxY/ZnSOCkaoUo+ZaA=";
nativeBuildInputs = [ pkg-config ];
buildInputs = [
libpng ffmpeg_3 openexr opencolorio openimageio boost libGL
- seexpr
+ seexpr libraw openjpeg libwebp
];
})
({
pluginName = "misc";
- sha256 = "02h79jrll0c17azxj16as1mks3lmypm4m3da4mms9sg31l3n82qi";
+ sha256 = "XkdQyWI9ilF6IoP3yuHulNUZRPLX1m4lq/+RbXsrFEQ=";
buildInputs = [
libGL
];
- preConfigure = ''
- cp ${CImgh} CImg/CImg.h
+ postPatch = ''
+ cp '${inpainth}' CImg/Inpaint/inpaint.h
+ patch -p0 -dCImg < CImg/Inpaint/inpaint.h.patch # taken from the Makefile; it gets skipped if the file already exists
+ cp '${CImgh}' CImg/CImg.h
'';
})
];
in
stdenv.mkDerivation {
inherit version;
- name = "natron-${version}";
+ pname = "natron";
- src = fetchurl {
- url = "https://github.com/MrKepzie/Natron/releases/download/${version}/Natron-${version}.tar.xz";
- sha256 = "1wdc0zqriw2jhlrhzs6af3kagrv22cm086ffnbr1x43mgc9hfhjp";
+ src = fetchFromGitHub {
+ owner = "NatronGitHub";
+ repo = "Natron";
+ rev = "v${version}";
+ fetchSubmodules = true;
+ sha256 = "sha256-KuXJmmIsvwl4uqmAxXqWU+273jsdWrCuUSwWn5vuu8M=";
};
nativeBuildInputs = [ qmake4Hook pkg-config python2Packages.wrapPython ];
@@ -124,6 +135,5 @@ stdenv.mkDerivation {
license = lib.licenses.gpl2;
maintainers = [ maintainers.puffnfresh ];
platforms = platforms.linux;
- broken = true;
};
}
diff --git a/pkgs/development/libraries/botan/2.0.nix b/pkgs/development/libraries/botan/2.0.nix
index 2346153e2a15..cb40e535b0c3 100644
--- a/pkgs/development/libraries/botan/2.0.nix
+++ b/pkgs/development/libraries/botan/2.0.nix
@@ -2,8 +2,8 @@
callPackage ./generic.nix (args // {
baseVersion = "2.17";
- revision = "2";
- sha256 = "0v0yiq0qxcrsn5b34j6bz8i6pds8dih2ds90ylmy1msm5gz7vqpb";
+ revision = "3";
+ sha256 = "121vn1aryk36cpks70kk4c4cfic5g0qs82bf92xap9258ijkn4kr";
postPatch = ''
sed -e 's@lang_flags "@&--std=c++11 @' -i src/build-data/cc/{gcc,clang}.txt
'';
diff --git a/pkgs/development/libraries/smarty3/default.nix b/pkgs/development/libraries/smarty3/default.nix
index 29f640dedfcb..c3c4f8610c70 100644
--- a/pkgs/development/libraries/smarty3/default.nix
+++ b/pkgs/development/libraries/smarty3/default.nix
@@ -2,13 +2,13 @@
stdenv.mkDerivation rec {
pname = "smarty3";
- version = "3.1.36";
+ version = "3.1.39";
src = fetchFromGitHub {
owner = "smarty-php";
repo = "smarty";
rev = "v${version}";
- sha256 = "0jljzw1xl2kjwf9cylp1ddnjhz7wbm499s03r479891max1m2mlf";
+ sha256 = "0n5hmnw66gxqikp6frgfd9ywsvr2azyg5nl7ix89digqlzcljkbg";
};
installPhase = ''
diff --git a/pkgs/development/python-modules/awkward/default.nix b/pkgs/development/python-modules/awkward/default.nix
index 298074f300d9..a343306a5b9e 100644
--- a/pkgs/development/python-modules/awkward/default.nix
+++ b/pkgs/development/python-modules/awkward/default.nix
@@ -10,11 +10,11 @@
buildPythonPackage rec {
pname = "awkward";
- version = "1.0.2";
+ version = "1.1.2";
src = fetchPypi {
inherit pname version;
- sha256 = "3468cb80cab51252a1936e5e593c7df4588ea0e18dcb6fb31e3d2913ba883928";
+ sha256 = "4ae8371d9e6d5bd3e90f3686b433cebc0541c88072655d2c75ec58e79b5d6943";
};
nativeBuildInputs = [ cmake ];
@@ -25,6 +25,7 @@ buildPythonPackage rec {
checkInputs = [ pytestCheckHook numba ];
dontUseSetuptoolsCheck = true;
+ disabledTestPaths = [ "tests-cuda" ];
meta = with lib; {
description = "Manipulate JSON-like data with NumPy-like idioms";
diff --git a/pkgs/development/python-modules/bitbox02/default.nix b/pkgs/development/python-modules/bitbox02/default.nix
index ce62fd6dce04..d57d4a6585bd 100644
--- a/pkgs/development/python-modules/bitbox02/default.nix
+++ b/pkgs/development/python-modules/bitbox02/default.nix
@@ -2,11 +2,11 @@
buildPythonPackage rec {
pname = "bitbox02";
- version = "5.2.0";
+ version = "5.3.0";
src = fetchPypi {
inherit pname version;
- sha256 = "52b0b617660601939b30c8b588c28910946448b1b6d69ca231d5e3e47a322b71";
+ sha256 = "fe0e8aeb9b32fd7d76bb3e9838895973a74dfd532a8fb8ac174a1a60214aee26";
};
propagatedBuildInputs = [ base58 ecdsa hidapi noiseprotocol protobuf semver typing-extensions ];
diff --git a/pkgs/development/python-modules/bitlist/default.nix b/pkgs/development/python-modules/bitlist/default.nix
new file mode 100644
index 000000000000..ac8cf39cff2f
--- /dev/null
+++ b/pkgs/development/python-modules/bitlist/default.nix
@@ -0,0 +1,35 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nose
+, parts
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+ pname = "bitlist";
+ version = "0.3.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "04dz64r21a39p8wph5qlhvs5y873qgk6xxjlzw8n695b8jm3ixir";
+ };
+
+ propagatedBuildInputs = [
+ parts
+ ];
+
+ checkInputs = [
+ pytestCheckHook
+ nose
+ ];
+
+ pythonImportsCheck = [ "bitlist" ];
+
+ meta = with lib; {
+ description = "Python library for working with little-endian list representation of bit strings";
+ homepage = "https://github.com/lapets/bitlist";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/cairosvg/default.nix b/pkgs/development/python-modules/cairosvg/default.nix
index 0244f772be11..58b8c2673065 100644
--- a/pkgs/development/python-modules/cairosvg/default.nix
+++ b/pkgs/development/python-modules/cairosvg/default.nix
@@ -1,25 +1,44 @@
-{ lib, buildPythonPackage, fetchPypi, isPy3k, fetchpatch
-, cairocffi, cssselect2, defusedxml, pillow, tinycss2
-, pytest, pytestrunner, pytestcov, pytest-flake8, pytest-isort }:
+{ lib
+, buildPythonPackage
+, fetchPypi
+, isPy3k
+, cairocffi
+, cssselect2
+, defusedxml
+, pillow
+, tinycss2
+, pytestCheckHook
+, pytest-runner
+, pytest-flake8
+, pytest-isort
+}:
buildPythonPackage rec {
pname = "CairoSVG";
- version = "2.5.1";
-
+ version = "2.5.2";
disabled = !isPy3k;
src = fetchPypi {
inherit pname version;
- sha256 = "bfa0deea7fa0b9b2f29e41b747a915c249dbca731a4667c2917e47ff96e773e0";
+ sha256 = "sha256-sLmSnPXboAUXjXRqgDb88AJVUPSYylTbYYczIjhHg7w=";
};
+ buildInputs = [ pytest-runner ];
+
propagatedBuildInputs = [ cairocffi cssselect2 defusedxml pillow tinycss2 ];
- checkInputs = [ pytest pytestrunner pytestcov pytest-flake8 pytest-isort ];
+ checkInputs = [ pytestCheckHook pytest-flake8 pytest-isort ];
+
+ pytestFlagsArray = [
+ "cairosvg/test_api.py"
+ ];
+
+ pythonImportsCheck = [ "cairosvg" ];
meta = with lib; {
homepage = "https://cairosvg.org";
- license = licenses.lgpl3;
+ license = licenses.lgpl3Plus;
description = "SVG converter based on Cairo";
+ maintainers = with maintainers; [ SuperSandro2000 ];
};
}
diff --git a/pkgs/development/python-modules/celery/default.nix b/pkgs/development/python-modules/celery/default.nix
index e1fb0b98ea0c..f0fe81f85e28 100644
--- a/pkgs/development/python-modules/celery/default.nix
+++ b/pkgs/development/python-modules/celery/default.nix
@@ -1,5 +1,5 @@
{ lib, buildPythonPackage, fetchPypi
-, billiard, click, click-didyoumean, click-repl, kombu, pytz, vine
+, billiard, click, click-didyoumean, click-plugins, click-repl, kombu, pytz, vine
, boto3, case, moto, pytest, pytest-celery, pytest-subtests, pytest-timeout
}:
@@ -17,7 +17,7 @@ buildPythonPackage rec {
--replace "moto==1.3.7" moto
'';
- propagatedBuildInputs = [ billiard click click-didyoumean click-repl kombu pytz vine ];
+ propagatedBuildInputs = [ billiard click click-didyoumean click-plugins click-repl kombu pytz vine ];
checkInputs = [ boto3 case moto pytest pytest-celery pytest-subtests pytest-timeout ];
@@ -38,5 +38,6 @@ buildPythonPackage rec {
homepage = "https://github.com/celery/celery/";
description = "Distributed task queue";
license = licenses.bsd3;
+ maintainers = [ ];
};
}
diff --git a/pkgs/development/python-modules/certvalidator/default.nix b/pkgs/development/python-modules/certvalidator/default.nix
new file mode 100644
index 000000000000..8f53bd9805ba
--- /dev/null
+++ b/pkgs/development/python-modules/certvalidator/default.nix
@@ -0,0 +1,34 @@
+{ lib, buildPythonPackage, fetchFromGitHub
+, asn1crypto, oscrypto
+, cacert
+}:
+
+buildPythonPackage rec {
+ pname = "certvalidator";
+ version = "0.11.1";
+
+ src = fetchFromGitHub {
+ owner = "wbond";
+ repo = pname;
+ rev = version;
+ sha256 = "sha256-yVF7t4FuU3C9fDg67JeM7LWZZh/mv5F4EKmjlO4AuBY=";
+ };
+
+ propagatedBuildInputs = [ asn1crypto oscrypto ];
+
+ checkInputs = [ cacert ];
+ checkPhase = ''
+ # Tests are run with a custom executor/loader
+ # The regex to skip specific tests relies on negative lookahead of regular expressions
+ # We're skipping the few tests that rely on the network, fetching CRLs, OCSP or remote certificates
+ python -c 'import dev.tests; dev.tests.run("^(?!.*test_(basic_certificate_validator_tls|fetch|revocation|build_path)).*$")'
+ '';
+ pythonImportsCheck = [ "certvalidator" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/wbond/certvalidator";
+ description = "Validates X.509 certificates and paths";
+ license = licenses.mit;
+ maintainers = with maintainers; [ baloo ];
+ };
+}
diff --git a/pkgs/development/python-modules/configshell/default.nix b/pkgs/development/python-modules/configshell/default.nix
index a41d077f22df..9f67aacf2d4e 100644
--- a/pkgs/development/python-modules/configshell/default.nix
+++ b/pkgs/development/python-modules/configshell/default.nix
@@ -2,13 +2,13 @@
buildPythonPackage rec {
pname = "configshell";
- version = "1.1.28";
+ version = "1.1.29";
src = fetchFromGitHub {
owner = "open-iscsi";
repo = "${pname}-fb";
rev = "v${version}";
- sha256 = "1ym2hkvmmacgy21wnjwzyrcxyl3sx4bcx4hc51vf4lzcnj589l68";
+ sha256 = "0mjj3c9335sph8rhwww7j4zvhyk896fbmx887vibm89w3jpvjjr9";
};
propagatedBuildInputs = [ pyparsing six urwid ];
diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix
index 8c189848fc3b..a7115d1e940d 100644
--- a/pkgs/development/python-modules/cypari2/default.nix
+++ b/pkgs/development/python-modules/cypari2/default.nix
@@ -11,11 +11,11 @@
buildPythonPackage rec {
pname = "cypari2";
# upgrade may break sage, please test the sage build or ping @timokau on upgrade
- version = "2.1.2";
+ version = "2.1.1";
src = fetchPypi {
inherit pname version;
- sha256 = "03cd45edab8716ebbfdb754e65fea72e873c73dc91aec098fe4a01e35324ac7a";
+ sha256 = "df1ef62e771ec36e5a456f5fc8b51bc6745b70f0efdd0c7a30c3f0b5f1fb93db";
};
# This differs slightly from the default python installPhase in that it pip-installs
diff --git a/pkgs/development/python-modules/etebase/default.nix b/pkgs/development/python-modules/etebase/default.nix
index 7832f6b4787a..14c93fc719f2 100644
--- a/pkgs/development/python-modules/etebase/default.nix
+++ b/pkgs/development/python-modules/etebase/default.nix
@@ -1,56 +1,59 @@
-{ lib, stdenv
-, wheel
-, rustPlatform
-, pipInstallHook
-, setuptools-rust
-, python
-, msgpack
-, requests
-, openssl
-, perl
-, rustfmt
+{ lib
+, stdenv
, fetchFromGitHub
+, buildPythonPackage
+, rustPlatform
+, pkg-config
+, rustfmt
+, setuptools-rust
+, openssl
, Security
+, msgpack
}:
-rustPlatform.buildRustPackage rec {
+buildPythonPackage rec {
pname = "etebase";
- version = "0.31.1";
+ version = "0.31.2";
src = fetchFromGitHub {
owner = "etesync";
repo = "etebase-py";
rev = "v${version}";
- sha256 = "163iw64l8lwawf84qswcjsq9p8qddv9ysjrr3dzqpqxb2yb0sy39";
+ hash = "sha256-enGmfXW8eV6FgdHfJqXr1orAsGbxDz9xUY6T706sf5U=";
};
- cargoSha256 = "0w8ypl6kj1mf6ahbdiwbd4jw6ldxdaig47zwk91jjsww5lbyx4lf";
+ cargoDeps = rustPlatform.fetchCargoTarball {
+ inherit src;
+ name = "${pname}-${version}";
+ hash = "sha256-4eJvFf6aY+DYkrYgam5Ok9941PX4uQOmtRznEY0+1TE=";
+ };
+
+ format = "pyproject";
nativeBuildInputs = [
+ pkg-config
rustfmt
- perl
- openssl
- pipInstallHook
setuptools-rust
- wheel
- ];
+ ] ++ (with rustPlatform; [
+ cargoSetupHook
+ rust.cargo
+ rust.rustc
+ ]);
- buildInputs = lib.optionals stdenv.isDarwin [ Security ];
+ buildInputs = [ openssl ] ++ lib.optionals stdenv.isDarwin [ Security ];
propagatedBuildInputs = [
- python
msgpack
];
- doCheck = true;
-
- buildPhase = ''
- ${python.interpreter} setup.py bdist_wheel
+ postPatch = ''
+ # Use system OpenSSL, which gets security updates.
+ substituteInPlace Cargo.toml \
+ --replace ', features = ["vendored"]' ""
'';
- installPhase = ''
- pipInstallPhase
- '';
+ pythonImportsCheck = [ "etebase" ];
+
meta = with lib; {
homepage = "https://www.etebase.com/";
diff --git a/pkgs/development/python-modules/fe25519/default.nix b/pkgs/development/python-modules/fe25519/default.nix
new file mode 100644
index 000000000000..466de64453f4
--- /dev/null
+++ b/pkgs/development/python-modules/fe25519/default.nix
@@ -0,0 +1,39 @@
+{ lib
+, bitlist
+, buildPythonPackage
+, fetchPypi
+, fountains
+, parts
+, nose
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+ pname = "fe25519";
+ version = "0.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1m85qvw9dwxk81mv9k45c9n75pk8wqn70qkinqh56h5zv56vgq24";
+ };
+
+ propagatedBuildInputs = [
+ bitlist
+ fountains
+ parts
+ ];
+
+ checkInputs = [
+ nose
+ pytestCheckHook
+ ];
+
+ pythonImportsCheck = [ "fe25519" ];
+
+ meta = with lib; {
+ description = "Python field operations for Curve25519's prime";
+ homepage = "https://github.com/BjoernMHaase/fe25519";
+ license = with licenses; [ cc0 ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/flower/default.nix b/pkgs/development/python-modules/flower/default.nix
index 09368552966f..3662116bc2a6 100644
--- a/pkgs/development/python-modules/flower/default.nix
+++ b/pkgs/development/python-modules/flower/default.nix
@@ -35,11 +35,13 @@ buildPythonPackage rec {
checkInputs = [ mock ];
+ pythonImportsCheck = [ "flower" ];
+
meta = with lib; {
description = "Celery Flower";
homepage = "https://github.com/mher/flower";
license = licenses.bsdOriginal;
maintainers = [ maintainers.arnoldfarkas ];
- broken = (celery.version == "5.0.2"); # currently broken with celery>=5.0 by https://github.com/mher/flower/pull/1021
+ broken = (celery.version >= "5.0.2"); # currently broken with celery>=5.0 by https://github.com/mher/flower/pull/1021
};
}
diff --git a/pkgs/development/python-modules/fountains/default.nix b/pkgs/development/python-modules/fountains/default.nix
new file mode 100644
index 000000000000..b706930b3ef3
--- /dev/null
+++ b/pkgs/development/python-modules/fountains/default.nix
@@ -0,0 +1,30 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, bitlist
+}:
+
+buildPythonPackage rec {
+ pname = "fountains";
+ version = "0.2.1";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "0jk5y099g6ggaq5lwp0jlg4asyhcdxnl3him3ibmzc1k9nnknp30";
+ };
+
+ propagatedBuildInputs = [
+ bitlist
+ ];
+
+ # Project has no test
+ doCheck = false;
+ pythonImportsCheck = [ "fountains" ];
+
+ meta = with lib; {
+ description = "Python library for generating and embedding data for unit testing";
+ homepage = "https://github.com/reity/fountains";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/ge25519/default.nix b/pkgs/development/python-modules/ge25519/default.nix
new file mode 100644
index 000000000000..0e8d3722fbec
--- /dev/null
+++ b/pkgs/development/python-modules/ge25519/default.nix
@@ -0,0 +1,41 @@
+{ lib
+, bitlist
+, buildPythonPackage
+, fe25519
+, fetchPypi
+, fountains
+, nose
+, parts
+, pytestCheckHook
+}:
+
+buildPythonPackage rec {
+ pname = "ge25519";
+ version = "0.2.0";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1wgv0vqg8iv9y5d7if14gmcgslwd5zzgk322w9jaxdfbndldddik";
+ };
+
+ propagatedBuildInputs = [
+ fe25519
+ parts
+ bitlist
+ fountains
+ ];
+
+ checkInputs = [
+ nose
+ pytestCheckHook
+ ];
+
+ pythonImportsCheck = [ "ge25519" ];
+
+ meta = with lib; {
+ description = "Python implementation of Ed25519 group elements and operations";
+ homepage = "https://github.com/nthparty/ge25519";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/parts/default.nix b/pkgs/development/python-modules/parts/default.nix
new file mode 100644
index 000000000000..1bf7f26adfd0
--- /dev/null
+++ b/pkgs/development/python-modules/parts/default.nix
@@ -0,0 +1,25 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+}:
+
+buildPythonPackage rec {
+ pname = "parts";
+ version = "1.0.2";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "1ym238hxwsw15ivvf6gzmkmla08b9hwhdyc3v6rs55wga9j3a4db";
+ };
+
+ # Project has no tests
+ doCheck = false;
+ pythonImportsCheck = [ "parts" ];
+
+ meta = with lib; {
+ description = "Python library for common list functions related to partitioning lists";
+ homepage = "https://github.com/lapets/parts";
+ license = with licenses; [ mit ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/pg8000/default.nix b/pkgs/development/python-modules/pg8000/default.nix
index ad51a80674bc..3cf843b864ca 100644
--- a/pkgs/development/python-modules/pg8000/default.nix
+++ b/pkgs/development/python-modules/pg8000/default.nix
@@ -1,19 +1,19 @@
{ lib
, buildPythonPackage
, fetchPypi
-, scramp
-, isPy3k
, passlib
+, pythonOlder
+, scramp
}:
buildPythonPackage rec {
pname = "pg8000";
- version = "1.17.0";
- disabled = !isPy3k;
+ version = "1.18.0";
+ disabled = pythonOlder "3.6";
src = fetchPypi {
inherit pname version;
- sha256 = "sha256-FBmMWv6yiRBuQO5uXkwFKcU2mTn2yliKAos3GnX+IN0=";
+ sha256 = "1nkjxf95ldda41mkmahbikhd1fvxai5lfjb4a5gyhialpz4g5fim";
};
propagatedBuildInputs = [ passlib scramp ];
diff --git a/pkgs/development/python-modules/pipx/default.nix b/pkgs/development/python-modules/pipx/default.nix
index c29847c9f29c..34a7bc6b31a1 100644
--- a/pkgs/development/python-modules/pipx/default.nix
+++ b/pkgs/development/python-modules/pipx/default.nix
@@ -6,12 +6,13 @@
, argcomplete
, packaging
, importlib-metadata
+, colorama
, pytestCheckHook
}:
buildPythonPackage rec {
pname = "pipx";
- version = "0.16.0.0";
+ version = "0.16.1.0";
disabled = pythonOlder "3.6";
@@ -20,13 +21,14 @@ buildPythonPackage rec {
owner = "pipxproject";
repo = pname;
rev = version;
- sha256 = "08mn7vm8iw20pg0gfn491y1jx8wcyjijps6f1hy7ipzd5ckynscn";
+ sha256 = "081raqsaq7i2x4yxhxppv930jhajdwmngin5wazy7vqhiy3xc669";
};
propagatedBuildInputs = [
userpath
argcomplete
packaging
+ colorama
] ++ lib.optionals (pythonOlder "3.8") [
importlib-metadata
];
diff --git a/pkgs/development/python-modules/pypugjs/default.nix b/pkgs/development/python-modules/pypugjs/default.nix
index 4e2bf164a337..77ca912db6c9 100644
--- a/pkgs/development/python-modules/pypugjs/default.nix
+++ b/pkgs/development/python-modules/pypugjs/default.nix
@@ -3,11 +3,11 @@
buildPythonPackage rec {
pname = "pypugjs";
- version = "5.9.8";
+ version = "5.9.9";
src = fetchPypi {
inherit pname version;
- sha256 = "1iy8k56rbslxcylhamdik2bd6gqqirrix55mrdn29zz9gl6vg1xi";
+ sha256 = "0s0a239940z6rsssa13yz6pfkjk4300j35hs7qysyz45f3ixq19j";
};
propagatedBuildInputs = [ six chardet ];
diff --git a/pkgs/development/python-modules/python-nmap/default.nix b/pkgs/development/python-modules/python-nmap/default.nix
new file mode 100644
index 000000000000..745d6c67eac7
--- /dev/null
+++ b/pkgs/development/python-modules/python-nmap/default.nix
@@ -0,0 +1,38 @@
+{ lib
+, buildPythonPackage
+, fetchPypi
+, nmap
+}:
+
+buildPythonPackage rec {
+ pname = "python-nmap";
+ version = "0.6.4";
+
+ src = fetchPypi {
+ inherit pname version;
+ sha256 = "013q2797d9sf6mrj7x1hqfcql5gqgg50zgiifp2yypfa4k8cwjsx";
+ };
+
+ propagatedBuildInputs = [ nmap ];
+
+ postPatch = ''
+ substituteInPlace setup.cfg --replace "universal=3" "universal=1"
+ '';
+
+ # Tests requires sudo and performs scans
+ doCheck = false;
+ pythonImportsCheck = [ "nmap" ];
+
+ meta = with lib; {
+ description = "Python library which helps in using nmap";
+ longDescription = ''
+ python-nmap is a Python library which helps in using nmap port scanner. It
+ allows to easily manipulate nmap scan results and will be a perfect tool
+ for systems administrators who want to automatize scanning task and reports.
+ It also supports nmap script outputs.
+ '';
+ homepage = "http://xael.org/pages/python-nmap-en.html";
+ license = with licenses; [ gpl3Plus ];
+ maintainers = with maintainers; [ fab ];
+ };
+}
diff --git a/pkgs/development/python-modules/scramp/default.nix b/pkgs/development/python-modules/scramp/default.nix
index 7beefa4e8999..dc57461d549d 100644
--- a/pkgs/development/python-modules/scramp/default.nix
+++ b/pkgs/development/python-modules/scramp/default.nix
@@ -1,16 +1,23 @@
-{ lib, buildPythonPackage, fetchFromGitHub, pytestCheckHook }:
+{ lib
+, asn1crypto
+, buildPythonPackage
+, fetchFromGitHub
+, pytestCheckHook
+}:
buildPythonPackage rec {
pname = "scramp";
- version = "1.2.0";
+ version = "1.2.2";
src = fetchFromGitHub {
owner = "tlocke";
repo = "scramp";
rev = version;
- sha256 = "15jb7z5l2lijxr60fb9v55i3f81h6d83c0b7fv5q0fv5q259nv0a";
+ sha256 = "sha256-d/kfrhvU96eH8TQX7n1hVRclEFWLseEvOxiR6VaOdrg=";
};
+ propagatedBuildInputs = [ asn1crypto ];
+
checkInputs = [ pytestCheckHook ];
pythonImportsCheck = [ "scramp" ];
diff --git a/pkgs/development/python-modules/signify/certificate-expiration-date.patch b/pkgs/development/python-modules/signify/certificate-expiration-date.patch
new file mode 100644
index 000000000000..6554211a4bc7
--- /dev/null
+++ b/pkgs/development/python-modules/signify/certificate-expiration-date.patch
@@ -0,0 +1,18 @@
+diff --git a/tests/test_authenticode.py b/tests/test_authenticode.py
+index 7e2c709..2f27e09 100644
+--- a/tests/test_authenticode.py
++++ b/tests/test_authenticode.py
+@@ -153,10 +153,12 @@ class AuthenticodeParserTestCase(unittest.TestCase):
+ """this certificate is revoked"""
+ with open(str(root_dir / "test_data" / "jameslth"), "rb") as f:
+ pefile = SignedPEFile(f)
+- pefile.verify()
++ pefile.verify(verification_context_kwargs=
++ {'timestamp': datetime.datetime(2021, 1, 1, tzinfo=datetime.timezone.utc)})
+
+ def test_jameslth_revoked(self):
+ """this certificate is revoked"""
++ # TODO: this certificate is now expired, so it will not show up as valid anyway
+ with open(str(root_dir / "test_data" / "jameslth"), "rb") as f:
+ pefile = SignedPEFile(f)
+ with self.assertRaises(VerificationError):
diff --git a/pkgs/development/python-modules/signify/default.nix b/pkgs/development/python-modules/signify/default.nix
new file mode 100644
index 000000000000..be0623b1b73b
--- /dev/null
+++ b/pkgs/development/python-modules/signify/default.nix
@@ -0,0 +1,36 @@
+{ lib, buildPythonPackage, fetchFromGitHub, pythonOlder, pytestCheckHook
+, certvalidator, pyasn1, pyasn1-modules
+}:
+
+buildPythonPackage rec {
+ pname = "signify";
+ version = "0.3.0";
+ disabled = pythonOlder "3.5";
+
+ src = fetchFromGitHub {
+ owner = "ralphje";
+ repo = pname;
+ rev = "v${version}";
+ sha256 = "sha256-JxQECpwHhPm8TCVW/bCnEpu5I/WETyZVBx29SQE4NmE=";
+ };
+ patches = [
+ # Upstream patch is available here:
+ # https://github.com/ralphje/signify/commit/8c345be954e898a317825bb450bed5ba0304b2b5.patch
+ # But update a couple other things and dont apply cleanly. This is an extract of the part
+ # we care about and breaks the tests after 2021-03-01
+ ./certificate-expiration-date.patch
+ ];
+
+ propagatedBuildInputs = [ certvalidator pyasn1 pyasn1-modules ];
+
+ checkInputs = [ pytestCheckHook ];
+ pytestFlagsArray = [ "-v" ];
+ pythonImportsCheck = [ "signify" ];
+
+ meta = with lib; {
+ homepage = "https://github.com/ralphje/signify";
+ description = "library that verifies PE Authenticode-signed binaries";
+ license = licenses.mit;
+ maintainers = with maintainers; [ baloo ];
+ };
+}
diff --git a/pkgs/development/tools/continuous-integration/drone-runner-exec/default.nix b/pkgs/development/tools/continuous-integration/drone-runner-exec/default.nix
new file mode 100644
index 000000000000..373c6183725d
--- /dev/null
+++ b/pkgs/development/tools/continuous-integration/drone-runner-exec/default.nix
@@ -0,0 +1,26 @@
+{ lib
+, buildGoModule
+, fetchFromGitHub
+}:
+
+buildGoModule rec {
+ pname = "drone-runner-exec";
+ version = "unstable-2020-04-19";
+
+ src = fetchFromGitHub {
+ owner = "drone-runners";
+ repo = "drone-runner-exec";
+ rev = "c0a612ef2bdfdc6d261dfbbbb005c887a0c3668d";
+ sha256 = "sha256-0UIJwpC5Y2TQqyZf6C6neICYBZdLQBWAZ8/K1l6KVRs=";
+ };
+
+ vendorSha256 = "sha256-ypYuQKxRhRQGX1HtaWt6F6BD9vBpD8AJwx/4esLrJsw=";
+
+ meta = with lib; {
+ description = "Drone pipeline runner that executes builds directly on the host machine";
+ homepage = "https://github.com/drone-runners/drone-runner-exec";
+ # https://polyformproject.org/licenses/small-business/1.0.0/
+ license = licenses.unfree;
+ maintainers = with maintainers; [ mic92 ];
+ };
+}
diff --git a/pkgs/development/tools/rubocop/Gemfile.lock b/pkgs/development/tools/rubocop/Gemfile.lock
index 54287074bede..2c5deffc2d1c 100644
--- a/pkgs/development/tools/rubocop/Gemfile.lock
+++ b/pkgs/development/tools/rubocop/Gemfile.lock
@@ -6,9 +6,9 @@ GEM
parser (3.0.0.0)
ast (~> 2.4.1)
rainbow (3.0.0)
- regexp_parser (2.0.3)
+ regexp_parser (2.1.1)
rexml (3.2.4)
- rubocop (1.10.0)
+ rubocop (1.11.0)
parallel (~> 1.10)
parser (>= 3.0.0.0)
rainbow (>= 2.2.2, < 4.0)
diff --git a/pkgs/development/tools/rubocop/default.nix b/pkgs/development/tools/rubocop/default.nix
index 9a6393977d7f..a388377ae088 100644
--- a/pkgs/development/tools/rubocop/default.nix
+++ b/pkgs/development/tools/rubocop/default.nix
@@ -14,6 +14,5 @@ bundlerEnv {
homepage = "https://docs.rubocop.org/";
license = licenses.mit;
maintainers = with maintainers; [ marsam leemachin ];
- platforms = platforms.unix;
};
}
diff --git a/pkgs/development/tools/rubocop/gemset.nix b/pkgs/development/tools/rubocop/gemset.nix
index b460200c74e4..46d920bc657b 100644
--- a/pkgs/development/tools/rubocop/gemset.nix
+++ b/pkgs/development/tools/rubocop/gemset.nix
@@ -45,10 +45,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0zm86k9q8m5jkcnpb1f93wsvc57saldfj8czxkx1aw031i95inip";
+ sha256 = "0vg7imjnfcqjx7kw94ccj5r78j4g190cqzi1i59sh4a0l940b9cr";
type = "gem";
};
- version = "2.0.3";
+ version = "2.1.1";
};
rexml = {
groups = ["default"];
@@ -66,10 +66,10 @@
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "1ncd6w4sc112j86j9j12ws7flxfi8dk8nal2kyxg7phdfr703qlz";
+ sha256 = "0zrzsgx35mcr81c51gyx63s7yngcfgk33dbkx5j0npkaks4fcm7r";
type = "gem";
};
- version = "1.10.0";
+ version = "1.11.0";
};
rubocop-ast = {
dependencies = ["parser"];
diff --git a/pkgs/os-specific/linux/targetcli/default.nix b/pkgs/os-specific/linux/targetcli/default.nix
index 4d3446d5a5d6..f08ac284f23c 100644
--- a/pkgs/os-specific/linux/targetcli/default.nix
+++ b/pkgs/os-specific/linux/targetcli/default.nix
@@ -2,13 +2,13 @@
python3.pkgs.buildPythonApplication rec {
pname = "targetcli";
- version = "2.1.53";
+ version = "2.1.54";
src = fetchFromGitHub {
owner = "open-iscsi";
repo = "${pname}-fb";
rev = "v${version}";
- sha256 = "1qrq7y5hnghzbxgrxgl153n8jlhw31kqjbr93jsvlvhz5b3ci750";
+ sha256 = "1kbbvx0lba96ynr5iwws9jpi319m4rzph4bmcj7yfb37k8mi161v";
};
propagatedBuildInputs = with python3.pkgs; [ configshell rtslib ];
diff --git a/pkgs/servers/consul/default.nix b/pkgs/servers/consul/default.nix
index fb4372a1d894..cc00f4cf0cea 100644
--- a/pkgs/servers/consul/default.nix
+++ b/pkgs/servers/consul/default.nix
@@ -2,7 +2,7 @@
buildGoModule rec {
pname = "consul";
- version = "1.9.3";
+ version = "1.9.4";
rev = "v${version}";
# Note: Currently only release tags are supported, because they have the Consul UI
@@ -17,7 +17,7 @@ buildGoModule rec {
owner = "hashicorp";
repo = pname;
inherit rev;
- sha256 = "sha256-/PjtLZtMSq/+S1mWe0oJ+dRCmCq0mlgvreL2awm0PcE=";
+ sha256 = "1ck55i8snpm583p21y1hac0w76wiwyjpgfxkzscd4whp2jnzhhif";
};
passthru.tests.consul = nixosTests.consul;
@@ -26,7 +26,7 @@ buildGoModule rec {
# has a split module structure in one repo
subPackages = ["." "connect/certgen"];
- vendorSha256 = "sha256-eIW3xQgy2doirGwKGE6OFGgXtKs8LYx3sfsnIu8n5Hg=";
+ vendorSha256 = "0y744zpj49zvn5vqqb9wmfs1fs0lir71h2kcmhidmn9j132vg1bq";
doCheck = false;
diff --git a/pkgs/servers/fishnet/assets.nix b/pkgs/servers/fishnet/assets.nix
index 6844db1b810c..d246159402d9 100644
--- a/pkgs/servers/fishnet/assets.nix
+++ b/pkgs/servers/fishnet/assets.nix
@@ -14,8 +14,8 @@ stdenv.mkDerivation rec {
src = fetchFromGitHub {
owner = "niklasf";
repo = pname;
- rev = "b4fa30e57ec8976fb1c10bd36737bc784351b93e";
- sha256 = "0gfs9lm4ih3h3fmgqylw05ii1h0d6mpjfxadnw3wymnjsspfb0m4";
+ rev = "acd36ab6ccee67a652b6d84aedc4c2828abac5c6";
+ sha256 = "0mh4gh6qij70clp64m4jw6q7dafr7gwjqpvpaf9vc6h10g1rhzrx";
};
relAssetsPath = "share/${pname}";
@@ -53,5 +53,6 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/niklasf/fishnet-assets";
license = licenses.gpl3Only;
maintainers = with maintainers; [ tu-maurice ];
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/servers/fishnet/default.nix b/pkgs/servers/fishnet/default.nix
index 508068bd2d4b..8060943fa5ef 100644
--- a/pkgs/servers/fishnet/default.nix
+++ b/pkgs/servers/fishnet/default.nix
@@ -12,16 +12,16 @@ let
in
rustPlatform.buildRustPackage rec {
pname = "fishnet";
- version = "2.2.4";
+ version = "2.2.5";
src = fetchFromGitHub {
owner = "niklasf";
repo = pname;
rev = "v${version}";
- sha256 = "19dh69b6mqx16195w9d20fah4jl8hhbxm84xq4zwsgl4khmw7zqz";
+ sha256 = "0gif9wagm9bzq7j3biasqvzp9lfvmxqr5wagqqybmhbn8ipj20a8";
};
- cargoSha256 = "0zl2fnmqncyjd52wkn6dddx9lm9ywpw7swy895yq299z2bbbkv3h";
+ cargoSha256 = "0hqyh0nzfrm7m34kqixrlbc7w8d0k7v6psw8jg6zpwpfcmhqq15j";
preBuild = ''
rmdir ./assets
@@ -33,5 +33,6 @@ rustPlatform.buildRustPackage rec {
homepage = "https://github.com/niklasf/fishnet";
license = licenses.gpl3Plus;
maintainers = with maintainers; [ tu-maurice ];
+ platforms = [ "x86_64-linux" ];
};
}
diff --git a/pkgs/servers/home-assistant/component-packages.nix b/pkgs/servers/home-assistant/component-packages.nix
index df0164f2dd92..899a0731c6d0 100644
--- a/pkgs/servers/home-assistant/component-packages.nix
+++ b/pkgs/servers/home-assistant/component-packages.nix
@@ -556,7 +556,7 @@
"niko_home_control" = ps: with ps; [ ]; # missing inputs: niko-home-control
"nilu" = ps: with ps; [ ]; # missing inputs: niluclient
"nissan_leaf" = ps: with ps; [ ]; # missing inputs: pycarwings2
- "nmap_tracker" = ps: with ps; [ getmac ]; # missing inputs: python-nmap
+ "nmap_tracker" = ps: with ps; [ getmac python-nmap ];
"nmbs" = ps: with ps; [ ]; # missing inputs: pyrail
"no_ip" = ps: with ps; [ ];
"noaa_tides" = ps: with ps; [ ]; # missing inputs: noaa-coops
diff --git a/pkgs/servers/urserver/default.nix b/pkgs/servers/urserver/default.nix
index eee10d05826f..9047ea0ee34f 100644
--- a/pkgs/servers/urserver/default.nix
+++ b/pkgs/servers/urserver/default.nix
@@ -9,15 +9,16 @@
stdenv.mkDerivation rec {
pname = "urserver";
- version = "3.6.0.745";
+ version = "3.9.0.2465";
src = fetchurl {
- url = "https://www.unifiedremote.com/static/builds/server/linux-x64/745/urserver-${version}.tar.gz";
- sha256 = "1ib9317bg9n4knwnlbrn1wfkyrjalj8js3a6h7zlcl8h8xc0szc8";
+ url = "https://www.unifiedremote.com/static/builds/server/linux-x64/${builtins.elemAt (builtins.splitVersion version) 3}/urserver-${version}.tar.gz";
+ sha256 = "sha256-3DIroodWCMbq1fzPjhuGLk/2fY/qFxFISLzjkjJ4i90=";
};
nativeBuildInputs = [
autoPatchelfHook
+ makeWrapper
];
buildInputs = [
@@ -25,7 +26,6 @@ stdenv.mkDerivation rec {
bluez
libX11
libXtst
- makeWrapper
];
installPhase = ''
diff --git a/pkgs/tools/admin/awscli2/default.nix b/pkgs/tools/admin/awscli2/default.nix
index d832b00a6eef..1f5ff48d25ae 100644
--- a/pkgs/tools/admin/awscli2/default.nix
+++ b/pkgs/tools/admin/awscli2/default.nix
@@ -1,19 +1,14 @@
-{ lib
-, python3
-, groff
-, less
-, fetchFromGitHub
-}:
+{ lib, python3, groff, less, fetchFromGitHub }:
let
py = python3.override {
packageOverrides = self: super: {
botocore = super.botocore.overridePythonAttrs (oldAttrs: rec {
- version = "2.0.0dev85";
+ version = "2.0.0dev97";
src = fetchFromGitHub {
owner = "boto";
repo = "botocore";
- rev = "962bb5d356096c57e25a5579d09e4b4d928c886d";
- sha256 = "09bk8d0r3245kbi96641gvfl3q4jjhw55gjldc2cpml6mv36hhnb";
+ rev = "f240d284994b521b0bd099161bc0ab5786caf700";
+ sha256 = "sha256-Ot3w/4OcQ+pXq6bJnQqV5uvG50/uIOa1pwMWqor5NXM=";
};
});
prompt_toolkit = super.prompt_toolkit.overridePythonAttrs (oldAttrs: rec {
@@ -29,13 +24,13 @@ let
in
with py.pkgs; buildPythonApplication rec {
pname = "awscli2";
- version = "2.1.17"; # N.B: if you change this, change botocore to a matching version too
+ version = "2.1.29"; # N.B: if you change this, change botocore to a matching version too
src = fetchFromGitHub {
owner = "aws";
repo = "aws-cli";
rev = version;
- sha256 = "1pla97sylzhvj7r5cschv4bg23hpl0ax1m5cx4291fppjnrn2yp9";
+ sha256 = "sha256-6SVDJeyPJQX4XIH8RYRzJG2LFDHxIrW/b1a0JZ5kIFY=";
};
postPatch = ''
diff --git a/pkgs/tools/admin/nomachine-client/default.nix b/pkgs/tools/admin/nomachine-client/default.nix
index c419c7e834a2..fa5763178bd5 100644
--- a/pkgs/tools/admin/nomachine-client/default.nix
+++ b/pkgs/tools/admin/nomachine-client/default.nix
@@ -1,10 +1,10 @@
{ lib, stdenv, file, fetchurl, makeWrapper,
autoPatchelfHook, jsoncpp, libpulseaudio }:
let
- versionMajor = "7.0";
- versionMinor = "211";
- versionBuild_x86_64 = "4";
- versionBuild_i686 = "4";
+ versionMajor = "7.2";
+ versionMinor = "3";
+ versionBuild_x86_64 = "8";
+ versionBuild_i686 = "8";
in
stdenv.mkDerivation rec {
pname = "nomachine-client";
@@ -14,12 +14,12 @@ in
if stdenv.hostPlatform.system == "x86_64-linux" then
fetchurl {
url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_x86_64}_x86_64.tar.gz";
- sha256 = "06habqsl5gp13sym519r3qp188qwqqfw8p48wcs4zj3kcri6fjz0";
+ sha256 = "1x60vmngq4927qvy6ljmyvwlz5lapilld3495w3y3jdllwd3dxp4";
}
else if stdenv.hostPlatform.system == "i686-linux" then
fetchurl {
url = "https://download.nomachine.com/download/${versionMajor}/Linux/nomachine_${version}_${versionBuild_i686}_i686.tar.gz";
- sha256 = "1y4lr95mwilwr7gqsxqvygq4w3dcp4cjh8m06wdi3avwdzrjkgj9";
+ sha256 = "0dx921g6w3gk0x4p771qqxbbi16vl11hmdzzwhfczrq90pgzrhks";
}
else
throw "NoMachine client is not supported on ${stdenv.hostPlatform.system}";
diff --git a/pkgs/tools/misc/dpt-rp1-py/default.nix b/pkgs/tools/misc/dpt-rp1-py/default.nix
index 69b689fb8244..cf3a9a42406a 100644
--- a/pkgs/tools/misc/dpt-rp1-py/default.nix
+++ b/pkgs/tools/misc/dpt-rp1-py/default.nix
@@ -1,22 +1,27 @@
{ lib, python3Packages, fetchFromGitHub }:
python3Packages.buildPythonApplication rec {
pname = "dpt-rp1-py";
- version = "unstable-2018-10-16";
+ version = "0.1.12";
src = fetchFromGitHub {
owner = "janten";
repo = pname;
- rev = "4551b4432f8470de5f2ad9171105f731a6259395";
- sha256 = "176y5j31aci1vpi8v6r5ki55432fbdsazh9bsyzr90im9zimkffl";
+ rev = "v${version}";
+ sha256 = "0xw853s5bx2lr57w6ldfjzi1ppc6px66zd7hzk8y2kg82q6bnasq";
};
doCheck = false;
propagatedBuildInputs = with python3Packages; [
+ anytree
+ fusepy
httpsig
- requests
pbkdf2
+ pyyaml
+ requests
+ tqdm
urllib3
+ zeroconf
];
meta = with lib; {
diff --git a/pkgs/tools/misc/mcfly/default.nix b/pkgs/tools/misc/mcfly/default.nix
index 616ee822eba2..acdde84accd4 100644
--- a/pkgs/tools/misc/mcfly/default.nix
+++ b/pkgs/tools/misc/mcfly/default.nix
@@ -2,13 +2,13 @@
rustPlatform.buildRustPackage rec {
pname = "mcfly";
- version = "0.5.3";
+ version = "0.5.4";
src = fetchFromGitHub {
owner = "cantino";
repo = "mcfly";
rev = "v${version}";
- sha256 = "1p51wdv47cyg6dmb81fm0d92x1kp7bwwpgax6vlh669nkddiwvmm";
+ sha256 = "sha256-OYHUawlVHUlKMOWFqeJgg8EIe6Hbe+tKi57sJC5zH1U=";
};
postInstall = ''
@@ -20,7 +20,7 @@ rustPlatform.buildRustPackage rec {
install -Dm644 -t $out/share/mcfly mcfly.fish
'';
- cargoSha256 = "0gcdgca8w8i978b067rwm5zrc81rxb704006k9pbcwizkq2281yy";
+ cargoSha256 = "sha256-aiOw1esERlhOTBCldxoldMCrxMxcGpYXEvjSFQ8xU8A=";
meta = with lib; {
homepage = "https://github.com/cantino/mcfly";
diff --git a/pkgs/tools/networking/dsniff/default.nix b/pkgs/tools/networking/dsniff/default.nix
index 3a8eab862cb1..8e641ec83e73 100644
--- a/pkgs/tools/networking/dsniff/default.nix
+++ b/pkgs/tools/networking/dsniff/default.nix
@@ -53,8 +53,8 @@ in gcc9Stdenv.mkDerivation rec {
domain = "salsa.debian.org";
owner = "pkg-security-team";
repo = "dsniff";
- rev = "debian/${version}+debian-29";
- sha256 = "10zz9krf65jsqvlcr72ycp5cd27xwr18jkc38zqp2i4j6x0caj2g";
+ rev = "debian/${version}+debian-30";
+ sha256 = "1fk2k0sfdp5g27i11g0sbzm7al52raz5yr1aibzssnysv7l9xgzh";
name = "dsniff.tar.gz";
};
diff --git a/pkgs/tools/networking/zs-wait4host/default.nix b/pkgs/tools/networking/zs-wait4host/default.nix
new file mode 100644
index 000000000000..4c8342256c78
--- /dev/null
+++ b/pkgs/tools/networking/zs-wait4host/default.nix
@@ -0,0 +1,36 @@
+{ bash, coreutils, fetchurl, fping, lib, stdenvNoCC }:
+
+stdenvNoCC.mkDerivation rec {
+ pname = "zs-wait4host";
+ version = "0.3.2";
+
+ src = fetchurl {
+ url = "https://ytrizja.de/distfiles/${pname}-${version}.tar.gz";
+ sha256 = "9F1264BDoGlRR7bWlRXhfyvxWio4ydShKmabUQEIz9I=";
+ };
+
+ buildInputs = [ bash coreutils fping ];
+
+ postPatch = ''
+ for i in zs-wait4host zs-wait4host-inf; do
+ substituteInPlace "$i" \
+ --replace '$(zs-guess-fping)' '${fping}/bin/fping' \
+ --replace ' sleep ' ' ${coreutils}/bin/sleep ' \
+ --replace '[ "$FPING" ] || exit 1' ""
+ done
+ '';
+
+ installPhase = ''
+ runHook preInstall
+ install -D -t $out/bin zs-wait4host zs-wait4host-inf
+ runHook postInstall
+ '';
+
+ meta = with lib; {
+ description = "Wait for a host to come up/go down";
+ homepage = "https://ytrizja.de/";
+ license = licenses.gpl3Plus;
+ maintainers = with maintainers; [ zseri ];
+ platforms = platforms.all;
+ };
+}
diff --git a/pkgs/tools/security/prs/default.nix b/pkgs/tools/security/prs/default.nix
new file mode 100644
index 000000000000..197a2ba8b9b8
--- /dev/null
+++ b/pkgs/tools/security/prs/default.nix
@@ -0,0 +1,48 @@
+{ lib
+, rustPlatform
+, fetchFromGitLab
+, pkg-config
+, python3
+, dbus
+, glib
+, gpgme
+, gtk3
+, libxcb
+}:
+
+rustPlatform.buildRustPackage rec {
+ pname = "prs";
+ version = "0.2.2";
+
+ src = fetchFromGitLab {
+ owner = "timvisee";
+ repo = "prs";
+ rev = "v${version}";
+ sha256 = "05l9zaaadv2a7ngwkxggp5vrjlnpvf2wr4ijhprx3jkw8b2cxii7";
+ };
+
+ cargoSha256 = "0fjkvr5mdqiy70qx4liwnh78y6mqdv6vbg3nayinh2h34p0z609y";
+
+ postPatch = ''
+ # The GPGME backend is recommended
+ for f in "gtk3/Cargo.toml" "cli/Cargo.toml"; do
+ substituteInPlace "$f" --replace \
+ 'default = ["backend-gnupg-bin"' 'default = ["backend-gpgme"'
+ done
+ '';
+
+ nativeBuildInputs = [ gpgme pkg-config python3 ];
+
+ buildInputs = [ dbus glib gpgme gtk3 libxcb ];
+
+ meta = with lib; {
+ description = "Secure, fast & convenient password manager CLI using GPG and git to sync";
+ homepage = "https://gitlab.com/timvisee/prs";
+ changelog = "https://gitlab.com/timvisee/prs/-/blob/v${version}/CHANGELOG.md";
+ license = with licenses; [
+ lgpl3Only # lib
+ gpl3Only # everything else
+ ];
+ maintainers = with maintainers; [ dotlambda ];
+ };
+}
diff --git a/pkgs/tools/security/yara/default.nix b/pkgs/tools/security/yara/default.nix
index f11e772390d9..844004c3b9e5 100644
--- a/pkgs/tools/security/yara/default.nix
+++ b/pkgs/tools/security/yara/default.nix
@@ -1,4 +1,5 @@
{ lib, stdenv
+, fetchpatch
, fetchFromGitHub
, autoreconfHook
, pcre
@@ -10,14 +11,14 @@
}:
stdenv.mkDerivation rec {
- version = "4.0.1";
+ version = "4.0.5";
pname = "yara";
src = fetchFromGitHub {
owner = "VirusTotal";
repo = "yara";
rev = "v${version}";
- sha256 = "0dy8jf0pdn0wilxy1pj6pqjxg7icxkwax09w54np87gl9p00f5rk";
+ sha256 = "1gkdll2ygdlqy1f27a5b84gw2bq75ss7acsx06yhiss90qwdaalq";
};
nativeBuildInputs = [ autoreconfHook pkg-config ];
@@ -30,6 +31,19 @@ stdenv.mkDerivation rec {
preConfigure = "./bootstrap.sh";
+ # If static builds are disabled, `make all-am` will fail to find libyara.a and
+ # cause a build failure. It appears that somewhere between yara 4.0.1 and
+ # 4.0.5, linking the yara binaries dynamically against libyara.so was broken.
+ #
+ # This was already fixed in yara master. Backport the patch to yara 4.0.5.
+ patches = [
+ (fetchpatch {
+ name = "fix-build-with-no-static.patch";
+ url = "https://github.com/VirusTotal/yara/commit/52e6866023b9aca26571c78fb8759bc3a51ba6dc.diff";
+ sha256 = "074cf99j0rqiyacp60j1hkvjqxia7qwd11xjqgcr8jmfwihb38nr";
+ })
+ ];
+
configureFlags = [
(lib.withFeature withCrypto "crypto")
(lib.enableFeature enableMagic "magic")
diff --git a/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock b/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock
index b50dc2fdbca0..feab5cddf995 100644
--- a/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock
+++ b/pkgs/tools/text/kramdown-rfc2629/Gemfile.lock
@@ -2,9 +2,11 @@ GEM
remote: https://rubygems.org/
specs:
certified (1.0.0)
+ json_pure (2.5.1)
kramdown (1.17.0)
- kramdown-rfc2629 (1.2.13)
+ kramdown-rfc2629 (1.3.37)
certified (~> 1.0)
+ json_pure (~> 2.0)
kramdown (~> 1.17.0)
PLATFORMS
diff --git a/pkgs/tools/text/kramdown-rfc2629/gemset.nix b/pkgs/tools/text/kramdown-rfc2629/gemset.nix
index bf0cf130c424..f0b6c39a3599 100644
--- a/pkgs/tools/text/kramdown-rfc2629/gemset.nix
+++ b/pkgs/tools/text/kramdown-rfc2629/gemset.nix
@@ -9,6 +9,16 @@
};
version = "1.0.0";
};
+ json_pure = {
+ groups = ["default"];
+ platforms = [];
+ source = {
+ remotes = ["https://rubygems.org"];
+ sha256 = "030hmc268wchqsccbjk41hvbyg99krpa72i3q0y3wwqzfh8hi736";
+ type = "gem";
+ };
+ version = "2.5.1";
+ };
kramdown = {
groups = ["default"];
platforms = [];
@@ -20,14 +30,14 @@
version = "1.17.0";
};
kramdown-rfc2629 = {
- dependencies = ["certified" "kramdown"];
+ dependencies = ["certified" "json_pure" "kramdown"];
groups = ["default"];
platforms = [];
source = {
remotes = ["https://rubygems.org"];
- sha256 = "0s53m46qlcdakik0czvx0p41mk46l9l36331cps8gpf364wf3l9d";
+ sha256 = "16m08q5bgib3i54bb9p3inrxb1xksiybs9zj1rnncq492gcqqv4j";
type = "gem";
};
- version = "1.2.13";
+ version = "1.3.37";
};
}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index f79fe1f9910c..31d7eafe0060 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -3782,6 +3782,8 @@ in
drone-cli = callPackage ../development/tools/continuous-integration/drone-cli { };
+ drone-runner-exec = callPackage ../development/tools/continuous-integration/drone-runner-exec { };
+
dropbear = callPackage ../tools/networking/dropbear { };
dsview = libsForQt5.callPackage ../applications/science/electronics/dsview { };
@@ -7339,6 +7341,8 @@ in
openssl = openssl_1_0_2;
};
+ prs = callPackage ../tools/security/prs { };
+
psw = callPackage ../tools/misc/psw { };
pws = callPackage ../tools/misc/pws { };
@@ -9406,6 +9410,8 @@ in
zs-apc-spdu-ctl = callPackage ../tools/networking/zs-apc-spdu-ctl { };
+ zs-wait4host = callPackage ../tools/networking/zs-wait4host { };
+
zstxtns-utils = callPackage ../tools/text/zstxtns-utils { };
zsh-autoenv = callPackage ../tools/misc/zsh-autoenv { };
diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix
index 7a5dfccd8a2a..ada815948ff3 100644
--- a/pkgs/top-level/python-packages.nix
+++ b/pkgs/top-level/python-packages.nix
@@ -989,6 +989,8 @@ in {
bitcoin-price-api = callPackage ../development/python-modules/bitcoin-price-api { };
+ bitlist = callPackage ../development/python-modules/bitlist { };
+
bitmath = callPackage ../development/python-modules/bitmath { };
bitstring = callPackage ../development/python-modules/bitstring { };
@@ -1244,6 +1246,8 @@ in {
certipy = callPackage ../development/python-modules/certipy { };
+ certvalidator = callPackage ../development/python-modules/certvalidator { };
+
cffi = callPackage ../development/python-modules/cffi { };
cfgv = callPackage ../development/python-modules/cfgv { };
@@ -2242,6 +2246,8 @@ in {
fdint = callPackage ../development/python-modules/fdint { };
+ fe25519 = callPackage ../development/python-modules/fe25519 { };
+
feedgen = callPackage ../development/python-modules/feedgen { };
feedgenerator = callPackage ../development/python-modules/feedgenerator { inherit (pkgs) glibcLocales; };
@@ -2456,6 +2462,8 @@ in {
foundationdb60 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb60; };
foundationdb61 = callPackage ../servers/foundationdb/python.nix { foundationdb = pkgs.foundationdb61; };
+ fountains = callPackage ../development/python-modules/fountains { };
+
foxdot = callPackage ../development/python-modules/foxdot { };
fpdf = callPackage ../development/python-modules/fpdf { };
@@ -2540,6 +2548,8 @@ in {
gdrivefs = callPackage ../development/python-modules/gdrivefs { };
+ ge25519 = callPackage ../development/python-modules/ge25519 { };
+
geant4 = disabledIf (!isPy3k) (toPythonModule (pkgs.geant4.override {
enablePython = true;
python3 = python;
@@ -4769,6 +4779,8 @@ in {
partd = callPackage ../development/python-modules/partd { };
+ parts = callPackage ../development/python-modules/parts { };
+
parver = callPackage ../development/python-modules/parver { };
arpeggio = callPackage ../development/python-modules/arpeggio { };
@@ -6497,6 +6509,8 @@ in {
inherit (pkgs) pkg-config;
};
+ python-nmap = callPackage ../development/python-modules/python-nmap { };
+
python-nomad = callPackage ../development/python-modules/python-nomad { };
python-oauth2 = callPackage ../development/python-modules/python-oauth2 { };
@@ -7372,6 +7386,8 @@ in {
singledispatch = callPackage ../development/python-modules/singledispatch { };
+ signify = callPackage ../development/python-modules/signify { };
+
sip = callPackage ../development/python-modules/sip { };
sip_5 = callPackage ../development/python-modules/sip/5.x.nix { };